fidl_fuchsia_posix_socket/
fidl_fuchsia_posix_socket.rs

1// WARNING: This file is machine generated by fidlgen.
2
3#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::client::QueryResponseFut;
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9use fidl::endpoints::{ControlHandle as _, Responder as _};
10pub use fidl_fuchsia_posix_socket__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, PartialEq)]
15pub struct ProviderDatagramSocketWithOptionsRequest {
16    pub domain: Domain,
17    pub proto: DatagramSocketProtocol,
18    pub opts: SocketCreationOptions,
19}
20
21impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
22    for ProviderDatagramSocketWithOptionsRequest
23{
24}
25
26#[derive(Debug, PartialEq)]
27pub struct ProviderStreamSocketWithOptionsRequest {
28    pub domain: Domain,
29    pub proto: StreamSocketProtocol,
30    pub opts: SocketCreationOptions,
31}
32
33impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
34    for ProviderStreamSocketWithOptionsRequest
35{
36}
37
38#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
39pub struct ProviderDatagramSocketDeprecatedResponse {
40    pub s: fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
41}
42
43impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
44    for ProviderDatagramSocketDeprecatedResponse
45{
46}
47
48#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
49pub struct ProviderStreamSocketWithOptionsResponse {
50    pub s: fidl::endpoints::ClientEnd<StreamSocketMarker>,
51}
52
53impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
54    for ProviderStreamSocketWithOptionsResponse
55{
56}
57
58#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
59pub struct ProviderStreamSocketResponse {
60    pub s: fidl::endpoints::ClientEnd<StreamSocketMarker>,
61}
62
63impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
64    for ProviderStreamSocketResponse
65{
66}
67
68#[derive(Debug, PartialEq)]
69pub struct StreamSocketAcceptResponse {
70    pub addr: Option<Box<fidl_fuchsia_net::SocketAddress>>,
71    pub s: fidl::endpoints::ClientEnd<StreamSocketMarker>,
72}
73
74impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
75    for StreamSocketAcceptResponse
76{
77}
78
79#[derive(Debug, Default, PartialEq)]
80pub struct DatagramSocketDescribeResponse {
81    /// `ZX_SOCKET_DATAGRAM` on which data is sent and received.
82    pub socket: Option<fidl::Socket>,
83    /// Size of the buffer used to receive Tx metadata.
84    pub tx_meta_buf_size: Option<u64>,
85    /// Size of the buffer used to receive Rx metadata.
86    pub rx_meta_buf_size: Option<u64>,
87    /// Identifies the version of the protocol used to encode and decode
88    /// metadata sent alongside payloads over the socket.
89    pub metadata_encoding_protocol_version: Option<UdpMetadataEncodingProtocolVersion>,
90    #[doc(hidden)]
91    pub __source_breaking: fidl::marker::SourceBreaking,
92}
93
94impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
95    for DatagramSocketDescribeResponse
96{
97}
98
99#[derive(Debug, Default, PartialEq)]
100pub struct DatagramSocketRecvMsgPostflightResponse {
101    /// Represents the validity of this structure.
102    ///
103    /// The structure is invalid if the peer is closed.
104    pub validity: Option<fidl::EventPair>,
105    /// Identifies whether the `SO_TIMESTAMP` or `SO_TIMESTAMPNS` control messages are
106    /// requested.
107    pub timestamp: Option<TimestampOption>,
108    /// Identifies the status (requested or not) of up to 32 control messages.
109    /// This set size should be large enough to signal the status of all cmsgs supported
110    /// by POSIX systems as of 2022. If that changes, the set can be extended by adding
111    /// additional bits fields.
112    pub requests: Option<CmsgRequests>,
113    #[doc(hidden)]
114    pub __source_breaking: fidl::marker::SourceBreaking,
115}
116
117impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
118    for DatagramSocketRecvMsgPostflightResponse
119{
120}
121
122#[derive(Debug, Default, PartialEq)]
123pub struct DatagramSocketSendMsgPreflightResponse {
124    /// The validated destination address.
125    ///
126    /// Present only in response to an unset `to` addreess.
127    pub to: Option<fidl_fuchsia_net::SocketAddress>,
128    /// Represents the validity of this structure.
129    ///
130    /// The structure is invalid if any of the elements' peer is closed.
131    /// Datagrams sent with the associated metadata after invalidation will be
132    /// silently dropped.
133    pub validity: Option<Vec<fidl::EventPair>>,
134    /// The maximum datagram size that can be sent.
135    ///
136    /// Datagrams exceeding this will be silently dropped.
137    pub maximum_size: Option<u32>,
138    #[doc(hidden)]
139    pub __source_breaking: fidl::marker::SourceBreaking,
140}
141
142impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
143    for DatagramSocketSendMsgPreflightResponse
144{
145}
146
147/// Options that can be provided at socket creation.
148#[derive(Debug, Default, PartialEq)]
149pub struct SocketCreationOptions {
150    /// The marks for the created socket. If a mark is missing from the table,
151    /// it will remain unset for the created socket.
152    pub marks: Option<fidl_fuchsia_net::Marks>,
153    /// A wake group to add the socket to on creation.
154    ///
155    /// If absent, the socket is not added to any wake group. If the token
156    /// provided does not correspond to an existing wake group, socket creation
157    /// fails with `fuchsia.posix/Errno.EINVAL`.
158    pub group: Option<fidl_fuchsia_net_resources::WakeGroupToken>,
159    #[doc(hidden)]
160    pub __source_breaking: fidl::marker::SourceBreaking,
161}
162
163impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for SocketCreationOptions {}
164
165#[derive(Debug, Default, PartialEq)]
166pub struct StreamSocketDescribeResponse {
167    /// `ZX_SOCKET_STREAM` on which data is sent and received.
168    pub socket: Option<fidl::Socket>,
169    #[doc(hidden)]
170    pub __source_breaking: fidl::marker::SourceBreaking,
171}
172
173impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
174    for StreamSocketDescribeResponse
175{
176}
177
178#[derive(Debug, Default, PartialEq)]
179pub struct SynchronousDatagramSocketDescribeResponse {
180    /// Signals additional information about the state of the socket such as
181    /// readiness or shutdown-ness.
182    pub event: Option<fidl::EventPair>,
183    #[doc(hidden)]
184    pub __source_breaking: fidl::marker::SourceBreaking,
185}
186
187impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
188    for SynchronousDatagramSocketDescribeResponse
189{
190}
191
192#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
193pub enum ProviderDatagramSocketWithOptionsResponse {
194    DatagramSocket(fidl::endpoints::ClientEnd<DatagramSocketMarker>),
195    SynchronousDatagramSocket(fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>),
196}
197
198impl ProviderDatagramSocketWithOptionsResponse {
199    #[inline]
200    pub fn ordinal(&self) -> u64 {
201        match *self {
202            Self::DatagramSocket(_) => 1,
203            Self::SynchronousDatagramSocket(_) => 2,
204        }
205    }
206}
207
208impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
209    for ProviderDatagramSocketWithOptionsResponse
210{
211}
212
213#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
214pub enum ProviderDatagramSocketResponse {
215    DatagramSocket(fidl::endpoints::ClientEnd<DatagramSocketMarker>),
216    SynchronousDatagramSocket(fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>),
217}
218
219impl ProviderDatagramSocketResponse {
220    #[inline]
221    pub fn ordinal(&self) -> u64 {
222        match *self {
223            Self::DatagramSocket(_) => 1,
224            Self::SynchronousDatagramSocket(_) => 2,
225        }
226    }
227}
228
229impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
230    for ProviderDatagramSocketResponse
231{
232}
233
234#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
235pub struct BaseDatagramSocketMarker;
236
237impl fidl::endpoints::ProtocolMarker for BaseDatagramSocketMarker {
238    type Proxy = BaseDatagramSocketProxy;
239    type RequestStream = BaseDatagramSocketRequestStream;
240    #[cfg(target_os = "fuchsia")]
241    type SynchronousProxy = BaseDatagramSocketSynchronousProxy;
242
243    const DEBUG_NAME: &'static str = "(anonymous) BaseDatagramSocket";
244}
245pub type BaseDatagramSocketGetInfoResult =
246    Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>;
247
248pub trait BaseDatagramSocketProxyInterface: Send + Sync {
249    fn r#clone(
250        &self,
251        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
252    ) -> Result<(), fidl::Error>;
253    type CloseResponseFut: std::future::Future<
254            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
255        > + Send;
256    fn r#close(&self) -> Self::CloseResponseFut;
257    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
258    fn r#query(&self) -> Self::QueryResponseFut;
259    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
260        + Send;
261    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
262    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
263        + Send;
264    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
265    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
266        + Send;
267    fn r#get_error(&self) -> Self::GetErrorResponseFut;
268    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
269        + Send;
270    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
271    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
272        + Send;
273    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
274    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
275        + Send;
276    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
277    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
278        + Send;
279    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
280    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
281        + Send;
282    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
283    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
284        + Send;
285    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
286    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
287        + Send;
288    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
289    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
290        + Send;
291    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
292    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
293        + Send;
294    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
295    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
296        + Send;
297    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
298    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
299        + Send;
300    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
301    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
302        + Send;
303    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
304    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
305        + Send;
306    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
307    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
308        + Send;
309    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
310    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
311        + Send;
312    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
313    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
314        + Send;
315    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
316    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
317        + Send;
318    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
319    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
320        + Send;
321    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
322    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
323        + Send;
324    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
325    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
326        + Send;
327    fn r#set_bind_to_interface_index(&self, value: u64)
328    -> Self::SetBindToInterfaceIndexResponseFut;
329    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
330        + Send;
331    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
332    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
333        + Send;
334    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
335    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
336        + Send;
337    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
338    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
339        + Send;
340    fn r#set_mark(
341        &self,
342        domain: fidl_fuchsia_net::MarkDomain,
343        mark: &OptionalUint32,
344    ) -> Self::SetMarkResponseFut;
345    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
346        + Send;
347    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
348    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
349        + Send;
350    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
351    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
352        + Send;
353    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
354    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
355        + Send;
356    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
357    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
358        + Send;
359    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
360    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
361        + Send;
362    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
363    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
364        + Send;
365    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
366    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
367        + Send;
368    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
369    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
370        + Send;
371    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
372    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
373        + Send;
374    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
375    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
376        + Send;
377    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
378    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
379        + Send;
380    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
381    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
382        + Send;
383    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
384    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
385        + Send;
386    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
387    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
388            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
389        > + Send;
390    fn r#set_ip_receive_type_of_service(
391        &self,
392        value: bool,
393    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
394    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
395            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
396        > + Send;
397    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
398    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
399        + Send;
400    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
401    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
402        + Send;
403    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
404    type SetIpMulticastInterfaceResponseFut: std::future::Future<
405            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
406        > + Send;
407    fn r#set_ip_multicast_interface(
408        &self,
409        iface: u64,
410        address: &fidl_fuchsia_net::Ipv4Address,
411    ) -> Self::SetIpMulticastInterfaceResponseFut;
412    type GetIpMulticastInterfaceResponseFut: std::future::Future<
413            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
414        > + Send;
415    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
416    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
417        + Send;
418    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
419    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
420        + Send;
421    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
422    type SetIpMulticastLoopbackResponseFut: std::future::Future<
423            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
424        > + Send;
425    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
426    type GetIpMulticastLoopbackResponseFut: std::future::Future<
427            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
428        > + Send;
429    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
430    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
431        + Send;
432    fn r#add_ip_membership(
433        &self,
434        membership: &IpMulticastMembership,
435    ) -> Self::AddIpMembershipResponseFut;
436    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
437        + Send;
438    fn r#drop_ip_membership(
439        &self,
440        membership: &IpMulticastMembership,
441    ) -> Self::DropIpMembershipResponseFut;
442    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
443        + Send;
444    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
445    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
446        + Send;
447    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
448    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
449            Output = Result<
450                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
451                fidl::Error,
452            >,
453        > + Send;
454    fn r#set_ip_receive_original_destination_address(
455        &self,
456        value: bool,
457    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
458    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
459            Output = Result<
460                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
461                fidl::Error,
462            >,
463        > + Send;
464    fn r#get_ip_receive_original_destination_address(
465        &self,
466    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
467    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
468        + Send;
469    fn r#add_ipv6_membership(
470        &self,
471        membership: &Ipv6MulticastMembership,
472    ) -> Self::AddIpv6MembershipResponseFut;
473    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
474        + Send;
475    fn r#drop_ipv6_membership(
476        &self,
477        membership: &Ipv6MulticastMembership,
478    ) -> Self::DropIpv6MembershipResponseFut;
479    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
480            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
481        > + Send;
482    fn r#set_ipv6_multicast_interface(
483        &self,
484        value: u64,
485    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
486    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
487            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
488        > + Send;
489    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
490    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
491        + Send;
492    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
493    -> Self::SetIpv6UnicastHopsResponseFut;
494    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
495        + Send;
496    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
497    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
498            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
499        > + Send;
500    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
501    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
502            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
503        > + Send;
504    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
505    type SetIpv6MulticastHopsResponseFut: std::future::Future<
506            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
507        > + Send;
508    fn r#set_ipv6_multicast_hops(
509        &self,
510        value: &OptionalUint8,
511    ) -> Self::SetIpv6MulticastHopsResponseFut;
512    type GetIpv6MulticastHopsResponseFut: std::future::Future<
513            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
514        > + Send;
515    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
516    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
517            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
518        > + Send;
519    fn r#set_ipv6_multicast_loopback(
520        &self,
521        value: bool,
522    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
523    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
524            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
525        > + Send;
526    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
527    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
528        + Send;
529    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
530    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
531        + Send;
532    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
533    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
534            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
535        > + Send;
536    fn r#set_ipv6_receive_traffic_class(
537        &self,
538        value: bool,
539    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
540    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
541            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
542        > + Send;
543    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
544    type SetIpv6TrafficClassResponseFut: std::future::Future<
545            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
546        > + Send;
547    fn r#set_ipv6_traffic_class(
548        &self,
549        value: &OptionalUint8,
550    ) -> Self::SetIpv6TrafficClassResponseFut;
551    type GetIpv6TrafficClassResponseFut: std::future::Future<
552            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
553        > + Send;
554    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
555    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
556            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
557        > + Send;
558    fn r#set_ipv6_receive_packet_info(
559        &self,
560        value: bool,
561    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
562    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
563            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
564        > + Send;
565    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
566    type GetOriginalDestinationResponseFut: std::future::Future<
567            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
568        > + Send;
569    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
570    type GetInfoResponseFut: std::future::Future<Output = Result<BaseDatagramSocketGetInfoResult, fidl::Error>>
571        + Send;
572    fn r#get_info(&self) -> Self::GetInfoResponseFut;
573}
574#[derive(Debug)]
575#[cfg(target_os = "fuchsia")]
576pub struct BaseDatagramSocketSynchronousProxy {
577    client: fidl::client::sync::Client,
578}
579
580#[cfg(target_os = "fuchsia")]
581impl fidl::endpoints::SynchronousProxy for BaseDatagramSocketSynchronousProxy {
582    type Proxy = BaseDatagramSocketProxy;
583    type Protocol = BaseDatagramSocketMarker;
584
585    fn from_channel(inner: fidl::Channel) -> Self {
586        Self::new(inner)
587    }
588
589    fn into_channel(self) -> fidl::Channel {
590        self.client.into_channel()
591    }
592
593    fn as_channel(&self) -> &fidl::Channel {
594        self.client.as_channel()
595    }
596}
597
598#[cfg(target_os = "fuchsia")]
599impl BaseDatagramSocketSynchronousProxy {
600    pub fn new(channel: fidl::Channel) -> Self {
601        let protocol_name =
602            <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
603        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
604    }
605
606    pub fn into_channel(self) -> fidl::Channel {
607        self.client.into_channel()
608    }
609
610    /// Waits until an event arrives and returns it. It is safe for other
611    /// threads to make concurrent requests while waiting for an event.
612    pub fn wait_for_event(
613        &self,
614        deadline: zx::MonotonicInstant,
615    ) -> Result<BaseDatagramSocketEvent, fidl::Error> {
616        BaseDatagramSocketEvent::decode(self.client.wait_for_event(deadline)?)
617    }
618
619    pub fn r#clone(
620        &self,
621        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
622    ) -> Result<(), fidl::Error> {
623        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
624            (request,),
625            0x20d8a7aba2168a79,
626            fidl::encoding::DynamicFlags::empty(),
627        )
628    }
629
630    /// Terminates the connection.
631    ///
632    /// After calling `Close`, the client must not send any other requests.
633    ///
634    /// Servers, after sending the status response, should close the connection
635    /// regardless of status and without sending an epitaph.
636    ///
637    /// Closing the client end of the channel should be semantically equivalent
638    /// to calling `Close` without knowing when the close has completed or its
639    /// status.
640    pub fn r#close(
641        &self,
642        ___deadline: zx::MonotonicInstant,
643    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
644        let _response = self.client.send_query::<
645            fidl::encoding::EmptyPayload,
646            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
647        >(
648            (),
649            0x5ac5d459ad7f657e,
650            fidl::encoding::DynamicFlags::empty(),
651            ___deadline,
652        )?;
653        Ok(_response.map(|x| x))
654    }
655
656    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
657        let _response = self.client.send_query::<
658            fidl::encoding::EmptyPayload,
659            fidl_fuchsia_unknown::QueryableQueryResponse,
660        >(
661            (),
662            0x2658edee9decfc06,
663            fidl::encoding::DynamicFlags::empty(),
664            ___deadline,
665        )?;
666        Ok(_response.protocol)
667    }
668
669    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
670    pub fn r#set_reuse_address(
671        &self,
672        mut value: bool,
673        ___deadline: zx::MonotonicInstant,
674    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
675        let _response =
676            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
677                fidl::encoding::EmptyStruct,
678                fidl_fuchsia_posix::Errno,
679            >>(
680                (value,),
681                0x1fd74ee8b9a4a876,
682                fidl::encoding::DynamicFlags::empty(),
683                ___deadline,
684            )?;
685        Ok(_response.map(|x| x))
686    }
687
688    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
689    pub fn r#get_reuse_address(
690        &self,
691        ___deadline: zx::MonotonicInstant,
692    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
693        let _response = self
694            .client
695            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
696                BaseSocketGetReuseAddressResponse,
697                fidl_fuchsia_posix::Errno,
698            >>(
699                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
700            )?;
701        Ok(_response.map(|x| x.value))
702    }
703
704    /// Get `SOL_SOCKET` -> `SO_ERROR`.
705    /// Returns the last error if there is an error set on the socket.
706    pub fn r#get_error(
707        &self,
708        ___deadline: zx::MonotonicInstant,
709    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
710        let _response =
711            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
712                fidl::encoding::EmptyStruct,
713                fidl_fuchsia_posix::Errno,
714            >>(
715                (),
716                0x5aad39b33e5f6ebb,
717                fidl::encoding::DynamicFlags::empty(),
718                ___deadline,
719            )?;
720        Ok(_response.map(|x| x))
721    }
722
723    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
724    pub fn r#set_broadcast(
725        &self,
726        mut value: bool,
727        ___deadline: zx::MonotonicInstant,
728    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
729        let _response =
730            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
731                fidl::encoding::EmptyStruct,
732                fidl_fuchsia_posix::Errno,
733            >>(
734                (value,),
735                0x6023e081ce3cd947,
736                fidl::encoding::DynamicFlags::empty(),
737                ___deadline,
738            )?;
739        Ok(_response.map(|x| x))
740    }
741
742    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
743    pub fn r#get_broadcast(
744        &self,
745        ___deadline: zx::MonotonicInstant,
746    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
747        let _response =
748            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
749                BaseSocketGetBroadcastResponse,
750                fidl_fuchsia_posix::Errno,
751            >>(
752                (),
753                0x68796fc556f9780d,
754                fidl::encoding::DynamicFlags::empty(),
755                ___deadline,
756            )?;
757        Ok(_response.map(|x| x.value))
758    }
759
760    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
761    pub fn r#set_send_buffer(
762        &self,
763        mut value_bytes: u64,
764        ___deadline: zx::MonotonicInstant,
765    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
766        let _response =
767            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
768                fidl::encoding::EmptyStruct,
769                fidl_fuchsia_posix::Errno,
770            >>(
771                (value_bytes,),
772                0x756eac32d73a7a70,
773                fidl::encoding::DynamicFlags::empty(),
774                ___deadline,
775            )?;
776        Ok(_response.map(|x| x))
777    }
778
779    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
780    pub fn r#get_send_buffer(
781        &self,
782        ___deadline: zx::MonotonicInstant,
783    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
784        let _response = self
785            .client
786            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
787                BaseSocketGetSendBufferResponse,
788                fidl_fuchsia_posix::Errno,
789            >>(
790                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
791            )?;
792        Ok(_response.map(|x| x.value_bytes))
793    }
794
795    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
796    pub fn r#set_receive_buffer(
797        &self,
798        mut value_bytes: u64,
799        ___deadline: zx::MonotonicInstant,
800    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
801        let _response =
802            self.client
803                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
804                    fidl::encoding::EmptyStruct,
805                    fidl_fuchsia_posix::Errno,
806                >>(
807                    (value_bytes,),
808                    0x6b0cf2f1919c7001,
809                    fidl::encoding::DynamicFlags::empty(),
810                    ___deadline,
811                )?;
812        Ok(_response.map(|x| x))
813    }
814
815    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
816    pub fn r#get_receive_buffer(
817        &self,
818        ___deadline: zx::MonotonicInstant,
819    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
820        let _response = self
821            .client
822            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
823                BaseSocketGetReceiveBufferResponse,
824                fidl_fuchsia_posix::Errno,
825            >>(
826                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
827            )?;
828        Ok(_response.map(|x| x.value_bytes))
829    }
830
831    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
832    pub fn r#set_keep_alive(
833        &self,
834        mut value: bool,
835        ___deadline: zx::MonotonicInstant,
836    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
837        let _response =
838            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
839                fidl::encoding::EmptyStruct,
840                fidl_fuchsia_posix::Errno,
841            >>(
842                (value,),
843                0x572df8f0b920d2c7,
844                fidl::encoding::DynamicFlags::empty(),
845                ___deadline,
846            )?;
847        Ok(_response.map(|x| x))
848    }
849
850    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
851    pub fn r#get_keep_alive(
852        &self,
853        ___deadline: zx::MonotonicInstant,
854    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
855        let _response =
856            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
857                BaseSocketGetKeepAliveResponse,
858                fidl_fuchsia_posix::Errno,
859            >>(
860                (),
861                0x2dd29d3215f2c9d2,
862                fidl::encoding::DynamicFlags::empty(),
863                ___deadline,
864            )?;
865        Ok(_response.map(|x| x.value))
866    }
867
868    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
869    pub fn r#set_out_of_band_inline(
870        &self,
871        mut value: bool,
872        ___deadline: zx::MonotonicInstant,
873    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
874        let _response =
875            self.client
876                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
877                    fidl::encoding::EmptyStruct,
878                    fidl_fuchsia_posix::Errno,
879                >>(
880                    (value,),
881                    0x3ecb49968bee439,
882                    fidl::encoding::DynamicFlags::empty(),
883                    ___deadline,
884                )?;
885        Ok(_response.map(|x| x))
886    }
887
888    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
889    pub fn r#get_out_of_band_inline(
890        &self,
891        ___deadline: zx::MonotonicInstant,
892    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
893        let _response = self
894            .client
895            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
896                BaseSocketGetOutOfBandInlineResponse,
897                fidl_fuchsia_posix::Errno,
898            >>(
899                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
900            )?;
901        Ok(_response.map(|x| x.value))
902    }
903
904    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
905    pub fn r#set_no_check(
906        &self,
907        mut value: bool,
908        ___deadline: zx::MonotonicInstant,
909    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
910        let _response =
911            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
912                fidl::encoding::EmptyStruct,
913                fidl_fuchsia_posix::Errno,
914            >>(
915                (value,),
916                0x6bbf00c53a4c78c2,
917                fidl::encoding::DynamicFlags::empty(),
918                ___deadline,
919            )?;
920        Ok(_response.map(|x| x))
921    }
922
923    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
924    pub fn r#get_no_check(
925        &self,
926        ___deadline: zx::MonotonicInstant,
927    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
928        let _response =
929            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
930                BaseSocketGetNoCheckResponse,
931                fidl_fuchsia_posix::Errno,
932            >>(
933                (),
934                0x2cd4249286417694,
935                fidl::encoding::DynamicFlags::empty(),
936                ___deadline,
937            )?;
938        Ok(_response.map(|x| x.value))
939    }
940
941    /// Set `SOL_SOCKET` -> `SO_LINGER`.
942    pub fn r#set_linger(
943        &self,
944        mut linger: bool,
945        mut length_secs: u32,
946        ___deadline: zx::MonotonicInstant,
947    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
948        let _response =
949            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
950                fidl::encoding::EmptyStruct,
951                fidl_fuchsia_posix::Errno,
952            >>(
953                (linger, length_secs),
954                0x45386351246e998e,
955                fidl::encoding::DynamicFlags::empty(),
956                ___deadline,
957            )?;
958        Ok(_response.map(|x| x))
959    }
960
961    /// Get `SOL_SOCKET` -> `SO_LINGER`.
962    pub fn r#get_linger(
963        &self,
964        ___deadline: zx::MonotonicInstant,
965    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
966        let _response =
967            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
968                BaseSocketGetLingerResponse,
969                fidl_fuchsia_posix::Errno,
970            >>(
971                (),
972                0x48eb20fc5ccb0e45,
973                fidl::encoding::DynamicFlags::empty(),
974                ___deadline,
975            )?;
976        Ok(_response.map(|x| (x.linger, x.length_secs)))
977    }
978
979    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
980    pub fn r#set_reuse_port(
981        &self,
982        mut value: bool,
983        ___deadline: zx::MonotonicInstant,
984    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
985        let _response =
986            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
987                fidl::encoding::EmptyStruct,
988                fidl_fuchsia_posix::Errno,
989            >>(
990                (value,),
991                0x24dd3e5cb36d9ccb,
992                fidl::encoding::DynamicFlags::empty(),
993                ___deadline,
994            )?;
995        Ok(_response.map(|x| x))
996    }
997
998    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
999    pub fn r#get_reuse_port(
1000        &self,
1001        ___deadline: zx::MonotonicInstant,
1002    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
1003        let _response =
1004            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1005                BaseSocketGetReusePortResponse,
1006                fidl_fuchsia_posix::Errno,
1007            >>(
1008                (),
1009                0x7a112c1ab54ff828,
1010                fidl::encoding::DynamicFlags::empty(),
1011                ___deadline,
1012            )?;
1013        Ok(_response.map(|x| x.value))
1014    }
1015
1016    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
1017    pub fn r#get_accept_conn(
1018        &self,
1019        ___deadline: zx::MonotonicInstant,
1020    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
1021        let _response = self
1022            .client
1023            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1024                BaseSocketGetAcceptConnResponse,
1025                fidl_fuchsia_posix::Errno,
1026            >>(
1027                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
1028            )?;
1029        Ok(_response.map(|x| x.value))
1030    }
1031
1032    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
1033    pub fn r#set_bind_to_device(
1034        &self,
1035        mut value: &str,
1036        ___deadline: zx::MonotonicInstant,
1037    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
1038        let _response =
1039            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
1040                fidl::encoding::EmptyStruct,
1041                fidl_fuchsia_posix::Errno,
1042            >>(
1043                (value,),
1044                0x2118b483f28aafc4,
1045                fidl::encoding::DynamicFlags::empty(),
1046                ___deadline,
1047            )?;
1048        Ok(_response.map(|x| x))
1049    }
1050
1051    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
1052    pub fn r#get_bind_to_device(
1053        &self,
1054        ___deadline: zx::MonotonicInstant,
1055    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
1056        let _response = self
1057            .client
1058            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1059                BaseSocketGetBindToDeviceResponse,
1060                fidl_fuchsia_posix::Errno,
1061            >>(
1062                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
1063            )?;
1064        Ok(_response.map(|x| x.value))
1065    }
1066
1067    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
1068    /// If `value` is 0, this clears the bound interface.
1069    pub fn r#set_bind_to_interface_index(
1070        &self,
1071        mut value: u64,
1072        ___deadline: zx::MonotonicInstant,
1073    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
1074        let _response =
1075            self.client
1076                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
1077                    fidl::encoding::EmptyStruct,
1078                    fidl_fuchsia_posix::Errno,
1079                >>(
1080                    (value,),
1081                    0x6e387a0def00821,
1082                    fidl::encoding::DynamicFlags::empty(),
1083                    ___deadline,
1084                )?;
1085        Ok(_response.map(|x| x))
1086    }
1087
1088    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
1089    pub fn r#get_bind_to_interface_index(
1090        &self,
1091        ___deadline: zx::MonotonicInstant,
1092    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
1093        let _response = self
1094            .client
1095            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1096                BaseSocketGetBindToInterfaceIndexResponse,
1097                fidl_fuchsia_posix::Errno,
1098            >>(
1099                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
1100            )?;
1101        Ok(_response.map(|x| x.value))
1102    }
1103
1104    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
1105    pub fn r#set_timestamp(
1106        &self,
1107        mut value: TimestampOption,
1108        ___deadline: zx::MonotonicInstant,
1109    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
1110        let _response =
1111            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
1112                fidl::encoding::EmptyStruct,
1113                fidl_fuchsia_posix::Errno,
1114            >>(
1115                (value,),
1116                0x285d6516c263d839,
1117                fidl::encoding::DynamicFlags::empty(),
1118                ___deadline,
1119            )?;
1120        Ok(_response.map(|x| x))
1121    }
1122
1123    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
1124    pub fn r#get_timestamp(
1125        &self,
1126        ___deadline: zx::MonotonicInstant,
1127    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
1128        let _response =
1129            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1130                BaseSocketGetTimestampResponse,
1131                fidl_fuchsia_posix::Errno,
1132            >>(
1133                (),
1134                0x49f2fffbbcc2bd27,
1135                fidl::encoding::DynamicFlags::empty(),
1136                ___deadline,
1137            )?;
1138        Ok(_response.map(|x| x.value))
1139    }
1140
1141    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
1142    /// unlike the standard SO_MARK, this API has multiple mark domains and each
1143    /// mark can be set independently in each domain.
1144    pub fn r#set_mark(
1145        &self,
1146        mut domain: fidl_fuchsia_net::MarkDomain,
1147        mut mark: &OptionalUint32,
1148        ___deadline: zx::MonotonicInstant,
1149    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
1150        let _response =
1151            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
1152                fidl::encoding::EmptyStruct,
1153                fidl_fuchsia_posix::Errno,
1154            >>(
1155                (domain, mark),
1156                0x6ead6de09f653236,
1157                fidl::encoding::DynamicFlags::empty(),
1158                ___deadline,
1159            )?;
1160        Ok(_response.map(|x| x))
1161    }
1162
1163    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
1164    /// unlike the standard SO_MARK, this API has multiple mark domains and each
1165    /// mark can be retrieved independently in each domain.
1166    pub fn r#get_mark(
1167        &self,
1168        mut domain: fidl_fuchsia_net::MarkDomain,
1169        ___deadline: zx::MonotonicInstant,
1170    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
1171        let _response =
1172            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
1173                BaseSocketGetMarkResponse,
1174                fidl_fuchsia_posix::Errno,
1175            >>(
1176                (domain,),
1177                0x57a2752c61d93d47,
1178                fidl::encoding::DynamicFlags::empty(),
1179                ___deadline,
1180            )?;
1181        Ok(_response.map(|x| x.mark))
1182    }
1183
1184    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
1185    pub fn r#get_cookie(
1186        &self,
1187        ___deadline: zx::MonotonicInstant,
1188    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
1189        let _response =
1190            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1191                BaseSocketGetCookieResponse,
1192                fidl_fuchsia_posix::Errno,
1193            >>(
1194                (),
1195                0x2c2f47fd8f924e52,
1196                fidl::encoding::DynamicFlags::empty(),
1197                ___deadline,
1198            )?;
1199        Ok(_response.map(|x| x.value))
1200    }
1201
1202    /// Sets the local address used for the socket.
1203    pub fn r#bind(
1204        &self,
1205        mut addr: &fidl_fuchsia_net::SocketAddress,
1206        ___deadline: zx::MonotonicInstant,
1207    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
1208        let _response =
1209            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
1210                fidl::encoding::EmptyStruct,
1211                fidl_fuchsia_posix::Errno,
1212            >>(
1213                (addr,),
1214                0x4bc6400ae92125d,
1215                fidl::encoding::DynamicFlags::empty(),
1216                ___deadline,
1217            )?;
1218        Ok(_response.map(|x| x))
1219    }
1220
1221    /// Initiates a connection to a remote address.
1222    pub fn r#connect(
1223        &self,
1224        mut addr: &fidl_fuchsia_net::SocketAddress,
1225        ___deadline: zx::MonotonicInstant,
1226    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
1227        let _response =
1228            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
1229                fidl::encoding::EmptyStruct,
1230                fidl_fuchsia_posix::Errno,
1231            >>(
1232                (addr,),
1233                0x5f05f19bfdd38871,
1234                fidl::encoding::DynamicFlags::empty(),
1235                ___deadline,
1236            )?;
1237        Ok(_response.map(|x| x))
1238    }
1239
1240    /// Clears connection information from this socket.
1241    pub fn r#disconnect(
1242        &self,
1243        ___deadline: zx::MonotonicInstant,
1244    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
1245        let _response =
1246            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1247                fidl::encoding::EmptyStruct,
1248                fidl_fuchsia_posix::Errno,
1249            >>(
1250                (),
1251                0x74e63b91f7b29b2,
1252                fidl::encoding::DynamicFlags::empty(),
1253                ___deadline,
1254            )?;
1255        Ok(_response.map(|x| x))
1256    }
1257
1258    /// Retrieves the local socket address.
1259    pub fn r#get_sock_name(
1260        &self,
1261        ___deadline: zx::MonotonicInstant,
1262    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
1263        let _response = self
1264            .client
1265            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1266                BaseNetworkSocketGetSockNameResponse,
1267                fidl_fuchsia_posix::Errno,
1268            >>(
1269                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
1270            )?;
1271        Ok(_response.map(|x| x.addr))
1272    }
1273
1274    /// Retrieves the remote socket address.
1275    pub fn r#get_peer_name(
1276        &self,
1277        ___deadline: zx::MonotonicInstant,
1278    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
1279        let _response = self
1280            .client
1281            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1282                BaseNetworkSocketGetPeerNameResponse,
1283                fidl_fuchsia_posix::Errno,
1284            >>(
1285                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
1286            )?;
1287        Ok(_response.map(|x| x.addr))
1288    }
1289
1290    /// Shuts down part of the socket.
1291    pub fn r#shutdown(
1292        &self,
1293        mut mode: ShutdownMode,
1294        ___deadline: zx::MonotonicInstant,
1295    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
1296        let _response =
1297            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
1298                fidl::encoding::EmptyStruct,
1299                fidl_fuchsia_posix::Errno,
1300            >>(
1301                (mode,),
1302                0x247f38b6db68c336,
1303                fidl::encoding::DynamicFlags::empty(),
1304                ___deadline,
1305            )?;
1306        Ok(_response.map(|x| x))
1307    }
1308
1309    /// Set `SOL_IP` -> `IP_TOS`.
1310    pub fn r#set_ip_type_of_service(
1311        &self,
1312        mut value: u8,
1313        ___deadline: zx::MonotonicInstant,
1314    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
1315        let _response = self.client.send_query::<
1316            BaseNetworkSocketSetIpTypeOfServiceRequest,
1317            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1318        >(
1319            (value,),
1320            0x995c600475b6d46,
1321            fidl::encoding::DynamicFlags::empty(),
1322            ___deadline,
1323        )?;
1324        Ok(_response.map(|x| x))
1325    }
1326
1327    /// Get `SOL_IP` -> `IP_TOS`.
1328    pub fn r#get_ip_type_of_service(
1329        &self,
1330        ___deadline: zx::MonotonicInstant,
1331    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
1332        let _response = self
1333            .client
1334            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1335                BaseNetworkSocketGetIpTypeOfServiceResponse,
1336                fidl_fuchsia_posix::Errno,
1337            >>(
1338                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
1339            )?;
1340        Ok(_response.map(|x| x.value))
1341    }
1342
1343    /// Set `SOL_IP` -> `IP_TTL`.
1344    pub fn r#set_ip_ttl(
1345        &self,
1346        mut value: &OptionalUint8,
1347        ___deadline: zx::MonotonicInstant,
1348    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
1349        let _response =
1350            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
1351                fidl::encoding::EmptyStruct,
1352                fidl_fuchsia_posix::Errno,
1353            >>(
1354                (value,),
1355                0x29e2424b433ae1ef,
1356                fidl::encoding::DynamicFlags::empty(),
1357                ___deadline,
1358            )?;
1359        Ok(_response.map(|x| x))
1360    }
1361
1362    /// Get `SOL_IP` -> `IP_TTL`.
1363    pub fn r#get_ip_ttl(
1364        &self,
1365        ___deadline: zx::MonotonicInstant,
1366    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
1367        let _response = self
1368            .client
1369            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1370                BaseNetworkSocketGetIpTtlResponse,
1371                fidl_fuchsia_posix::Errno,
1372            >>(
1373                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
1374            )?;
1375        Ok(_response.map(|x| x.value))
1376    }
1377
1378    /// Set `SOL_IP` -> `IP_PKTINFO`.
1379    pub fn r#set_ip_packet_info(
1380        &self,
1381        mut value: bool,
1382        ___deadline: zx::MonotonicInstant,
1383    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
1384        let _response =
1385            self.client
1386                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
1387                    fidl::encoding::EmptyStruct,
1388                    fidl_fuchsia_posix::Errno,
1389                >>(
1390                    (value,),
1391                    0x392d16bee20c0e16,
1392                    fidl::encoding::DynamicFlags::empty(),
1393                    ___deadline,
1394                )?;
1395        Ok(_response.map(|x| x))
1396    }
1397
1398    /// Get `SOL_IP` -> `IP_PKTINFO`.
1399    pub fn r#get_ip_packet_info(
1400        &self,
1401        ___deadline: zx::MonotonicInstant,
1402    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
1403        let _response = self
1404            .client
1405            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1406                BaseNetworkSocketGetIpPacketInfoResponse,
1407                fidl_fuchsia_posix::Errno,
1408            >>(
1409                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
1410            )?;
1411        Ok(_response.map(|x| x.value))
1412    }
1413
1414    /// Set `SOL_IP` -> `IP_RECVTOS`.
1415    pub fn r#set_ip_receive_type_of_service(
1416        &self,
1417        mut value: bool,
1418        ___deadline: zx::MonotonicInstant,
1419    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
1420        let _response = self.client.send_query::<
1421            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
1422            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1423        >(
1424            (value,),
1425            0x6c4f6714995f84ef,
1426            fidl::encoding::DynamicFlags::empty(),
1427            ___deadline,
1428        )?;
1429        Ok(_response.map(|x| x))
1430    }
1431
1432    /// Get `SOL_IP` -> `IP_RECVTOS`.
1433    pub fn r#get_ip_receive_type_of_service(
1434        &self,
1435        ___deadline: zx::MonotonicInstant,
1436    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
1437        let _response = self
1438            .client
1439            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1440                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
1441                fidl_fuchsia_posix::Errno,
1442            >>(
1443                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
1444            )?;
1445        Ok(_response.map(|x| x.value))
1446    }
1447
1448    /// Set `SOL_IP` -> `IP_RECVTTL`.
1449    pub fn r#set_ip_receive_ttl(
1450        &self,
1451        mut value: bool,
1452        ___deadline: zx::MonotonicInstant,
1453    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
1454        let _response =
1455            self.client
1456                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
1457                    fidl::encoding::EmptyStruct,
1458                    fidl_fuchsia_posix::Errno,
1459                >>(
1460                    (value,),
1461                    0x46f15be0ce0ab82b,
1462                    fidl::encoding::DynamicFlags::empty(),
1463                    ___deadline,
1464                )?;
1465        Ok(_response.map(|x| x))
1466    }
1467
1468    /// Get `SOL_IP` -> `IP_RECVTTL`.
1469    pub fn r#get_ip_receive_ttl(
1470        &self,
1471        ___deadline: zx::MonotonicInstant,
1472    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
1473        let _response = self
1474            .client
1475            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1476                BaseNetworkSocketGetIpReceiveTtlResponse,
1477                fidl_fuchsia_posix::Errno,
1478            >>(
1479                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
1480            )?;
1481        Ok(_response.map(|x| x.value))
1482    }
1483
1484    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
1485    pub fn r#set_ip_multicast_interface(
1486        &self,
1487        mut iface: u64,
1488        mut address: &fidl_fuchsia_net::Ipv4Address,
1489        ___deadline: zx::MonotonicInstant,
1490    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
1491        let _response = self.client.send_query::<
1492            BaseNetworkSocketSetIpMulticastInterfaceRequest,
1493            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1494        >(
1495            (iface, address,),
1496            0x752fbfa9b12befe,
1497            fidl::encoding::DynamicFlags::empty(),
1498            ___deadline,
1499        )?;
1500        Ok(_response.map(|x| x))
1501    }
1502
1503    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
1504    pub fn r#get_ip_multicast_interface(
1505        &self,
1506        ___deadline: zx::MonotonicInstant,
1507    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
1508        let _response = self
1509            .client
1510            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1511                BaseNetworkSocketGetIpMulticastInterfaceResponse,
1512                fidl_fuchsia_posix::Errno,
1513            >>(
1514                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
1515            )?;
1516        Ok(_response.map(|x| x.value))
1517    }
1518
1519    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
1520    pub fn r#set_ip_multicast_ttl(
1521        &self,
1522        mut value: &OptionalUint8,
1523        ___deadline: zx::MonotonicInstant,
1524    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
1525        let _response =
1526            self.client
1527                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
1528                    fidl::encoding::EmptyStruct,
1529                    fidl_fuchsia_posix::Errno,
1530                >>(
1531                    (value,),
1532                    0x63134d53772916a1,
1533                    fidl::encoding::DynamicFlags::empty(),
1534                    ___deadline,
1535                )?;
1536        Ok(_response.map(|x| x))
1537    }
1538
1539    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
1540    pub fn r#get_ip_multicast_ttl(
1541        &self,
1542        ___deadline: zx::MonotonicInstant,
1543    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
1544        let _response = self
1545            .client
1546            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1547                BaseNetworkSocketGetIpMulticastTtlResponse,
1548                fidl_fuchsia_posix::Errno,
1549            >>(
1550                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
1551            )?;
1552        Ok(_response.map(|x| x.value))
1553    }
1554
1555    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
1556    pub fn r#set_ip_multicast_loopback(
1557        &self,
1558        mut value: bool,
1559        ___deadline: zx::MonotonicInstant,
1560    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
1561        let _response = self.client.send_query::<
1562            BaseNetworkSocketSetIpMulticastLoopbackRequest,
1563            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1564        >(
1565            (value,),
1566            0x20c55c11f00943ea,
1567            fidl::encoding::DynamicFlags::empty(),
1568            ___deadline,
1569        )?;
1570        Ok(_response.map(|x| x))
1571    }
1572
1573    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
1574    pub fn r#get_ip_multicast_loopback(
1575        &self,
1576        ___deadline: zx::MonotonicInstant,
1577    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
1578        let _response = self
1579            .client
1580            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1581                BaseNetworkSocketGetIpMulticastLoopbackResponse,
1582                fidl_fuchsia_posix::Errno,
1583            >>(
1584                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
1585            )?;
1586        Ok(_response.map(|x| x.value))
1587    }
1588
1589    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
1590    pub fn r#add_ip_membership(
1591        &self,
1592        mut membership: &IpMulticastMembership,
1593        ___deadline: zx::MonotonicInstant,
1594    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
1595        let _response =
1596            self.client
1597                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
1598                    fidl::encoding::EmptyStruct,
1599                    fidl_fuchsia_posix::Errno,
1600                >>(
1601                    (membership,),
1602                    0x76bc7df115a3b4d0,
1603                    fidl::encoding::DynamicFlags::empty(),
1604                    ___deadline,
1605                )?;
1606        Ok(_response.map(|x| x))
1607    }
1608
1609    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
1610    pub fn r#drop_ip_membership(
1611        &self,
1612        mut membership: &IpMulticastMembership,
1613        ___deadline: zx::MonotonicInstant,
1614    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
1615        let _response =
1616            self.client
1617                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
1618                    fidl::encoding::EmptyStruct,
1619                    fidl_fuchsia_posix::Errno,
1620                >>(
1621                    (membership,),
1622                    0x2888f3099188d03,
1623                    fidl::encoding::DynamicFlags::empty(),
1624                    ___deadline,
1625                )?;
1626        Ok(_response.map(|x| x))
1627    }
1628
1629    /// Set `SOL_IP` -> `IP_TRANSPARENT`
1630    pub fn r#set_ip_transparent(
1631        &self,
1632        mut value: bool,
1633        ___deadline: zx::MonotonicInstant,
1634    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
1635        let _response =
1636            self.client
1637                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
1638                    fidl::encoding::EmptyStruct,
1639                    fidl_fuchsia_posix::Errno,
1640                >>(
1641                    (value,),
1642                    0x1ae532b0c066e3a0,
1643                    fidl::encoding::DynamicFlags::empty(),
1644                    ___deadline,
1645                )?;
1646        Ok(_response.map(|x| x))
1647    }
1648
1649    /// Get `SOL_IP` -> `IP_TRANSPARENT`
1650    pub fn r#get_ip_transparent(
1651        &self,
1652        ___deadline: zx::MonotonicInstant,
1653    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
1654        let _response = self
1655            .client
1656            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1657                BaseNetworkSocketGetIpTransparentResponse,
1658                fidl_fuchsia_posix::Errno,
1659            >>(
1660                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
1661            )?;
1662        Ok(_response.map(|x| x.value))
1663    }
1664
1665    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
1666    pub fn r#set_ip_receive_original_destination_address(
1667        &self,
1668        mut value: bool,
1669        ___deadline: zx::MonotonicInstant,
1670    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
1671        let _response = self.client.send_query::<
1672            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
1673            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1674        >(
1675            (value,),
1676            0x4722b4ce52f7840,
1677            fidl::encoding::DynamicFlags::empty(),
1678            ___deadline,
1679        )?;
1680        Ok(_response.map(|x| x))
1681    }
1682
1683    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
1684    pub fn r#get_ip_receive_original_destination_address(
1685        &self,
1686        ___deadline: zx::MonotonicInstant,
1687    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
1688        let _response = self
1689            .client
1690            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1691                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
1692                fidl_fuchsia_posix::Errno,
1693            >>(
1694                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
1695            )?;
1696        Ok(_response.map(|x| x.value))
1697    }
1698
1699    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
1700    pub fn r#add_ipv6_membership(
1701        &self,
1702        mut membership: &Ipv6MulticastMembership,
1703        ___deadline: zx::MonotonicInstant,
1704    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
1705        let _response =
1706            self.client
1707                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
1708                    fidl::encoding::EmptyStruct,
1709                    fidl_fuchsia_posix::Errno,
1710                >>(
1711                    (membership,),
1712                    0x7c94727acb4ea4b3,
1713                    fidl::encoding::DynamicFlags::empty(),
1714                    ___deadline,
1715                )?;
1716        Ok(_response.map(|x| x))
1717    }
1718
1719    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
1720    pub fn r#drop_ipv6_membership(
1721        &self,
1722        mut membership: &Ipv6MulticastMembership,
1723        ___deadline: zx::MonotonicInstant,
1724    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
1725        let _response = self.client.send_query::<
1726            BaseNetworkSocketDropIpv6MembershipRequest,
1727            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1728        >(
1729            (membership,),
1730            0x42104c70ccaba304,
1731            fidl::encoding::DynamicFlags::empty(),
1732            ___deadline,
1733        )?;
1734        Ok(_response.map(|x| x))
1735    }
1736
1737    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
1738    pub fn r#set_ipv6_multicast_interface(
1739        &self,
1740        mut value: u64,
1741        ___deadline: zx::MonotonicInstant,
1742    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
1743        let _response = self.client.send_query::<
1744            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
1745            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1746        >(
1747            (value,),
1748            0x135f76db3774ab3b,
1749            fidl::encoding::DynamicFlags::empty(),
1750            ___deadline,
1751        )?;
1752        Ok(_response.map(|x| x))
1753    }
1754
1755    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
1756    pub fn r#get_ipv6_multicast_interface(
1757        &self,
1758        ___deadline: zx::MonotonicInstant,
1759    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
1760        let _response = self
1761            .client
1762            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1763                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
1764                fidl_fuchsia_posix::Errno,
1765            >>(
1766                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
1767            )?;
1768        Ok(_response.map(|x| x.value))
1769    }
1770
1771    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
1772    pub fn r#set_ipv6_unicast_hops(
1773        &self,
1774        mut value: &OptionalUint8,
1775        ___deadline: zx::MonotonicInstant,
1776    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
1777        let _response = self.client.send_query::<
1778            BaseNetworkSocketSetIpv6UnicastHopsRequest,
1779            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1780        >(
1781            (value,),
1782            0x157d51e98f462859,
1783            fidl::encoding::DynamicFlags::empty(),
1784            ___deadline,
1785        )?;
1786        Ok(_response.map(|x| x))
1787    }
1788
1789    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
1790    pub fn r#get_ipv6_unicast_hops(
1791        &self,
1792        ___deadline: zx::MonotonicInstant,
1793    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
1794        let _response = self
1795            .client
1796            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1797                BaseNetworkSocketGetIpv6UnicastHopsResponse,
1798                fidl_fuchsia_posix::Errno,
1799            >>(
1800                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
1801            )?;
1802        Ok(_response.map(|x| x.value))
1803    }
1804
1805    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
1806    pub fn r#set_ipv6_receive_hop_limit(
1807        &self,
1808        mut value: bool,
1809        ___deadline: zx::MonotonicInstant,
1810    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
1811        let _response = self.client.send_query::<
1812            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
1813            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1814        >(
1815            (value,),
1816            0x5c24808ed2e84a1e,
1817            fidl::encoding::DynamicFlags::empty(),
1818            ___deadline,
1819        )?;
1820        Ok(_response.map(|x| x))
1821    }
1822
1823    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
1824    pub fn r#get_ipv6_receive_hop_limit(
1825        &self,
1826        ___deadline: zx::MonotonicInstant,
1827    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
1828        let _response = self
1829            .client
1830            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1831                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
1832                fidl_fuchsia_posix::Errno,
1833            >>(
1834                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
1835            )?;
1836        Ok(_response.map(|x| x.value))
1837    }
1838
1839    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
1840    pub fn r#set_ipv6_multicast_hops(
1841        &self,
1842        mut value: &OptionalUint8,
1843        ___deadline: zx::MonotonicInstant,
1844    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
1845        let _response = self.client.send_query::<
1846            BaseNetworkSocketSetIpv6MulticastHopsRequest,
1847            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1848        >(
1849            (value,),
1850            0x25b9cd4d181f82c1,
1851            fidl::encoding::DynamicFlags::empty(),
1852            ___deadline,
1853        )?;
1854        Ok(_response.map(|x| x))
1855    }
1856
1857    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
1858    pub fn r#get_ipv6_multicast_hops(
1859        &self,
1860        ___deadline: zx::MonotonicInstant,
1861    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
1862        let _response = self
1863            .client
1864            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1865                BaseNetworkSocketGetIpv6MulticastHopsResponse,
1866                fidl_fuchsia_posix::Errno,
1867            >>(
1868                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
1869            )?;
1870        Ok(_response.map(|x| x.value))
1871    }
1872
1873    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
1874    pub fn r#set_ipv6_multicast_loopback(
1875        &self,
1876        mut value: bool,
1877        ___deadline: zx::MonotonicInstant,
1878    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
1879        let _response = self.client.send_query::<
1880            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
1881            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1882        >(
1883            (value,),
1884            0x55701c409ff41b40,
1885            fidl::encoding::DynamicFlags::empty(),
1886            ___deadline,
1887        )?;
1888        Ok(_response.map(|x| x))
1889    }
1890
1891    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
1892    pub fn r#get_ipv6_multicast_loopback(
1893        &self,
1894        ___deadline: zx::MonotonicInstant,
1895    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
1896        let _response = self
1897            .client
1898            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1899                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
1900                fidl_fuchsia_posix::Errno,
1901            >>(
1902                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
1903            )?;
1904        Ok(_response.map(|x| x.value))
1905    }
1906
1907    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
1908    pub fn r#set_ipv6_only(
1909        &self,
1910        mut value: bool,
1911        ___deadline: zx::MonotonicInstant,
1912    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
1913        let _response =
1914            self.client
1915                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
1916                    fidl::encoding::EmptyStruct,
1917                    fidl_fuchsia_posix::Errno,
1918                >>(
1919                    (value,),
1920                    0x4873f1364758cbba,
1921                    fidl::encoding::DynamicFlags::empty(),
1922                    ___deadline,
1923                )?;
1924        Ok(_response.map(|x| x))
1925    }
1926
1927    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
1928    pub fn r#get_ipv6_only(
1929        &self,
1930        ___deadline: zx::MonotonicInstant,
1931    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
1932        let _response = self
1933            .client
1934            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1935                BaseNetworkSocketGetIpv6OnlyResponse,
1936                fidl_fuchsia_posix::Errno,
1937            >>(
1938                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
1939            )?;
1940        Ok(_response.map(|x| x.value))
1941    }
1942
1943    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
1944    pub fn r#set_ipv6_receive_traffic_class(
1945        &self,
1946        mut value: bool,
1947        ___deadline: zx::MonotonicInstant,
1948    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
1949        let _response = self.client.send_query::<
1950            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
1951            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1952        >(
1953            (value,),
1954            0x58f07c8788d099a0,
1955            fidl::encoding::DynamicFlags::empty(),
1956            ___deadline,
1957        )?;
1958        Ok(_response.map(|x| x))
1959    }
1960
1961    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
1962    pub fn r#get_ipv6_receive_traffic_class(
1963        &self,
1964        ___deadline: zx::MonotonicInstant,
1965    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
1966        let _response = self
1967            .client
1968            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1969                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
1970                fidl_fuchsia_posix::Errno,
1971            >>(
1972                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
1973            )?;
1974        Ok(_response.map(|x| x.value))
1975    }
1976
1977    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
1978    pub fn r#set_ipv6_traffic_class(
1979        &self,
1980        mut value: &OptionalUint8,
1981        ___deadline: zx::MonotonicInstant,
1982    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
1983        let _response = self.client.send_query::<
1984            BaseNetworkSocketSetIpv6TrafficClassRequest,
1985            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1986        >(
1987            (value,),
1988            0x6af077800c5a0b4f,
1989            fidl::encoding::DynamicFlags::empty(),
1990            ___deadline,
1991        )?;
1992        Ok(_response.map(|x| x))
1993    }
1994
1995    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
1996    pub fn r#get_ipv6_traffic_class(
1997        &self,
1998        ___deadline: zx::MonotonicInstant,
1999    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
2000        let _response = self
2001            .client
2002            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2003                BaseNetworkSocketGetIpv6TrafficClassResponse,
2004                fidl_fuchsia_posix::Errno,
2005            >>(
2006                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
2007            )?;
2008        Ok(_response.map(|x| x.value))
2009    }
2010
2011    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
2012    pub fn r#set_ipv6_receive_packet_info(
2013        &self,
2014        mut value: bool,
2015        ___deadline: zx::MonotonicInstant,
2016    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
2017        let _response = self.client.send_query::<
2018            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
2019            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
2020        >(
2021            (value,),
2022            0x19259775b1a92768,
2023            fidl::encoding::DynamicFlags::empty(),
2024            ___deadline,
2025        )?;
2026        Ok(_response.map(|x| x))
2027    }
2028
2029    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
2030    pub fn r#get_ipv6_receive_packet_info(
2031        &self,
2032        ___deadline: zx::MonotonicInstant,
2033    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
2034        let _response = self
2035            .client
2036            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2037                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
2038                fidl_fuchsia_posix::Errno,
2039            >>(
2040                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
2041            )?;
2042        Ok(_response.map(|x| x.value))
2043    }
2044
2045    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
2046    pub fn r#get_original_destination(
2047        &self,
2048        ___deadline: zx::MonotonicInstant,
2049    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
2050        let _response = self
2051            .client
2052            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2053                BaseNetworkSocketGetOriginalDestinationResponse,
2054                fidl_fuchsia_posix::Errno,
2055            >>(
2056                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
2057            )?;
2058        Ok(_response.map(|x| x.value))
2059    }
2060
2061    /// Retrieves creation information from the socket.
2062    ///
2063    /// - response `domain` the socket's associated domain.
2064    /// - response `proto` the socket's associated protocol.
2065    pub fn r#get_info(
2066        &self,
2067        ___deadline: zx::MonotonicInstant,
2068    ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
2069        let _response = self
2070            .client
2071            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2072                BaseDatagramSocketGetInfoResponse,
2073                fidl_fuchsia_posix::Errno,
2074            >>(
2075                (), 0x48aa0a1f6a32d2ed, fidl::encoding::DynamicFlags::empty(), ___deadline
2076            )?;
2077        Ok(_response.map(|x| (x.domain, x.proto)))
2078    }
2079}
2080
2081#[cfg(target_os = "fuchsia")]
2082impl From<BaseDatagramSocketSynchronousProxy> for zx::Handle {
2083    fn from(value: BaseDatagramSocketSynchronousProxy) -> Self {
2084        value.into_channel().into()
2085    }
2086}
2087
2088#[cfg(target_os = "fuchsia")]
2089impl From<fidl::Channel> for BaseDatagramSocketSynchronousProxy {
2090    fn from(value: fidl::Channel) -> Self {
2091        Self::new(value)
2092    }
2093}
2094
2095#[cfg(target_os = "fuchsia")]
2096impl fidl::endpoints::FromClient for BaseDatagramSocketSynchronousProxy {
2097    type Protocol = BaseDatagramSocketMarker;
2098
2099    fn from_client(value: fidl::endpoints::ClientEnd<BaseDatagramSocketMarker>) -> Self {
2100        Self::new(value.into_channel())
2101    }
2102}
2103
2104#[derive(Debug, Clone)]
2105pub struct BaseDatagramSocketProxy {
2106    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2107}
2108
2109impl fidl::endpoints::Proxy for BaseDatagramSocketProxy {
2110    type Protocol = BaseDatagramSocketMarker;
2111
2112    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2113        Self::new(inner)
2114    }
2115
2116    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2117        self.client.into_channel().map_err(|client| Self { client })
2118    }
2119
2120    fn as_channel(&self) -> &::fidl::AsyncChannel {
2121        self.client.as_channel()
2122    }
2123}
2124
2125impl BaseDatagramSocketProxy {
2126    /// Create a new Proxy for fuchsia.posix.socket/BaseDatagramSocket.
2127    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2128        let protocol_name =
2129            <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2130        Self { client: fidl::client::Client::new(channel, protocol_name) }
2131    }
2132
2133    /// Get a Stream of events from the remote end of the protocol.
2134    ///
2135    /// # Panics
2136    ///
2137    /// Panics if the event stream was already taken.
2138    pub fn take_event_stream(&self) -> BaseDatagramSocketEventStream {
2139        BaseDatagramSocketEventStream { event_receiver: self.client.take_event_receiver() }
2140    }
2141
2142    pub fn r#clone(
2143        &self,
2144        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
2145    ) -> Result<(), fidl::Error> {
2146        BaseDatagramSocketProxyInterface::r#clone(self, request)
2147    }
2148
2149    /// Terminates the connection.
2150    ///
2151    /// After calling `Close`, the client must not send any other requests.
2152    ///
2153    /// Servers, after sending the status response, should close the connection
2154    /// regardless of status and without sending an epitaph.
2155    ///
2156    /// Closing the client end of the channel should be semantically equivalent
2157    /// to calling `Close` without knowing when the close has completed or its
2158    /// status.
2159    pub fn r#close(
2160        &self,
2161    ) -> fidl::client::QueryResponseFut<
2162        fidl_fuchsia_unknown::CloseableCloseResult,
2163        fidl::encoding::DefaultFuchsiaResourceDialect,
2164    > {
2165        BaseDatagramSocketProxyInterface::r#close(self)
2166    }
2167
2168    pub fn r#query(
2169        &self,
2170    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
2171    {
2172        BaseDatagramSocketProxyInterface::r#query(self)
2173    }
2174
2175    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
2176    pub fn r#set_reuse_address(
2177        &self,
2178        mut value: bool,
2179    ) -> fidl::client::QueryResponseFut<
2180        BaseSocketSetReuseAddressResult,
2181        fidl::encoding::DefaultFuchsiaResourceDialect,
2182    > {
2183        BaseDatagramSocketProxyInterface::r#set_reuse_address(self, value)
2184    }
2185
2186    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
2187    pub fn r#get_reuse_address(
2188        &self,
2189    ) -> fidl::client::QueryResponseFut<
2190        BaseSocketGetReuseAddressResult,
2191        fidl::encoding::DefaultFuchsiaResourceDialect,
2192    > {
2193        BaseDatagramSocketProxyInterface::r#get_reuse_address(self)
2194    }
2195
2196    /// Get `SOL_SOCKET` -> `SO_ERROR`.
2197    /// Returns the last error if there is an error set on the socket.
2198    pub fn r#get_error(
2199        &self,
2200    ) -> fidl::client::QueryResponseFut<
2201        BaseSocketGetErrorResult,
2202        fidl::encoding::DefaultFuchsiaResourceDialect,
2203    > {
2204        BaseDatagramSocketProxyInterface::r#get_error(self)
2205    }
2206
2207    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
2208    pub fn r#set_broadcast(
2209        &self,
2210        mut value: bool,
2211    ) -> fidl::client::QueryResponseFut<
2212        BaseSocketSetBroadcastResult,
2213        fidl::encoding::DefaultFuchsiaResourceDialect,
2214    > {
2215        BaseDatagramSocketProxyInterface::r#set_broadcast(self, value)
2216    }
2217
2218    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
2219    pub fn r#get_broadcast(
2220        &self,
2221    ) -> fidl::client::QueryResponseFut<
2222        BaseSocketGetBroadcastResult,
2223        fidl::encoding::DefaultFuchsiaResourceDialect,
2224    > {
2225        BaseDatagramSocketProxyInterface::r#get_broadcast(self)
2226    }
2227
2228    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
2229    pub fn r#set_send_buffer(
2230        &self,
2231        mut value_bytes: u64,
2232    ) -> fidl::client::QueryResponseFut<
2233        BaseSocketSetSendBufferResult,
2234        fidl::encoding::DefaultFuchsiaResourceDialect,
2235    > {
2236        BaseDatagramSocketProxyInterface::r#set_send_buffer(self, value_bytes)
2237    }
2238
2239    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
2240    pub fn r#get_send_buffer(
2241        &self,
2242    ) -> fidl::client::QueryResponseFut<
2243        BaseSocketGetSendBufferResult,
2244        fidl::encoding::DefaultFuchsiaResourceDialect,
2245    > {
2246        BaseDatagramSocketProxyInterface::r#get_send_buffer(self)
2247    }
2248
2249    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
2250    pub fn r#set_receive_buffer(
2251        &self,
2252        mut value_bytes: u64,
2253    ) -> fidl::client::QueryResponseFut<
2254        BaseSocketSetReceiveBufferResult,
2255        fidl::encoding::DefaultFuchsiaResourceDialect,
2256    > {
2257        BaseDatagramSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
2258    }
2259
2260    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
2261    pub fn r#get_receive_buffer(
2262        &self,
2263    ) -> fidl::client::QueryResponseFut<
2264        BaseSocketGetReceiveBufferResult,
2265        fidl::encoding::DefaultFuchsiaResourceDialect,
2266    > {
2267        BaseDatagramSocketProxyInterface::r#get_receive_buffer(self)
2268    }
2269
2270    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
2271    pub fn r#set_keep_alive(
2272        &self,
2273        mut value: bool,
2274    ) -> fidl::client::QueryResponseFut<
2275        BaseSocketSetKeepAliveResult,
2276        fidl::encoding::DefaultFuchsiaResourceDialect,
2277    > {
2278        BaseDatagramSocketProxyInterface::r#set_keep_alive(self, value)
2279    }
2280
2281    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
2282    pub fn r#get_keep_alive(
2283        &self,
2284    ) -> fidl::client::QueryResponseFut<
2285        BaseSocketGetKeepAliveResult,
2286        fidl::encoding::DefaultFuchsiaResourceDialect,
2287    > {
2288        BaseDatagramSocketProxyInterface::r#get_keep_alive(self)
2289    }
2290
2291    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
2292    pub fn r#set_out_of_band_inline(
2293        &self,
2294        mut value: bool,
2295    ) -> fidl::client::QueryResponseFut<
2296        BaseSocketSetOutOfBandInlineResult,
2297        fidl::encoding::DefaultFuchsiaResourceDialect,
2298    > {
2299        BaseDatagramSocketProxyInterface::r#set_out_of_band_inline(self, value)
2300    }
2301
2302    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
2303    pub fn r#get_out_of_band_inline(
2304        &self,
2305    ) -> fidl::client::QueryResponseFut<
2306        BaseSocketGetOutOfBandInlineResult,
2307        fidl::encoding::DefaultFuchsiaResourceDialect,
2308    > {
2309        BaseDatagramSocketProxyInterface::r#get_out_of_band_inline(self)
2310    }
2311
2312    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
2313    pub fn r#set_no_check(
2314        &self,
2315        mut value: bool,
2316    ) -> fidl::client::QueryResponseFut<
2317        BaseSocketSetNoCheckResult,
2318        fidl::encoding::DefaultFuchsiaResourceDialect,
2319    > {
2320        BaseDatagramSocketProxyInterface::r#set_no_check(self, value)
2321    }
2322
2323    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
2324    pub fn r#get_no_check(
2325        &self,
2326    ) -> fidl::client::QueryResponseFut<
2327        BaseSocketGetNoCheckResult,
2328        fidl::encoding::DefaultFuchsiaResourceDialect,
2329    > {
2330        BaseDatagramSocketProxyInterface::r#get_no_check(self)
2331    }
2332
2333    /// Set `SOL_SOCKET` -> `SO_LINGER`.
2334    pub fn r#set_linger(
2335        &self,
2336        mut linger: bool,
2337        mut length_secs: u32,
2338    ) -> fidl::client::QueryResponseFut<
2339        BaseSocketSetLingerResult,
2340        fidl::encoding::DefaultFuchsiaResourceDialect,
2341    > {
2342        BaseDatagramSocketProxyInterface::r#set_linger(self, linger, length_secs)
2343    }
2344
2345    /// Get `SOL_SOCKET` -> `SO_LINGER`.
2346    pub fn r#get_linger(
2347        &self,
2348    ) -> fidl::client::QueryResponseFut<
2349        BaseSocketGetLingerResult,
2350        fidl::encoding::DefaultFuchsiaResourceDialect,
2351    > {
2352        BaseDatagramSocketProxyInterface::r#get_linger(self)
2353    }
2354
2355    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
2356    pub fn r#set_reuse_port(
2357        &self,
2358        mut value: bool,
2359    ) -> fidl::client::QueryResponseFut<
2360        BaseSocketSetReusePortResult,
2361        fidl::encoding::DefaultFuchsiaResourceDialect,
2362    > {
2363        BaseDatagramSocketProxyInterface::r#set_reuse_port(self, value)
2364    }
2365
2366    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
2367    pub fn r#get_reuse_port(
2368        &self,
2369    ) -> fidl::client::QueryResponseFut<
2370        BaseSocketGetReusePortResult,
2371        fidl::encoding::DefaultFuchsiaResourceDialect,
2372    > {
2373        BaseDatagramSocketProxyInterface::r#get_reuse_port(self)
2374    }
2375
2376    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
2377    pub fn r#get_accept_conn(
2378        &self,
2379    ) -> fidl::client::QueryResponseFut<
2380        BaseSocketGetAcceptConnResult,
2381        fidl::encoding::DefaultFuchsiaResourceDialect,
2382    > {
2383        BaseDatagramSocketProxyInterface::r#get_accept_conn(self)
2384    }
2385
2386    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
2387    pub fn r#set_bind_to_device(
2388        &self,
2389        mut value: &str,
2390    ) -> fidl::client::QueryResponseFut<
2391        BaseSocketSetBindToDeviceResult,
2392        fidl::encoding::DefaultFuchsiaResourceDialect,
2393    > {
2394        BaseDatagramSocketProxyInterface::r#set_bind_to_device(self, value)
2395    }
2396
2397    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
2398    pub fn r#get_bind_to_device(
2399        &self,
2400    ) -> fidl::client::QueryResponseFut<
2401        BaseSocketGetBindToDeviceResult,
2402        fidl::encoding::DefaultFuchsiaResourceDialect,
2403    > {
2404        BaseDatagramSocketProxyInterface::r#get_bind_to_device(self)
2405    }
2406
2407    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
2408    /// If `value` is 0, this clears the bound interface.
2409    pub fn r#set_bind_to_interface_index(
2410        &self,
2411        mut value: u64,
2412    ) -> fidl::client::QueryResponseFut<
2413        BaseSocketSetBindToInterfaceIndexResult,
2414        fidl::encoding::DefaultFuchsiaResourceDialect,
2415    > {
2416        BaseDatagramSocketProxyInterface::r#set_bind_to_interface_index(self, value)
2417    }
2418
2419    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
2420    pub fn r#get_bind_to_interface_index(
2421        &self,
2422    ) -> fidl::client::QueryResponseFut<
2423        BaseSocketGetBindToInterfaceIndexResult,
2424        fidl::encoding::DefaultFuchsiaResourceDialect,
2425    > {
2426        BaseDatagramSocketProxyInterface::r#get_bind_to_interface_index(self)
2427    }
2428
2429    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
2430    pub fn r#set_timestamp(
2431        &self,
2432        mut value: TimestampOption,
2433    ) -> fidl::client::QueryResponseFut<
2434        BaseSocketSetTimestampResult,
2435        fidl::encoding::DefaultFuchsiaResourceDialect,
2436    > {
2437        BaseDatagramSocketProxyInterface::r#set_timestamp(self, value)
2438    }
2439
2440    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
2441    pub fn r#get_timestamp(
2442        &self,
2443    ) -> fidl::client::QueryResponseFut<
2444        BaseSocketGetTimestampResult,
2445        fidl::encoding::DefaultFuchsiaResourceDialect,
2446    > {
2447        BaseDatagramSocketProxyInterface::r#get_timestamp(self)
2448    }
2449
2450    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
2451    /// unlike the standard SO_MARK, this API has multiple mark domains and each
2452    /// mark can be set independently in each domain.
2453    pub fn r#set_mark(
2454        &self,
2455        mut domain: fidl_fuchsia_net::MarkDomain,
2456        mut mark: &OptionalUint32,
2457    ) -> fidl::client::QueryResponseFut<
2458        BaseSocketSetMarkResult,
2459        fidl::encoding::DefaultFuchsiaResourceDialect,
2460    > {
2461        BaseDatagramSocketProxyInterface::r#set_mark(self, domain, mark)
2462    }
2463
2464    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
2465    /// unlike the standard SO_MARK, this API has multiple mark domains and each
2466    /// mark can be retrieved independently in each domain.
2467    pub fn r#get_mark(
2468        &self,
2469        mut domain: fidl_fuchsia_net::MarkDomain,
2470    ) -> fidl::client::QueryResponseFut<
2471        BaseSocketGetMarkResult,
2472        fidl::encoding::DefaultFuchsiaResourceDialect,
2473    > {
2474        BaseDatagramSocketProxyInterface::r#get_mark(self, domain)
2475    }
2476
2477    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
2478    pub fn r#get_cookie(
2479        &self,
2480    ) -> fidl::client::QueryResponseFut<
2481        BaseSocketGetCookieResult,
2482        fidl::encoding::DefaultFuchsiaResourceDialect,
2483    > {
2484        BaseDatagramSocketProxyInterface::r#get_cookie(self)
2485    }
2486
2487    /// Sets the local address used for the socket.
2488    pub fn r#bind(
2489        &self,
2490        mut addr: &fidl_fuchsia_net::SocketAddress,
2491    ) -> fidl::client::QueryResponseFut<
2492        BaseNetworkSocketBindResult,
2493        fidl::encoding::DefaultFuchsiaResourceDialect,
2494    > {
2495        BaseDatagramSocketProxyInterface::r#bind(self, addr)
2496    }
2497
2498    /// Initiates a connection to a remote address.
2499    pub fn r#connect(
2500        &self,
2501        mut addr: &fidl_fuchsia_net::SocketAddress,
2502    ) -> fidl::client::QueryResponseFut<
2503        BaseNetworkSocketConnectResult,
2504        fidl::encoding::DefaultFuchsiaResourceDialect,
2505    > {
2506        BaseDatagramSocketProxyInterface::r#connect(self, addr)
2507    }
2508
2509    /// Clears connection information from this socket.
2510    pub fn r#disconnect(
2511        &self,
2512    ) -> fidl::client::QueryResponseFut<
2513        BaseNetworkSocketDisconnectResult,
2514        fidl::encoding::DefaultFuchsiaResourceDialect,
2515    > {
2516        BaseDatagramSocketProxyInterface::r#disconnect(self)
2517    }
2518
2519    /// Retrieves the local socket address.
2520    pub fn r#get_sock_name(
2521        &self,
2522    ) -> fidl::client::QueryResponseFut<
2523        BaseNetworkSocketGetSockNameResult,
2524        fidl::encoding::DefaultFuchsiaResourceDialect,
2525    > {
2526        BaseDatagramSocketProxyInterface::r#get_sock_name(self)
2527    }
2528
2529    /// Retrieves the remote socket address.
2530    pub fn r#get_peer_name(
2531        &self,
2532    ) -> fidl::client::QueryResponseFut<
2533        BaseNetworkSocketGetPeerNameResult,
2534        fidl::encoding::DefaultFuchsiaResourceDialect,
2535    > {
2536        BaseDatagramSocketProxyInterface::r#get_peer_name(self)
2537    }
2538
2539    /// Shuts down part of the socket.
2540    pub fn r#shutdown(
2541        &self,
2542        mut mode: ShutdownMode,
2543    ) -> fidl::client::QueryResponseFut<
2544        BaseNetworkSocketShutdownResult,
2545        fidl::encoding::DefaultFuchsiaResourceDialect,
2546    > {
2547        BaseDatagramSocketProxyInterface::r#shutdown(self, mode)
2548    }
2549
2550    /// Set `SOL_IP` -> `IP_TOS`.
2551    pub fn r#set_ip_type_of_service(
2552        &self,
2553        mut value: u8,
2554    ) -> fidl::client::QueryResponseFut<
2555        BaseNetworkSocketSetIpTypeOfServiceResult,
2556        fidl::encoding::DefaultFuchsiaResourceDialect,
2557    > {
2558        BaseDatagramSocketProxyInterface::r#set_ip_type_of_service(self, value)
2559    }
2560
2561    /// Get `SOL_IP` -> `IP_TOS`.
2562    pub fn r#get_ip_type_of_service(
2563        &self,
2564    ) -> fidl::client::QueryResponseFut<
2565        BaseNetworkSocketGetIpTypeOfServiceResult,
2566        fidl::encoding::DefaultFuchsiaResourceDialect,
2567    > {
2568        BaseDatagramSocketProxyInterface::r#get_ip_type_of_service(self)
2569    }
2570
2571    /// Set `SOL_IP` -> `IP_TTL`.
2572    pub fn r#set_ip_ttl(
2573        &self,
2574        mut value: &OptionalUint8,
2575    ) -> fidl::client::QueryResponseFut<
2576        BaseNetworkSocketSetIpTtlResult,
2577        fidl::encoding::DefaultFuchsiaResourceDialect,
2578    > {
2579        BaseDatagramSocketProxyInterface::r#set_ip_ttl(self, value)
2580    }
2581
2582    /// Get `SOL_IP` -> `IP_TTL`.
2583    pub fn r#get_ip_ttl(
2584        &self,
2585    ) -> fidl::client::QueryResponseFut<
2586        BaseNetworkSocketGetIpTtlResult,
2587        fidl::encoding::DefaultFuchsiaResourceDialect,
2588    > {
2589        BaseDatagramSocketProxyInterface::r#get_ip_ttl(self)
2590    }
2591
2592    /// Set `SOL_IP` -> `IP_PKTINFO`.
2593    pub fn r#set_ip_packet_info(
2594        &self,
2595        mut value: bool,
2596    ) -> fidl::client::QueryResponseFut<
2597        BaseNetworkSocketSetIpPacketInfoResult,
2598        fidl::encoding::DefaultFuchsiaResourceDialect,
2599    > {
2600        BaseDatagramSocketProxyInterface::r#set_ip_packet_info(self, value)
2601    }
2602
2603    /// Get `SOL_IP` -> `IP_PKTINFO`.
2604    pub fn r#get_ip_packet_info(
2605        &self,
2606    ) -> fidl::client::QueryResponseFut<
2607        BaseNetworkSocketGetIpPacketInfoResult,
2608        fidl::encoding::DefaultFuchsiaResourceDialect,
2609    > {
2610        BaseDatagramSocketProxyInterface::r#get_ip_packet_info(self)
2611    }
2612
2613    /// Set `SOL_IP` -> `IP_RECVTOS`.
2614    pub fn r#set_ip_receive_type_of_service(
2615        &self,
2616        mut value: bool,
2617    ) -> fidl::client::QueryResponseFut<
2618        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
2619        fidl::encoding::DefaultFuchsiaResourceDialect,
2620    > {
2621        BaseDatagramSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
2622    }
2623
2624    /// Get `SOL_IP` -> `IP_RECVTOS`.
2625    pub fn r#get_ip_receive_type_of_service(
2626        &self,
2627    ) -> fidl::client::QueryResponseFut<
2628        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
2629        fidl::encoding::DefaultFuchsiaResourceDialect,
2630    > {
2631        BaseDatagramSocketProxyInterface::r#get_ip_receive_type_of_service(self)
2632    }
2633
2634    /// Set `SOL_IP` -> `IP_RECVTTL`.
2635    pub fn r#set_ip_receive_ttl(
2636        &self,
2637        mut value: bool,
2638    ) -> fidl::client::QueryResponseFut<
2639        BaseNetworkSocketSetIpReceiveTtlResult,
2640        fidl::encoding::DefaultFuchsiaResourceDialect,
2641    > {
2642        BaseDatagramSocketProxyInterface::r#set_ip_receive_ttl(self, value)
2643    }
2644
2645    /// Get `SOL_IP` -> `IP_RECVTTL`.
2646    pub fn r#get_ip_receive_ttl(
2647        &self,
2648    ) -> fidl::client::QueryResponseFut<
2649        BaseNetworkSocketGetIpReceiveTtlResult,
2650        fidl::encoding::DefaultFuchsiaResourceDialect,
2651    > {
2652        BaseDatagramSocketProxyInterface::r#get_ip_receive_ttl(self)
2653    }
2654
2655    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
2656    pub fn r#set_ip_multicast_interface(
2657        &self,
2658        mut iface: u64,
2659        mut address: &fidl_fuchsia_net::Ipv4Address,
2660    ) -> fidl::client::QueryResponseFut<
2661        BaseNetworkSocketSetIpMulticastInterfaceResult,
2662        fidl::encoding::DefaultFuchsiaResourceDialect,
2663    > {
2664        BaseDatagramSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
2665    }
2666
2667    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
2668    pub fn r#get_ip_multicast_interface(
2669        &self,
2670    ) -> fidl::client::QueryResponseFut<
2671        BaseNetworkSocketGetIpMulticastInterfaceResult,
2672        fidl::encoding::DefaultFuchsiaResourceDialect,
2673    > {
2674        BaseDatagramSocketProxyInterface::r#get_ip_multicast_interface(self)
2675    }
2676
2677    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
2678    pub fn r#set_ip_multicast_ttl(
2679        &self,
2680        mut value: &OptionalUint8,
2681    ) -> fidl::client::QueryResponseFut<
2682        BaseNetworkSocketSetIpMulticastTtlResult,
2683        fidl::encoding::DefaultFuchsiaResourceDialect,
2684    > {
2685        BaseDatagramSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
2686    }
2687
2688    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
2689    pub fn r#get_ip_multicast_ttl(
2690        &self,
2691    ) -> fidl::client::QueryResponseFut<
2692        BaseNetworkSocketGetIpMulticastTtlResult,
2693        fidl::encoding::DefaultFuchsiaResourceDialect,
2694    > {
2695        BaseDatagramSocketProxyInterface::r#get_ip_multicast_ttl(self)
2696    }
2697
2698    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
2699    pub fn r#set_ip_multicast_loopback(
2700        &self,
2701        mut value: bool,
2702    ) -> fidl::client::QueryResponseFut<
2703        BaseNetworkSocketSetIpMulticastLoopbackResult,
2704        fidl::encoding::DefaultFuchsiaResourceDialect,
2705    > {
2706        BaseDatagramSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
2707    }
2708
2709    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
2710    pub fn r#get_ip_multicast_loopback(
2711        &self,
2712    ) -> fidl::client::QueryResponseFut<
2713        BaseNetworkSocketGetIpMulticastLoopbackResult,
2714        fidl::encoding::DefaultFuchsiaResourceDialect,
2715    > {
2716        BaseDatagramSocketProxyInterface::r#get_ip_multicast_loopback(self)
2717    }
2718
2719    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
2720    pub fn r#add_ip_membership(
2721        &self,
2722        mut membership: &IpMulticastMembership,
2723    ) -> fidl::client::QueryResponseFut<
2724        BaseNetworkSocketAddIpMembershipResult,
2725        fidl::encoding::DefaultFuchsiaResourceDialect,
2726    > {
2727        BaseDatagramSocketProxyInterface::r#add_ip_membership(self, membership)
2728    }
2729
2730    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
2731    pub fn r#drop_ip_membership(
2732        &self,
2733        mut membership: &IpMulticastMembership,
2734    ) -> fidl::client::QueryResponseFut<
2735        BaseNetworkSocketDropIpMembershipResult,
2736        fidl::encoding::DefaultFuchsiaResourceDialect,
2737    > {
2738        BaseDatagramSocketProxyInterface::r#drop_ip_membership(self, membership)
2739    }
2740
2741    /// Set `SOL_IP` -> `IP_TRANSPARENT`
2742    pub fn r#set_ip_transparent(
2743        &self,
2744        mut value: bool,
2745    ) -> fidl::client::QueryResponseFut<
2746        BaseNetworkSocketSetIpTransparentResult,
2747        fidl::encoding::DefaultFuchsiaResourceDialect,
2748    > {
2749        BaseDatagramSocketProxyInterface::r#set_ip_transparent(self, value)
2750    }
2751
2752    /// Get `SOL_IP` -> `IP_TRANSPARENT`
2753    pub fn r#get_ip_transparent(
2754        &self,
2755    ) -> fidl::client::QueryResponseFut<
2756        BaseNetworkSocketGetIpTransparentResult,
2757        fidl::encoding::DefaultFuchsiaResourceDialect,
2758    > {
2759        BaseDatagramSocketProxyInterface::r#get_ip_transparent(self)
2760    }
2761
2762    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
2763    pub fn r#set_ip_receive_original_destination_address(
2764        &self,
2765        mut value: bool,
2766    ) -> fidl::client::QueryResponseFut<
2767        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
2768        fidl::encoding::DefaultFuchsiaResourceDialect,
2769    > {
2770        BaseDatagramSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
2771    }
2772
2773    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
2774    pub fn r#get_ip_receive_original_destination_address(
2775        &self,
2776    ) -> fidl::client::QueryResponseFut<
2777        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
2778        fidl::encoding::DefaultFuchsiaResourceDialect,
2779    > {
2780        BaseDatagramSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
2781    }
2782
2783    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
2784    pub fn r#add_ipv6_membership(
2785        &self,
2786        mut membership: &Ipv6MulticastMembership,
2787    ) -> fidl::client::QueryResponseFut<
2788        BaseNetworkSocketAddIpv6MembershipResult,
2789        fidl::encoding::DefaultFuchsiaResourceDialect,
2790    > {
2791        BaseDatagramSocketProxyInterface::r#add_ipv6_membership(self, membership)
2792    }
2793
2794    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
2795    pub fn r#drop_ipv6_membership(
2796        &self,
2797        mut membership: &Ipv6MulticastMembership,
2798    ) -> fidl::client::QueryResponseFut<
2799        BaseNetworkSocketDropIpv6MembershipResult,
2800        fidl::encoding::DefaultFuchsiaResourceDialect,
2801    > {
2802        BaseDatagramSocketProxyInterface::r#drop_ipv6_membership(self, membership)
2803    }
2804
2805    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
2806    pub fn r#set_ipv6_multicast_interface(
2807        &self,
2808        mut value: u64,
2809    ) -> fidl::client::QueryResponseFut<
2810        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
2811        fidl::encoding::DefaultFuchsiaResourceDialect,
2812    > {
2813        BaseDatagramSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
2814    }
2815
2816    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
2817    pub fn r#get_ipv6_multicast_interface(
2818        &self,
2819    ) -> fidl::client::QueryResponseFut<
2820        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
2821        fidl::encoding::DefaultFuchsiaResourceDialect,
2822    > {
2823        BaseDatagramSocketProxyInterface::r#get_ipv6_multicast_interface(self)
2824    }
2825
2826    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
2827    pub fn r#set_ipv6_unicast_hops(
2828        &self,
2829        mut value: &OptionalUint8,
2830    ) -> fidl::client::QueryResponseFut<
2831        BaseNetworkSocketSetIpv6UnicastHopsResult,
2832        fidl::encoding::DefaultFuchsiaResourceDialect,
2833    > {
2834        BaseDatagramSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
2835    }
2836
2837    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
2838    pub fn r#get_ipv6_unicast_hops(
2839        &self,
2840    ) -> fidl::client::QueryResponseFut<
2841        BaseNetworkSocketGetIpv6UnicastHopsResult,
2842        fidl::encoding::DefaultFuchsiaResourceDialect,
2843    > {
2844        BaseDatagramSocketProxyInterface::r#get_ipv6_unicast_hops(self)
2845    }
2846
2847    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
2848    pub fn r#set_ipv6_receive_hop_limit(
2849        &self,
2850        mut value: bool,
2851    ) -> fidl::client::QueryResponseFut<
2852        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
2853        fidl::encoding::DefaultFuchsiaResourceDialect,
2854    > {
2855        BaseDatagramSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
2856    }
2857
2858    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
2859    pub fn r#get_ipv6_receive_hop_limit(
2860        &self,
2861    ) -> fidl::client::QueryResponseFut<
2862        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
2863        fidl::encoding::DefaultFuchsiaResourceDialect,
2864    > {
2865        BaseDatagramSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
2866    }
2867
2868    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
2869    pub fn r#set_ipv6_multicast_hops(
2870        &self,
2871        mut value: &OptionalUint8,
2872    ) -> fidl::client::QueryResponseFut<
2873        BaseNetworkSocketSetIpv6MulticastHopsResult,
2874        fidl::encoding::DefaultFuchsiaResourceDialect,
2875    > {
2876        BaseDatagramSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
2877    }
2878
2879    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
2880    pub fn r#get_ipv6_multicast_hops(
2881        &self,
2882    ) -> fidl::client::QueryResponseFut<
2883        BaseNetworkSocketGetIpv6MulticastHopsResult,
2884        fidl::encoding::DefaultFuchsiaResourceDialect,
2885    > {
2886        BaseDatagramSocketProxyInterface::r#get_ipv6_multicast_hops(self)
2887    }
2888
2889    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
2890    pub fn r#set_ipv6_multicast_loopback(
2891        &self,
2892        mut value: bool,
2893    ) -> fidl::client::QueryResponseFut<
2894        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
2895        fidl::encoding::DefaultFuchsiaResourceDialect,
2896    > {
2897        BaseDatagramSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
2898    }
2899
2900    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
2901    pub fn r#get_ipv6_multicast_loopback(
2902        &self,
2903    ) -> fidl::client::QueryResponseFut<
2904        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
2905        fidl::encoding::DefaultFuchsiaResourceDialect,
2906    > {
2907        BaseDatagramSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
2908    }
2909
2910    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
2911    pub fn r#set_ipv6_only(
2912        &self,
2913        mut value: bool,
2914    ) -> fidl::client::QueryResponseFut<
2915        BaseNetworkSocketSetIpv6OnlyResult,
2916        fidl::encoding::DefaultFuchsiaResourceDialect,
2917    > {
2918        BaseDatagramSocketProxyInterface::r#set_ipv6_only(self, value)
2919    }
2920
2921    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
2922    pub fn r#get_ipv6_only(
2923        &self,
2924    ) -> fidl::client::QueryResponseFut<
2925        BaseNetworkSocketGetIpv6OnlyResult,
2926        fidl::encoding::DefaultFuchsiaResourceDialect,
2927    > {
2928        BaseDatagramSocketProxyInterface::r#get_ipv6_only(self)
2929    }
2930
2931    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
2932    pub fn r#set_ipv6_receive_traffic_class(
2933        &self,
2934        mut value: bool,
2935    ) -> fidl::client::QueryResponseFut<
2936        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
2937        fidl::encoding::DefaultFuchsiaResourceDialect,
2938    > {
2939        BaseDatagramSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
2940    }
2941
2942    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
2943    pub fn r#get_ipv6_receive_traffic_class(
2944        &self,
2945    ) -> fidl::client::QueryResponseFut<
2946        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
2947        fidl::encoding::DefaultFuchsiaResourceDialect,
2948    > {
2949        BaseDatagramSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
2950    }
2951
2952    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
2953    pub fn r#set_ipv6_traffic_class(
2954        &self,
2955        mut value: &OptionalUint8,
2956    ) -> fidl::client::QueryResponseFut<
2957        BaseNetworkSocketSetIpv6TrafficClassResult,
2958        fidl::encoding::DefaultFuchsiaResourceDialect,
2959    > {
2960        BaseDatagramSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
2961    }
2962
2963    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
2964    pub fn r#get_ipv6_traffic_class(
2965        &self,
2966    ) -> fidl::client::QueryResponseFut<
2967        BaseNetworkSocketGetIpv6TrafficClassResult,
2968        fidl::encoding::DefaultFuchsiaResourceDialect,
2969    > {
2970        BaseDatagramSocketProxyInterface::r#get_ipv6_traffic_class(self)
2971    }
2972
2973    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
2974    pub fn r#set_ipv6_receive_packet_info(
2975        &self,
2976        mut value: bool,
2977    ) -> fidl::client::QueryResponseFut<
2978        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
2979        fidl::encoding::DefaultFuchsiaResourceDialect,
2980    > {
2981        BaseDatagramSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
2982    }
2983
2984    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
2985    pub fn r#get_ipv6_receive_packet_info(
2986        &self,
2987    ) -> fidl::client::QueryResponseFut<
2988        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
2989        fidl::encoding::DefaultFuchsiaResourceDialect,
2990    > {
2991        BaseDatagramSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
2992    }
2993
2994    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
2995    pub fn r#get_original_destination(
2996        &self,
2997    ) -> fidl::client::QueryResponseFut<
2998        BaseNetworkSocketGetOriginalDestinationResult,
2999        fidl::encoding::DefaultFuchsiaResourceDialect,
3000    > {
3001        BaseDatagramSocketProxyInterface::r#get_original_destination(self)
3002    }
3003
3004    /// Retrieves creation information from the socket.
3005    ///
3006    /// - response `domain` the socket's associated domain.
3007    /// - response `proto` the socket's associated protocol.
3008    pub fn r#get_info(
3009        &self,
3010    ) -> fidl::client::QueryResponseFut<
3011        BaseDatagramSocketGetInfoResult,
3012        fidl::encoding::DefaultFuchsiaResourceDialect,
3013    > {
3014        BaseDatagramSocketProxyInterface::r#get_info(self)
3015    }
3016}
3017
3018impl BaseDatagramSocketProxyInterface for BaseDatagramSocketProxy {
3019    fn r#clone(
3020        &self,
3021        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
3022    ) -> Result<(), fidl::Error> {
3023        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
3024            (request,),
3025            0x20d8a7aba2168a79,
3026            fidl::encoding::DynamicFlags::empty(),
3027        )
3028    }
3029
3030    type CloseResponseFut = fidl::client::QueryResponseFut<
3031        fidl_fuchsia_unknown::CloseableCloseResult,
3032        fidl::encoding::DefaultFuchsiaResourceDialect,
3033    >;
3034    fn r#close(&self) -> Self::CloseResponseFut {
3035        fn _decode(
3036            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3037        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
3038            let _response = fidl::client::decode_transaction_body::<
3039                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3040                fidl::encoding::DefaultFuchsiaResourceDialect,
3041                0x5ac5d459ad7f657e,
3042            >(_buf?)?;
3043            Ok(_response.map(|x| x))
3044        }
3045        self.client.send_query_and_decode::<
3046            fidl::encoding::EmptyPayload,
3047            fidl_fuchsia_unknown::CloseableCloseResult,
3048        >(
3049            (),
3050            0x5ac5d459ad7f657e,
3051            fidl::encoding::DynamicFlags::empty(),
3052            _decode,
3053        )
3054    }
3055
3056    type QueryResponseFut =
3057        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
3058    fn r#query(&self) -> Self::QueryResponseFut {
3059        fn _decode(
3060            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3061        ) -> Result<Vec<u8>, fidl::Error> {
3062            let _response = fidl::client::decode_transaction_body::<
3063                fidl_fuchsia_unknown::QueryableQueryResponse,
3064                fidl::encoding::DefaultFuchsiaResourceDialect,
3065                0x2658edee9decfc06,
3066            >(_buf?)?;
3067            Ok(_response.protocol)
3068        }
3069        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
3070            (),
3071            0x2658edee9decfc06,
3072            fidl::encoding::DynamicFlags::empty(),
3073            _decode,
3074        )
3075    }
3076
3077    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
3078        BaseSocketSetReuseAddressResult,
3079        fidl::encoding::DefaultFuchsiaResourceDialect,
3080    >;
3081    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
3082        fn _decode(
3083            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3084        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
3085            let _response = fidl::client::decode_transaction_body::<
3086                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3087                fidl::encoding::DefaultFuchsiaResourceDialect,
3088                0x1fd74ee8b9a4a876,
3089            >(_buf?)?;
3090            Ok(_response.map(|x| x))
3091        }
3092        self.client.send_query_and_decode::<
3093            BaseSocketSetReuseAddressRequest,
3094            BaseSocketSetReuseAddressResult,
3095        >(
3096            (value,),
3097            0x1fd74ee8b9a4a876,
3098            fidl::encoding::DynamicFlags::empty(),
3099            _decode,
3100        )
3101    }
3102
3103    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
3104        BaseSocketGetReuseAddressResult,
3105        fidl::encoding::DefaultFuchsiaResourceDialect,
3106    >;
3107    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
3108        fn _decode(
3109            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3110        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
3111            let _response = fidl::client::decode_transaction_body::<
3112                fidl::encoding::ResultType<
3113                    BaseSocketGetReuseAddressResponse,
3114                    fidl_fuchsia_posix::Errno,
3115                >,
3116                fidl::encoding::DefaultFuchsiaResourceDialect,
3117                0x67b7206b8d1bc0a5,
3118            >(_buf?)?;
3119            Ok(_response.map(|x| x.value))
3120        }
3121        self.client
3122            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
3123                (),
3124                0x67b7206b8d1bc0a5,
3125                fidl::encoding::DynamicFlags::empty(),
3126                _decode,
3127            )
3128    }
3129
3130    type GetErrorResponseFut = fidl::client::QueryResponseFut<
3131        BaseSocketGetErrorResult,
3132        fidl::encoding::DefaultFuchsiaResourceDialect,
3133    >;
3134    fn r#get_error(&self) -> Self::GetErrorResponseFut {
3135        fn _decode(
3136            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3137        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
3138            let _response = fidl::client::decode_transaction_body::<
3139                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3140                fidl::encoding::DefaultFuchsiaResourceDialect,
3141                0x5aad39b33e5f6ebb,
3142            >(_buf?)?;
3143            Ok(_response.map(|x| x))
3144        }
3145        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
3146            (),
3147            0x5aad39b33e5f6ebb,
3148            fidl::encoding::DynamicFlags::empty(),
3149            _decode,
3150        )
3151    }
3152
3153    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
3154        BaseSocketSetBroadcastResult,
3155        fidl::encoding::DefaultFuchsiaResourceDialect,
3156    >;
3157    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
3158        fn _decode(
3159            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3160        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
3161            let _response = fidl::client::decode_transaction_body::<
3162                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3163                fidl::encoding::DefaultFuchsiaResourceDialect,
3164                0x6023e081ce3cd947,
3165            >(_buf?)?;
3166            Ok(_response.map(|x| x))
3167        }
3168        self.client
3169            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
3170                (value,),
3171                0x6023e081ce3cd947,
3172                fidl::encoding::DynamicFlags::empty(),
3173                _decode,
3174            )
3175    }
3176
3177    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
3178        BaseSocketGetBroadcastResult,
3179        fidl::encoding::DefaultFuchsiaResourceDialect,
3180    >;
3181    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
3182        fn _decode(
3183            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3184        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
3185            let _response = fidl::client::decode_transaction_body::<
3186                fidl::encoding::ResultType<
3187                    BaseSocketGetBroadcastResponse,
3188                    fidl_fuchsia_posix::Errno,
3189                >,
3190                fidl::encoding::DefaultFuchsiaResourceDialect,
3191                0x68796fc556f9780d,
3192            >(_buf?)?;
3193            Ok(_response.map(|x| x.value))
3194        }
3195        self.client
3196            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
3197                (),
3198                0x68796fc556f9780d,
3199                fidl::encoding::DynamicFlags::empty(),
3200                _decode,
3201            )
3202    }
3203
3204    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
3205        BaseSocketSetSendBufferResult,
3206        fidl::encoding::DefaultFuchsiaResourceDialect,
3207    >;
3208    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
3209        fn _decode(
3210            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3211        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
3212            let _response = fidl::client::decode_transaction_body::<
3213                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3214                fidl::encoding::DefaultFuchsiaResourceDialect,
3215                0x756eac32d73a7a70,
3216            >(_buf?)?;
3217            Ok(_response.map(|x| x))
3218        }
3219        self.client
3220            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
3221                (value_bytes,),
3222                0x756eac32d73a7a70,
3223                fidl::encoding::DynamicFlags::empty(),
3224                _decode,
3225            )
3226    }
3227
3228    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
3229        BaseSocketGetSendBufferResult,
3230        fidl::encoding::DefaultFuchsiaResourceDialect,
3231    >;
3232    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
3233        fn _decode(
3234            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3235        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
3236            let _response = fidl::client::decode_transaction_body::<
3237                fidl::encoding::ResultType<
3238                    BaseSocketGetSendBufferResponse,
3239                    fidl_fuchsia_posix::Errno,
3240                >,
3241                fidl::encoding::DefaultFuchsiaResourceDialect,
3242                0x78a52fd9c7b2410b,
3243            >(_buf?)?;
3244            Ok(_response.map(|x| x.value_bytes))
3245        }
3246        self.client
3247            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
3248                (),
3249                0x78a52fd9c7b2410b,
3250                fidl::encoding::DynamicFlags::empty(),
3251                _decode,
3252            )
3253    }
3254
3255    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
3256        BaseSocketSetReceiveBufferResult,
3257        fidl::encoding::DefaultFuchsiaResourceDialect,
3258    >;
3259    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
3260        fn _decode(
3261            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3262        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
3263            let _response = fidl::client::decode_transaction_body::<
3264                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3265                fidl::encoding::DefaultFuchsiaResourceDialect,
3266                0x6b0cf2f1919c7001,
3267            >(_buf?)?;
3268            Ok(_response.map(|x| x))
3269        }
3270        self.client.send_query_and_decode::<
3271            BaseSocketSetReceiveBufferRequest,
3272            BaseSocketSetReceiveBufferResult,
3273        >(
3274            (value_bytes,),
3275            0x6b0cf2f1919c7001,
3276            fidl::encoding::DynamicFlags::empty(),
3277            _decode,
3278        )
3279    }
3280
3281    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
3282        BaseSocketGetReceiveBufferResult,
3283        fidl::encoding::DefaultFuchsiaResourceDialect,
3284    >;
3285    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
3286        fn _decode(
3287            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3288        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
3289            let _response = fidl::client::decode_transaction_body::<
3290                fidl::encoding::ResultType<
3291                    BaseSocketGetReceiveBufferResponse,
3292                    fidl_fuchsia_posix::Errno,
3293                >,
3294                fidl::encoding::DefaultFuchsiaResourceDialect,
3295                0x14c1a4b64f709e5c,
3296            >(_buf?)?;
3297            Ok(_response.map(|x| x.value_bytes))
3298        }
3299        self.client.send_query_and_decode::<
3300            fidl::encoding::EmptyPayload,
3301            BaseSocketGetReceiveBufferResult,
3302        >(
3303            (),
3304            0x14c1a4b64f709e5c,
3305            fidl::encoding::DynamicFlags::empty(),
3306            _decode,
3307        )
3308    }
3309
3310    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
3311        BaseSocketSetKeepAliveResult,
3312        fidl::encoding::DefaultFuchsiaResourceDialect,
3313    >;
3314    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
3315        fn _decode(
3316            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3317        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
3318            let _response = fidl::client::decode_transaction_body::<
3319                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3320                fidl::encoding::DefaultFuchsiaResourceDialect,
3321                0x572df8f0b920d2c7,
3322            >(_buf?)?;
3323            Ok(_response.map(|x| x))
3324        }
3325        self.client
3326            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
3327                (value,),
3328                0x572df8f0b920d2c7,
3329                fidl::encoding::DynamicFlags::empty(),
3330                _decode,
3331            )
3332    }
3333
3334    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
3335        BaseSocketGetKeepAliveResult,
3336        fidl::encoding::DefaultFuchsiaResourceDialect,
3337    >;
3338    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
3339        fn _decode(
3340            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3341        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
3342            let _response = fidl::client::decode_transaction_body::<
3343                fidl::encoding::ResultType<
3344                    BaseSocketGetKeepAliveResponse,
3345                    fidl_fuchsia_posix::Errno,
3346                >,
3347                fidl::encoding::DefaultFuchsiaResourceDialect,
3348                0x2dd29d3215f2c9d2,
3349            >(_buf?)?;
3350            Ok(_response.map(|x| x.value))
3351        }
3352        self.client
3353            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
3354                (),
3355                0x2dd29d3215f2c9d2,
3356                fidl::encoding::DynamicFlags::empty(),
3357                _decode,
3358            )
3359    }
3360
3361    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
3362        BaseSocketSetOutOfBandInlineResult,
3363        fidl::encoding::DefaultFuchsiaResourceDialect,
3364    >;
3365    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
3366        fn _decode(
3367            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3368        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
3369            let _response = fidl::client::decode_transaction_body::<
3370                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3371                fidl::encoding::DefaultFuchsiaResourceDialect,
3372                0x3ecb49968bee439,
3373            >(_buf?)?;
3374            Ok(_response.map(|x| x))
3375        }
3376        self.client.send_query_and_decode::<
3377            BaseSocketSetOutOfBandInlineRequest,
3378            BaseSocketSetOutOfBandInlineResult,
3379        >(
3380            (value,),
3381            0x3ecb49968bee439,
3382            fidl::encoding::DynamicFlags::empty(),
3383            _decode,
3384        )
3385    }
3386
3387    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
3388        BaseSocketGetOutOfBandInlineResult,
3389        fidl::encoding::DefaultFuchsiaResourceDialect,
3390    >;
3391    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
3392        fn _decode(
3393            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3394        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
3395            let _response = fidl::client::decode_transaction_body::<
3396                fidl::encoding::ResultType<
3397                    BaseSocketGetOutOfBandInlineResponse,
3398                    fidl_fuchsia_posix::Errno,
3399                >,
3400                fidl::encoding::DefaultFuchsiaResourceDialect,
3401                0x348c1ab3aeca1745,
3402            >(_buf?)?;
3403            Ok(_response.map(|x| x.value))
3404        }
3405        self.client.send_query_and_decode::<
3406            fidl::encoding::EmptyPayload,
3407            BaseSocketGetOutOfBandInlineResult,
3408        >(
3409            (),
3410            0x348c1ab3aeca1745,
3411            fidl::encoding::DynamicFlags::empty(),
3412            _decode,
3413        )
3414    }
3415
3416    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
3417        BaseSocketSetNoCheckResult,
3418        fidl::encoding::DefaultFuchsiaResourceDialect,
3419    >;
3420    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
3421        fn _decode(
3422            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3423        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
3424            let _response = fidl::client::decode_transaction_body::<
3425                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3426                fidl::encoding::DefaultFuchsiaResourceDialect,
3427                0x6bbf00c53a4c78c2,
3428            >(_buf?)?;
3429            Ok(_response.map(|x| x))
3430        }
3431        self.client
3432            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
3433                (value,),
3434                0x6bbf00c53a4c78c2,
3435                fidl::encoding::DynamicFlags::empty(),
3436                _decode,
3437            )
3438    }
3439
3440    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
3441        BaseSocketGetNoCheckResult,
3442        fidl::encoding::DefaultFuchsiaResourceDialect,
3443    >;
3444    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
3445        fn _decode(
3446            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3447        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
3448            let _response = fidl::client::decode_transaction_body::<
3449                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
3450                fidl::encoding::DefaultFuchsiaResourceDialect,
3451                0x2cd4249286417694,
3452            >(_buf?)?;
3453            Ok(_response.map(|x| x.value))
3454        }
3455        self.client
3456            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
3457                (),
3458                0x2cd4249286417694,
3459                fidl::encoding::DynamicFlags::empty(),
3460                _decode,
3461            )
3462    }
3463
3464    type SetLingerResponseFut = fidl::client::QueryResponseFut<
3465        BaseSocketSetLingerResult,
3466        fidl::encoding::DefaultFuchsiaResourceDialect,
3467    >;
3468    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
3469        fn _decode(
3470            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3471        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
3472            let _response = fidl::client::decode_transaction_body::<
3473                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3474                fidl::encoding::DefaultFuchsiaResourceDialect,
3475                0x45386351246e998e,
3476            >(_buf?)?;
3477            Ok(_response.map(|x| x))
3478        }
3479        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
3480            (linger, length_secs),
3481            0x45386351246e998e,
3482            fidl::encoding::DynamicFlags::empty(),
3483            _decode,
3484        )
3485    }
3486
3487    type GetLingerResponseFut = fidl::client::QueryResponseFut<
3488        BaseSocketGetLingerResult,
3489        fidl::encoding::DefaultFuchsiaResourceDialect,
3490    >;
3491    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
3492        fn _decode(
3493            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3494        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
3495            let _response = fidl::client::decode_transaction_body::<
3496                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
3497                fidl::encoding::DefaultFuchsiaResourceDialect,
3498                0x48eb20fc5ccb0e45,
3499            >(_buf?)?;
3500            Ok(_response.map(|x| (x.linger, x.length_secs)))
3501        }
3502        self.client
3503            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
3504                (),
3505                0x48eb20fc5ccb0e45,
3506                fidl::encoding::DynamicFlags::empty(),
3507                _decode,
3508            )
3509    }
3510
3511    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
3512        BaseSocketSetReusePortResult,
3513        fidl::encoding::DefaultFuchsiaResourceDialect,
3514    >;
3515    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
3516        fn _decode(
3517            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3518        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
3519            let _response = fidl::client::decode_transaction_body::<
3520                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3521                fidl::encoding::DefaultFuchsiaResourceDialect,
3522                0x24dd3e5cb36d9ccb,
3523            >(_buf?)?;
3524            Ok(_response.map(|x| x))
3525        }
3526        self.client
3527            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
3528                (value,),
3529                0x24dd3e5cb36d9ccb,
3530                fidl::encoding::DynamicFlags::empty(),
3531                _decode,
3532            )
3533    }
3534
3535    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
3536        BaseSocketGetReusePortResult,
3537        fidl::encoding::DefaultFuchsiaResourceDialect,
3538    >;
3539    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
3540        fn _decode(
3541            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3542        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
3543            let _response = fidl::client::decode_transaction_body::<
3544                fidl::encoding::ResultType<
3545                    BaseSocketGetReusePortResponse,
3546                    fidl_fuchsia_posix::Errno,
3547                >,
3548                fidl::encoding::DefaultFuchsiaResourceDialect,
3549                0x7a112c1ab54ff828,
3550            >(_buf?)?;
3551            Ok(_response.map(|x| x.value))
3552        }
3553        self.client
3554            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
3555                (),
3556                0x7a112c1ab54ff828,
3557                fidl::encoding::DynamicFlags::empty(),
3558                _decode,
3559            )
3560    }
3561
3562    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
3563        BaseSocketGetAcceptConnResult,
3564        fidl::encoding::DefaultFuchsiaResourceDialect,
3565    >;
3566    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
3567        fn _decode(
3568            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3569        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
3570            let _response = fidl::client::decode_transaction_body::<
3571                fidl::encoding::ResultType<
3572                    BaseSocketGetAcceptConnResponse,
3573                    fidl_fuchsia_posix::Errno,
3574                >,
3575                fidl::encoding::DefaultFuchsiaResourceDialect,
3576                0x67ce6db6c2ec8966,
3577            >(_buf?)?;
3578            Ok(_response.map(|x| x.value))
3579        }
3580        self.client
3581            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
3582                (),
3583                0x67ce6db6c2ec8966,
3584                fidl::encoding::DynamicFlags::empty(),
3585                _decode,
3586            )
3587    }
3588
3589    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
3590        BaseSocketSetBindToDeviceResult,
3591        fidl::encoding::DefaultFuchsiaResourceDialect,
3592    >;
3593    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
3594        fn _decode(
3595            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3596        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
3597            let _response = fidl::client::decode_transaction_body::<
3598                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3599                fidl::encoding::DefaultFuchsiaResourceDialect,
3600                0x2118b483f28aafc4,
3601            >(_buf?)?;
3602            Ok(_response.map(|x| x))
3603        }
3604        self.client.send_query_and_decode::<
3605            BaseSocketSetBindToDeviceRequest,
3606            BaseSocketSetBindToDeviceResult,
3607        >(
3608            (value,),
3609            0x2118b483f28aafc4,
3610            fidl::encoding::DynamicFlags::empty(),
3611            _decode,
3612        )
3613    }
3614
3615    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
3616        BaseSocketGetBindToDeviceResult,
3617        fidl::encoding::DefaultFuchsiaResourceDialect,
3618    >;
3619    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
3620        fn _decode(
3621            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3622        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
3623            let _response = fidl::client::decode_transaction_body::<
3624                fidl::encoding::ResultType<
3625                    BaseSocketGetBindToDeviceResponse,
3626                    fidl_fuchsia_posix::Errno,
3627                >,
3628                fidl::encoding::DefaultFuchsiaResourceDialect,
3629                0x1ab1fbf0ef7906c8,
3630            >(_buf?)?;
3631            Ok(_response.map(|x| x.value))
3632        }
3633        self.client
3634            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
3635                (),
3636                0x1ab1fbf0ef7906c8,
3637                fidl::encoding::DynamicFlags::empty(),
3638                _decode,
3639            )
3640    }
3641
3642    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
3643        BaseSocketSetBindToInterfaceIndexResult,
3644        fidl::encoding::DefaultFuchsiaResourceDialect,
3645    >;
3646    fn r#set_bind_to_interface_index(
3647        &self,
3648        mut value: u64,
3649    ) -> Self::SetBindToInterfaceIndexResponseFut {
3650        fn _decode(
3651            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3652        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
3653            let _response = fidl::client::decode_transaction_body::<
3654                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3655                fidl::encoding::DefaultFuchsiaResourceDialect,
3656                0x6e387a0def00821,
3657            >(_buf?)?;
3658            Ok(_response.map(|x| x))
3659        }
3660        self.client.send_query_and_decode::<
3661            BaseSocketSetBindToInterfaceIndexRequest,
3662            BaseSocketSetBindToInterfaceIndexResult,
3663        >(
3664            (value,),
3665            0x6e387a0def00821,
3666            fidl::encoding::DynamicFlags::empty(),
3667            _decode,
3668        )
3669    }
3670
3671    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
3672        BaseSocketGetBindToInterfaceIndexResult,
3673        fidl::encoding::DefaultFuchsiaResourceDialect,
3674    >;
3675    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
3676        fn _decode(
3677            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3678        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
3679            let _response = fidl::client::decode_transaction_body::<
3680                fidl::encoding::ResultType<
3681                    BaseSocketGetBindToInterfaceIndexResponse,
3682                    fidl_fuchsia_posix::Errno,
3683                >,
3684                fidl::encoding::DefaultFuchsiaResourceDialect,
3685                0x59c31dd3e3078295,
3686            >(_buf?)?;
3687            Ok(_response.map(|x| x.value))
3688        }
3689        self.client.send_query_and_decode::<
3690            fidl::encoding::EmptyPayload,
3691            BaseSocketGetBindToInterfaceIndexResult,
3692        >(
3693            (),
3694            0x59c31dd3e3078295,
3695            fidl::encoding::DynamicFlags::empty(),
3696            _decode,
3697        )
3698    }
3699
3700    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
3701        BaseSocketSetTimestampResult,
3702        fidl::encoding::DefaultFuchsiaResourceDialect,
3703    >;
3704    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
3705        fn _decode(
3706            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3707        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
3708            let _response = fidl::client::decode_transaction_body::<
3709                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3710                fidl::encoding::DefaultFuchsiaResourceDialect,
3711                0x285d6516c263d839,
3712            >(_buf?)?;
3713            Ok(_response.map(|x| x))
3714        }
3715        self.client
3716            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
3717                (value,),
3718                0x285d6516c263d839,
3719                fidl::encoding::DynamicFlags::empty(),
3720                _decode,
3721            )
3722    }
3723
3724    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
3725        BaseSocketGetTimestampResult,
3726        fidl::encoding::DefaultFuchsiaResourceDialect,
3727    >;
3728    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
3729        fn _decode(
3730            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3731        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
3732            let _response = fidl::client::decode_transaction_body::<
3733                fidl::encoding::ResultType<
3734                    BaseSocketGetTimestampResponse,
3735                    fidl_fuchsia_posix::Errno,
3736                >,
3737                fidl::encoding::DefaultFuchsiaResourceDialect,
3738                0x49f2fffbbcc2bd27,
3739            >(_buf?)?;
3740            Ok(_response.map(|x| x.value))
3741        }
3742        self.client
3743            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
3744                (),
3745                0x49f2fffbbcc2bd27,
3746                fidl::encoding::DynamicFlags::empty(),
3747                _decode,
3748            )
3749    }
3750
3751    type SetMarkResponseFut = fidl::client::QueryResponseFut<
3752        BaseSocketSetMarkResult,
3753        fidl::encoding::DefaultFuchsiaResourceDialect,
3754    >;
3755    fn r#set_mark(
3756        &self,
3757        mut domain: fidl_fuchsia_net::MarkDomain,
3758        mut mark: &OptionalUint32,
3759    ) -> Self::SetMarkResponseFut {
3760        fn _decode(
3761            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3762        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
3763            let _response = fidl::client::decode_transaction_body::<
3764                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3765                fidl::encoding::DefaultFuchsiaResourceDialect,
3766                0x6ead6de09f653236,
3767            >(_buf?)?;
3768            Ok(_response.map(|x| x))
3769        }
3770        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
3771            (domain, mark),
3772            0x6ead6de09f653236,
3773            fidl::encoding::DynamicFlags::empty(),
3774            _decode,
3775        )
3776    }
3777
3778    type GetMarkResponseFut = fidl::client::QueryResponseFut<
3779        BaseSocketGetMarkResult,
3780        fidl::encoding::DefaultFuchsiaResourceDialect,
3781    >;
3782    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
3783        fn _decode(
3784            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3785        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
3786            let _response = fidl::client::decode_transaction_body::<
3787                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
3788                fidl::encoding::DefaultFuchsiaResourceDialect,
3789                0x57a2752c61d93d47,
3790            >(_buf?)?;
3791            Ok(_response.map(|x| x.mark))
3792        }
3793        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
3794            (domain,),
3795            0x57a2752c61d93d47,
3796            fidl::encoding::DynamicFlags::empty(),
3797            _decode,
3798        )
3799    }
3800
3801    type GetCookieResponseFut = fidl::client::QueryResponseFut<
3802        BaseSocketGetCookieResult,
3803        fidl::encoding::DefaultFuchsiaResourceDialect,
3804    >;
3805    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
3806        fn _decode(
3807            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3808        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
3809            let _response = fidl::client::decode_transaction_body::<
3810                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
3811                fidl::encoding::DefaultFuchsiaResourceDialect,
3812                0x2c2f47fd8f924e52,
3813            >(_buf?)?;
3814            Ok(_response.map(|x| x.value))
3815        }
3816        self.client
3817            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
3818                (),
3819                0x2c2f47fd8f924e52,
3820                fidl::encoding::DynamicFlags::empty(),
3821                _decode,
3822            )
3823    }
3824
3825    type BindResponseFut = fidl::client::QueryResponseFut<
3826        BaseNetworkSocketBindResult,
3827        fidl::encoding::DefaultFuchsiaResourceDialect,
3828    >;
3829    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
3830        fn _decode(
3831            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3832        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
3833            let _response = fidl::client::decode_transaction_body::<
3834                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3835                fidl::encoding::DefaultFuchsiaResourceDialect,
3836                0x4bc6400ae92125d,
3837            >(_buf?)?;
3838            Ok(_response.map(|x| x))
3839        }
3840        self.client
3841            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
3842                (addr,),
3843                0x4bc6400ae92125d,
3844                fidl::encoding::DynamicFlags::empty(),
3845                _decode,
3846            )
3847    }
3848
3849    type ConnectResponseFut = fidl::client::QueryResponseFut<
3850        BaseNetworkSocketConnectResult,
3851        fidl::encoding::DefaultFuchsiaResourceDialect,
3852    >;
3853    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
3854        fn _decode(
3855            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3856        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
3857            let _response = fidl::client::decode_transaction_body::<
3858                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3859                fidl::encoding::DefaultFuchsiaResourceDialect,
3860                0x5f05f19bfdd38871,
3861            >(_buf?)?;
3862            Ok(_response.map(|x| x))
3863        }
3864        self.client.send_query_and_decode::<
3865            BaseNetworkSocketConnectRequest,
3866            BaseNetworkSocketConnectResult,
3867        >(
3868            (addr,),
3869            0x5f05f19bfdd38871,
3870            fidl::encoding::DynamicFlags::empty(),
3871            _decode,
3872        )
3873    }
3874
3875    type DisconnectResponseFut = fidl::client::QueryResponseFut<
3876        BaseNetworkSocketDisconnectResult,
3877        fidl::encoding::DefaultFuchsiaResourceDialect,
3878    >;
3879    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
3880        fn _decode(
3881            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3882        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
3883            let _response = fidl::client::decode_transaction_body::<
3884                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3885                fidl::encoding::DefaultFuchsiaResourceDialect,
3886                0x74e63b91f7b29b2,
3887            >(_buf?)?;
3888            Ok(_response.map(|x| x))
3889        }
3890        self.client.send_query_and_decode::<
3891            fidl::encoding::EmptyPayload,
3892            BaseNetworkSocketDisconnectResult,
3893        >(
3894            (),
3895            0x74e63b91f7b29b2,
3896            fidl::encoding::DynamicFlags::empty(),
3897            _decode,
3898        )
3899    }
3900
3901    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
3902        BaseNetworkSocketGetSockNameResult,
3903        fidl::encoding::DefaultFuchsiaResourceDialect,
3904    >;
3905    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
3906        fn _decode(
3907            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3908        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
3909            let _response = fidl::client::decode_transaction_body::<
3910                fidl::encoding::ResultType<
3911                    BaseNetworkSocketGetSockNameResponse,
3912                    fidl_fuchsia_posix::Errno,
3913                >,
3914                fidl::encoding::DefaultFuchsiaResourceDialect,
3915                0x475f23f84a1a4f85,
3916            >(_buf?)?;
3917            Ok(_response.map(|x| x.addr))
3918        }
3919        self.client.send_query_and_decode::<
3920            fidl::encoding::EmptyPayload,
3921            BaseNetworkSocketGetSockNameResult,
3922        >(
3923            (),
3924            0x475f23f84a1a4f85,
3925            fidl::encoding::DynamicFlags::empty(),
3926            _decode,
3927        )
3928    }
3929
3930    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
3931        BaseNetworkSocketGetPeerNameResult,
3932        fidl::encoding::DefaultFuchsiaResourceDialect,
3933    >;
3934    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
3935        fn _decode(
3936            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3937        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
3938            let _response = fidl::client::decode_transaction_body::<
3939                fidl::encoding::ResultType<
3940                    BaseNetworkSocketGetPeerNameResponse,
3941                    fidl_fuchsia_posix::Errno,
3942                >,
3943                fidl::encoding::DefaultFuchsiaResourceDialect,
3944                0x1ffecf4bd5b6432e,
3945            >(_buf?)?;
3946            Ok(_response.map(|x| x.addr))
3947        }
3948        self.client.send_query_and_decode::<
3949            fidl::encoding::EmptyPayload,
3950            BaseNetworkSocketGetPeerNameResult,
3951        >(
3952            (),
3953            0x1ffecf4bd5b6432e,
3954            fidl::encoding::DynamicFlags::empty(),
3955            _decode,
3956        )
3957    }
3958
3959    type ShutdownResponseFut = fidl::client::QueryResponseFut<
3960        BaseNetworkSocketShutdownResult,
3961        fidl::encoding::DefaultFuchsiaResourceDialect,
3962    >;
3963    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
3964        fn _decode(
3965            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3966        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
3967            let _response = fidl::client::decode_transaction_body::<
3968                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3969                fidl::encoding::DefaultFuchsiaResourceDialect,
3970                0x247f38b6db68c336,
3971            >(_buf?)?;
3972            Ok(_response.map(|x| x))
3973        }
3974        self.client.send_query_and_decode::<
3975            BaseNetworkSocketShutdownRequest,
3976            BaseNetworkSocketShutdownResult,
3977        >(
3978            (mode,),
3979            0x247f38b6db68c336,
3980            fidl::encoding::DynamicFlags::empty(),
3981            _decode,
3982        )
3983    }
3984
3985    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
3986        BaseNetworkSocketSetIpTypeOfServiceResult,
3987        fidl::encoding::DefaultFuchsiaResourceDialect,
3988    >;
3989    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
3990        fn _decode(
3991            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3992        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
3993            let _response = fidl::client::decode_transaction_body::<
3994                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3995                fidl::encoding::DefaultFuchsiaResourceDialect,
3996                0x995c600475b6d46,
3997            >(_buf?)?;
3998            Ok(_response.map(|x| x))
3999        }
4000        self.client.send_query_and_decode::<
4001            BaseNetworkSocketSetIpTypeOfServiceRequest,
4002            BaseNetworkSocketSetIpTypeOfServiceResult,
4003        >(
4004            (value,),
4005            0x995c600475b6d46,
4006            fidl::encoding::DynamicFlags::empty(),
4007            _decode,
4008        )
4009    }
4010
4011    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
4012        BaseNetworkSocketGetIpTypeOfServiceResult,
4013        fidl::encoding::DefaultFuchsiaResourceDialect,
4014    >;
4015    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
4016        fn _decode(
4017            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4018        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
4019            let _response = fidl::client::decode_transaction_body::<
4020                fidl::encoding::ResultType<
4021                    BaseNetworkSocketGetIpTypeOfServiceResponse,
4022                    fidl_fuchsia_posix::Errno,
4023                >,
4024                fidl::encoding::DefaultFuchsiaResourceDialect,
4025                0x3814a04259f75fcb,
4026            >(_buf?)?;
4027            Ok(_response.map(|x| x.value))
4028        }
4029        self.client.send_query_and_decode::<
4030            fidl::encoding::EmptyPayload,
4031            BaseNetworkSocketGetIpTypeOfServiceResult,
4032        >(
4033            (),
4034            0x3814a04259f75fcb,
4035            fidl::encoding::DynamicFlags::empty(),
4036            _decode,
4037        )
4038    }
4039
4040    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
4041        BaseNetworkSocketSetIpTtlResult,
4042        fidl::encoding::DefaultFuchsiaResourceDialect,
4043    >;
4044    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
4045        fn _decode(
4046            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4047        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
4048            let _response = fidl::client::decode_transaction_body::<
4049                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4050                fidl::encoding::DefaultFuchsiaResourceDialect,
4051                0x29e2424b433ae1ef,
4052            >(_buf?)?;
4053            Ok(_response.map(|x| x))
4054        }
4055        self.client.send_query_and_decode::<
4056            BaseNetworkSocketSetIpTtlRequest,
4057            BaseNetworkSocketSetIpTtlResult,
4058        >(
4059            (value,),
4060            0x29e2424b433ae1ef,
4061            fidl::encoding::DynamicFlags::empty(),
4062            _decode,
4063        )
4064    }
4065
4066    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
4067        BaseNetworkSocketGetIpTtlResult,
4068        fidl::encoding::DefaultFuchsiaResourceDialect,
4069    >;
4070    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
4071        fn _decode(
4072            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4073        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
4074            let _response = fidl::client::decode_transaction_body::<
4075                fidl::encoding::ResultType<
4076                    BaseNetworkSocketGetIpTtlResponse,
4077                    fidl_fuchsia_posix::Errno,
4078                >,
4079                fidl::encoding::DefaultFuchsiaResourceDialect,
4080                0x47e47fa1f24da471,
4081            >(_buf?)?;
4082            Ok(_response.map(|x| x.value))
4083        }
4084        self.client
4085            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
4086                (),
4087                0x47e47fa1f24da471,
4088                fidl::encoding::DynamicFlags::empty(),
4089                _decode,
4090            )
4091    }
4092
4093    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
4094        BaseNetworkSocketSetIpPacketInfoResult,
4095        fidl::encoding::DefaultFuchsiaResourceDialect,
4096    >;
4097    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
4098        fn _decode(
4099            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4100        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
4101            let _response = fidl::client::decode_transaction_body::<
4102                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4103                fidl::encoding::DefaultFuchsiaResourceDialect,
4104                0x392d16bee20c0e16,
4105            >(_buf?)?;
4106            Ok(_response.map(|x| x))
4107        }
4108        self.client.send_query_and_decode::<
4109            BaseNetworkSocketSetIpPacketInfoRequest,
4110            BaseNetworkSocketSetIpPacketInfoResult,
4111        >(
4112            (value,),
4113            0x392d16bee20c0e16,
4114            fidl::encoding::DynamicFlags::empty(),
4115            _decode,
4116        )
4117    }
4118
4119    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
4120        BaseNetworkSocketGetIpPacketInfoResult,
4121        fidl::encoding::DefaultFuchsiaResourceDialect,
4122    >;
4123    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
4124        fn _decode(
4125            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4126        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
4127            let _response = fidl::client::decode_transaction_body::<
4128                fidl::encoding::ResultType<
4129                    BaseNetworkSocketGetIpPacketInfoResponse,
4130                    fidl_fuchsia_posix::Errno,
4131                >,
4132                fidl::encoding::DefaultFuchsiaResourceDialect,
4133                0x54b505f242280740,
4134            >(_buf?)?;
4135            Ok(_response.map(|x| x.value))
4136        }
4137        self.client.send_query_and_decode::<
4138            fidl::encoding::EmptyPayload,
4139            BaseNetworkSocketGetIpPacketInfoResult,
4140        >(
4141            (),
4142            0x54b505f242280740,
4143            fidl::encoding::DynamicFlags::empty(),
4144            _decode,
4145        )
4146    }
4147
4148    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
4149        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
4150        fidl::encoding::DefaultFuchsiaResourceDialect,
4151    >;
4152    fn r#set_ip_receive_type_of_service(
4153        &self,
4154        mut value: bool,
4155    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
4156        fn _decode(
4157            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4158        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
4159            let _response = fidl::client::decode_transaction_body::<
4160                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4161                fidl::encoding::DefaultFuchsiaResourceDialect,
4162                0x6c4f6714995f84ef,
4163            >(_buf?)?;
4164            Ok(_response.map(|x| x))
4165        }
4166        self.client.send_query_and_decode::<
4167            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
4168            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
4169        >(
4170            (value,),
4171            0x6c4f6714995f84ef,
4172            fidl::encoding::DynamicFlags::empty(),
4173            _decode,
4174        )
4175    }
4176
4177    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
4178        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
4179        fidl::encoding::DefaultFuchsiaResourceDialect,
4180    >;
4181    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
4182        fn _decode(
4183            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4184        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
4185            let _response = fidl::client::decode_transaction_body::<
4186                fidl::encoding::ResultType<
4187                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
4188                    fidl_fuchsia_posix::Errno,
4189                >,
4190                fidl::encoding::DefaultFuchsiaResourceDialect,
4191                0x4158ba7dc2795960,
4192            >(_buf?)?;
4193            Ok(_response.map(|x| x.value))
4194        }
4195        self.client.send_query_and_decode::<
4196            fidl::encoding::EmptyPayload,
4197            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
4198        >(
4199            (),
4200            0x4158ba7dc2795960,
4201            fidl::encoding::DynamicFlags::empty(),
4202            _decode,
4203        )
4204    }
4205
4206    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
4207        BaseNetworkSocketSetIpReceiveTtlResult,
4208        fidl::encoding::DefaultFuchsiaResourceDialect,
4209    >;
4210    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
4211        fn _decode(
4212            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4213        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
4214            let _response = fidl::client::decode_transaction_body::<
4215                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4216                fidl::encoding::DefaultFuchsiaResourceDialect,
4217                0x46f15be0ce0ab82b,
4218            >(_buf?)?;
4219            Ok(_response.map(|x| x))
4220        }
4221        self.client.send_query_and_decode::<
4222            BaseNetworkSocketSetIpReceiveTtlRequest,
4223            BaseNetworkSocketSetIpReceiveTtlResult,
4224        >(
4225            (value,),
4226            0x46f15be0ce0ab82b,
4227            fidl::encoding::DynamicFlags::empty(),
4228            _decode,
4229        )
4230    }
4231
4232    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
4233        BaseNetworkSocketGetIpReceiveTtlResult,
4234        fidl::encoding::DefaultFuchsiaResourceDialect,
4235    >;
4236    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
4237        fn _decode(
4238            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4239        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
4240            let _response = fidl::client::decode_transaction_body::<
4241                fidl::encoding::ResultType<
4242                    BaseNetworkSocketGetIpReceiveTtlResponse,
4243                    fidl_fuchsia_posix::Errno,
4244                >,
4245                fidl::encoding::DefaultFuchsiaResourceDialect,
4246                0x678ddd5a5dfa2eb5,
4247            >(_buf?)?;
4248            Ok(_response.map(|x| x.value))
4249        }
4250        self.client.send_query_and_decode::<
4251            fidl::encoding::EmptyPayload,
4252            BaseNetworkSocketGetIpReceiveTtlResult,
4253        >(
4254            (),
4255            0x678ddd5a5dfa2eb5,
4256            fidl::encoding::DynamicFlags::empty(),
4257            _decode,
4258        )
4259    }
4260
4261    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4262        BaseNetworkSocketSetIpMulticastInterfaceResult,
4263        fidl::encoding::DefaultFuchsiaResourceDialect,
4264    >;
4265    fn r#set_ip_multicast_interface(
4266        &self,
4267        mut iface: u64,
4268        mut address: &fidl_fuchsia_net::Ipv4Address,
4269    ) -> Self::SetIpMulticastInterfaceResponseFut {
4270        fn _decode(
4271            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4272        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
4273            let _response = fidl::client::decode_transaction_body::<
4274                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4275                fidl::encoding::DefaultFuchsiaResourceDialect,
4276                0x752fbfa9b12befe,
4277            >(_buf?)?;
4278            Ok(_response.map(|x| x))
4279        }
4280        self.client.send_query_and_decode::<
4281            BaseNetworkSocketSetIpMulticastInterfaceRequest,
4282            BaseNetworkSocketSetIpMulticastInterfaceResult,
4283        >(
4284            (iface, address,),
4285            0x752fbfa9b12befe,
4286            fidl::encoding::DynamicFlags::empty(),
4287            _decode,
4288        )
4289    }
4290
4291    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4292        BaseNetworkSocketGetIpMulticastInterfaceResult,
4293        fidl::encoding::DefaultFuchsiaResourceDialect,
4294    >;
4295    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
4296        fn _decode(
4297            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4298        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
4299            let _response = fidl::client::decode_transaction_body::<
4300                fidl::encoding::ResultType<
4301                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
4302                    fidl_fuchsia_posix::Errno,
4303                >,
4304                fidl::encoding::DefaultFuchsiaResourceDialect,
4305                0x320bd14c4df046c4,
4306            >(_buf?)?;
4307            Ok(_response.map(|x| x.value))
4308        }
4309        self.client.send_query_and_decode::<
4310            fidl::encoding::EmptyPayload,
4311            BaseNetworkSocketGetIpMulticastInterfaceResult,
4312        >(
4313            (),
4314            0x320bd14c4df046c4,
4315            fidl::encoding::DynamicFlags::empty(),
4316            _decode,
4317        )
4318    }
4319
4320    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
4321        BaseNetworkSocketSetIpMulticastTtlResult,
4322        fidl::encoding::DefaultFuchsiaResourceDialect,
4323    >;
4324    fn r#set_ip_multicast_ttl(
4325        &self,
4326        mut value: &OptionalUint8,
4327    ) -> Self::SetIpMulticastTtlResponseFut {
4328        fn _decode(
4329            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4330        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
4331            let _response = fidl::client::decode_transaction_body::<
4332                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4333                fidl::encoding::DefaultFuchsiaResourceDialect,
4334                0x63134d53772916a1,
4335            >(_buf?)?;
4336            Ok(_response.map(|x| x))
4337        }
4338        self.client.send_query_and_decode::<
4339            BaseNetworkSocketSetIpMulticastTtlRequest,
4340            BaseNetworkSocketSetIpMulticastTtlResult,
4341        >(
4342            (value,),
4343            0x63134d53772916a1,
4344            fidl::encoding::DynamicFlags::empty(),
4345            _decode,
4346        )
4347    }
4348
4349    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
4350        BaseNetworkSocketGetIpMulticastTtlResult,
4351        fidl::encoding::DefaultFuchsiaResourceDialect,
4352    >;
4353    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
4354        fn _decode(
4355            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4356        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
4357            let _response = fidl::client::decode_transaction_body::<
4358                fidl::encoding::ResultType<
4359                    BaseNetworkSocketGetIpMulticastTtlResponse,
4360                    fidl_fuchsia_posix::Errno,
4361                >,
4362                fidl::encoding::DefaultFuchsiaResourceDialect,
4363                0x4665cd378f39e1a,
4364            >(_buf?)?;
4365            Ok(_response.map(|x| x.value))
4366        }
4367        self.client.send_query_and_decode::<
4368            fidl::encoding::EmptyPayload,
4369            BaseNetworkSocketGetIpMulticastTtlResult,
4370        >(
4371            (),
4372            0x4665cd378f39e1a,
4373            fidl::encoding::DynamicFlags::empty(),
4374            _decode,
4375        )
4376    }
4377
4378    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4379        BaseNetworkSocketSetIpMulticastLoopbackResult,
4380        fidl::encoding::DefaultFuchsiaResourceDialect,
4381    >;
4382    fn r#set_ip_multicast_loopback(
4383        &self,
4384        mut value: bool,
4385    ) -> Self::SetIpMulticastLoopbackResponseFut {
4386        fn _decode(
4387            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4388        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
4389            let _response = fidl::client::decode_transaction_body::<
4390                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4391                fidl::encoding::DefaultFuchsiaResourceDialect,
4392                0x20c55c11f00943ea,
4393            >(_buf?)?;
4394            Ok(_response.map(|x| x))
4395        }
4396        self.client.send_query_and_decode::<
4397            BaseNetworkSocketSetIpMulticastLoopbackRequest,
4398            BaseNetworkSocketSetIpMulticastLoopbackResult,
4399        >(
4400            (value,),
4401            0x20c55c11f00943ea,
4402            fidl::encoding::DynamicFlags::empty(),
4403            _decode,
4404        )
4405    }
4406
4407    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4408        BaseNetworkSocketGetIpMulticastLoopbackResult,
4409        fidl::encoding::DefaultFuchsiaResourceDialect,
4410    >;
4411    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
4412        fn _decode(
4413            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4414        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
4415            let _response = fidl::client::decode_transaction_body::<
4416                fidl::encoding::ResultType<
4417                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
4418                    fidl_fuchsia_posix::Errno,
4419                >,
4420                fidl::encoding::DefaultFuchsiaResourceDialect,
4421                0x3b6b26ff558298f2,
4422            >(_buf?)?;
4423            Ok(_response.map(|x| x.value))
4424        }
4425        self.client.send_query_and_decode::<
4426            fidl::encoding::EmptyPayload,
4427            BaseNetworkSocketGetIpMulticastLoopbackResult,
4428        >(
4429            (),
4430            0x3b6b26ff558298f2,
4431            fidl::encoding::DynamicFlags::empty(),
4432            _decode,
4433        )
4434    }
4435
4436    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
4437        BaseNetworkSocketAddIpMembershipResult,
4438        fidl::encoding::DefaultFuchsiaResourceDialect,
4439    >;
4440    fn r#add_ip_membership(
4441        &self,
4442        mut membership: &IpMulticastMembership,
4443    ) -> Self::AddIpMembershipResponseFut {
4444        fn _decode(
4445            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4446        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
4447            let _response = fidl::client::decode_transaction_body::<
4448                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4449                fidl::encoding::DefaultFuchsiaResourceDialect,
4450                0x76bc7df115a3b4d0,
4451            >(_buf?)?;
4452            Ok(_response.map(|x| x))
4453        }
4454        self.client.send_query_and_decode::<
4455            BaseNetworkSocketAddIpMembershipRequest,
4456            BaseNetworkSocketAddIpMembershipResult,
4457        >(
4458            (membership,),
4459            0x76bc7df115a3b4d0,
4460            fidl::encoding::DynamicFlags::empty(),
4461            _decode,
4462        )
4463    }
4464
4465    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
4466        BaseNetworkSocketDropIpMembershipResult,
4467        fidl::encoding::DefaultFuchsiaResourceDialect,
4468    >;
4469    fn r#drop_ip_membership(
4470        &self,
4471        mut membership: &IpMulticastMembership,
4472    ) -> Self::DropIpMembershipResponseFut {
4473        fn _decode(
4474            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4475        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
4476            let _response = fidl::client::decode_transaction_body::<
4477                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4478                fidl::encoding::DefaultFuchsiaResourceDialect,
4479                0x2888f3099188d03,
4480            >(_buf?)?;
4481            Ok(_response.map(|x| x))
4482        }
4483        self.client.send_query_and_decode::<
4484            BaseNetworkSocketDropIpMembershipRequest,
4485            BaseNetworkSocketDropIpMembershipResult,
4486        >(
4487            (membership,),
4488            0x2888f3099188d03,
4489            fidl::encoding::DynamicFlags::empty(),
4490            _decode,
4491        )
4492    }
4493
4494    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
4495        BaseNetworkSocketSetIpTransparentResult,
4496        fidl::encoding::DefaultFuchsiaResourceDialect,
4497    >;
4498    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
4499        fn _decode(
4500            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4501        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
4502            let _response = fidl::client::decode_transaction_body::<
4503                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4504                fidl::encoding::DefaultFuchsiaResourceDialect,
4505                0x1ae532b0c066e3a0,
4506            >(_buf?)?;
4507            Ok(_response.map(|x| x))
4508        }
4509        self.client.send_query_and_decode::<
4510            BaseNetworkSocketSetIpTransparentRequest,
4511            BaseNetworkSocketSetIpTransparentResult,
4512        >(
4513            (value,),
4514            0x1ae532b0c066e3a0,
4515            fidl::encoding::DynamicFlags::empty(),
4516            _decode,
4517        )
4518    }
4519
4520    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
4521        BaseNetworkSocketGetIpTransparentResult,
4522        fidl::encoding::DefaultFuchsiaResourceDialect,
4523    >;
4524    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
4525        fn _decode(
4526            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4527        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
4528            let _response = fidl::client::decode_transaction_body::<
4529                fidl::encoding::ResultType<
4530                    BaseNetworkSocketGetIpTransparentResponse,
4531                    fidl_fuchsia_posix::Errno,
4532                >,
4533                fidl::encoding::DefaultFuchsiaResourceDialect,
4534                0x51d43695962ebfb5,
4535            >(_buf?)?;
4536            Ok(_response.map(|x| x.value))
4537        }
4538        self.client.send_query_and_decode::<
4539            fidl::encoding::EmptyPayload,
4540            BaseNetworkSocketGetIpTransparentResult,
4541        >(
4542            (),
4543            0x51d43695962ebfb5,
4544            fidl::encoding::DynamicFlags::empty(),
4545            _decode,
4546        )
4547    }
4548
4549    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
4550        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
4551        fidl::encoding::DefaultFuchsiaResourceDialect,
4552    >;
4553    fn r#set_ip_receive_original_destination_address(
4554        &self,
4555        mut value: bool,
4556    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
4557        fn _decode(
4558            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4559        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
4560        {
4561            let _response = fidl::client::decode_transaction_body::<
4562                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4563                fidl::encoding::DefaultFuchsiaResourceDialect,
4564                0x4722b4ce52f7840,
4565            >(_buf?)?;
4566            Ok(_response.map(|x| x))
4567        }
4568        self.client.send_query_and_decode::<
4569            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
4570            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
4571        >(
4572            (value,),
4573            0x4722b4ce52f7840,
4574            fidl::encoding::DynamicFlags::empty(),
4575            _decode,
4576        )
4577    }
4578
4579    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
4580        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
4581        fidl::encoding::DefaultFuchsiaResourceDialect,
4582    >;
4583    fn r#get_ip_receive_original_destination_address(
4584        &self,
4585    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
4586        fn _decode(
4587            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4588        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
4589        {
4590            let _response = fidl::client::decode_transaction_body::<
4591                fidl::encoding::ResultType<
4592                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
4593                    fidl_fuchsia_posix::Errno,
4594                >,
4595                fidl::encoding::DefaultFuchsiaResourceDialect,
4596                0x2a0e7dc5d6bfdfe9,
4597            >(_buf?)?;
4598            Ok(_response.map(|x| x.value))
4599        }
4600        self.client.send_query_and_decode::<
4601            fidl::encoding::EmptyPayload,
4602            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
4603        >(
4604            (),
4605            0x2a0e7dc5d6bfdfe9,
4606            fidl::encoding::DynamicFlags::empty(),
4607            _decode,
4608        )
4609    }
4610
4611    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
4612        BaseNetworkSocketAddIpv6MembershipResult,
4613        fidl::encoding::DefaultFuchsiaResourceDialect,
4614    >;
4615    fn r#add_ipv6_membership(
4616        &self,
4617        mut membership: &Ipv6MulticastMembership,
4618    ) -> Self::AddIpv6MembershipResponseFut {
4619        fn _decode(
4620            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4621        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
4622            let _response = fidl::client::decode_transaction_body::<
4623                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4624                fidl::encoding::DefaultFuchsiaResourceDialect,
4625                0x7c94727acb4ea4b3,
4626            >(_buf?)?;
4627            Ok(_response.map(|x| x))
4628        }
4629        self.client.send_query_and_decode::<
4630            BaseNetworkSocketAddIpv6MembershipRequest,
4631            BaseNetworkSocketAddIpv6MembershipResult,
4632        >(
4633            (membership,),
4634            0x7c94727acb4ea4b3,
4635            fidl::encoding::DynamicFlags::empty(),
4636            _decode,
4637        )
4638    }
4639
4640    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
4641        BaseNetworkSocketDropIpv6MembershipResult,
4642        fidl::encoding::DefaultFuchsiaResourceDialect,
4643    >;
4644    fn r#drop_ipv6_membership(
4645        &self,
4646        mut membership: &Ipv6MulticastMembership,
4647    ) -> Self::DropIpv6MembershipResponseFut {
4648        fn _decode(
4649            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4650        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
4651            let _response = fidl::client::decode_transaction_body::<
4652                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4653                fidl::encoding::DefaultFuchsiaResourceDialect,
4654                0x42104c70ccaba304,
4655            >(_buf?)?;
4656            Ok(_response.map(|x| x))
4657        }
4658        self.client.send_query_and_decode::<
4659            BaseNetworkSocketDropIpv6MembershipRequest,
4660            BaseNetworkSocketDropIpv6MembershipResult,
4661        >(
4662            (membership,),
4663            0x42104c70ccaba304,
4664            fidl::encoding::DynamicFlags::empty(),
4665            _decode,
4666        )
4667    }
4668
4669    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4670        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
4671        fidl::encoding::DefaultFuchsiaResourceDialect,
4672    >;
4673    fn r#set_ipv6_multicast_interface(
4674        &self,
4675        mut value: u64,
4676    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
4677        fn _decode(
4678            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4679        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
4680            let _response = fidl::client::decode_transaction_body::<
4681                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4682                fidl::encoding::DefaultFuchsiaResourceDialect,
4683                0x135f76db3774ab3b,
4684            >(_buf?)?;
4685            Ok(_response.map(|x| x))
4686        }
4687        self.client.send_query_and_decode::<
4688            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
4689            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
4690        >(
4691            (value,),
4692            0x135f76db3774ab3b,
4693            fidl::encoding::DynamicFlags::empty(),
4694            _decode,
4695        )
4696    }
4697
4698    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4699        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
4700        fidl::encoding::DefaultFuchsiaResourceDialect,
4701    >;
4702    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
4703        fn _decode(
4704            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4705        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
4706            let _response = fidl::client::decode_transaction_body::<
4707                fidl::encoding::ResultType<
4708                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
4709                    fidl_fuchsia_posix::Errno,
4710                >,
4711                fidl::encoding::DefaultFuchsiaResourceDialect,
4712                0x1f26fcdd348f1882,
4713            >(_buf?)?;
4714            Ok(_response.map(|x| x.value))
4715        }
4716        self.client.send_query_and_decode::<
4717            fidl::encoding::EmptyPayload,
4718            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
4719        >(
4720            (),
4721            0x1f26fcdd348f1882,
4722            fidl::encoding::DynamicFlags::empty(),
4723            _decode,
4724        )
4725    }
4726
4727    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
4728        BaseNetworkSocketSetIpv6UnicastHopsResult,
4729        fidl::encoding::DefaultFuchsiaResourceDialect,
4730    >;
4731    fn r#set_ipv6_unicast_hops(
4732        &self,
4733        mut value: &OptionalUint8,
4734    ) -> Self::SetIpv6UnicastHopsResponseFut {
4735        fn _decode(
4736            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4737        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
4738            let _response = fidl::client::decode_transaction_body::<
4739                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4740                fidl::encoding::DefaultFuchsiaResourceDialect,
4741                0x157d51e98f462859,
4742            >(_buf?)?;
4743            Ok(_response.map(|x| x))
4744        }
4745        self.client.send_query_and_decode::<
4746            BaseNetworkSocketSetIpv6UnicastHopsRequest,
4747            BaseNetworkSocketSetIpv6UnicastHopsResult,
4748        >(
4749            (value,),
4750            0x157d51e98f462859,
4751            fidl::encoding::DynamicFlags::empty(),
4752            _decode,
4753        )
4754    }
4755
4756    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
4757        BaseNetworkSocketGetIpv6UnicastHopsResult,
4758        fidl::encoding::DefaultFuchsiaResourceDialect,
4759    >;
4760    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
4761        fn _decode(
4762            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4763        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
4764            let _response = fidl::client::decode_transaction_body::<
4765                fidl::encoding::ResultType<
4766                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
4767                    fidl_fuchsia_posix::Errno,
4768                >,
4769                fidl::encoding::DefaultFuchsiaResourceDialect,
4770                0x21f4641cad8bd8d2,
4771            >(_buf?)?;
4772            Ok(_response.map(|x| x.value))
4773        }
4774        self.client.send_query_and_decode::<
4775            fidl::encoding::EmptyPayload,
4776            BaseNetworkSocketGetIpv6UnicastHopsResult,
4777        >(
4778            (),
4779            0x21f4641cad8bd8d2,
4780            fidl::encoding::DynamicFlags::empty(),
4781            _decode,
4782        )
4783    }
4784
4785    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
4786        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
4787        fidl::encoding::DefaultFuchsiaResourceDialect,
4788    >;
4789    fn r#set_ipv6_receive_hop_limit(
4790        &self,
4791        mut value: bool,
4792    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
4793        fn _decode(
4794            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4795        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
4796            let _response = fidl::client::decode_transaction_body::<
4797                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4798                fidl::encoding::DefaultFuchsiaResourceDialect,
4799                0x5c24808ed2e84a1e,
4800            >(_buf?)?;
4801            Ok(_response.map(|x| x))
4802        }
4803        self.client.send_query_and_decode::<
4804            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
4805            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
4806        >(
4807            (value,),
4808            0x5c24808ed2e84a1e,
4809            fidl::encoding::DynamicFlags::empty(),
4810            _decode,
4811        )
4812    }
4813
4814    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
4815        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
4816        fidl::encoding::DefaultFuchsiaResourceDialect,
4817    >;
4818    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
4819        fn _decode(
4820            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4821        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
4822            let _response = fidl::client::decode_transaction_body::<
4823                fidl::encoding::ResultType<
4824                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
4825                    fidl_fuchsia_posix::Errno,
4826                >,
4827                fidl::encoding::DefaultFuchsiaResourceDialect,
4828                0x341e06689885b4c0,
4829            >(_buf?)?;
4830            Ok(_response.map(|x| x.value))
4831        }
4832        self.client.send_query_and_decode::<
4833            fidl::encoding::EmptyPayload,
4834            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
4835        >(
4836            (),
4837            0x341e06689885b4c0,
4838            fidl::encoding::DynamicFlags::empty(),
4839            _decode,
4840        )
4841    }
4842
4843    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
4844        BaseNetworkSocketSetIpv6MulticastHopsResult,
4845        fidl::encoding::DefaultFuchsiaResourceDialect,
4846    >;
4847    fn r#set_ipv6_multicast_hops(
4848        &self,
4849        mut value: &OptionalUint8,
4850    ) -> Self::SetIpv6MulticastHopsResponseFut {
4851        fn _decode(
4852            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4853        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
4854            let _response = fidl::client::decode_transaction_body::<
4855                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4856                fidl::encoding::DefaultFuchsiaResourceDialect,
4857                0x25b9cd4d181f82c1,
4858            >(_buf?)?;
4859            Ok(_response.map(|x| x))
4860        }
4861        self.client.send_query_and_decode::<
4862            BaseNetworkSocketSetIpv6MulticastHopsRequest,
4863            BaseNetworkSocketSetIpv6MulticastHopsResult,
4864        >(
4865            (value,),
4866            0x25b9cd4d181f82c1,
4867            fidl::encoding::DynamicFlags::empty(),
4868            _decode,
4869        )
4870    }
4871
4872    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
4873        BaseNetworkSocketGetIpv6MulticastHopsResult,
4874        fidl::encoding::DefaultFuchsiaResourceDialect,
4875    >;
4876    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
4877        fn _decode(
4878            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4879        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
4880            let _response = fidl::client::decode_transaction_body::<
4881                fidl::encoding::ResultType<
4882                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
4883                    fidl_fuchsia_posix::Errno,
4884                >,
4885                fidl::encoding::DefaultFuchsiaResourceDialect,
4886                0x52916948a365012a,
4887            >(_buf?)?;
4888            Ok(_response.map(|x| x.value))
4889        }
4890        self.client.send_query_and_decode::<
4891            fidl::encoding::EmptyPayload,
4892            BaseNetworkSocketGetIpv6MulticastHopsResult,
4893        >(
4894            (),
4895            0x52916948a365012a,
4896            fidl::encoding::DynamicFlags::empty(),
4897            _decode,
4898        )
4899    }
4900
4901    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4902        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
4903        fidl::encoding::DefaultFuchsiaResourceDialect,
4904    >;
4905    fn r#set_ipv6_multicast_loopback(
4906        &self,
4907        mut value: bool,
4908    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
4909        fn _decode(
4910            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4911        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
4912            let _response = fidl::client::decode_transaction_body::<
4913                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4914                fidl::encoding::DefaultFuchsiaResourceDialect,
4915                0x55701c409ff41b40,
4916            >(_buf?)?;
4917            Ok(_response.map(|x| x))
4918        }
4919        self.client.send_query_and_decode::<
4920            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
4921            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
4922        >(
4923            (value,),
4924            0x55701c409ff41b40,
4925            fidl::encoding::DynamicFlags::empty(),
4926            _decode,
4927        )
4928    }
4929
4930    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4931        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
4932        fidl::encoding::DefaultFuchsiaResourceDialect,
4933    >;
4934    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
4935        fn _decode(
4936            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4937        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
4938            let _response = fidl::client::decode_transaction_body::<
4939                fidl::encoding::ResultType<
4940                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
4941                    fidl_fuchsia_posix::Errno,
4942                >,
4943                fidl::encoding::DefaultFuchsiaResourceDialect,
4944                0x4415b701fde319c3,
4945            >(_buf?)?;
4946            Ok(_response.map(|x| x.value))
4947        }
4948        self.client.send_query_and_decode::<
4949            fidl::encoding::EmptyPayload,
4950            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
4951        >(
4952            (),
4953            0x4415b701fde319c3,
4954            fidl::encoding::DynamicFlags::empty(),
4955            _decode,
4956        )
4957    }
4958
4959    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
4960        BaseNetworkSocketSetIpv6OnlyResult,
4961        fidl::encoding::DefaultFuchsiaResourceDialect,
4962    >;
4963    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
4964        fn _decode(
4965            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4966        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
4967            let _response = fidl::client::decode_transaction_body::<
4968                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4969                fidl::encoding::DefaultFuchsiaResourceDialect,
4970                0x4873f1364758cbba,
4971            >(_buf?)?;
4972            Ok(_response.map(|x| x))
4973        }
4974        self.client.send_query_and_decode::<
4975            BaseNetworkSocketSetIpv6OnlyRequest,
4976            BaseNetworkSocketSetIpv6OnlyResult,
4977        >(
4978            (value,),
4979            0x4873f1364758cbba,
4980            fidl::encoding::DynamicFlags::empty(),
4981            _decode,
4982        )
4983    }
4984
4985    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
4986        BaseNetworkSocketGetIpv6OnlyResult,
4987        fidl::encoding::DefaultFuchsiaResourceDialect,
4988    >;
4989    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
4990        fn _decode(
4991            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4992        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
4993            let _response = fidl::client::decode_transaction_body::<
4994                fidl::encoding::ResultType<
4995                    BaseNetworkSocketGetIpv6OnlyResponse,
4996                    fidl_fuchsia_posix::Errno,
4997                >,
4998                fidl::encoding::DefaultFuchsiaResourceDialect,
4999                0x4aa3340a1a26b89c,
5000            >(_buf?)?;
5001            Ok(_response.map(|x| x.value))
5002        }
5003        self.client.send_query_and_decode::<
5004            fidl::encoding::EmptyPayload,
5005            BaseNetworkSocketGetIpv6OnlyResult,
5006        >(
5007            (),
5008            0x4aa3340a1a26b89c,
5009            fidl::encoding::DynamicFlags::empty(),
5010            _decode,
5011        )
5012    }
5013
5014    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
5015        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
5016        fidl::encoding::DefaultFuchsiaResourceDialect,
5017    >;
5018    fn r#set_ipv6_receive_traffic_class(
5019        &self,
5020        mut value: bool,
5021    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
5022        fn _decode(
5023            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5024        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
5025            let _response = fidl::client::decode_transaction_body::<
5026                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5027                fidl::encoding::DefaultFuchsiaResourceDialect,
5028                0x58f07c8788d099a0,
5029            >(_buf?)?;
5030            Ok(_response.map(|x| x))
5031        }
5032        self.client.send_query_and_decode::<
5033            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
5034            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
5035        >(
5036            (value,),
5037            0x58f07c8788d099a0,
5038            fidl::encoding::DynamicFlags::empty(),
5039            _decode,
5040        )
5041    }
5042
5043    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
5044        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
5045        fidl::encoding::DefaultFuchsiaResourceDialect,
5046    >;
5047    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
5048        fn _decode(
5049            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5050        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
5051            let _response = fidl::client::decode_transaction_body::<
5052                fidl::encoding::ResultType<
5053                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
5054                    fidl_fuchsia_posix::Errno,
5055                >,
5056                fidl::encoding::DefaultFuchsiaResourceDialect,
5057                0x2e334df1da553ffa,
5058            >(_buf?)?;
5059            Ok(_response.map(|x| x.value))
5060        }
5061        self.client.send_query_and_decode::<
5062            fidl::encoding::EmptyPayload,
5063            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
5064        >(
5065            (),
5066            0x2e334df1da553ffa,
5067            fidl::encoding::DynamicFlags::empty(),
5068            _decode,
5069        )
5070    }
5071
5072    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
5073        BaseNetworkSocketSetIpv6TrafficClassResult,
5074        fidl::encoding::DefaultFuchsiaResourceDialect,
5075    >;
5076    fn r#set_ipv6_traffic_class(
5077        &self,
5078        mut value: &OptionalUint8,
5079    ) -> Self::SetIpv6TrafficClassResponseFut {
5080        fn _decode(
5081            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5082        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
5083            let _response = fidl::client::decode_transaction_body::<
5084                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5085                fidl::encoding::DefaultFuchsiaResourceDialect,
5086                0x6af077800c5a0b4f,
5087            >(_buf?)?;
5088            Ok(_response.map(|x| x))
5089        }
5090        self.client.send_query_and_decode::<
5091            BaseNetworkSocketSetIpv6TrafficClassRequest,
5092            BaseNetworkSocketSetIpv6TrafficClassResult,
5093        >(
5094            (value,),
5095            0x6af077800c5a0b4f,
5096            fidl::encoding::DynamicFlags::empty(),
5097            _decode,
5098        )
5099    }
5100
5101    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
5102        BaseNetworkSocketGetIpv6TrafficClassResult,
5103        fidl::encoding::DefaultFuchsiaResourceDialect,
5104    >;
5105    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
5106        fn _decode(
5107            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5108        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
5109            let _response = fidl::client::decode_transaction_body::<
5110                fidl::encoding::ResultType<
5111                    BaseNetworkSocketGetIpv6TrafficClassResponse,
5112                    fidl_fuchsia_posix::Errno,
5113                >,
5114                fidl::encoding::DefaultFuchsiaResourceDialect,
5115                0x6baf6eed8fc2f04,
5116            >(_buf?)?;
5117            Ok(_response.map(|x| x.value))
5118        }
5119        self.client.send_query_and_decode::<
5120            fidl::encoding::EmptyPayload,
5121            BaseNetworkSocketGetIpv6TrafficClassResult,
5122        >(
5123            (),
5124            0x6baf6eed8fc2f04,
5125            fidl::encoding::DynamicFlags::empty(),
5126            _decode,
5127        )
5128    }
5129
5130    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
5131        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
5132        fidl::encoding::DefaultFuchsiaResourceDialect,
5133    >;
5134    fn r#set_ipv6_receive_packet_info(
5135        &self,
5136        mut value: bool,
5137    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
5138        fn _decode(
5139            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5140        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
5141            let _response = fidl::client::decode_transaction_body::<
5142                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5143                fidl::encoding::DefaultFuchsiaResourceDialect,
5144                0x19259775b1a92768,
5145            >(_buf?)?;
5146            Ok(_response.map(|x| x))
5147        }
5148        self.client.send_query_and_decode::<
5149            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
5150            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
5151        >(
5152            (value,),
5153            0x19259775b1a92768,
5154            fidl::encoding::DynamicFlags::empty(),
5155            _decode,
5156        )
5157    }
5158
5159    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
5160        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
5161        fidl::encoding::DefaultFuchsiaResourceDialect,
5162    >;
5163    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
5164        fn _decode(
5165            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5166        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
5167            let _response = fidl::client::decode_transaction_body::<
5168                fidl::encoding::ResultType<
5169                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
5170                    fidl_fuchsia_posix::Errno,
5171                >,
5172                fidl::encoding::DefaultFuchsiaResourceDialect,
5173                0x7acd4a2775baec75,
5174            >(_buf?)?;
5175            Ok(_response.map(|x| x.value))
5176        }
5177        self.client.send_query_and_decode::<
5178            fidl::encoding::EmptyPayload,
5179            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
5180        >(
5181            (),
5182            0x7acd4a2775baec75,
5183            fidl::encoding::DynamicFlags::empty(),
5184            _decode,
5185        )
5186    }
5187
5188    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
5189        BaseNetworkSocketGetOriginalDestinationResult,
5190        fidl::encoding::DefaultFuchsiaResourceDialect,
5191    >;
5192    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
5193        fn _decode(
5194            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5195        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
5196            let _response = fidl::client::decode_transaction_body::<
5197                fidl::encoding::ResultType<
5198                    BaseNetworkSocketGetOriginalDestinationResponse,
5199                    fidl_fuchsia_posix::Errno,
5200                >,
5201                fidl::encoding::DefaultFuchsiaResourceDialect,
5202                0x38bf28f0dafdbac0,
5203            >(_buf?)?;
5204            Ok(_response.map(|x| x.value))
5205        }
5206        self.client.send_query_and_decode::<
5207            fidl::encoding::EmptyPayload,
5208            BaseNetworkSocketGetOriginalDestinationResult,
5209        >(
5210            (),
5211            0x38bf28f0dafdbac0,
5212            fidl::encoding::DynamicFlags::empty(),
5213            _decode,
5214        )
5215    }
5216
5217    type GetInfoResponseFut = fidl::client::QueryResponseFut<
5218        BaseDatagramSocketGetInfoResult,
5219        fidl::encoding::DefaultFuchsiaResourceDialect,
5220    >;
5221    fn r#get_info(&self) -> Self::GetInfoResponseFut {
5222        fn _decode(
5223            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5224        ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
5225            let _response = fidl::client::decode_transaction_body::<
5226                fidl::encoding::ResultType<
5227                    BaseDatagramSocketGetInfoResponse,
5228                    fidl_fuchsia_posix::Errno,
5229                >,
5230                fidl::encoding::DefaultFuchsiaResourceDialect,
5231                0x48aa0a1f6a32d2ed,
5232            >(_buf?)?;
5233            Ok(_response.map(|x| (x.domain, x.proto)))
5234        }
5235        self.client
5236            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseDatagramSocketGetInfoResult>(
5237                (),
5238                0x48aa0a1f6a32d2ed,
5239                fidl::encoding::DynamicFlags::empty(),
5240                _decode,
5241            )
5242    }
5243}
5244
5245pub struct BaseDatagramSocketEventStream {
5246    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
5247}
5248
5249impl std::marker::Unpin for BaseDatagramSocketEventStream {}
5250
5251impl futures::stream::FusedStream for BaseDatagramSocketEventStream {
5252    fn is_terminated(&self) -> bool {
5253        self.event_receiver.is_terminated()
5254    }
5255}
5256
5257impl futures::Stream for BaseDatagramSocketEventStream {
5258    type Item = Result<BaseDatagramSocketEvent, fidl::Error>;
5259
5260    fn poll_next(
5261        mut self: std::pin::Pin<&mut Self>,
5262        cx: &mut std::task::Context<'_>,
5263    ) -> std::task::Poll<Option<Self::Item>> {
5264        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
5265            &mut self.event_receiver,
5266            cx
5267        )?) {
5268            Some(buf) => std::task::Poll::Ready(Some(BaseDatagramSocketEvent::decode(buf))),
5269            None => std::task::Poll::Ready(None),
5270        }
5271    }
5272}
5273
5274#[derive(Debug)]
5275pub enum BaseDatagramSocketEvent {}
5276
5277impl BaseDatagramSocketEvent {
5278    /// Decodes a message buffer as a [`BaseDatagramSocketEvent`].
5279    fn decode(
5280        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
5281    ) -> Result<BaseDatagramSocketEvent, fidl::Error> {
5282        let (bytes, _handles) = buf.split_mut();
5283        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5284        debug_assert_eq!(tx_header.tx_id, 0);
5285        match tx_header.ordinal {
5286            _ => Err(fidl::Error::UnknownOrdinal {
5287                ordinal: tx_header.ordinal,
5288                protocol_name:
5289                    <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
5290            }),
5291        }
5292    }
5293}
5294
5295/// A Stream of incoming requests for fuchsia.posix.socket/BaseDatagramSocket.
5296pub struct BaseDatagramSocketRequestStream {
5297    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5298    is_terminated: bool,
5299}
5300
5301impl std::marker::Unpin for BaseDatagramSocketRequestStream {}
5302
5303impl futures::stream::FusedStream for BaseDatagramSocketRequestStream {
5304    fn is_terminated(&self) -> bool {
5305        self.is_terminated
5306    }
5307}
5308
5309impl fidl::endpoints::RequestStream for BaseDatagramSocketRequestStream {
5310    type Protocol = BaseDatagramSocketMarker;
5311    type ControlHandle = BaseDatagramSocketControlHandle;
5312
5313    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
5314        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
5315    }
5316
5317    fn control_handle(&self) -> Self::ControlHandle {
5318        BaseDatagramSocketControlHandle { inner: self.inner.clone() }
5319    }
5320
5321    fn into_inner(
5322        self,
5323    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
5324    {
5325        (self.inner, self.is_terminated)
5326    }
5327
5328    fn from_inner(
5329        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5330        is_terminated: bool,
5331    ) -> Self {
5332        Self { inner, is_terminated }
5333    }
5334}
5335
5336impl futures::Stream for BaseDatagramSocketRequestStream {
5337    type Item = Result<BaseDatagramSocketRequest, fidl::Error>;
5338
5339    fn poll_next(
5340        mut self: std::pin::Pin<&mut Self>,
5341        cx: &mut std::task::Context<'_>,
5342    ) -> std::task::Poll<Option<Self::Item>> {
5343        let this = &mut *self;
5344        if this.inner.check_shutdown(cx) {
5345            this.is_terminated = true;
5346            return std::task::Poll::Ready(None);
5347        }
5348        if this.is_terminated {
5349            panic!("polled BaseDatagramSocketRequestStream after completion");
5350        }
5351        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
5352            |bytes, handles| {
5353                match this.inner.channel().read_etc(cx, bytes, handles) {
5354                    std::task::Poll::Ready(Ok(())) => {}
5355                    std::task::Poll::Pending => return std::task::Poll::Pending,
5356                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
5357                        this.is_terminated = true;
5358                        return std::task::Poll::Ready(None);
5359                    }
5360                    std::task::Poll::Ready(Err(e)) => {
5361                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
5362                            e.into(),
5363                        ))));
5364                    }
5365                }
5366
5367                // A message has been received from the channel
5368                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5369
5370                std::task::Poll::Ready(Some(match header.ordinal {
5371                0x20d8a7aba2168a79 => {
5372                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
5373                    let mut req = fidl::new_empty!(fidl_fuchsia_unknown::CloneableCloneRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5374                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
5375                    let control_handle = BaseDatagramSocketControlHandle {
5376                        inner: this.inner.clone(),
5377                    };
5378                    Ok(BaseDatagramSocketRequest::Clone {request: req.request,
5379
5380                        control_handle,
5381                    })
5382                }
5383                0x5ac5d459ad7f657e => {
5384                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5385                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5386                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5387                    let control_handle = BaseDatagramSocketControlHandle {
5388                        inner: this.inner.clone(),
5389                    };
5390                    Ok(BaseDatagramSocketRequest::Close {
5391                        responder: BaseDatagramSocketCloseResponder {
5392                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5393                            tx_id: header.tx_id,
5394                        },
5395                    })
5396                }
5397                0x2658edee9decfc06 => {
5398                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5399                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5400                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5401                    let control_handle = BaseDatagramSocketControlHandle {
5402                        inner: this.inner.clone(),
5403                    };
5404                    Ok(BaseDatagramSocketRequest::Query {
5405                        responder: BaseDatagramSocketQueryResponder {
5406                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5407                            tx_id: header.tx_id,
5408                        },
5409                    })
5410                }
5411                0x1fd74ee8b9a4a876 => {
5412                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5413                    let mut req = fidl::new_empty!(BaseSocketSetReuseAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5414                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
5415                    let control_handle = BaseDatagramSocketControlHandle {
5416                        inner: this.inner.clone(),
5417                    };
5418                    Ok(BaseDatagramSocketRequest::SetReuseAddress {value: req.value,
5419
5420                        responder: BaseDatagramSocketSetReuseAddressResponder {
5421                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5422                            tx_id: header.tx_id,
5423                        },
5424                    })
5425                }
5426                0x67b7206b8d1bc0a5 => {
5427                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5428                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5429                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5430                    let control_handle = BaseDatagramSocketControlHandle {
5431                        inner: this.inner.clone(),
5432                    };
5433                    Ok(BaseDatagramSocketRequest::GetReuseAddress {
5434                        responder: BaseDatagramSocketGetReuseAddressResponder {
5435                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5436                            tx_id: header.tx_id,
5437                        },
5438                    })
5439                }
5440                0x5aad39b33e5f6ebb => {
5441                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5442                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5443                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5444                    let control_handle = BaseDatagramSocketControlHandle {
5445                        inner: this.inner.clone(),
5446                    };
5447                    Ok(BaseDatagramSocketRequest::GetError {
5448                        responder: BaseDatagramSocketGetErrorResponder {
5449                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5450                            tx_id: header.tx_id,
5451                        },
5452                    })
5453                }
5454                0x6023e081ce3cd947 => {
5455                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5456                    let mut req = fidl::new_empty!(BaseSocketSetBroadcastRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5457                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
5458                    let control_handle = BaseDatagramSocketControlHandle {
5459                        inner: this.inner.clone(),
5460                    };
5461                    Ok(BaseDatagramSocketRequest::SetBroadcast {value: req.value,
5462
5463                        responder: BaseDatagramSocketSetBroadcastResponder {
5464                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5465                            tx_id: header.tx_id,
5466                        },
5467                    })
5468                }
5469                0x68796fc556f9780d => {
5470                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5471                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5472                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5473                    let control_handle = BaseDatagramSocketControlHandle {
5474                        inner: this.inner.clone(),
5475                    };
5476                    Ok(BaseDatagramSocketRequest::GetBroadcast {
5477                        responder: BaseDatagramSocketGetBroadcastResponder {
5478                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5479                            tx_id: header.tx_id,
5480                        },
5481                    })
5482                }
5483                0x756eac32d73a7a70 => {
5484                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5485                    let mut req = fidl::new_empty!(BaseSocketSetSendBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5486                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
5487                    let control_handle = BaseDatagramSocketControlHandle {
5488                        inner: this.inner.clone(),
5489                    };
5490                    Ok(BaseDatagramSocketRequest::SetSendBuffer {value_bytes: req.value_bytes,
5491
5492                        responder: BaseDatagramSocketSetSendBufferResponder {
5493                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5494                            tx_id: header.tx_id,
5495                        },
5496                    })
5497                }
5498                0x78a52fd9c7b2410b => {
5499                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5500                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5501                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5502                    let control_handle = BaseDatagramSocketControlHandle {
5503                        inner: this.inner.clone(),
5504                    };
5505                    Ok(BaseDatagramSocketRequest::GetSendBuffer {
5506                        responder: BaseDatagramSocketGetSendBufferResponder {
5507                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5508                            tx_id: header.tx_id,
5509                        },
5510                    })
5511                }
5512                0x6b0cf2f1919c7001 => {
5513                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5514                    let mut req = fidl::new_empty!(BaseSocketSetReceiveBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5515                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
5516                    let control_handle = BaseDatagramSocketControlHandle {
5517                        inner: this.inner.clone(),
5518                    };
5519                    Ok(BaseDatagramSocketRequest::SetReceiveBuffer {value_bytes: req.value_bytes,
5520
5521                        responder: BaseDatagramSocketSetReceiveBufferResponder {
5522                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5523                            tx_id: header.tx_id,
5524                        },
5525                    })
5526                }
5527                0x14c1a4b64f709e5c => {
5528                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5529                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5530                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5531                    let control_handle = BaseDatagramSocketControlHandle {
5532                        inner: this.inner.clone(),
5533                    };
5534                    Ok(BaseDatagramSocketRequest::GetReceiveBuffer {
5535                        responder: BaseDatagramSocketGetReceiveBufferResponder {
5536                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5537                            tx_id: header.tx_id,
5538                        },
5539                    })
5540                }
5541                0x572df8f0b920d2c7 => {
5542                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5543                    let mut req = fidl::new_empty!(BaseSocketSetKeepAliveRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5544                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
5545                    let control_handle = BaseDatagramSocketControlHandle {
5546                        inner: this.inner.clone(),
5547                    };
5548                    Ok(BaseDatagramSocketRequest::SetKeepAlive {value: req.value,
5549
5550                        responder: BaseDatagramSocketSetKeepAliveResponder {
5551                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5552                            tx_id: header.tx_id,
5553                        },
5554                    })
5555                }
5556                0x2dd29d3215f2c9d2 => {
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::GetKeepAlive {
5564                        responder: BaseDatagramSocketGetKeepAliveResponder {
5565                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5566                            tx_id: header.tx_id,
5567                        },
5568                    })
5569                }
5570                0x3ecb49968bee439 => {
5571                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5572                    let mut req = fidl::new_empty!(BaseSocketSetOutOfBandInlineRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5573                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
5574                    let control_handle = BaseDatagramSocketControlHandle {
5575                        inner: this.inner.clone(),
5576                    };
5577                    Ok(BaseDatagramSocketRequest::SetOutOfBandInline {value: req.value,
5578
5579                        responder: BaseDatagramSocketSetOutOfBandInlineResponder {
5580                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5581                            tx_id: header.tx_id,
5582                        },
5583                    })
5584                }
5585                0x348c1ab3aeca1745 => {
5586                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5587                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5588                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5589                    let control_handle = BaseDatagramSocketControlHandle {
5590                        inner: this.inner.clone(),
5591                    };
5592                    Ok(BaseDatagramSocketRequest::GetOutOfBandInline {
5593                        responder: BaseDatagramSocketGetOutOfBandInlineResponder {
5594                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5595                            tx_id: header.tx_id,
5596                        },
5597                    })
5598                }
5599                0x6bbf00c53a4c78c2 => {
5600                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5601                    let mut req = fidl::new_empty!(BaseSocketSetNoCheckRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5602                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
5603                    let control_handle = BaseDatagramSocketControlHandle {
5604                        inner: this.inner.clone(),
5605                    };
5606                    Ok(BaseDatagramSocketRequest::SetNoCheck {value: req.value,
5607
5608                        responder: BaseDatagramSocketSetNoCheckResponder {
5609                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5610                            tx_id: header.tx_id,
5611                        },
5612                    })
5613                }
5614                0x2cd4249286417694 => {
5615                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5616                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5617                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5618                    let control_handle = BaseDatagramSocketControlHandle {
5619                        inner: this.inner.clone(),
5620                    };
5621                    Ok(BaseDatagramSocketRequest::GetNoCheck {
5622                        responder: BaseDatagramSocketGetNoCheckResponder {
5623                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5624                            tx_id: header.tx_id,
5625                        },
5626                    })
5627                }
5628                0x45386351246e998e => {
5629                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5630                    let mut req = fidl::new_empty!(BaseSocketSetLingerRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5631                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
5632                    let control_handle = BaseDatagramSocketControlHandle {
5633                        inner: this.inner.clone(),
5634                    };
5635                    Ok(BaseDatagramSocketRequest::SetLinger {linger: req.linger,
5636length_secs: req.length_secs,
5637
5638                        responder: BaseDatagramSocketSetLingerResponder {
5639                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5640                            tx_id: header.tx_id,
5641                        },
5642                    })
5643                }
5644                0x48eb20fc5ccb0e45 => {
5645                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5646                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5647                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5648                    let control_handle = BaseDatagramSocketControlHandle {
5649                        inner: this.inner.clone(),
5650                    };
5651                    Ok(BaseDatagramSocketRequest::GetLinger {
5652                        responder: BaseDatagramSocketGetLingerResponder {
5653                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5654                            tx_id: header.tx_id,
5655                        },
5656                    })
5657                }
5658                0x24dd3e5cb36d9ccb => {
5659                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5660                    let mut req = fidl::new_empty!(BaseSocketSetReusePortRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5661                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
5662                    let control_handle = BaseDatagramSocketControlHandle {
5663                        inner: this.inner.clone(),
5664                    };
5665                    Ok(BaseDatagramSocketRequest::SetReusePort {value: req.value,
5666
5667                        responder: BaseDatagramSocketSetReusePortResponder {
5668                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5669                            tx_id: header.tx_id,
5670                        },
5671                    })
5672                }
5673                0x7a112c1ab54ff828 => {
5674                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5675                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5676                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5677                    let control_handle = BaseDatagramSocketControlHandle {
5678                        inner: this.inner.clone(),
5679                    };
5680                    Ok(BaseDatagramSocketRequest::GetReusePort {
5681                        responder: BaseDatagramSocketGetReusePortResponder {
5682                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5683                            tx_id: header.tx_id,
5684                        },
5685                    })
5686                }
5687                0x67ce6db6c2ec8966 => {
5688                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5689                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5690                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5691                    let control_handle = BaseDatagramSocketControlHandle {
5692                        inner: this.inner.clone(),
5693                    };
5694                    Ok(BaseDatagramSocketRequest::GetAcceptConn {
5695                        responder: BaseDatagramSocketGetAcceptConnResponder {
5696                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5697                            tx_id: header.tx_id,
5698                        },
5699                    })
5700                }
5701                0x2118b483f28aafc4 => {
5702                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5703                    let mut req = fidl::new_empty!(BaseSocketSetBindToDeviceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5704                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
5705                    let control_handle = BaseDatagramSocketControlHandle {
5706                        inner: this.inner.clone(),
5707                    };
5708                    Ok(BaseDatagramSocketRequest::SetBindToDevice {value: req.value,
5709
5710                        responder: BaseDatagramSocketSetBindToDeviceResponder {
5711                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5712                            tx_id: header.tx_id,
5713                        },
5714                    })
5715                }
5716                0x1ab1fbf0ef7906c8 => {
5717                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5718                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5719                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5720                    let control_handle = BaseDatagramSocketControlHandle {
5721                        inner: this.inner.clone(),
5722                    };
5723                    Ok(BaseDatagramSocketRequest::GetBindToDevice {
5724                        responder: BaseDatagramSocketGetBindToDeviceResponder {
5725                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5726                            tx_id: header.tx_id,
5727                        },
5728                    })
5729                }
5730                0x6e387a0def00821 => {
5731                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5732                    let mut req = fidl::new_empty!(BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5733                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
5734                    let control_handle = BaseDatagramSocketControlHandle {
5735                        inner: this.inner.clone(),
5736                    };
5737                    Ok(BaseDatagramSocketRequest::SetBindToInterfaceIndex {value: req.value,
5738
5739                        responder: BaseDatagramSocketSetBindToInterfaceIndexResponder {
5740                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5741                            tx_id: header.tx_id,
5742                        },
5743                    })
5744                }
5745                0x59c31dd3e3078295 => {
5746                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5747                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5748                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5749                    let control_handle = BaseDatagramSocketControlHandle {
5750                        inner: this.inner.clone(),
5751                    };
5752                    Ok(BaseDatagramSocketRequest::GetBindToInterfaceIndex {
5753                        responder: BaseDatagramSocketGetBindToInterfaceIndexResponder {
5754                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5755                            tx_id: header.tx_id,
5756                        },
5757                    })
5758                }
5759                0x285d6516c263d839 => {
5760                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5761                    let mut req = fidl::new_empty!(BaseSocketSetTimestampRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5762                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
5763                    let control_handle = BaseDatagramSocketControlHandle {
5764                        inner: this.inner.clone(),
5765                    };
5766                    Ok(BaseDatagramSocketRequest::SetTimestamp {value: req.value,
5767
5768                        responder: BaseDatagramSocketSetTimestampResponder {
5769                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5770                            tx_id: header.tx_id,
5771                        },
5772                    })
5773                }
5774                0x49f2fffbbcc2bd27 => {
5775                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5776                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5777                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5778                    let control_handle = BaseDatagramSocketControlHandle {
5779                        inner: this.inner.clone(),
5780                    };
5781                    Ok(BaseDatagramSocketRequest::GetTimestamp {
5782                        responder: BaseDatagramSocketGetTimestampResponder {
5783                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5784                            tx_id: header.tx_id,
5785                        },
5786                    })
5787                }
5788                0x6ead6de09f653236 => {
5789                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5790                    let mut req = fidl::new_empty!(BaseSocketSetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5791                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
5792                    let control_handle = BaseDatagramSocketControlHandle {
5793                        inner: this.inner.clone(),
5794                    };
5795                    Ok(BaseDatagramSocketRequest::SetMark {domain: req.domain,
5796mark: req.mark,
5797
5798                        responder: BaseDatagramSocketSetMarkResponder {
5799                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5800                            tx_id: header.tx_id,
5801                        },
5802                    })
5803                }
5804                0x57a2752c61d93d47 => {
5805                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5806                    let mut req = fidl::new_empty!(BaseSocketGetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5807                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
5808                    let control_handle = BaseDatagramSocketControlHandle {
5809                        inner: this.inner.clone(),
5810                    };
5811                    Ok(BaseDatagramSocketRequest::GetMark {domain: req.domain,
5812
5813                        responder: BaseDatagramSocketGetMarkResponder {
5814                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5815                            tx_id: header.tx_id,
5816                        },
5817                    })
5818                }
5819                0x2c2f47fd8f924e52 => {
5820                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5821                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5822                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5823                    let control_handle = BaseDatagramSocketControlHandle {
5824                        inner: this.inner.clone(),
5825                    };
5826                    Ok(BaseDatagramSocketRequest::GetCookie {
5827                        responder: BaseDatagramSocketGetCookieResponder {
5828                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5829                            tx_id: header.tx_id,
5830                        },
5831                    })
5832                }
5833                0x4bc6400ae92125d => {
5834                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5835                    let mut req = fidl::new_empty!(BaseNetworkSocketBindRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5836                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
5837                    let control_handle = BaseDatagramSocketControlHandle {
5838                        inner: this.inner.clone(),
5839                    };
5840                    Ok(BaseDatagramSocketRequest::Bind {addr: req.addr,
5841
5842                        responder: BaseDatagramSocketBindResponder {
5843                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5844                            tx_id: header.tx_id,
5845                        },
5846                    })
5847                }
5848                0x5f05f19bfdd38871 => {
5849                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5850                    let mut req = fidl::new_empty!(BaseNetworkSocketConnectRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5851                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
5852                    let control_handle = BaseDatagramSocketControlHandle {
5853                        inner: this.inner.clone(),
5854                    };
5855                    Ok(BaseDatagramSocketRequest::Connect {addr: req.addr,
5856
5857                        responder: BaseDatagramSocketConnectResponder {
5858                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5859                            tx_id: header.tx_id,
5860                        },
5861                    })
5862                }
5863                0x74e63b91f7b29b2 => {
5864                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5865                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5866                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5867                    let control_handle = BaseDatagramSocketControlHandle {
5868                        inner: this.inner.clone(),
5869                    };
5870                    Ok(BaseDatagramSocketRequest::Disconnect {
5871                        responder: BaseDatagramSocketDisconnectResponder {
5872                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5873                            tx_id: header.tx_id,
5874                        },
5875                    })
5876                }
5877                0x475f23f84a1a4f85 => {
5878                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5879                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5880                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5881                    let control_handle = BaseDatagramSocketControlHandle {
5882                        inner: this.inner.clone(),
5883                    };
5884                    Ok(BaseDatagramSocketRequest::GetSockName {
5885                        responder: BaseDatagramSocketGetSockNameResponder {
5886                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5887                            tx_id: header.tx_id,
5888                        },
5889                    })
5890                }
5891                0x1ffecf4bd5b6432e => {
5892                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5893                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5894                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5895                    let control_handle = BaseDatagramSocketControlHandle {
5896                        inner: this.inner.clone(),
5897                    };
5898                    Ok(BaseDatagramSocketRequest::GetPeerName {
5899                        responder: BaseDatagramSocketGetPeerNameResponder {
5900                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5901                            tx_id: header.tx_id,
5902                        },
5903                    })
5904                }
5905                0x247f38b6db68c336 => {
5906                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5907                    let mut req = fidl::new_empty!(BaseNetworkSocketShutdownRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5908                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
5909                    let control_handle = BaseDatagramSocketControlHandle {
5910                        inner: this.inner.clone(),
5911                    };
5912                    Ok(BaseDatagramSocketRequest::Shutdown {mode: req.mode,
5913
5914                        responder: BaseDatagramSocketShutdownResponder {
5915                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5916                            tx_id: header.tx_id,
5917                        },
5918                    })
5919                }
5920                0x995c600475b6d46 => {
5921                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5922                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5923                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
5924                    let control_handle = BaseDatagramSocketControlHandle {
5925                        inner: this.inner.clone(),
5926                    };
5927                    Ok(BaseDatagramSocketRequest::SetIpTypeOfService {value: req.value,
5928
5929                        responder: BaseDatagramSocketSetIpTypeOfServiceResponder {
5930                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5931                            tx_id: header.tx_id,
5932                        },
5933                    })
5934                }
5935                0x3814a04259f75fcb => {
5936                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5937                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5938                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5939                    let control_handle = BaseDatagramSocketControlHandle {
5940                        inner: this.inner.clone(),
5941                    };
5942                    Ok(BaseDatagramSocketRequest::GetIpTypeOfService {
5943                        responder: BaseDatagramSocketGetIpTypeOfServiceResponder {
5944                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5945                            tx_id: header.tx_id,
5946                        },
5947                    })
5948                }
5949                0x29e2424b433ae1ef => {
5950                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5951                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5952                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
5953                    let control_handle = BaseDatagramSocketControlHandle {
5954                        inner: this.inner.clone(),
5955                    };
5956                    Ok(BaseDatagramSocketRequest::SetIpTtl {value: req.value,
5957
5958                        responder: BaseDatagramSocketSetIpTtlResponder {
5959                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5960                            tx_id: header.tx_id,
5961                        },
5962                    })
5963                }
5964                0x47e47fa1f24da471 => {
5965                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5966                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5967                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5968                    let control_handle = BaseDatagramSocketControlHandle {
5969                        inner: this.inner.clone(),
5970                    };
5971                    Ok(BaseDatagramSocketRequest::GetIpTtl {
5972                        responder: BaseDatagramSocketGetIpTtlResponder {
5973                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5974                            tx_id: header.tx_id,
5975                        },
5976                    })
5977                }
5978                0x392d16bee20c0e16 => {
5979                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5980                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5981                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
5982                    let control_handle = BaseDatagramSocketControlHandle {
5983                        inner: this.inner.clone(),
5984                    };
5985                    Ok(BaseDatagramSocketRequest::SetIpPacketInfo {value: req.value,
5986
5987                        responder: BaseDatagramSocketSetIpPacketInfoResponder {
5988                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5989                            tx_id: header.tx_id,
5990                        },
5991                    })
5992                }
5993                0x54b505f242280740 => {
5994                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5995                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5996                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5997                    let control_handle = BaseDatagramSocketControlHandle {
5998                        inner: this.inner.clone(),
5999                    };
6000                    Ok(BaseDatagramSocketRequest::GetIpPacketInfo {
6001                        responder: BaseDatagramSocketGetIpPacketInfoResponder {
6002                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6003                            tx_id: header.tx_id,
6004                        },
6005                    })
6006                }
6007                0x6c4f6714995f84ef => {
6008                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6009                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6010                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
6011                    let control_handle = BaseDatagramSocketControlHandle {
6012                        inner: this.inner.clone(),
6013                    };
6014                    Ok(BaseDatagramSocketRequest::SetIpReceiveTypeOfService {value: req.value,
6015
6016                        responder: BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
6017                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6018                            tx_id: header.tx_id,
6019                        },
6020                    })
6021                }
6022                0x4158ba7dc2795960 => {
6023                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6024                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6025                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6026                    let control_handle = BaseDatagramSocketControlHandle {
6027                        inner: this.inner.clone(),
6028                    };
6029                    Ok(BaseDatagramSocketRequest::GetIpReceiveTypeOfService {
6030                        responder: BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
6031                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6032                            tx_id: header.tx_id,
6033                        },
6034                    })
6035                }
6036                0x46f15be0ce0ab82b => {
6037                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6038                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6039                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
6040                    let control_handle = BaseDatagramSocketControlHandle {
6041                        inner: this.inner.clone(),
6042                    };
6043                    Ok(BaseDatagramSocketRequest::SetIpReceiveTtl {value: req.value,
6044
6045                        responder: BaseDatagramSocketSetIpReceiveTtlResponder {
6046                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6047                            tx_id: header.tx_id,
6048                        },
6049                    })
6050                }
6051                0x678ddd5a5dfa2eb5 => {
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::GetIpReceiveTtl {
6059                        responder: BaseDatagramSocketGetIpReceiveTtlResponder {
6060                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6061                            tx_id: header.tx_id,
6062                        },
6063                    })
6064                }
6065                0x752fbfa9b12befe => {
6066                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6067                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6068                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
6069                    let control_handle = BaseDatagramSocketControlHandle {
6070                        inner: this.inner.clone(),
6071                    };
6072                    Ok(BaseDatagramSocketRequest::SetIpMulticastInterface {iface: req.iface,
6073address: req.address,
6074
6075                        responder: BaseDatagramSocketSetIpMulticastInterfaceResponder {
6076                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6077                            tx_id: header.tx_id,
6078                        },
6079                    })
6080                }
6081                0x320bd14c4df046c4 => {
6082                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6083                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6084                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6085                    let control_handle = BaseDatagramSocketControlHandle {
6086                        inner: this.inner.clone(),
6087                    };
6088                    Ok(BaseDatagramSocketRequest::GetIpMulticastInterface {
6089                        responder: BaseDatagramSocketGetIpMulticastInterfaceResponder {
6090                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6091                            tx_id: header.tx_id,
6092                        },
6093                    })
6094                }
6095                0x63134d53772916a1 => {
6096                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6097                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6098                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
6099                    let control_handle = BaseDatagramSocketControlHandle {
6100                        inner: this.inner.clone(),
6101                    };
6102                    Ok(BaseDatagramSocketRequest::SetIpMulticastTtl {value: req.value,
6103
6104                        responder: BaseDatagramSocketSetIpMulticastTtlResponder {
6105                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6106                            tx_id: header.tx_id,
6107                        },
6108                    })
6109                }
6110                0x4665cd378f39e1a => {
6111                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6112                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6113                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6114                    let control_handle = BaseDatagramSocketControlHandle {
6115                        inner: this.inner.clone(),
6116                    };
6117                    Ok(BaseDatagramSocketRequest::GetIpMulticastTtl {
6118                        responder: BaseDatagramSocketGetIpMulticastTtlResponder {
6119                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6120                            tx_id: header.tx_id,
6121                        },
6122                    })
6123                }
6124                0x20c55c11f00943ea => {
6125                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6126                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6127                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
6128                    let control_handle = BaseDatagramSocketControlHandle {
6129                        inner: this.inner.clone(),
6130                    };
6131                    Ok(BaseDatagramSocketRequest::SetIpMulticastLoopback {value: req.value,
6132
6133                        responder: BaseDatagramSocketSetIpMulticastLoopbackResponder {
6134                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6135                            tx_id: header.tx_id,
6136                        },
6137                    })
6138                }
6139                0x3b6b26ff558298f2 => {
6140                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6141                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6142                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6143                    let control_handle = BaseDatagramSocketControlHandle {
6144                        inner: this.inner.clone(),
6145                    };
6146                    Ok(BaseDatagramSocketRequest::GetIpMulticastLoopback {
6147                        responder: BaseDatagramSocketGetIpMulticastLoopbackResponder {
6148                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6149                            tx_id: header.tx_id,
6150                        },
6151                    })
6152                }
6153                0x76bc7df115a3b4d0 => {
6154                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6155                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6156                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6157                    let control_handle = BaseDatagramSocketControlHandle {
6158                        inner: this.inner.clone(),
6159                    };
6160                    Ok(BaseDatagramSocketRequest::AddIpMembership {membership: req.membership,
6161
6162                        responder: BaseDatagramSocketAddIpMembershipResponder {
6163                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6164                            tx_id: header.tx_id,
6165                        },
6166                    })
6167                }
6168                0x2888f3099188d03 => {
6169                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6170                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6171                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6172                    let control_handle = BaseDatagramSocketControlHandle {
6173                        inner: this.inner.clone(),
6174                    };
6175                    Ok(BaseDatagramSocketRequest::DropIpMembership {membership: req.membership,
6176
6177                        responder: BaseDatagramSocketDropIpMembershipResponder {
6178                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6179                            tx_id: header.tx_id,
6180                        },
6181                    })
6182                }
6183                0x1ae532b0c066e3a0 => {
6184                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6185                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6186                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
6187                    let control_handle = BaseDatagramSocketControlHandle {
6188                        inner: this.inner.clone(),
6189                    };
6190                    Ok(BaseDatagramSocketRequest::SetIpTransparent {value: req.value,
6191
6192                        responder: BaseDatagramSocketSetIpTransparentResponder {
6193                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6194                            tx_id: header.tx_id,
6195                        },
6196                    })
6197                }
6198                0x51d43695962ebfb5 => {
6199                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6200                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6201                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6202                    let control_handle = BaseDatagramSocketControlHandle {
6203                        inner: this.inner.clone(),
6204                    };
6205                    Ok(BaseDatagramSocketRequest::GetIpTransparent {
6206                        responder: BaseDatagramSocketGetIpTransparentResponder {
6207                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6208                            tx_id: header.tx_id,
6209                        },
6210                    })
6211                }
6212                0x4722b4ce52f7840 => {
6213                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6214                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6215                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
6216                    let control_handle = BaseDatagramSocketControlHandle {
6217                        inner: this.inner.clone(),
6218                    };
6219                    Ok(BaseDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {value: req.value,
6220
6221                        responder: BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
6222                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6223                            tx_id: header.tx_id,
6224                        },
6225                    })
6226                }
6227                0x2a0e7dc5d6bfdfe9 => {
6228                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6229                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6230                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6231                    let control_handle = BaseDatagramSocketControlHandle {
6232                        inner: this.inner.clone(),
6233                    };
6234                    Ok(BaseDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
6235                        responder: BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
6236                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6237                            tx_id: header.tx_id,
6238                        },
6239                    })
6240                }
6241                0x7c94727acb4ea4b3 => {
6242                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6243                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6244                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6245                    let control_handle = BaseDatagramSocketControlHandle {
6246                        inner: this.inner.clone(),
6247                    };
6248                    Ok(BaseDatagramSocketRequest::AddIpv6Membership {membership: req.membership,
6249
6250                        responder: BaseDatagramSocketAddIpv6MembershipResponder {
6251                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6252                            tx_id: header.tx_id,
6253                        },
6254                    })
6255                }
6256                0x42104c70ccaba304 => {
6257                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6258                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6259                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6260                    let control_handle = BaseDatagramSocketControlHandle {
6261                        inner: this.inner.clone(),
6262                    };
6263                    Ok(BaseDatagramSocketRequest::DropIpv6Membership {membership: req.membership,
6264
6265                        responder: BaseDatagramSocketDropIpv6MembershipResponder {
6266                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6267                            tx_id: header.tx_id,
6268                        },
6269                    })
6270                }
6271                0x135f76db3774ab3b => {
6272                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6273                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6274                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
6275                    let control_handle = BaseDatagramSocketControlHandle {
6276                        inner: this.inner.clone(),
6277                    };
6278                    Ok(BaseDatagramSocketRequest::SetIpv6MulticastInterface {value: req.value,
6279
6280                        responder: BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
6281                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6282                            tx_id: header.tx_id,
6283                        },
6284                    })
6285                }
6286                0x1f26fcdd348f1882 => {
6287                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6288                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6289                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6290                    let control_handle = BaseDatagramSocketControlHandle {
6291                        inner: this.inner.clone(),
6292                    };
6293                    Ok(BaseDatagramSocketRequest::GetIpv6MulticastInterface {
6294                        responder: BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
6295                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6296                            tx_id: header.tx_id,
6297                        },
6298                    })
6299                }
6300                0x157d51e98f462859 => {
6301                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6302                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6UnicastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6303                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
6304                    let control_handle = BaseDatagramSocketControlHandle {
6305                        inner: this.inner.clone(),
6306                    };
6307                    Ok(BaseDatagramSocketRequest::SetIpv6UnicastHops {value: req.value,
6308
6309                        responder: BaseDatagramSocketSetIpv6UnicastHopsResponder {
6310                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6311                            tx_id: header.tx_id,
6312                        },
6313                    })
6314                }
6315                0x21f4641cad8bd8d2 => {
6316                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6317                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6318                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6319                    let control_handle = BaseDatagramSocketControlHandle {
6320                        inner: this.inner.clone(),
6321                    };
6322                    Ok(BaseDatagramSocketRequest::GetIpv6UnicastHops {
6323                        responder: BaseDatagramSocketGetIpv6UnicastHopsResponder {
6324                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6325                            tx_id: header.tx_id,
6326                        },
6327                    })
6328                }
6329                0x5c24808ed2e84a1e => {
6330                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6331                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveHopLimitRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6332                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
6333                    let control_handle = BaseDatagramSocketControlHandle {
6334                        inner: this.inner.clone(),
6335                    };
6336                    Ok(BaseDatagramSocketRequest::SetIpv6ReceiveHopLimit {value: req.value,
6337
6338                        responder: BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
6339                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6340                            tx_id: header.tx_id,
6341                        },
6342                    })
6343                }
6344                0x341e06689885b4c0 => {
6345                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6346                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6347                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6348                    let control_handle = BaseDatagramSocketControlHandle {
6349                        inner: this.inner.clone(),
6350                    };
6351                    Ok(BaseDatagramSocketRequest::GetIpv6ReceiveHopLimit {
6352                        responder: BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
6353                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6354                            tx_id: header.tx_id,
6355                        },
6356                    })
6357                }
6358                0x25b9cd4d181f82c1 => {
6359                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6360                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6361                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
6362                    let control_handle = BaseDatagramSocketControlHandle {
6363                        inner: this.inner.clone(),
6364                    };
6365                    Ok(BaseDatagramSocketRequest::SetIpv6MulticastHops {value: req.value,
6366
6367                        responder: BaseDatagramSocketSetIpv6MulticastHopsResponder {
6368                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6369                            tx_id: header.tx_id,
6370                        },
6371                    })
6372                }
6373                0x52916948a365012a => {
6374                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6375                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6376                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6377                    let control_handle = BaseDatagramSocketControlHandle {
6378                        inner: this.inner.clone(),
6379                    };
6380                    Ok(BaseDatagramSocketRequest::GetIpv6MulticastHops {
6381                        responder: BaseDatagramSocketGetIpv6MulticastHopsResponder {
6382                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6383                            tx_id: header.tx_id,
6384                        },
6385                    })
6386                }
6387                0x55701c409ff41b40 => {
6388                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6389                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6390                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
6391                    let control_handle = BaseDatagramSocketControlHandle {
6392                        inner: this.inner.clone(),
6393                    };
6394                    Ok(BaseDatagramSocketRequest::SetIpv6MulticastLoopback {value: req.value,
6395
6396                        responder: BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
6397                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6398                            tx_id: header.tx_id,
6399                        },
6400                    })
6401                }
6402                0x4415b701fde319c3 => {
6403                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6404                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6405                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6406                    let control_handle = BaseDatagramSocketControlHandle {
6407                        inner: this.inner.clone(),
6408                    };
6409                    Ok(BaseDatagramSocketRequest::GetIpv6MulticastLoopback {
6410                        responder: BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
6411                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6412                            tx_id: header.tx_id,
6413                        },
6414                    })
6415                }
6416                0x4873f1364758cbba => {
6417                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6418                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6419                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
6420                    let control_handle = BaseDatagramSocketControlHandle {
6421                        inner: this.inner.clone(),
6422                    };
6423                    Ok(BaseDatagramSocketRequest::SetIpv6Only {value: req.value,
6424
6425                        responder: BaseDatagramSocketSetIpv6OnlyResponder {
6426                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6427                            tx_id: header.tx_id,
6428                        },
6429                    })
6430                }
6431                0x4aa3340a1a26b89c => {
6432                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6433                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6434                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6435                    let control_handle = BaseDatagramSocketControlHandle {
6436                        inner: this.inner.clone(),
6437                    };
6438                    Ok(BaseDatagramSocketRequest::GetIpv6Only {
6439                        responder: BaseDatagramSocketGetIpv6OnlyResponder {
6440                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6441                            tx_id: header.tx_id,
6442                        },
6443                    })
6444                }
6445                0x58f07c8788d099a0 => {
6446                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6447                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6448                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
6449                    let control_handle = BaseDatagramSocketControlHandle {
6450                        inner: this.inner.clone(),
6451                    };
6452                    Ok(BaseDatagramSocketRequest::SetIpv6ReceiveTrafficClass {value: req.value,
6453
6454                        responder: BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
6455                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6456                            tx_id: header.tx_id,
6457                        },
6458                    })
6459                }
6460                0x2e334df1da553ffa => {
6461                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6462                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6463                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6464                    let control_handle = BaseDatagramSocketControlHandle {
6465                        inner: this.inner.clone(),
6466                    };
6467                    Ok(BaseDatagramSocketRequest::GetIpv6ReceiveTrafficClass {
6468                        responder: BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
6469                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6470                            tx_id: header.tx_id,
6471                        },
6472                    })
6473                }
6474                0x6af077800c5a0b4f => {
6475                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6476                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6TrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6477                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
6478                    let control_handle = BaseDatagramSocketControlHandle {
6479                        inner: this.inner.clone(),
6480                    };
6481                    Ok(BaseDatagramSocketRequest::SetIpv6TrafficClass {value: req.value,
6482
6483                        responder: BaseDatagramSocketSetIpv6TrafficClassResponder {
6484                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6485                            tx_id: header.tx_id,
6486                        },
6487                    })
6488                }
6489                0x6baf6eed8fc2f04 => {
6490                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6491                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6492                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6493                    let control_handle = BaseDatagramSocketControlHandle {
6494                        inner: this.inner.clone(),
6495                    };
6496                    Ok(BaseDatagramSocketRequest::GetIpv6TrafficClass {
6497                        responder: BaseDatagramSocketGetIpv6TrafficClassResponder {
6498                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6499                            tx_id: header.tx_id,
6500                        },
6501                    })
6502                }
6503                0x19259775b1a92768 => {
6504                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6505                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceivePacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6506                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
6507                    let control_handle = BaseDatagramSocketControlHandle {
6508                        inner: this.inner.clone(),
6509                    };
6510                    Ok(BaseDatagramSocketRequest::SetIpv6ReceivePacketInfo {value: req.value,
6511
6512                        responder: BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
6513                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6514                            tx_id: header.tx_id,
6515                        },
6516                    })
6517                }
6518                0x7acd4a2775baec75 => {
6519                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6520                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6521                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6522                    let control_handle = BaseDatagramSocketControlHandle {
6523                        inner: this.inner.clone(),
6524                    };
6525                    Ok(BaseDatagramSocketRequest::GetIpv6ReceivePacketInfo {
6526                        responder: BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
6527                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6528                            tx_id: header.tx_id,
6529                        },
6530                    })
6531                }
6532                0x38bf28f0dafdbac0 => {
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::GetOriginalDestination {
6540                        responder: BaseDatagramSocketGetOriginalDestinationResponder {
6541                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6542                            tx_id: header.tx_id,
6543                        },
6544                    })
6545                }
6546                0x48aa0a1f6a32d2ed => {
6547                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6548                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6549                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6550                    let control_handle = BaseDatagramSocketControlHandle {
6551                        inner: this.inner.clone(),
6552                    };
6553                    Ok(BaseDatagramSocketRequest::GetInfo {
6554                        responder: BaseDatagramSocketGetInfoResponder {
6555                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6556                            tx_id: header.tx_id,
6557                        },
6558                    })
6559                }
6560                _ => Err(fidl::Error::UnknownOrdinal {
6561                    ordinal: header.ordinal,
6562                    protocol_name: <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
6563                }),
6564            }))
6565            },
6566        )
6567    }
6568}
6569
6570/// Base protocol shared by all datagram sockets.
6571///
6572/// Complete implementations of a datagram socket should compose this protocol.
6573#[derive(Debug)]
6574pub enum BaseDatagramSocketRequest {
6575    Clone {
6576        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
6577        control_handle: BaseDatagramSocketControlHandle,
6578    },
6579    /// Terminates the connection.
6580    ///
6581    /// After calling `Close`, the client must not send any other requests.
6582    ///
6583    /// Servers, after sending the status response, should close the connection
6584    /// regardless of status and without sending an epitaph.
6585    ///
6586    /// Closing the client end of the channel should be semantically equivalent
6587    /// to calling `Close` without knowing when the close has completed or its
6588    /// status.
6589    Close {
6590        responder: BaseDatagramSocketCloseResponder,
6591    },
6592    Query {
6593        responder: BaseDatagramSocketQueryResponder,
6594    },
6595    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
6596    SetReuseAddress {
6597        value: bool,
6598        responder: BaseDatagramSocketSetReuseAddressResponder,
6599    },
6600    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
6601    GetReuseAddress {
6602        responder: BaseDatagramSocketGetReuseAddressResponder,
6603    },
6604    /// Get `SOL_SOCKET` -> `SO_ERROR`.
6605    /// Returns the last error if there is an error set on the socket.
6606    GetError {
6607        responder: BaseDatagramSocketGetErrorResponder,
6608    },
6609    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
6610    SetBroadcast {
6611        value: bool,
6612        responder: BaseDatagramSocketSetBroadcastResponder,
6613    },
6614    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
6615    GetBroadcast {
6616        responder: BaseDatagramSocketGetBroadcastResponder,
6617    },
6618    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
6619    SetSendBuffer {
6620        value_bytes: u64,
6621        responder: BaseDatagramSocketSetSendBufferResponder,
6622    },
6623    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
6624    GetSendBuffer {
6625        responder: BaseDatagramSocketGetSendBufferResponder,
6626    },
6627    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
6628    SetReceiveBuffer {
6629        value_bytes: u64,
6630        responder: BaseDatagramSocketSetReceiveBufferResponder,
6631    },
6632    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
6633    GetReceiveBuffer {
6634        responder: BaseDatagramSocketGetReceiveBufferResponder,
6635    },
6636    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
6637    SetKeepAlive {
6638        value: bool,
6639        responder: BaseDatagramSocketSetKeepAliveResponder,
6640    },
6641    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
6642    GetKeepAlive {
6643        responder: BaseDatagramSocketGetKeepAliveResponder,
6644    },
6645    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
6646    SetOutOfBandInline {
6647        value: bool,
6648        responder: BaseDatagramSocketSetOutOfBandInlineResponder,
6649    },
6650    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
6651    GetOutOfBandInline {
6652        responder: BaseDatagramSocketGetOutOfBandInlineResponder,
6653    },
6654    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
6655    SetNoCheck {
6656        value: bool,
6657        responder: BaseDatagramSocketSetNoCheckResponder,
6658    },
6659    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
6660    GetNoCheck {
6661        responder: BaseDatagramSocketGetNoCheckResponder,
6662    },
6663    /// Set `SOL_SOCKET` -> `SO_LINGER`.
6664    SetLinger {
6665        linger: bool,
6666        length_secs: u32,
6667        responder: BaseDatagramSocketSetLingerResponder,
6668    },
6669    /// Get `SOL_SOCKET` -> `SO_LINGER`.
6670    GetLinger {
6671        responder: BaseDatagramSocketGetLingerResponder,
6672    },
6673    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
6674    SetReusePort {
6675        value: bool,
6676        responder: BaseDatagramSocketSetReusePortResponder,
6677    },
6678    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
6679    GetReusePort {
6680        responder: BaseDatagramSocketGetReusePortResponder,
6681    },
6682    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
6683    GetAcceptConn {
6684        responder: BaseDatagramSocketGetAcceptConnResponder,
6685    },
6686    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
6687    SetBindToDevice {
6688        value: String,
6689        responder: BaseDatagramSocketSetBindToDeviceResponder,
6690    },
6691    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
6692    GetBindToDevice {
6693        responder: BaseDatagramSocketGetBindToDeviceResponder,
6694    },
6695    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
6696    /// If `value` is 0, this clears the bound interface.
6697    SetBindToInterfaceIndex {
6698        value: u64,
6699        responder: BaseDatagramSocketSetBindToInterfaceIndexResponder,
6700    },
6701    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
6702    GetBindToInterfaceIndex {
6703        responder: BaseDatagramSocketGetBindToInterfaceIndexResponder,
6704    },
6705    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
6706    SetTimestamp {
6707        value: TimestampOption,
6708        responder: BaseDatagramSocketSetTimestampResponder,
6709    },
6710    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
6711    GetTimestamp {
6712        responder: BaseDatagramSocketGetTimestampResponder,
6713    },
6714    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
6715    /// unlike the standard SO_MARK, this API has multiple mark domains and each
6716    /// mark can be set independently in each domain.
6717    SetMark {
6718        domain: fidl_fuchsia_net::MarkDomain,
6719        mark: OptionalUint32,
6720        responder: BaseDatagramSocketSetMarkResponder,
6721    },
6722    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
6723    /// unlike the standard SO_MARK, this API has multiple mark domains and each
6724    /// mark can be retrieved independently in each domain.
6725    GetMark {
6726        domain: fidl_fuchsia_net::MarkDomain,
6727        responder: BaseDatagramSocketGetMarkResponder,
6728    },
6729    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
6730    GetCookie {
6731        responder: BaseDatagramSocketGetCookieResponder,
6732    },
6733    /// Sets the local address used for the socket.
6734    Bind {
6735        addr: fidl_fuchsia_net::SocketAddress,
6736        responder: BaseDatagramSocketBindResponder,
6737    },
6738    /// Initiates a connection to a remote address.
6739    Connect {
6740        addr: fidl_fuchsia_net::SocketAddress,
6741        responder: BaseDatagramSocketConnectResponder,
6742    },
6743    /// Clears connection information from this socket.
6744    Disconnect {
6745        responder: BaseDatagramSocketDisconnectResponder,
6746    },
6747    /// Retrieves the local socket address.
6748    GetSockName {
6749        responder: BaseDatagramSocketGetSockNameResponder,
6750    },
6751    /// Retrieves the remote socket address.
6752    GetPeerName {
6753        responder: BaseDatagramSocketGetPeerNameResponder,
6754    },
6755    /// Shuts down part of the socket.
6756    Shutdown {
6757        mode: ShutdownMode,
6758        responder: BaseDatagramSocketShutdownResponder,
6759    },
6760    /// Set `SOL_IP` -> `IP_TOS`.
6761    SetIpTypeOfService {
6762        value: u8,
6763        responder: BaseDatagramSocketSetIpTypeOfServiceResponder,
6764    },
6765    /// Get `SOL_IP` -> `IP_TOS`.
6766    GetIpTypeOfService {
6767        responder: BaseDatagramSocketGetIpTypeOfServiceResponder,
6768    },
6769    /// Set `SOL_IP` -> `IP_TTL`.
6770    SetIpTtl {
6771        value: OptionalUint8,
6772        responder: BaseDatagramSocketSetIpTtlResponder,
6773    },
6774    /// Get `SOL_IP` -> `IP_TTL`.
6775    GetIpTtl {
6776        responder: BaseDatagramSocketGetIpTtlResponder,
6777    },
6778    /// Set `SOL_IP` -> `IP_PKTINFO`.
6779    SetIpPacketInfo {
6780        value: bool,
6781        responder: BaseDatagramSocketSetIpPacketInfoResponder,
6782    },
6783    /// Get `SOL_IP` -> `IP_PKTINFO`.
6784    GetIpPacketInfo {
6785        responder: BaseDatagramSocketGetIpPacketInfoResponder,
6786    },
6787    /// Set `SOL_IP` -> `IP_RECVTOS`.
6788    SetIpReceiveTypeOfService {
6789        value: bool,
6790        responder: BaseDatagramSocketSetIpReceiveTypeOfServiceResponder,
6791    },
6792    /// Get `SOL_IP` -> `IP_RECVTOS`.
6793    GetIpReceiveTypeOfService {
6794        responder: BaseDatagramSocketGetIpReceiveTypeOfServiceResponder,
6795    },
6796    /// Set `SOL_IP` -> `IP_RECVTTL`.
6797    SetIpReceiveTtl {
6798        value: bool,
6799        responder: BaseDatagramSocketSetIpReceiveTtlResponder,
6800    },
6801    /// Get `SOL_IP` -> `IP_RECVTTL`.
6802    GetIpReceiveTtl {
6803        responder: BaseDatagramSocketGetIpReceiveTtlResponder,
6804    },
6805    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
6806    SetIpMulticastInterface {
6807        iface: u64,
6808        address: fidl_fuchsia_net::Ipv4Address,
6809        responder: BaseDatagramSocketSetIpMulticastInterfaceResponder,
6810    },
6811    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
6812    GetIpMulticastInterface {
6813        responder: BaseDatagramSocketGetIpMulticastInterfaceResponder,
6814    },
6815    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
6816    SetIpMulticastTtl {
6817        value: OptionalUint8,
6818        responder: BaseDatagramSocketSetIpMulticastTtlResponder,
6819    },
6820    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
6821    GetIpMulticastTtl {
6822        responder: BaseDatagramSocketGetIpMulticastTtlResponder,
6823    },
6824    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
6825    SetIpMulticastLoopback {
6826        value: bool,
6827        responder: BaseDatagramSocketSetIpMulticastLoopbackResponder,
6828    },
6829    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
6830    GetIpMulticastLoopback {
6831        responder: BaseDatagramSocketGetIpMulticastLoopbackResponder,
6832    },
6833    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
6834    AddIpMembership {
6835        membership: IpMulticastMembership,
6836        responder: BaseDatagramSocketAddIpMembershipResponder,
6837    },
6838    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
6839    DropIpMembership {
6840        membership: IpMulticastMembership,
6841        responder: BaseDatagramSocketDropIpMembershipResponder,
6842    },
6843    /// Set `SOL_IP` -> `IP_TRANSPARENT`
6844    SetIpTransparent {
6845        value: bool,
6846        responder: BaseDatagramSocketSetIpTransparentResponder,
6847    },
6848    /// Get `SOL_IP` -> `IP_TRANSPARENT`
6849    GetIpTransparent {
6850        responder: BaseDatagramSocketGetIpTransparentResponder,
6851    },
6852    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
6853    SetIpReceiveOriginalDestinationAddress {
6854        value: bool,
6855        responder: BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder,
6856    },
6857    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
6858    GetIpReceiveOriginalDestinationAddress {
6859        responder: BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder,
6860    },
6861    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
6862    AddIpv6Membership {
6863        membership: Ipv6MulticastMembership,
6864        responder: BaseDatagramSocketAddIpv6MembershipResponder,
6865    },
6866    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
6867    DropIpv6Membership {
6868        membership: Ipv6MulticastMembership,
6869        responder: BaseDatagramSocketDropIpv6MembershipResponder,
6870    },
6871    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
6872    SetIpv6MulticastInterface {
6873        value: u64,
6874        responder: BaseDatagramSocketSetIpv6MulticastInterfaceResponder,
6875    },
6876    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
6877    GetIpv6MulticastInterface {
6878        responder: BaseDatagramSocketGetIpv6MulticastInterfaceResponder,
6879    },
6880    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
6881    SetIpv6UnicastHops {
6882        value: OptionalUint8,
6883        responder: BaseDatagramSocketSetIpv6UnicastHopsResponder,
6884    },
6885    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
6886    GetIpv6UnicastHops {
6887        responder: BaseDatagramSocketGetIpv6UnicastHopsResponder,
6888    },
6889    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
6890    SetIpv6ReceiveHopLimit {
6891        value: bool,
6892        responder: BaseDatagramSocketSetIpv6ReceiveHopLimitResponder,
6893    },
6894    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
6895    GetIpv6ReceiveHopLimit {
6896        responder: BaseDatagramSocketGetIpv6ReceiveHopLimitResponder,
6897    },
6898    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
6899    SetIpv6MulticastHops {
6900        value: OptionalUint8,
6901        responder: BaseDatagramSocketSetIpv6MulticastHopsResponder,
6902    },
6903    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
6904    GetIpv6MulticastHops {
6905        responder: BaseDatagramSocketGetIpv6MulticastHopsResponder,
6906    },
6907    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
6908    SetIpv6MulticastLoopback {
6909        value: bool,
6910        responder: BaseDatagramSocketSetIpv6MulticastLoopbackResponder,
6911    },
6912    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
6913    GetIpv6MulticastLoopback {
6914        responder: BaseDatagramSocketGetIpv6MulticastLoopbackResponder,
6915    },
6916    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
6917    SetIpv6Only {
6918        value: bool,
6919        responder: BaseDatagramSocketSetIpv6OnlyResponder,
6920    },
6921    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
6922    GetIpv6Only {
6923        responder: BaseDatagramSocketGetIpv6OnlyResponder,
6924    },
6925    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
6926    SetIpv6ReceiveTrafficClass {
6927        value: bool,
6928        responder: BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder,
6929    },
6930    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
6931    GetIpv6ReceiveTrafficClass {
6932        responder: BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder,
6933    },
6934    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
6935    SetIpv6TrafficClass {
6936        value: OptionalUint8,
6937        responder: BaseDatagramSocketSetIpv6TrafficClassResponder,
6938    },
6939    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
6940    GetIpv6TrafficClass {
6941        responder: BaseDatagramSocketGetIpv6TrafficClassResponder,
6942    },
6943    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
6944    SetIpv6ReceivePacketInfo {
6945        value: bool,
6946        responder: BaseDatagramSocketSetIpv6ReceivePacketInfoResponder,
6947    },
6948    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
6949    GetIpv6ReceivePacketInfo {
6950        responder: BaseDatagramSocketGetIpv6ReceivePacketInfoResponder,
6951    },
6952    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
6953    GetOriginalDestination {
6954        responder: BaseDatagramSocketGetOriginalDestinationResponder,
6955    },
6956    /// Retrieves creation information from the socket.
6957    ///
6958    /// - response `domain` the socket's associated domain.
6959    /// - response `proto` the socket's associated protocol.
6960    GetInfo {
6961        responder: BaseDatagramSocketGetInfoResponder,
6962    },
6963}
6964
6965impl BaseDatagramSocketRequest {
6966    #[allow(irrefutable_let_patterns)]
6967    pub fn into_clone(
6968        self,
6969    ) -> Option<(
6970        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
6971        BaseDatagramSocketControlHandle,
6972    )> {
6973        if let BaseDatagramSocketRequest::Clone { request, control_handle } = self {
6974            Some((request, control_handle))
6975        } else {
6976            None
6977        }
6978    }
6979
6980    #[allow(irrefutable_let_patterns)]
6981    pub fn into_close(self) -> Option<(BaseDatagramSocketCloseResponder)> {
6982        if let BaseDatagramSocketRequest::Close { responder } = self {
6983            Some((responder))
6984        } else {
6985            None
6986        }
6987    }
6988
6989    #[allow(irrefutable_let_patterns)]
6990    pub fn into_query(self) -> Option<(BaseDatagramSocketQueryResponder)> {
6991        if let BaseDatagramSocketRequest::Query { responder } = self {
6992            Some((responder))
6993        } else {
6994            None
6995        }
6996    }
6997
6998    #[allow(irrefutable_let_patterns)]
6999    pub fn into_set_reuse_address(
7000        self,
7001    ) -> Option<(bool, BaseDatagramSocketSetReuseAddressResponder)> {
7002        if let BaseDatagramSocketRequest::SetReuseAddress { value, responder } = self {
7003            Some((value, responder))
7004        } else {
7005            None
7006        }
7007    }
7008
7009    #[allow(irrefutable_let_patterns)]
7010    pub fn into_get_reuse_address(self) -> Option<(BaseDatagramSocketGetReuseAddressResponder)> {
7011        if let BaseDatagramSocketRequest::GetReuseAddress { responder } = self {
7012            Some((responder))
7013        } else {
7014            None
7015        }
7016    }
7017
7018    #[allow(irrefutable_let_patterns)]
7019    pub fn into_get_error(self) -> Option<(BaseDatagramSocketGetErrorResponder)> {
7020        if let BaseDatagramSocketRequest::GetError { responder } = self {
7021            Some((responder))
7022        } else {
7023            None
7024        }
7025    }
7026
7027    #[allow(irrefutable_let_patterns)]
7028    pub fn into_set_broadcast(self) -> Option<(bool, BaseDatagramSocketSetBroadcastResponder)> {
7029        if let BaseDatagramSocketRequest::SetBroadcast { value, responder } = self {
7030            Some((value, responder))
7031        } else {
7032            None
7033        }
7034    }
7035
7036    #[allow(irrefutable_let_patterns)]
7037    pub fn into_get_broadcast(self) -> Option<(BaseDatagramSocketGetBroadcastResponder)> {
7038        if let BaseDatagramSocketRequest::GetBroadcast { responder } = self {
7039            Some((responder))
7040        } else {
7041            None
7042        }
7043    }
7044
7045    #[allow(irrefutable_let_patterns)]
7046    pub fn into_set_send_buffer(self) -> Option<(u64, BaseDatagramSocketSetSendBufferResponder)> {
7047        if let BaseDatagramSocketRequest::SetSendBuffer { value_bytes, responder } = self {
7048            Some((value_bytes, responder))
7049        } else {
7050            None
7051        }
7052    }
7053
7054    #[allow(irrefutable_let_patterns)]
7055    pub fn into_get_send_buffer(self) -> Option<(BaseDatagramSocketGetSendBufferResponder)> {
7056        if let BaseDatagramSocketRequest::GetSendBuffer { responder } = self {
7057            Some((responder))
7058        } else {
7059            None
7060        }
7061    }
7062
7063    #[allow(irrefutable_let_patterns)]
7064    pub fn into_set_receive_buffer(
7065        self,
7066    ) -> Option<(u64, BaseDatagramSocketSetReceiveBufferResponder)> {
7067        if let BaseDatagramSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
7068            Some((value_bytes, responder))
7069        } else {
7070            None
7071        }
7072    }
7073
7074    #[allow(irrefutable_let_patterns)]
7075    pub fn into_get_receive_buffer(self) -> Option<(BaseDatagramSocketGetReceiveBufferResponder)> {
7076        if let BaseDatagramSocketRequest::GetReceiveBuffer { responder } = self {
7077            Some((responder))
7078        } else {
7079            None
7080        }
7081    }
7082
7083    #[allow(irrefutable_let_patterns)]
7084    pub fn into_set_keep_alive(self) -> Option<(bool, BaseDatagramSocketSetKeepAliveResponder)> {
7085        if let BaseDatagramSocketRequest::SetKeepAlive { value, responder } = self {
7086            Some((value, responder))
7087        } else {
7088            None
7089        }
7090    }
7091
7092    #[allow(irrefutable_let_patterns)]
7093    pub fn into_get_keep_alive(self) -> Option<(BaseDatagramSocketGetKeepAliveResponder)> {
7094        if let BaseDatagramSocketRequest::GetKeepAlive { responder } = self {
7095            Some((responder))
7096        } else {
7097            None
7098        }
7099    }
7100
7101    #[allow(irrefutable_let_patterns)]
7102    pub fn into_set_out_of_band_inline(
7103        self,
7104    ) -> Option<(bool, BaseDatagramSocketSetOutOfBandInlineResponder)> {
7105        if let BaseDatagramSocketRequest::SetOutOfBandInline { value, responder } = self {
7106            Some((value, responder))
7107        } else {
7108            None
7109        }
7110    }
7111
7112    #[allow(irrefutable_let_patterns)]
7113    pub fn into_get_out_of_band_inline(
7114        self,
7115    ) -> Option<(BaseDatagramSocketGetOutOfBandInlineResponder)> {
7116        if let BaseDatagramSocketRequest::GetOutOfBandInline { responder } = self {
7117            Some((responder))
7118        } else {
7119            None
7120        }
7121    }
7122
7123    #[allow(irrefutable_let_patterns)]
7124    pub fn into_set_no_check(self) -> Option<(bool, BaseDatagramSocketSetNoCheckResponder)> {
7125        if let BaseDatagramSocketRequest::SetNoCheck { value, responder } = self {
7126            Some((value, responder))
7127        } else {
7128            None
7129        }
7130    }
7131
7132    #[allow(irrefutable_let_patterns)]
7133    pub fn into_get_no_check(self) -> Option<(BaseDatagramSocketGetNoCheckResponder)> {
7134        if let BaseDatagramSocketRequest::GetNoCheck { responder } = self {
7135            Some((responder))
7136        } else {
7137            None
7138        }
7139    }
7140
7141    #[allow(irrefutable_let_patterns)]
7142    pub fn into_set_linger(self) -> Option<(bool, u32, BaseDatagramSocketSetLingerResponder)> {
7143        if let BaseDatagramSocketRequest::SetLinger { linger, length_secs, responder } = self {
7144            Some((linger, length_secs, responder))
7145        } else {
7146            None
7147        }
7148    }
7149
7150    #[allow(irrefutable_let_patterns)]
7151    pub fn into_get_linger(self) -> Option<(BaseDatagramSocketGetLingerResponder)> {
7152        if let BaseDatagramSocketRequest::GetLinger { responder } = self {
7153            Some((responder))
7154        } else {
7155            None
7156        }
7157    }
7158
7159    #[allow(irrefutable_let_patterns)]
7160    pub fn into_set_reuse_port(self) -> Option<(bool, BaseDatagramSocketSetReusePortResponder)> {
7161        if let BaseDatagramSocketRequest::SetReusePort { value, responder } = self {
7162            Some((value, responder))
7163        } else {
7164            None
7165        }
7166    }
7167
7168    #[allow(irrefutable_let_patterns)]
7169    pub fn into_get_reuse_port(self) -> Option<(BaseDatagramSocketGetReusePortResponder)> {
7170        if let BaseDatagramSocketRequest::GetReusePort { responder } = self {
7171            Some((responder))
7172        } else {
7173            None
7174        }
7175    }
7176
7177    #[allow(irrefutable_let_patterns)]
7178    pub fn into_get_accept_conn(self) -> Option<(BaseDatagramSocketGetAcceptConnResponder)> {
7179        if let BaseDatagramSocketRequest::GetAcceptConn { responder } = self {
7180            Some((responder))
7181        } else {
7182            None
7183        }
7184    }
7185
7186    #[allow(irrefutable_let_patterns)]
7187    pub fn into_set_bind_to_device(
7188        self,
7189    ) -> Option<(String, BaseDatagramSocketSetBindToDeviceResponder)> {
7190        if let BaseDatagramSocketRequest::SetBindToDevice { value, responder } = self {
7191            Some((value, responder))
7192        } else {
7193            None
7194        }
7195    }
7196
7197    #[allow(irrefutable_let_patterns)]
7198    pub fn into_get_bind_to_device(self) -> Option<(BaseDatagramSocketGetBindToDeviceResponder)> {
7199        if let BaseDatagramSocketRequest::GetBindToDevice { responder } = self {
7200            Some((responder))
7201        } else {
7202            None
7203        }
7204    }
7205
7206    #[allow(irrefutable_let_patterns)]
7207    pub fn into_set_bind_to_interface_index(
7208        self,
7209    ) -> Option<(u64, BaseDatagramSocketSetBindToInterfaceIndexResponder)> {
7210        if let BaseDatagramSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
7211            Some((value, responder))
7212        } else {
7213            None
7214        }
7215    }
7216
7217    #[allow(irrefutable_let_patterns)]
7218    pub fn into_get_bind_to_interface_index(
7219        self,
7220    ) -> Option<(BaseDatagramSocketGetBindToInterfaceIndexResponder)> {
7221        if let BaseDatagramSocketRequest::GetBindToInterfaceIndex { responder } = self {
7222            Some((responder))
7223        } else {
7224            None
7225        }
7226    }
7227
7228    #[allow(irrefutable_let_patterns)]
7229    pub fn into_set_timestamp(
7230        self,
7231    ) -> Option<(TimestampOption, BaseDatagramSocketSetTimestampResponder)> {
7232        if let BaseDatagramSocketRequest::SetTimestamp { value, responder } = self {
7233            Some((value, responder))
7234        } else {
7235            None
7236        }
7237    }
7238
7239    #[allow(irrefutable_let_patterns)]
7240    pub fn into_get_timestamp(self) -> Option<(BaseDatagramSocketGetTimestampResponder)> {
7241        if let BaseDatagramSocketRequest::GetTimestamp { responder } = self {
7242            Some((responder))
7243        } else {
7244            None
7245        }
7246    }
7247
7248    #[allow(irrefutable_let_patterns)]
7249    pub fn into_set_mark(
7250        self,
7251    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, BaseDatagramSocketSetMarkResponder)>
7252    {
7253        if let BaseDatagramSocketRequest::SetMark { domain, mark, responder } = self {
7254            Some((domain, mark, responder))
7255        } else {
7256            None
7257        }
7258    }
7259
7260    #[allow(irrefutable_let_patterns)]
7261    pub fn into_get_mark(
7262        self,
7263    ) -> Option<(fidl_fuchsia_net::MarkDomain, BaseDatagramSocketGetMarkResponder)> {
7264        if let BaseDatagramSocketRequest::GetMark { domain, responder } = self {
7265            Some((domain, responder))
7266        } else {
7267            None
7268        }
7269    }
7270
7271    #[allow(irrefutable_let_patterns)]
7272    pub fn into_get_cookie(self) -> Option<(BaseDatagramSocketGetCookieResponder)> {
7273        if let BaseDatagramSocketRequest::GetCookie { responder } = self {
7274            Some((responder))
7275        } else {
7276            None
7277        }
7278    }
7279
7280    #[allow(irrefutable_let_patterns)]
7281    pub fn into_bind(
7282        self,
7283    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseDatagramSocketBindResponder)> {
7284        if let BaseDatagramSocketRequest::Bind { addr, responder } = self {
7285            Some((addr, responder))
7286        } else {
7287            None
7288        }
7289    }
7290
7291    #[allow(irrefutable_let_patterns)]
7292    pub fn into_connect(
7293        self,
7294    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseDatagramSocketConnectResponder)> {
7295        if let BaseDatagramSocketRequest::Connect { addr, responder } = self {
7296            Some((addr, responder))
7297        } else {
7298            None
7299        }
7300    }
7301
7302    #[allow(irrefutable_let_patterns)]
7303    pub fn into_disconnect(self) -> Option<(BaseDatagramSocketDisconnectResponder)> {
7304        if let BaseDatagramSocketRequest::Disconnect { responder } = self {
7305            Some((responder))
7306        } else {
7307            None
7308        }
7309    }
7310
7311    #[allow(irrefutable_let_patterns)]
7312    pub fn into_get_sock_name(self) -> Option<(BaseDatagramSocketGetSockNameResponder)> {
7313        if let BaseDatagramSocketRequest::GetSockName { responder } = self {
7314            Some((responder))
7315        } else {
7316            None
7317        }
7318    }
7319
7320    #[allow(irrefutable_let_patterns)]
7321    pub fn into_get_peer_name(self) -> Option<(BaseDatagramSocketGetPeerNameResponder)> {
7322        if let BaseDatagramSocketRequest::GetPeerName { responder } = self {
7323            Some((responder))
7324        } else {
7325            None
7326        }
7327    }
7328
7329    #[allow(irrefutable_let_patterns)]
7330    pub fn into_shutdown(self) -> Option<(ShutdownMode, BaseDatagramSocketShutdownResponder)> {
7331        if let BaseDatagramSocketRequest::Shutdown { mode, responder } = self {
7332            Some((mode, responder))
7333        } else {
7334            None
7335        }
7336    }
7337
7338    #[allow(irrefutable_let_patterns)]
7339    pub fn into_set_ip_type_of_service(
7340        self,
7341    ) -> Option<(u8, BaseDatagramSocketSetIpTypeOfServiceResponder)> {
7342        if let BaseDatagramSocketRequest::SetIpTypeOfService { value, responder } = self {
7343            Some((value, responder))
7344        } else {
7345            None
7346        }
7347    }
7348
7349    #[allow(irrefutable_let_patterns)]
7350    pub fn into_get_ip_type_of_service(
7351        self,
7352    ) -> Option<(BaseDatagramSocketGetIpTypeOfServiceResponder)> {
7353        if let BaseDatagramSocketRequest::GetIpTypeOfService { responder } = self {
7354            Some((responder))
7355        } else {
7356            None
7357        }
7358    }
7359
7360    #[allow(irrefutable_let_patterns)]
7361    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, BaseDatagramSocketSetIpTtlResponder)> {
7362        if let BaseDatagramSocketRequest::SetIpTtl { value, responder } = self {
7363            Some((value, responder))
7364        } else {
7365            None
7366        }
7367    }
7368
7369    #[allow(irrefutable_let_patterns)]
7370    pub fn into_get_ip_ttl(self) -> Option<(BaseDatagramSocketGetIpTtlResponder)> {
7371        if let BaseDatagramSocketRequest::GetIpTtl { responder } = self {
7372            Some((responder))
7373        } else {
7374            None
7375        }
7376    }
7377
7378    #[allow(irrefutable_let_patterns)]
7379    pub fn into_set_ip_packet_info(
7380        self,
7381    ) -> Option<(bool, BaseDatagramSocketSetIpPacketInfoResponder)> {
7382        if let BaseDatagramSocketRequest::SetIpPacketInfo { value, responder } = self {
7383            Some((value, responder))
7384        } else {
7385            None
7386        }
7387    }
7388
7389    #[allow(irrefutable_let_patterns)]
7390    pub fn into_get_ip_packet_info(self) -> Option<(BaseDatagramSocketGetIpPacketInfoResponder)> {
7391        if let BaseDatagramSocketRequest::GetIpPacketInfo { responder } = self {
7392            Some((responder))
7393        } else {
7394            None
7395        }
7396    }
7397
7398    #[allow(irrefutable_let_patterns)]
7399    pub fn into_set_ip_receive_type_of_service(
7400        self,
7401    ) -> Option<(bool, BaseDatagramSocketSetIpReceiveTypeOfServiceResponder)> {
7402        if let BaseDatagramSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
7403            Some((value, responder))
7404        } else {
7405            None
7406        }
7407    }
7408
7409    #[allow(irrefutable_let_patterns)]
7410    pub fn into_get_ip_receive_type_of_service(
7411        self,
7412    ) -> Option<(BaseDatagramSocketGetIpReceiveTypeOfServiceResponder)> {
7413        if let BaseDatagramSocketRequest::GetIpReceiveTypeOfService { responder } = self {
7414            Some((responder))
7415        } else {
7416            None
7417        }
7418    }
7419
7420    #[allow(irrefutable_let_patterns)]
7421    pub fn into_set_ip_receive_ttl(
7422        self,
7423    ) -> Option<(bool, BaseDatagramSocketSetIpReceiveTtlResponder)> {
7424        if let BaseDatagramSocketRequest::SetIpReceiveTtl { value, responder } = self {
7425            Some((value, responder))
7426        } else {
7427            None
7428        }
7429    }
7430
7431    #[allow(irrefutable_let_patterns)]
7432    pub fn into_get_ip_receive_ttl(self) -> Option<(BaseDatagramSocketGetIpReceiveTtlResponder)> {
7433        if let BaseDatagramSocketRequest::GetIpReceiveTtl { responder } = self {
7434            Some((responder))
7435        } else {
7436            None
7437        }
7438    }
7439
7440    #[allow(irrefutable_let_patterns)]
7441    pub fn into_set_ip_multicast_interface(
7442        self,
7443    ) -> Option<(
7444        u64,
7445        fidl_fuchsia_net::Ipv4Address,
7446        BaseDatagramSocketSetIpMulticastInterfaceResponder,
7447    )> {
7448        if let BaseDatagramSocketRequest::SetIpMulticastInterface { iface, address, responder } =
7449            self
7450        {
7451            Some((iface, address, responder))
7452        } else {
7453            None
7454        }
7455    }
7456
7457    #[allow(irrefutable_let_patterns)]
7458    pub fn into_get_ip_multicast_interface(
7459        self,
7460    ) -> Option<(BaseDatagramSocketGetIpMulticastInterfaceResponder)> {
7461        if let BaseDatagramSocketRequest::GetIpMulticastInterface { responder } = self {
7462            Some((responder))
7463        } else {
7464            None
7465        }
7466    }
7467
7468    #[allow(irrefutable_let_patterns)]
7469    pub fn into_set_ip_multicast_ttl(
7470        self,
7471    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpMulticastTtlResponder)> {
7472        if let BaseDatagramSocketRequest::SetIpMulticastTtl { value, responder } = self {
7473            Some((value, responder))
7474        } else {
7475            None
7476        }
7477    }
7478
7479    #[allow(irrefutable_let_patterns)]
7480    pub fn into_get_ip_multicast_ttl(
7481        self,
7482    ) -> Option<(BaseDatagramSocketGetIpMulticastTtlResponder)> {
7483        if let BaseDatagramSocketRequest::GetIpMulticastTtl { responder } = self {
7484            Some((responder))
7485        } else {
7486            None
7487        }
7488    }
7489
7490    #[allow(irrefutable_let_patterns)]
7491    pub fn into_set_ip_multicast_loopback(
7492        self,
7493    ) -> Option<(bool, BaseDatagramSocketSetIpMulticastLoopbackResponder)> {
7494        if let BaseDatagramSocketRequest::SetIpMulticastLoopback { value, responder } = self {
7495            Some((value, responder))
7496        } else {
7497            None
7498        }
7499    }
7500
7501    #[allow(irrefutable_let_patterns)]
7502    pub fn into_get_ip_multicast_loopback(
7503        self,
7504    ) -> Option<(BaseDatagramSocketGetIpMulticastLoopbackResponder)> {
7505        if let BaseDatagramSocketRequest::GetIpMulticastLoopback { responder } = self {
7506            Some((responder))
7507        } else {
7508            None
7509        }
7510    }
7511
7512    #[allow(irrefutable_let_patterns)]
7513    pub fn into_add_ip_membership(
7514        self,
7515    ) -> Option<(IpMulticastMembership, BaseDatagramSocketAddIpMembershipResponder)> {
7516        if let BaseDatagramSocketRequest::AddIpMembership { membership, responder } = self {
7517            Some((membership, responder))
7518        } else {
7519            None
7520        }
7521    }
7522
7523    #[allow(irrefutable_let_patterns)]
7524    pub fn into_drop_ip_membership(
7525        self,
7526    ) -> Option<(IpMulticastMembership, BaseDatagramSocketDropIpMembershipResponder)> {
7527        if let BaseDatagramSocketRequest::DropIpMembership { membership, responder } = self {
7528            Some((membership, responder))
7529        } else {
7530            None
7531        }
7532    }
7533
7534    #[allow(irrefutable_let_patterns)]
7535    pub fn into_set_ip_transparent(
7536        self,
7537    ) -> Option<(bool, BaseDatagramSocketSetIpTransparentResponder)> {
7538        if let BaseDatagramSocketRequest::SetIpTransparent { value, responder } = self {
7539            Some((value, responder))
7540        } else {
7541            None
7542        }
7543    }
7544
7545    #[allow(irrefutable_let_patterns)]
7546    pub fn into_get_ip_transparent(self) -> Option<(BaseDatagramSocketGetIpTransparentResponder)> {
7547        if let BaseDatagramSocketRequest::GetIpTransparent { responder } = self {
7548            Some((responder))
7549        } else {
7550            None
7551        }
7552    }
7553
7554    #[allow(irrefutable_let_patterns)]
7555    pub fn into_set_ip_receive_original_destination_address(
7556        self,
7557    ) -> Option<(bool, BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder)> {
7558        if let BaseDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {
7559            value,
7560            responder,
7561        } = self
7562        {
7563            Some((value, responder))
7564        } else {
7565            None
7566        }
7567    }
7568
7569    #[allow(irrefutable_let_patterns)]
7570    pub fn into_get_ip_receive_original_destination_address(
7571        self,
7572    ) -> Option<(BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder)> {
7573        if let BaseDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } =
7574            self
7575        {
7576            Some((responder))
7577        } else {
7578            None
7579        }
7580    }
7581
7582    #[allow(irrefutable_let_patterns)]
7583    pub fn into_add_ipv6_membership(
7584        self,
7585    ) -> Option<(Ipv6MulticastMembership, BaseDatagramSocketAddIpv6MembershipResponder)> {
7586        if let BaseDatagramSocketRequest::AddIpv6Membership { membership, responder } = self {
7587            Some((membership, responder))
7588        } else {
7589            None
7590        }
7591    }
7592
7593    #[allow(irrefutable_let_patterns)]
7594    pub fn into_drop_ipv6_membership(
7595        self,
7596    ) -> Option<(Ipv6MulticastMembership, BaseDatagramSocketDropIpv6MembershipResponder)> {
7597        if let BaseDatagramSocketRequest::DropIpv6Membership { membership, responder } = self {
7598            Some((membership, responder))
7599        } else {
7600            None
7601        }
7602    }
7603
7604    #[allow(irrefutable_let_patterns)]
7605    pub fn into_set_ipv6_multicast_interface(
7606        self,
7607    ) -> Option<(u64, BaseDatagramSocketSetIpv6MulticastInterfaceResponder)> {
7608        if let BaseDatagramSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
7609            Some((value, responder))
7610        } else {
7611            None
7612        }
7613    }
7614
7615    #[allow(irrefutable_let_patterns)]
7616    pub fn into_get_ipv6_multicast_interface(
7617        self,
7618    ) -> Option<(BaseDatagramSocketGetIpv6MulticastInterfaceResponder)> {
7619        if let BaseDatagramSocketRequest::GetIpv6MulticastInterface { responder } = self {
7620            Some((responder))
7621        } else {
7622            None
7623        }
7624    }
7625
7626    #[allow(irrefutable_let_patterns)]
7627    pub fn into_set_ipv6_unicast_hops(
7628        self,
7629    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpv6UnicastHopsResponder)> {
7630        if let BaseDatagramSocketRequest::SetIpv6UnicastHops { value, responder } = self {
7631            Some((value, responder))
7632        } else {
7633            None
7634        }
7635    }
7636
7637    #[allow(irrefutable_let_patterns)]
7638    pub fn into_get_ipv6_unicast_hops(
7639        self,
7640    ) -> Option<(BaseDatagramSocketGetIpv6UnicastHopsResponder)> {
7641        if let BaseDatagramSocketRequest::GetIpv6UnicastHops { responder } = self {
7642            Some((responder))
7643        } else {
7644            None
7645        }
7646    }
7647
7648    #[allow(irrefutable_let_patterns)]
7649    pub fn into_set_ipv6_receive_hop_limit(
7650        self,
7651    ) -> Option<(bool, BaseDatagramSocketSetIpv6ReceiveHopLimitResponder)> {
7652        if let BaseDatagramSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
7653            Some((value, responder))
7654        } else {
7655            None
7656        }
7657    }
7658
7659    #[allow(irrefutable_let_patterns)]
7660    pub fn into_get_ipv6_receive_hop_limit(
7661        self,
7662    ) -> Option<(BaseDatagramSocketGetIpv6ReceiveHopLimitResponder)> {
7663        if let BaseDatagramSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
7664            Some((responder))
7665        } else {
7666            None
7667        }
7668    }
7669
7670    #[allow(irrefutable_let_patterns)]
7671    pub fn into_set_ipv6_multicast_hops(
7672        self,
7673    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpv6MulticastHopsResponder)> {
7674        if let BaseDatagramSocketRequest::SetIpv6MulticastHops { value, responder } = self {
7675            Some((value, responder))
7676        } else {
7677            None
7678        }
7679    }
7680
7681    #[allow(irrefutable_let_patterns)]
7682    pub fn into_get_ipv6_multicast_hops(
7683        self,
7684    ) -> Option<(BaseDatagramSocketGetIpv6MulticastHopsResponder)> {
7685        if let BaseDatagramSocketRequest::GetIpv6MulticastHops { responder } = self {
7686            Some((responder))
7687        } else {
7688            None
7689        }
7690    }
7691
7692    #[allow(irrefutable_let_patterns)]
7693    pub fn into_set_ipv6_multicast_loopback(
7694        self,
7695    ) -> Option<(bool, BaseDatagramSocketSetIpv6MulticastLoopbackResponder)> {
7696        if let BaseDatagramSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
7697            Some((value, responder))
7698        } else {
7699            None
7700        }
7701    }
7702
7703    #[allow(irrefutable_let_patterns)]
7704    pub fn into_get_ipv6_multicast_loopback(
7705        self,
7706    ) -> Option<(BaseDatagramSocketGetIpv6MulticastLoopbackResponder)> {
7707        if let BaseDatagramSocketRequest::GetIpv6MulticastLoopback { responder } = self {
7708            Some((responder))
7709        } else {
7710            None
7711        }
7712    }
7713
7714    #[allow(irrefutable_let_patterns)]
7715    pub fn into_set_ipv6_only(self) -> Option<(bool, BaseDatagramSocketSetIpv6OnlyResponder)> {
7716        if let BaseDatagramSocketRequest::SetIpv6Only { value, responder } = self {
7717            Some((value, responder))
7718        } else {
7719            None
7720        }
7721    }
7722
7723    #[allow(irrefutable_let_patterns)]
7724    pub fn into_get_ipv6_only(self) -> Option<(BaseDatagramSocketGetIpv6OnlyResponder)> {
7725        if let BaseDatagramSocketRequest::GetIpv6Only { responder } = self {
7726            Some((responder))
7727        } else {
7728            None
7729        }
7730    }
7731
7732    #[allow(irrefutable_let_patterns)]
7733    pub fn into_set_ipv6_receive_traffic_class(
7734        self,
7735    ) -> Option<(bool, BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder)> {
7736        if let BaseDatagramSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
7737            Some((value, responder))
7738        } else {
7739            None
7740        }
7741    }
7742
7743    #[allow(irrefutable_let_patterns)]
7744    pub fn into_get_ipv6_receive_traffic_class(
7745        self,
7746    ) -> Option<(BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder)> {
7747        if let BaseDatagramSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
7748            Some((responder))
7749        } else {
7750            None
7751        }
7752    }
7753
7754    #[allow(irrefutable_let_patterns)]
7755    pub fn into_set_ipv6_traffic_class(
7756        self,
7757    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpv6TrafficClassResponder)> {
7758        if let BaseDatagramSocketRequest::SetIpv6TrafficClass { value, responder } = self {
7759            Some((value, responder))
7760        } else {
7761            None
7762        }
7763    }
7764
7765    #[allow(irrefutable_let_patterns)]
7766    pub fn into_get_ipv6_traffic_class(
7767        self,
7768    ) -> Option<(BaseDatagramSocketGetIpv6TrafficClassResponder)> {
7769        if let BaseDatagramSocketRequest::GetIpv6TrafficClass { responder } = self {
7770            Some((responder))
7771        } else {
7772            None
7773        }
7774    }
7775
7776    #[allow(irrefutable_let_patterns)]
7777    pub fn into_set_ipv6_receive_packet_info(
7778        self,
7779    ) -> Option<(bool, BaseDatagramSocketSetIpv6ReceivePacketInfoResponder)> {
7780        if let BaseDatagramSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
7781            Some((value, responder))
7782        } else {
7783            None
7784        }
7785    }
7786
7787    #[allow(irrefutable_let_patterns)]
7788    pub fn into_get_ipv6_receive_packet_info(
7789        self,
7790    ) -> Option<(BaseDatagramSocketGetIpv6ReceivePacketInfoResponder)> {
7791        if let BaseDatagramSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
7792            Some((responder))
7793        } else {
7794            None
7795        }
7796    }
7797
7798    #[allow(irrefutable_let_patterns)]
7799    pub fn into_get_original_destination(
7800        self,
7801    ) -> Option<(BaseDatagramSocketGetOriginalDestinationResponder)> {
7802        if let BaseDatagramSocketRequest::GetOriginalDestination { responder } = self {
7803            Some((responder))
7804        } else {
7805            None
7806        }
7807    }
7808
7809    #[allow(irrefutable_let_patterns)]
7810    pub fn into_get_info(self) -> Option<(BaseDatagramSocketGetInfoResponder)> {
7811        if let BaseDatagramSocketRequest::GetInfo { responder } = self {
7812            Some((responder))
7813        } else {
7814            None
7815        }
7816    }
7817
7818    /// Name of the method defined in FIDL
7819    pub fn method_name(&self) -> &'static str {
7820        match *self {
7821            BaseDatagramSocketRequest::Clone { .. } => "clone",
7822            BaseDatagramSocketRequest::Close { .. } => "close",
7823            BaseDatagramSocketRequest::Query { .. } => "query",
7824            BaseDatagramSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
7825            BaseDatagramSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
7826            BaseDatagramSocketRequest::GetError { .. } => "get_error",
7827            BaseDatagramSocketRequest::SetBroadcast { .. } => "set_broadcast",
7828            BaseDatagramSocketRequest::GetBroadcast { .. } => "get_broadcast",
7829            BaseDatagramSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
7830            BaseDatagramSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
7831            BaseDatagramSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
7832            BaseDatagramSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
7833            BaseDatagramSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
7834            BaseDatagramSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
7835            BaseDatagramSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
7836            BaseDatagramSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
7837            BaseDatagramSocketRequest::SetNoCheck { .. } => "set_no_check",
7838            BaseDatagramSocketRequest::GetNoCheck { .. } => "get_no_check",
7839            BaseDatagramSocketRequest::SetLinger { .. } => "set_linger",
7840            BaseDatagramSocketRequest::GetLinger { .. } => "get_linger",
7841            BaseDatagramSocketRequest::SetReusePort { .. } => "set_reuse_port",
7842            BaseDatagramSocketRequest::GetReusePort { .. } => "get_reuse_port",
7843            BaseDatagramSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
7844            BaseDatagramSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
7845            BaseDatagramSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
7846            BaseDatagramSocketRequest::SetBindToInterfaceIndex { .. } => {
7847                "set_bind_to_interface_index"
7848            }
7849            BaseDatagramSocketRequest::GetBindToInterfaceIndex { .. } => {
7850                "get_bind_to_interface_index"
7851            }
7852            BaseDatagramSocketRequest::SetTimestamp { .. } => "set_timestamp",
7853            BaseDatagramSocketRequest::GetTimestamp { .. } => "get_timestamp",
7854            BaseDatagramSocketRequest::SetMark { .. } => "set_mark",
7855            BaseDatagramSocketRequest::GetMark { .. } => "get_mark",
7856            BaseDatagramSocketRequest::GetCookie { .. } => "get_cookie",
7857            BaseDatagramSocketRequest::Bind { .. } => "bind",
7858            BaseDatagramSocketRequest::Connect { .. } => "connect",
7859            BaseDatagramSocketRequest::Disconnect { .. } => "disconnect",
7860            BaseDatagramSocketRequest::GetSockName { .. } => "get_sock_name",
7861            BaseDatagramSocketRequest::GetPeerName { .. } => "get_peer_name",
7862            BaseDatagramSocketRequest::Shutdown { .. } => "shutdown",
7863            BaseDatagramSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
7864            BaseDatagramSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
7865            BaseDatagramSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
7866            BaseDatagramSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
7867            BaseDatagramSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
7868            BaseDatagramSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
7869            BaseDatagramSocketRequest::SetIpReceiveTypeOfService { .. } => {
7870                "set_ip_receive_type_of_service"
7871            }
7872            BaseDatagramSocketRequest::GetIpReceiveTypeOfService { .. } => {
7873                "get_ip_receive_type_of_service"
7874            }
7875            BaseDatagramSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
7876            BaseDatagramSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
7877            BaseDatagramSocketRequest::SetIpMulticastInterface { .. } => {
7878                "set_ip_multicast_interface"
7879            }
7880            BaseDatagramSocketRequest::GetIpMulticastInterface { .. } => {
7881                "get_ip_multicast_interface"
7882            }
7883            BaseDatagramSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
7884            BaseDatagramSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
7885            BaseDatagramSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
7886            BaseDatagramSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
7887            BaseDatagramSocketRequest::AddIpMembership { .. } => "add_ip_membership",
7888            BaseDatagramSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
7889            BaseDatagramSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
7890            BaseDatagramSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
7891            BaseDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
7892                "set_ip_receive_original_destination_address"
7893            }
7894            BaseDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
7895                "get_ip_receive_original_destination_address"
7896            }
7897            BaseDatagramSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
7898            BaseDatagramSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
7899            BaseDatagramSocketRequest::SetIpv6MulticastInterface { .. } => {
7900                "set_ipv6_multicast_interface"
7901            }
7902            BaseDatagramSocketRequest::GetIpv6MulticastInterface { .. } => {
7903                "get_ipv6_multicast_interface"
7904            }
7905            BaseDatagramSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
7906            BaseDatagramSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
7907            BaseDatagramSocketRequest::SetIpv6ReceiveHopLimit { .. } => {
7908                "set_ipv6_receive_hop_limit"
7909            }
7910            BaseDatagramSocketRequest::GetIpv6ReceiveHopLimit { .. } => {
7911                "get_ipv6_receive_hop_limit"
7912            }
7913            BaseDatagramSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
7914            BaseDatagramSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
7915            BaseDatagramSocketRequest::SetIpv6MulticastLoopback { .. } => {
7916                "set_ipv6_multicast_loopback"
7917            }
7918            BaseDatagramSocketRequest::GetIpv6MulticastLoopback { .. } => {
7919                "get_ipv6_multicast_loopback"
7920            }
7921            BaseDatagramSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
7922            BaseDatagramSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
7923            BaseDatagramSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
7924                "set_ipv6_receive_traffic_class"
7925            }
7926            BaseDatagramSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
7927                "get_ipv6_receive_traffic_class"
7928            }
7929            BaseDatagramSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
7930            BaseDatagramSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
7931            BaseDatagramSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
7932                "set_ipv6_receive_packet_info"
7933            }
7934            BaseDatagramSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
7935                "get_ipv6_receive_packet_info"
7936            }
7937            BaseDatagramSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
7938            BaseDatagramSocketRequest::GetInfo { .. } => "get_info",
7939        }
7940    }
7941}
7942
7943#[derive(Debug, Clone)]
7944pub struct BaseDatagramSocketControlHandle {
7945    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
7946}
7947
7948impl fidl::endpoints::ControlHandle for BaseDatagramSocketControlHandle {
7949    fn shutdown(&self) {
7950        self.inner.shutdown()
7951    }
7952    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
7953        self.inner.shutdown_with_epitaph(status)
7954    }
7955
7956    fn is_closed(&self) -> bool {
7957        self.inner.channel().is_closed()
7958    }
7959    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
7960        self.inner.channel().on_closed()
7961    }
7962
7963    #[cfg(target_os = "fuchsia")]
7964    fn signal_peer(
7965        &self,
7966        clear_mask: zx::Signals,
7967        set_mask: zx::Signals,
7968    ) -> Result<(), zx_status::Status> {
7969        use fidl::Peered;
7970        self.inner.channel().signal_peer(clear_mask, set_mask)
7971    }
7972}
7973
7974impl BaseDatagramSocketControlHandle {}
7975
7976#[must_use = "FIDL methods require a response to be sent"]
7977#[derive(Debug)]
7978pub struct BaseDatagramSocketCloseResponder {
7979    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
7980    tx_id: u32,
7981}
7982
7983/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
7984/// if the responder is dropped without sending a response, so that the client
7985/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
7986impl std::ops::Drop for BaseDatagramSocketCloseResponder {
7987    fn drop(&mut self) {
7988        self.control_handle.shutdown();
7989        // Safety: drops once, never accessed again
7990        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
7991    }
7992}
7993
7994impl fidl::endpoints::Responder for BaseDatagramSocketCloseResponder {
7995    type ControlHandle = BaseDatagramSocketControlHandle;
7996
7997    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
7998        &self.control_handle
7999    }
8000
8001    fn drop_without_shutdown(mut self) {
8002        // Safety: drops once, never accessed again due to mem::forget
8003        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8004        // Prevent Drop from running (which would shut down the channel)
8005        std::mem::forget(self);
8006    }
8007}
8008
8009impl BaseDatagramSocketCloseResponder {
8010    /// Sends a response to the FIDL transaction.
8011    ///
8012    /// Sets the channel to shutdown if an error occurs.
8013    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
8014        let _result = self.send_raw(result);
8015        if _result.is_err() {
8016            self.control_handle.shutdown();
8017        }
8018        self.drop_without_shutdown();
8019        _result
8020    }
8021
8022    /// Similar to "send" but does not shutdown the channel if an error occurs.
8023    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
8024        let _result = self.send_raw(result);
8025        self.drop_without_shutdown();
8026        _result
8027    }
8028
8029    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
8030        self.control_handle
8031            .inner
8032            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
8033                result,
8034                self.tx_id,
8035                0x5ac5d459ad7f657e,
8036                fidl::encoding::DynamicFlags::empty(),
8037            )
8038    }
8039}
8040
8041#[must_use = "FIDL methods require a response to be sent"]
8042#[derive(Debug)]
8043pub struct BaseDatagramSocketQueryResponder {
8044    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8045    tx_id: u32,
8046}
8047
8048/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8049/// if the responder is dropped without sending a response, so that the client
8050/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8051impl std::ops::Drop for BaseDatagramSocketQueryResponder {
8052    fn drop(&mut self) {
8053        self.control_handle.shutdown();
8054        // Safety: drops once, never accessed again
8055        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8056    }
8057}
8058
8059impl fidl::endpoints::Responder for BaseDatagramSocketQueryResponder {
8060    type ControlHandle = BaseDatagramSocketControlHandle;
8061
8062    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8063        &self.control_handle
8064    }
8065
8066    fn drop_without_shutdown(mut self) {
8067        // Safety: drops once, never accessed again due to mem::forget
8068        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8069        // Prevent Drop from running (which would shut down the channel)
8070        std::mem::forget(self);
8071    }
8072}
8073
8074impl BaseDatagramSocketQueryResponder {
8075    /// Sends a response to the FIDL transaction.
8076    ///
8077    /// Sets the channel to shutdown if an error occurs.
8078    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
8079        let _result = self.send_raw(protocol);
8080        if _result.is_err() {
8081            self.control_handle.shutdown();
8082        }
8083        self.drop_without_shutdown();
8084        _result
8085    }
8086
8087    /// Similar to "send" but does not shutdown the channel if an error occurs.
8088    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
8089        let _result = self.send_raw(protocol);
8090        self.drop_without_shutdown();
8091        _result
8092    }
8093
8094    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
8095        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
8096            (protocol,),
8097            self.tx_id,
8098            0x2658edee9decfc06,
8099            fidl::encoding::DynamicFlags::empty(),
8100        )
8101    }
8102}
8103
8104#[must_use = "FIDL methods require a response to be sent"]
8105#[derive(Debug)]
8106pub struct BaseDatagramSocketSetReuseAddressResponder {
8107    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8108    tx_id: u32,
8109}
8110
8111/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8112/// if the responder is dropped without sending a response, so that the client
8113/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8114impl std::ops::Drop for BaseDatagramSocketSetReuseAddressResponder {
8115    fn drop(&mut self) {
8116        self.control_handle.shutdown();
8117        // Safety: drops once, never accessed again
8118        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8119    }
8120}
8121
8122impl fidl::endpoints::Responder for BaseDatagramSocketSetReuseAddressResponder {
8123    type ControlHandle = BaseDatagramSocketControlHandle;
8124
8125    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8126        &self.control_handle
8127    }
8128
8129    fn drop_without_shutdown(mut self) {
8130        // Safety: drops once, never accessed again due to mem::forget
8131        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8132        // Prevent Drop from running (which would shut down the channel)
8133        std::mem::forget(self);
8134    }
8135}
8136
8137impl BaseDatagramSocketSetReuseAddressResponder {
8138    /// Sends a response to the FIDL transaction.
8139    ///
8140    /// Sets the channel to shutdown if an error occurs.
8141    pub fn send(
8142        self,
8143        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8144    ) -> Result<(), fidl::Error> {
8145        let _result = self.send_raw(result);
8146        if _result.is_err() {
8147            self.control_handle.shutdown();
8148        }
8149        self.drop_without_shutdown();
8150        _result
8151    }
8152
8153    /// Similar to "send" but does not shutdown the channel if an error occurs.
8154    pub fn send_no_shutdown_on_err(
8155        self,
8156        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8157    ) -> Result<(), fidl::Error> {
8158        let _result = self.send_raw(result);
8159        self.drop_without_shutdown();
8160        _result
8161    }
8162
8163    fn send_raw(
8164        &self,
8165        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8166    ) -> Result<(), fidl::Error> {
8167        self.control_handle.inner.send::<fidl::encoding::ResultType<
8168            fidl::encoding::EmptyStruct,
8169            fidl_fuchsia_posix::Errno,
8170        >>(
8171            result,
8172            self.tx_id,
8173            0x1fd74ee8b9a4a876,
8174            fidl::encoding::DynamicFlags::empty(),
8175        )
8176    }
8177}
8178
8179#[must_use = "FIDL methods require a response to be sent"]
8180#[derive(Debug)]
8181pub struct BaseDatagramSocketGetReuseAddressResponder {
8182    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8183    tx_id: u32,
8184}
8185
8186/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8187/// if the responder is dropped without sending a response, so that the client
8188/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8189impl std::ops::Drop for BaseDatagramSocketGetReuseAddressResponder {
8190    fn drop(&mut self) {
8191        self.control_handle.shutdown();
8192        // Safety: drops once, never accessed again
8193        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8194    }
8195}
8196
8197impl fidl::endpoints::Responder for BaseDatagramSocketGetReuseAddressResponder {
8198    type ControlHandle = BaseDatagramSocketControlHandle;
8199
8200    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8201        &self.control_handle
8202    }
8203
8204    fn drop_without_shutdown(mut self) {
8205        // Safety: drops once, never accessed again due to mem::forget
8206        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8207        // Prevent Drop from running (which would shut down the channel)
8208        std::mem::forget(self);
8209    }
8210}
8211
8212impl BaseDatagramSocketGetReuseAddressResponder {
8213    /// Sends a response to the FIDL transaction.
8214    ///
8215    /// Sets the channel to shutdown if an error occurs.
8216    pub fn send(
8217        self,
8218        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8219    ) -> Result<(), fidl::Error> {
8220        let _result = self.send_raw(result);
8221        if _result.is_err() {
8222            self.control_handle.shutdown();
8223        }
8224        self.drop_without_shutdown();
8225        _result
8226    }
8227
8228    /// Similar to "send" but does not shutdown the channel if an error occurs.
8229    pub fn send_no_shutdown_on_err(
8230        self,
8231        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8232    ) -> Result<(), fidl::Error> {
8233        let _result = self.send_raw(result);
8234        self.drop_without_shutdown();
8235        _result
8236    }
8237
8238    fn send_raw(
8239        &self,
8240        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8241    ) -> Result<(), fidl::Error> {
8242        self.control_handle.inner.send::<fidl::encoding::ResultType<
8243            BaseSocketGetReuseAddressResponse,
8244            fidl_fuchsia_posix::Errno,
8245        >>(
8246            result.map(|value| (value,)),
8247            self.tx_id,
8248            0x67b7206b8d1bc0a5,
8249            fidl::encoding::DynamicFlags::empty(),
8250        )
8251    }
8252}
8253
8254#[must_use = "FIDL methods require a response to be sent"]
8255#[derive(Debug)]
8256pub struct BaseDatagramSocketGetErrorResponder {
8257    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8258    tx_id: u32,
8259}
8260
8261/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8262/// if the responder is dropped without sending a response, so that the client
8263/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8264impl std::ops::Drop for BaseDatagramSocketGetErrorResponder {
8265    fn drop(&mut self) {
8266        self.control_handle.shutdown();
8267        // Safety: drops once, never accessed again
8268        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8269    }
8270}
8271
8272impl fidl::endpoints::Responder for BaseDatagramSocketGetErrorResponder {
8273    type ControlHandle = BaseDatagramSocketControlHandle;
8274
8275    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8276        &self.control_handle
8277    }
8278
8279    fn drop_without_shutdown(mut self) {
8280        // Safety: drops once, never accessed again due to mem::forget
8281        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8282        // Prevent Drop from running (which would shut down the channel)
8283        std::mem::forget(self);
8284    }
8285}
8286
8287impl BaseDatagramSocketGetErrorResponder {
8288    /// Sends a response to the FIDL transaction.
8289    ///
8290    /// Sets the channel to shutdown if an error occurs.
8291    pub fn send(
8292        self,
8293        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8294    ) -> Result<(), fidl::Error> {
8295        let _result = self.send_raw(result);
8296        if _result.is_err() {
8297            self.control_handle.shutdown();
8298        }
8299        self.drop_without_shutdown();
8300        _result
8301    }
8302
8303    /// Similar to "send" but does not shutdown the channel if an error occurs.
8304    pub fn send_no_shutdown_on_err(
8305        self,
8306        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8307    ) -> Result<(), fidl::Error> {
8308        let _result = self.send_raw(result);
8309        self.drop_without_shutdown();
8310        _result
8311    }
8312
8313    fn send_raw(
8314        &self,
8315        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8316    ) -> Result<(), fidl::Error> {
8317        self.control_handle.inner.send::<fidl::encoding::ResultType<
8318            fidl::encoding::EmptyStruct,
8319            fidl_fuchsia_posix::Errno,
8320        >>(
8321            result,
8322            self.tx_id,
8323            0x5aad39b33e5f6ebb,
8324            fidl::encoding::DynamicFlags::empty(),
8325        )
8326    }
8327}
8328
8329#[must_use = "FIDL methods require a response to be sent"]
8330#[derive(Debug)]
8331pub struct BaseDatagramSocketSetBroadcastResponder {
8332    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8333    tx_id: u32,
8334}
8335
8336/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8337/// if the responder is dropped without sending a response, so that the client
8338/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8339impl std::ops::Drop for BaseDatagramSocketSetBroadcastResponder {
8340    fn drop(&mut self) {
8341        self.control_handle.shutdown();
8342        // Safety: drops once, never accessed again
8343        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8344    }
8345}
8346
8347impl fidl::endpoints::Responder for BaseDatagramSocketSetBroadcastResponder {
8348    type ControlHandle = BaseDatagramSocketControlHandle;
8349
8350    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8351        &self.control_handle
8352    }
8353
8354    fn drop_without_shutdown(mut self) {
8355        // Safety: drops once, never accessed again due to mem::forget
8356        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8357        // Prevent Drop from running (which would shut down the channel)
8358        std::mem::forget(self);
8359    }
8360}
8361
8362impl BaseDatagramSocketSetBroadcastResponder {
8363    /// Sends a response to the FIDL transaction.
8364    ///
8365    /// Sets the channel to shutdown if an error occurs.
8366    pub fn send(
8367        self,
8368        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8369    ) -> Result<(), fidl::Error> {
8370        let _result = self.send_raw(result);
8371        if _result.is_err() {
8372            self.control_handle.shutdown();
8373        }
8374        self.drop_without_shutdown();
8375        _result
8376    }
8377
8378    /// Similar to "send" but does not shutdown the channel if an error occurs.
8379    pub fn send_no_shutdown_on_err(
8380        self,
8381        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8382    ) -> Result<(), fidl::Error> {
8383        let _result = self.send_raw(result);
8384        self.drop_without_shutdown();
8385        _result
8386    }
8387
8388    fn send_raw(
8389        &self,
8390        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8391    ) -> Result<(), fidl::Error> {
8392        self.control_handle.inner.send::<fidl::encoding::ResultType<
8393            fidl::encoding::EmptyStruct,
8394            fidl_fuchsia_posix::Errno,
8395        >>(
8396            result,
8397            self.tx_id,
8398            0x6023e081ce3cd947,
8399            fidl::encoding::DynamicFlags::empty(),
8400        )
8401    }
8402}
8403
8404#[must_use = "FIDL methods require a response to be sent"]
8405#[derive(Debug)]
8406pub struct BaseDatagramSocketGetBroadcastResponder {
8407    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8408    tx_id: u32,
8409}
8410
8411/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8412/// if the responder is dropped without sending a response, so that the client
8413/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8414impl std::ops::Drop for BaseDatagramSocketGetBroadcastResponder {
8415    fn drop(&mut self) {
8416        self.control_handle.shutdown();
8417        // Safety: drops once, never accessed again
8418        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8419    }
8420}
8421
8422impl fidl::endpoints::Responder for BaseDatagramSocketGetBroadcastResponder {
8423    type ControlHandle = BaseDatagramSocketControlHandle;
8424
8425    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8426        &self.control_handle
8427    }
8428
8429    fn drop_without_shutdown(mut self) {
8430        // Safety: drops once, never accessed again due to mem::forget
8431        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8432        // Prevent Drop from running (which would shut down the channel)
8433        std::mem::forget(self);
8434    }
8435}
8436
8437impl BaseDatagramSocketGetBroadcastResponder {
8438    /// Sends a response to the FIDL transaction.
8439    ///
8440    /// Sets the channel to shutdown if an error occurs.
8441    pub fn send(
8442        self,
8443        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8444    ) -> Result<(), fidl::Error> {
8445        let _result = self.send_raw(result);
8446        if _result.is_err() {
8447            self.control_handle.shutdown();
8448        }
8449        self.drop_without_shutdown();
8450        _result
8451    }
8452
8453    /// Similar to "send" but does not shutdown the channel if an error occurs.
8454    pub fn send_no_shutdown_on_err(
8455        self,
8456        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8457    ) -> Result<(), fidl::Error> {
8458        let _result = self.send_raw(result);
8459        self.drop_without_shutdown();
8460        _result
8461    }
8462
8463    fn send_raw(
8464        &self,
8465        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8466    ) -> Result<(), fidl::Error> {
8467        self.control_handle.inner.send::<fidl::encoding::ResultType<
8468            BaseSocketGetBroadcastResponse,
8469            fidl_fuchsia_posix::Errno,
8470        >>(
8471            result.map(|value| (value,)),
8472            self.tx_id,
8473            0x68796fc556f9780d,
8474            fidl::encoding::DynamicFlags::empty(),
8475        )
8476    }
8477}
8478
8479#[must_use = "FIDL methods require a response to be sent"]
8480#[derive(Debug)]
8481pub struct BaseDatagramSocketSetSendBufferResponder {
8482    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8483    tx_id: u32,
8484}
8485
8486/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8487/// if the responder is dropped without sending a response, so that the client
8488/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8489impl std::ops::Drop for BaseDatagramSocketSetSendBufferResponder {
8490    fn drop(&mut self) {
8491        self.control_handle.shutdown();
8492        // Safety: drops once, never accessed again
8493        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8494    }
8495}
8496
8497impl fidl::endpoints::Responder for BaseDatagramSocketSetSendBufferResponder {
8498    type ControlHandle = BaseDatagramSocketControlHandle;
8499
8500    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8501        &self.control_handle
8502    }
8503
8504    fn drop_without_shutdown(mut self) {
8505        // Safety: drops once, never accessed again due to mem::forget
8506        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8507        // Prevent Drop from running (which would shut down the channel)
8508        std::mem::forget(self);
8509    }
8510}
8511
8512impl BaseDatagramSocketSetSendBufferResponder {
8513    /// Sends a response to the FIDL transaction.
8514    ///
8515    /// Sets the channel to shutdown if an error occurs.
8516    pub fn send(
8517        self,
8518        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8519    ) -> Result<(), fidl::Error> {
8520        let _result = self.send_raw(result);
8521        if _result.is_err() {
8522            self.control_handle.shutdown();
8523        }
8524        self.drop_without_shutdown();
8525        _result
8526    }
8527
8528    /// Similar to "send" but does not shutdown the channel if an error occurs.
8529    pub fn send_no_shutdown_on_err(
8530        self,
8531        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8532    ) -> Result<(), fidl::Error> {
8533        let _result = self.send_raw(result);
8534        self.drop_without_shutdown();
8535        _result
8536    }
8537
8538    fn send_raw(
8539        &self,
8540        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8541    ) -> Result<(), fidl::Error> {
8542        self.control_handle.inner.send::<fidl::encoding::ResultType<
8543            fidl::encoding::EmptyStruct,
8544            fidl_fuchsia_posix::Errno,
8545        >>(
8546            result,
8547            self.tx_id,
8548            0x756eac32d73a7a70,
8549            fidl::encoding::DynamicFlags::empty(),
8550        )
8551    }
8552}
8553
8554#[must_use = "FIDL methods require a response to be sent"]
8555#[derive(Debug)]
8556pub struct BaseDatagramSocketGetSendBufferResponder {
8557    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8558    tx_id: u32,
8559}
8560
8561/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8562/// if the responder is dropped without sending a response, so that the client
8563/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8564impl std::ops::Drop for BaseDatagramSocketGetSendBufferResponder {
8565    fn drop(&mut self) {
8566        self.control_handle.shutdown();
8567        // Safety: drops once, never accessed again
8568        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8569    }
8570}
8571
8572impl fidl::endpoints::Responder for BaseDatagramSocketGetSendBufferResponder {
8573    type ControlHandle = BaseDatagramSocketControlHandle;
8574
8575    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8576        &self.control_handle
8577    }
8578
8579    fn drop_without_shutdown(mut self) {
8580        // Safety: drops once, never accessed again due to mem::forget
8581        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8582        // Prevent Drop from running (which would shut down the channel)
8583        std::mem::forget(self);
8584    }
8585}
8586
8587impl BaseDatagramSocketGetSendBufferResponder {
8588    /// Sends a response to the FIDL transaction.
8589    ///
8590    /// Sets the channel to shutdown if an error occurs.
8591    pub fn send(
8592        self,
8593        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8594    ) -> Result<(), fidl::Error> {
8595        let _result = self.send_raw(result);
8596        if _result.is_err() {
8597            self.control_handle.shutdown();
8598        }
8599        self.drop_without_shutdown();
8600        _result
8601    }
8602
8603    /// Similar to "send" but does not shutdown the channel if an error occurs.
8604    pub fn send_no_shutdown_on_err(
8605        self,
8606        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8607    ) -> Result<(), fidl::Error> {
8608        let _result = self.send_raw(result);
8609        self.drop_without_shutdown();
8610        _result
8611    }
8612
8613    fn send_raw(
8614        &self,
8615        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8616    ) -> Result<(), fidl::Error> {
8617        self.control_handle.inner.send::<fidl::encoding::ResultType<
8618            BaseSocketGetSendBufferResponse,
8619            fidl_fuchsia_posix::Errno,
8620        >>(
8621            result.map(|value_bytes| (value_bytes,)),
8622            self.tx_id,
8623            0x78a52fd9c7b2410b,
8624            fidl::encoding::DynamicFlags::empty(),
8625        )
8626    }
8627}
8628
8629#[must_use = "FIDL methods require a response to be sent"]
8630#[derive(Debug)]
8631pub struct BaseDatagramSocketSetReceiveBufferResponder {
8632    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8633    tx_id: u32,
8634}
8635
8636/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8637/// if the responder is dropped without sending a response, so that the client
8638/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8639impl std::ops::Drop for BaseDatagramSocketSetReceiveBufferResponder {
8640    fn drop(&mut self) {
8641        self.control_handle.shutdown();
8642        // Safety: drops once, never accessed again
8643        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8644    }
8645}
8646
8647impl fidl::endpoints::Responder for BaseDatagramSocketSetReceiveBufferResponder {
8648    type ControlHandle = BaseDatagramSocketControlHandle;
8649
8650    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8651        &self.control_handle
8652    }
8653
8654    fn drop_without_shutdown(mut self) {
8655        // Safety: drops once, never accessed again due to mem::forget
8656        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8657        // Prevent Drop from running (which would shut down the channel)
8658        std::mem::forget(self);
8659    }
8660}
8661
8662impl BaseDatagramSocketSetReceiveBufferResponder {
8663    /// Sends a response to the FIDL transaction.
8664    ///
8665    /// Sets the channel to shutdown if an error occurs.
8666    pub fn send(
8667        self,
8668        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8669    ) -> Result<(), fidl::Error> {
8670        let _result = self.send_raw(result);
8671        if _result.is_err() {
8672            self.control_handle.shutdown();
8673        }
8674        self.drop_without_shutdown();
8675        _result
8676    }
8677
8678    /// Similar to "send" but does not shutdown the channel if an error occurs.
8679    pub fn send_no_shutdown_on_err(
8680        self,
8681        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8682    ) -> Result<(), fidl::Error> {
8683        let _result = self.send_raw(result);
8684        self.drop_without_shutdown();
8685        _result
8686    }
8687
8688    fn send_raw(
8689        &self,
8690        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8691    ) -> Result<(), fidl::Error> {
8692        self.control_handle.inner.send::<fidl::encoding::ResultType<
8693            fidl::encoding::EmptyStruct,
8694            fidl_fuchsia_posix::Errno,
8695        >>(
8696            result,
8697            self.tx_id,
8698            0x6b0cf2f1919c7001,
8699            fidl::encoding::DynamicFlags::empty(),
8700        )
8701    }
8702}
8703
8704#[must_use = "FIDL methods require a response to be sent"]
8705#[derive(Debug)]
8706pub struct BaseDatagramSocketGetReceiveBufferResponder {
8707    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8708    tx_id: u32,
8709}
8710
8711/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8712/// if the responder is dropped without sending a response, so that the client
8713/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8714impl std::ops::Drop for BaseDatagramSocketGetReceiveBufferResponder {
8715    fn drop(&mut self) {
8716        self.control_handle.shutdown();
8717        // Safety: drops once, never accessed again
8718        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8719    }
8720}
8721
8722impl fidl::endpoints::Responder for BaseDatagramSocketGetReceiveBufferResponder {
8723    type ControlHandle = BaseDatagramSocketControlHandle;
8724
8725    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8726        &self.control_handle
8727    }
8728
8729    fn drop_without_shutdown(mut self) {
8730        // Safety: drops once, never accessed again due to mem::forget
8731        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8732        // Prevent Drop from running (which would shut down the channel)
8733        std::mem::forget(self);
8734    }
8735}
8736
8737impl BaseDatagramSocketGetReceiveBufferResponder {
8738    /// Sends a response to the FIDL transaction.
8739    ///
8740    /// Sets the channel to shutdown if an error occurs.
8741    pub fn send(
8742        self,
8743        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8744    ) -> Result<(), fidl::Error> {
8745        let _result = self.send_raw(result);
8746        if _result.is_err() {
8747            self.control_handle.shutdown();
8748        }
8749        self.drop_without_shutdown();
8750        _result
8751    }
8752
8753    /// Similar to "send" but does not shutdown the channel if an error occurs.
8754    pub fn send_no_shutdown_on_err(
8755        self,
8756        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8757    ) -> Result<(), fidl::Error> {
8758        let _result = self.send_raw(result);
8759        self.drop_without_shutdown();
8760        _result
8761    }
8762
8763    fn send_raw(
8764        &self,
8765        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8766    ) -> Result<(), fidl::Error> {
8767        self.control_handle.inner.send::<fidl::encoding::ResultType<
8768            BaseSocketGetReceiveBufferResponse,
8769            fidl_fuchsia_posix::Errno,
8770        >>(
8771            result.map(|value_bytes| (value_bytes,)),
8772            self.tx_id,
8773            0x14c1a4b64f709e5c,
8774            fidl::encoding::DynamicFlags::empty(),
8775        )
8776    }
8777}
8778
8779#[must_use = "FIDL methods require a response to be sent"]
8780#[derive(Debug)]
8781pub struct BaseDatagramSocketSetKeepAliveResponder {
8782    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8783    tx_id: u32,
8784}
8785
8786/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8787/// if the responder is dropped without sending a response, so that the client
8788/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8789impl std::ops::Drop for BaseDatagramSocketSetKeepAliveResponder {
8790    fn drop(&mut self) {
8791        self.control_handle.shutdown();
8792        // Safety: drops once, never accessed again
8793        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8794    }
8795}
8796
8797impl fidl::endpoints::Responder for BaseDatagramSocketSetKeepAliveResponder {
8798    type ControlHandle = BaseDatagramSocketControlHandle;
8799
8800    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8801        &self.control_handle
8802    }
8803
8804    fn drop_without_shutdown(mut self) {
8805        // Safety: drops once, never accessed again due to mem::forget
8806        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8807        // Prevent Drop from running (which would shut down the channel)
8808        std::mem::forget(self);
8809    }
8810}
8811
8812impl BaseDatagramSocketSetKeepAliveResponder {
8813    /// Sends a response to the FIDL transaction.
8814    ///
8815    /// Sets the channel to shutdown if an error occurs.
8816    pub fn send(
8817        self,
8818        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8819    ) -> Result<(), fidl::Error> {
8820        let _result = self.send_raw(result);
8821        if _result.is_err() {
8822            self.control_handle.shutdown();
8823        }
8824        self.drop_without_shutdown();
8825        _result
8826    }
8827
8828    /// Similar to "send" but does not shutdown the channel if an error occurs.
8829    pub fn send_no_shutdown_on_err(
8830        self,
8831        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8832    ) -> Result<(), fidl::Error> {
8833        let _result = self.send_raw(result);
8834        self.drop_without_shutdown();
8835        _result
8836    }
8837
8838    fn send_raw(
8839        &self,
8840        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8841    ) -> Result<(), fidl::Error> {
8842        self.control_handle.inner.send::<fidl::encoding::ResultType<
8843            fidl::encoding::EmptyStruct,
8844            fidl_fuchsia_posix::Errno,
8845        >>(
8846            result,
8847            self.tx_id,
8848            0x572df8f0b920d2c7,
8849            fidl::encoding::DynamicFlags::empty(),
8850        )
8851    }
8852}
8853
8854#[must_use = "FIDL methods require a response to be sent"]
8855#[derive(Debug)]
8856pub struct BaseDatagramSocketGetKeepAliveResponder {
8857    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8858    tx_id: u32,
8859}
8860
8861/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8862/// if the responder is dropped without sending a response, so that the client
8863/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8864impl std::ops::Drop for BaseDatagramSocketGetKeepAliveResponder {
8865    fn drop(&mut self) {
8866        self.control_handle.shutdown();
8867        // Safety: drops once, never accessed again
8868        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8869    }
8870}
8871
8872impl fidl::endpoints::Responder for BaseDatagramSocketGetKeepAliveResponder {
8873    type ControlHandle = BaseDatagramSocketControlHandle;
8874
8875    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8876        &self.control_handle
8877    }
8878
8879    fn drop_without_shutdown(mut self) {
8880        // Safety: drops once, never accessed again due to mem::forget
8881        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8882        // Prevent Drop from running (which would shut down the channel)
8883        std::mem::forget(self);
8884    }
8885}
8886
8887impl BaseDatagramSocketGetKeepAliveResponder {
8888    /// Sends a response to the FIDL transaction.
8889    ///
8890    /// Sets the channel to shutdown if an error occurs.
8891    pub fn send(
8892        self,
8893        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8894    ) -> Result<(), fidl::Error> {
8895        let _result = self.send_raw(result);
8896        if _result.is_err() {
8897            self.control_handle.shutdown();
8898        }
8899        self.drop_without_shutdown();
8900        _result
8901    }
8902
8903    /// Similar to "send" but does not shutdown the channel if an error occurs.
8904    pub fn send_no_shutdown_on_err(
8905        self,
8906        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8907    ) -> Result<(), fidl::Error> {
8908        let _result = self.send_raw(result);
8909        self.drop_without_shutdown();
8910        _result
8911    }
8912
8913    fn send_raw(
8914        &self,
8915        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8916    ) -> Result<(), fidl::Error> {
8917        self.control_handle.inner.send::<fidl::encoding::ResultType<
8918            BaseSocketGetKeepAliveResponse,
8919            fidl_fuchsia_posix::Errno,
8920        >>(
8921            result.map(|value| (value,)),
8922            self.tx_id,
8923            0x2dd29d3215f2c9d2,
8924            fidl::encoding::DynamicFlags::empty(),
8925        )
8926    }
8927}
8928
8929#[must_use = "FIDL methods require a response to be sent"]
8930#[derive(Debug)]
8931pub struct BaseDatagramSocketSetOutOfBandInlineResponder {
8932    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8933    tx_id: u32,
8934}
8935
8936/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8937/// if the responder is dropped without sending a response, so that the client
8938/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8939impl std::ops::Drop for BaseDatagramSocketSetOutOfBandInlineResponder {
8940    fn drop(&mut self) {
8941        self.control_handle.shutdown();
8942        // Safety: drops once, never accessed again
8943        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8944    }
8945}
8946
8947impl fidl::endpoints::Responder for BaseDatagramSocketSetOutOfBandInlineResponder {
8948    type ControlHandle = BaseDatagramSocketControlHandle;
8949
8950    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8951        &self.control_handle
8952    }
8953
8954    fn drop_without_shutdown(mut self) {
8955        // Safety: drops once, never accessed again due to mem::forget
8956        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8957        // Prevent Drop from running (which would shut down the channel)
8958        std::mem::forget(self);
8959    }
8960}
8961
8962impl BaseDatagramSocketSetOutOfBandInlineResponder {
8963    /// Sends a response to the FIDL transaction.
8964    ///
8965    /// Sets the channel to shutdown if an error occurs.
8966    pub fn send(
8967        self,
8968        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8969    ) -> Result<(), fidl::Error> {
8970        let _result = self.send_raw(result);
8971        if _result.is_err() {
8972            self.control_handle.shutdown();
8973        }
8974        self.drop_without_shutdown();
8975        _result
8976    }
8977
8978    /// Similar to "send" but does not shutdown the channel if an error occurs.
8979    pub fn send_no_shutdown_on_err(
8980        self,
8981        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8982    ) -> Result<(), fidl::Error> {
8983        let _result = self.send_raw(result);
8984        self.drop_without_shutdown();
8985        _result
8986    }
8987
8988    fn send_raw(
8989        &self,
8990        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8991    ) -> Result<(), fidl::Error> {
8992        self.control_handle.inner.send::<fidl::encoding::ResultType<
8993            fidl::encoding::EmptyStruct,
8994            fidl_fuchsia_posix::Errno,
8995        >>(
8996            result,
8997            self.tx_id,
8998            0x3ecb49968bee439,
8999            fidl::encoding::DynamicFlags::empty(),
9000        )
9001    }
9002}
9003
9004#[must_use = "FIDL methods require a response to be sent"]
9005#[derive(Debug)]
9006pub struct BaseDatagramSocketGetOutOfBandInlineResponder {
9007    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9008    tx_id: u32,
9009}
9010
9011/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9012/// if the responder is dropped without sending a response, so that the client
9013/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9014impl std::ops::Drop for BaseDatagramSocketGetOutOfBandInlineResponder {
9015    fn drop(&mut self) {
9016        self.control_handle.shutdown();
9017        // Safety: drops once, never accessed again
9018        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9019    }
9020}
9021
9022impl fidl::endpoints::Responder for BaseDatagramSocketGetOutOfBandInlineResponder {
9023    type ControlHandle = BaseDatagramSocketControlHandle;
9024
9025    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9026        &self.control_handle
9027    }
9028
9029    fn drop_without_shutdown(mut self) {
9030        // Safety: drops once, never accessed again due to mem::forget
9031        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9032        // Prevent Drop from running (which would shut down the channel)
9033        std::mem::forget(self);
9034    }
9035}
9036
9037impl BaseDatagramSocketGetOutOfBandInlineResponder {
9038    /// Sends a response to the FIDL transaction.
9039    ///
9040    /// Sets the channel to shutdown if an error occurs.
9041    pub fn send(
9042        self,
9043        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9044    ) -> Result<(), fidl::Error> {
9045        let _result = self.send_raw(result);
9046        if _result.is_err() {
9047            self.control_handle.shutdown();
9048        }
9049        self.drop_without_shutdown();
9050        _result
9051    }
9052
9053    /// Similar to "send" but does not shutdown the channel if an error occurs.
9054    pub fn send_no_shutdown_on_err(
9055        self,
9056        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9057    ) -> Result<(), fidl::Error> {
9058        let _result = self.send_raw(result);
9059        self.drop_without_shutdown();
9060        _result
9061    }
9062
9063    fn send_raw(
9064        &self,
9065        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9066    ) -> Result<(), fidl::Error> {
9067        self.control_handle.inner.send::<fidl::encoding::ResultType<
9068            BaseSocketGetOutOfBandInlineResponse,
9069            fidl_fuchsia_posix::Errno,
9070        >>(
9071            result.map(|value| (value,)),
9072            self.tx_id,
9073            0x348c1ab3aeca1745,
9074            fidl::encoding::DynamicFlags::empty(),
9075        )
9076    }
9077}
9078
9079#[must_use = "FIDL methods require a response to be sent"]
9080#[derive(Debug)]
9081pub struct BaseDatagramSocketSetNoCheckResponder {
9082    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9083    tx_id: u32,
9084}
9085
9086/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9087/// if the responder is dropped without sending a response, so that the client
9088/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9089impl std::ops::Drop for BaseDatagramSocketSetNoCheckResponder {
9090    fn drop(&mut self) {
9091        self.control_handle.shutdown();
9092        // Safety: drops once, never accessed again
9093        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9094    }
9095}
9096
9097impl fidl::endpoints::Responder for BaseDatagramSocketSetNoCheckResponder {
9098    type ControlHandle = BaseDatagramSocketControlHandle;
9099
9100    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9101        &self.control_handle
9102    }
9103
9104    fn drop_without_shutdown(mut self) {
9105        // Safety: drops once, never accessed again due to mem::forget
9106        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9107        // Prevent Drop from running (which would shut down the channel)
9108        std::mem::forget(self);
9109    }
9110}
9111
9112impl BaseDatagramSocketSetNoCheckResponder {
9113    /// Sends a response to the FIDL transaction.
9114    ///
9115    /// Sets the channel to shutdown if an error occurs.
9116    pub fn send(
9117        self,
9118        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9119    ) -> Result<(), fidl::Error> {
9120        let _result = self.send_raw(result);
9121        if _result.is_err() {
9122            self.control_handle.shutdown();
9123        }
9124        self.drop_without_shutdown();
9125        _result
9126    }
9127
9128    /// Similar to "send" but does not shutdown the channel if an error occurs.
9129    pub fn send_no_shutdown_on_err(
9130        self,
9131        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9132    ) -> Result<(), fidl::Error> {
9133        let _result = self.send_raw(result);
9134        self.drop_without_shutdown();
9135        _result
9136    }
9137
9138    fn send_raw(
9139        &self,
9140        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9141    ) -> Result<(), fidl::Error> {
9142        self.control_handle.inner.send::<fidl::encoding::ResultType<
9143            fidl::encoding::EmptyStruct,
9144            fidl_fuchsia_posix::Errno,
9145        >>(
9146            result,
9147            self.tx_id,
9148            0x6bbf00c53a4c78c2,
9149            fidl::encoding::DynamicFlags::empty(),
9150        )
9151    }
9152}
9153
9154#[must_use = "FIDL methods require a response to be sent"]
9155#[derive(Debug)]
9156pub struct BaseDatagramSocketGetNoCheckResponder {
9157    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9158    tx_id: u32,
9159}
9160
9161/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9162/// if the responder is dropped without sending a response, so that the client
9163/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9164impl std::ops::Drop for BaseDatagramSocketGetNoCheckResponder {
9165    fn drop(&mut self) {
9166        self.control_handle.shutdown();
9167        // Safety: drops once, never accessed again
9168        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9169    }
9170}
9171
9172impl fidl::endpoints::Responder for BaseDatagramSocketGetNoCheckResponder {
9173    type ControlHandle = BaseDatagramSocketControlHandle;
9174
9175    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9176        &self.control_handle
9177    }
9178
9179    fn drop_without_shutdown(mut self) {
9180        // Safety: drops once, never accessed again due to mem::forget
9181        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9182        // Prevent Drop from running (which would shut down the channel)
9183        std::mem::forget(self);
9184    }
9185}
9186
9187impl BaseDatagramSocketGetNoCheckResponder {
9188    /// Sends a response to the FIDL transaction.
9189    ///
9190    /// Sets the channel to shutdown if an error occurs.
9191    pub fn send(
9192        self,
9193        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9194    ) -> Result<(), fidl::Error> {
9195        let _result = self.send_raw(result);
9196        if _result.is_err() {
9197            self.control_handle.shutdown();
9198        }
9199        self.drop_without_shutdown();
9200        _result
9201    }
9202
9203    /// Similar to "send" but does not shutdown the channel if an error occurs.
9204    pub fn send_no_shutdown_on_err(
9205        self,
9206        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9207    ) -> Result<(), fidl::Error> {
9208        let _result = self.send_raw(result);
9209        self.drop_without_shutdown();
9210        _result
9211    }
9212
9213    fn send_raw(
9214        &self,
9215        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9216    ) -> Result<(), fidl::Error> {
9217        self.control_handle.inner.send::<fidl::encoding::ResultType<
9218            BaseSocketGetNoCheckResponse,
9219            fidl_fuchsia_posix::Errno,
9220        >>(
9221            result.map(|value| (value,)),
9222            self.tx_id,
9223            0x2cd4249286417694,
9224            fidl::encoding::DynamicFlags::empty(),
9225        )
9226    }
9227}
9228
9229#[must_use = "FIDL methods require a response to be sent"]
9230#[derive(Debug)]
9231pub struct BaseDatagramSocketSetLingerResponder {
9232    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9233    tx_id: u32,
9234}
9235
9236/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9237/// if the responder is dropped without sending a response, so that the client
9238/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9239impl std::ops::Drop for BaseDatagramSocketSetLingerResponder {
9240    fn drop(&mut self) {
9241        self.control_handle.shutdown();
9242        // Safety: drops once, never accessed again
9243        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9244    }
9245}
9246
9247impl fidl::endpoints::Responder for BaseDatagramSocketSetLingerResponder {
9248    type ControlHandle = BaseDatagramSocketControlHandle;
9249
9250    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9251        &self.control_handle
9252    }
9253
9254    fn drop_without_shutdown(mut self) {
9255        // Safety: drops once, never accessed again due to mem::forget
9256        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9257        // Prevent Drop from running (which would shut down the channel)
9258        std::mem::forget(self);
9259    }
9260}
9261
9262impl BaseDatagramSocketSetLingerResponder {
9263    /// Sends a response to the FIDL transaction.
9264    ///
9265    /// Sets the channel to shutdown if an error occurs.
9266    pub fn send(
9267        self,
9268        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9269    ) -> Result<(), fidl::Error> {
9270        let _result = self.send_raw(result);
9271        if _result.is_err() {
9272            self.control_handle.shutdown();
9273        }
9274        self.drop_without_shutdown();
9275        _result
9276    }
9277
9278    /// Similar to "send" but does not shutdown the channel if an error occurs.
9279    pub fn send_no_shutdown_on_err(
9280        self,
9281        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9282    ) -> Result<(), fidl::Error> {
9283        let _result = self.send_raw(result);
9284        self.drop_without_shutdown();
9285        _result
9286    }
9287
9288    fn send_raw(
9289        &self,
9290        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9291    ) -> Result<(), fidl::Error> {
9292        self.control_handle.inner.send::<fidl::encoding::ResultType<
9293            fidl::encoding::EmptyStruct,
9294            fidl_fuchsia_posix::Errno,
9295        >>(
9296            result,
9297            self.tx_id,
9298            0x45386351246e998e,
9299            fidl::encoding::DynamicFlags::empty(),
9300        )
9301    }
9302}
9303
9304#[must_use = "FIDL methods require a response to be sent"]
9305#[derive(Debug)]
9306pub struct BaseDatagramSocketGetLingerResponder {
9307    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9308    tx_id: u32,
9309}
9310
9311/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9312/// if the responder is dropped without sending a response, so that the client
9313/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9314impl std::ops::Drop for BaseDatagramSocketGetLingerResponder {
9315    fn drop(&mut self) {
9316        self.control_handle.shutdown();
9317        // Safety: drops once, never accessed again
9318        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9319    }
9320}
9321
9322impl fidl::endpoints::Responder for BaseDatagramSocketGetLingerResponder {
9323    type ControlHandle = BaseDatagramSocketControlHandle;
9324
9325    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9326        &self.control_handle
9327    }
9328
9329    fn drop_without_shutdown(mut self) {
9330        // Safety: drops once, never accessed again due to mem::forget
9331        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9332        // Prevent Drop from running (which would shut down the channel)
9333        std::mem::forget(self);
9334    }
9335}
9336
9337impl BaseDatagramSocketGetLingerResponder {
9338    /// Sends a response to the FIDL transaction.
9339    ///
9340    /// Sets the channel to shutdown if an error occurs.
9341    pub fn send(
9342        self,
9343        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
9344    ) -> Result<(), fidl::Error> {
9345        let _result = self.send_raw(result);
9346        if _result.is_err() {
9347            self.control_handle.shutdown();
9348        }
9349        self.drop_without_shutdown();
9350        _result
9351    }
9352
9353    /// Similar to "send" but does not shutdown the channel if an error occurs.
9354    pub fn send_no_shutdown_on_err(
9355        self,
9356        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
9357    ) -> Result<(), fidl::Error> {
9358        let _result = self.send_raw(result);
9359        self.drop_without_shutdown();
9360        _result
9361    }
9362
9363    fn send_raw(
9364        &self,
9365        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
9366    ) -> Result<(), fidl::Error> {
9367        self.control_handle.inner.send::<fidl::encoding::ResultType<
9368            BaseSocketGetLingerResponse,
9369            fidl_fuchsia_posix::Errno,
9370        >>(
9371            result,
9372            self.tx_id,
9373            0x48eb20fc5ccb0e45,
9374            fidl::encoding::DynamicFlags::empty(),
9375        )
9376    }
9377}
9378
9379#[must_use = "FIDL methods require a response to be sent"]
9380#[derive(Debug)]
9381pub struct BaseDatagramSocketSetReusePortResponder {
9382    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9383    tx_id: u32,
9384}
9385
9386/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9387/// if the responder is dropped without sending a response, so that the client
9388/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9389impl std::ops::Drop for BaseDatagramSocketSetReusePortResponder {
9390    fn drop(&mut self) {
9391        self.control_handle.shutdown();
9392        // Safety: drops once, never accessed again
9393        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9394    }
9395}
9396
9397impl fidl::endpoints::Responder for BaseDatagramSocketSetReusePortResponder {
9398    type ControlHandle = BaseDatagramSocketControlHandle;
9399
9400    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9401        &self.control_handle
9402    }
9403
9404    fn drop_without_shutdown(mut self) {
9405        // Safety: drops once, never accessed again due to mem::forget
9406        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9407        // Prevent Drop from running (which would shut down the channel)
9408        std::mem::forget(self);
9409    }
9410}
9411
9412impl BaseDatagramSocketSetReusePortResponder {
9413    /// Sends a response to the FIDL transaction.
9414    ///
9415    /// Sets the channel to shutdown if an error occurs.
9416    pub fn send(
9417        self,
9418        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9419    ) -> Result<(), fidl::Error> {
9420        let _result = self.send_raw(result);
9421        if _result.is_err() {
9422            self.control_handle.shutdown();
9423        }
9424        self.drop_without_shutdown();
9425        _result
9426    }
9427
9428    /// Similar to "send" but does not shutdown the channel if an error occurs.
9429    pub fn send_no_shutdown_on_err(
9430        self,
9431        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9432    ) -> Result<(), fidl::Error> {
9433        let _result = self.send_raw(result);
9434        self.drop_without_shutdown();
9435        _result
9436    }
9437
9438    fn send_raw(
9439        &self,
9440        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9441    ) -> Result<(), fidl::Error> {
9442        self.control_handle.inner.send::<fidl::encoding::ResultType<
9443            fidl::encoding::EmptyStruct,
9444            fidl_fuchsia_posix::Errno,
9445        >>(
9446            result,
9447            self.tx_id,
9448            0x24dd3e5cb36d9ccb,
9449            fidl::encoding::DynamicFlags::empty(),
9450        )
9451    }
9452}
9453
9454#[must_use = "FIDL methods require a response to be sent"]
9455#[derive(Debug)]
9456pub struct BaseDatagramSocketGetReusePortResponder {
9457    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9458    tx_id: u32,
9459}
9460
9461/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9462/// if the responder is dropped without sending a response, so that the client
9463/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9464impl std::ops::Drop for BaseDatagramSocketGetReusePortResponder {
9465    fn drop(&mut self) {
9466        self.control_handle.shutdown();
9467        // Safety: drops once, never accessed again
9468        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9469    }
9470}
9471
9472impl fidl::endpoints::Responder for BaseDatagramSocketGetReusePortResponder {
9473    type ControlHandle = BaseDatagramSocketControlHandle;
9474
9475    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9476        &self.control_handle
9477    }
9478
9479    fn drop_without_shutdown(mut self) {
9480        // Safety: drops once, never accessed again due to mem::forget
9481        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9482        // Prevent Drop from running (which would shut down the channel)
9483        std::mem::forget(self);
9484    }
9485}
9486
9487impl BaseDatagramSocketGetReusePortResponder {
9488    /// Sends a response to the FIDL transaction.
9489    ///
9490    /// Sets the channel to shutdown if an error occurs.
9491    pub fn send(
9492        self,
9493        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9494    ) -> Result<(), fidl::Error> {
9495        let _result = self.send_raw(result);
9496        if _result.is_err() {
9497            self.control_handle.shutdown();
9498        }
9499        self.drop_without_shutdown();
9500        _result
9501    }
9502
9503    /// Similar to "send" but does not shutdown the channel if an error occurs.
9504    pub fn send_no_shutdown_on_err(
9505        self,
9506        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9507    ) -> Result<(), fidl::Error> {
9508        let _result = self.send_raw(result);
9509        self.drop_without_shutdown();
9510        _result
9511    }
9512
9513    fn send_raw(
9514        &self,
9515        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9516    ) -> Result<(), fidl::Error> {
9517        self.control_handle.inner.send::<fidl::encoding::ResultType<
9518            BaseSocketGetReusePortResponse,
9519            fidl_fuchsia_posix::Errno,
9520        >>(
9521            result.map(|value| (value,)),
9522            self.tx_id,
9523            0x7a112c1ab54ff828,
9524            fidl::encoding::DynamicFlags::empty(),
9525        )
9526    }
9527}
9528
9529#[must_use = "FIDL methods require a response to be sent"]
9530#[derive(Debug)]
9531pub struct BaseDatagramSocketGetAcceptConnResponder {
9532    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9533    tx_id: u32,
9534}
9535
9536/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9537/// if the responder is dropped without sending a response, so that the client
9538/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9539impl std::ops::Drop for BaseDatagramSocketGetAcceptConnResponder {
9540    fn drop(&mut self) {
9541        self.control_handle.shutdown();
9542        // Safety: drops once, never accessed again
9543        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9544    }
9545}
9546
9547impl fidl::endpoints::Responder for BaseDatagramSocketGetAcceptConnResponder {
9548    type ControlHandle = BaseDatagramSocketControlHandle;
9549
9550    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9551        &self.control_handle
9552    }
9553
9554    fn drop_without_shutdown(mut self) {
9555        // Safety: drops once, never accessed again due to mem::forget
9556        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9557        // Prevent Drop from running (which would shut down the channel)
9558        std::mem::forget(self);
9559    }
9560}
9561
9562impl BaseDatagramSocketGetAcceptConnResponder {
9563    /// Sends a response to the FIDL transaction.
9564    ///
9565    /// Sets the channel to shutdown if an error occurs.
9566    pub fn send(
9567        self,
9568        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9569    ) -> Result<(), fidl::Error> {
9570        let _result = self.send_raw(result);
9571        if _result.is_err() {
9572            self.control_handle.shutdown();
9573        }
9574        self.drop_without_shutdown();
9575        _result
9576    }
9577
9578    /// Similar to "send" but does not shutdown the channel if an error occurs.
9579    pub fn send_no_shutdown_on_err(
9580        self,
9581        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9582    ) -> Result<(), fidl::Error> {
9583        let _result = self.send_raw(result);
9584        self.drop_without_shutdown();
9585        _result
9586    }
9587
9588    fn send_raw(
9589        &self,
9590        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9591    ) -> Result<(), fidl::Error> {
9592        self.control_handle.inner.send::<fidl::encoding::ResultType<
9593            BaseSocketGetAcceptConnResponse,
9594            fidl_fuchsia_posix::Errno,
9595        >>(
9596            result.map(|value| (value,)),
9597            self.tx_id,
9598            0x67ce6db6c2ec8966,
9599            fidl::encoding::DynamicFlags::empty(),
9600        )
9601    }
9602}
9603
9604#[must_use = "FIDL methods require a response to be sent"]
9605#[derive(Debug)]
9606pub struct BaseDatagramSocketSetBindToDeviceResponder {
9607    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9608    tx_id: u32,
9609}
9610
9611/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9612/// if the responder is dropped without sending a response, so that the client
9613/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9614impl std::ops::Drop for BaseDatagramSocketSetBindToDeviceResponder {
9615    fn drop(&mut self) {
9616        self.control_handle.shutdown();
9617        // Safety: drops once, never accessed again
9618        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9619    }
9620}
9621
9622impl fidl::endpoints::Responder for BaseDatagramSocketSetBindToDeviceResponder {
9623    type ControlHandle = BaseDatagramSocketControlHandle;
9624
9625    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9626        &self.control_handle
9627    }
9628
9629    fn drop_without_shutdown(mut self) {
9630        // Safety: drops once, never accessed again due to mem::forget
9631        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9632        // Prevent Drop from running (which would shut down the channel)
9633        std::mem::forget(self);
9634    }
9635}
9636
9637impl BaseDatagramSocketSetBindToDeviceResponder {
9638    /// Sends a response to the FIDL transaction.
9639    ///
9640    /// Sets the channel to shutdown if an error occurs.
9641    pub fn send(
9642        self,
9643        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9644    ) -> Result<(), fidl::Error> {
9645        let _result = self.send_raw(result);
9646        if _result.is_err() {
9647            self.control_handle.shutdown();
9648        }
9649        self.drop_without_shutdown();
9650        _result
9651    }
9652
9653    /// Similar to "send" but does not shutdown the channel if an error occurs.
9654    pub fn send_no_shutdown_on_err(
9655        self,
9656        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9657    ) -> Result<(), fidl::Error> {
9658        let _result = self.send_raw(result);
9659        self.drop_without_shutdown();
9660        _result
9661    }
9662
9663    fn send_raw(
9664        &self,
9665        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9666    ) -> Result<(), fidl::Error> {
9667        self.control_handle.inner.send::<fidl::encoding::ResultType<
9668            fidl::encoding::EmptyStruct,
9669            fidl_fuchsia_posix::Errno,
9670        >>(
9671            result,
9672            self.tx_id,
9673            0x2118b483f28aafc4,
9674            fidl::encoding::DynamicFlags::empty(),
9675        )
9676    }
9677}
9678
9679#[must_use = "FIDL methods require a response to be sent"]
9680#[derive(Debug)]
9681pub struct BaseDatagramSocketGetBindToDeviceResponder {
9682    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9683    tx_id: u32,
9684}
9685
9686/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9687/// if the responder is dropped without sending a response, so that the client
9688/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9689impl std::ops::Drop for BaseDatagramSocketGetBindToDeviceResponder {
9690    fn drop(&mut self) {
9691        self.control_handle.shutdown();
9692        // Safety: drops once, never accessed again
9693        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9694    }
9695}
9696
9697impl fidl::endpoints::Responder for BaseDatagramSocketGetBindToDeviceResponder {
9698    type ControlHandle = BaseDatagramSocketControlHandle;
9699
9700    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9701        &self.control_handle
9702    }
9703
9704    fn drop_without_shutdown(mut self) {
9705        // Safety: drops once, never accessed again due to mem::forget
9706        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9707        // Prevent Drop from running (which would shut down the channel)
9708        std::mem::forget(self);
9709    }
9710}
9711
9712impl BaseDatagramSocketGetBindToDeviceResponder {
9713    /// Sends a response to the FIDL transaction.
9714    ///
9715    /// Sets the channel to shutdown if an error occurs.
9716    pub fn send(
9717        self,
9718        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
9719    ) -> Result<(), fidl::Error> {
9720        let _result = self.send_raw(result);
9721        if _result.is_err() {
9722            self.control_handle.shutdown();
9723        }
9724        self.drop_without_shutdown();
9725        _result
9726    }
9727
9728    /// Similar to "send" but does not shutdown the channel if an error occurs.
9729    pub fn send_no_shutdown_on_err(
9730        self,
9731        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
9732    ) -> Result<(), fidl::Error> {
9733        let _result = self.send_raw(result);
9734        self.drop_without_shutdown();
9735        _result
9736    }
9737
9738    fn send_raw(
9739        &self,
9740        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
9741    ) -> Result<(), fidl::Error> {
9742        self.control_handle.inner.send::<fidl::encoding::ResultType<
9743            BaseSocketGetBindToDeviceResponse,
9744            fidl_fuchsia_posix::Errno,
9745        >>(
9746            result.map(|value| (value,)),
9747            self.tx_id,
9748            0x1ab1fbf0ef7906c8,
9749            fidl::encoding::DynamicFlags::empty(),
9750        )
9751    }
9752}
9753
9754#[must_use = "FIDL methods require a response to be sent"]
9755#[derive(Debug)]
9756pub struct BaseDatagramSocketSetBindToInterfaceIndexResponder {
9757    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9758    tx_id: u32,
9759}
9760
9761/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9762/// if the responder is dropped without sending a response, so that the client
9763/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9764impl std::ops::Drop for BaseDatagramSocketSetBindToInterfaceIndexResponder {
9765    fn drop(&mut self) {
9766        self.control_handle.shutdown();
9767        // Safety: drops once, never accessed again
9768        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9769    }
9770}
9771
9772impl fidl::endpoints::Responder for BaseDatagramSocketSetBindToInterfaceIndexResponder {
9773    type ControlHandle = BaseDatagramSocketControlHandle;
9774
9775    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9776        &self.control_handle
9777    }
9778
9779    fn drop_without_shutdown(mut self) {
9780        // Safety: drops once, never accessed again due to mem::forget
9781        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9782        // Prevent Drop from running (which would shut down the channel)
9783        std::mem::forget(self);
9784    }
9785}
9786
9787impl BaseDatagramSocketSetBindToInterfaceIndexResponder {
9788    /// Sends a response to the FIDL transaction.
9789    ///
9790    /// Sets the channel to shutdown if an error occurs.
9791    pub fn send(
9792        self,
9793        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9794    ) -> Result<(), fidl::Error> {
9795        let _result = self.send_raw(result);
9796        if _result.is_err() {
9797            self.control_handle.shutdown();
9798        }
9799        self.drop_without_shutdown();
9800        _result
9801    }
9802
9803    /// Similar to "send" but does not shutdown the channel if an error occurs.
9804    pub fn send_no_shutdown_on_err(
9805        self,
9806        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9807    ) -> Result<(), fidl::Error> {
9808        let _result = self.send_raw(result);
9809        self.drop_without_shutdown();
9810        _result
9811    }
9812
9813    fn send_raw(
9814        &self,
9815        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9816    ) -> Result<(), fidl::Error> {
9817        self.control_handle.inner.send::<fidl::encoding::ResultType<
9818            fidl::encoding::EmptyStruct,
9819            fidl_fuchsia_posix::Errno,
9820        >>(
9821            result,
9822            self.tx_id,
9823            0x6e387a0def00821,
9824            fidl::encoding::DynamicFlags::empty(),
9825        )
9826    }
9827}
9828
9829#[must_use = "FIDL methods require a response to be sent"]
9830#[derive(Debug)]
9831pub struct BaseDatagramSocketGetBindToInterfaceIndexResponder {
9832    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9833    tx_id: u32,
9834}
9835
9836/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9837/// if the responder is dropped without sending a response, so that the client
9838/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9839impl std::ops::Drop for BaseDatagramSocketGetBindToInterfaceIndexResponder {
9840    fn drop(&mut self) {
9841        self.control_handle.shutdown();
9842        // Safety: drops once, never accessed again
9843        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9844    }
9845}
9846
9847impl fidl::endpoints::Responder for BaseDatagramSocketGetBindToInterfaceIndexResponder {
9848    type ControlHandle = BaseDatagramSocketControlHandle;
9849
9850    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9851        &self.control_handle
9852    }
9853
9854    fn drop_without_shutdown(mut self) {
9855        // Safety: drops once, never accessed again due to mem::forget
9856        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9857        // Prevent Drop from running (which would shut down the channel)
9858        std::mem::forget(self);
9859    }
9860}
9861
9862impl BaseDatagramSocketGetBindToInterfaceIndexResponder {
9863    /// Sends a response to the FIDL transaction.
9864    ///
9865    /// Sets the channel to shutdown if an error occurs.
9866    pub fn send(
9867        self,
9868        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
9869    ) -> Result<(), fidl::Error> {
9870        let _result = self.send_raw(result);
9871        if _result.is_err() {
9872            self.control_handle.shutdown();
9873        }
9874        self.drop_without_shutdown();
9875        _result
9876    }
9877
9878    /// Similar to "send" but does not shutdown the channel if an error occurs.
9879    pub fn send_no_shutdown_on_err(
9880        self,
9881        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
9882    ) -> Result<(), fidl::Error> {
9883        let _result = self.send_raw(result);
9884        self.drop_without_shutdown();
9885        _result
9886    }
9887
9888    fn send_raw(
9889        &self,
9890        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
9891    ) -> Result<(), fidl::Error> {
9892        self.control_handle.inner.send::<fidl::encoding::ResultType<
9893            BaseSocketGetBindToInterfaceIndexResponse,
9894            fidl_fuchsia_posix::Errno,
9895        >>(
9896            result.map(|value| (value,)),
9897            self.tx_id,
9898            0x59c31dd3e3078295,
9899            fidl::encoding::DynamicFlags::empty(),
9900        )
9901    }
9902}
9903
9904#[must_use = "FIDL methods require a response to be sent"]
9905#[derive(Debug)]
9906pub struct BaseDatagramSocketSetTimestampResponder {
9907    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9908    tx_id: u32,
9909}
9910
9911/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9912/// if the responder is dropped without sending a response, so that the client
9913/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9914impl std::ops::Drop for BaseDatagramSocketSetTimestampResponder {
9915    fn drop(&mut self) {
9916        self.control_handle.shutdown();
9917        // Safety: drops once, never accessed again
9918        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9919    }
9920}
9921
9922impl fidl::endpoints::Responder for BaseDatagramSocketSetTimestampResponder {
9923    type ControlHandle = BaseDatagramSocketControlHandle;
9924
9925    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9926        &self.control_handle
9927    }
9928
9929    fn drop_without_shutdown(mut self) {
9930        // Safety: drops once, never accessed again due to mem::forget
9931        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9932        // Prevent Drop from running (which would shut down the channel)
9933        std::mem::forget(self);
9934    }
9935}
9936
9937impl BaseDatagramSocketSetTimestampResponder {
9938    /// Sends a response to the FIDL transaction.
9939    ///
9940    /// Sets the channel to shutdown if an error occurs.
9941    pub fn send(
9942        self,
9943        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9944    ) -> Result<(), fidl::Error> {
9945        let _result = self.send_raw(result);
9946        if _result.is_err() {
9947            self.control_handle.shutdown();
9948        }
9949        self.drop_without_shutdown();
9950        _result
9951    }
9952
9953    /// Similar to "send" but does not shutdown the channel if an error occurs.
9954    pub fn send_no_shutdown_on_err(
9955        self,
9956        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9957    ) -> Result<(), fidl::Error> {
9958        let _result = self.send_raw(result);
9959        self.drop_without_shutdown();
9960        _result
9961    }
9962
9963    fn send_raw(
9964        &self,
9965        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9966    ) -> Result<(), fidl::Error> {
9967        self.control_handle.inner.send::<fidl::encoding::ResultType<
9968            fidl::encoding::EmptyStruct,
9969            fidl_fuchsia_posix::Errno,
9970        >>(
9971            result,
9972            self.tx_id,
9973            0x285d6516c263d839,
9974            fidl::encoding::DynamicFlags::empty(),
9975        )
9976    }
9977}
9978
9979#[must_use = "FIDL methods require a response to be sent"]
9980#[derive(Debug)]
9981pub struct BaseDatagramSocketGetTimestampResponder {
9982    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9983    tx_id: u32,
9984}
9985
9986/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9987/// if the responder is dropped without sending a response, so that the client
9988/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9989impl std::ops::Drop for BaseDatagramSocketGetTimestampResponder {
9990    fn drop(&mut self) {
9991        self.control_handle.shutdown();
9992        // Safety: drops once, never accessed again
9993        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9994    }
9995}
9996
9997impl fidl::endpoints::Responder for BaseDatagramSocketGetTimestampResponder {
9998    type ControlHandle = BaseDatagramSocketControlHandle;
9999
10000    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10001        &self.control_handle
10002    }
10003
10004    fn drop_without_shutdown(mut self) {
10005        // Safety: drops once, never accessed again due to mem::forget
10006        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10007        // Prevent Drop from running (which would shut down the channel)
10008        std::mem::forget(self);
10009    }
10010}
10011
10012impl BaseDatagramSocketGetTimestampResponder {
10013    /// Sends a response to the FIDL transaction.
10014    ///
10015    /// Sets the channel to shutdown if an error occurs.
10016    pub fn send(
10017        self,
10018        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
10019    ) -> Result<(), fidl::Error> {
10020        let _result = self.send_raw(result);
10021        if _result.is_err() {
10022            self.control_handle.shutdown();
10023        }
10024        self.drop_without_shutdown();
10025        _result
10026    }
10027
10028    /// Similar to "send" but does not shutdown the channel if an error occurs.
10029    pub fn send_no_shutdown_on_err(
10030        self,
10031        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
10032    ) -> Result<(), fidl::Error> {
10033        let _result = self.send_raw(result);
10034        self.drop_without_shutdown();
10035        _result
10036    }
10037
10038    fn send_raw(
10039        &self,
10040        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
10041    ) -> Result<(), fidl::Error> {
10042        self.control_handle.inner.send::<fidl::encoding::ResultType<
10043            BaseSocketGetTimestampResponse,
10044            fidl_fuchsia_posix::Errno,
10045        >>(
10046            result.map(|value| (value,)),
10047            self.tx_id,
10048            0x49f2fffbbcc2bd27,
10049            fidl::encoding::DynamicFlags::empty(),
10050        )
10051    }
10052}
10053
10054#[must_use = "FIDL methods require a response to be sent"]
10055#[derive(Debug)]
10056pub struct BaseDatagramSocketSetMarkResponder {
10057    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10058    tx_id: u32,
10059}
10060
10061/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10062/// if the responder is dropped without sending a response, so that the client
10063/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10064impl std::ops::Drop for BaseDatagramSocketSetMarkResponder {
10065    fn drop(&mut self) {
10066        self.control_handle.shutdown();
10067        // Safety: drops once, never accessed again
10068        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10069    }
10070}
10071
10072impl fidl::endpoints::Responder for BaseDatagramSocketSetMarkResponder {
10073    type ControlHandle = BaseDatagramSocketControlHandle;
10074
10075    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10076        &self.control_handle
10077    }
10078
10079    fn drop_without_shutdown(mut self) {
10080        // Safety: drops once, never accessed again due to mem::forget
10081        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10082        // Prevent Drop from running (which would shut down the channel)
10083        std::mem::forget(self);
10084    }
10085}
10086
10087impl BaseDatagramSocketSetMarkResponder {
10088    /// Sends a response to the FIDL transaction.
10089    ///
10090    /// Sets the channel to shutdown if an error occurs.
10091    pub fn send(
10092        self,
10093        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10094    ) -> Result<(), fidl::Error> {
10095        let _result = self.send_raw(result);
10096        if _result.is_err() {
10097            self.control_handle.shutdown();
10098        }
10099        self.drop_without_shutdown();
10100        _result
10101    }
10102
10103    /// Similar to "send" but does not shutdown the channel if an error occurs.
10104    pub fn send_no_shutdown_on_err(
10105        self,
10106        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10107    ) -> Result<(), fidl::Error> {
10108        let _result = self.send_raw(result);
10109        self.drop_without_shutdown();
10110        _result
10111    }
10112
10113    fn send_raw(
10114        &self,
10115        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10116    ) -> Result<(), fidl::Error> {
10117        self.control_handle.inner.send::<fidl::encoding::ResultType<
10118            fidl::encoding::EmptyStruct,
10119            fidl_fuchsia_posix::Errno,
10120        >>(
10121            result,
10122            self.tx_id,
10123            0x6ead6de09f653236,
10124            fidl::encoding::DynamicFlags::empty(),
10125        )
10126    }
10127}
10128
10129#[must_use = "FIDL methods require a response to be sent"]
10130#[derive(Debug)]
10131pub struct BaseDatagramSocketGetMarkResponder {
10132    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10133    tx_id: u32,
10134}
10135
10136/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10137/// if the responder is dropped without sending a response, so that the client
10138/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10139impl std::ops::Drop for BaseDatagramSocketGetMarkResponder {
10140    fn drop(&mut self) {
10141        self.control_handle.shutdown();
10142        // Safety: drops once, never accessed again
10143        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10144    }
10145}
10146
10147impl fidl::endpoints::Responder for BaseDatagramSocketGetMarkResponder {
10148    type ControlHandle = BaseDatagramSocketControlHandle;
10149
10150    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10151        &self.control_handle
10152    }
10153
10154    fn drop_without_shutdown(mut self) {
10155        // Safety: drops once, never accessed again due to mem::forget
10156        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10157        // Prevent Drop from running (which would shut down the channel)
10158        std::mem::forget(self);
10159    }
10160}
10161
10162impl BaseDatagramSocketGetMarkResponder {
10163    /// Sends a response to the FIDL transaction.
10164    ///
10165    /// Sets the channel to shutdown if an error occurs.
10166    pub fn send(
10167        self,
10168        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
10169    ) -> Result<(), fidl::Error> {
10170        let _result = self.send_raw(result);
10171        if _result.is_err() {
10172            self.control_handle.shutdown();
10173        }
10174        self.drop_without_shutdown();
10175        _result
10176    }
10177
10178    /// Similar to "send" but does not shutdown the channel if an error occurs.
10179    pub fn send_no_shutdown_on_err(
10180        self,
10181        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
10182    ) -> Result<(), fidl::Error> {
10183        let _result = self.send_raw(result);
10184        self.drop_without_shutdown();
10185        _result
10186    }
10187
10188    fn send_raw(
10189        &self,
10190        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
10191    ) -> Result<(), fidl::Error> {
10192        self.control_handle.inner.send::<fidl::encoding::ResultType<
10193            BaseSocketGetMarkResponse,
10194            fidl_fuchsia_posix::Errno,
10195        >>(
10196            result.map(|mark| (mark,)),
10197            self.tx_id,
10198            0x57a2752c61d93d47,
10199            fidl::encoding::DynamicFlags::empty(),
10200        )
10201    }
10202}
10203
10204#[must_use = "FIDL methods require a response to be sent"]
10205#[derive(Debug)]
10206pub struct BaseDatagramSocketGetCookieResponder {
10207    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10208    tx_id: u32,
10209}
10210
10211/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10212/// if the responder is dropped without sending a response, so that the client
10213/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10214impl std::ops::Drop for BaseDatagramSocketGetCookieResponder {
10215    fn drop(&mut self) {
10216        self.control_handle.shutdown();
10217        // Safety: drops once, never accessed again
10218        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10219    }
10220}
10221
10222impl fidl::endpoints::Responder for BaseDatagramSocketGetCookieResponder {
10223    type ControlHandle = BaseDatagramSocketControlHandle;
10224
10225    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10226        &self.control_handle
10227    }
10228
10229    fn drop_without_shutdown(mut self) {
10230        // Safety: drops once, never accessed again due to mem::forget
10231        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10232        // Prevent Drop from running (which would shut down the channel)
10233        std::mem::forget(self);
10234    }
10235}
10236
10237impl BaseDatagramSocketGetCookieResponder {
10238    /// Sends a response to the FIDL transaction.
10239    ///
10240    /// Sets the channel to shutdown if an error occurs.
10241    pub fn send(
10242        self,
10243        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10244    ) -> Result<(), fidl::Error> {
10245        let _result = self.send_raw(result);
10246        if _result.is_err() {
10247            self.control_handle.shutdown();
10248        }
10249        self.drop_without_shutdown();
10250        _result
10251    }
10252
10253    /// Similar to "send" but does not shutdown the channel if an error occurs.
10254    pub fn send_no_shutdown_on_err(
10255        self,
10256        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10257    ) -> Result<(), fidl::Error> {
10258        let _result = self.send_raw(result);
10259        self.drop_without_shutdown();
10260        _result
10261    }
10262
10263    fn send_raw(
10264        &self,
10265        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10266    ) -> Result<(), fidl::Error> {
10267        self.control_handle.inner.send::<fidl::encoding::ResultType<
10268            BaseSocketGetCookieResponse,
10269            fidl_fuchsia_posix::Errno,
10270        >>(
10271            result.map(|value| (value,)),
10272            self.tx_id,
10273            0x2c2f47fd8f924e52,
10274            fidl::encoding::DynamicFlags::empty(),
10275        )
10276    }
10277}
10278
10279#[must_use = "FIDL methods require a response to be sent"]
10280#[derive(Debug)]
10281pub struct BaseDatagramSocketBindResponder {
10282    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10283    tx_id: u32,
10284}
10285
10286/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10287/// if the responder is dropped without sending a response, so that the client
10288/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10289impl std::ops::Drop for BaseDatagramSocketBindResponder {
10290    fn drop(&mut self) {
10291        self.control_handle.shutdown();
10292        // Safety: drops once, never accessed again
10293        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10294    }
10295}
10296
10297impl fidl::endpoints::Responder for BaseDatagramSocketBindResponder {
10298    type ControlHandle = BaseDatagramSocketControlHandle;
10299
10300    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10301        &self.control_handle
10302    }
10303
10304    fn drop_without_shutdown(mut self) {
10305        // Safety: drops once, never accessed again due to mem::forget
10306        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10307        // Prevent Drop from running (which would shut down the channel)
10308        std::mem::forget(self);
10309    }
10310}
10311
10312impl BaseDatagramSocketBindResponder {
10313    /// Sends a response to the FIDL transaction.
10314    ///
10315    /// Sets the channel to shutdown if an error occurs.
10316    pub fn send(
10317        self,
10318        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10319    ) -> Result<(), fidl::Error> {
10320        let _result = self.send_raw(result);
10321        if _result.is_err() {
10322            self.control_handle.shutdown();
10323        }
10324        self.drop_without_shutdown();
10325        _result
10326    }
10327
10328    /// Similar to "send" but does not shutdown the channel if an error occurs.
10329    pub fn send_no_shutdown_on_err(
10330        self,
10331        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10332    ) -> Result<(), fidl::Error> {
10333        let _result = self.send_raw(result);
10334        self.drop_without_shutdown();
10335        _result
10336    }
10337
10338    fn send_raw(
10339        &self,
10340        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10341    ) -> Result<(), fidl::Error> {
10342        self.control_handle.inner.send::<fidl::encoding::ResultType<
10343            fidl::encoding::EmptyStruct,
10344            fidl_fuchsia_posix::Errno,
10345        >>(
10346            result,
10347            self.tx_id,
10348            0x4bc6400ae92125d,
10349            fidl::encoding::DynamicFlags::empty(),
10350        )
10351    }
10352}
10353
10354#[must_use = "FIDL methods require a response to be sent"]
10355#[derive(Debug)]
10356pub struct BaseDatagramSocketConnectResponder {
10357    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10358    tx_id: u32,
10359}
10360
10361/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10362/// if the responder is dropped without sending a response, so that the client
10363/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10364impl std::ops::Drop for BaseDatagramSocketConnectResponder {
10365    fn drop(&mut self) {
10366        self.control_handle.shutdown();
10367        // Safety: drops once, never accessed again
10368        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10369    }
10370}
10371
10372impl fidl::endpoints::Responder for BaseDatagramSocketConnectResponder {
10373    type ControlHandle = BaseDatagramSocketControlHandle;
10374
10375    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10376        &self.control_handle
10377    }
10378
10379    fn drop_without_shutdown(mut self) {
10380        // Safety: drops once, never accessed again due to mem::forget
10381        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10382        // Prevent Drop from running (which would shut down the channel)
10383        std::mem::forget(self);
10384    }
10385}
10386
10387impl BaseDatagramSocketConnectResponder {
10388    /// Sends a response to the FIDL transaction.
10389    ///
10390    /// Sets the channel to shutdown if an error occurs.
10391    pub fn send(
10392        self,
10393        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10394    ) -> Result<(), fidl::Error> {
10395        let _result = self.send_raw(result);
10396        if _result.is_err() {
10397            self.control_handle.shutdown();
10398        }
10399        self.drop_without_shutdown();
10400        _result
10401    }
10402
10403    /// Similar to "send" but does not shutdown the channel if an error occurs.
10404    pub fn send_no_shutdown_on_err(
10405        self,
10406        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10407    ) -> Result<(), fidl::Error> {
10408        let _result = self.send_raw(result);
10409        self.drop_without_shutdown();
10410        _result
10411    }
10412
10413    fn send_raw(
10414        &self,
10415        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10416    ) -> Result<(), fidl::Error> {
10417        self.control_handle.inner.send::<fidl::encoding::ResultType<
10418            fidl::encoding::EmptyStruct,
10419            fidl_fuchsia_posix::Errno,
10420        >>(
10421            result,
10422            self.tx_id,
10423            0x5f05f19bfdd38871,
10424            fidl::encoding::DynamicFlags::empty(),
10425        )
10426    }
10427}
10428
10429#[must_use = "FIDL methods require a response to be sent"]
10430#[derive(Debug)]
10431pub struct BaseDatagramSocketDisconnectResponder {
10432    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10433    tx_id: u32,
10434}
10435
10436/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10437/// if the responder is dropped without sending a response, so that the client
10438/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10439impl std::ops::Drop for BaseDatagramSocketDisconnectResponder {
10440    fn drop(&mut self) {
10441        self.control_handle.shutdown();
10442        // Safety: drops once, never accessed again
10443        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10444    }
10445}
10446
10447impl fidl::endpoints::Responder for BaseDatagramSocketDisconnectResponder {
10448    type ControlHandle = BaseDatagramSocketControlHandle;
10449
10450    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10451        &self.control_handle
10452    }
10453
10454    fn drop_without_shutdown(mut self) {
10455        // Safety: drops once, never accessed again due to mem::forget
10456        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10457        // Prevent Drop from running (which would shut down the channel)
10458        std::mem::forget(self);
10459    }
10460}
10461
10462impl BaseDatagramSocketDisconnectResponder {
10463    /// Sends a response to the FIDL transaction.
10464    ///
10465    /// Sets the channel to shutdown if an error occurs.
10466    pub fn send(
10467        self,
10468        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10469    ) -> Result<(), fidl::Error> {
10470        let _result = self.send_raw(result);
10471        if _result.is_err() {
10472            self.control_handle.shutdown();
10473        }
10474        self.drop_without_shutdown();
10475        _result
10476    }
10477
10478    /// Similar to "send" but does not shutdown the channel if an error occurs.
10479    pub fn send_no_shutdown_on_err(
10480        self,
10481        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10482    ) -> Result<(), fidl::Error> {
10483        let _result = self.send_raw(result);
10484        self.drop_without_shutdown();
10485        _result
10486    }
10487
10488    fn send_raw(
10489        &self,
10490        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10491    ) -> Result<(), fidl::Error> {
10492        self.control_handle.inner.send::<fidl::encoding::ResultType<
10493            fidl::encoding::EmptyStruct,
10494            fidl_fuchsia_posix::Errno,
10495        >>(
10496            result,
10497            self.tx_id,
10498            0x74e63b91f7b29b2,
10499            fidl::encoding::DynamicFlags::empty(),
10500        )
10501    }
10502}
10503
10504#[must_use = "FIDL methods require a response to be sent"]
10505#[derive(Debug)]
10506pub struct BaseDatagramSocketGetSockNameResponder {
10507    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10508    tx_id: u32,
10509}
10510
10511/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10512/// if the responder is dropped without sending a response, so that the client
10513/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10514impl std::ops::Drop for BaseDatagramSocketGetSockNameResponder {
10515    fn drop(&mut self) {
10516        self.control_handle.shutdown();
10517        // Safety: drops once, never accessed again
10518        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10519    }
10520}
10521
10522impl fidl::endpoints::Responder for BaseDatagramSocketGetSockNameResponder {
10523    type ControlHandle = BaseDatagramSocketControlHandle;
10524
10525    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10526        &self.control_handle
10527    }
10528
10529    fn drop_without_shutdown(mut self) {
10530        // Safety: drops once, never accessed again due to mem::forget
10531        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10532        // Prevent Drop from running (which would shut down the channel)
10533        std::mem::forget(self);
10534    }
10535}
10536
10537impl BaseDatagramSocketGetSockNameResponder {
10538    /// Sends a response to the FIDL transaction.
10539    ///
10540    /// Sets the channel to shutdown if an error occurs.
10541    pub fn send(
10542        self,
10543        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10544    ) -> Result<(), fidl::Error> {
10545        let _result = self.send_raw(result);
10546        if _result.is_err() {
10547            self.control_handle.shutdown();
10548        }
10549        self.drop_without_shutdown();
10550        _result
10551    }
10552
10553    /// Similar to "send" but does not shutdown the channel if an error occurs.
10554    pub fn send_no_shutdown_on_err(
10555        self,
10556        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10557    ) -> Result<(), fidl::Error> {
10558        let _result = self.send_raw(result);
10559        self.drop_without_shutdown();
10560        _result
10561    }
10562
10563    fn send_raw(
10564        &self,
10565        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10566    ) -> Result<(), fidl::Error> {
10567        self.control_handle.inner.send::<fidl::encoding::ResultType<
10568            BaseNetworkSocketGetSockNameResponse,
10569            fidl_fuchsia_posix::Errno,
10570        >>(
10571            result.map(|addr| (addr,)),
10572            self.tx_id,
10573            0x475f23f84a1a4f85,
10574            fidl::encoding::DynamicFlags::empty(),
10575        )
10576    }
10577}
10578
10579#[must_use = "FIDL methods require a response to be sent"]
10580#[derive(Debug)]
10581pub struct BaseDatagramSocketGetPeerNameResponder {
10582    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10583    tx_id: u32,
10584}
10585
10586/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10587/// if the responder is dropped without sending a response, so that the client
10588/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10589impl std::ops::Drop for BaseDatagramSocketGetPeerNameResponder {
10590    fn drop(&mut self) {
10591        self.control_handle.shutdown();
10592        // Safety: drops once, never accessed again
10593        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10594    }
10595}
10596
10597impl fidl::endpoints::Responder for BaseDatagramSocketGetPeerNameResponder {
10598    type ControlHandle = BaseDatagramSocketControlHandle;
10599
10600    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10601        &self.control_handle
10602    }
10603
10604    fn drop_without_shutdown(mut self) {
10605        // Safety: drops once, never accessed again due to mem::forget
10606        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10607        // Prevent Drop from running (which would shut down the channel)
10608        std::mem::forget(self);
10609    }
10610}
10611
10612impl BaseDatagramSocketGetPeerNameResponder {
10613    /// Sends a response to the FIDL transaction.
10614    ///
10615    /// Sets the channel to shutdown if an error occurs.
10616    pub fn send(
10617        self,
10618        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10619    ) -> Result<(), fidl::Error> {
10620        let _result = self.send_raw(result);
10621        if _result.is_err() {
10622            self.control_handle.shutdown();
10623        }
10624        self.drop_without_shutdown();
10625        _result
10626    }
10627
10628    /// Similar to "send" but does not shutdown the channel if an error occurs.
10629    pub fn send_no_shutdown_on_err(
10630        self,
10631        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10632    ) -> Result<(), fidl::Error> {
10633        let _result = self.send_raw(result);
10634        self.drop_without_shutdown();
10635        _result
10636    }
10637
10638    fn send_raw(
10639        &self,
10640        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10641    ) -> Result<(), fidl::Error> {
10642        self.control_handle.inner.send::<fidl::encoding::ResultType<
10643            BaseNetworkSocketGetPeerNameResponse,
10644            fidl_fuchsia_posix::Errno,
10645        >>(
10646            result.map(|addr| (addr,)),
10647            self.tx_id,
10648            0x1ffecf4bd5b6432e,
10649            fidl::encoding::DynamicFlags::empty(),
10650        )
10651    }
10652}
10653
10654#[must_use = "FIDL methods require a response to be sent"]
10655#[derive(Debug)]
10656pub struct BaseDatagramSocketShutdownResponder {
10657    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10658    tx_id: u32,
10659}
10660
10661/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10662/// if the responder is dropped without sending a response, so that the client
10663/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10664impl std::ops::Drop for BaseDatagramSocketShutdownResponder {
10665    fn drop(&mut self) {
10666        self.control_handle.shutdown();
10667        // Safety: drops once, never accessed again
10668        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10669    }
10670}
10671
10672impl fidl::endpoints::Responder for BaseDatagramSocketShutdownResponder {
10673    type ControlHandle = BaseDatagramSocketControlHandle;
10674
10675    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10676        &self.control_handle
10677    }
10678
10679    fn drop_without_shutdown(mut self) {
10680        // Safety: drops once, never accessed again due to mem::forget
10681        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10682        // Prevent Drop from running (which would shut down the channel)
10683        std::mem::forget(self);
10684    }
10685}
10686
10687impl BaseDatagramSocketShutdownResponder {
10688    /// Sends a response to the FIDL transaction.
10689    ///
10690    /// Sets the channel to shutdown if an error occurs.
10691    pub fn send(
10692        self,
10693        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10694    ) -> Result<(), fidl::Error> {
10695        let _result = self.send_raw(result);
10696        if _result.is_err() {
10697            self.control_handle.shutdown();
10698        }
10699        self.drop_without_shutdown();
10700        _result
10701    }
10702
10703    /// Similar to "send" but does not shutdown the channel if an error occurs.
10704    pub fn send_no_shutdown_on_err(
10705        self,
10706        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10707    ) -> Result<(), fidl::Error> {
10708        let _result = self.send_raw(result);
10709        self.drop_without_shutdown();
10710        _result
10711    }
10712
10713    fn send_raw(
10714        &self,
10715        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10716    ) -> Result<(), fidl::Error> {
10717        self.control_handle.inner.send::<fidl::encoding::ResultType<
10718            fidl::encoding::EmptyStruct,
10719            fidl_fuchsia_posix::Errno,
10720        >>(
10721            result,
10722            self.tx_id,
10723            0x247f38b6db68c336,
10724            fidl::encoding::DynamicFlags::empty(),
10725        )
10726    }
10727}
10728
10729#[must_use = "FIDL methods require a response to be sent"]
10730#[derive(Debug)]
10731pub struct BaseDatagramSocketSetIpTypeOfServiceResponder {
10732    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10733    tx_id: u32,
10734}
10735
10736/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10737/// if the responder is dropped without sending a response, so that the client
10738/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10739impl std::ops::Drop for BaseDatagramSocketSetIpTypeOfServiceResponder {
10740    fn drop(&mut self) {
10741        self.control_handle.shutdown();
10742        // Safety: drops once, never accessed again
10743        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10744    }
10745}
10746
10747impl fidl::endpoints::Responder for BaseDatagramSocketSetIpTypeOfServiceResponder {
10748    type ControlHandle = BaseDatagramSocketControlHandle;
10749
10750    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10751        &self.control_handle
10752    }
10753
10754    fn drop_without_shutdown(mut self) {
10755        // Safety: drops once, never accessed again due to mem::forget
10756        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10757        // Prevent Drop from running (which would shut down the channel)
10758        std::mem::forget(self);
10759    }
10760}
10761
10762impl BaseDatagramSocketSetIpTypeOfServiceResponder {
10763    /// Sends a response to the FIDL transaction.
10764    ///
10765    /// Sets the channel to shutdown if an error occurs.
10766    pub fn send(
10767        self,
10768        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10769    ) -> Result<(), fidl::Error> {
10770        let _result = self.send_raw(result);
10771        if _result.is_err() {
10772            self.control_handle.shutdown();
10773        }
10774        self.drop_without_shutdown();
10775        _result
10776    }
10777
10778    /// Similar to "send" but does not shutdown the channel if an error occurs.
10779    pub fn send_no_shutdown_on_err(
10780        self,
10781        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10782    ) -> Result<(), fidl::Error> {
10783        let _result = self.send_raw(result);
10784        self.drop_without_shutdown();
10785        _result
10786    }
10787
10788    fn send_raw(
10789        &self,
10790        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10791    ) -> Result<(), fidl::Error> {
10792        self.control_handle.inner.send::<fidl::encoding::ResultType<
10793            fidl::encoding::EmptyStruct,
10794            fidl_fuchsia_posix::Errno,
10795        >>(
10796            result,
10797            self.tx_id,
10798            0x995c600475b6d46,
10799            fidl::encoding::DynamicFlags::empty(),
10800        )
10801    }
10802}
10803
10804#[must_use = "FIDL methods require a response to be sent"]
10805#[derive(Debug)]
10806pub struct BaseDatagramSocketGetIpTypeOfServiceResponder {
10807    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10808    tx_id: u32,
10809}
10810
10811/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10812/// if the responder is dropped without sending a response, so that the client
10813/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10814impl std::ops::Drop for BaseDatagramSocketGetIpTypeOfServiceResponder {
10815    fn drop(&mut self) {
10816        self.control_handle.shutdown();
10817        // Safety: drops once, never accessed again
10818        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10819    }
10820}
10821
10822impl fidl::endpoints::Responder for BaseDatagramSocketGetIpTypeOfServiceResponder {
10823    type ControlHandle = BaseDatagramSocketControlHandle;
10824
10825    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10826        &self.control_handle
10827    }
10828
10829    fn drop_without_shutdown(mut self) {
10830        // Safety: drops once, never accessed again due to mem::forget
10831        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10832        // Prevent Drop from running (which would shut down the channel)
10833        std::mem::forget(self);
10834    }
10835}
10836
10837impl BaseDatagramSocketGetIpTypeOfServiceResponder {
10838    /// Sends a response to the FIDL transaction.
10839    ///
10840    /// Sets the channel to shutdown if an error occurs.
10841    pub fn send(
10842        self,
10843        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10844    ) -> Result<(), fidl::Error> {
10845        let _result = self.send_raw(result);
10846        if _result.is_err() {
10847            self.control_handle.shutdown();
10848        }
10849        self.drop_without_shutdown();
10850        _result
10851    }
10852
10853    /// Similar to "send" but does not shutdown the channel if an error occurs.
10854    pub fn send_no_shutdown_on_err(
10855        self,
10856        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10857    ) -> Result<(), fidl::Error> {
10858        let _result = self.send_raw(result);
10859        self.drop_without_shutdown();
10860        _result
10861    }
10862
10863    fn send_raw(
10864        &self,
10865        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10866    ) -> Result<(), fidl::Error> {
10867        self.control_handle.inner.send::<fidl::encoding::ResultType<
10868            BaseNetworkSocketGetIpTypeOfServiceResponse,
10869            fidl_fuchsia_posix::Errno,
10870        >>(
10871            result.map(|value| (value,)),
10872            self.tx_id,
10873            0x3814a04259f75fcb,
10874            fidl::encoding::DynamicFlags::empty(),
10875        )
10876    }
10877}
10878
10879#[must_use = "FIDL methods require a response to be sent"]
10880#[derive(Debug)]
10881pub struct BaseDatagramSocketSetIpTtlResponder {
10882    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10883    tx_id: u32,
10884}
10885
10886/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10887/// if the responder is dropped without sending a response, so that the client
10888/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10889impl std::ops::Drop for BaseDatagramSocketSetIpTtlResponder {
10890    fn drop(&mut self) {
10891        self.control_handle.shutdown();
10892        // Safety: drops once, never accessed again
10893        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10894    }
10895}
10896
10897impl fidl::endpoints::Responder for BaseDatagramSocketSetIpTtlResponder {
10898    type ControlHandle = BaseDatagramSocketControlHandle;
10899
10900    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10901        &self.control_handle
10902    }
10903
10904    fn drop_without_shutdown(mut self) {
10905        // Safety: drops once, never accessed again due to mem::forget
10906        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10907        // Prevent Drop from running (which would shut down the channel)
10908        std::mem::forget(self);
10909    }
10910}
10911
10912impl BaseDatagramSocketSetIpTtlResponder {
10913    /// Sends a response to the FIDL transaction.
10914    ///
10915    /// Sets the channel to shutdown if an error occurs.
10916    pub fn send(
10917        self,
10918        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10919    ) -> Result<(), fidl::Error> {
10920        let _result = self.send_raw(result);
10921        if _result.is_err() {
10922            self.control_handle.shutdown();
10923        }
10924        self.drop_without_shutdown();
10925        _result
10926    }
10927
10928    /// Similar to "send" but does not shutdown the channel if an error occurs.
10929    pub fn send_no_shutdown_on_err(
10930        self,
10931        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10932    ) -> Result<(), fidl::Error> {
10933        let _result = self.send_raw(result);
10934        self.drop_without_shutdown();
10935        _result
10936    }
10937
10938    fn send_raw(
10939        &self,
10940        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10941    ) -> Result<(), fidl::Error> {
10942        self.control_handle.inner.send::<fidl::encoding::ResultType<
10943            fidl::encoding::EmptyStruct,
10944            fidl_fuchsia_posix::Errno,
10945        >>(
10946            result,
10947            self.tx_id,
10948            0x29e2424b433ae1ef,
10949            fidl::encoding::DynamicFlags::empty(),
10950        )
10951    }
10952}
10953
10954#[must_use = "FIDL methods require a response to be sent"]
10955#[derive(Debug)]
10956pub struct BaseDatagramSocketGetIpTtlResponder {
10957    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10958    tx_id: u32,
10959}
10960
10961/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10962/// if the responder is dropped without sending a response, so that the client
10963/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10964impl std::ops::Drop for BaseDatagramSocketGetIpTtlResponder {
10965    fn drop(&mut self) {
10966        self.control_handle.shutdown();
10967        // Safety: drops once, never accessed again
10968        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10969    }
10970}
10971
10972impl fidl::endpoints::Responder for BaseDatagramSocketGetIpTtlResponder {
10973    type ControlHandle = BaseDatagramSocketControlHandle;
10974
10975    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10976        &self.control_handle
10977    }
10978
10979    fn drop_without_shutdown(mut self) {
10980        // Safety: drops once, never accessed again due to mem::forget
10981        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10982        // Prevent Drop from running (which would shut down the channel)
10983        std::mem::forget(self);
10984    }
10985}
10986
10987impl BaseDatagramSocketGetIpTtlResponder {
10988    /// Sends a response to the FIDL transaction.
10989    ///
10990    /// Sets the channel to shutdown if an error occurs.
10991    pub fn send(
10992        self,
10993        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10994    ) -> Result<(), fidl::Error> {
10995        let _result = self.send_raw(result);
10996        if _result.is_err() {
10997            self.control_handle.shutdown();
10998        }
10999        self.drop_without_shutdown();
11000        _result
11001    }
11002
11003    /// Similar to "send" but does not shutdown the channel if an error occurs.
11004    pub fn send_no_shutdown_on_err(
11005        self,
11006        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11007    ) -> Result<(), fidl::Error> {
11008        let _result = self.send_raw(result);
11009        self.drop_without_shutdown();
11010        _result
11011    }
11012
11013    fn send_raw(
11014        &self,
11015        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11016    ) -> Result<(), fidl::Error> {
11017        self.control_handle.inner.send::<fidl::encoding::ResultType<
11018            BaseNetworkSocketGetIpTtlResponse,
11019            fidl_fuchsia_posix::Errno,
11020        >>(
11021            result.map(|value| (value,)),
11022            self.tx_id,
11023            0x47e47fa1f24da471,
11024            fidl::encoding::DynamicFlags::empty(),
11025        )
11026    }
11027}
11028
11029#[must_use = "FIDL methods require a response to be sent"]
11030#[derive(Debug)]
11031pub struct BaseDatagramSocketSetIpPacketInfoResponder {
11032    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11033    tx_id: u32,
11034}
11035
11036/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11037/// if the responder is dropped without sending a response, so that the client
11038/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11039impl std::ops::Drop for BaseDatagramSocketSetIpPacketInfoResponder {
11040    fn drop(&mut self) {
11041        self.control_handle.shutdown();
11042        // Safety: drops once, never accessed again
11043        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11044    }
11045}
11046
11047impl fidl::endpoints::Responder for BaseDatagramSocketSetIpPacketInfoResponder {
11048    type ControlHandle = BaseDatagramSocketControlHandle;
11049
11050    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11051        &self.control_handle
11052    }
11053
11054    fn drop_without_shutdown(mut self) {
11055        // Safety: drops once, never accessed again due to mem::forget
11056        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11057        // Prevent Drop from running (which would shut down the channel)
11058        std::mem::forget(self);
11059    }
11060}
11061
11062impl BaseDatagramSocketSetIpPacketInfoResponder {
11063    /// Sends a response to the FIDL transaction.
11064    ///
11065    /// Sets the channel to shutdown if an error occurs.
11066    pub fn send(
11067        self,
11068        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11069    ) -> Result<(), fidl::Error> {
11070        let _result = self.send_raw(result);
11071        if _result.is_err() {
11072            self.control_handle.shutdown();
11073        }
11074        self.drop_without_shutdown();
11075        _result
11076    }
11077
11078    /// Similar to "send" but does not shutdown the channel if an error occurs.
11079    pub fn send_no_shutdown_on_err(
11080        self,
11081        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11082    ) -> Result<(), fidl::Error> {
11083        let _result = self.send_raw(result);
11084        self.drop_without_shutdown();
11085        _result
11086    }
11087
11088    fn send_raw(
11089        &self,
11090        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11091    ) -> Result<(), fidl::Error> {
11092        self.control_handle.inner.send::<fidl::encoding::ResultType<
11093            fidl::encoding::EmptyStruct,
11094            fidl_fuchsia_posix::Errno,
11095        >>(
11096            result,
11097            self.tx_id,
11098            0x392d16bee20c0e16,
11099            fidl::encoding::DynamicFlags::empty(),
11100        )
11101    }
11102}
11103
11104#[must_use = "FIDL methods require a response to be sent"]
11105#[derive(Debug)]
11106pub struct BaseDatagramSocketGetIpPacketInfoResponder {
11107    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11108    tx_id: u32,
11109}
11110
11111/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11112/// if the responder is dropped without sending a response, so that the client
11113/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11114impl std::ops::Drop for BaseDatagramSocketGetIpPacketInfoResponder {
11115    fn drop(&mut self) {
11116        self.control_handle.shutdown();
11117        // Safety: drops once, never accessed again
11118        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11119    }
11120}
11121
11122impl fidl::endpoints::Responder for BaseDatagramSocketGetIpPacketInfoResponder {
11123    type ControlHandle = BaseDatagramSocketControlHandle;
11124
11125    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11126        &self.control_handle
11127    }
11128
11129    fn drop_without_shutdown(mut self) {
11130        // Safety: drops once, never accessed again due to mem::forget
11131        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11132        // Prevent Drop from running (which would shut down the channel)
11133        std::mem::forget(self);
11134    }
11135}
11136
11137impl BaseDatagramSocketGetIpPacketInfoResponder {
11138    /// Sends a response to the FIDL transaction.
11139    ///
11140    /// Sets the channel to shutdown if an error occurs.
11141    pub fn send(
11142        self,
11143        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11144    ) -> Result<(), fidl::Error> {
11145        let _result = self.send_raw(result);
11146        if _result.is_err() {
11147            self.control_handle.shutdown();
11148        }
11149        self.drop_without_shutdown();
11150        _result
11151    }
11152
11153    /// Similar to "send" but does not shutdown the channel if an error occurs.
11154    pub fn send_no_shutdown_on_err(
11155        self,
11156        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11157    ) -> Result<(), fidl::Error> {
11158        let _result = self.send_raw(result);
11159        self.drop_without_shutdown();
11160        _result
11161    }
11162
11163    fn send_raw(
11164        &self,
11165        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11166    ) -> Result<(), fidl::Error> {
11167        self.control_handle.inner.send::<fidl::encoding::ResultType<
11168            BaseNetworkSocketGetIpPacketInfoResponse,
11169            fidl_fuchsia_posix::Errno,
11170        >>(
11171            result.map(|value| (value,)),
11172            self.tx_id,
11173            0x54b505f242280740,
11174            fidl::encoding::DynamicFlags::empty(),
11175        )
11176    }
11177}
11178
11179#[must_use = "FIDL methods require a response to be sent"]
11180#[derive(Debug)]
11181pub struct BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11182    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11183    tx_id: u32,
11184}
11185
11186/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11187/// if the responder is dropped without sending a response, so that the client
11188/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11189impl std::ops::Drop for BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11190    fn drop(&mut self) {
11191        self.control_handle.shutdown();
11192        // Safety: drops once, never accessed again
11193        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11194    }
11195}
11196
11197impl fidl::endpoints::Responder for BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11198    type ControlHandle = BaseDatagramSocketControlHandle;
11199
11200    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11201        &self.control_handle
11202    }
11203
11204    fn drop_without_shutdown(mut self) {
11205        // Safety: drops once, never accessed again due to mem::forget
11206        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11207        // Prevent Drop from running (which would shut down the channel)
11208        std::mem::forget(self);
11209    }
11210}
11211
11212impl BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11213    /// Sends a response to the FIDL transaction.
11214    ///
11215    /// Sets the channel to shutdown if an error occurs.
11216    pub fn send(
11217        self,
11218        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11219    ) -> Result<(), fidl::Error> {
11220        let _result = self.send_raw(result);
11221        if _result.is_err() {
11222            self.control_handle.shutdown();
11223        }
11224        self.drop_without_shutdown();
11225        _result
11226    }
11227
11228    /// Similar to "send" but does not shutdown the channel if an error occurs.
11229    pub fn send_no_shutdown_on_err(
11230        self,
11231        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11232    ) -> Result<(), fidl::Error> {
11233        let _result = self.send_raw(result);
11234        self.drop_without_shutdown();
11235        _result
11236    }
11237
11238    fn send_raw(
11239        &self,
11240        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11241    ) -> Result<(), fidl::Error> {
11242        self.control_handle.inner.send::<fidl::encoding::ResultType<
11243            fidl::encoding::EmptyStruct,
11244            fidl_fuchsia_posix::Errno,
11245        >>(
11246            result,
11247            self.tx_id,
11248            0x6c4f6714995f84ef,
11249            fidl::encoding::DynamicFlags::empty(),
11250        )
11251    }
11252}
11253
11254#[must_use = "FIDL methods require a response to be sent"]
11255#[derive(Debug)]
11256pub struct BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11257    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11258    tx_id: u32,
11259}
11260
11261/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11262/// if the responder is dropped without sending a response, so that the client
11263/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11264impl std::ops::Drop for BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11265    fn drop(&mut self) {
11266        self.control_handle.shutdown();
11267        // Safety: drops once, never accessed again
11268        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11269    }
11270}
11271
11272impl fidl::endpoints::Responder for BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11273    type ControlHandle = BaseDatagramSocketControlHandle;
11274
11275    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11276        &self.control_handle
11277    }
11278
11279    fn drop_without_shutdown(mut self) {
11280        // Safety: drops once, never accessed again due to mem::forget
11281        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11282        // Prevent Drop from running (which would shut down the channel)
11283        std::mem::forget(self);
11284    }
11285}
11286
11287impl BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11288    /// Sends a response to the FIDL transaction.
11289    ///
11290    /// Sets the channel to shutdown if an error occurs.
11291    pub fn send(
11292        self,
11293        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11294    ) -> Result<(), fidl::Error> {
11295        let _result = self.send_raw(result);
11296        if _result.is_err() {
11297            self.control_handle.shutdown();
11298        }
11299        self.drop_without_shutdown();
11300        _result
11301    }
11302
11303    /// Similar to "send" but does not shutdown the channel if an error occurs.
11304    pub fn send_no_shutdown_on_err(
11305        self,
11306        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11307    ) -> Result<(), fidl::Error> {
11308        let _result = self.send_raw(result);
11309        self.drop_without_shutdown();
11310        _result
11311    }
11312
11313    fn send_raw(
11314        &self,
11315        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11316    ) -> Result<(), fidl::Error> {
11317        self.control_handle.inner.send::<fidl::encoding::ResultType<
11318            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
11319            fidl_fuchsia_posix::Errno,
11320        >>(
11321            result.map(|value| (value,)),
11322            self.tx_id,
11323            0x4158ba7dc2795960,
11324            fidl::encoding::DynamicFlags::empty(),
11325        )
11326    }
11327}
11328
11329#[must_use = "FIDL methods require a response to be sent"]
11330#[derive(Debug)]
11331pub struct BaseDatagramSocketSetIpReceiveTtlResponder {
11332    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11333    tx_id: u32,
11334}
11335
11336/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11337/// if the responder is dropped without sending a response, so that the client
11338/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11339impl std::ops::Drop for BaseDatagramSocketSetIpReceiveTtlResponder {
11340    fn drop(&mut self) {
11341        self.control_handle.shutdown();
11342        // Safety: drops once, never accessed again
11343        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11344    }
11345}
11346
11347impl fidl::endpoints::Responder for BaseDatagramSocketSetIpReceiveTtlResponder {
11348    type ControlHandle = BaseDatagramSocketControlHandle;
11349
11350    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11351        &self.control_handle
11352    }
11353
11354    fn drop_without_shutdown(mut self) {
11355        // Safety: drops once, never accessed again due to mem::forget
11356        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11357        // Prevent Drop from running (which would shut down the channel)
11358        std::mem::forget(self);
11359    }
11360}
11361
11362impl BaseDatagramSocketSetIpReceiveTtlResponder {
11363    /// Sends a response to the FIDL transaction.
11364    ///
11365    /// Sets the channel to shutdown if an error occurs.
11366    pub fn send(
11367        self,
11368        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11369    ) -> Result<(), fidl::Error> {
11370        let _result = self.send_raw(result);
11371        if _result.is_err() {
11372            self.control_handle.shutdown();
11373        }
11374        self.drop_without_shutdown();
11375        _result
11376    }
11377
11378    /// Similar to "send" but does not shutdown the channel if an error occurs.
11379    pub fn send_no_shutdown_on_err(
11380        self,
11381        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11382    ) -> Result<(), fidl::Error> {
11383        let _result = self.send_raw(result);
11384        self.drop_without_shutdown();
11385        _result
11386    }
11387
11388    fn send_raw(
11389        &self,
11390        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11391    ) -> Result<(), fidl::Error> {
11392        self.control_handle.inner.send::<fidl::encoding::ResultType<
11393            fidl::encoding::EmptyStruct,
11394            fidl_fuchsia_posix::Errno,
11395        >>(
11396            result,
11397            self.tx_id,
11398            0x46f15be0ce0ab82b,
11399            fidl::encoding::DynamicFlags::empty(),
11400        )
11401    }
11402}
11403
11404#[must_use = "FIDL methods require a response to be sent"]
11405#[derive(Debug)]
11406pub struct BaseDatagramSocketGetIpReceiveTtlResponder {
11407    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11408    tx_id: u32,
11409}
11410
11411/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11412/// if the responder is dropped without sending a response, so that the client
11413/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11414impl std::ops::Drop for BaseDatagramSocketGetIpReceiveTtlResponder {
11415    fn drop(&mut self) {
11416        self.control_handle.shutdown();
11417        // Safety: drops once, never accessed again
11418        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11419    }
11420}
11421
11422impl fidl::endpoints::Responder for BaseDatagramSocketGetIpReceiveTtlResponder {
11423    type ControlHandle = BaseDatagramSocketControlHandle;
11424
11425    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11426        &self.control_handle
11427    }
11428
11429    fn drop_without_shutdown(mut self) {
11430        // Safety: drops once, never accessed again due to mem::forget
11431        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11432        // Prevent Drop from running (which would shut down the channel)
11433        std::mem::forget(self);
11434    }
11435}
11436
11437impl BaseDatagramSocketGetIpReceiveTtlResponder {
11438    /// Sends a response to the FIDL transaction.
11439    ///
11440    /// Sets the channel to shutdown if an error occurs.
11441    pub fn send(
11442        self,
11443        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11444    ) -> Result<(), fidl::Error> {
11445        let _result = self.send_raw(result);
11446        if _result.is_err() {
11447            self.control_handle.shutdown();
11448        }
11449        self.drop_without_shutdown();
11450        _result
11451    }
11452
11453    /// Similar to "send" but does not shutdown the channel if an error occurs.
11454    pub fn send_no_shutdown_on_err(
11455        self,
11456        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11457    ) -> Result<(), fidl::Error> {
11458        let _result = self.send_raw(result);
11459        self.drop_without_shutdown();
11460        _result
11461    }
11462
11463    fn send_raw(
11464        &self,
11465        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11466    ) -> Result<(), fidl::Error> {
11467        self.control_handle.inner.send::<fidl::encoding::ResultType<
11468            BaseNetworkSocketGetIpReceiveTtlResponse,
11469            fidl_fuchsia_posix::Errno,
11470        >>(
11471            result.map(|value| (value,)),
11472            self.tx_id,
11473            0x678ddd5a5dfa2eb5,
11474            fidl::encoding::DynamicFlags::empty(),
11475        )
11476    }
11477}
11478
11479#[must_use = "FIDL methods require a response to be sent"]
11480#[derive(Debug)]
11481pub struct BaseDatagramSocketSetIpMulticastInterfaceResponder {
11482    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11483    tx_id: u32,
11484}
11485
11486/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11487/// if the responder is dropped without sending a response, so that the client
11488/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11489impl std::ops::Drop for BaseDatagramSocketSetIpMulticastInterfaceResponder {
11490    fn drop(&mut self) {
11491        self.control_handle.shutdown();
11492        // Safety: drops once, never accessed again
11493        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11494    }
11495}
11496
11497impl fidl::endpoints::Responder for BaseDatagramSocketSetIpMulticastInterfaceResponder {
11498    type ControlHandle = BaseDatagramSocketControlHandle;
11499
11500    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11501        &self.control_handle
11502    }
11503
11504    fn drop_without_shutdown(mut self) {
11505        // Safety: drops once, never accessed again due to mem::forget
11506        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11507        // Prevent Drop from running (which would shut down the channel)
11508        std::mem::forget(self);
11509    }
11510}
11511
11512impl BaseDatagramSocketSetIpMulticastInterfaceResponder {
11513    /// Sends a response to the FIDL transaction.
11514    ///
11515    /// Sets the channel to shutdown if an error occurs.
11516    pub fn send(
11517        self,
11518        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11519    ) -> Result<(), fidl::Error> {
11520        let _result = self.send_raw(result);
11521        if _result.is_err() {
11522            self.control_handle.shutdown();
11523        }
11524        self.drop_without_shutdown();
11525        _result
11526    }
11527
11528    /// Similar to "send" but does not shutdown the channel if an error occurs.
11529    pub fn send_no_shutdown_on_err(
11530        self,
11531        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11532    ) -> Result<(), fidl::Error> {
11533        let _result = self.send_raw(result);
11534        self.drop_without_shutdown();
11535        _result
11536    }
11537
11538    fn send_raw(
11539        &self,
11540        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11541    ) -> Result<(), fidl::Error> {
11542        self.control_handle.inner.send::<fidl::encoding::ResultType<
11543            fidl::encoding::EmptyStruct,
11544            fidl_fuchsia_posix::Errno,
11545        >>(
11546            result,
11547            self.tx_id,
11548            0x752fbfa9b12befe,
11549            fidl::encoding::DynamicFlags::empty(),
11550        )
11551    }
11552}
11553
11554#[must_use = "FIDL methods require a response to be sent"]
11555#[derive(Debug)]
11556pub struct BaseDatagramSocketGetIpMulticastInterfaceResponder {
11557    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11558    tx_id: u32,
11559}
11560
11561/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11562/// if the responder is dropped without sending a response, so that the client
11563/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11564impl std::ops::Drop for BaseDatagramSocketGetIpMulticastInterfaceResponder {
11565    fn drop(&mut self) {
11566        self.control_handle.shutdown();
11567        // Safety: drops once, never accessed again
11568        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11569    }
11570}
11571
11572impl fidl::endpoints::Responder for BaseDatagramSocketGetIpMulticastInterfaceResponder {
11573    type ControlHandle = BaseDatagramSocketControlHandle;
11574
11575    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11576        &self.control_handle
11577    }
11578
11579    fn drop_without_shutdown(mut self) {
11580        // Safety: drops once, never accessed again due to mem::forget
11581        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11582        // Prevent Drop from running (which would shut down the channel)
11583        std::mem::forget(self);
11584    }
11585}
11586
11587impl BaseDatagramSocketGetIpMulticastInterfaceResponder {
11588    /// Sends a response to the FIDL transaction.
11589    ///
11590    /// Sets the channel to shutdown if an error occurs.
11591    pub fn send(
11592        self,
11593        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
11594    ) -> Result<(), fidl::Error> {
11595        let _result = self.send_raw(result);
11596        if _result.is_err() {
11597            self.control_handle.shutdown();
11598        }
11599        self.drop_without_shutdown();
11600        _result
11601    }
11602
11603    /// Similar to "send" but does not shutdown the channel if an error occurs.
11604    pub fn send_no_shutdown_on_err(
11605        self,
11606        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
11607    ) -> Result<(), fidl::Error> {
11608        let _result = self.send_raw(result);
11609        self.drop_without_shutdown();
11610        _result
11611    }
11612
11613    fn send_raw(
11614        &self,
11615        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
11616    ) -> Result<(), fidl::Error> {
11617        self.control_handle.inner.send::<fidl::encoding::ResultType<
11618            BaseNetworkSocketGetIpMulticastInterfaceResponse,
11619            fidl_fuchsia_posix::Errno,
11620        >>(
11621            result.map(|value| (value,)),
11622            self.tx_id,
11623            0x320bd14c4df046c4,
11624            fidl::encoding::DynamicFlags::empty(),
11625        )
11626    }
11627}
11628
11629#[must_use = "FIDL methods require a response to be sent"]
11630#[derive(Debug)]
11631pub struct BaseDatagramSocketSetIpMulticastTtlResponder {
11632    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11633    tx_id: u32,
11634}
11635
11636/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11637/// if the responder is dropped without sending a response, so that the client
11638/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11639impl std::ops::Drop for BaseDatagramSocketSetIpMulticastTtlResponder {
11640    fn drop(&mut self) {
11641        self.control_handle.shutdown();
11642        // Safety: drops once, never accessed again
11643        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11644    }
11645}
11646
11647impl fidl::endpoints::Responder for BaseDatagramSocketSetIpMulticastTtlResponder {
11648    type ControlHandle = BaseDatagramSocketControlHandle;
11649
11650    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11651        &self.control_handle
11652    }
11653
11654    fn drop_without_shutdown(mut self) {
11655        // Safety: drops once, never accessed again due to mem::forget
11656        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11657        // Prevent Drop from running (which would shut down the channel)
11658        std::mem::forget(self);
11659    }
11660}
11661
11662impl BaseDatagramSocketSetIpMulticastTtlResponder {
11663    /// Sends a response to the FIDL transaction.
11664    ///
11665    /// Sets the channel to shutdown if an error occurs.
11666    pub fn send(
11667        self,
11668        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11669    ) -> Result<(), fidl::Error> {
11670        let _result = self.send_raw(result);
11671        if _result.is_err() {
11672            self.control_handle.shutdown();
11673        }
11674        self.drop_without_shutdown();
11675        _result
11676    }
11677
11678    /// Similar to "send" but does not shutdown the channel if an error occurs.
11679    pub fn send_no_shutdown_on_err(
11680        self,
11681        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11682    ) -> Result<(), fidl::Error> {
11683        let _result = self.send_raw(result);
11684        self.drop_without_shutdown();
11685        _result
11686    }
11687
11688    fn send_raw(
11689        &self,
11690        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11691    ) -> Result<(), fidl::Error> {
11692        self.control_handle.inner.send::<fidl::encoding::ResultType<
11693            fidl::encoding::EmptyStruct,
11694            fidl_fuchsia_posix::Errno,
11695        >>(
11696            result,
11697            self.tx_id,
11698            0x63134d53772916a1,
11699            fidl::encoding::DynamicFlags::empty(),
11700        )
11701    }
11702}
11703
11704#[must_use = "FIDL methods require a response to be sent"]
11705#[derive(Debug)]
11706pub struct BaseDatagramSocketGetIpMulticastTtlResponder {
11707    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11708    tx_id: u32,
11709}
11710
11711/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11712/// if the responder is dropped without sending a response, so that the client
11713/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11714impl std::ops::Drop for BaseDatagramSocketGetIpMulticastTtlResponder {
11715    fn drop(&mut self) {
11716        self.control_handle.shutdown();
11717        // Safety: drops once, never accessed again
11718        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11719    }
11720}
11721
11722impl fidl::endpoints::Responder for BaseDatagramSocketGetIpMulticastTtlResponder {
11723    type ControlHandle = BaseDatagramSocketControlHandle;
11724
11725    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11726        &self.control_handle
11727    }
11728
11729    fn drop_without_shutdown(mut self) {
11730        // Safety: drops once, never accessed again due to mem::forget
11731        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11732        // Prevent Drop from running (which would shut down the channel)
11733        std::mem::forget(self);
11734    }
11735}
11736
11737impl BaseDatagramSocketGetIpMulticastTtlResponder {
11738    /// Sends a response to the FIDL transaction.
11739    ///
11740    /// Sets the channel to shutdown if an error occurs.
11741    pub fn send(
11742        self,
11743        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11744    ) -> Result<(), fidl::Error> {
11745        let _result = self.send_raw(result);
11746        if _result.is_err() {
11747            self.control_handle.shutdown();
11748        }
11749        self.drop_without_shutdown();
11750        _result
11751    }
11752
11753    /// Similar to "send" but does not shutdown the channel if an error occurs.
11754    pub fn send_no_shutdown_on_err(
11755        self,
11756        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11757    ) -> Result<(), fidl::Error> {
11758        let _result = self.send_raw(result);
11759        self.drop_without_shutdown();
11760        _result
11761    }
11762
11763    fn send_raw(
11764        &self,
11765        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11766    ) -> Result<(), fidl::Error> {
11767        self.control_handle.inner.send::<fidl::encoding::ResultType<
11768            BaseNetworkSocketGetIpMulticastTtlResponse,
11769            fidl_fuchsia_posix::Errno,
11770        >>(
11771            result.map(|value| (value,)),
11772            self.tx_id,
11773            0x4665cd378f39e1a,
11774            fidl::encoding::DynamicFlags::empty(),
11775        )
11776    }
11777}
11778
11779#[must_use = "FIDL methods require a response to be sent"]
11780#[derive(Debug)]
11781pub struct BaseDatagramSocketSetIpMulticastLoopbackResponder {
11782    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11783    tx_id: u32,
11784}
11785
11786/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11787/// if the responder is dropped without sending a response, so that the client
11788/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11789impl std::ops::Drop for BaseDatagramSocketSetIpMulticastLoopbackResponder {
11790    fn drop(&mut self) {
11791        self.control_handle.shutdown();
11792        // Safety: drops once, never accessed again
11793        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11794    }
11795}
11796
11797impl fidl::endpoints::Responder for BaseDatagramSocketSetIpMulticastLoopbackResponder {
11798    type ControlHandle = BaseDatagramSocketControlHandle;
11799
11800    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11801        &self.control_handle
11802    }
11803
11804    fn drop_without_shutdown(mut self) {
11805        // Safety: drops once, never accessed again due to mem::forget
11806        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11807        // Prevent Drop from running (which would shut down the channel)
11808        std::mem::forget(self);
11809    }
11810}
11811
11812impl BaseDatagramSocketSetIpMulticastLoopbackResponder {
11813    /// Sends a response to the FIDL transaction.
11814    ///
11815    /// Sets the channel to shutdown if an error occurs.
11816    pub fn send(
11817        self,
11818        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11819    ) -> Result<(), fidl::Error> {
11820        let _result = self.send_raw(result);
11821        if _result.is_err() {
11822            self.control_handle.shutdown();
11823        }
11824        self.drop_without_shutdown();
11825        _result
11826    }
11827
11828    /// Similar to "send" but does not shutdown the channel if an error occurs.
11829    pub fn send_no_shutdown_on_err(
11830        self,
11831        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11832    ) -> Result<(), fidl::Error> {
11833        let _result = self.send_raw(result);
11834        self.drop_without_shutdown();
11835        _result
11836    }
11837
11838    fn send_raw(
11839        &self,
11840        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11841    ) -> Result<(), fidl::Error> {
11842        self.control_handle.inner.send::<fidl::encoding::ResultType<
11843            fidl::encoding::EmptyStruct,
11844            fidl_fuchsia_posix::Errno,
11845        >>(
11846            result,
11847            self.tx_id,
11848            0x20c55c11f00943ea,
11849            fidl::encoding::DynamicFlags::empty(),
11850        )
11851    }
11852}
11853
11854#[must_use = "FIDL methods require a response to be sent"]
11855#[derive(Debug)]
11856pub struct BaseDatagramSocketGetIpMulticastLoopbackResponder {
11857    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11858    tx_id: u32,
11859}
11860
11861/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11862/// if the responder is dropped without sending a response, so that the client
11863/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11864impl std::ops::Drop for BaseDatagramSocketGetIpMulticastLoopbackResponder {
11865    fn drop(&mut self) {
11866        self.control_handle.shutdown();
11867        // Safety: drops once, never accessed again
11868        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11869    }
11870}
11871
11872impl fidl::endpoints::Responder for BaseDatagramSocketGetIpMulticastLoopbackResponder {
11873    type ControlHandle = BaseDatagramSocketControlHandle;
11874
11875    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11876        &self.control_handle
11877    }
11878
11879    fn drop_without_shutdown(mut self) {
11880        // Safety: drops once, never accessed again due to mem::forget
11881        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11882        // Prevent Drop from running (which would shut down the channel)
11883        std::mem::forget(self);
11884    }
11885}
11886
11887impl BaseDatagramSocketGetIpMulticastLoopbackResponder {
11888    /// Sends a response to the FIDL transaction.
11889    ///
11890    /// Sets the channel to shutdown if an error occurs.
11891    pub fn send(
11892        self,
11893        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11894    ) -> Result<(), fidl::Error> {
11895        let _result = self.send_raw(result);
11896        if _result.is_err() {
11897            self.control_handle.shutdown();
11898        }
11899        self.drop_without_shutdown();
11900        _result
11901    }
11902
11903    /// Similar to "send" but does not shutdown the channel if an error occurs.
11904    pub fn send_no_shutdown_on_err(
11905        self,
11906        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11907    ) -> Result<(), fidl::Error> {
11908        let _result = self.send_raw(result);
11909        self.drop_without_shutdown();
11910        _result
11911    }
11912
11913    fn send_raw(
11914        &self,
11915        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11916    ) -> Result<(), fidl::Error> {
11917        self.control_handle.inner.send::<fidl::encoding::ResultType<
11918            BaseNetworkSocketGetIpMulticastLoopbackResponse,
11919            fidl_fuchsia_posix::Errno,
11920        >>(
11921            result.map(|value| (value,)),
11922            self.tx_id,
11923            0x3b6b26ff558298f2,
11924            fidl::encoding::DynamicFlags::empty(),
11925        )
11926    }
11927}
11928
11929#[must_use = "FIDL methods require a response to be sent"]
11930#[derive(Debug)]
11931pub struct BaseDatagramSocketAddIpMembershipResponder {
11932    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11933    tx_id: u32,
11934}
11935
11936/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11937/// if the responder is dropped without sending a response, so that the client
11938/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11939impl std::ops::Drop for BaseDatagramSocketAddIpMembershipResponder {
11940    fn drop(&mut self) {
11941        self.control_handle.shutdown();
11942        // Safety: drops once, never accessed again
11943        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11944    }
11945}
11946
11947impl fidl::endpoints::Responder for BaseDatagramSocketAddIpMembershipResponder {
11948    type ControlHandle = BaseDatagramSocketControlHandle;
11949
11950    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11951        &self.control_handle
11952    }
11953
11954    fn drop_without_shutdown(mut self) {
11955        // Safety: drops once, never accessed again due to mem::forget
11956        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11957        // Prevent Drop from running (which would shut down the channel)
11958        std::mem::forget(self);
11959    }
11960}
11961
11962impl BaseDatagramSocketAddIpMembershipResponder {
11963    /// Sends a response to the FIDL transaction.
11964    ///
11965    /// Sets the channel to shutdown if an error occurs.
11966    pub fn send(
11967        self,
11968        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11969    ) -> Result<(), fidl::Error> {
11970        let _result = self.send_raw(result);
11971        if _result.is_err() {
11972            self.control_handle.shutdown();
11973        }
11974        self.drop_without_shutdown();
11975        _result
11976    }
11977
11978    /// Similar to "send" but does not shutdown the channel if an error occurs.
11979    pub fn send_no_shutdown_on_err(
11980        self,
11981        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11982    ) -> Result<(), fidl::Error> {
11983        let _result = self.send_raw(result);
11984        self.drop_without_shutdown();
11985        _result
11986    }
11987
11988    fn send_raw(
11989        &self,
11990        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11991    ) -> Result<(), fidl::Error> {
11992        self.control_handle.inner.send::<fidl::encoding::ResultType<
11993            fidl::encoding::EmptyStruct,
11994            fidl_fuchsia_posix::Errno,
11995        >>(
11996            result,
11997            self.tx_id,
11998            0x76bc7df115a3b4d0,
11999            fidl::encoding::DynamicFlags::empty(),
12000        )
12001    }
12002}
12003
12004#[must_use = "FIDL methods require a response to be sent"]
12005#[derive(Debug)]
12006pub struct BaseDatagramSocketDropIpMembershipResponder {
12007    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12008    tx_id: u32,
12009}
12010
12011/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12012/// if the responder is dropped without sending a response, so that the client
12013/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12014impl std::ops::Drop for BaseDatagramSocketDropIpMembershipResponder {
12015    fn drop(&mut self) {
12016        self.control_handle.shutdown();
12017        // Safety: drops once, never accessed again
12018        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12019    }
12020}
12021
12022impl fidl::endpoints::Responder for BaseDatagramSocketDropIpMembershipResponder {
12023    type ControlHandle = BaseDatagramSocketControlHandle;
12024
12025    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12026        &self.control_handle
12027    }
12028
12029    fn drop_without_shutdown(mut self) {
12030        // Safety: drops once, never accessed again due to mem::forget
12031        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12032        // Prevent Drop from running (which would shut down the channel)
12033        std::mem::forget(self);
12034    }
12035}
12036
12037impl BaseDatagramSocketDropIpMembershipResponder {
12038    /// Sends a response to the FIDL transaction.
12039    ///
12040    /// Sets the channel to shutdown if an error occurs.
12041    pub fn send(
12042        self,
12043        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12044    ) -> Result<(), fidl::Error> {
12045        let _result = self.send_raw(result);
12046        if _result.is_err() {
12047            self.control_handle.shutdown();
12048        }
12049        self.drop_without_shutdown();
12050        _result
12051    }
12052
12053    /// Similar to "send" but does not shutdown the channel if an error occurs.
12054    pub fn send_no_shutdown_on_err(
12055        self,
12056        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12057    ) -> Result<(), fidl::Error> {
12058        let _result = self.send_raw(result);
12059        self.drop_without_shutdown();
12060        _result
12061    }
12062
12063    fn send_raw(
12064        &self,
12065        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12066    ) -> Result<(), fidl::Error> {
12067        self.control_handle.inner.send::<fidl::encoding::ResultType<
12068            fidl::encoding::EmptyStruct,
12069            fidl_fuchsia_posix::Errno,
12070        >>(
12071            result,
12072            self.tx_id,
12073            0x2888f3099188d03,
12074            fidl::encoding::DynamicFlags::empty(),
12075        )
12076    }
12077}
12078
12079#[must_use = "FIDL methods require a response to be sent"]
12080#[derive(Debug)]
12081pub struct BaseDatagramSocketSetIpTransparentResponder {
12082    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12083    tx_id: u32,
12084}
12085
12086/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12087/// if the responder is dropped without sending a response, so that the client
12088/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12089impl std::ops::Drop for BaseDatagramSocketSetIpTransparentResponder {
12090    fn drop(&mut self) {
12091        self.control_handle.shutdown();
12092        // Safety: drops once, never accessed again
12093        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12094    }
12095}
12096
12097impl fidl::endpoints::Responder for BaseDatagramSocketSetIpTransparentResponder {
12098    type ControlHandle = BaseDatagramSocketControlHandle;
12099
12100    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12101        &self.control_handle
12102    }
12103
12104    fn drop_without_shutdown(mut self) {
12105        // Safety: drops once, never accessed again due to mem::forget
12106        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12107        // Prevent Drop from running (which would shut down the channel)
12108        std::mem::forget(self);
12109    }
12110}
12111
12112impl BaseDatagramSocketSetIpTransparentResponder {
12113    /// Sends a response to the FIDL transaction.
12114    ///
12115    /// Sets the channel to shutdown if an error occurs.
12116    pub fn send(
12117        self,
12118        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12119    ) -> Result<(), fidl::Error> {
12120        let _result = self.send_raw(result);
12121        if _result.is_err() {
12122            self.control_handle.shutdown();
12123        }
12124        self.drop_without_shutdown();
12125        _result
12126    }
12127
12128    /// Similar to "send" but does not shutdown the channel if an error occurs.
12129    pub fn send_no_shutdown_on_err(
12130        self,
12131        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12132    ) -> Result<(), fidl::Error> {
12133        let _result = self.send_raw(result);
12134        self.drop_without_shutdown();
12135        _result
12136    }
12137
12138    fn send_raw(
12139        &self,
12140        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12141    ) -> Result<(), fidl::Error> {
12142        self.control_handle.inner.send::<fidl::encoding::ResultType<
12143            fidl::encoding::EmptyStruct,
12144            fidl_fuchsia_posix::Errno,
12145        >>(
12146            result,
12147            self.tx_id,
12148            0x1ae532b0c066e3a0,
12149            fidl::encoding::DynamicFlags::empty(),
12150        )
12151    }
12152}
12153
12154#[must_use = "FIDL methods require a response to be sent"]
12155#[derive(Debug)]
12156pub struct BaseDatagramSocketGetIpTransparentResponder {
12157    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12158    tx_id: u32,
12159}
12160
12161/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12162/// if the responder is dropped without sending a response, so that the client
12163/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12164impl std::ops::Drop for BaseDatagramSocketGetIpTransparentResponder {
12165    fn drop(&mut self) {
12166        self.control_handle.shutdown();
12167        // Safety: drops once, never accessed again
12168        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12169    }
12170}
12171
12172impl fidl::endpoints::Responder for BaseDatagramSocketGetIpTransparentResponder {
12173    type ControlHandle = BaseDatagramSocketControlHandle;
12174
12175    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12176        &self.control_handle
12177    }
12178
12179    fn drop_without_shutdown(mut self) {
12180        // Safety: drops once, never accessed again due to mem::forget
12181        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12182        // Prevent Drop from running (which would shut down the channel)
12183        std::mem::forget(self);
12184    }
12185}
12186
12187impl BaseDatagramSocketGetIpTransparentResponder {
12188    /// Sends a response to the FIDL transaction.
12189    ///
12190    /// Sets the channel to shutdown if an error occurs.
12191    pub fn send(
12192        self,
12193        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12194    ) -> Result<(), fidl::Error> {
12195        let _result = self.send_raw(result);
12196        if _result.is_err() {
12197            self.control_handle.shutdown();
12198        }
12199        self.drop_without_shutdown();
12200        _result
12201    }
12202
12203    /// Similar to "send" but does not shutdown the channel if an error occurs.
12204    pub fn send_no_shutdown_on_err(
12205        self,
12206        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12207    ) -> Result<(), fidl::Error> {
12208        let _result = self.send_raw(result);
12209        self.drop_without_shutdown();
12210        _result
12211    }
12212
12213    fn send_raw(
12214        &self,
12215        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12216    ) -> Result<(), fidl::Error> {
12217        self.control_handle.inner.send::<fidl::encoding::ResultType<
12218            BaseNetworkSocketGetIpTransparentResponse,
12219            fidl_fuchsia_posix::Errno,
12220        >>(
12221            result.map(|value| (value,)),
12222            self.tx_id,
12223            0x51d43695962ebfb5,
12224            fidl::encoding::DynamicFlags::empty(),
12225        )
12226    }
12227}
12228
12229#[must_use = "FIDL methods require a response to be sent"]
12230#[derive(Debug)]
12231pub struct BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
12232    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12233    tx_id: u32,
12234}
12235
12236/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12237/// if the responder is dropped without sending a response, so that the client
12238/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12239impl std::ops::Drop for BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
12240    fn drop(&mut self) {
12241        self.control_handle.shutdown();
12242        // Safety: drops once, never accessed again
12243        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12244    }
12245}
12246
12247impl fidl::endpoints::Responder
12248    for BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder
12249{
12250    type ControlHandle = BaseDatagramSocketControlHandle;
12251
12252    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12253        &self.control_handle
12254    }
12255
12256    fn drop_without_shutdown(mut self) {
12257        // Safety: drops once, never accessed again due to mem::forget
12258        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12259        // Prevent Drop from running (which would shut down the channel)
12260        std::mem::forget(self);
12261    }
12262}
12263
12264impl BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
12265    /// Sends a response to the FIDL transaction.
12266    ///
12267    /// Sets the channel to shutdown if an error occurs.
12268    pub fn send(
12269        self,
12270        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12271    ) -> Result<(), fidl::Error> {
12272        let _result = self.send_raw(result);
12273        if _result.is_err() {
12274            self.control_handle.shutdown();
12275        }
12276        self.drop_without_shutdown();
12277        _result
12278    }
12279
12280    /// Similar to "send" but does not shutdown the channel if an error occurs.
12281    pub fn send_no_shutdown_on_err(
12282        self,
12283        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12284    ) -> Result<(), fidl::Error> {
12285        let _result = self.send_raw(result);
12286        self.drop_without_shutdown();
12287        _result
12288    }
12289
12290    fn send_raw(
12291        &self,
12292        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12293    ) -> Result<(), fidl::Error> {
12294        self.control_handle.inner.send::<fidl::encoding::ResultType<
12295            fidl::encoding::EmptyStruct,
12296            fidl_fuchsia_posix::Errno,
12297        >>(
12298            result,
12299            self.tx_id,
12300            0x4722b4ce52f7840,
12301            fidl::encoding::DynamicFlags::empty(),
12302        )
12303    }
12304}
12305
12306#[must_use = "FIDL methods require a response to be sent"]
12307#[derive(Debug)]
12308pub struct BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
12309    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12310    tx_id: u32,
12311}
12312
12313/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12314/// if the responder is dropped without sending a response, so that the client
12315/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12316impl std::ops::Drop for BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
12317    fn drop(&mut self) {
12318        self.control_handle.shutdown();
12319        // Safety: drops once, never accessed again
12320        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12321    }
12322}
12323
12324impl fidl::endpoints::Responder
12325    for BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder
12326{
12327    type ControlHandle = BaseDatagramSocketControlHandle;
12328
12329    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12330        &self.control_handle
12331    }
12332
12333    fn drop_without_shutdown(mut self) {
12334        // Safety: drops once, never accessed again due to mem::forget
12335        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12336        // Prevent Drop from running (which would shut down the channel)
12337        std::mem::forget(self);
12338    }
12339}
12340
12341impl BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
12342    /// Sends a response to the FIDL transaction.
12343    ///
12344    /// Sets the channel to shutdown if an error occurs.
12345    pub fn send(
12346        self,
12347        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12348    ) -> Result<(), fidl::Error> {
12349        let _result = self.send_raw(result);
12350        if _result.is_err() {
12351            self.control_handle.shutdown();
12352        }
12353        self.drop_without_shutdown();
12354        _result
12355    }
12356
12357    /// Similar to "send" but does not shutdown the channel if an error occurs.
12358    pub fn send_no_shutdown_on_err(
12359        self,
12360        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12361    ) -> Result<(), fidl::Error> {
12362        let _result = self.send_raw(result);
12363        self.drop_without_shutdown();
12364        _result
12365    }
12366
12367    fn send_raw(
12368        &self,
12369        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12370    ) -> Result<(), fidl::Error> {
12371        self.control_handle.inner.send::<fidl::encoding::ResultType<
12372            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
12373            fidl_fuchsia_posix::Errno,
12374        >>(
12375            result.map(|value| (value,)),
12376            self.tx_id,
12377            0x2a0e7dc5d6bfdfe9,
12378            fidl::encoding::DynamicFlags::empty(),
12379        )
12380    }
12381}
12382
12383#[must_use = "FIDL methods require a response to be sent"]
12384#[derive(Debug)]
12385pub struct BaseDatagramSocketAddIpv6MembershipResponder {
12386    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12387    tx_id: u32,
12388}
12389
12390/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12391/// if the responder is dropped without sending a response, so that the client
12392/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12393impl std::ops::Drop for BaseDatagramSocketAddIpv6MembershipResponder {
12394    fn drop(&mut self) {
12395        self.control_handle.shutdown();
12396        // Safety: drops once, never accessed again
12397        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12398    }
12399}
12400
12401impl fidl::endpoints::Responder for BaseDatagramSocketAddIpv6MembershipResponder {
12402    type ControlHandle = BaseDatagramSocketControlHandle;
12403
12404    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12405        &self.control_handle
12406    }
12407
12408    fn drop_without_shutdown(mut self) {
12409        // Safety: drops once, never accessed again due to mem::forget
12410        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12411        // Prevent Drop from running (which would shut down the channel)
12412        std::mem::forget(self);
12413    }
12414}
12415
12416impl BaseDatagramSocketAddIpv6MembershipResponder {
12417    /// Sends a response to the FIDL transaction.
12418    ///
12419    /// Sets the channel to shutdown if an error occurs.
12420    pub fn send(
12421        self,
12422        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12423    ) -> Result<(), fidl::Error> {
12424        let _result = self.send_raw(result);
12425        if _result.is_err() {
12426            self.control_handle.shutdown();
12427        }
12428        self.drop_without_shutdown();
12429        _result
12430    }
12431
12432    /// Similar to "send" but does not shutdown the channel if an error occurs.
12433    pub fn send_no_shutdown_on_err(
12434        self,
12435        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12436    ) -> Result<(), fidl::Error> {
12437        let _result = self.send_raw(result);
12438        self.drop_without_shutdown();
12439        _result
12440    }
12441
12442    fn send_raw(
12443        &self,
12444        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12445    ) -> Result<(), fidl::Error> {
12446        self.control_handle.inner.send::<fidl::encoding::ResultType<
12447            fidl::encoding::EmptyStruct,
12448            fidl_fuchsia_posix::Errno,
12449        >>(
12450            result,
12451            self.tx_id,
12452            0x7c94727acb4ea4b3,
12453            fidl::encoding::DynamicFlags::empty(),
12454        )
12455    }
12456}
12457
12458#[must_use = "FIDL methods require a response to be sent"]
12459#[derive(Debug)]
12460pub struct BaseDatagramSocketDropIpv6MembershipResponder {
12461    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12462    tx_id: u32,
12463}
12464
12465/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12466/// if the responder is dropped without sending a response, so that the client
12467/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12468impl std::ops::Drop for BaseDatagramSocketDropIpv6MembershipResponder {
12469    fn drop(&mut self) {
12470        self.control_handle.shutdown();
12471        // Safety: drops once, never accessed again
12472        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12473    }
12474}
12475
12476impl fidl::endpoints::Responder for BaseDatagramSocketDropIpv6MembershipResponder {
12477    type ControlHandle = BaseDatagramSocketControlHandle;
12478
12479    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12480        &self.control_handle
12481    }
12482
12483    fn drop_without_shutdown(mut self) {
12484        // Safety: drops once, never accessed again due to mem::forget
12485        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12486        // Prevent Drop from running (which would shut down the channel)
12487        std::mem::forget(self);
12488    }
12489}
12490
12491impl BaseDatagramSocketDropIpv6MembershipResponder {
12492    /// Sends a response to the FIDL transaction.
12493    ///
12494    /// Sets the channel to shutdown if an error occurs.
12495    pub fn send(
12496        self,
12497        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12498    ) -> Result<(), fidl::Error> {
12499        let _result = self.send_raw(result);
12500        if _result.is_err() {
12501            self.control_handle.shutdown();
12502        }
12503        self.drop_without_shutdown();
12504        _result
12505    }
12506
12507    /// Similar to "send" but does not shutdown the channel if an error occurs.
12508    pub fn send_no_shutdown_on_err(
12509        self,
12510        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12511    ) -> Result<(), fidl::Error> {
12512        let _result = self.send_raw(result);
12513        self.drop_without_shutdown();
12514        _result
12515    }
12516
12517    fn send_raw(
12518        &self,
12519        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12520    ) -> Result<(), fidl::Error> {
12521        self.control_handle.inner.send::<fidl::encoding::ResultType<
12522            fidl::encoding::EmptyStruct,
12523            fidl_fuchsia_posix::Errno,
12524        >>(
12525            result,
12526            self.tx_id,
12527            0x42104c70ccaba304,
12528            fidl::encoding::DynamicFlags::empty(),
12529        )
12530    }
12531}
12532
12533#[must_use = "FIDL methods require a response to be sent"]
12534#[derive(Debug)]
12535pub struct BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12536    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12537    tx_id: u32,
12538}
12539
12540/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12541/// if the responder is dropped without sending a response, so that the client
12542/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12543impl std::ops::Drop for BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12544    fn drop(&mut self) {
12545        self.control_handle.shutdown();
12546        // Safety: drops once, never accessed again
12547        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12548    }
12549}
12550
12551impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12552    type ControlHandle = BaseDatagramSocketControlHandle;
12553
12554    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12555        &self.control_handle
12556    }
12557
12558    fn drop_without_shutdown(mut self) {
12559        // Safety: drops once, never accessed again due to mem::forget
12560        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12561        // Prevent Drop from running (which would shut down the channel)
12562        std::mem::forget(self);
12563    }
12564}
12565
12566impl BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12567    /// Sends a response to the FIDL transaction.
12568    ///
12569    /// Sets the channel to shutdown if an error occurs.
12570    pub fn send(
12571        self,
12572        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12573    ) -> Result<(), fidl::Error> {
12574        let _result = self.send_raw(result);
12575        if _result.is_err() {
12576            self.control_handle.shutdown();
12577        }
12578        self.drop_without_shutdown();
12579        _result
12580    }
12581
12582    /// Similar to "send" but does not shutdown the channel if an error occurs.
12583    pub fn send_no_shutdown_on_err(
12584        self,
12585        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12586    ) -> Result<(), fidl::Error> {
12587        let _result = self.send_raw(result);
12588        self.drop_without_shutdown();
12589        _result
12590    }
12591
12592    fn send_raw(
12593        &self,
12594        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12595    ) -> Result<(), fidl::Error> {
12596        self.control_handle.inner.send::<fidl::encoding::ResultType<
12597            fidl::encoding::EmptyStruct,
12598            fidl_fuchsia_posix::Errno,
12599        >>(
12600            result,
12601            self.tx_id,
12602            0x135f76db3774ab3b,
12603            fidl::encoding::DynamicFlags::empty(),
12604        )
12605    }
12606}
12607
12608#[must_use = "FIDL methods require a response to be sent"]
12609#[derive(Debug)]
12610pub struct BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12611    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12612    tx_id: u32,
12613}
12614
12615/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12616/// if the responder is dropped without sending a response, so that the client
12617/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12618impl std::ops::Drop for BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12619    fn drop(&mut self) {
12620        self.control_handle.shutdown();
12621        // Safety: drops once, never accessed again
12622        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12623    }
12624}
12625
12626impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12627    type ControlHandle = BaseDatagramSocketControlHandle;
12628
12629    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12630        &self.control_handle
12631    }
12632
12633    fn drop_without_shutdown(mut self) {
12634        // Safety: drops once, never accessed again due to mem::forget
12635        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12636        // Prevent Drop from running (which would shut down the channel)
12637        std::mem::forget(self);
12638    }
12639}
12640
12641impl BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12642    /// Sends a response to the FIDL transaction.
12643    ///
12644    /// Sets the channel to shutdown if an error occurs.
12645    pub fn send(
12646        self,
12647        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
12648    ) -> Result<(), fidl::Error> {
12649        let _result = self.send_raw(result);
12650        if _result.is_err() {
12651            self.control_handle.shutdown();
12652        }
12653        self.drop_without_shutdown();
12654        _result
12655    }
12656
12657    /// Similar to "send" but does not shutdown the channel if an error occurs.
12658    pub fn send_no_shutdown_on_err(
12659        self,
12660        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
12661    ) -> Result<(), fidl::Error> {
12662        let _result = self.send_raw(result);
12663        self.drop_without_shutdown();
12664        _result
12665    }
12666
12667    fn send_raw(
12668        &self,
12669        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
12670    ) -> Result<(), fidl::Error> {
12671        self.control_handle.inner.send::<fidl::encoding::ResultType<
12672            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
12673            fidl_fuchsia_posix::Errno,
12674        >>(
12675            result.map(|value| (value,)),
12676            self.tx_id,
12677            0x1f26fcdd348f1882,
12678            fidl::encoding::DynamicFlags::empty(),
12679        )
12680    }
12681}
12682
12683#[must_use = "FIDL methods require a response to be sent"]
12684#[derive(Debug)]
12685pub struct BaseDatagramSocketSetIpv6UnicastHopsResponder {
12686    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12687    tx_id: u32,
12688}
12689
12690/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12691/// if the responder is dropped without sending a response, so that the client
12692/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12693impl std::ops::Drop for BaseDatagramSocketSetIpv6UnicastHopsResponder {
12694    fn drop(&mut self) {
12695        self.control_handle.shutdown();
12696        // Safety: drops once, never accessed again
12697        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12698    }
12699}
12700
12701impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6UnicastHopsResponder {
12702    type ControlHandle = BaseDatagramSocketControlHandle;
12703
12704    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12705        &self.control_handle
12706    }
12707
12708    fn drop_without_shutdown(mut self) {
12709        // Safety: drops once, never accessed again due to mem::forget
12710        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12711        // Prevent Drop from running (which would shut down the channel)
12712        std::mem::forget(self);
12713    }
12714}
12715
12716impl BaseDatagramSocketSetIpv6UnicastHopsResponder {
12717    /// Sends a response to the FIDL transaction.
12718    ///
12719    /// Sets the channel to shutdown if an error occurs.
12720    pub fn send(
12721        self,
12722        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12723    ) -> Result<(), fidl::Error> {
12724        let _result = self.send_raw(result);
12725        if _result.is_err() {
12726            self.control_handle.shutdown();
12727        }
12728        self.drop_without_shutdown();
12729        _result
12730    }
12731
12732    /// Similar to "send" but does not shutdown the channel if an error occurs.
12733    pub fn send_no_shutdown_on_err(
12734        self,
12735        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12736    ) -> Result<(), fidl::Error> {
12737        let _result = self.send_raw(result);
12738        self.drop_without_shutdown();
12739        _result
12740    }
12741
12742    fn send_raw(
12743        &self,
12744        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12745    ) -> Result<(), fidl::Error> {
12746        self.control_handle.inner.send::<fidl::encoding::ResultType<
12747            fidl::encoding::EmptyStruct,
12748            fidl_fuchsia_posix::Errno,
12749        >>(
12750            result,
12751            self.tx_id,
12752            0x157d51e98f462859,
12753            fidl::encoding::DynamicFlags::empty(),
12754        )
12755    }
12756}
12757
12758#[must_use = "FIDL methods require a response to be sent"]
12759#[derive(Debug)]
12760pub struct BaseDatagramSocketGetIpv6UnicastHopsResponder {
12761    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12762    tx_id: u32,
12763}
12764
12765/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12766/// if the responder is dropped without sending a response, so that the client
12767/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12768impl std::ops::Drop for BaseDatagramSocketGetIpv6UnicastHopsResponder {
12769    fn drop(&mut self) {
12770        self.control_handle.shutdown();
12771        // Safety: drops once, never accessed again
12772        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12773    }
12774}
12775
12776impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6UnicastHopsResponder {
12777    type ControlHandle = BaseDatagramSocketControlHandle;
12778
12779    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12780        &self.control_handle
12781    }
12782
12783    fn drop_without_shutdown(mut self) {
12784        // Safety: drops once, never accessed again due to mem::forget
12785        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12786        // Prevent Drop from running (which would shut down the channel)
12787        std::mem::forget(self);
12788    }
12789}
12790
12791impl BaseDatagramSocketGetIpv6UnicastHopsResponder {
12792    /// Sends a response to the FIDL transaction.
12793    ///
12794    /// Sets the channel to shutdown if an error occurs.
12795    pub fn send(
12796        self,
12797        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
12798    ) -> Result<(), fidl::Error> {
12799        let _result = self.send_raw(result);
12800        if _result.is_err() {
12801            self.control_handle.shutdown();
12802        }
12803        self.drop_without_shutdown();
12804        _result
12805    }
12806
12807    /// Similar to "send" but does not shutdown the channel if an error occurs.
12808    pub fn send_no_shutdown_on_err(
12809        self,
12810        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
12811    ) -> Result<(), fidl::Error> {
12812        let _result = self.send_raw(result);
12813        self.drop_without_shutdown();
12814        _result
12815    }
12816
12817    fn send_raw(
12818        &self,
12819        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
12820    ) -> Result<(), fidl::Error> {
12821        self.control_handle.inner.send::<fidl::encoding::ResultType<
12822            BaseNetworkSocketGetIpv6UnicastHopsResponse,
12823            fidl_fuchsia_posix::Errno,
12824        >>(
12825            result.map(|value| (value,)),
12826            self.tx_id,
12827            0x21f4641cad8bd8d2,
12828            fidl::encoding::DynamicFlags::empty(),
12829        )
12830    }
12831}
12832
12833#[must_use = "FIDL methods require a response to be sent"]
12834#[derive(Debug)]
12835pub struct BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
12836    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12837    tx_id: u32,
12838}
12839
12840/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12841/// if the responder is dropped without sending a response, so that the client
12842/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12843impl std::ops::Drop for BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
12844    fn drop(&mut self) {
12845        self.control_handle.shutdown();
12846        // Safety: drops once, never accessed again
12847        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12848    }
12849}
12850
12851impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
12852    type ControlHandle = BaseDatagramSocketControlHandle;
12853
12854    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12855        &self.control_handle
12856    }
12857
12858    fn drop_without_shutdown(mut self) {
12859        // Safety: drops once, never accessed again due to mem::forget
12860        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12861        // Prevent Drop from running (which would shut down the channel)
12862        std::mem::forget(self);
12863    }
12864}
12865
12866impl BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
12867    /// Sends a response to the FIDL transaction.
12868    ///
12869    /// Sets the channel to shutdown if an error occurs.
12870    pub fn send(
12871        self,
12872        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12873    ) -> Result<(), fidl::Error> {
12874        let _result = self.send_raw(result);
12875        if _result.is_err() {
12876            self.control_handle.shutdown();
12877        }
12878        self.drop_without_shutdown();
12879        _result
12880    }
12881
12882    /// Similar to "send" but does not shutdown the channel if an error occurs.
12883    pub fn send_no_shutdown_on_err(
12884        self,
12885        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12886    ) -> Result<(), fidl::Error> {
12887        let _result = self.send_raw(result);
12888        self.drop_without_shutdown();
12889        _result
12890    }
12891
12892    fn send_raw(
12893        &self,
12894        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12895    ) -> Result<(), fidl::Error> {
12896        self.control_handle.inner.send::<fidl::encoding::ResultType<
12897            fidl::encoding::EmptyStruct,
12898            fidl_fuchsia_posix::Errno,
12899        >>(
12900            result,
12901            self.tx_id,
12902            0x5c24808ed2e84a1e,
12903            fidl::encoding::DynamicFlags::empty(),
12904        )
12905    }
12906}
12907
12908#[must_use = "FIDL methods require a response to be sent"]
12909#[derive(Debug)]
12910pub struct BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
12911    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12912    tx_id: u32,
12913}
12914
12915/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12916/// if the responder is dropped without sending a response, so that the client
12917/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12918impl std::ops::Drop for BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
12919    fn drop(&mut self) {
12920        self.control_handle.shutdown();
12921        // Safety: drops once, never accessed again
12922        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12923    }
12924}
12925
12926impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
12927    type ControlHandle = BaseDatagramSocketControlHandle;
12928
12929    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12930        &self.control_handle
12931    }
12932
12933    fn drop_without_shutdown(mut self) {
12934        // Safety: drops once, never accessed again due to mem::forget
12935        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12936        // Prevent Drop from running (which would shut down the channel)
12937        std::mem::forget(self);
12938    }
12939}
12940
12941impl BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
12942    /// Sends a response to the FIDL transaction.
12943    ///
12944    /// Sets the channel to shutdown if an error occurs.
12945    pub fn send(
12946        self,
12947        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12948    ) -> Result<(), fidl::Error> {
12949        let _result = self.send_raw(result);
12950        if _result.is_err() {
12951            self.control_handle.shutdown();
12952        }
12953        self.drop_without_shutdown();
12954        _result
12955    }
12956
12957    /// Similar to "send" but does not shutdown the channel if an error occurs.
12958    pub fn send_no_shutdown_on_err(
12959        self,
12960        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12961    ) -> Result<(), fidl::Error> {
12962        let _result = self.send_raw(result);
12963        self.drop_without_shutdown();
12964        _result
12965    }
12966
12967    fn send_raw(
12968        &self,
12969        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12970    ) -> Result<(), fidl::Error> {
12971        self.control_handle.inner.send::<fidl::encoding::ResultType<
12972            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
12973            fidl_fuchsia_posix::Errno,
12974        >>(
12975            result.map(|value| (value,)),
12976            self.tx_id,
12977            0x341e06689885b4c0,
12978            fidl::encoding::DynamicFlags::empty(),
12979        )
12980    }
12981}
12982
12983#[must_use = "FIDL methods require a response to be sent"]
12984#[derive(Debug)]
12985pub struct BaseDatagramSocketSetIpv6MulticastHopsResponder {
12986    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12987    tx_id: u32,
12988}
12989
12990/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12991/// if the responder is dropped without sending a response, so that the client
12992/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12993impl std::ops::Drop for BaseDatagramSocketSetIpv6MulticastHopsResponder {
12994    fn drop(&mut self) {
12995        self.control_handle.shutdown();
12996        // Safety: drops once, never accessed again
12997        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12998    }
12999}
13000
13001impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6MulticastHopsResponder {
13002    type ControlHandle = BaseDatagramSocketControlHandle;
13003
13004    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13005        &self.control_handle
13006    }
13007
13008    fn drop_without_shutdown(mut self) {
13009        // Safety: drops once, never accessed again due to mem::forget
13010        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13011        // Prevent Drop from running (which would shut down the channel)
13012        std::mem::forget(self);
13013    }
13014}
13015
13016impl BaseDatagramSocketSetIpv6MulticastHopsResponder {
13017    /// Sends a response to the FIDL transaction.
13018    ///
13019    /// Sets the channel to shutdown if an error occurs.
13020    pub fn send(
13021        self,
13022        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13023    ) -> Result<(), fidl::Error> {
13024        let _result = self.send_raw(result);
13025        if _result.is_err() {
13026            self.control_handle.shutdown();
13027        }
13028        self.drop_without_shutdown();
13029        _result
13030    }
13031
13032    /// Similar to "send" but does not shutdown the channel if an error occurs.
13033    pub fn send_no_shutdown_on_err(
13034        self,
13035        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13036    ) -> Result<(), fidl::Error> {
13037        let _result = self.send_raw(result);
13038        self.drop_without_shutdown();
13039        _result
13040    }
13041
13042    fn send_raw(
13043        &self,
13044        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13045    ) -> Result<(), fidl::Error> {
13046        self.control_handle.inner.send::<fidl::encoding::ResultType<
13047            fidl::encoding::EmptyStruct,
13048            fidl_fuchsia_posix::Errno,
13049        >>(
13050            result,
13051            self.tx_id,
13052            0x25b9cd4d181f82c1,
13053            fidl::encoding::DynamicFlags::empty(),
13054        )
13055    }
13056}
13057
13058#[must_use = "FIDL methods require a response to be sent"]
13059#[derive(Debug)]
13060pub struct BaseDatagramSocketGetIpv6MulticastHopsResponder {
13061    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13062    tx_id: u32,
13063}
13064
13065/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13066/// if the responder is dropped without sending a response, so that the client
13067/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13068impl std::ops::Drop for BaseDatagramSocketGetIpv6MulticastHopsResponder {
13069    fn drop(&mut self) {
13070        self.control_handle.shutdown();
13071        // Safety: drops once, never accessed again
13072        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13073    }
13074}
13075
13076impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6MulticastHopsResponder {
13077    type ControlHandle = BaseDatagramSocketControlHandle;
13078
13079    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13080        &self.control_handle
13081    }
13082
13083    fn drop_without_shutdown(mut self) {
13084        // Safety: drops once, never accessed again due to mem::forget
13085        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13086        // Prevent Drop from running (which would shut down the channel)
13087        std::mem::forget(self);
13088    }
13089}
13090
13091impl BaseDatagramSocketGetIpv6MulticastHopsResponder {
13092    /// Sends a response to the FIDL transaction.
13093    ///
13094    /// Sets the channel to shutdown if an error occurs.
13095    pub fn send(
13096        self,
13097        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13098    ) -> Result<(), fidl::Error> {
13099        let _result = self.send_raw(result);
13100        if _result.is_err() {
13101            self.control_handle.shutdown();
13102        }
13103        self.drop_without_shutdown();
13104        _result
13105    }
13106
13107    /// Similar to "send" but does not shutdown the channel if an error occurs.
13108    pub fn send_no_shutdown_on_err(
13109        self,
13110        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13111    ) -> Result<(), fidl::Error> {
13112        let _result = self.send_raw(result);
13113        self.drop_without_shutdown();
13114        _result
13115    }
13116
13117    fn send_raw(
13118        &self,
13119        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13120    ) -> Result<(), fidl::Error> {
13121        self.control_handle.inner.send::<fidl::encoding::ResultType<
13122            BaseNetworkSocketGetIpv6MulticastHopsResponse,
13123            fidl_fuchsia_posix::Errno,
13124        >>(
13125            result.map(|value| (value,)),
13126            self.tx_id,
13127            0x52916948a365012a,
13128            fidl::encoding::DynamicFlags::empty(),
13129        )
13130    }
13131}
13132
13133#[must_use = "FIDL methods require a response to be sent"]
13134#[derive(Debug)]
13135pub struct BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13136    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13137    tx_id: u32,
13138}
13139
13140/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13141/// if the responder is dropped without sending a response, so that the client
13142/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13143impl std::ops::Drop for BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13144    fn drop(&mut self) {
13145        self.control_handle.shutdown();
13146        // Safety: drops once, never accessed again
13147        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13148    }
13149}
13150
13151impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13152    type ControlHandle = BaseDatagramSocketControlHandle;
13153
13154    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13155        &self.control_handle
13156    }
13157
13158    fn drop_without_shutdown(mut self) {
13159        // Safety: drops once, never accessed again due to mem::forget
13160        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13161        // Prevent Drop from running (which would shut down the channel)
13162        std::mem::forget(self);
13163    }
13164}
13165
13166impl BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13167    /// Sends a response to the FIDL transaction.
13168    ///
13169    /// Sets the channel to shutdown if an error occurs.
13170    pub fn send(
13171        self,
13172        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13173    ) -> Result<(), fidl::Error> {
13174        let _result = self.send_raw(result);
13175        if _result.is_err() {
13176            self.control_handle.shutdown();
13177        }
13178        self.drop_without_shutdown();
13179        _result
13180    }
13181
13182    /// Similar to "send" but does not shutdown the channel if an error occurs.
13183    pub fn send_no_shutdown_on_err(
13184        self,
13185        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13186    ) -> Result<(), fidl::Error> {
13187        let _result = self.send_raw(result);
13188        self.drop_without_shutdown();
13189        _result
13190    }
13191
13192    fn send_raw(
13193        &self,
13194        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13195    ) -> Result<(), fidl::Error> {
13196        self.control_handle.inner.send::<fidl::encoding::ResultType<
13197            fidl::encoding::EmptyStruct,
13198            fidl_fuchsia_posix::Errno,
13199        >>(
13200            result,
13201            self.tx_id,
13202            0x55701c409ff41b40,
13203            fidl::encoding::DynamicFlags::empty(),
13204        )
13205    }
13206}
13207
13208#[must_use = "FIDL methods require a response to be sent"]
13209#[derive(Debug)]
13210pub struct BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13211    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13212    tx_id: u32,
13213}
13214
13215/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13216/// if the responder is dropped without sending a response, so that the client
13217/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13218impl std::ops::Drop for BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13219    fn drop(&mut self) {
13220        self.control_handle.shutdown();
13221        // Safety: drops once, never accessed again
13222        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13223    }
13224}
13225
13226impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13227    type ControlHandle = BaseDatagramSocketControlHandle;
13228
13229    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13230        &self.control_handle
13231    }
13232
13233    fn drop_without_shutdown(mut self) {
13234        // Safety: drops once, never accessed again due to mem::forget
13235        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13236        // Prevent Drop from running (which would shut down the channel)
13237        std::mem::forget(self);
13238    }
13239}
13240
13241impl BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13242    /// Sends a response to the FIDL transaction.
13243    ///
13244    /// Sets the channel to shutdown if an error occurs.
13245    pub fn send(
13246        self,
13247        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13248    ) -> Result<(), fidl::Error> {
13249        let _result = self.send_raw(result);
13250        if _result.is_err() {
13251            self.control_handle.shutdown();
13252        }
13253        self.drop_without_shutdown();
13254        _result
13255    }
13256
13257    /// Similar to "send" but does not shutdown the channel if an error occurs.
13258    pub fn send_no_shutdown_on_err(
13259        self,
13260        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13261    ) -> Result<(), fidl::Error> {
13262        let _result = self.send_raw(result);
13263        self.drop_without_shutdown();
13264        _result
13265    }
13266
13267    fn send_raw(
13268        &self,
13269        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13270    ) -> Result<(), fidl::Error> {
13271        self.control_handle.inner.send::<fidl::encoding::ResultType<
13272            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
13273            fidl_fuchsia_posix::Errno,
13274        >>(
13275            result.map(|value| (value,)),
13276            self.tx_id,
13277            0x4415b701fde319c3,
13278            fidl::encoding::DynamicFlags::empty(),
13279        )
13280    }
13281}
13282
13283#[must_use = "FIDL methods require a response to be sent"]
13284#[derive(Debug)]
13285pub struct BaseDatagramSocketSetIpv6OnlyResponder {
13286    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13287    tx_id: u32,
13288}
13289
13290/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13291/// if the responder is dropped without sending a response, so that the client
13292/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13293impl std::ops::Drop for BaseDatagramSocketSetIpv6OnlyResponder {
13294    fn drop(&mut self) {
13295        self.control_handle.shutdown();
13296        // Safety: drops once, never accessed again
13297        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13298    }
13299}
13300
13301impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6OnlyResponder {
13302    type ControlHandle = BaseDatagramSocketControlHandle;
13303
13304    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13305        &self.control_handle
13306    }
13307
13308    fn drop_without_shutdown(mut self) {
13309        // Safety: drops once, never accessed again due to mem::forget
13310        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13311        // Prevent Drop from running (which would shut down the channel)
13312        std::mem::forget(self);
13313    }
13314}
13315
13316impl BaseDatagramSocketSetIpv6OnlyResponder {
13317    /// Sends a response to the FIDL transaction.
13318    ///
13319    /// Sets the channel to shutdown if an error occurs.
13320    pub fn send(
13321        self,
13322        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13323    ) -> Result<(), fidl::Error> {
13324        let _result = self.send_raw(result);
13325        if _result.is_err() {
13326            self.control_handle.shutdown();
13327        }
13328        self.drop_without_shutdown();
13329        _result
13330    }
13331
13332    /// Similar to "send" but does not shutdown the channel if an error occurs.
13333    pub fn send_no_shutdown_on_err(
13334        self,
13335        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13336    ) -> Result<(), fidl::Error> {
13337        let _result = self.send_raw(result);
13338        self.drop_without_shutdown();
13339        _result
13340    }
13341
13342    fn send_raw(
13343        &self,
13344        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13345    ) -> Result<(), fidl::Error> {
13346        self.control_handle.inner.send::<fidl::encoding::ResultType<
13347            fidl::encoding::EmptyStruct,
13348            fidl_fuchsia_posix::Errno,
13349        >>(
13350            result,
13351            self.tx_id,
13352            0x4873f1364758cbba,
13353            fidl::encoding::DynamicFlags::empty(),
13354        )
13355    }
13356}
13357
13358#[must_use = "FIDL methods require a response to be sent"]
13359#[derive(Debug)]
13360pub struct BaseDatagramSocketGetIpv6OnlyResponder {
13361    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13362    tx_id: u32,
13363}
13364
13365/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13366/// if the responder is dropped without sending a response, so that the client
13367/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13368impl std::ops::Drop for BaseDatagramSocketGetIpv6OnlyResponder {
13369    fn drop(&mut self) {
13370        self.control_handle.shutdown();
13371        // Safety: drops once, never accessed again
13372        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13373    }
13374}
13375
13376impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6OnlyResponder {
13377    type ControlHandle = BaseDatagramSocketControlHandle;
13378
13379    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13380        &self.control_handle
13381    }
13382
13383    fn drop_without_shutdown(mut self) {
13384        // Safety: drops once, never accessed again due to mem::forget
13385        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13386        // Prevent Drop from running (which would shut down the channel)
13387        std::mem::forget(self);
13388    }
13389}
13390
13391impl BaseDatagramSocketGetIpv6OnlyResponder {
13392    /// Sends a response to the FIDL transaction.
13393    ///
13394    /// Sets the channel to shutdown if an error occurs.
13395    pub fn send(
13396        self,
13397        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13398    ) -> Result<(), fidl::Error> {
13399        let _result = self.send_raw(result);
13400        if _result.is_err() {
13401            self.control_handle.shutdown();
13402        }
13403        self.drop_without_shutdown();
13404        _result
13405    }
13406
13407    /// Similar to "send" but does not shutdown the channel if an error occurs.
13408    pub fn send_no_shutdown_on_err(
13409        self,
13410        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13411    ) -> Result<(), fidl::Error> {
13412        let _result = self.send_raw(result);
13413        self.drop_without_shutdown();
13414        _result
13415    }
13416
13417    fn send_raw(
13418        &self,
13419        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13420    ) -> Result<(), fidl::Error> {
13421        self.control_handle.inner.send::<fidl::encoding::ResultType<
13422            BaseNetworkSocketGetIpv6OnlyResponse,
13423            fidl_fuchsia_posix::Errno,
13424        >>(
13425            result.map(|value| (value,)),
13426            self.tx_id,
13427            0x4aa3340a1a26b89c,
13428            fidl::encoding::DynamicFlags::empty(),
13429        )
13430    }
13431}
13432
13433#[must_use = "FIDL methods require a response to be sent"]
13434#[derive(Debug)]
13435pub struct BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13436    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13437    tx_id: u32,
13438}
13439
13440/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13441/// if the responder is dropped without sending a response, so that the client
13442/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13443impl std::ops::Drop for BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13444    fn drop(&mut self) {
13445        self.control_handle.shutdown();
13446        // Safety: drops once, never accessed again
13447        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13448    }
13449}
13450
13451impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13452    type ControlHandle = BaseDatagramSocketControlHandle;
13453
13454    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13455        &self.control_handle
13456    }
13457
13458    fn drop_without_shutdown(mut self) {
13459        // Safety: drops once, never accessed again due to mem::forget
13460        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13461        // Prevent Drop from running (which would shut down the channel)
13462        std::mem::forget(self);
13463    }
13464}
13465
13466impl BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13467    /// Sends a response to the FIDL transaction.
13468    ///
13469    /// Sets the channel to shutdown if an error occurs.
13470    pub fn send(
13471        self,
13472        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13473    ) -> Result<(), fidl::Error> {
13474        let _result = self.send_raw(result);
13475        if _result.is_err() {
13476            self.control_handle.shutdown();
13477        }
13478        self.drop_without_shutdown();
13479        _result
13480    }
13481
13482    /// Similar to "send" but does not shutdown the channel if an error occurs.
13483    pub fn send_no_shutdown_on_err(
13484        self,
13485        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13486    ) -> Result<(), fidl::Error> {
13487        let _result = self.send_raw(result);
13488        self.drop_without_shutdown();
13489        _result
13490    }
13491
13492    fn send_raw(
13493        &self,
13494        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13495    ) -> Result<(), fidl::Error> {
13496        self.control_handle.inner.send::<fidl::encoding::ResultType<
13497            fidl::encoding::EmptyStruct,
13498            fidl_fuchsia_posix::Errno,
13499        >>(
13500            result,
13501            self.tx_id,
13502            0x58f07c8788d099a0,
13503            fidl::encoding::DynamicFlags::empty(),
13504        )
13505    }
13506}
13507
13508#[must_use = "FIDL methods require a response to be sent"]
13509#[derive(Debug)]
13510pub struct BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13511    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13512    tx_id: u32,
13513}
13514
13515/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13516/// if the responder is dropped without sending a response, so that the client
13517/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13518impl std::ops::Drop for BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13519    fn drop(&mut self) {
13520        self.control_handle.shutdown();
13521        // Safety: drops once, never accessed again
13522        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13523    }
13524}
13525
13526impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13527    type ControlHandle = BaseDatagramSocketControlHandle;
13528
13529    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13530        &self.control_handle
13531    }
13532
13533    fn drop_without_shutdown(mut self) {
13534        // Safety: drops once, never accessed again due to mem::forget
13535        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13536        // Prevent Drop from running (which would shut down the channel)
13537        std::mem::forget(self);
13538    }
13539}
13540
13541impl BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13542    /// Sends a response to the FIDL transaction.
13543    ///
13544    /// Sets the channel to shutdown if an error occurs.
13545    pub fn send(
13546        self,
13547        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13548    ) -> Result<(), fidl::Error> {
13549        let _result = self.send_raw(result);
13550        if _result.is_err() {
13551            self.control_handle.shutdown();
13552        }
13553        self.drop_without_shutdown();
13554        _result
13555    }
13556
13557    /// Similar to "send" but does not shutdown the channel if an error occurs.
13558    pub fn send_no_shutdown_on_err(
13559        self,
13560        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13561    ) -> Result<(), fidl::Error> {
13562        let _result = self.send_raw(result);
13563        self.drop_without_shutdown();
13564        _result
13565    }
13566
13567    fn send_raw(
13568        &self,
13569        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13570    ) -> Result<(), fidl::Error> {
13571        self.control_handle.inner.send::<fidl::encoding::ResultType<
13572            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
13573            fidl_fuchsia_posix::Errno,
13574        >>(
13575            result.map(|value| (value,)),
13576            self.tx_id,
13577            0x2e334df1da553ffa,
13578            fidl::encoding::DynamicFlags::empty(),
13579        )
13580    }
13581}
13582
13583#[must_use = "FIDL methods require a response to be sent"]
13584#[derive(Debug)]
13585pub struct BaseDatagramSocketSetIpv6TrafficClassResponder {
13586    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13587    tx_id: u32,
13588}
13589
13590/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13591/// if the responder is dropped without sending a response, so that the client
13592/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13593impl std::ops::Drop for BaseDatagramSocketSetIpv6TrafficClassResponder {
13594    fn drop(&mut self) {
13595        self.control_handle.shutdown();
13596        // Safety: drops once, never accessed again
13597        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13598    }
13599}
13600
13601impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6TrafficClassResponder {
13602    type ControlHandle = BaseDatagramSocketControlHandle;
13603
13604    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13605        &self.control_handle
13606    }
13607
13608    fn drop_without_shutdown(mut self) {
13609        // Safety: drops once, never accessed again due to mem::forget
13610        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13611        // Prevent Drop from running (which would shut down the channel)
13612        std::mem::forget(self);
13613    }
13614}
13615
13616impl BaseDatagramSocketSetIpv6TrafficClassResponder {
13617    /// Sends a response to the FIDL transaction.
13618    ///
13619    /// Sets the channel to shutdown if an error occurs.
13620    pub fn send(
13621        self,
13622        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13623    ) -> Result<(), fidl::Error> {
13624        let _result = self.send_raw(result);
13625        if _result.is_err() {
13626            self.control_handle.shutdown();
13627        }
13628        self.drop_without_shutdown();
13629        _result
13630    }
13631
13632    /// Similar to "send" but does not shutdown the channel if an error occurs.
13633    pub fn send_no_shutdown_on_err(
13634        self,
13635        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13636    ) -> Result<(), fidl::Error> {
13637        let _result = self.send_raw(result);
13638        self.drop_without_shutdown();
13639        _result
13640    }
13641
13642    fn send_raw(
13643        &self,
13644        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13645    ) -> Result<(), fidl::Error> {
13646        self.control_handle.inner.send::<fidl::encoding::ResultType<
13647            fidl::encoding::EmptyStruct,
13648            fidl_fuchsia_posix::Errno,
13649        >>(
13650            result,
13651            self.tx_id,
13652            0x6af077800c5a0b4f,
13653            fidl::encoding::DynamicFlags::empty(),
13654        )
13655    }
13656}
13657
13658#[must_use = "FIDL methods require a response to be sent"]
13659#[derive(Debug)]
13660pub struct BaseDatagramSocketGetIpv6TrafficClassResponder {
13661    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13662    tx_id: u32,
13663}
13664
13665/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13666/// if the responder is dropped without sending a response, so that the client
13667/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13668impl std::ops::Drop for BaseDatagramSocketGetIpv6TrafficClassResponder {
13669    fn drop(&mut self) {
13670        self.control_handle.shutdown();
13671        // Safety: drops once, never accessed again
13672        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13673    }
13674}
13675
13676impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6TrafficClassResponder {
13677    type ControlHandle = BaseDatagramSocketControlHandle;
13678
13679    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13680        &self.control_handle
13681    }
13682
13683    fn drop_without_shutdown(mut self) {
13684        // Safety: drops once, never accessed again due to mem::forget
13685        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13686        // Prevent Drop from running (which would shut down the channel)
13687        std::mem::forget(self);
13688    }
13689}
13690
13691impl BaseDatagramSocketGetIpv6TrafficClassResponder {
13692    /// Sends a response to the FIDL transaction.
13693    ///
13694    /// Sets the channel to shutdown if an error occurs.
13695    pub fn send(
13696        self,
13697        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13698    ) -> Result<(), fidl::Error> {
13699        let _result = self.send_raw(result);
13700        if _result.is_err() {
13701            self.control_handle.shutdown();
13702        }
13703        self.drop_without_shutdown();
13704        _result
13705    }
13706
13707    /// Similar to "send" but does not shutdown the channel if an error occurs.
13708    pub fn send_no_shutdown_on_err(
13709        self,
13710        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13711    ) -> Result<(), fidl::Error> {
13712        let _result = self.send_raw(result);
13713        self.drop_without_shutdown();
13714        _result
13715    }
13716
13717    fn send_raw(
13718        &self,
13719        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13720    ) -> Result<(), fidl::Error> {
13721        self.control_handle.inner.send::<fidl::encoding::ResultType<
13722            BaseNetworkSocketGetIpv6TrafficClassResponse,
13723            fidl_fuchsia_posix::Errno,
13724        >>(
13725            result.map(|value| (value,)),
13726            self.tx_id,
13727            0x6baf6eed8fc2f04,
13728            fidl::encoding::DynamicFlags::empty(),
13729        )
13730    }
13731}
13732
13733#[must_use = "FIDL methods require a response to be sent"]
13734#[derive(Debug)]
13735pub struct BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
13736    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13737    tx_id: u32,
13738}
13739
13740/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13741/// if the responder is dropped without sending a response, so that the client
13742/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13743impl std::ops::Drop for BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
13744    fn drop(&mut self) {
13745        self.control_handle.shutdown();
13746        // Safety: drops once, never accessed again
13747        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13748    }
13749}
13750
13751impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
13752    type ControlHandle = BaseDatagramSocketControlHandle;
13753
13754    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13755        &self.control_handle
13756    }
13757
13758    fn drop_without_shutdown(mut self) {
13759        // Safety: drops once, never accessed again due to mem::forget
13760        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13761        // Prevent Drop from running (which would shut down the channel)
13762        std::mem::forget(self);
13763    }
13764}
13765
13766impl BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
13767    /// Sends a response to the FIDL transaction.
13768    ///
13769    /// Sets the channel to shutdown if an error occurs.
13770    pub fn send(
13771        self,
13772        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13773    ) -> Result<(), fidl::Error> {
13774        let _result = self.send_raw(result);
13775        if _result.is_err() {
13776            self.control_handle.shutdown();
13777        }
13778        self.drop_without_shutdown();
13779        _result
13780    }
13781
13782    /// Similar to "send" but does not shutdown the channel if an error occurs.
13783    pub fn send_no_shutdown_on_err(
13784        self,
13785        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13786    ) -> Result<(), fidl::Error> {
13787        let _result = self.send_raw(result);
13788        self.drop_without_shutdown();
13789        _result
13790    }
13791
13792    fn send_raw(
13793        &self,
13794        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13795    ) -> Result<(), fidl::Error> {
13796        self.control_handle.inner.send::<fidl::encoding::ResultType<
13797            fidl::encoding::EmptyStruct,
13798            fidl_fuchsia_posix::Errno,
13799        >>(
13800            result,
13801            self.tx_id,
13802            0x19259775b1a92768,
13803            fidl::encoding::DynamicFlags::empty(),
13804        )
13805    }
13806}
13807
13808#[must_use = "FIDL methods require a response to be sent"]
13809#[derive(Debug)]
13810pub struct BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
13811    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13812    tx_id: u32,
13813}
13814
13815/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13816/// if the responder is dropped without sending a response, so that the client
13817/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13818impl std::ops::Drop for BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
13819    fn drop(&mut self) {
13820        self.control_handle.shutdown();
13821        // Safety: drops once, never accessed again
13822        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13823    }
13824}
13825
13826impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
13827    type ControlHandle = BaseDatagramSocketControlHandle;
13828
13829    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13830        &self.control_handle
13831    }
13832
13833    fn drop_without_shutdown(mut self) {
13834        // Safety: drops once, never accessed again due to mem::forget
13835        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13836        // Prevent Drop from running (which would shut down the channel)
13837        std::mem::forget(self);
13838    }
13839}
13840
13841impl BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
13842    /// Sends a response to the FIDL transaction.
13843    ///
13844    /// Sets the channel to shutdown if an error occurs.
13845    pub fn send(
13846        self,
13847        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13848    ) -> Result<(), fidl::Error> {
13849        let _result = self.send_raw(result);
13850        if _result.is_err() {
13851            self.control_handle.shutdown();
13852        }
13853        self.drop_without_shutdown();
13854        _result
13855    }
13856
13857    /// Similar to "send" but does not shutdown the channel if an error occurs.
13858    pub fn send_no_shutdown_on_err(
13859        self,
13860        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13861    ) -> Result<(), fidl::Error> {
13862        let _result = self.send_raw(result);
13863        self.drop_without_shutdown();
13864        _result
13865    }
13866
13867    fn send_raw(
13868        &self,
13869        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13870    ) -> Result<(), fidl::Error> {
13871        self.control_handle.inner.send::<fidl::encoding::ResultType<
13872            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
13873            fidl_fuchsia_posix::Errno,
13874        >>(
13875            result.map(|value| (value,)),
13876            self.tx_id,
13877            0x7acd4a2775baec75,
13878            fidl::encoding::DynamicFlags::empty(),
13879        )
13880    }
13881}
13882
13883#[must_use = "FIDL methods require a response to be sent"]
13884#[derive(Debug)]
13885pub struct BaseDatagramSocketGetOriginalDestinationResponder {
13886    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13887    tx_id: u32,
13888}
13889
13890/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13891/// if the responder is dropped without sending a response, so that the client
13892/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13893impl std::ops::Drop for BaseDatagramSocketGetOriginalDestinationResponder {
13894    fn drop(&mut self) {
13895        self.control_handle.shutdown();
13896        // Safety: drops once, never accessed again
13897        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13898    }
13899}
13900
13901impl fidl::endpoints::Responder for BaseDatagramSocketGetOriginalDestinationResponder {
13902    type ControlHandle = BaseDatagramSocketControlHandle;
13903
13904    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13905        &self.control_handle
13906    }
13907
13908    fn drop_without_shutdown(mut self) {
13909        // Safety: drops once, never accessed again due to mem::forget
13910        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13911        // Prevent Drop from running (which would shut down the channel)
13912        std::mem::forget(self);
13913    }
13914}
13915
13916impl BaseDatagramSocketGetOriginalDestinationResponder {
13917    /// Sends a response to the FIDL transaction.
13918    ///
13919    /// Sets the channel to shutdown if an error occurs.
13920    pub fn send(
13921        self,
13922        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
13923    ) -> Result<(), fidl::Error> {
13924        let _result = self.send_raw(result);
13925        if _result.is_err() {
13926            self.control_handle.shutdown();
13927        }
13928        self.drop_without_shutdown();
13929        _result
13930    }
13931
13932    /// Similar to "send" but does not shutdown the channel if an error occurs.
13933    pub fn send_no_shutdown_on_err(
13934        self,
13935        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
13936    ) -> Result<(), fidl::Error> {
13937        let _result = self.send_raw(result);
13938        self.drop_without_shutdown();
13939        _result
13940    }
13941
13942    fn send_raw(
13943        &self,
13944        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
13945    ) -> Result<(), fidl::Error> {
13946        self.control_handle.inner.send::<fidl::encoding::ResultType<
13947            BaseNetworkSocketGetOriginalDestinationResponse,
13948            fidl_fuchsia_posix::Errno,
13949        >>(
13950            result.map(|value| (value,)),
13951            self.tx_id,
13952            0x38bf28f0dafdbac0,
13953            fidl::encoding::DynamicFlags::empty(),
13954        )
13955    }
13956}
13957
13958#[must_use = "FIDL methods require a response to be sent"]
13959#[derive(Debug)]
13960pub struct BaseDatagramSocketGetInfoResponder {
13961    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13962    tx_id: u32,
13963}
13964
13965/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13966/// if the responder is dropped without sending a response, so that the client
13967/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13968impl std::ops::Drop for BaseDatagramSocketGetInfoResponder {
13969    fn drop(&mut self) {
13970        self.control_handle.shutdown();
13971        // Safety: drops once, never accessed again
13972        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13973    }
13974}
13975
13976impl fidl::endpoints::Responder for BaseDatagramSocketGetInfoResponder {
13977    type ControlHandle = BaseDatagramSocketControlHandle;
13978
13979    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13980        &self.control_handle
13981    }
13982
13983    fn drop_without_shutdown(mut self) {
13984        // Safety: drops once, never accessed again due to mem::forget
13985        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13986        // Prevent Drop from running (which would shut down the channel)
13987        std::mem::forget(self);
13988    }
13989}
13990
13991impl BaseDatagramSocketGetInfoResponder {
13992    /// Sends a response to the FIDL transaction.
13993    ///
13994    /// Sets the channel to shutdown if an error occurs.
13995    pub fn send(
13996        self,
13997        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
13998    ) -> Result<(), fidl::Error> {
13999        let _result = self.send_raw(result);
14000        if _result.is_err() {
14001            self.control_handle.shutdown();
14002        }
14003        self.drop_without_shutdown();
14004        _result
14005    }
14006
14007    /// Similar to "send" but does not shutdown the channel if an error occurs.
14008    pub fn send_no_shutdown_on_err(
14009        self,
14010        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
14011    ) -> Result<(), fidl::Error> {
14012        let _result = self.send_raw(result);
14013        self.drop_without_shutdown();
14014        _result
14015    }
14016
14017    fn send_raw(
14018        &self,
14019        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
14020    ) -> Result<(), fidl::Error> {
14021        self.control_handle.inner.send::<fidl::encoding::ResultType<
14022            BaseDatagramSocketGetInfoResponse,
14023            fidl_fuchsia_posix::Errno,
14024        >>(
14025            result,
14026            self.tx_id,
14027            0x48aa0a1f6a32d2ed,
14028            fidl::encoding::DynamicFlags::empty(),
14029        )
14030    }
14031}
14032
14033#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
14034pub struct BaseNetworkSocketMarker;
14035
14036impl fidl::endpoints::ProtocolMarker for BaseNetworkSocketMarker {
14037    type Proxy = BaseNetworkSocketProxy;
14038    type RequestStream = BaseNetworkSocketRequestStream;
14039    #[cfg(target_os = "fuchsia")]
14040    type SynchronousProxy = BaseNetworkSocketSynchronousProxy;
14041
14042    const DEBUG_NAME: &'static str = "(anonymous) BaseNetworkSocket";
14043}
14044pub type BaseNetworkSocketBindResult = Result<(), fidl_fuchsia_posix::Errno>;
14045pub type BaseNetworkSocketConnectResult = Result<(), fidl_fuchsia_posix::Errno>;
14046pub type BaseNetworkSocketDisconnectResult = Result<(), fidl_fuchsia_posix::Errno>;
14047pub type BaseNetworkSocketGetSockNameResult =
14048    Result<fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>;
14049pub type BaseNetworkSocketGetPeerNameResult =
14050    Result<fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>;
14051pub type BaseNetworkSocketShutdownResult = Result<(), fidl_fuchsia_posix::Errno>;
14052pub type BaseNetworkSocketSetIpTypeOfServiceResult = Result<(), fidl_fuchsia_posix::Errno>;
14053pub type BaseNetworkSocketGetIpTypeOfServiceResult = Result<u8, fidl_fuchsia_posix::Errno>;
14054pub type BaseNetworkSocketSetIpTtlResult = Result<(), fidl_fuchsia_posix::Errno>;
14055pub type BaseNetworkSocketGetIpTtlResult = Result<u8, fidl_fuchsia_posix::Errno>;
14056pub type BaseNetworkSocketSetIpPacketInfoResult = Result<(), fidl_fuchsia_posix::Errno>;
14057pub type BaseNetworkSocketGetIpPacketInfoResult = Result<bool, fidl_fuchsia_posix::Errno>;
14058pub type BaseNetworkSocketSetIpReceiveTypeOfServiceResult = Result<(), fidl_fuchsia_posix::Errno>;
14059pub type BaseNetworkSocketGetIpReceiveTypeOfServiceResult = Result<bool, fidl_fuchsia_posix::Errno>;
14060pub type BaseNetworkSocketSetIpReceiveTtlResult = Result<(), fidl_fuchsia_posix::Errno>;
14061pub type BaseNetworkSocketGetIpReceiveTtlResult = Result<bool, fidl_fuchsia_posix::Errno>;
14062pub type BaseNetworkSocketSetIpMulticastInterfaceResult = Result<(), fidl_fuchsia_posix::Errno>;
14063pub type BaseNetworkSocketGetIpMulticastInterfaceResult =
14064    Result<fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>;
14065pub type BaseNetworkSocketSetIpMulticastTtlResult = Result<(), fidl_fuchsia_posix::Errno>;
14066pub type BaseNetworkSocketGetIpMulticastTtlResult = Result<u8, fidl_fuchsia_posix::Errno>;
14067pub type BaseNetworkSocketSetIpMulticastLoopbackResult = Result<(), fidl_fuchsia_posix::Errno>;
14068pub type BaseNetworkSocketGetIpMulticastLoopbackResult = Result<bool, fidl_fuchsia_posix::Errno>;
14069pub type BaseNetworkSocketAddIpMembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14070pub type BaseNetworkSocketDropIpMembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14071pub type BaseNetworkSocketSetIpTransparentResult = Result<(), fidl_fuchsia_posix::Errno>;
14072pub type BaseNetworkSocketGetIpTransparentResult = Result<bool, fidl_fuchsia_posix::Errno>;
14073pub type BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult =
14074    Result<(), fidl_fuchsia_posix::Errno>;
14075pub type BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult =
14076    Result<bool, fidl_fuchsia_posix::Errno>;
14077pub type BaseNetworkSocketAddIpv6MembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14078pub type BaseNetworkSocketDropIpv6MembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14079pub type BaseNetworkSocketSetIpv6MulticastInterfaceResult = Result<(), fidl_fuchsia_posix::Errno>;
14080pub type BaseNetworkSocketGetIpv6MulticastInterfaceResult = Result<u64, fidl_fuchsia_posix::Errno>;
14081pub type BaseNetworkSocketSetIpv6UnicastHopsResult = Result<(), fidl_fuchsia_posix::Errno>;
14082pub type BaseNetworkSocketGetIpv6UnicastHopsResult = Result<u8, fidl_fuchsia_posix::Errno>;
14083pub type BaseNetworkSocketSetIpv6ReceiveHopLimitResult = Result<(), fidl_fuchsia_posix::Errno>;
14084pub type BaseNetworkSocketGetIpv6ReceiveHopLimitResult = Result<bool, fidl_fuchsia_posix::Errno>;
14085pub type BaseNetworkSocketSetIpv6MulticastHopsResult = Result<(), fidl_fuchsia_posix::Errno>;
14086pub type BaseNetworkSocketGetIpv6MulticastHopsResult = Result<u8, fidl_fuchsia_posix::Errno>;
14087pub type BaseNetworkSocketSetIpv6MulticastLoopbackResult = Result<(), fidl_fuchsia_posix::Errno>;
14088pub type BaseNetworkSocketGetIpv6MulticastLoopbackResult = Result<bool, fidl_fuchsia_posix::Errno>;
14089pub type BaseNetworkSocketSetIpv6OnlyResult = Result<(), fidl_fuchsia_posix::Errno>;
14090pub type BaseNetworkSocketGetIpv6OnlyResult = Result<bool, fidl_fuchsia_posix::Errno>;
14091pub type BaseNetworkSocketSetIpv6ReceiveTrafficClassResult = Result<(), fidl_fuchsia_posix::Errno>;
14092pub type BaseNetworkSocketGetIpv6ReceiveTrafficClassResult =
14093    Result<bool, fidl_fuchsia_posix::Errno>;
14094pub type BaseNetworkSocketSetIpv6TrafficClassResult = Result<(), fidl_fuchsia_posix::Errno>;
14095pub type BaseNetworkSocketGetIpv6TrafficClassResult = Result<u8, fidl_fuchsia_posix::Errno>;
14096pub type BaseNetworkSocketSetIpv6ReceivePacketInfoResult = Result<(), fidl_fuchsia_posix::Errno>;
14097pub type BaseNetworkSocketGetIpv6ReceivePacketInfoResult = Result<bool, fidl_fuchsia_posix::Errno>;
14098pub type BaseNetworkSocketGetOriginalDestinationResult =
14099    Result<fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>;
14100
14101pub trait BaseNetworkSocketProxyInterface: Send + Sync {
14102    fn r#clone(
14103        &self,
14104        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
14105    ) -> Result<(), fidl::Error>;
14106    type CloseResponseFut: std::future::Future<
14107            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
14108        > + Send;
14109    fn r#close(&self) -> Self::CloseResponseFut;
14110    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
14111    fn r#query(&self) -> Self::QueryResponseFut;
14112    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
14113        + Send;
14114    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
14115    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
14116        + Send;
14117    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
14118    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
14119        + Send;
14120    fn r#get_error(&self) -> Self::GetErrorResponseFut;
14121    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
14122        + Send;
14123    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
14124    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
14125        + Send;
14126    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
14127    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
14128        + Send;
14129    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
14130    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
14131        + Send;
14132    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
14133    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
14134        + Send;
14135    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
14136    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
14137        + Send;
14138    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
14139    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
14140        + Send;
14141    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
14142    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
14143        + Send;
14144    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
14145    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
14146        + Send;
14147    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
14148    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
14149        + Send;
14150    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
14151    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
14152        + Send;
14153    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
14154    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
14155        + Send;
14156    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
14157    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
14158        + Send;
14159    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
14160    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
14161        + Send;
14162    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
14163    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
14164        + Send;
14165    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
14166    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
14167        + Send;
14168    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
14169    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
14170        + Send;
14171    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
14172    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
14173        + Send;
14174    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
14175    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
14176        + Send;
14177    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
14178    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
14179        + Send;
14180    fn r#set_bind_to_interface_index(&self, value: u64)
14181    -> Self::SetBindToInterfaceIndexResponseFut;
14182    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
14183        + Send;
14184    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
14185    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
14186        + Send;
14187    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
14188    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
14189        + Send;
14190    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
14191    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
14192        + Send;
14193    fn r#set_mark(
14194        &self,
14195        domain: fidl_fuchsia_net::MarkDomain,
14196        mark: &OptionalUint32,
14197    ) -> Self::SetMarkResponseFut;
14198    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
14199        + Send;
14200    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
14201    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
14202        + Send;
14203    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
14204    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
14205        + Send;
14206    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
14207    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
14208        + Send;
14209    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
14210    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
14211        + Send;
14212    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
14213    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
14214        + Send;
14215    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
14216    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
14217        + Send;
14218    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
14219    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
14220        + Send;
14221    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
14222    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
14223        + Send;
14224    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
14225    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
14226        + Send;
14227    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
14228    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
14229        + Send;
14230    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
14231    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
14232        + Send;
14233    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
14234    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
14235        + Send;
14236    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
14237    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
14238        + Send;
14239    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
14240    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
14241            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
14242        > + Send;
14243    fn r#set_ip_receive_type_of_service(
14244        &self,
14245        value: bool,
14246    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
14247    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
14248            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
14249        > + Send;
14250    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
14251    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
14252        + Send;
14253    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
14254    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
14255        + Send;
14256    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
14257    type SetIpMulticastInterfaceResponseFut: std::future::Future<
14258            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
14259        > + Send;
14260    fn r#set_ip_multicast_interface(
14261        &self,
14262        iface: u64,
14263        address: &fidl_fuchsia_net::Ipv4Address,
14264    ) -> Self::SetIpMulticastInterfaceResponseFut;
14265    type GetIpMulticastInterfaceResponseFut: std::future::Future<
14266            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
14267        > + Send;
14268    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
14269    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
14270        + Send;
14271    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
14272    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
14273        + Send;
14274    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
14275    type SetIpMulticastLoopbackResponseFut: std::future::Future<
14276            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
14277        > + Send;
14278    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
14279    type GetIpMulticastLoopbackResponseFut: std::future::Future<
14280            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
14281        > + Send;
14282    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
14283    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
14284        + Send;
14285    fn r#add_ip_membership(
14286        &self,
14287        membership: &IpMulticastMembership,
14288    ) -> Self::AddIpMembershipResponseFut;
14289    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
14290        + Send;
14291    fn r#drop_ip_membership(
14292        &self,
14293        membership: &IpMulticastMembership,
14294    ) -> Self::DropIpMembershipResponseFut;
14295    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
14296        + Send;
14297    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
14298    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
14299        + Send;
14300    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
14301    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
14302            Output = Result<
14303                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
14304                fidl::Error,
14305            >,
14306        > + Send;
14307    fn r#set_ip_receive_original_destination_address(
14308        &self,
14309        value: bool,
14310    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
14311    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
14312            Output = Result<
14313                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
14314                fidl::Error,
14315            >,
14316        > + Send;
14317    fn r#get_ip_receive_original_destination_address(
14318        &self,
14319    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
14320    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
14321        + Send;
14322    fn r#add_ipv6_membership(
14323        &self,
14324        membership: &Ipv6MulticastMembership,
14325    ) -> Self::AddIpv6MembershipResponseFut;
14326    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
14327        + Send;
14328    fn r#drop_ipv6_membership(
14329        &self,
14330        membership: &Ipv6MulticastMembership,
14331    ) -> Self::DropIpv6MembershipResponseFut;
14332    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
14333            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
14334        > + Send;
14335    fn r#set_ipv6_multicast_interface(
14336        &self,
14337        value: u64,
14338    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
14339    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
14340            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
14341        > + Send;
14342    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
14343    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
14344        + Send;
14345    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
14346    -> Self::SetIpv6UnicastHopsResponseFut;
14347    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
14348        + Send;
14349    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
14350    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
14351            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
14352        > + Send;
14353    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
14354    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
14355            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
14356        > + Send;
14357    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
14358    type SetIpv6MulticastHopsResponseFut: std::future::Future<
14359            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
14360        > + Send;
14361    fn r#set_ipv6_multicast_hops(
14362        &self,
14363        value: &OptionalUint8,
14364    ) -> Self::SetIpv6MulticastHopsResponseFut;
14365    type GetIpv6MulticastHopsResponseFut: std::future::Future<
14366            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
14367        > + Send;
14368    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
14369    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
14370            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
14371        > + Send;
14372    fn r#set_ipv6_multicast_loopback(
14373        &self,
14374        value: bool,
14375    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
14376    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
14377            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
14378        > + Send;
14379    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
14380    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
14381        + Send;
14382    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
14383    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
14384        + Send;
14385    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
14386    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
14387            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
14388        > + Send;
14389    fn r#set_ipv6_receive_traffic_class(
14390        &self,
14391        value: bool,
14392    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
14393    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
14394            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
14395        > + Send;
14396    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
14397    type SetIpv6TrafficClassResponseFut: std::future::Future<
14398            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
14399        > + Send;
14400    fn r#set_ipv6_traffic_class(
14401        &self,
14402        value: &OptionalUint8,
14403    ) -> Self::SetIpv6TrafficClassResponseFut;
14404    type GetIpv6TrafficClassResponseFut: std::future::Future<
14405            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
14406        > + Send;
14407    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
14408    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
14409            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
14410        > + Send;
14411    fn r#set_ipv6_receive_packet_info(
14412        &self,
14413        value: bool,
14414    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
14415    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
14416            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
14417        > + Send;
14418    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
14419    type GetOriginalDestinationResponseFut: std::future::Future<
14420            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
14421        > + Send;
14422    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
14423}
14424#[derive(Debug)]
14425#[cfg(target_os = "fuchsia")]
14426pub struct BaseNetworkSocketSynchronousProxy {
14427    client: fidl::client::sync::Client,
14428}
14429
14430#[cfg(target_os = "fuchsia")]
14431impl fidl::endpoints::SynchronousProxy for BaseNetworkSocketSynchronousProxy {
14432    type Proxy = BaseNetworkSocketProxy;
14433    type Protocol = BaseNetworkSocketMarker;
14434
14435    fn from_channel(inner: fidl::Channel) -> Self {
14436        Self::new(inner)
14437    }
14438
14439    fn into_channel(self) -> fidl::Channel {
14440        self.client.into_channel()
14441    }
14442
14443    fn as_channel(&self) -> &fidl::Channel {
14444        self.client.as_channel()
14445    }
14446}
14447
14448#[cfg(target_os = "fuchsia")]
14449impl BaseNetworkSocketSynchronousProxy {
14450    pub fn new(channel: fidl::Channel) -> Self {
14451        let protocol_name =
14452            <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
14453        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
14454    }
14455
14456    pub fn into_channel(self) -> fidl::Channel {
14457        self.client.into_channel()
14458    }
14459
14460    /// Waits until an event arrives and returns it. It is safe for other
14461    /// threads to make concurrent requests while waiting for an event.
14462    pub fn wait_for_event(
14463        &self,
14464        deadline: zx::MonotonicInstant,
14465    ) -> Result<BaseNetworkSocketEvent, fidl::Error> {
14466        BaseNetworkSocketEvent::decode(self.client.wait_for_event(deadline)?)
14467    }
14468
14469    pub fn r#clone(
14470        &self,
14471        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
14472    ) -> Result<(), fidl::Error> {
14473        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
14474            (request,),
14475            0x20d8a7aba2168a79,
14476            fidl::encoding::DynamicFlags::empty(),
14477        )
14478    }
14479
14480    /// Terminates the connection.
14481    ///
14482    /// After calling `Close`, the client must not send any other requests.
14483    ///
14484    /// Servers, after sending the status response, should close the connection
14485    /// regardless of status and without sending an epitaph.
14486    ///
14487    /// Closing the client end of the channel should be semantically equivalent
14488    /// to calling `Close` without knowing when the close has completed or its
14489    /// status.
14490    pub fn r#close(
14491        &self,
14492        ___deadline: zx::MonotonicInstant,
14493    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
14494        let _response = self.client.send_query::<
14495            fidl::encoding::EmptyPayload,
14496            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
14497        >(
14498            (),
14499            0x5ac5d459ad7f657e,
14500            fidl::encoding::DynamicFlags::empty(),
14501            ___deadline,
14502        )?;
14503        Ok(_response.map(|x| x))
14504    }
14505
14506    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
14507        let _response = self.client.send_query::<
14508            fidl::encoding::EmptyPayload,
14509            fidl_fuchsia_unknown::QueryableQueryResponse,
14510        >(
14511            (),
14512            0x2658edee9decfc06,
14513            fidl::encoding::DynamicFlags::empty(),
14514            ___deadline,
14515        )?;
14516        Ok(_response.protocol)
14517    }
14518
14519    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
14520    pub fn r#set_reuse_address(
14521        &self,
14522        mut value: bool,
14523        ___deadline: zx::MonotonicInstant,
14524    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
14525        let _response =
14526            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
14527                fidl::encoding::EmptyStruct,
14528                fidl_fuchsia_posix::Errno,
14529            >>(
14530                (value,),
14531                0x1fd74ee8b9a4a876,
14532                fidl::encoding::DynamicFlags::empty(),
14533                ___deadline,
14534            )?;
14535        Ok(_response.map(|x| x))
14536    }
14537
14538    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
14539    pub fn r#get_reuse_address(
14540        &self,
14541        ___deadline: zx::MonotonicInstant,
14542    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
14543        let _response = self
14544            .client
14545            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14546                BaseSocketGetReuseAddressResponse,
14547                fidl_fuchsia_posix::Errno,
14548            >>(
14549                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
14550            )?;
14551        Ok(_response.map(|x| x.value))
14552    }
14553
14554    /// Get `SOL_SOCKET` -> `SO_ERROR`.
14555    /// Returns the last error if there is an error set on the socket.
14556    pub fn r#get_error(
14557        &self,
14558        ___deadline: zx::MonotonicInstant,
14559    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
14560        let _response =
14561            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14562                fidl::encoding::EmptyStruct,
14563                fidl_fuchsia_posix::Errno,
14564            >>(
14565                (),
14566                0x5aad39b33e5f6ebb,
14567                fidl::encoding::DynamicFlags::empty(),
14568                ___deadline,
14569            )?;
14570        Ok(_response.map(|x| x))
14571    }
14572
14573    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
14574    pub fn r#set_broadcast(
14575        &self,
14576        mut value: bool,
14577        ___deadline: zx::MonotonicInstant,
14578    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
14579        let _response =
14580            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
14581                fidl::encoding::EmptyStruct,
14582                fidl_fuchsia_posix::Errno,
14583            >>(
14584                (value,),
14585                0x6023e081ce3cd947,
14586                fidl::encoding::DynamicFlags::empty(),
14587                ___deadline,
14588            )?;
14589        Ok(_response.map(|x| x))
14590    }
14591
14592    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
14593    pub fn r#get_broadcast(
14594        &self,
14595        ___deadline: zx::MonotonicInstant,
14596    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
14597        let _response =
14598            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14599                BaseSocketGetBroadcastResponse,
14600                fidl_fuchsia_posix::Errno,
14601            >>(
14602                (),
14603                0x68796fc556f9780d,
14604                fidl::encoding::DynamicFlags::empty(),
14605                ___deadline,
14606            )?;
14607        Ok(_response.map(|x| x.value))
14608    }
14609
14610    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
14611    pub fn r#set_send_buffer(
14612        &self,
14613        mut value_bytes: u64,
14614        ___deadline: zx::MonotonicInstant,
14615    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
14616        let _response =
14617            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
14618                fidl::encoding::EmptyStruct,
14619                fidl_fuchsia_posix::Errno,
14620            >>(
14621                (value_bytes,),
14622                0x756eac32d73a7a70,
14623                fidl::encoding::DynamicFlags::empty(),
14624                ___deadline,
14625            )?;
14626        Ok(_response.map(|x| x))
14627    }
14628
14629    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
14630    pub fn r#get_send_buffer(
14631        &self,
14632        ___deadline: zx::MonotonicInstant,
14633    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
14634        let _response = self
14635            .client
14636            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14637                BaseSocketGetSendBufferResponse,
14638                fidl_fuchsia_posix::Errno,
14639            >>(
14640                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
14641            )?;
14642        Ok(_response.map(|x| x.value_bytes))
14643    }
14644
14645    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
14646    pub fn r#set_receive_buffer(
14647        &self,
14648        mut value_bytes: u64,
14649        ___deadline: zx::MonotonicInstant,
14650    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
14651        let _response =
14652            self.client
14653                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
14654                    fidl::encoding::EmptyStruct,
14655                    fidl_fuchsia_posix::Errno,
14656                >>(
14657                    (value_bytes,),
14658                    0x6b0cf2f1919c7001,
14659                    fidl::encoding::DynamicFlags::empty(),
14660                    ___deadline,
14661                )?;
14662        Ok(_response.map(|x| x))
14663    }
14664
14665    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
14666    pub fn r#get_receive_buffer(
14667        &self,
14668        ___deadline: zx::MonotonicInstant,
14669    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
14670        let _response = self
14671            .client
14672            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14673                BaseSocketGetReceiveBufferResponse,
14674                fidl_fuchsia_posix::Errno,
14675            >>(
14676                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
14677            )?;
14678        Ok(_response.map(|x| x.value_bytes))
14679    }
14680
14681    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
14682    pub fn r#set_keep_alive(
14683        &self,
14684        mut value: bool,
14685        ___deadline: zx::MonotonicInstant,
14686    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
14687        let _response =
14688            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
14689                fidl::encoding::EmptyStruct,
14690                fidl_fuchsia_posix::Errno,
14691            >>(
14692                (value,),
14693                0x572df8f0b920d2c7,
14694                fidl::encoding::DynamicFlags::empty(),
14695                ___deadline,
14696            )?;
14697        Ok(_response.map(|x| x))
14698    }
14699
14700    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
14701    pub fn r#get_keep_alive(
14702        &self,
14703        ___deadline: zx::MonotonicInstant,
14704    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
14705        let _response =
14706            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14707                BaseSocketGetKeepAliveResponse,
14708                fidl_fuchsia_posix::Errno,
14709            >>(
14710                (),
14711                0x2dd29d3215f2c9d2,
14712                fidl::encoding::DynamicFlags::empty(),
14713                ___deadline,
14714            )?;
14715        Ok(_response.map(|x| x.value))
14716    }
14717
14718    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
14719    pub fn r#set_out_of_band_inline(
14720        &self,
14721        mut value: bool,
14722        ___deadline: zx::MonotonicInstant,
14723    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
14724        let _response =
14725            self.client
14726                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
14727                    fidl::encoding::EmptyStruct,
14728                    fidl_fuchsia_posix::Errno,
14729                >>(
14730                    (value,),
14731                    0x3ecb49968bee439,
14732                    fidl::encoding::DynamicFlags::empty(),
14733                    ___deadline,
14734                )?;
14735        Ok(_response.map(|x| x))
14736    }
14737
14738    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
14739    pub fn r#get_out_of_band_inline(
14740        &self,
14741        ___deadline: zx::MonotonicInstant,
14742    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
14743        let _response = self
14744            .client
14745            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14746                BaseSocketGetOutOfBandInlineResponse,
14747                fidl_fuchsia_posix::Errno,
14748            >>(
14749                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
14750            )?;
14751        Ok(_response.map(|x| x.value))
14752    }
14753
14754    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
14755    pub fn r#set_no_check(
14756        &self,
14757        mut value: bool,
14758        ___deadline: zx::MonotonicInstant,
14759    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
14760        let _response =
14761            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
14762                fidl::encoding::EmptyStruct,
14763                fidl_fuchsia_posix::Errno,
14764            >>(
14765                (value,),
14766                0x6bbf00c53a4c78c2,
14767                fidl::encoding::DynamicFlags::empty(),
14768                ___deadline,
14769            )?;
14770        Ok(_response.map(|x| x))
14771    }
14772
14773    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
14774    pub fn r#get_no_check(
14775        &self,
14776        ___deadline: zx::MonotonicInstant,
14777    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
14778        let _response =
14779            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14780                BaseSocketGetNoCheckResponse,
14781                fidl_fuchsia_posix::Errno,
14782            >>(
14783                (),
14784                0x2cd4249286417694,
14785                fidl::encoding::DynamicFlags::empty(),
14786                ___deadline,
14787            )?;
14788        Ok(_response.map(|x| x.value))
14789    }
14790
14791    /// Set `SOL_SOCKET` -> `SO_LINGER`.
14792    pub fn r#set_linger(
14793        &self,
14794        mut linger: bool,
14795        mut length_secs: u32,
14796        ___deadline: zx::MonotonicInstant,
14797    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
14798        let _response =
14799            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
14800                fidl::encoding::EmptyStruct,
14801                fidl_fuchsia_posix::Errno,
14802            >>(
14803                (linger, length_secs),
14804                0x45386351246e998e,
14805                fidl::encoding::DynamicFlags::empty(),
14806                ___deadline,
14807            )?;
14808        Ok(_response.map(|x| x))
14809    }
14810
14811    /// Get `SOL_SOCKET` -> `SO_LINGER`.
14812    pub fn r#get_linger(
14813        &self,
14814        ___deadline: zx::MonotonicInstant,
14815    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
14816        let _response =
14817            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14818                BaseSocketGetLingerResponse,
14819                fidl_fuchsia_posix::Errno,
14820            >>(
14821                (),
14822                0x48eb20fc5ccb0e45,
14823                fidl::encoding::DynamicFlags::empty(),
14824                ___deadline,
14825            )?;
14826        Ok(_response.map(|x| (x.linger, x.length_secs)))
14827    }
14828
14829    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
14830    pub fn r#set_reuse_port(
14831        &self,
14832        mut value: bool,
14833        ___deadline: zx::MonotonicInstant,
14834    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
14835        let _response =
14836            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
14837                fidl::encoding::EmptyStruct,
14838                fidl_fuchsia_posix::Errno,
14839            >>(
14840                (value,),
14841                0x24dd3e5cb36d9ccb,
14842                fidl::encoding::DynamicFlags::empty(),
14843                ___deadline,
14844            )?;
14845        Ok(_response.map(|x| x))
14846    }
14847
14848    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
14849    pub fn r#get_reuse_port(
14850        &self,
14851        ___deadline: zx::MonotonicInstant,
14852    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
14853        let _response =
14854            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14855                BaseSocketGetReusePortResponse,
14856                fidl_fuchsia_posix::Errno,
14857            >>(
14858                (),
14859                0x7a112c1ab54ff828,
14860                fidl::encoding::DynamicFlags::empty(),
14861                ___deadline,
14862            )?;
14863        Ok(_response.map(|x| x.value))
14864    }
14865
14866    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
14867    pub fn r#get_accept_conn(
14868        &self,
14869        ___deadline: zx::MonotonicInstant,
14870    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
14871        let _response = self
14872            .client
14873            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14874                BaseSocketGetAcceptConnResponse,
14875                fidl_fuchsia_posix::Errno,
14876            >>(
14877                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
14878            )?;
14879        Ok(_response.map(|x| x.value))
14880    }
14881
14882    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
14883    pub fn r#set_bind_to_device(
14884        &self,
14885        mut value: &str,
14886        ___deadline: zx::MonotonicInstant,
14887    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
14888        let _response =
14889            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
14890                fidl::encoding::EmptyStruct,
14891                fidl_fuchsia_posix::Errno,
14892            >>(
14893                (value,),
14894                0x2118b483f28aafc4,
14895                fidl::encoding::DynamicFlags::empty(),
14896                ___deadline,
14897            )?;
14898        Ok(_response.map(|x| x))
14899    }
14900
14901    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
14902    pub fn r#get_bind_to_device(
14903        &self,
14904        ___deadline: zx::MonotonicInstant,
14905    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
14906        let _response = self
14907            .client
14908            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14909                BaseSocketGetBindToDeviceResponse,
14910                fidl_fuchsia_posix::Errno,
14911            >>(
14912                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
14913            )?;
14914        Ok(_response.map(|x| x.value))
14915    }
14916
14917    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
14918    /// If `value` is 0, this clears the bound interface.
14919    pub fn r#set_bind_to_interface_index(
14920        &self,
14921        mut value: u64,
14922        ___deadline: zx::MonotonicInstant,
14923    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
14924        let _response =
14925            self.client
14926                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
14927                    fidl::encoding::EmptyStruct,
14928                    fidl_fuchsia_posix::Errno,
14929                >>(
14930                    (value,),
14931                    0x6e387a0def00821,
14932                    fidl::encoding::DynamicFlags::empty(),
14933                    ___deadline,
14934                )?;
14935        Ok(_response.map(|x| x))
14936    }
14937
14938    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
14939    pub fn r#get_bind_to_interface_index(
14940        &self,
14941        ___deadline: zx::MonotonicInstant,
14942    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
14943        let _response = self
14944            .client
14945            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14946                BaseSocketGetBindToInterfaceIndexResponse,
14947                fidl_fuchsia_posix::Errno,
14948            >>(
14949                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
14950            )?;
14951        Ok(_response.map(|x| x.value))
14952    }
14953
14954    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
14955    pub fn r#set_timestamp(
14956        &self,
14957        mut value: TimestampOption,
14958        ___deadline: zx::MonotonicInstant,
14959    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
14960        let _response =
14961            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
14962                fidl::encoding::EmptyStruct,
14963                fidl_fuchsia_posix::Errno,
14964            >>(
14965                (value,),
14966                0x285d6516c263d839,
14967                fidl::encoding::DynamicFlags::empty(),
14968                ___deadline,
14969            )?;
14970        Ok(_response.map(|x| x))
14971    }
14972
14973    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
14974    pub fn r#get_timestamp(
14975        &self,
14976        ___deadline: zx::MonotonicInstant,
14977    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
14978        let _response =
14979            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14980                BaseSocketGetTimestampResponse,
14981                fidl_fuchsia_posix::Errno,
14982            >>(
14983                (),
14984                0x49f2fffbbcc2bd27,
14985                fidl::encoding::DynamicFlags::empty(),
14986                ___deadline,
14987            )?;
14988        Ok(_response.map(|x| x.value))
14989    }
14990
14991    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
14992    /// unlike the standard SO_MARK, this API has multiple mark domains and each
14993    /// mark can be set independently in each domain.
14994    pub fn r#set_mark(
14995        &self,
14996        mut domain: fidl_fuchsia_net::MarkDomain,
14997        mut mark: &OptionalUint32,
14998        ___deadline: zx::MonotonicInstant,
14999    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
15000        let _response =
15001            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
15002                fidl::encoding::EmptyStruct,
15003                fidl_fuchsia_posix::Errno,
15004            >>(
15005                (domain, mark),
15006                0x6ead6de09f653236,
15007                fidl::encoding::DynamicFlags::empty(),
15008                ___deadline,
15009            )?;
15010        Ok(_response.map(|x| x))
15011    }
15012
15013    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
15014    /// unlike the standard SO_MARK, this API has multiple mark domains and each
15015    /// mark can be retrieved independently in each domain.
15016    pub fn r#get_mark(
15017        &self,
15018        mut domain: fidl_fuchsia_net::MarkDomain,
15019        ___deadline: zx::MonotonicInstant,
15020    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
15021        let _response =
15022            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
15023                BaseSocketGetMarkResponse,
15024                fidl_fuchsia_posix::Errno,
15025            >>(
15026                (domain,),
15027                0x57a2752c61d93d47,
15028                fidl::encoding::DynamicFlags::empty(),
15029                ___deadline,
15030            )?;
15031        Ok(_response.map(|x| x.mark))
15032    }
15033
15034    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
15035    pub fn r#get_cookie(
15036        &self,
15037        ___deadline: zx::MonotonicInstant,
15038    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
15039        let _response =
15040            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15041                BaseSocketGetCookieResponse,
15042                fidl_fuchsia_posix::Errno,
15043            >>(
15044                (),
15045                0x2c2f47fd8f924e52,
15046                fidl::encoding::DynamicFlags::empty(),
15047                ___deadline,
15048            )?;
15049        Ok(_response.map(|x| x.value))
15050    }
15051
15052    /// Sets the local address used for the socket.
15053    pub fn r#bind(
15054        &self,
15055        mut addr: &fidl_fuchsia_net::SocketAddress,
15056        ___deadline: zx::MonotonicInstant,
15057    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
15058        let _response =
15059            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
15060                fidl::encoding::EmptyStruct,
15061                fidl_fuchsia_posix::Errno,
15062            >>(
15063                (addr,),
15064                0x4bc6400ae92125d,
15065                fidl::encoding::DynamicFlags::empty(),
15066                ___deadline,
15067            )?;
15068        Ok(_response.map(|x| x))
15069    }
15070
15071    /// Initiates a connection to a remote address.
15072    pub fn r#connect(
15073        &self,
15074        mut addr: &fidl_fuchsia_net::SocketAddress,
15075        ___deadline: zx::MonotonicInstant,
15076    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
15077        let _response =
15078            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
15079                fidl::encoding::EmptyStruct,
15080                fidl_fuchsia_posix::Errno,
15081            >>(
15082                (addr,),
15083                0x5f05f19bfdd38871,
15084                fidl::encoding::DynamicFlags::empty(),
15085                ___deadline,
15086            )?;
15087        Ok(_response.map(|x| x))
15088    }
15089
15090    /// Clears connection information from this socket.
15091    pub fn r#disconnect(
15092        &self,
15093        ___deadline: zx::MonotonicInstant,
15094    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
15095        let _response =
15096            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15097                fidl::encoding::EmptyStruct,
15098                fidl_fuchsia_posix::Errno,
15099            >>(
15100                (),
15101                0x74e63b91f7b29b2,
15102                fidl::encoding::DynamicFlags::empty(),
15103                ___deadline,
15104            )?;
15105        Ok(_response.map(|x| x))
15106    }
15107
15108    /// Retrieves the local socket address.
15109    pub fn r#get_sock_name(
15110        &self,
15111        ___deadline: zx::MonotonicInstant,
15112    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
15113        let _response = self
15114            .client
15115            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15116                BaseNetworkSocketGetSockNameResponse,
15117                fidl_fuchsia_posix::Errno,
15118            >>(
15119                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
15120            )?;
15121        Ok(_response.map(|x| x.addr))
15122    }
15123
15124    /// Retrieves the remote socket address.
15125    pub fn r#get_peer_name(
15126        &self,
15127        ___deadline: zx::MonotonicInstant,
15128    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
15129        let _response = self
15130            .client
15131            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15132                BaseNetworkSocketGetPeerNameResponse,
15133                fidl_fuchsia_posix::Errno,
15134            >>(
15135                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
15136            )?;
15137        Ok(_response.map(|x| x.addr))
15138    }
15139
15140    /// Shuts down part of the socket.
15141    pub fn r#shutdown(
15142        &self,
15143        mut mode: ShutdownMode,
15144        ___deadline: zx::MonotonicInstant,
15145    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
15146        let _response =
15147            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
15148                fidl::encoding::EmptyStruct,
15149                fidl_fuchsia_posix::Errno,
15150            >>(
15151                (mode,),
15152                0x247f38b6db68c336,
15153                fidl::encoding::DynamicFlags::empty(),
15154                ___deadline,
15155            )?;
15156        Ok(_response.map(|x| x))
15157    }
15158
15159    /// Set `SOL_IP` -> `IP_TOS`.
15160    pub fn r#set_ip_type_of_service(
15161        &self,
15162        mut value: u8,
15163        ___deadline: zx::MonotonicInstant,
15164    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
15165        let _response = self.client.send_query::<
15166            BaseNetworkSocketSetIpTypeOfServiceRequest,
15167            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15168        >(
15169            (value,),
15170            0x995c600475b6d46,
15171            fidl::encoding::DynamicFlags::empty(),
15172            ___deadline,
15173        )?;
15174        Ok(_response.map(|x| x))
15175    }
15176
15177    /// Get `SOL_IP` -> `IP_TOS`.
15178    pub fn r#get_ip_type_of_service(
15179        &self,
15180        ___deadline: zx::MonotonicInstant,
15181    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
15182        let _response = self
15183            .client
15184            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15185                BaseNetworkSocketGetIpTypeOfServiceResponse,
15186                fidl_fuchsia_posix::Errno,
15187            >>(
15188                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
15189            )?;
15190        Ok(_response.map(|x| x.value))
15191    }
15192
15193    /// Set `SOL_IP` -> `IP_TTL`.
15194    pub fn r#set_ip_ttl(
15195        &self,
15196        mut value: &OptionalUint8,
15197        ___deadline: zx::MonotonicInstant,
15198    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
15199        let _response =
15200            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
15201                fidl::encoding::EmptyStruct,
15202                fidl_fuchsia_posix::Errno,
15203            >>(
15204                (value,),
15205                0x29e2424b433ae1ef,
15206                fidl::encoding::DynamicFlags::empty(),
15207                ___deadline,
15208            )?;
15209        Ok(_response.map(|x| x))
15210    }
15211
15212    /// Get `SOL_IP` -> `IP_TTL`.
15213    pub fn r#get_ip_ttl(
15214        &self,
15215        ___deadline: zx::MonotonicInstant,
15216    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
15217        let _response = self
15218            .client
15219            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15220                BaseNetworkSocketGetIpTtlResponse,
15221                fidl_fuchsia_posix::Errno,
15222            >>(
15223                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
15224            )?;
15225        Ok(_response.map(|x| x.value))
15226    }
15227
15228    /// Set `SOL_IP` -> `IP_PKTINFO`.
15229    pub fn r#set_ip_packet_info(
15230        &self,
15231        mut value: bool,
15232        ___deadline: zx::MonotonicInstant,
15233    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
15234        let _response =
15235            self.client
15236                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
15237                    fidl::encoding::EmptyStruct,
15238                    fidl_fuchsia_posix::Errno,
15239                >>(
15240                    (value,),
15241                    0x392d16bee20c0e16,
15242                    fidl::encoding::DynamicFlags::empty(),
15243                    ___deadline,
15244                )?;
15245        Ok(_response.map(|x| x))
15246    }
15247
15248    /// Get `SOL_IP` -> `IP_PKTINFO`.
15249    pub fn r#get_ip_packet_info(
15250        &self,
15251        ___deadline: zx::MonotonicInstant,
15252    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
15253        let _response = self
15254            .client
15255            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15256                BaseNetworkSocketGetIpPacketInfoResponse,
15257                fidl_fuchsia_posix::Errno,
15258            >>(
15259                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
15260            )?;
15261        Ok(_response.map(|x| x.value))
15262    }
15263
15264    /// Set `SOL_IP` -> `IP_RECVTOS`.
15265    pub fn r#set_ip_receive_type_of_service(
15266        &self,
15267        mut value: bool,
15268        ___deadline: zx::MonotonicInstant,
15269    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
15270        let _response = self.client.send_query::<
15271            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
15272            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15273        >(
15274            (value,),
15275            0x6c4f6714995f84ef,
15276            fidl::encoding::DynamicFlags::empty(),
15277            ___deadline,
15278        )?;
15279        Ok(_response.map(|x| x))
15280    }
15281
15282    /// Get `SOL_IP` -> `IP_RECVTOS`.
15283    pub fn r#get_ip_receive_type_of_service(
15284        &self,
15285        ___deadline: zx::MonotonicInstant,
15286    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
15287        let _response = self
15288            .client
15289            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15290                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
15291                fidl_fuchsia_posix::Errno,
15292            >>(
15293                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
15294            )?;
15295        Ok(_response.map(|x| x.value))
15296    }
15297
15298    /// Set `SOL_IP` -> `IP_RECVTTL`.
15299    pub fn r#set_ip_receive_ttl(
15300        &self,
15301        mut value: bool,
15302        ___deadline: zx::MonotonicInstant,
15303    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
15304        let _response =
15305            self.client
15306                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
15307                    fidl::encoding::EmptyStruct,
15308                    fidl_fuchsia_posix::Errno,
15309                >>(
15310                    (value,),
15311                    0x46f15be0ce0ab82b,
15312                    fidl::encoding::DynamicFlags::empty(),
15313                    ___deadline,
15314                )?;
15315        Ok(_response.map(|x| x))
15316    }
15317
15318    /// Get `SOL_IP` -> `IP_RECVTTL`.
15319    pub fn r#get_ip_receive_ttl(
15320        &self,
15321        ___deadline: zx::MonotonicInstant,
15322    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
15323        let _response = self
15324            .client
15325            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15326                BaseNetworkSocketGetIpReceiveTtlResponse,
15327                fidl_fuchsia_posix::Errno,
15328            >>(
15329                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
15330            )?;
15331        Ok(_response.map(|x| x.value))
15332    }
15333
15334    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
15335    pub fn r#set_ip_multicast_interface(
15336        &self,
15337        mut iface: u64,
15338        mut address: &fidl_fuchsia_net::Ipv4Address,
15339        ___deadline: zx::MonotonicInstant,
15340    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
15341        let _response = self.client.send_query::<
15342            BaseNetworkSocketSetIpMulticastInterfaceRequest,
15343            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15344        >(
15345            (iface, address,),
15346            0x752fbfa9b12befe,
15347            fidl::encoding::DynamicFlags::empty(),
15348            ___deadline,
15349        )?;
15350        Ok(_response.map(|x| x))
15351    }
15352
15353    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
15354    pub fn r#get_ip_multicast_interface(
15355        &self,
15356        ___deadline: zx::MonotonicInstant,
15357    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
15358        let _response = self
15359            .client
15360            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15361                BaseNetworkSocketGetIpMulticastInterfaceResponse,
15362                fidl_fuchsia_posix::Errno,
15363            >>(
15364                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
15365            )?;
15366        Ok(_response.map(|x| x.value))
15367    }
15368
15369    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
15370    pub fn r#set_ip_multicast_ttl(
15371        &self,
15372        mut value: &OptionalUint8,
15373        ___deadline: zx::MonotonicInstant,
15374    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
15375        let _response =
15376            self.client
15377                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
15378                    fidl::encoding::EmptyStruct,
15379                    fidl_fuchsia_posix::Errno,
15380                >>(
15381                    (value,),
15382                    0x63134d53772916a1,
15383                    fidl::encoding::DynamicFlags::empty(),
15384                    ___deadline,
15385                )?;
15386        Ok(_response.map(|x| x))
15387    }
15388
15389    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
15390    pub fn r#get_ip_multicast_ttl(
15391        &self,
15392        ___deadline: zx::MonotonicInstant,
15393    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
15394        let _response = self
15395            .client
15396            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15397                BaseNetworkSocketGetIpMulticastTtlResponse,
15398                fidl_fuchsia_posix::Errno,
15399            >>(
15400                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
15401            )?;
15402        Ok(_response.map(|x| x.value))
15403    }
15404
15405    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
15406    pub fn r#set_ip_multicast_loopback(
15407        &self,
15408        mut value: bool,
15409        ___deadline: zx::MonotonicInstant,
15410    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
15411        let _response = self.client.send_query::<
15412            BaseNetworkSocketSetIpMulticastLoopbackRequest,
15413            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15414        >(
15415            (value,),
15416            0x20c55c11f00943ea,
15417            fidl::encoding::DynamicFlags::empty(),
15418            ___deadline,
15419        )?;
15420        Ok(_response.map(|x| x))
15421    }
15422
15423    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
15424    pub fn r#get_ip_multicast_loopback(
15425        &self,
15426        ___deadline: zx::MonotonicInstant,
15427    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
15428        let _response = self
15429            .client
15430            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15431                BaseNetworkSocketGetIpMulticastLoopbackResponse,
15432                fidl_fuchsia_posix::Errno,
15433            >>(
15434                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
15435            )?;
15436        Ok(_response.map(|x| x.value))
15437    }
15438
15439    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
15440    pub fn r#add_ip_membership(
15441        &self,
15442        mut membership: &IpMulticastMembership,
15443        ___deadline: zx::MonotonicInstant,
15444    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
15445        let _response =
15446            self.client
15447                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
15448                    fidl::encoding::EmptyStruct,
15449                    fidl_fuchsia_posix::Errno,
15450                >>(
15451                    (membership,),
15452                    0x76bc7df115a3b4d0,
15453                    fidl::encoding::DynamicFlags::empty(),
15454                    ___deadline,
15455                )?;
15456        Ok(_response.map(|x| x))
15457    }
15458
15459    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
15460    pub fn r#drop_ip_membership(
15461        &self,
15462        mut membership: &IpMulticastMembership,
15463        ___deadline: zx::MonotonicInstant,
15464    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
15465        let _response =
15466            self.client
15467                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
15468                    fidl::encoding::EmptyStruct,
15469                    fidl_fuchsia_posix::Errno,
15470                >>(
15471                    (membership,),
15472                    0x2888f3099188d03,
15473                    fidl::encoding::DynamicFlags::empty(),
15474                    ___deadline,
15475                )?;
15476        Ok(_response.map(|x| x))
15477    }
15478
15479    /// Set `SOL_IP` -> `IP_TRANSPARENT`
15480    pub fn r#set_ip_transparent(
15481        &self,
15482        mut value: bool,
15483        ___deadline: zx::MonotonicInstant,
15484    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
15485        let _response =
15486            self.client
15487                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
15488                    fidl::encoding::EmptyStruct,
15489                    fidl_fuchsia_posix::Errno,
15490                >>(
15491                    (value,),
15492                    0x1ae532b0c066e3a0,
15493                    fidl::encoding::DynamicFlags::empty(),
15494                    ___deadline,
15495                )?;
15496        Ok(_response.map(|x| x))
15497    }
15498
15499    /// Get `SOL_IP` -> `IP_TRANSPARENT`
15500    pub fn r#get_ip_transparent(
15501        &self,
15502        ___deadline: zx::MonotonicInstant,
15503    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
15504        let _response = self
15505            .client
15506            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15507                BaseNetworkSocketGetIpTransparentResponse,
15508                fidl_fuchsia_posix::Errno,
15509            >>(
15510                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
15511            )?;
15512        Ok(_response.map(|x| x.value))
15513    }
15514
15515    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
15516    pub fn r#set_ip_receive_original_destination_address(
15517        &self,
15518        mut value: bool,
15519        ___deadline: zx::MonotonicInstant,
15520    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
15521        let _response = self.client.send_query::<
15522            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
15523            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15524        >(
15525            (value,),
15526            0x4722b4ce52f7840,
15527            fidl::encoding::DynamicFlags::empty(),
15528            ___deadline,
15529        )?;
15530        Ok(_response.map(|x| x))
15531    }
15532
15533    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
15534    pub fn r#get_ip_receive_original_destination_address(
15535        &self,
15536        ___deadline: zx::MonotonicInstant,
15537    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
15538        let _response = self
15539            .client
15540            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15541                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
15542                fidl_fuchsia_posix::Errno,
15543            >>(
15544                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
15545            )?;
15546        Ok(_response.map(|x| x.value))
15547    }
15548
15549    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
15550    pub fn r#add_ipv6_membership(
15551        &self,
15552        mut membership: &Ipv6MulticastMembership,
15553        ___deadline: zx::MonotonicInstant,
15554    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
15555        let _response =
15556            self.client
15557                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
15558                    fidl::encoding::EmptyStruct,
15559                    fidl_fuchsia_posix::Errno,
15560                >>(
15561                    (membership,),
15562                    0x7c94727acb4ea4b3,
15563                    fidl::encoding::DynamicFlags::empty(),
15564                    ___deadline,
15565                )?;
15566        Ok(_response.map(|x| x))
15567    }
15568
15569    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
15570    pub fn r#drop_ipv6_membership(
15571        &self,
15572        mut membership: &Ipv6MulticastMembership,
15573        ___deadline: zx::MonotonicInstant,
15574    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
15575        let _response = self.client.send_query::<
15576            BaseNetworkSocketDropIpv6MembershipRequest,
15577            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15578        >(
15579            (membership,),
15580            0x42104c70ccaba304,
15581            fidl::encoding::DynamicFlags::empty(),
15582            ___deadline,
15583        )?;
15584        Ok(_response.map(|x| x))
15585    }
15586
15587    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
15588    pub fn r#set_ipv6_multicast_interface(
15589        &self,
15590        mut value: u64,
15591        ___deadline: zx::MonotonicInstant,
15592    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
15593        let _response = self.client.send_query::<
15594            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
15595            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15596        >(
15597            (value,),
15598            0x135f76db3774ab3b,
15599            fidl::encoding::DynamicFlags::empty(),
15600            ___deadline,
15601        )?;
15602        Ok(_response.map(|x| x))
15603    }
15604
15605    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
15606    pub fn r#get_ipv6_multicast_interface(
15607        &self,
15608        ___deadline: zx::MonotonicInstant,
15609    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
15610        let _response = self
15611            .client
15612            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15613                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
15614                fidl_fuchsia_posix::Errno,
15615            >>(
15616                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
15617            )?;
15618        Ok(_response.map(|x| x.value))
15619    }
15620
15621    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
15622    pub fn r#set_ipv6_unicast_hops(
15623        &self,
15624        mut value: &OptionalUint8,
15625        ___deadline: zx::MonotonicInstant,
15626    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
15627        let _response = self.client.send_query::<
15628            BaseNetworkSocketSetIpv6UnicastHopsRequest,
15629            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15630        >(
15631            (value,),
15632            0x157d51e98f462859,
15633            fidl::encoding::DynamicFlags::empty(),
15634            ___deadline,
15635        )?;
15636        Ok(_response.map(|x| x))
15637    }
15638
15639    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
15640    pub fn r#get_ipv6_unicast_hops(
15641        &self,
15642        ___deadline: zx::MonotonicInstant,
15643    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
15644        let _response = self
15645            .client
15646            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15647                BaseNetworkSocketGetIpv6UnicastHopsResponse,
15648                fidl_fuchsia_posix::Errno,
15649            >>(
15650                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
15651            )?;
15652        Ok(_response.map(|x| x.value))
15653    }
15654
15655    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
15656    pub fn r#set_ipv6_receive_hop_limit(
15657        &self,
15658        mut value: bool,
15659        ___deadline: zx::MonotonicInstant,
15660    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
15661        let _response = self.client.send_query::<
15662            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
15663            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15664        >(
15665            (value,),
15666            0x5c24808ed2e84a1e,
15667            fidl::encoding::DynamicFlags::empty(),
15668            ___deadline,
15669        )?;
15670        Ok(_response.map(|x| x))
15671    }
15672
15673    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
15674    pub fn r#get_ipv6_receive_hop_limit(
15675        &self,
15676        ___deadline: zx::MonotonicInstant,
15677    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
15678        let _response = self
15679            .client
15680            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15681                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
15682                fidl_fuchsia_posix::Errno,
15683            >>(
15684                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
15685            )?;
15686        Ok(_response.map(|x| x.value))
15687    }
15688
15689    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
15690    pub fn r#set_ipv6_multicast_hops(
15691        &self,
15692        mut value: &OptionalUint8,
15693        ___deadline: zx::MonotonicInstant,
15694    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
15695        let _response = self.client.send_query::<
15696            BaseNetworkSocketSetIpv6MulticastHopsRequest,
15697            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15698        >(
15699            (value,),
15700            0x25b9cd4d181f82c1,
15701            fidl::encoding::DynamicFlags::empty(),
15702            ___deadline,
15703        )?;
15704        Ok(_response.map(|x| x))
15705    }
15706
15707    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
15708    pub fn r#get_ipv6_multicast_hops(
15709        &self,
15710        ___deadline: zx::MonotonicInstant,
15711    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
15712        let _response = self
15713            .client
15714            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15715                BaseNetworkSocketGetIpv6MulticastHopsResponse,
15716                fidl_fuchsia_posix::Errno,
15717            >>(
15718                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
15719            )?;
15720        Ok(_response.map(|x| x.value))
15721    }
15722
15723    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
15724    pub fn r#set_ipv6_multicast_loopback(
15725        &self,
15726        mut value: bool,
15727        ___deadline: zx::MonotonicInstant,
15728    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
15729        let _response = self.client.send_query::<
15730            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
15731            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15732        >(
15733            (value,),
15734            0x55701c409ff41b40,
15735            fidl::encoding::DynamicFlags::empty(),
15736            ___deadline,
15737        )?;
15738        Ok(_response.map(|x| x))
15739    }
15740
15741    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
15742    pub fn r#get_ipv6_multicast_loopback(
15743        &self,
15744        ___deadline: zx::MonotonicInstant,
15745    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
15746        let _response = self
15747            .client
15748            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15749                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
15750                fidl_fuchsia_posix::Errno,
15751            >>(
15752                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
15753            )?;
15754        Ok(_response.map(|x| x.value))
15755    }
15756
15757    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
15758    pub fn r#set_ipv6_only(
15759        &self,
15760        mut value: bool,
15761        ___deadline: zx::MonotonicInstant,
15762    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
15763        let _response =
15764            self.client
15765                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
15766                    fidl::encoding::EmptyStruct,
15767                    fidl_fuchsia_posix::Errno,
15768                >>(
15769                    (value,),
15770                    0x4873f1364758cbba,
15771                    fidl::encoding::DynamicFlags::empty(),
15772                    ___deadline,
15773                )?;
15774        Ok(_response.map(|x| x))
15775    }
15776
15777    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
15778    pub fn r#get_ipv6_only(
15779        &self,
15780        ___deadline: zx::MonotonicInstant,
15781    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
15782        let _response = self
15783            .client
15784            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15785                BaseNetworkSocketGetIpv6OnlyResponse,
15786                fidl_fuchsia_posix::Errno,
15787            >>(
15788                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
15789            )?;
15790        Ok(_response.map(|x| x.value))
15791    }
15792
15793    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
15794    pub fn r#set_ipv6_receive_traffic_class(
15795        &self,
15796        mut value: bool,
15797        ___deadline: zx::MonotonicInstant,
15798    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
15799        let _response = self.client.send_query::<
15800            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
15801            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15802        >(
15803            (value,),
15804            0x58f07c8788d099a0,
15805            fidl::encoding::DynamicFlags::empty(),
15806            ___deadline,
15807        )?;
15808        Ok(_response.map(|x| x))
15809    }
15810
15811    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
15812    pub fn r#get_ipv6_receive_traffic_class(
15813        &self,
15814        ___deadline: zx::MonotonicInstant,
15815    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
15816        let _response = self
15817            .client
15818            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15819                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
15820                fidl_fuchsia_posix::Errno,
15821            >>(
15822                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
15823            )?;
15824        Ok(_response.map(|x| x.value))
15825    }
15826
15827    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
15828    pub fn r#set_ipv6_traffic_class(
15829        &self,
15830        mut value: &OptionalUint8,
15831        ___deadline: zx::MonotonicInstant,
15832    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
15833        let _response = self.client.send_query::<
15834            BaseNetworkSocketSetIpv6TrafficClassRequest,
15835            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15836        >(
15837            (value,),
15838            0x6af077800c5a0b4f,
15839            fidl::encoding::DynamicFlags::empty(),
15840            ___deadline,
15841        )?;
15842        Ok(_response.map(|x| x))
15843    }
15844
15845    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
15846    pub fn r#get_ipv6_traffic_class(
15847        &self,
15848        ___deadline: zx::MonotonicInstant,
15849    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
15850        let _response = self
15851            .client
15852            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15853                BaseNetworkSocketGetIpv6TrafficClassResponse,
15854                fidl_fuchsia_posix::Errno,
15855            >>(
15856                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
15857            )?;
15858        Ok(_response.map(|x| x.value))
15859    }
15860
15861    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
15862    pub fn r#set_ipv6_receive_packet_info(
15863        &self,
15864        mut value: bool,
15865        ___deadline: zx::MonotonicInstant,
15866    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
15867        let _response = self.client.send_query::<
15868            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
15869            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15870        >(
15871            (value,),
15872            0x19259775b1a92768,
15873            fidl::encoding::DynamicFlags::empty(),
15874            ___deadline,
15875        )?;
15876        Ok(_response.map(|x| x))
15877    }
15878
15879    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
15880    pub fn r#get_ipv6_receive_packet_info(
15881        &self,
15882        ___deadline: zx::MonotonicInstant,
15883    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
15884        let _response = self
15885            .client
15886            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15887                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
15888                fidl_fuchsia_posix::Errno,
15889            >>(
15890                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
15891            )?;
15892        Ok(_response.map(|x| x.value))
15893    }
15894
15895    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
15896    pub fn r#get_original_destination(
15897        &self,
15898        ___deadline: zx::MonotonicInstant,
15899    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
15900        let _response = self
15901            .client
15902            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15903                BaseNetworkSocketGetOriginalDestinationResponse,
15904                fidl_fuchsia_posix::Errno,
15905            >>(
15906                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
15907            )?;
15908        Ok(_response.map(|x| x.value))
15909    }
15910}
15911
15912#[cfg(target_os = "fuchsia")]
15913impl From<BaseNetworkSocketSynchronousProxy> for zx::Handle {
15914    fn from(value: BaseNetworkSocketSynchronousProxy) -> Self {
15915        value.into_channel().into()
15916    }
15917}
15918
15919#[cfg(target_os = "fuchsia")]
15920impl From<fidl::Channel> for BaseNetworkSocketSynchronousProxy {
15921    fn from(value: fidl::Channel) -> Self {
15922        Self::new(value)
15923    }
15924}
15925
15926#[cfg(target_os = "fuchsia")]
15927impl fidl::endpoints::FromClient for BaseNetworkSocketSynchronousProxy {
15928    type Protocol = BaseNetworkSocketMarker;
15929
15930    fn from_client(value: fidl::endpoints::ClientEnd<BaseNetworkSocketMarker>) -> Self {
15931        Self::new(value.into_channel())
15932    }
15933}
15934
15935#[derive(Debug, Clone)]
15936pub struct BaseNetworkSocketProxy {
15937    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
15938}
15939
15940impl fidl::endpoints::Proxy for BaseNetworkSocketProxy {
15941    type Protocol = BaseNetworkSocketMarker;
15942
15943    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
15944        Self::new(inner)
15945    }
15946
15947    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
15948        self.client.into_channel().map_err(|client| Self { client })
15949    }
15950
15951    fn as_channel(&self) -> &::fidl::AsyncChannel {
15952        self.client.as_channel()
15953    }
15954}
15955
15956impl BaseNetworkSocketProxy {
15957    /// Create a new Proxy for fuchsia.posix.socket/BaseNetworkSocket.
15958    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
15959        let protocol_name =
15960            <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
15961        Self { client: fidl::client::Client::new(channel, protocol_name) }
15962    }
15963
15964    /// Get a Stream of events from the remote end of the protocol.
15965    ///
15966    /// # Panics
15967    ///
15968    /// Panics if the event stream was already taken.
15969    pub fn take_event_stream(&self) -> BaseNetworkSocketEventStream {
15970        BaseNetworkSocketEventStream { event_receiver: self.client.take_event_receiver() }
15971    }
15972
15973    pub fn r#clone(
15974        &self,
15975        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
15976    ) -> Result<(), fidl::Error> {
15977        BaseNetworkSocketProxyInterface::r#clone(self, request)
15978    }
15979
15980    /// Terminates the connection.
15981    ///
15982    /// After calling `Close`, the client must not send any other requests.
15983    ///
15984    /// Servers, after sending the status response, should close the connection
15985    /// regardless of status and without sending an epitaph.
15986    ///
15987    /// Closing the client end of the channel should be semantically equivalent
15988    /// to calling `Close` without knowing when the close has completed or its
15989    /// status.
15990    pub fn r#close(
15991        &self,
15992    ) -> fidl::client::QueryResponseFut<
15993        fidl_fuchsia_unknown::CloseableCloseResult,
15994        fidl::encoding::DefaultFuchsiaResourceDialect,
15995    > {
15996        BaseNetworkSocketProxyInterface::r#close(self)
15997    }
15998
15999    pub fn r#query(
16000        &self,
16001    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
16002    {
16003        BaseNetworkSocketProxyInterface::r#query(self)
16004    }
16005
16006    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
16007    pub fn r#set_reuse_address(
16008        &self,
16009        mut value: bool,
16010    ) -> fidl::client::QueryResponseFut<
16011        BaseSocketSetReuseAddressResult,
16012        fidl::encoding::DefaultFuchsiaResourceDialect,
16013    > {
16014        BaseNetworkSocketProxyInterface::r#set_reuse_address(self, value)
16015    }
16016
16017    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
16018    pub fn r#get_reuse_address(
16019        &self,
16020    ) -> fidl::client::QueryResponseFut<
16021        BaseSocketGetReuseAddressResult,
16022        fidl::encoding::DefaultFuchsiaResourceDialect,
16023    > {
16024        BaseNetworkSocketProxyInterface::r#get_reuse_address(self)
16025    }
16026
16027    /// Get `SOL_SOCKET` -> `SO_ERROR`.
16028    /// Returns the last error if there is an error set on the socket.
16029    pub fn r#get_error(
16030        &self,
16031    ) -> fidl::client::QueryResponseFut<
16032        BaseSocketGetErrorResult,
16033        fidl::encoding::DefaultFuchsiaResourceDialect,
16034    > {
16035        BaseNetworkSocketProxyInterface::r#get_error(self)
16036    }
16037
16038    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
16039    pub fn r#set_broadcast(
16040        &self,
16041        mut value: bool,
16042    ) -> fidl::client::QueryResponseFut<
16043        BaseSocketSetBroadcastResult,
16044        fidl::encoding::DefaultFuchsiaResourceDialect,
16045    > {
16046        BaseNetworkSocketProxyInterface::r#set_broadcast(self, value)
16047    }
16048
16049    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
16050    pub fn r#get_broadcast(
16051        &self,
16052    ) -> fidl::client::QueryResponseFut<
16053        BaseSocketGetBroadcastResult,
16054        fidl::encoding::DefaultFuchsiaResourceDialect,
16055    > {
16056        BaseNetworkSocketProxyInterface::r#get_broadcast(self)
16057    }
16058
16059    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
16060    pub fn r#set_send_buffer(
16061        &self,
16062        mut value_bytes: u64,
16063    ) -> fidl::client::QueryResponseFut<
16064        BaseSocketSetSendBufferResult,
16065        fidl::encoding::DefaultFuchsiaResourceDialect,
16066    > {
16067        BaseNetworkSocketProxyInterface::r#set_send_buffer(self, value_bytes)
16068    }
16069
16070    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
16071    pub fn r#get_send_buffer(
16072        &self,
16073    ) -> fidl::client::QueryResponseFut<
16074        BaseSocketGetSendBufferResult,
16075        fidl::encoding::DefaultFuchsiaResourceDialect,
16076    > {
16077        BaseNetworkSocketProxyInterface::r#get_send_buffer(self)
16078    }
16079
16080    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
16081    pub fn r#set_receive_buffer(
16082        &self,
16083        mut value_bytes: u64,
16084    ) -> fidl::client::QueryResponseFut<
16085        BaseSocketSetReceiveBufferResult,
16086        fidl::encoding::DefaultFuchsiaResourceDialect,
16087    > {
16088        BaseNetworkSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
16089    }
16090
16091    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
16092    pub fn r#get_receive_buffer(
16093        &self,
16094    ) -> fidl::client::QueryResponseFut<
16095        BaseSocketGetReceiveBufferResult,
16096        fidl::encoding::DefaultFuchsiaResourceDialect,
16097    > {
16098        BaseNetworkSocketProxyInterface::r#get_receive_buffer(self)
16099    }
16100
16101    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
16102    pub fn r#set_keep_alive(
16103        &self,
16104        mut value: bool,
16105    ) -> fidl::client::QueryResponseFut<
16106        BaseSocketSetKeepAliveResult,
16107        fidl::encoding::DefaultFuchsiaResourceDialect,
16108    > {
16109        BaseNetworkSocketProxyInterface::r#set_keep_alive(self, value)
16110    }
16111
16112    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
16113    pub fn r#get_keep_alive(
16114        &self,
16115    ) -> fidl::client::QueryResponseFut<
16116        BaseSocketGetKeepAliveResult,
16117        fidl::encoding::DefaultFuchsiaResourceDialect,
16118    > {
16119        BaseNetworkSocketProxyInterface::r#get_keep_alive(self)
16120    }
16121
16122    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
16123    pub fn r#set_out_of_band_inline(
16124        &self,
16125        mut value: bool,
16126    ) -> fidl::client::QueryResponseFut<
16127        BaseSocketSetOutOfBandInlineResult,
16128        fidl::encoding::DefaultFuchsiaResourceDialect,
16129    > {
16130        BaseNetworkSocketProxyInterface::r#set_out_of_band_inline(self, value)
16131    }
16132
16133    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
16134    pub fn r#get_out_of_band_inline(
16135        &self,
16136    ) -> fidl::client::QueryResponseFut<
16137        BaseSocketGetOutOfBandInlineResult,
16138        fidl::encoding::DefaultFuchsiaResourceDialect,
16139    > {
16140        BaseNetworkSocketProxyInterface::r#get_out_of_band_inline(self)
16141    }
16142
16143    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
16144    pub fn r#set_no_check(
16145        &self,
16146        mut value: bool,
16147    ) -> fidl::client::QueryResponseFut<
16148        BaseSocketSetNoCheckResult,
16149        fidl::encoding::DefaultFuchsiaResourceDialect,
16150    > {
16151        BaseNetworkSocketProxyInterface::r#set_no_check(self, value)
16152    }
16153
16154    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
16155    pub fn r#get_no_check(
16156        &self,
16157    ) -> fidl::client::QueryResponseFut<
16158        BaseSocketGetNoCheckResult,
16159        fidl::encoding::DefaultFuchsiaResourceDialect,
16160    > {
16161        BaseNetworkSocketProxyInterface::r#get_no_check(self)
16162    }
16163
16164    /// Set `SOL_SOCKET` -> `SO_LINGER`.
16165    pub fn r#set_linger(
16166        &self,
16167        mut linger: bool,
16168        mut length_secs: u32,
16169    ) -> fidl::client::QueryResponseFut<
16170        BaseSocketSetLingerResult,
16171        fidl::encoding::DefaultFuchsiaResourceDialect,
16172    > {
16173        BaseNetworkSocketProxyInterface::r#set_linger(self, linger, length_secs)
16174    }
16175
16176    /// Get `SOL_SOCKET` -> `SO_LINGER`.
16177    pub fn r#get_linger(
16178        &self,
16179    ) -> fidl::client::QueryResponseFut<
16180        BaseSocketGetLingerResult,
16181        fidl::encoding::DefaultFuchsiaResourceDialect,
16182    > {
16183        BaseNetworkSocketProxyInterface::r#get_linger(self)
16184    }
16185
16186    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
16187    pub fn r#set_reuse_port(
16188        &self,
16189        mut value: bool,
16190    ) -> fidl::client::QueryResponseFut<
16191        BaseSocketSetReusePortResult,
16192        fidl::encoding::DefaultFuchsiaResourceDialect,
16193    > {
16194        BaseNetworkSocketProxyInterface::r#set_reuse_port(self, value)
16195    }
16196
16197    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
16198    pub fn r#get_reuse_port(
16199        &self,
16200    ) -> fidl::client::QueryResponseFut<
16201        BaseSocketGetReusePortResult,
16202        fidl::encoding::DefaultFuchsiaResourceDialect,
16203    > {
16204        BaseNetworkSocketProxyInterface::r#get_reuse_port(self)
16205    }
16206
16207    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
16208    pub fn r#get_accept_conn(
16209        &self,
16210    ) -> fidl::client::QueryResponseFut<
16211        BaseSocketGetAcceptConnResult,
16212        fidl::encoding::DefaultFuchsiaResourceDialect,
16213    > {
16214        BaseNetworkSocketProxyInterface::r#get_accept_conn(self)
16215    }
16216
16217    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
16218    pub fn r#set_bind_to_device(
16219        &self,
16220        mut value: &str,
16221    ) -> fidl::client::QueryResponseFut<
16222        BaseSocketSetBindToDeviceResult,
16223        fidl::encoding::DefaultFuchsiaResourceDialect,
16224    > {
16225        BaseNetworkSocketProxyInterface::r#set_bind_to_device(self, value)
16226    }
16227
16228    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
16229    pub fn r#get_bind_to_device(
16230        &self,
16231    ) -> fidl::client::QueryResponseFut<
16232        BaseSocketGetBindToDeviceResult,
16233        fidl::encoding::DefaultFuchsiaResourceDialect,
16234    > {
16235        BaseNetworkSocketProxyInterface::r#get_bind_to_device(self)
16236    }
16237
16238    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
16239    /// If `value` is 0, this clears the bound interface.
16240    pub fn r#set_bind_to_interface_index(
16241        &self,
16242        mut value: u64,
16243    ) -> fidl::client::QueryResponseFut<
16244        BaseSocketSetBindToInterfaceIndexResult,
16245        fidl::encoding::DefaultFuchsiaResourceDialect,
16246    > {
16247        BaseNetworkSocketProxyInterface::r#set_bind_to_interface_index(self, value)
16248    }
16249
16250    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
16251    pub fn r#get_bind_to_interface_index(
16252        &self,
16253    ) -> fidl::client::QueryResponseFut<
16254        BaseSocketGetBindToInterfaceIndexResult,
16255        fidl::encoding::DefaultFuchsiaResourceDialect,
16256    > {
16257        BaseNetworkSocketProxyInterface::r#get_bind_to_interface_index(self)
16258    }
16259
16260    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
16261    pub fn r#set_timestamp(
16262        &self,
16263        mut value: TimestampOption,
16264    ) -> fidl::client::QueryResponseFut<
16265        BaseSocketSetTimestampResult,
16266        fidl::encoding::DefaultFuchsiaResourceDialect,
16267    > {
16268        BaseNetworkSocketProxyInterface::r#set_timestamp(self, value)
16269    }
16270
16271    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
16272    pub fn r#get_timestamp(
16273        &self,
16274    ) -> fidl::client::QueryResponseFut<
16275        BaseSocketGetTimestampResult,
16276        fidl::encoding::DefaultFuchsiaResourceDialect,
16277    > {
16278        BaseNetworkSocketProxyInterface::r#get_timestamp(self)
16279    }
16280
16281    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
16282    /// unlike the standard SO_MARK, this API has multiple mark domains and each
16283    /// mark can be set independently in each domain.
16284    pub fn r#set_mark(
16285        &self,
16286        mut domain: fidl_fuchsia_net::MarkDomain,
16287        mut mark: &OptionalUint32,
16288    ) -> fidl::client::QueryResponseFut<
16289        BaseSocketSetMarkResult,
16290        fidl::encoding::DefaultFuchsiaResourceDialect,
16291    > {
16292        BaseNetworkSocketProxyInterface::r#set_mark(self, domain, mark)
16293    }
16294
16295    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
16296    /// unlike the standard SO_MARK, this API has multiple mark domains and each
16297    /// mark can be retrieved independently in each domain.
16298    pub fn r#get_mark(
16299        &self,
16300        mut domain: fidl_fuchsia_net::MarkDomain,
16301    ) -> fidl::client::QueryResponseFut<
16302        BaseSocketGetMarkResult,
16303        fidl::encoding::DefaultFuchsiaResourceDialect,
16304    > {
16305        BaseNetworkSocketProxyInterface::r#get_mark(self, domain)
16306    }
16307
16308    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
16309    pub fn r#get_cookie(
16310        &self,
16311    ) -> fidl::client::QueryResponseFut<
16312        BaseSocketGetCookieResult,
16313        fidl::encoding::DefaultFuchsiaResourceDialect,
16314    > {
16315        BaseNetworkSocketProxyInterface::r#get_cookie(self)
16316    }
16317
16318    /// Sets the local address used for the socket.
16319    pub fn r#bind(
16320        &self,
16321        mut addr: &fidl_fuchsia_net::SocketAddress,
16322    ) -> fidl::client::QueryResponseFut<
16323        BaseNetworkSocketBindResult,
16324        fidl::encoding::DefaultFuchsiaResourceDialect,
16325    > {
16326        BaseNetworkSocketProxyInterface::r#bind(self, addr)
16327    }
16328
16329    /// Initiates a connection to a remote address.
16330    pub fn r#connect(
16331        &self,
16332        mut addr: &fidl_fuchsia_net::SocketAddress,
16333    ) -> fidl::client::QueryResponseFut<
16334        BaseNetworkSocketConnectResult,
16335        fidl::encoding::DefaultFuchsiaResourceDialect,
16336    > {
16337        BaseNetworkSocketProxyInterface::r#connect(self, addr)
16338    }
16339
16340    /// Clears connection information from this socket.
16341    pub fn r#disconnect(
16342        &self,
16343    ) -> fidl::client::QueryResponseFut<
16344        BaseNetworkSocketDisconnectResult,
16345        fidl::encoding::DefaultFuchsiaResourceDialect,
16346    > {
16347        BaseNetworkSocketProxyInterface::r#disconnect(self)
16348    }
16349
16350    /// Retrieves the local socket address.
16351    pub fn r#get_sock_name(
16352        &self,
16353    ) -> fidl::client::QueryResponseFut<
16354        BaseNetworkSocketGetSockNameResult,
16355        fidl::encoding::DefaultFuchsiaResourceDialect,
16356    > {
16357        BaseNetworkSocketProxyInterface::r#get_sock_name(self)
16358    }
16359
16360    /// Retrieves the remote socket address.
16361    pub fn r#get_peer_name(
16362        &self,
16363    ) -> fidl::client::QueryResponseFut<
16364        BaseNetworkSocketGetPeerNameResult,
16365        fidl::encoding::DefaultFuchsiaResourceDialect,
16366    > {
16367        BaseNetworkSocketProxyInterface::r#get_peer_name(self)
16368    }
16369
16370    /// Shuts down part of the socket.
16371    pub fn r#shutdown(
16372        &self,
16373        mut mode: ShutdownMode,
16374    ) -> fidl::client::QueryResponseFut<
16375        BaseNetworkSocketShutdownResult,
16376        fidl::encoding::DefaultFuchsiaResourceDialect,
16377    > {
16378        BaseNetworkSocketProxyInterface::r#shutdown(self, mode)
16379    }
16380
16381    /// Set `SOL_IP` -> `IP_TOS`.
16382    pub fn r#set_ip_type_of_service(
16383        &self,
16384        mut value: u8,
16385    ) -> fidl::client::QueryResponseFut<
16386        BaseNetworkSocketSetIpTypeOfServiceResult,
16387        fidl::encoding::DefaultFuchsiaResourceDialect,
16388    > {
16389        BaseNetworkSocketProxyInterface::r#set_ip_type_of_service(self, value)
16390    }
16391
16392    /// Get `SOL_IP` -> `IP_TOS`.
16393    pub fn r#get_ip_type_of_service(
16394        &self,
16395    ) -> fidl::client::QueryResponseFut<
16396        BaseNetworkSocketGetIpTypeOfServiceResult,
16397        fidl::encoding::DefaultFuchsiaResourceDialect,
16398    > {
16399        BaseNetworkSocketProxyInterface::r#get_ip_type_of_service(self)
16400    }
16401
16402    /// Set `SOL_IP` -> `IP_TTL`.
16403    pub fn r#set_ip_ttl(
16404        &self,
16405        mut value: &OptionalUint8,
16406    ) -> fidl::client::QueryResponseFut<
16407        BaseNetworkSocketSetIpTtlResult,
16408        fidl::encoding::DefaultFuchsiaResourceDialect,
16409    > {
16410        BaseNetworkSocketProxyInterface::r#set_ip_ttl(self, value)
16411    }
16412
16413    /// Get `SOL_IP` -> `IP_TTL`.
16414    pub fn r#get_ip_ttl(
16415        &self,
16416    ) -> fidl::client::QueryResponseFut<
16417        BaseNetworkSocketGetIpTtlResult,
16418        fidl::encoding::DefaultFuchsiaResourceDialect,
16419    > {
16420        BaseNetworkSocketProxyInterface::r#get_ip_ttl(self)
16421    }
16422
16423    /// Set `SOL_IP` -> `IP_PKTINFO`.
16424    pub fn r#set_ip_packet_info(
16425        &self,
16426        mut value: bool,
16427    ) -> fidl::client::QueryResponseFut<
16428        BaseNetworkSocketSetIpPacketInfoResult,
16429        fidl::encoding::DefaultFuchsiaResourceDialect,
16430    > {
16431        BaseNetworkSocketProxyInterface::r#set_ip_packet_info(self, value)
16432    }
16433
16434    /// Get `SOL_IP` -> `IP_PKTINFO`.
16435    pub fn r#get_ip_packet_info(
16436        &self,
16437    ) -> fidl::client::QueryResponseFut<
16438        BaseNetworkSocketGetIpPacketInfoResult,
16439        fidl::encoding::DefaultFuchsiaResourceDialect,
16440    > {
16441        BaseNetworkSocketProxyInterface::r#get_ip_packet_info(self)
16442    }
16443
16444    /// Set `SOL_IP` -> `IP_RECVTOS`.
16445    pub fn r#set_ip_receive_type_of_service(
16446        &self,
16447        mut value: bool,
16448    ) -> fidl::client::QueryResponseFut<
16449        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
16450        fidl::encoding::DefaultFuchsiaResourceDialect,
16451    > {
16452        BaseNetworkSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
16453    }
16454
16455    /// Get `SOL_IP` -> `IP_RECVTOS`.
16456    pub fn r#get_ip_receive_type_of_service(
16457        &self,
16458    ) -> fidl::client::QueryResponseFut<
16459        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
16460        fidl::encoding::DefaultFuchsiaResourceDialect,
16461    > {
16462        BaseNetworkSocketProxyInterface::r#get_ip_receive_type_of_service(self)
16463    }
16464
16465    /// Set `SOL_IP` -> `IP_RECVTTL`.
16466    pub fn r#set_ip_receive_ttl(
16467        &self,
16468        mut value: bool,
16469    ) -> fidl::client::QueryResponseFut<
16470        BaseNetworkSocketSetIpReceiveTtlResult,
16471        fidl::encoding::DefaultFuchsiaResourceDialect,
16472    > {
16473        BaseNetworkSocketProxyInterface::r#set_ip_receive_ttl(self, value)
16474    }
16475
16476    /// Get `SOL_IP` -> `IP_RECVTTL`.
16477    pub fn r#get_ip_receive_ttl(
16478        &self,
16479    ) -> fidl::client::QueryResponseFut<
16480        BaseNetworkSocketGetIpReceiveTtlResult,
16481        fidl::encoding::DefaultFuchsiaResourceDialect,
16482    > {
16483        BaseNetworkSocketProxyInterface::r#get_ip_receive_ttl(self)
16484    }
16485
16486    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
16487    pub fn r#set_ip_multicast_interface(
16488        &self,
16489        mut iface: u64,
16490        mut address: &fidl_fuchsia_net::Ipv4Address,
16491    ) -> fidl::client::QueryResponseFut<
16492        BaseNetworkSocketSetIpMulticastInterfaceResult,
16493        fidl::encoding::DefaultFuchsiaResourceDialect,
16494    > {
16495        BaseNetworkSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
16496    }
16497
16498    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
16499    pub fn r#get_ip_multicast_interface(
16500        &self,
16501    ) -> fidl::client::QueryResponseFut<
16502        BaseNetworkSocketGetIpMulticastInterfaceResult,
16503        fidl::encoding::DefaultFuchsiaResourceDialect,
16504    > {
16505        BaseNetworkSocketProxyInterface::r#get_ip_multicast_interface(self)
16506    }
16507
16508    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
16509    pub fn r#set_ip_multicast_ttl(
16510        &self,
16511        mut value: &OptionalUint8,
16512    ) -> fidl::client::QueryResponseFut<
16513        BaseNetworkSocketSetIpMulticastTtlResult,
16514        fidl::encoding::DefaultFuchsiaResourceDialect,
16515    > {
16516        BaseNetworkSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
16517    }
16518
16519    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
16520    pub fn r#get_ip_multicast_ttl(
16521        &self,
16522    ) -> fidl::client::QueryResponseFut<
16523        BaseNetworkSocketGetIpMulticastTtlResult,
16524        fidl::encoding::DefaultFuchsiaResourceDialect,
16525    > {
16526        BaseNetworkSocketProxyInterface::r#get_ip_multicast_ttl(self)
16527    }
16528
16529    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
16530    pub fn r#set_ip_multicast_loopback(
16531        &self,
16532        mut value: bool,
16533    ) -> fidl::client::QueryResponseFut<
16534        BaseNetworkSocketSetIpMulticastLoopbackResult,
16535        fidl::encoding::DefaultFuchsiaResourceDialect,
16536    > {
16537        BaseNetworkSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
16538    }
16539
16540    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
16541    pub fn r#get_ip_multicast_loopback(
16542        &self,
16543    ) -> fidl::client::QueryResponseFut<
16544        BaseNetworkSocketGetIpMulticastLoopbackResult,
16545        fidl::encoding::DefaultFuchsiaResourceDialect,
16546    > {
16547        BaseNetworkSocketProxyInterface::r#get_ip_multicast_loopback(self)
16548    }
16549
16550    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
16551    pub fn r#add_ip_membership(
16552        &self,
16553        mut membership: &IpMulticastMembership,
16554    ) -> fidl::client::QueryResponseFut<
16555        BaseNetworkSocketAddIpMembershipResult,
16556        fidl::encoding::DefaultFuchsiaResourceDialect,
16557    > {
16558        BaseNetworkSocketProxyInterface::r#add_ip_membership(self, membership)
16559    }
16560
16561    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
16562    pub fn r#drop_ip_membership(
16563        &self,
16564        mut membership: &IpMulticastMembership,
16565    ) -> fidl::client::QueryResponseFut<
16566        BaseNetworkSocketDropIpMembershipResult,
16567        fidl::encoding::DefaultFuchsiaResourceDialect,
16568    > {
16569        BaseNetworkSocketProxyInterface::r#drop_ip_membership(self, membership)
16570    }
16571
16572    /// Set `SOL_IP` -> `IP_TRANSPARENT`
16573    pub fn r#set_ip_transparent(
16574        &self,
16575        mut value: bool,
16576    ) -> fidl::client::QueryResponseFut<
16577        BaseNetworkSocketSetIpTransparentResult,
16578        fidl::encoding::DefaultFuchsiaResourceDialect,
16579    > {
16580        BaseNetworkSocketProxyInterface::r#set_ip_transparent(self, value)
16581    }
16582
16583    /// Get `SOL_IP` -> `IP_TRANSPARENT`
16584    pub fn r#get_ip_transparent(
16585        &self,
16586    ) -> fidl::client::QueryResponseFut<
16587        BaseNetworkSocketGetIpTransparentResult,
16588        fidl::encoding::DefaultFuchsiaResourceDialect,
16589    > {
16590        BaseNetworkSocketProxyInterface::r#get_ip_transparent(self)
16591    }
16592
16593    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
16594    pub fn r#set_ip_receive_original_destination_address(
16595        &self,
16596        mut value: bool,
16597    ) -> fidl::client::QueryResponseFut<
16598        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
16599        fidl::encoding::DefaultFuchsiaResourceDialect,
16600    > {
16601        BaseNetworkSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
16602    }
16603
16604    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
16605    pub fn r#get_ip_receive_original_destination_address(
16606        &self,
16607    ) -> fidl::client::QueryResponseFut<
16608        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
16609        fidl::encoding::DefaultFuchsiaResourceDialect,
16610    > {
16611        BaseNetworkSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
16612    }
16613
16614    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
16615    pub fn r#add_ipv6_membership(
16616        &self,
16617        mut membership: &Ipv6MulticastMembership,
16618    ) -> fidl::client::QueryResponseFut<
16619        BaseNetworkSocketAddIpv6MembershipResult,
16620        fidl::encoding::DefaultFuchsiaResourceDialect,
16621    > {
16622        BaseNetworkSocketProxyInterface::r#add_ipv6_membership(self, membership)
16623    }
16624
16625    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
16626    pub fn r#drop_ipv6_membership(
16627        &self,
16628        mut membership: &Ipv6MulticastMembership,
16629    ) -> fidl::client::QueryResponseFut<
16630        BaseNetworkSocketDropIpv6MembershipResult,
16631        fidl::encoding::DefaultFuchsiaResourceDialect,
16632    > {
16633        BaseNetworkSocketProxyInterface::r#drop_ipv6_membership(self, membership)
16634    }
16635
16636    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
16637    pub fn r#set_ipv6_multicast_interface(
16638        &self,
16639        mut value: u64,
16640    ) -> fidl::client::QueryResponseFut<
16641        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
16642        fidl::encoding::DefaultFuchsiaResourceDialect,
16643    > {
16644        BaseNetworkSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
16645    }
16646
16647    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
16648    pub fn r#get_ipv6_multicast_interface(
16649        &self,
16650    ) -> fidl::client::QueryResponseFut<
16651        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
16652        fidl::encoding::DefaultFuchsiaResourceDialect,
16653    > {
16654        BaseNetworkSocketProxyInterface::r#get_ipv6_multicast_interface(self)
16655    }
16656
16657    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
16658    pub fn r#set_ipv6_unicast_hops(
16659        &self,
16660        mut value: &OptionalUint8,
16661    ) -> fidl::client::QueryResponseFut<
16662        BaseNetworkSocketSetIpv6UnicastHopsResult,
16663        fidl::encoding::DefaultFuchsiaResourceDialect,
16664    > {
16665        BaseNetworkSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
16666    }
16667
16668    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
16669    pub fn r#get_ipv6_unicast_hops(
16670        &self,
16671    ) -> fidl::client::QueryResponseFut<
16672        BaseNetworkSocketGetIpv6UnicastHopsResult,
16673        fidl::encoding::DefaultFuchsiaResourceDialect,
16674    > {
16675        BaseNetworkSocketProxyInterface::r#get_ipv6_unicast_hops(self)
16676    }
16677
16678    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
16679    pub fn r#set_ipv6_receive_hop_limit(
16680        &self,
16681        mut value: bool,
16682    ) -> fidl::client::QueryResponseFut<
16683        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
16684        fidl::encoding::DefaultFuchsiaResourceDialect,
16685    > {
16686        BaseNetworkSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
16687    }
16688
16689    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
16690    pub fn r#get_ipv6_receive_hop_limit(
16691        &self,
16692    ) -> fidl::client::QueryResponseFut<
16693        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
16694        fidl::encoding::DefaultFuchsiaResourceDialect,
16695    > {
16696        BaseNetworkSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
16697    }
16698
16699    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
16700    pub fn r#set_ipv6_multicast_hops(
16701        &self,
16702        mut value: &OptionalUint8,
16703    ) -> fidl::client::QueryResponseFut<
16704        BaseNetworkSocketSetIpv6MulticastHopsResult,
16705        fidl::encoding::DefaultFuchsiaResourceDialect,
16706    > {
16707        BaseNetworkSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
16708    }
16709
16710    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
16711    pub fn r#get_ipv6_multicast_hops(
16712        &self,
16713    ) -> fidl::client::QueryResponseFut<
16714        BaseNetworkSocketGetIpv6MulticastHopsResult,
16715        fidl::encoding::DefaultFuchsiaResourceDialect,
16716    > {
16717        BaseNetworkSocketProxyInterface::r#get_ipv6_multicast_hops(self)
16718    }
16719
16720    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
16721    pub fn r#set_ipv6_multicast_loopback(
16722        &self,
16723        mut value: bool,
16724    ) -> fidl::client::QueryResponseFut<
16725        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
16726        fidl::encoding::DefaultFuchsiaResourceDialect,
16727    > {
16728        BaseNetworkSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
16729    }
16730
16731    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
16732    pub fn r#get_ipv6_multicast_loopback(
16733        &self,
16734    ) -> fidl::client::QueryResponseFut<
16735        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
16736        fidl::encoding::DefaultFuchsiaResourceDialect,
16737    > {
16738        BaseNetworkSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
16739    }
16740
16741    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
16742    pub fn r#set_ipv6_only(
16743        &self,
16744        mut value: bool,
16745    ) -> fidl::client::QueryResponseFut<
16746        BaseNetworkSocketSetIpv6OnlyResult,
16747        fidl::encoding::DefaultFuchsiaResourceDialect,
16748    > {
16749        BaseNetworkSocketProxyInterface::r#set_ipv6_only(self, value)
16750    }
16751
16752    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
16753    pub fn r#get_ipv6_only(
16754        &self,
16755    ) -> fidl::client::QueryResponseFut<
16756        BaseNetworkSocketGetIpv6OnlyResult,
16757        fidl::encoding::DefaultFuchsiaResourceDialect,
16758    > {
16759        BaseNetworkSocketProxyInterface::r#get_ipv6_only(self)
16760    }
16761
16762    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
16763    pub fn r#set_ipv6_receive_traffic_class(
16764        &self,
16765        mut value: bool,
16766    ) -> fidl::client::QueryResponseFut<
16767        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
16768        fidl::encoding::DefaultFuchsiaResourceDialect,
16769    > {
16770        BaseNetworkSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
16771    }
16772
16773    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
16774    pub fn r#get_ipv6_receive_traffic_class(
16775        &self,
16776    ) -> fidl::client::QueryResponseFut<
16777        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
16778        fidl::encoding::DefaultFuchsiaResourceDialect,
16779    > {
16780        BaseNetworkSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
16781    }
16782
16783    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
16784    pub fn r#set_ipv6_traffic_class(
16785        &self,
16786        mut value: &OptionalUint8,
16787    ) -> fidl::client::QueryResponseFut<
16788        BaseNetworkSocketSetIpv6TrafficClassResult,
16789        fidl::encoding::DefaultFuchsiaResourceDialect,
16790    > {
16791        BaseNetworkSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
16792    }
16793
16794    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
16795    pub fn r#get_ipv6_traffic_class(
16796        &self,
16797    ) -> fidl::client::QueryResponseFut<
16798        BaseNetworkSocketGetIpv6TrafficClassResult,
16799        fidl::encoding::DefaultFuchsiaResourceDialect,
16800    > {
16801        BaseNetworkSocketProxyInterface::r#get_ipv6_traffic_class(self)
16802    }
16803
16804    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
16805    pub fn r#set_ipv6_receive_packet_info(
16806        &self,
16807        mut value: bool,
16808    ) -> fidl::client::QueryResponseFut<
16809        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
16810        fidl::encoding::DefaultFuchsiaResourceDialect,
16811    > {
16812        BaseNetworkSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
16813    }
16814
16815    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
16816    pub fn r#get_ipv6_receive_packet_info(
16817        &self,
16818    ) -> fidl::client::QueryResponseFut<
16819        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
16820        fidl::encoding::DefaultFuchsiaResourceDialect,
16821    > {
16822        BaseNetworkSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
16823    }
16824
16825    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
16826    pub fn r#get_original_destination(
16827        &self,
16828    ) -> fidl::client::QueryResponseFut<
16829        BaseNetworkSocketGetOriginalDestinationResult,
16830        fidl::encoding::DefaultFuchsiaResourceDialect,
16831    > {
16832        BaseNetworkSocketProxyInterface::r#get_original_destination(self)
16833    }
16834}
16835
16836impl BaseNetworkSocketProxyInterface for BaseNetworkSocketProxy {
16837    fn r#clone(
16838        &self,
16839        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
16840    ) -> Result<(), fidl::Error> {
16841        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
16842            (request,),
16843            0x20d8a7aba2168a79,
16844            fidl::encoding::DynamicFlags::empty(),
16845        )
16846    }
16847
16848    type CloseResponseFut = fidl::client::QueryResponseFut<
16849        fidl_fuchsia_unknown::CloseableCloseResult,
16850        fidl::encoding::DefaultFuchsiaResourceDialect,
16851    >;
16852    fn r#close(&self) -> Self::CloseResponseFut {
16853        fn _decode(
16854            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16855        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
16856            let _response = fidl::client::decode_transaction_body::<
16857                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
16858                fidl::encoding::DefaultFuchsiaResourceDialect,
16859                0x5ac5d459ad7f657e,
16860            >(_buf?)?;
16861            Ok(_response.map(|x| x))
16862        }
16863        self.client.send_query_and_decode::<
16864            fidl::encoding::EmptyPayload,
16865            fidl_fuchsia_unknown::CloseableCloseResult,
16866        >(
16867            (),
16868            0x5ac5d459ad7f657e,
16869            fidl::encoding::DynamicFlags::empty(),
16870            _decode,
16871        )
16872    }
16873
16874    type QueryResponseFut =
16875        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
16876    fn r#query(&self) -> Self::QueryResponseFut {
16877        fn _decode(
16878            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16879        ) -> Result<Vec<u8>, fidl::Error> {
16880            let _response = fidl::client::decode_transaction_body::<
16881                fidl_fuchsia_unknown::QueryableQueryResponse,
16882                fidl::encoding::DefaultFuchsiaResourceDialect,
16883                0x2658edee9decfc06,
16884            >(_buf?)?;
16885            Ok(_response.protocol)
16886        }
16887        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
16888            (),
16889            0x2658edee9decfc06,
16890            fidl::encoding::DynamicFlags::empty(),
16891            _decode,
16892        )
16893    }
16894
16895    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
16896        BaseSocketSetReuseAddressResult,
16897        fidl::encoding::DefaultFuchsiaResourceDialect,
16898    >;
16899    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
16900        fn _decode(
16901            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16902        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
16903            let _response = fidl::client::decode_transaction_body::<
16904                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16905                fidl::encoding::DefaultFuchsiaResourceDialect,
16906                0x1fd74ee8b9a4a876,
16907            >(_buf?)?;
16908            Ok(_response.map(|x| x))
16909        }
16910        self.client.send_query_and_decode::<
16911            BaseSocketSetReuseAddressRequest,
16912            BaseSocketSetReuseAddressResult,
16913        >(
16914            (value,),
16915            0x1fd74ee8b9a4a876,
16916            fidl::encoding::DynamicFlags::empty(),
16917            _decode,
16918        )
16919    }
16920
16921    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
16922        BaseSocketGetReuseAddressResult,
16923        fidl::encoding::DefaultFuchsiaResourceDialect,
16924    >;
16925    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
16926        fn _decode(
16927            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16928        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
16929            let _response = fidl::client::decode_transaction_body::<
16930                fidl::encoding::ResultType<
16931                    BaseSocketGetReuseAddressResponse,
16932                    fidl_fuchsia_posix::Errno,
16933                >,
16934                fidl::encoding::DefaultFuchsiaResourceDialect,
16935                0x67b7206b8d1bc0a5,
16936            >(_buf?)?;
16937            Ok(_response.map(|x| x.value))
16938        }
16939        self.client
16940            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
16941                (),
16942                0x67b7206b8d1bc0a5,
16943                fidl::encoding::DynamicFlags::empty(),
16944                _decode,
16945            )
16946    }
16947
16948    type GetErrorResponseFut = fidl::client::QueryResponseFut<
16949        BaseSocketGetErrorResult,
16950        fidl::encoding::DefaultFuchsiaResourceDialect,
16951    >;
16952    fn r#get_error(&self) -> Self::GetErrorResponseFut {
16953        fn _decode(
16954            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16955        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
16956            let _response = fidl::client::decode_transaction_body::<
16957                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16958                fidl::encoding::DefaultFuchsiaResourceDialect,
16959                0x5aad39b33e5f6ebb,
16960            >(_buf?)?;
16961            Ok(_response.map(|x| x))
16962        }
16963        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
16964            (),
16965            0x5aad39b33e5f6ebb,
16966            fidl::encoding::DynamicFlags::empty(),
16967            _decode,
16968        )
16969    }
16970
16971    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
16972        BaseSocketSetBroadcastResult,
16973        fidl::encoding::DefaultFuchsiaResourceDialect,
16974    >;
16975    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
16976        fn _decode(
16977            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16978        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
16979            let _response = fidl::client::decode_transaction_body::<
16980                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16981                fidl::encoding::DefaultFuchsiaResourceDialect,
16982                0x6023e081ce3cd947,
16983            >(_buf?)?;
16984            Ok(_response.map(|x| x))
16985        }
16986        self.client
16987            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
16988                (value,),
16989                0x6023e081ce3cd947,
16990                fidl::encoding::DynamicFlags::empty(),
16991                _decode,
16992            )
16993    }
16994
16995    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
16996        BaseSocketGetBroadcastResult,
16997        fidl::encoding::DefaultFuchsiaResourceDialect,
16998    >;
16999    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
17000        fn _decode(
17001            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17002        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
17003            let _response = fidl::client::decode_transaction_body::<
17004                fidl::encoding::ResultType<
17005                    BaseSocketGetBroadcastResponse,
17006                    fidl_fuchsia_posix::Errno,
17007                >,
17008                fidl::encoding::DefaultFuchsiaResourceDialect,
17009                0x68796fc556f9780d,
17010            >(_buf?)?;
17011            Ok(_response.map(|x| x.value))
17012        }
17013        self.client
17014            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
17015                (),
17016                0x68796fc556f9780d,
17017                fidl::encoding::DynamicFlags::empty(),
17018                _decode,
17019            )
17020    }
17021
17022    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
17023        BaseSocketSetSendBufferResult,
17024        fidl::encoding::DefaultFuchsiaResourceDialect,
17025    >;
17026    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
17027        fn _decode(
17028            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17029        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
17030            let _response = fidl::client::decode_transaction_body::<
17031                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17032                fidl::encoding::DefaultFuchsiaResourceDialect,
17033                0x756eac32d73a7a70,
17034            >(_buf?)?;
17035            Ok(_response.map(|x| x))
17036        }
17037        self.client
17038            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
17039                (value_bytes,),
17040                0x756eac32d73a7a70,
17041                fidl::encoding::DynamicFlags::empty(),
17042                _decode,
17043            )
17044    }
17045
17046    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
17047        BaseSocketGetSendBufferResult,
17048        fidl::encoding::DefaultFuchsiaResourceDialect,
17049    >;
17050    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
17051        fn _decode(
17052            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17053        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
17054            let _response = fidl::client::decode_transaction_body::<
17055                fidl::encoding::ResultType<
17056                    BaseSocketGetSendBufferResponse,
17057                    fidl_fuchsia_posix::Errno,
17058                >,
17059                fidl::encoding::DefaultFuchsiaResourceDialect,
17060                0x78a52fd9c7b2410b,
17061            >(_buf?)?;
17062            Ok(_response.map(|x| x.value_bytes))
17063        }
17064        self.client
17065            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
17066                (),
17067                0x78a52fd9c7b2410b,
17068                fidl::encoding::DynamicFlags::empty(),
17069                _decode,
17070            )
17071    }
17072
17073    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
17074        BaseSocketSetReceiveBufferResult,
17075        fidl::encoding::DefaultFuchsiaResourceDialect,
17076    >;
17077    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
17078        fn _decode(
17079            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17080        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
17081            let _response = fidl::client::decode_transaction_body::<
17082                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17083                fidl::encoding::DefaultFuchsiaResourceDialect,
17084                0x6b0cf2f1919c7001,
17085            >(_buf?)?;
17086            Ok(_response.map(|x| x))
17087        }
17088        self.client.send_query_and_decode::<
17089            BaseSocketSetReceiveBufferRequest,
17090            BaseSocketSetReceiveBufferResult,
17091        >(
17092            (value_bytes,),
17093            0x6b0cf2f1919c7001,
17094            fidl::encoding::DynamicFlags::empty(),
17095            _decode,
17096        )
17097    }
17098
17099    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
17100        BaseSocketGetReceiveBufferResult,
17101        fidl::encoding::DefaultFuchsiaResourceDialect,
17102    >;
17103    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
17104        fn _decode(
17105            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17106        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
17107            let _response = fidl::client::decode_transaction_body::<
17108                fidl::encoding::ResultType<
17109                    BaseSocketGetReceiveBufferResponse,
17110                    fidl_fuchsia_posix::Errno,
17111                >,
17112                fidl::encoding::DefaultFuchsiaResourceDialect,
17113                0x14c1a4b64f709e5c,
17114            >(_buf?)?;
17115            Ok(_response.map(|x| x.value_bytes))
17116        }
17117        self.client.send_query_and_decode::<
17118            fidl::encoding::EmptyPayload,
17119            BaseSocketGetReceiveBufferResult,
17120        >(
17121            (),
17122            0x14c1a4b64f709e5c,
17123            fidl::encoding::DynamicFlags::empty(),
17124            _decode,
17125        )
17126    }
17127
17128    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
17129        BaseSocketSetKeepAliveResult,
17130        fidl::encoding::DefaultFuchsiaResourceDialect,
17131    >;
17132    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
17133        fn _decode(
17134            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17135        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
17136            let _response = fidl::client::decode_transaction_body::<
17137                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17138                fidl::encoding::DefaultFuchsiaResourceDialect,
17139                0x572df8f0b920d2c7,
17140            >(_buf?)?;
17141            Ok(_response.map(|x| x))
17142        }
17143        self.client
17144            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
17145                (value,),
17146                0x572df8f0b920d2c7,
17147                fidl::encoding::DynamicFlags::empty(),
17148                _decode,
17149            )
17150    }
17151
17152    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
17153        BaseSocketGetKeepAliveResult,
17154        fidl::encoding::DefaultFuchsiaResourceDialect,
17155    >;
17156    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
17157        fn _decode(
17158            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17159        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
17160            let _response = fidl::client::decode_transaction_body::<
17161                fidl::encoding::ResultType<
17162                    BaseSocketGetKeepAliveResponse,
17163                    fidl_fuchsia_posix::Errno,
17164                >,
17165                fidl::encoding::DefaultFuchsiaResourceDialect,
17166                0x2dd29d3215f2c9d2,
17167            >(_buf?)?;
17168            Ok(_response.map(|x| x.value))
17169        }
17170        self.client
17171            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
17172                (),
17173                0x2dd29d3215f2c9d2,
17174                fidl::encoding::DynamicFlags::empty(),
17175                _decode,
17176            )
17177    }
17178
17179    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
17180        BaseSocketSetOutOfBandInlineResult,
17181        fidl::encoding::DefaultFuchsiaResourceDialect,
17182    >;
17183    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
17184        fn _decode(
17185            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17186        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
17187            let _response = fidl::client::decode_transaction_body::<
17188                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17189                fidl::encoding::DefaultFuchsiaResourceDialect,
17190                0x3ecb49968bee439,
17191            >(_buf?)?;
17192            Ok(_response.map(|x| x))
17193        }
17194        self.client.send_query_and_decode::<
17195            BaseSocketSetOutOfBandInlineRequest,
17196            BaseSocketSetOutOfBandInlineResult,
17197        >(
17198            (value,),
17199            0x3ecb49968bee439,
17200            fidl::encoding::DynamicFlags::empty(),
17201            _decode,
17202        )
17203    }
17204
17205    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
17206        BaseSocketGetOutOfBandInlineResult,
17207        fidl::encoding::DefaultFuchsiaResourceDialect,
17208    >;
17209    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
17210        fn _decode(
17211            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17212        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
17213            let _response = fidl::client::decode_transaction_body::<
17214                fidl::encoding::ResultType<
17215                    BaseSocketGetOutOfBandInlineResponse,
17216                    fidl_fuchsia_posix::Errno,
17217                >,
17218                fidl::encoding::DefaultFuchsiaResourceDialect,
17219                0x348c1ab3aeca1745,
17220            >(_buf?)?;
17221            Ok(_response.map(|x| x.value))
17222        }
17223        self.client.send_query_and_decode::<
17224            fidl::encoding::EmptyPayload,
17225            BaseSocketGetOutOfBandInlineResult,
17226        >(
17227            (),
17228            0x348c1ab3aeca1745,
17229            fidl::encoding::DynamicFlags::empty(),
17230            _decode,
17231        )
17232    }
17233
17234    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
17235        BaseSocketSetNoCheckResult,
17236        fidl::encoding::DefaultFuchsiaResourceDialect,
17237    >;
17238    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
17239        fn _decode(
17240            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17241        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
17242            let _response = fidl::client::decode_transaction_body::<
17243                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17244                fidl::encoding::DefaultFuchsiaResourceDialect,
17245                0x6bbf00c53a4c78c2,
17246            >(_buf?)?;
17247            Ok(_response.map(|x| x))
17248        }
17249        self.client
17250            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
17251                (value,),
17252                0x6bbf00c53a4c78c2,
17253                fidl::encoding::DynamicFlags::empty(),
17254                _decode,
17255            )
17256    }
17257
17258    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
17259        BaseSocketGetNoCheckResult,
17260        fidl::encoding::DefaultFuchsiaResourceDialect,
17261    >;
17262    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
17263        fn _decode(
17264            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17265        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
17266            let _response = fidl::client::decode_transaction_body::<
17267                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
17268                fidl::encoding::DefaultFuchsiaResourceDialect,
17269                0x2cd4249286417694,
17270            >(_buf?)?;
17271            Ok(_response.map(|x| x.value))
17272        }
17273        self.client
17274            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
17275                (),
17276                0x2cd4249286417694,
17277                fidl::encoding::DynamicFlags::empty(),
17278                _decode,
17279            )
17280    }
17281
17282    type SetLingerResponseFut = fidl::client::QueryResponseFut<
17283        BaseSocketSetLingerResult,
17284        fidl::encoding::DefaultFuchsiaResourceDialect,
17285    >;
17286    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
17287        fn _decode(
17288            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17289        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
17290            let _response = fidl::client::decode_transaction_body::<
17291                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17292                fidl::encoding::DefaultFuchsiaResourceDialect,
17293                0x45386351246e998e,
17294            >(_buf?)?;
17295            Ok(_response.map(|x| x))
17296        }
17297        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
17298            (linger, length_secs),
17299            0x45386351246e998e,
17300            fidl::encoding::DynamicFlags::empty(),
17301            _decode,
17302        )
17303    }
17304
17305    type GetLingerResponseFut = fidl::client::QueryResponseFut<
17306        BaseSocketGetLingerResult,
17307        fidl::encoding::DefaultFuchsiaResourceDialect,
17308    >;
17309    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
17310        fn _decode(
17311            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17312        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
17313            let _response = fidl::client::decode_transaction_body::<
17314                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
17315                fidl::encoding::DefaultFuchsiaResourceDialect,
17316                0x48eb20fc5ccb0e45,
17317            >(_buf?)?;
17318            Ok(_response.map(|x| (x.linger, x.length_secs)))
17319        }
17320        self.client
17321            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
17322                (),
17323                0x48eb20fc5ccb0e45,
17324                fidl::encoding::DynamicFlags::empty(),
17325                _decode,
17326            )
17327    }
17328
17329    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
17330        BaseSocketSetReusePortResult,
17331        fidl::encoding::DefaultFuchsiaResourceDialect,
17332    >;
17333    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
17334        fn _decode(
17335            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17336        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
17337            let _response = fidl::client::decode_transaction_body::<
17338                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17339                fidl::encoding::DefaultFuchsiaResourceDialect,
17340                0x24dd3e5cb36d9ccb,
17341            >(_buf?)?;
17342            Ok(_response.map(|x| x))
17343        }
17344        self.client
17345            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
17346                (value,),
17347                0x24dd3e5cb36d9ccb,
17348                fidl::encoding::DynamicFlags::empty(),
17349                _decode,
17350            )
17351    }
17352
17353    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
17354        BaseSocketGetReusePortResult,
17355        fidl::encoding::DefaultFuchsiaResourceDialect,
17356    >;
17357    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
17358        fn _decode(
17359            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17360        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
17361            let _response = fidl::client::decode_transaction_body::<
17362                fidl::encoding::ResultType<
17363                    BaseSocketGetReusePortResponse,
17364                    fidl_fuchsia_posix::Errno,
17365                >,
17366                fidl::encoding::DefaultFuchsiaResourceDialect,
17367                0x7a112c1ab54ff828,
17368            >(_buf?)?;
17369            Ok(_response.map(|x| x.value))
17370        }
17371        self.client
17372            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
17373                (),
17374                0x7a112c1ab54ff828,
17375                fidl::encoding::DynamicFlags::empty(),
17376                _decode,
17377            )
17378    }
17379
17380    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
17381        BaseSocketGetAcceptConnResult,
17382        fidl::encoding::DefaultFuchsiaResourceDialect,
17383    >;
17384    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
17385        fn _decode(
17386            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17387        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
17388            let _response = fidl::client::decode_transaction_body::<
17389                fidl::encoding::ResultType<
17390                    BaseSocketGetAcceptConnResponse,
17391                    fidl_fuchsia_posix::Errno,
17392                >,
17393                fidl::encoding::DefaultFuchsiaResourceDialect,
17394                0x67ce6db6c2ec8966,
17395            >(_buf?)?;
17396            Ok(_response.map(|x| x.value))
17397        }
17398        self.client
17399            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
17400                (),
17401                0x67ce6db6c2ec8966,
17402                fidl::encoding::DynamicFlags::empty(),
17403                _decode,
17404            )
17405    }
17406
17407    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
17408        BaseSocketSetBindToDeviceResult,
17409        fidl::encoding::DefaultFuchsiaResourceDialect,
17410    >;
17411    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
17412        fn _decode(
17413            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17414        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
17415            let _response = fidl::client::decode_transaction_body::<
17416                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17417                fidl::encoding::DefaultFuchsiaResourceDialect,
17418                0x2118b483f28aafc4,
17419            >(_buf?)?;
17420            Ok(_response.map(|x| x))
17421        }
17422        self.client.send_query_and_decode::<
17423            BaseSocketSetBindToDeviceRequest,
17424            BaseSocketSetBindToDeviceResult,
17425        >(
17426            (value,),
17427            0x2118b483f28aafc4,
17428            fidl::encoding::DynamicFlags::empty(),
17429            _decode,
17430        )
17431    }
17432
17433    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
17434        BaseSocketGetBindToDeviceResult,
17435        fidl::encoding::DefaultFuchsiaResourceDialect,
17436    >;
17437    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
17438        fn _decode(
17439            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17440        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
17441            let _response = fidl::client::decode_transaction_body::<
17442                fidl::encoding::ResultType<
17443                    BaseSocketGetBindToDeviceResponse,
17444                    fidl_fuchsia_posix::Errno,
17445                >,
17446                fidl::encoding::DefaultFuchsiaResourceDialect,
17447                0x1ab1fbf0ef7906c8,
17448            >(_buf?)?;
17449            Ok(_response.map(|x| x.value))
17450        }
17451        self.client
17452            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
17453                (),
17454                0x1ab1fbf0ef7906c8,
17455                fidl::encoding::DynamicFlags::empty(),
17456                _decode,
17457            )
17458    }
17459
17460    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
17461        BaseSocketSetBindToInterfaceIndexResult,
17462        fidl::encoding::DefaultFuchsiaResourceDialect,
17463    >;
17464    fn r#set_bind_to_interface_index(
17465        &self,
17466        mut value: u64,
17467    ) -> Self::SetBindToInterfaceIndexResponseFut {
17468        fn _decode(
17469            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17470        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
17471            let _response = fidl::client::decode_transaction_body::<
17472                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17473                fidl::encoding::DefaultFuchsiaResourceDialect,
17474                0x6e387a0def00821,
17475            >(_buf?)?;
17476            Ok(_response.map(|x| x))
17477        }
17478        self.client.send_query_and_decode::<
17479            BaseSocketSetBindToInterfaceIndexRequest,
17480            BaseSocketSetBindToInterfaceIndexResult,
17481        >(
17482            (value,),
17483            0x6e387a0def00821,
17484            fidl::encoding::DynamicFlags::empty(),
17485            _decode,
17486        )
17487    }
17488
17489    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
17490        BaseSocketGetBindToInterfaceIndexResult,
17491        fidl::encoding::DefaultFuchsiaResourceDialect,
17492    >;
17493    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
17494        fn _decode(
17495            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17496        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
17497            let _response = fidl::client::decode_transaction_body::<
17498                fidl::encoding::ResultType<
17499                    BaseSocketGetBindToInterfaceIndexResponse,
17500                    fidl_fuchsia_posix::Errno,
17501                >,
17502                fidl::encoding::DefaultFuchsiaResourceDialect,
17503                0x59c31dd3e3078295,
17504            >(_buf?)?;
17505            Ok(_response.map(|x| x.value))
17506        }
17507        self.client.send_query_and_decode::<
17508            fidl::encoding::EmptyPayload,
17509            BaseSocketGetBindToInterfaceIndexResult,
17510        >(
17511            (),
17512            0x59c31dd3e3078295,
17513            fidl::encoding::DynamicFlags::empty(),
17514            _decode,
17515        )
17516    }
17517
17518    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
17519        BaseSocketSetTimestampResult,
17520        fidl::encoding::DefaultFuchsiaResourceDialect,
17521    >;
17522    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
17523        fn _decode(
17524            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17525        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
17526            let _response = fidl::client::decode_transaction_body::<
17527                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17528                fidl::encoding::DefaultFuchsiaResourceDialect,
17529                0x285d6516c263d839,
17530            >(_buf?)?;
17531            Ok(_response.map(|x| x))
17532        }
17533        self.client
17534            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
17535                (value,),
17536                0x285d6516c263d839,
17537                fidl::encoding::DynamicFlags::empty(),
17538                _decode,
17539            )
17540    }
17541
17542    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
17543        BaseSocketGetTimestampResult,
17544        fidl::encoding::DefaultFuchsiaResourceDialect,
17545    >;
17546    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
17547        fn _decode(
17548            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17549        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
17550            let _response = fidl::client::decode_transaction_body::<
17551                fidl::encoding::ResultType<
17552                    BaseSocketGetTimestampResponse,
17553                    fidl_fuchsia_posix::Errno,
17554                >,
17555                fidl::encoding::DefaultFuchsiaResourceDialect,
17556                0x49f2fffbbcc2bd27,
17557            >(_buf?)?;
17558            Ok(_response.map(|x| x.value))
17559        }
17560        self.client
17561            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
17562                (),
17563                0x49f2fffbbcc2bd27,
17564                fidl::encoding::DynamicFlags::empty(),
17565                _decode,
17566            )
17567    }
17568
17569    type SetMarkResponseFut = fidl::client::QueryResponseFut<
17570        BaseSocketSetMarkResult,
17571        fidl::encoding::DefaultFuchsiaResourceDialect,
17572    >;
17573    fn r#set_mark(
17574        &self,
17575        mut domain: fidl_fuchsia_net::MarkDomain,
17576        mut mark: &OptionalUint32,
17577    ) -> Self::SetMarkResponseFut {
17578        fn _decode(
17579            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17580        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
17581            let _response = fidl::client::decode_transaction_body::<
17582                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17583                fidl::encoding::DefaultFuchsiaResourceDialect,
17584                0x6ead6de09f653236,
17585            >(_buf?)?;
17586            Ok(_response.map(|x| x))
17587        }
17588        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
17589            (domain, mark),
17590            0x6ead6de09f653236,
17591            fidl::encoding::DynamicFlags::empty(),
17592            _decode,
17593        )
17594    }
17595
17596    type GetMarkResponseFut = fidl::client::QueryResponseFut<
17597        BaseSocketGetMarkResult,
17598        fidl::encoding::DefaultFuchsiaResourceDialect,
17599    >;
17600    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
17601        fn _decode(
17602            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17603        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
17604            let _response = fidl::client::decode_transaction_body::<
17605                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
17606                fidl::encoding::DefaultFuchsiaResourceDialect,
17607                0x57a2752c61d93d47,
17608            >(_buf?)?;
17609            Ok(_response.map(|x| x.mark))
17610        }
17611        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
17612            (domain,),
17613            0x57a2752c61d93d47,
17614            fidl::encoding::DynamicFlags::empty(),
17615            _decode,
17616        )
17617    }
17618
17619    type GetCookieResponseFut = fidl::client::QueryResponseFut<
17620        BaseSocketGetCookieResult,
17621        fidl::encoding::DefaultFuchsiaResourceDialect,
17622    >;
17623    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
17624        fn _decode(
17625            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17626        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
17627            let _response = fidl::client::decode_transaction_body::<
17628                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
17629                fidl::encoding::DefaultFuchsiaResourceDialect,
17630                0x2c2f47fd8f924e52,
17631            >(_buf?)?;
17632            Ok(_response.map(|x| x.value))
17633        }
17634        self.client
17635            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
17636                (),
17637                0x2c2f47fd8f924e52,
17638                fidl::encoding::DynamicFlags::empty(),
17639                _decode,
17640            )
17641    }
17642
17643    type BindResponseFut = fidl::client::QueryResponseFut<
17644        BaseNetworkSocketBindResult,
17645        fidl::encoding::DefaultFuchsiaResourceDialect,
17646    >;
17647    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
17648        fn _decode(
17649            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17650        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
17651            let _response = fidl::client::decode_transaction_body::<
17652                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17653                fidl::encoding::DefaultFuchsiaResourceDialect,
17654                0x4bc6400ae92125d,
17655            >(_buf?)?;
17656            Ok(_response.map(|x| x))
17657        }
17658        self.client
17659            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
17660                (addr,),
17661                0x4bc6400ae92125d,
17662                fidl::encoding::DynamicFlags::empty(),
17663                _decode,
17664            )
17665    }
17666
17667    type ConnectResponseFut = fidl::client::QueryResponseFut<
17668        BaseNetworkSocketConnectResult,
17669        fidl::encoding::DefaultFuchsiaResourceDialect,
17670    >;
17671    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
17672        fn _decode(
17673            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17674        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
17675            let _response = fidl::client::decode_transaction_body::<
17676                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17677                fidl::encoding::DefaultFuchsiaResourceDialect,
17678                0x5f05f19bfdd38871,
17679            >(_buf?)?;
17680            Ok(_response.map(|x| x))
17681        }
17682        self.client.send_query_and_decode::<
17683            BaseNetworkSocketConnectRequest,
17684            BaseNetworkSocketConnectResult,
17685        >(
17686            (addr,),
17687            0x5f05f19bfdd38871,
17688            fidl::encoding::DynamicFlags::empty(),
17689            _decode,
17690        )
17691    }
17692
17693    type DisconnectResponseFut = fidl::client::QueryResponseFut<
17694        BaseNetworkSocketDisconnectResult,
17695        fidl::encoding::DefaultFuchsiaResourceDialect,
17696    >;
17697    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
17698        fn _decode(
17699            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17700        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
17701            let _response = fidl::client::decode_transaction_body::<
17702                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17703                fidl::encoding::DefaultFuchsiaResourceDialect,
17704                0x74e63b91f7b29b2,
17705            >(_buf?)?;
17706            Ok(_response.map(|x| x))
17707        }
17708        self.client.send_query_and_decode::<
17709            fidl::encoding::EmptyPayload,
17710            BaseNetworkSocketDisconnectResult,
17711        >(
17712            (),
17713            0x74e63b91f7b29b2,
17714            fidl::encoding::DynamicFlags::empty(),
17715            _decode,
17716        )
17717    }
17718
17719    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
17720        BaseNetworkSocketGetSockNameResult,
17721        fidl::encoding::DefaultFuchsiaResourceDialect,
17722    >;
17723    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
17724        fn _decode(
17725            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17726        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
17727            let _response = fidl::client::decode_transaction_body::<
17728                fidl::encoding::ResultType<
17729                    BaseNetworkSocketGetSockNameResponse,
17730                    fidl_fuchsia_posix::Errno,
17731                >,
17732                fidl::encoding::DefaultFuchsiaResourceDialect,
17733                0x475f23f84a1a4f85,
17734            >(_buf?)?;
17735            Ok(_response.map(|x| x.addr))
17736        }
17737        self.client.send_query_and_decode::<
17738            fidl::encoding::EmptyPayload,
17739            BaseNetworkSocketGetSockNameResult,
17740        >(
17741            (),
17742            0x475f23f84a1a4f85,
17743            fidl::encoding::DynamicFlags::empty(),
17744            _decode,
17745        )
17746    }
17747
17748    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
17749        BaseNetworkSocketGetPeerNameResult,
17750        fidl::encoding::DefaultFuchsiaResourceDialect,
17751    >;
17752    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
17753        fn _decode(
17754            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17755        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
17756            let _response = fidl::client::decode_transaction_body::<
17757                fidl::encoding::ResultType<
17758                    BaseNetworkSocketGetPeerNameResponse,
17759                    fidl_fuchsia_posix::Errno,
17760                >,
17761                fidl::encoding::DefaultFuchsiaResourceDialect,
17762                0x1ffecf4bd5b6432e,
17763            >(_buf?)?;
17764            Ok(_response.map(|x| x.addr))
17765        }
17766        self.client.send_query_and_decode::<
17767            fidl::encoding::EmptyPayload,
17768            BaseNetworkSocketGetPeerNameResult,
17769        >(
17770            (),
17771            0x1ffecf4bd5b6432e,
17772            fidl::encoding::DynamicFlags::empty(),
17773            _decode,
17774        )
17775    }
17776
17777    type ShutdownResponseFut = fidl::client::QueryResponseFut<
17778        BaseNetworkSocketShutdownResult,
17779        fidl::encoding::DefaultFuchsiaResourceDialect,
17780    >;
17781    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
17782        fn _decode(
17783            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17784        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
17785            let _response = fidl::client::decode_transaction_body::<
17786                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17787                fidl::encoding::DefaultFuchsiaResourceDialect,
17788                0x247f38b6db68c336,
17789            >(_buf?)?;
17790            Ok(_response.map(|x| x))
17791        }
17792        self.client.send_query_and_decode::<
17793            BaseNetworkSocketShutdownRequest,
17794            BaseNetworkSocketShutdownResult,
17795        >(
17796            (mode,),
17797            0x247f38b6db68c336,
17798            fidl::encoding::DynamicFlags::empty(),
17799            _decode,
17800        )
17801    }
17802
17803    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
17804        BaseNetworkSocketSetIpTypeOfServiceResult,
17805        fidl::encoding::DefaultFuchsiaResourceDialect,
17806    >;
17807    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
17808        fn _decode(
17809            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17810        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
17811            let _response = fidl::client::decode_transaction_body::<
17812                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17813                fidl::encoding::DefaultFuchsiaResourceDialect,
17814                0x995c600475b6d46,
17815            >(_buf?)?;
17816            Ok(_response.map(|x| x))
17817        }
17818        self.client.send_query_and_decode::<
17819            BaseNetworkSocketSetIpTypeOfServiceRequest,
17820            BaseNetworkSocketSetIpTypeOfServiceResult,
17821        >(
17822            (value,),
17823            0x995c600475b6d46,
17824            fidl::encoding::DynamicFlags::empty(),
17825            _decode,
17826        )
17827    }
17828
17829    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
17830        BaseNetworkSocketGetIpTypeOfServiceResult,
17831        fidl::encoding::DefaultFuchsiaResourceDialect,
17832    >;
17833    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
17834        fn _decode(
17835            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17836        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
17837            let _response = fidl::client::decode_transaction_body::<
17838                fidl::encoding::ResultType<
17839                    BaseNetworkSocketGetIpTypeOfServiceResponse,
17840                    fidl_fuchsia_posix::Errno,
17841                >,
17842                fidl::encoding::DefaultFuchsiaResourceDialect,
17843                0x3814a04259f75fcb,
17844            >(_buf?)?;
17845            Ok(_response.map(|x| x.value))
17846        }
17847        self.client.send_query_and_decode::<
17848            fidl::encoding::EmptyPayload,
17849            BaseNetworkSocketGetIpTypeOfServiceResult,
17850        >(
17851            (),
17852            0x3814a04259f75fcb,
17853            fidl::encoding::DynamicFlags::empty(),
17854            _decode,
17855        )
17856    }
17857
17858    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
17859        BaseNetworkSocketSetIpTtlResult,
17860        fidl::encoding::DefaultFuchsiaResourceDialect,
17861    >;
17862    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
17863        fn _decode(
17864            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17865        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
17866            let _response = fidl::client::decode_transaction_body::<
17867                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17868                fidl::encoding::DefaultFuchsiaResourceDialect,
17869                0x29e2424b433ae1ef,
17870            >(_buf?)?;
17871            Ok(_response.map(|x| x))
17872        }
17873        self.client.send_query_and_decode::<
17874            BaseNetworkSocketSetIpTtlRequest,
17875            BaseNetworkSocketSetIpTtlResult,
17876        >(
17877            (value,),
17878            0x29e2424b433ae1ef,
17879            fidl::encoding::DynamicFlags::empty(),
17880            _decode,
17881        )
17882    }
17883
17884    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
17885        BaseNetworkSocketGetIpTtlResult,
17886        fidl::encoding::DefaultFuchsiaResourceDialect,
17887    >;
17888    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
17889        fn _decode(
17890            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17891        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
17892            let _response = fidl::client::decode_transaction_body::<
17893                fidl::encoding::ResultType<
17894                    BaseNetworkSocketGetIpTtlResponse,
17895                    fidl_fuchsia_posix::Errno,
17896                >,
17897                fidl::encoding::DefaultFuchsiaResourceDialect,
17898                0x47e47fa1f24da471,
17899            >(_buf?)?;
17900            Ok(_response.map(|x| x.value))
17901        }
17902        self.client
17903            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
17904                (),
17905                0x47e47fa1f24da471,
17906                fidl::encoding::DynamicFlags::empty(),
17907                _decode,
17908            )
17909    }
17910
17911    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
17912        BaseNetworkSocketSetIpPacketInfoResult,
17913        fidl::encoding::DefaultFuchsiaResourceDialect,
17914    >;
17915    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
17916        fn _decode(
17917            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17918        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
17919            let _response = fidl::client::decode_transaction_body::<
17920                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17921                fidl::encoding::DefaultFuchsiaResourceDialect,
17922                0x392d16bee20c0e16,
17923            >(_buf?)?;
17924            Ok(_response.map(|x| x))
17925        }
17926        self.client.send_query_and_decode::<
17927            BaseNetworkSocketSetIpPacketInfoRequest,
17928            BaseNetworkSocketSetIpPacketInfoResult,
17929        >(
17930            (value,),
17931            0x392d16bee20c0e16,
17932            fidl::encoding::DynamicFlags::empty(),
17933            _decode,
17934        )
17935    }
17936
17937    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
17938        BaseNetworkSocketGetIpPacketInfoResult,
17939        fidl::encoding::DefaultFuchsiaResourceDialect,
17940    >;
17941    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
17942        fn _decode(
17943            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17944        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
17945            let _response = fidl::client::decode_transaction_body::<
17946                fidl::encoding::ResultType<
17947                    BaseNetworkSocketGetIpPacketInfoResponse,
17948                    fidl_fuchsia_posix::Errno,
17949                >,
17950                fidl::encoding::DefaultFuchsiaResourceDialect,
17951                0x54b505f242280740,
17952            >(_buf?)?;
17953            Ok(_response.map(|x| x.value))
17954        }
17955        self.client.send_query_and_decode::<
17956            fidl::encoding::EmptyPayload,
17957            BaseNetworkSocketGetIpPacketInfoResult,
17958        >(
17959            (),
17960            0x54b505f242280740,
17961            fidl::encoding::DynamicFlags::empty(),
17962            _decode,
17963        )
17964    }
17965
17966    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
17967        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
17968        fidl::encoding::DefaultFuchsiaResourceDialect,
17969    >;
17970    fn r#set_ip_receive_type_of_service(
17971        &self,
17972        mut value: bool,
17973    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
17974        fn _decode(
17975            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17976        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
17977            let _response = fidl::client::decode_transaction_body::<
17978                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17979                fidl::encoding::DefaultFuchsiaResourceDialect,
17980                0x6c4f6714995f84ef,
17981            >(_buf?)?;
17982            Ok(_response.map(|x| x))
17983        }
17984        self.client.send_query_and_decode::<
17985            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
17986            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
17987        >(
17988            (value,),
17989            0x6c4f6714995f84ef,
17990            fidl::encoding::DynamicFlags::empty(),
17991            _decode,
17992        )
17993    }
17994
17995    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
17996        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
17997        fidl::encoding::DefaultFuchsiaResourceDialect,
17998    >;
17999    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
18000        fn _decode(
18001            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18002        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
18003            let _response = fidl::client::decode_transaction_body::<
18004                fidl::encoding::ResultType<
18005                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
18006                    fidl_fuchsia_posix::Errno,
18007                >,
18008                fidl::encoding::DefaultFuchsiaResourceDialect,
18009                0x4158ba7dc2795960,
18010            >(_buf?)?;
18011            Ok(_response.map(|x| x.value))
18012        }
18013        self.client.send_query_and_decode::<
18014            fidl::encoding::EmptyPayload,
18015            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
18016        >(
18017            (),
18018            0x4158ba7dc2795960,
18019            fidl::encoding::DynamicFlags::empty(),
18020            _decode,
18021        )
18022    }
18023
18024    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
18025        BaseNetworkSocketSetIpReceiveTtlResult,
18026        fidl::encoding::DefaultFuchsiaResourceDialect,
18027    >;
18028    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
18029        fn _decode(
18030            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18031        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
18032            let _response = fidl::client::decode_transaction_body::<
18033                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18034                fidl::encoding::DefaultFuchsiaResourceDialect,
18035                0x46f15be0ce0ab82b,
18036            >(_buf?)?;
18037            Ok(_response.map(|x| x))
18038        }
18039        self.client.send_query_and_decode::<
18040            BaseNetworkSocketSetIpReceiveTtlRequest,
18041            BaseNetworkSocketSetIpReceiveTtlResult,
18042        >(
18043            (value,),
18044            0x46f15be0ce0ab82b,
18045            fidl::encoding::DynamicFlags::empty(),
18046            _decode,
18047        )
18048    }
18049
18050    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
18051        BaseNetworkSocketGetIpReceiveTtlResult,
18052        fidl::encoding::DefaultFuchsiaResourceDialect,
18053    >;
18054    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
18055        fn _decode(
18056            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18057        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
18058            let _response = fidl::client::decode_transaction_body::<
18059                fidl::encoding::ResultType<
18060                    BaseNetworkSocketGetIpReceiveTtlResponse,
18061                    fidl_fuchsia_posix::Errno,
18062                >,
18063                fidl::encoding::DefaultFuchsiaResourceDialect,
18064                0x678ddd5a5dfa2eb5,
18065            >(_buf?)?;
18066            Ok(_response.map(|x| x.value))
18067        }
18068        self.client.send_query_and_decode::<
18069            fidl::encoding::EmptyPayload,
18070            BaseNetworkSocketGetIpReceiveTtlResult,
18071        >(
18072            (),
18073            0x678ddd5a5dfa2eb5,
18074            fidl::encoding::DynamicFlags::empty(),
18075            _decode,
18076        )
18077    }
18078
18079    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18080        BaseNetworkSocketSetIpMulticastInterfaceResult,
18081        fidl::encoding::DefaultFuchsiaResourceDialect,
18082    >;
18083    fn r#set_ip_multicast_interface(
18084        &self,
18085        mut iface: u64,
18086        mut address: &fidl_fuchsia_net::Ipv4Address,
18087    ) -> Self::SetIpMulticastInterfaceResponseFut {
18088        fn _decode(
18089            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18090        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
18091            let _response = fidl::client::decode_transaction_body::<
18092                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18093                fidl::encoding::DefaultFuchsiaResourceDialect,
18094                0x752fbfa9b12befe,
18095            >(_buf?)?;
18096            Ok(_response.map(|x| x))
18097        }
18098        self.client.send_query_and_decode::<
18099            BaseNetworkSocketSetIpMulticastInterfaceRequest,
18100            BaseNetworkSocketSetIpMulticastInterfaceResult,
18101        >(
18102            (iface, address,),
18103            0x752fbfa9b12befe,
18104            fidl::encoding::DynamicFlags::empty(),
18105            _decode,
18106        )
18107    }
18108
18109    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18110        BaseNetworkSocketGetIpMulticastInterfaceResult,
18111        fidl::encoding::DefaultFuchsiaResourceDialect,
18112    >;
18113    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
18114        fn _decode(
18115            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18116        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
18117            let _response = fidl::client::decode_transaction_body::<
18118                fidl::encoding::ResultType<
18119                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
18120                    fidl_fuchsia_posix::Errno,
18121                >,
18122                fidl::encoding::DefaultFuchsiaResourceDialect,
18123                0x320bd14c4df046c4,
18124            >(_buf?)?;
18125            Ok(_response.map(|x| x.value))
18126        }
18127        self.client.send_query_and_decode::<
18128            fidl::encoding::EmptyPayload,
18129            BaseNetworkSocketGetIpMulticastInterfaceResult,
18130        >(
18131            (),
18132            0x320bd14c4df046c4,
18133            fidl::encoding::DynamicFlags::empty(),
18134            _decode,
18135        )
18136    }
18137
18138    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
18139        BaseNetworkSocketSetIpMulticastTtlResult,
18140        fidl::encoding::DefaultFuchsiaResourceDialect,
18141    >;
18142    fn r#set_ip_multicast_ttl(
18143        &self,
18144        mut value: &OptionalUint8,
18145    ) -> Self::SetIpMulticastTtlResponseFut {
18146        fn _decode(
18147            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18148        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
18149            let _response = fidl::client::decode_transaction_body::<
18150                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18151                fidl::encoding::DefaultFuchsiaResourceDialect,
18152                0x63134d53772916a1,
18153            >(_buf?)?;
18154            Ok(_response.map(|x| x))
18155        }
18156        self.client.send_query_and_decode::<
18157            BaseNetworkSocketSetIpMulticastTtlRequest,
18158            BaseNetworkSocketSetIpMulticastTtlResult,
18159        >(
18160            (value,),
18161            0x63134d53772916a1,
18162            fidl::encoding::DynamicFlags::empty(),
18163            _decode,
18164        )
18165    }
18166
18167    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
18168        BaseNetworkSocketGetIpMulticastTtlResult,
18169        fidl::encoding::DefaultFuchsiaResourceDialect,
18170    >;
18171    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
18172        fn _decode(
18173            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18174        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
18175            let _response = fidl::client::decode_transaction_body::<
18176                fidl::encoding::ResultType<
18177                    BaseNetworkSocketGetIpMulticastTtlResponse,
18178                    fidl_fuchsia_posix::Errno,
18179                >,
18180                fidl::encoding::DefaultFuchsiaResourceDialect,
18181                0x4665cd378f39e1a,
18182            >(_buf?)?;
18183            Ok(_response.map(|x| x.value))
18184        }
18185        self.client.send_query_and_decode::<
18186            fidl::encoding::EmptyPayload,
18187            BaseNetworkSocketGetIpMulticastTtlResult,
18188        >(
18189            (),
18190            0x4665cd378f39e1a,
18191            fidl::encoding::DynamicFlags::empty(),
18192            _decode,
18193        )
18194    }
18195
18196    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18197        BaseNetworkSocketSetIpMulticastLoopbackResult,
18198        fidl::encoding::DefaultFuchsiaResourceDialect,
18199    >;
18200    fn r#set_ip_multicast_loopback(
18201        &self,
18202        mut value: bool,
18203    ) -> Self::SetIpMulticastLoopbackResponseFut {
18204        fn _decode(
18205            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18206        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
18207            let _response = fidl::client::decode_transaction_body::<
18208                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18209                fidl::encoding::DefaultFuchsiaResourceDialect,
18210                0x20c55c11f00943ea,
18211            >(_buf?)?;
18212            Ok(_response.map(|x| x))
18213        }
18214        self.client.send_query_and_decode::<
18215            BaseNetworkSocketSetIpMulticastLoopbackRequest,
18216            BaseNetworkSocketSetIpMulticastLoopbackResult,
18217        >(
18218            (value,),
18219            0x20c55c11f00943ea,
18220            fidl::encoding::DynamicFlags::empty(),
18221            _decode,
18222        )
18223    }
18224
18225    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18226        BaseNetworkSocketGetIpMulticastLoopbackResult,
18227        fidl::encoding::DefaultFuchsiaResourceDialect,
18228    >;
18229    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
18230        fn _decode(
18231            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18232        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
18233            let _response = fidl::client::decode_transaction_body::<
18234                fidl::encoding::ResultType<
18235                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
18236                    fidl_fuchsia_posix::Errno,
18237                >,
18238                fidl::encoding::DefaultFuchsiaResourceDialect,
18239                0x3b6b26ff558298f2,
18240            >(_buf?)?;
18241            Ok(_response.map(|x| x.value))
18242        }
18243        self.client.send_query_and_decode::<
18244            fidl::encoding::EmptyPayload,
18245            BaseNetworkSocketGetIpMulticastLoopbackResult,
18246        >(
18247            (),
18248            0x3b6b26ff558298f2,
18249            fidl::encoding::DynamicFlags::empty(),
18250            _decode,
18251        )
18252    }
18253
18254    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
18255        BaseNetworkSocketAddIpMembershipResult,
18256        fidl::encoding::DefaultFuchsiaResourceDialect,
18257    >;
18258    fn r#add_ip_membership(
18259        &self,
18260        mut membership: &IpMulticastMembership,
18261    ) -> Self::AddIpMembershipResponseFut {
18262        fn _decode(
18263            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18264        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
18265            let _response = fidl::client::decode_transaction_body::<
18266                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18267                fidl::encoding::DefaultFuchsiaResourceDialect,
18268                0x76bc7df115a3b4d0,
18269            >(_buf?)?;
18270            Ok(_response.map(|x| x))
18271        }
18272        self.client.send_query_and_decode::<
18273            BaseNetworkSocketAddIpMembershipRequest,
18274            BaseNetworkSocketAddIpMembershipResult,
18275        >(
18276            (membership,),
18277            0x76bc7df115a3b4d0,
18278            fidl::encoding::DynamicFlags::empty(),
18279            _decode,
18280        )
18281    }
18282
18283    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
18284        BaseNetworkSocketDropIpMembershipResult,
18285        fidl::encoding::DefaultFuchsiaResourceDialect,
18286    >;
18287    fn r#drop_ip_membership(
18288        &self,
18289        mut membership: &IpMulticastMembership,
18290    ) -> Self::DropIpMembershipResponseFut {
18291        fn _decode(
18292            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18293        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
18294            let _response = fidl::client::decode_transaction_body::<
18295                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18296                fidl::encoding::DefaultFuchsiaResourceDialect,
18297                0x2888f3099188d03,
18298            >(_buf?)?;
18299            Ok(_response.map(|x| x))
18300        }
18301        self.client.send_query_and_decode::<
18302            BaseNetworkSocketDropIpMembershipRequest,
18303            BaseNetworkSocketDropIpMembershipResult,
18304        >(
18305            (membership,),
18306            0x2888f3099188d03,
18307            fidl::encoding::DynamicFlags::empty(),
18308            _decode,
18309        )
18310    }
18311
18312    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
18313        BaseNetworkSocketSetIpTransparentResult,
18314        fidl::encoding::DefaultFuchsiaResourceDialect,
18315    >;
18316    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
18317        fn _decode(
18318            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18319        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
18320            let _response = fidl::client::decode_transaction_body::<
18321                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18322                fidl::encoding::DefaultFuchsiaResourceDialect,
18323                0x1ae532b0c066e3a0,
18324            >(_buf?)?;
18325            Ok(_response.map(|x| x))
18326        }
18327        self.client.send_query_and_decode::<
18328            BaseNetworkSocketSetIpTransparentRequest,
18329            BaseNetworkSocketSetIpTransparentResult,
18330        >(
18331            (value,),
18332            0x1ae532b0c066e3a0,
18333            fidl::encoding::DynamicFlags::empty(),
18334            _decode,
18335        )
18336    }
18337
18338    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
18339        BaseNetworkSocketGetIpTransparentResult,
18340        fidl::encoding::DefaultFuchsiaResourceDialect,
18341    >;
18342    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
18343        fn _decode(
18344            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18345        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
18346            let _response = fidl::client::decode_transaction_body::<
18347                fidl::encoding::ResultType<
18348                    BaseNetworkSocketGetIpTransparentResponse,
18349                    fidl_fuchsia_posix::Errno,
18350                >,
18351                fidl::encoding::DefaultFuchsiaResourceDialect,
18352                0x51d43695962ebfb5,
18353            >(_buf?)?;
18354            Ok(_response.map(|x| x.value))
18355        }
18356        self.client.send_query_and_decode::<
18357            fidl::encoding::EmptyPayload,
18358            BaseNetworkSocketGetIpTransparentResult,
18359        >(
18360            (),
18361            0x51d43695962ebfb5,
18362            fidl::encoding::DynamicFlags::empty(),
18363            _decode,
18364        )
18365    }
18366
18367    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
18368        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
18369        fidl::encoding::DefaultFuchsiaResourceDialect,
18370    >;
18371    fn r#set_ip_receive_original_destination_address(
18372        &self,
18373        mut value: bool,
18374    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
18375        fn _decode(
18376            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18377        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
18378        {
18379            let _response = fidl::client::decode_transaction_body::<
18380                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18381                fidl::encoding::DefaultFuchsiaResourceDialect,
18382                0x4722b4ce52f7840,
18383            >(_buf?)?;
18384            Ok(_response.map(|x| x))
18385        }
18386        self.client.send_query_and_decode::<
18387            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
18388            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
18389        >(
18390            (value,),
18391            0x4722b4ce52f7840,
18392            fidl::encoding::DynamicFlags::empty(),
18393            _decode,
18394        )
18395    }
18396
18397    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
18398        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
18399        fidl::encoding::DefaultFuchsiaResourceDialect,
18400    >;
18401    fn r#get_ip_receive_original_destination_address(
18402        &self,
18403    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
18404        fn _decode(
18405            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18406        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
18407        {
18408            let _response = fidl::client::decode_transaction_body::<
18409                fidl::encoding::ResultType<
18410                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
18411                    fidl_fuchsia_posix::Errno,
18412                >,
18413                fidl::encoding::DefaultFuchsiaResourceDialect,
18414                0x2a0e7dc5d6bfdfe9,
18415            >(_buf?)?;
18416            Ok(_response.map(|x| x.value))
18417        }
18418        self.client.send_query_and_decode::<
18419            fidl::encoding::EmptyPayload,
18420            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
18421        >(
18422            (),
18423            0x2a0e7dc5d6bfdfe9,
18424            fidl::encoding::DynamicFlags::empty(),
18425            _decode,
18426        )
18427    }
18428
18429    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
18430        BaseNetworkSocketAddIpv6MembershipResult,
18431        fidl::encoding::DefaultFuchsiaResourceDialect,
18432    >;
18433    fn r#add_ipv6_membership(
18434        &self,
18435        mut membership: &Ipv6MulticastMembership,
18436    ) -> Self::AddIpv6MembershipResponseFut {
18437        fn _decode(
18438            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18439        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
18440            let _response = fidl::client::decode_transaction_body::<
18441                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18442                fidl::encoding::DefaultFuchsiaResourceDialect,
18443                0x7c94727acb4ea4b3,
18444            >(_buf?)?;
18445            Ok(_response.map(|x| x))
18446        }
18447        self.client.send_query_and_decode::<
18448            BaseNetworkSocketAddIpv6MembershipRequest,
18449            BaseNetworkSocketAddIpv6MembershipResult,
18450        >(
18451            (membership,),
18452            0x7c94727acb4ea4b3,
18453            fidl::encoding::DynamicFlags::empty(),
18454            _decode,
18455        )
18456    }
18457
18458    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
18459        BaseNetworkSocketDropIpv6MembershipResult,
18460        fidl::encoding::DefaultFuchsiaResourceDialect,
18461    >;
18462    fn r#drop_ipv6_membership(
18463        &self,
18464        mut membership: &Ipv6MulticastMembership,
18465    ) -> Self::DropIpv6MembershipResponseFut {
18466        fn _decode(
18467            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18468        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
18469            let _response = fidl::client::decode_transaction_body::<
18470                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18471                fidl::encoding::DefaultFuchsiaResourceDialect,
18472                0x42104c70ccaba304,
18473            >(_buf?)?;
18474            Ok(_response.map(|x| x))
18475        }
18476        self.client.send_query_and_decode::<
18477            BaseNetworkSocketDropIpv6MembershipRequest,
18478            BaseNetworkSocketDropIpv6MembershipResult,
18479        >(
18480            (membership,),
18481            0x42104c70ccaba304,
18482            fidl::encoding::DynamicFlags::empty(),
18483            _decode,
18484        )
18485    }
18486
18487    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18488        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
18489        fidl::encoding::DefaultFuchsiaResourceDialect,
18490    >;
18491    fn r#set_ipv6_multicast_interface(
18492        &self,
18493        mut value: u64,
18494    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
18495        fn _decode(
18496            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18497        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
18498            let _response = fidl::client::decode_transaction_body::<
18499                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18500                fidl::encoding::DefaultFuchsiaResourceDialect,
18501                0x135f76db3774ab3b,
18502            >(_buf?)?;
18503            Ok(_response.map(|x| x))
18504        }
18505        self.client.send_query_and_decode::<
18506            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
18507            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
18508        >(
18509            (value,),
18510            0x135f76db3774ab3b,
18511            fidl::encoding::DynamicFlags::empty(),
18512            _decode,
18513        )
18514    }
18515
18516    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18517        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
18518        fidl::encoding::DefaultFuchsiaResourceDialect,
18519    >;
18520    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
18521        fn _decode(
18522            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18523        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
18524            let _response = fidl::client::decode_transaction_body::<
18525                fidl::encoding::ResultType<
18526                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
18527                    fidl_fuchsia_posix::Errno,
18528                >,
18529                fidl::encoding::DefaultFuchsiaResourceDialect,
18530                0x1f26fcdd348f1882,
18531            >(_buf?)?;
18532            Ok(_response.map(|x| x.value))
18533        }
18534        self.client.send_query_and_decode::<
18535            fidl::encoding::EmptyPayload,
18536            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
18537        >(
18538            (),
18539            0x1f26fcdd348f1882,
18540            fidl::encoding::DynamicFlags::empty(),
18541            _decode,
18542        )
18543    }
18544
18545    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
18546        BaseNetworkSocketSetIpv6UnicastHopsResult,
18547        fidl::encoding::DefaultFuchsiaResourceDialect,
18548    >;
18549    fn r#set_ipv6_unicast_hops(
18550        &self,
18551        mut value: &OptionalUint8,
18552    ) -> Self::SetIpv6UnicastHopsResponseFut {
18553        fn _decode(
18554            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18555        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
18556            let _response = fidl::client::decode_transaction_body::<
18557                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18558                fidl::encoding::DefaultFuchsiaResourceDialect,
18559                0x157d51e98f462859,
18560            >(_buf?)?;
18561            Ok(_response.map(|x| x))
18562        }
18563        self.client.send_query_and_decode::<
18564            BaseNetworkSocketSetIpv6UnicastHopsRequest,
18565            BaseNetworkSocketSetIpv6UnicastHopsResult,
18566        >(
18567            (value,),
18568            0x157d51e98f462859,
18569            fidl::encoding::DynamicFlags::empty(),
18570            _decode,
18571        )
18572    }
18573
18574    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
18575        BaseNetworkSocketGetIpv6UnicastHopsResult,
18576        fidl::encoding::DefaultFuchsiaResourceDialect,
18577    >;
18578    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
18579        fn _decode(
18580            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18581        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
18582            let _response = fidl::client::decode_transaction_body::<
18583                fidl::encoding::ResultType<
18584                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
18585                    fidl_fuchsia_posix::Errno,
18586                >,
18587                fidl::encoding::DefaultFuchsiaResourceDialect,
18588                0x21f4641cad8bd8d2,
18589            >(_buf?)?;
18590            Ok(_response.map(|x| x.value))
18591        }
18592        self.client.send_query_and_decode::<
18593            fidl::encoding::EmptyPayload,
18594            BaseNetworkSocketGetIpv6UnicastHopsResult,
18595        >(
18596            (),
18597            0x21f4641cad8bd8d2,
18598            fidl::encoding::DynamicFlags::empty(),
18599            _decode,
18600        )
18601    }
18602
18603    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
18604        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
18605        fidl::encoding::DefaultFuchsiaResourceDialect,
18606    >;
18607    fn r#set_ipv6_receive_hop_limit(
18608        &self,
18609        mut value: bool,
18610    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
18611        fn _decode(
18612            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18613        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
18614            let _response = fidl::client::decode_transaction_body::<
18615                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18616                fidl::encoding::DefaultFuchsiaResourceDialect,
18617                0x5c24808ed2e84a1e,
18618            >(_buf?)?;
18619            Ok(_response.map(|x| x))
18620        }
18621        self.client.send_query_and_decode::<
18622            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
18623            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
18624        >(
18625            (value,),
18626            0x5c24808ed2e84a1e,
18627            fidl::encoding::DynamicFlags::empty(),
18628            _decode,
18629        )
18630    }
18631
18632    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
18633        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
18634        fidl::encoding::DefaultFuchsiaResourceDialect,
18635    >;
18636    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
18637        fn _decode(
18638            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18639        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
18640            let _response = fidl::client::decode_transaction_body::<
18641                fidl::encoding::ResultType<
18642                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
18643                    fidl_fuchsia_posix::Errno,
18644                >,
18645                fidl::encoding::DefaultFuchsiaResourceDialect,
18646                0x341e06689885b4c0,
18647            >(_buf?)?;
18648            Ok(_response.map(|x| x.value))
18649        }
18650        self.client.send_query_and_decode::<
18651            fidl::encoding::EmptyPayload,
18652            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
18653        >(
18654            (),
18655            0x341e06689885b4c0,
18656            fidl::encoding::DynamicFlags::empty(),
18657            _decode,
18658        )
18659    }
18660
18661    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
18662        BaseNetworkSocketSetIpv6MulticastHopsResult,
18663        fidl::encoding::DefaultFuchsiaResourceDialect,
18664    >;
18665    fn r#set_ipv6_multicast_hops(
18666        &self,
18667        mut value: &OptionalUint8,
18668    ) -> Self::SetIpv6MulticastHopsResponseFut {
18669        fn _decode(
18670            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18671        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
18672            let _response = fidl::client::decode_transaction_body::<
18673                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18674                fidl::encoding::DefaultFuchsiaResourceDialect,
18675                0x25b9cd4d181f82c1,
18676            >(_buf?)?;
18677            Ok(_response.map(|x| x))
18678        }
18679        self.client.send_query_and_decode::<
18680            BaseNetworkSocketSetIpv6MulticastHopsRequest,
18681            BaseNetworkSocketSetIpv6MulticastHopsResult,
18682        >(
18683            (value,),
18684            0x25b9cd4d181f82c1,
18685            fidl::encoding::DynamicFlags::empty(),
18686            _decode,
18687        )
18688    }
18689
18690    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
18691        BaseNetworkSocketGetIpv6MulticastHopsResult,
18692        fidl::encoding::DefaultFuchsiaResourceDialect,
18693    >;
18694    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
18695        fn _decode(
18696            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18697        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
18698            let _response = fidl::client::decode_transaction_body::<
18699                fidl::encoding::ResultType<
18700                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
18701                    fidl_fuchsia_posix::Errno,
18702                >,
18703                fidl::encoding::DefaultFuchsiaResourceDialect,
18704                0x52916948a365012a,
18705            >(_buf?)?;
18706            Ok(_response.map(|x| x.value))
18707        }
18708        self.client.send_query_and_decode::<
18709            fidl::encoding::EmptyPayload,
18710            BaseNetworkSocketGetIpv6MulticastHopsResult,
18711        >(
18712            (),
18713            0x52916948a365012a,
18714            fidl::encoding::DynamicFlags::empty(),
18715            _decode,
18716        )
18717    }
18718
18719    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18720        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
18721        fidl::encoding::DefaultFuchsiaResourceDialect,
18722    >;
18723    fn r#set_ipv6_multicast_loopback(
18724        &self,
18725        mut value: bool,
18726    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
18727        fn _decode(
18728            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18729        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
18730            let _response = fidl::client::decode_transaction_body::<
18731                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18732                fidl::encoding::DefaultFuchsiaResourceDialect,
18733                0x55701c409ff41b40,
18734            >(_buf?)?;
18735            Ok(_response.map(|x| x))
18736        }
18737        self.client.send_query_and_decode::<
18738            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
18739            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
18740        >(
18741            (value,),
18742            0x55701c409ff41b40,
18743            fidl::encoding::DynamicFlags::empty(),
18744            _decode,
18745        )
18746    }
18747
18748    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18749        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
18750        fidl::encoding::DefaultFuchsiaResourceDialect,
18751    >;
18752    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
18753        fn _decode(
18754            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18755        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
18756            let _response = fidl::client::decode_transaction_body::<
18757                fidl::encoding::ResultType<
18758                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
18759                    fidl_fuchsia_posix::Errno,
18760                >,
18761                fidl::encoding::DefaultFuchsiaResourceDialect,
18762                0x4415b701fde319c3,
18763            >(_buf?)?;
18764            Ok(_response.map(|x| x.value))
18765        }
18766        self.client.send_query_and_decode::<
18767            fidl::encoding::EmptyPayload,
18768            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
18769        >(
18770            (),
18771            0x4415b701fde319c3,
18772            fidl::encoding::DynamicFlags::empty(),
18773            _decode,
18774        )
18775    }
18776
18777    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
18778        BaseNetworkSocketSetIpv6OnlyResult,
18779        fidl::encoding::DefaultFuchsiaResourceDialect,
18780    >;
18781    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
18782        fn _decode(
18783            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18784        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
18785            let _response = fidl::client::decode_transaction_body::<
18786                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18787                fidl::encoding::DefaultFuchsiaResourceDialect,
18788                0x4873f1364758cbba,
18789            >(_buf?)?;
18790            Ok(_response.map(|x| x))
18791        }
18792        self.client.send_query_and_decode::<
18793            BaseNetworkSocketSetIpv6OnlyRequest,
18794            BaseNetworkSocketSetIpv6OnlyResult,
18795        >(
18796            (value,),
18797            0x4873f1364758cbba,
18798            fidl::encoding::DynamicFlags::empty(),
18799            _decode,
18800        )
18801    }
18802
18803    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
18804        BaseNetworkSocketGetIpv6OnlyResult,
18805        fidl::encoding::DefaultFuchsiaResourceDialect,
18806    >;
18807    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
18808        fn _decode(
18809            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18810        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
18811            let _response = fidl::client::decode_transaction_body::<
18812                fidl::encoding::ResultType<
18813                    BaseNetworkSocketGetIpv6OnlyResponse,
18814                    fidl_fuchsia_posix::Errno,
18815                >,
18816                fidl::encoding::DefaultFuchsiaResourceDialect,
18817                0x4aa3340a1a26b89c,
18818            >(_buf?)?;
18819            Ok(_response.map(|x| x.value))
18820        }
18821        self.client.send_query_and_decode::<
18822            fidl::encoding::EmptyPayload,
18823            BaseNetworkSocketGetIpv6OnlyResult,
18824        >(
18825            (),
18826            0x4aa3340a1a26b89c,
18827            fidl::encoding::DynamicFlags::empty(),
18828            _decode,
18829        )
18830    }
18831
18832    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
18833        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
18834        fidl::encoding::DefaultFuchsiaResourceDialect,
18835    >;
18836    fn r#set_ipv6_receive_traffic_class(
18837        &self,
18838        mut value: bool,
18839    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
18840        fn _decode(
18841            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18842        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
18843            let _response = fidl::client::decode_transaction_body::<
18844                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18845                fidl::encoding::DefaultFuchsiaResourceDialect,
18846                0x58f07c8788d099a0,
18847            >(_buf?)?;
18848            Ok(_response.map(|x| x))
18849        }
18850        self.client.send_query_and_decode::<
18851            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
18852            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
18853        >(
18854            (value,),
18855            0x58f07c8788d099a0,
18856            fidl::encoding::DynamicFlags::empty(),
18857            _decode,
18858        )
18859    }
18860
18861    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
18862        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
18863        fidl::encoding::DefaultFuchsiaResourceDialect,
18864    >;
18865    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
18866        fn _decode(
18867            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18868        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
18869            let _response = fidl::client::decode_transaction_body::<
18870                fidl::encoding::ResultType<
18871                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
18872                    fidl_fuchsia_posix::Errno,
18873                >,
18874                fidl::encoding::DefaultFuchsiaResourceDialect,
18875                0x2e334df1da553ffa,
18876            >(_buf?)?;
18877            Ok(_response.map(|x| x.value))
18878        }
18879        self.client.send_query_and_decode::<
18880            fidl::encoding::EmptyPayload,
18881            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
18882        >(
18883            (),
18884            0x2e334df1da553ffa,
18885            fidl::encoding::DynamicFlags::empty(),
18886            _decode,
18887        )
18888    }
18889
18890    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
18891        BaseNetworkSocketSetIpv6TrafficClassResult,
18892        fidl::encoding::DefaultFuchsiaResourceDialect,
18893    >;
18894    fn r#set_ipv6_traffic_class(
18895        &self,
18896        mut value: &OptionalUint8,
18897    ) -> Self::SetIpv6TrafficClassResponseFut {
18898        fn _decode(
18899            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18900        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
18901            let _response = fidl::client::decode_transaction_body::<
18902                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18903                fidl::encoding::DefaultFuchsiaResourceDialect,
18904                0x6af077800c5a0b4f,
18905            >(_buf?)?;
18906            Ok(_response.map(|x| x))
18907        }
18908        self.client.send_query_and_decode::<
18909            BaseNetworkSocketSetIpv6TrafficClassRequest,
18910            BaseNetworkSocketSetIpv6TrafficClassResult,
18911        >(
18912            (value,),
18913            0x6af077800c5a0b4f,
18914            fidl::encoding::DynamicFlags::empty(),
18915            _decode,
18916        )
18917    }
18918
18919    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
18920        BaseNetworkSocketGetIpv6TrafficClassResult,
18921        fidl::encoding::DefaultFuchsiaResourceDialect,
18922    >;
18923    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
18924        fn _decode(
18925            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18926        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
18927            let _response = fidl::client::decode_transaction_body::<
18928                fidl::encoding::ResultType<
18929                    BaseNetworkSocketGetIpv6TrafficClassResponse,
18930                    fidl_fuchsia_posix::Errno,
18931                >,
18932                fidl::encoding::DefaultFuchsiaResourceDialect,
18933                0x6baf6eed8fc2f04,
18934            >(_buf?)?;
18935            Ok(_response.map(|x| x.value))
18936        }
18937        self.client.send_query_and_decode::<
18938            fidl::encoding::EmptyPayload,
18939            BaseNetworkSocketGetIpv6TrafficClassResult,
18940        >(
18941            (),
18942            0x6baf6eed8fc2f04,
18943            fidl::encoding::DynamicFlags::empty(),
18944            _decode,
18945        )
18946    }
18947
18948    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
18949        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
18950        fidl::encoding::DefaultFuchsiaResourceDialect,
18951    >;
18952    fn r#set_ipv6_receive_packet_info(
18953        &self,
18954        mut value: bool,
18955    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
18956        fn _decode(
18957            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18958        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
18959            let _response = fidl::client::decode_transaction_body::<
18960                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18961                fidl::encoding::DefaultFuchsiaResourceDialect,
18962                0x19259775b1a92768,
18963            >(_buf?)?;
18964            Ok(_response.map(|x| x))
18965        }
18966        self.client.send_query_and_decode::<
18967            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
18968            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
18969        >(
18970            (value,),
18971            0x19259775b1a92768,
18972            fidl::encoding::DynamicFlags::empty(),
18973            _decode,
18974        )
18975    }
18976
18977    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
18978        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
18979        fidl::encoding::DefaultFuchsiaResourceDialect,
18980    >;
18981    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
18982        fn _decode(
18983            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18984        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
18985            let _response = fidl::client::decode_transaction_body::<
18986                fidl::encoding::ResultType<
18987                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
18988                    fidl_fuchsia_posix::Errno,
18989                >,
18990                fidl::encoding::DefaultFuchsiaResourceDialect,
18991                0x7acd4a2775baec75,
18992            >(_buf?)?;
18993            Ok(_response.map(|x| x.value))
18994        }
18995        self.client.send_query_and_decode::<
18996            fidl::encoding::EmptyPayload,
18997            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
18998        >(
18999            (),
19000            0x7acd4a2775baec75,
19001            fidl::encoding::DynamicFlags::empty(),
19002            _decode,
19003        )
19004    }
19005
19006    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
19007        BaseNetworkSocketGetOriginalDestinationResult,
19008        fidl::encoding::DefaultFuchsiaResourceDialect,
19009    >;
19010    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
19011        fn _decode(
19012            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19013        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
19014            let _response = fidl::client::decode_transaction_body::<
19015                fidl::encoding::ResultType<
19016                    BaseNetworkSocketGetOriginalDestinationResponse,
19017                    fidl_fuchsia_posix::Errno,
19018                >,
19019                fidl::encoding::DefaultFuchsiaResourceDialect,
19020                0x38bf28f0dafdbac0,
19021            >(_buf?)?;
19022            Ok(_response.map(|x| x.value))
19023        }
19024        self.client.send_query_and_decode::<
19025            fidl::encoding::EmptyPayload,
19026            BaseNetworkSocketGetOriginalDestinationResult,
19027        >(
19028            (),
19029            0x38bf28f0dafdbac0,
19030            fidl::encoding::DynamicFlags::empty(),
19031            _decode,
19032        )
19033    }
19034}
19035
19036pub struct BaseNetworkSocketEventStream {
19037    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
19038}
19039
19040impl std::marker::Unpin for BaseNetworkSocketEventStream {}
19041
19042impl futures::stream::FusedStream for BaseNetworkSocketEventStream {
19043    fn is_terminated(&self) -> bool {
19044        self.event_receiver.is_terminated()
19045    }
19046}
19047
19048impl futures::Stream for BaseNetworkSocketEventStream {
19049    type Item = Result<BaseNetworkSocketEvent, fidl::Error>;
19050
19051    fn poll_next(
19052        mut self: std::pin::Pin<&mut Self>,
19053        cx: &mut std::task::Context<'_>,
19054    ) -> std::task::Poll<Option<Self::Item>> {
19055        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
19056            &mut self.event_receiver,
19057            cx
19058        )?) {
19059            Some(buf) => std::task::Poll::Ready(Some(BaseNetworkSocketEvent::decode(buf))),
19060            None => std::task::Poll::Ready(None),
19061        }
19062    }
19063}
19064
19065#[derive(Debug)]
19066pub enum BaseNetworkSocketEvent {}
19067
19068impl BaseNetworkSocketEvent {
19069    /// Decodes a message buffer as a [`BaseNetworkSocketEvent`].
19070    fn decode(
19071        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
19072    ) -> Result<BaseNetworkSocketEvent, fidl::Error> {
19073        let (bytes, _handles) = buf.split_mut();
19074        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
19075        debug_assert_eq!(tx_header.tx_id, 0);
19076        match tx_header.ordinal {
19077            _ => Err(fidl::Error::UnknownOrdinal {
19078                ordinal: tx_header.ordinal,
19079                protocol_name:
19080                    <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
19081            }),
19082        }
19083    }
19084}
19085
19086/// A Stream of incoming requests for fuchsia.posix.socket/BaseNetworkSocket.
19087pub struct BaseNetworkSocketRequestStream {
19088    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
19089    is_terminated: bool,
19090}
19091
19092impl std::marker::Unpin for BaseNetworkSocketRequestStream {}
19093
19094impl futures::stream::FusedStream for BaseNetworkSocketRequestStream {
19095    fn is_terminated(&self) -> bool {
19096        self.is_terminated
19097    }
19098}
19099
19100impl fidl::endpoints::RequestStream for BaseNetworkSocketRequestStream {
19101    type Protocol = BaseNetworkSocketMarker;
19102    type ControlHandle = BaseNetworkSocketControlHandle;
19103
19104    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
19105        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
19106    }
19107
19108    fn control_handle(&self) -> Self::ControlHandle {
19109        BaseNetworkSocketControlHandle { inner: self.inner.clone() }
19110    }
19111
19112    fn into_inner(
19113        self,
19114    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
19115    {
19116        (self.inner, self.is_terminated)
19117    }
19118
19119    fn from_inner(
19120        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
19121        is_terminated: bool,
19122    ) -> Self {
19123        Self { inner, is_terminated }
19124    }
19125}
19126
19127impl futures::Stream for BaseNetworkSocketRequestStream {
19128    type Item = Result<BaseNetworkSocketRequest, fidl::Error>;
19129
19130    fn poll_next(
19131        mut self: std::pin::Pin<&mut Self>,
19132        cx: &mut std::task::Context<'_>,
19133    ) -> std::task::Poll<Option<Self::Item>> {
19134        let this = &mut *self;
19135        if this.inner.check_shutdown(cx) {
19136            this.is_terminated = true;
19137            return std::task::Poll::Ready(None);
19138        }
19139        if this.is_terminated {
19140            panic!("polled BaseNetworkSocketRequestStream after completion");
19141        }
19142        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
19143            |bytes, handles| {
19144                match this.inner.channel().read_etc(cx, bytes, handles) {
19145                    std::task::Poll::Ready(Ok(())) => {}
19146                    std::task::Poll::Pending => return std::task::Poll::Pending,
19147                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
19148                        this.is_terminated = true;
19149                        return std::task::Poll::Ready(None);
19150                    }
19151                    std::task::Poll::Ready(Err(e)) => {
19152                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
19153                            e.into(),
19154                        ))));
19155                    }
19156                }
19157
19158                // A message has been received from the channel
19159                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
19160
19161                std::task::Poll::Ready(Some(match header.ordinal {
19162                    0x20d8a7aba2168a79 => {
19163                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
19164                        let mut req = fidl::new_empty!(
19165                            fidl_fuchsia_unknown::CloneableCloneRequest,
19166                            fidl::encoding::DefaultFuchsiaResourceDialect
19167                        );
19168                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
19169                        let control_handle =
19170                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19171                        Ok(BaseNetworkSocketRequest::Clone { request: req.request, control_handle })
19172                    }
19173                    0x5ac5d459ad7f657e => {
19174                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19175                        let mut req = fidl::new_empty!(
19176                            fidl::encoding::EmptyPayload,
19177                            fidl::encoding::DefaultFuchsiaResourceDialect
19178                        );
19179                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19180                        let control_handle =
19181                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19182                        Ok(BaseNetworkSocketRequest::Close {
19183                            responder: BaseNetworkSocketCloseResponder {
19184                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19185                                tx_id: header.tx_id,
19186                            },
19187                        })
19188                    }
19189                    0x2658edee9decfc06 => {
19190                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19191                        let mut req = fidl::new_empty!(
19192                            fidl::encoding::EmptyPayload,
19193                            fidl::encoding::DefaultFuchsiaResourceDialect
19194                        );
19195                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19196                        let control_handle =
19197                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19198                        Ok(BaseNetworkSocketRequest::Query {
19199                            responder: BaseNetworkSocketQueryResponder {
19200                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19201                                tx_id: header.tx_id,
19202                            },
19203                        })
19204                    }
19205                    0x1fd74ee8b9a4a876 => {
19206                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19207                        let mut req = fidl::new_empty!(
19208                            BaseSocketSetReuseAddressRequest,
19209                            fidl::encoding::DefaultFuchsiaResourceDialect
19210                        );
19211                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
19212                        let control_handle =
19213                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19214                        Ok(BaseNetworkSocketRequest::SetReuseAddress {
19215                            value: req.value,
19216
19217                            responder: BaseNetworkSocketSetReuseAddressResponder {
19218                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19219                                tx_id: header.tx_id,
19220                            },
19221                        })
19222                    }
19223                    0x67b7206b8d1bc0a5 => {
19224                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19225                        let mut req = fidl::new_empty!(
19226                            fidl::encoding::EmptyPayload,
19227                            fidl::encoding::DefaultFuchsiaResourceDialect
19228                        );
19229                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19230                        let control_handle =
19231                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19232                        Ok(BaseNetworkSocketRequest::GetReuseAddress {
19233                            responder: BaseNetworkSocketGetReuseAddressResponder {
19234                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19235                                tx_id: header.tx_id,
19236                            },
19237                        })
19238                    }
19239                    0x5aad39b33e5f6ebb => {
19240                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19241                        let mut req = fidl::new_empty!(
19242                            fidl::encoding::EmptyPayload,
19243                            fidl::encoding::DefaultFuchsiaResourceDialect
19244                        );
19245                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19246                        let control_handle =
19247                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19248                        Ok(BaseNetworkSocketRequest::GetError {
19249                            responder: BaseNetworkSocketGetErrorResponder {
19250                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19251                                tx_id: header.tx_id,
19252                            },
19253                        })
19254                    }
19255                    0x6023e081ce3cd947 => {
19256                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19257                        let mut req = fidl::new_empty!(
19258                            BaseSocketSetBroadcastRequest,
19259                            fidl::encoding::DefaultFuchsiaResourceDialect
19260                        );
19261                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
19262                        let control_handle =
19263                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19264                        Ok(BaseNetworkSocketRequest::SetBroadcast {
19265                            value: req.value,
19266
19267                            responder: BaseNetworkSocketSetBroadcastResponder {
19268                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19269                                tx_id: header.tx_id,
19270                            },
19271                        })
19272                    }
19273                    0x68796fc556f9780d => {
19274                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19275                        let mut req = fidl::new_empty!(
19276                            fidl::encoding::EmptyPayload,
19277                            fidl::encoding::DefaultFuchsiaResourceDialect
19278                        );
19279                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19280                        let control_handle =
19281                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19282                        Ok(BaseNetworkSocketRequest::GetBroadcast {
19283                            responder: BaseNetworkSocketGetBroadcastResponder {
19284                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19285                                tx_id: header.tx_id,
19286                            },
19287                        })
19288                    }
19289                    0x756eac32d73a7a70 => {
19290                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19291                        let mut req = fidl::new_empty!(
19292                            BaseSocketSetSendBufferRequest,
19293                            fidl::encoding::DefaultFuchsiaResourceDialect
19294                        );
19295                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
19296                        let control_handle =
19297                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19298                        Ok(BaseNetworkSocketRequest::SetSendBuffer {
19299                            value_bytes: req.value_bytes,
19300
19301                            responder: BaseNetworkSocketSetSendBufferResponder {
19302                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19303                                tx_id: header.tx_id,
19304                            },
19305                        })
19306                    }
19307                    0x78a52fd9c7b2410b => {
19308                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19309                        let mut req = fidl::new_empty!(
19310                            fidl::encoding::EmptyPayload,
19311                            fidl::encoding::DefaultFuchsiaResourceDialect
19312                        );
19313                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19314                        let control_handle =
19315                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19316                        Ok(BaseNetworkSocketRequest::GetSendBuffer {
19317                            responder: BaseNetworkSocketGetSendBufferResponder {
19318                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19319                                tx_id: header.tx_id,
19320                            },
19321                        })
19322                    }
19323                    0x6b0cf2f1919c7001 => {
19324                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19325                        let mut req = fidl::new_empty!(
19326                            BaseSocketSetReceiveBufferRequest,
19327                            fidl::encoding::DefaultFuchsiaResourceDialect
19328                        );
19329                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
19330                        let control_handle =
19331                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19332                        Ok(BaseNetworkSocketRequest::SetReceiveBuffer {
19333                            value_bytes: req.value_bytes,
19334
19335                            responder: BaseNetworkSocketSetReceiveBufferResponder {
19336                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19337                                tx_id: header.tx_id,
19338                            },
19339                        })
19340                    }
19341                    0x14c1a4b64f709e5c => {
19342                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19343                        let mut req = fidl::new_empty!(
19344                            fidl::encoding::EmptyPayload,
19345                            fidl::encoding::DefaultFuchsiaResourceDialect
19346                        );
19347                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19348                        let control_handle =
19349                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19350                        Ok(BaseNetworkSocketRequest::GetReceiveBuffer {
19351                            responder: BaseNetworkSocketGetReceiveBufferResponder {
19352                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19353                                tx_id: header.tx_id,
19354                            },
19355                        })
19356                    }
19357                    0x572df8f0b920d2c7 => {
19358                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19359                        let mut req = fidl::new_empty!(
19360                            BaseSocketSetKeepAliveRequest,
19361                            fidl::encoding::DefaultFuchsiaResourceDialect
19362                        );
19363                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
19364                        let control_handle =
19365                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19366                        Ok(BaseNetworkSocketRequest::SetKeepAlive {
19367                            value: req.value,
19368
19369                            responder: BaseNetworkSocketSetKeepAliveResponder {
19370                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19371                                tx_id: header.tx_id,
19372                            },
19373                        })
19374                    }
19375                    0x2dd29d3215f2c9d2 => {
19376                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19377                        let mut req = fidl::new_empty!(
19378                            fidl::encoding::EmptyPayload,
19379                            fidl::encoding::DefaultFuchsiaResourceDialect
19380                        );
19381                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19382                        let control_handle =
19383                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19384                        Ok(BaseNetworkSocketRequest::GetKeepAlive {
19385                            responder: BaseNetworkSocketGetKeepAliveResponder {
19386                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19387                                tx_id: header.tx_id,
19388                            },
19389                        })
19390                    }
19391                    0x3ecb49968bee439 => {
19392                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19393                        let mut req = fidl::new_empty!(
19394                            BaseSocketSetOutOfBandInlineRequest,
19395                            fidl::encoding::DefaultFuchsiaResourceDialect
19396                        );
19397                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
19398                        let control_handle =
19399                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19400                        Ok(BaseNetworkSocketRequest::SetOutOfBandInline {
19401                            value: req.value,
19402
19403                            responder: BaseNetworkSocketSetOutOfBandInlineResponder {
19404                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19405                                tx_id: header.tx_id,
19406                            },
19407                        })
19408                    }
19409                    0x348c1ab3aeca1745 => {
19410                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19411                        let mut req = fidl::new_empty!(
19412                            fidl::encoding::EmptyPayload,
19413                            fidl::encoding::DefaultFuchsiaResourceDialect
19414                        );
19415                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19416                        let control_handle =
19417                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19418                        Ok(BaseNetworkSocketRequest::GetOutOfBandInline {
19419                            responder: BaseNetworkSocketGetOutOfBandInlineResponder {
19420                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19421                                tx_id: header.tx_id,
19422                            },
19423                        })
19424                    }
19425                    0x6bbf00c53a4c78c2 => {
19426                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19427                        let mut req = fidl::new_empty!(
19428                            BaseSocketSetNoCheckRequest,
19429                            fidl::encoding::DefaultFuchsiaResourceDialect
19430                        );
19431                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
19432                        let control_handle =
19433                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19434                        Ok(BaseNetworkSocketRequest::SetNoCheck {
19435                            value: req.value,
19436
19437                            responder: BaseNetworkSocketSetNoCheckResponder {
19438                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19439                                tx_id: header.tx_id,
19440                            },
19441                        })
19442                    }
19443                    0x2cd4249286417694 => {
19444                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19445                        let mut req = fidl::new_empty!(
19446                            fidl::encoding::EmptyPayload,
19447                            fidl::encoding::DefaultFuchsiaResourceDialect
19448                        );
19449                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19450                        let control_handle =
19451                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19452                        Ok(BaseNetworkSocketRequest::GetNoCheck {
19453                            responder: BaseNetworkSocketGetNoCheckResponder {
19454                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19455                                tx_id: header.tx_id,
19456                            },
19457                        })
19458                    }
19459                    0x45386351246e998e => {
19460                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19461                        let mut req = fidl::new_empty!(
19462                            BaseSocketSetLingerRequest,
19463                            fidl::encoding::DefaultFuchsiaResourceDialect
19464                        );
19465                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
19466                        let control_handle =
19467                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19468                        Ok(BaseNetworkSocketRequest::SetLinger {
19469                            linger: req.linger,
19470                            length_secs: req.length_secs,
19471
19472                            responder: BaseNetworkSocketSetLingerResponder {
19473                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19474                                tx_id: header.tx_id,
19475                            },
19476                        })
19477                    }
19478                    0x48eb20fc5ccb0e45 => {
19479                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19480                        let mut req = fidl::new_empty!(
19481                            fidl::encoding::EmptyPayload,
19482                            fidl::encoding::DefaultFuchsiaResourceDialect
19483                        );
19484                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19485                        let control_handle =
19486                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19487                        Ok(BaseNetworkSocketRequest::GetLinger {
19488                            responder: BaseNetworkSocketGetLingerResponder {
19489                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19490                                tx_id: header.tx_id,
19491                            },
19492                        })
19493                    }
19494                    0x24dd3e5cb36d9ccb => {
19495                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19496                        let mut req = fidl::new_empty!(
19497                            BaseSocketSetReusePortRequest,
19498                            fidl::encoding::DefaultFuchsiaResourceDialect
19499                        );
19500                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
19501                        let control_handle =
19502                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19503                        Ok(BaseNetworkSocketRequest::SetReusePort {
19504                            value: req.value,
19505
19506                            responder: BaseNetworkSocketSetReusePortResponder {
19507                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19508                                tx_id: header.tx_id,
19509                            },
19510                        })
19511                    }
19512                    0x7a112c1ab54ff828 => {
19513                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19514                        let mut req = fidl::new_empty!(
19515                            fidl::encoding::EmptyPayload,
19516                            fidl::encoding::DefaultFuchsiaResourceDialect
19517                        );
19518                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19519                        let control_handle =
19520                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19521                        Ok(BaseNetworkSocketRequest::GetReusePort {
19522                            responder: BaseNetworkSocketGetReusePortResponder {
19523                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19524                                tx_id: header.tx_id,
19525                            },
19526                        })
19527                    }
19528                    0x67ce6db6c2ec8966 => {
19529                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19530                        let mut req = fidl::new_empty!(
19531                            fidl::encoding::EmptyPayload,
19532                            fidl::encoding::DefaultFuchsiaResourceDialect
19533                        );
19534                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19535                        let control_handle =
19536                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19537                        Ok(BaseNetworkSocketRequest::GetAcceptConn {
19538                            responder: BaseNetworkSocketGetAcceptConnResponder {
19539                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19540                                tx_id: header.tx_id,
19541                            },
19542                        })
19543                    }
19544                    0x2118b483f28aafc4 => {
19545                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19546                        let mut req = fidl::new_empty!(
19547                            BaseSocketSetBindToDeviceRequest,
19548                            fidl::encoding::DefaultFuchsiaResourceDialect
19549                        );
19550                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
19551                        let control_handle =
19552                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19553                        Ok(BaseNetworkSocketRequest::SetBindToDevice {
19554                            value: req.value,
19555
19556                            responder: BaseNetworkSocketSetBindToDeviceResponder {
19557                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19558                                tx_id: header.tx_id,
19559                            },
19560                        })
19561                    }
19562                    0x1ab1fbf0ef7906c8 => {
19563                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19564                        let mut req = fidl::new_empty!(
19565                            fidl::encoding::EmptyPayload,
19566                            fidl::encoding::DefaultFuchsiaResourceDialect
19567                        );
19568                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19569                        let control_handle =
19570                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19571                        Ok(BaseNetworkSocketRequest::GetBindToDevice {
19572                            responder: BaseNetworkSocketGetBindToDeviceResponder {
19573                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19574                                tx_id: header.tx_id,
19575                            },
19576                        })
19577                    }
19578                    0x6e387a0def00821 => {
19579                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19580                        let mut req = fidl::new_empty!(
19581                            BaseSocketSetBindToInterfaceIndexRequest,
19582                            fidl::encoding::DefaultFuchsiaResourceDialect
19583                        );
19584                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
19585                        let control_handle =
19586                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19587                        Ok(BaseNetworkSocketRequest::SetBindToInterfaceIndex {
19588                            value: req.value,
19589
19590                            responder: BaseNetworkSocketSetBindToInterfaceIndexResponder {
19591                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19592                                tx_id: header.tx_id,
19593                            },
19594                        })
19595                    }
19596                    0x59c31dd3e3078295 => {
19597                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19598                        let mut req = fidl::new_empty!(
19599                            fidl::encoding::EmptyPayload,
19600                            fidl::encoding::DefaultFuchsiaResourceDialect
19601                        );
19602                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19603                        let control_handle =
19604                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19605                        Ok(BaseNetworkSocketRequest::GetBindToInterfaceIndex {
19606                            responder: BaseNetworkSocketGetBindToInterfaceIndexResponder {
19607                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19608                                tx_id: header.tx_id,
19609                            },
19610                        })
19611                    }
19612                    0x285d6516c263d839 => {
19613                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19614                        let mut req = fidl::new_empty!(
19615                            BaseSocketSetTimestampRequest,
19616                            fidl::encoding::DefaultFuchsiaResourceDialect
19617                        );
19618                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
19619                        let control_handle =
19620                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19621                        Ok(BaseNetworkSocketRequest::SetTimestamp {
19622                            value: req.value,
19623
19624                            responder: BaseNetworkSocketSetTimestampResponder {
19625                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19626                                tx_id: header.tx_id,
19627                            },
19628                        })
19629                    }
19630                    0x49f2fffbbcc2bd27 => {
19631                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19632                        let mut req = fidl::new_empty!(
19633                            fidl::encoding::EmptyPayload,
19634                            fidl::encoding::DefaultFuchsiaResourceDialect
19635                        );
19636                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19637                        let control_handle =
19638                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19639                        Ok(BaseNetworkSocketRequest::GetTimestamp {
19640                            responder: BaseNetworkSocketGetTimestampResponder {
19641                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19642                                tx_id: header.tx_id,
19643                            },
19644                        })
19645                    }
19646                    0x6ead6de09f653236 => {
19647                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19648                        let mut req = fidl::new_empty!(
19649                            BaseSocketSetMarkRequest,
19650                            fidl::encoding::DefaultFuchsiaResourceDialect
19651                        );
19652                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
19653                        let control_handle =
19654                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19655                        Ok(BaseNetworkSocketRequest::SetMark {
19656                            domain: req.domain,
19657                            mark: req.mark,
19658
19659                            responder: BaseNetworkSocketSetMarkResponder {
19660                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19661                                tx_id: header.tx_id,
19662                            },
19663                        })
19664                    }
19665                    0x57a2752c61d93d47 => {
19666                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19667                        let mut req = fidl::new_empty!(
19668                            BaseSocketGetMarkRequest,
19669                            fidl::encoding::DefaultFuchsiaResourceDialect
19670                        );
19671                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
19672                        let control_handle =
19673                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19674                        Ok(BaseNetworkSocketRequest::GetMark {
19675                            domain: req.domain,
19676
19677                            responder: BaseNetworkSocketGetMarkResponder {
19678                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19679                                tx_id: header.tx_id,
19680                            },
19681                        })
19682                    }
19683                    0x2c2f47fd8f924e52 => {
19684                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19685                        let mut req = fidl::new_empty!(
19686                            fidl::encoding::EmptyPayload,
19687                            fidl::encoding::DefaultFuchsiaResourceDialect
19688                        );
19689                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19690                        let control_handle =
19691                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19692                        Ok(BaseNetworkSocketRequest::GetCookie {
19693                            responder: BaseNetworkSocketGetCookieResponder {
19694                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19695                                tx_id: header.tx_id,
19696                            },
19697                        })
19698                    }
19699                    0x4bc6400ae92125d => {
19700                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19701                        let mut req = fidl::new_empty!(
19702                            BaseNetworkSocketBindRequest,
19703                            fidl::encoding::DefaultFuchsiaResourceDialect
19704                        );
19705                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
19706                        let control_handle =
19707                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19708                        Ok(BaseNetworkSocketRequest::Bind {
19709                            addr: req.addr,
19710
19711                            responder: BaseNetworkSocketBindResponder {
19712                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19713                                tx_id: header.tx_id,
19714                            },
19715                        })
19716                    }
19717                    0x5f05f19bfdd38871 => {
19718                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19719                        let mut req = fidl::new_empty!(
19720                            BaseNetworkSocketConnectRequest,
19721                            fidl::encoding::DefaultFuchsiaResourceDialect
19722                        );
19723                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
19724                        let control_handle =
19725                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19726                        Ok(BaseNetworkSocketRequest::Connect {
19727                            addr: req.addr,
19728
19729                            responder: BaseNetworkSocketConnectResponder {
19730                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19731                                tx_id: header.tx_id,
19732                            },
19733                        })
19734                    }
19735                    0x74e63b91f7b29b2 => {
19736                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19737                        let mut req = fidl::new_empty!(
19738                            fidl::encoding::EmptyPayload,
19739                            fidl::encoding::DefaultFuchsiaResourceDialect
19740                        );
19741                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19742                        let control_handle =
19743                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19744                        Ok(BaseNetworkSocketRequest::Disconnect {
19745                            responder: BaseNetworkSocketDisconnectResponder {
19746                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19747                                tx_id: header.tx_id,
19748                            },
19749                        })
19750                    }
19751                    0x475f23f84a1a4f85 => {
19752                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19753                        let mut req = fidl::new_empty!(
19754                            fidl::encoding::EmptyPayload,
19755                            fidl::encoding::DefaultFuchsiaResourceDialect
19756                        );
19757                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19758                        let control_handle =
19759                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19760                        Ok(BaseNetworkSocketRequest::GetSockName {
19761                            responder: BaseNetworkSocketGetSockNameResponder {
19762                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19763                                tx_id: header.tx_id,
19764                            },
19765                        })
19766                    }
19767                    0x1ffecf4bd5b6432e => {
19768                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19769                        let mut req = fidl::new_empty!(
19770                            fidl::encoding::EmptyPayload,
19771                            fidl::encoding::DefaultFuchsiaResourceDialect
19772                        );
19773                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19774                        let control_handle =
19775                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19776                        Ok(BaseNetworkSocketRequest::GetPeerName {
19777                            responder: BaseNetworkSocketGetPeerNameResponder {
19778                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19779                                tx_id: header.tx_id,
19780                            },
19781                        })
19782                    }
19783                    0x247f38b6db68c336 => {
19784                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19785                        let mut req = fidl::new_empty!(
19786                            BaseNetworkSocketShutdownRequest,
19787                            fidl::encoding::DefaultFuchsiaResourceDialect
19788                        );
19789                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
19790                        let control_handle =
19791                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19792                        Ok(BaseNetworkSocketRequest::Shutdown {
19793                            mode: req.mode,
19794
19795                            responder: BaseNetworkSocketShutdownResponder {
19796                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19797                                tx_id: header.tx_id,
19798                            },
19799                        })
19800                    }
19801                    0x995c600475b6d46 => {
19802                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19803                        let mut req = fidl::new_empty!(
19804                            BaseNetworkSocketSetIpTypeOfServiceRequest,
19805                            fidl::encoding::DefaultFuchsiaResourceDialect
19806                        );
19807                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
19808                        let control_handle =
19809                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19810                        Ok(BaseNetworkSocketRequest::SetIpTypeOfService {
19811                            value: req.value,
19812
19813                            responder: BaseNetworkSocketSetIpTypeOfServiceResponder {
19814                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19815                                tx_id: header.tx_id,
19816                            },
19817                        })
19818                    }
19819                    0x3814a04259f75fcb => {
19820                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19821                        let mut req = fidl::new_empty!(
19822                            fidl::encoding::EmptyPayload,
19823                            fidl::encoding::DefaultFuchsiaResourceDialect
19824                        );
19825                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19826                        let control_handle =
19827                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19828                        Ok(BaseNetworkSocketRequest::GetIpTypeOfService {
19829                            responder: BaseNetworkSocketGetIpTypeOfServiceResponder {
19830                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19831                                tx_id: header.tx_id,
19832                            },
19833                        })
19834                    }
19835                    0x29e2424b433ae1ef => {
19836                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19837                        let mut req = fidl::new_empty!(
19838                            BaseNetworkSocketSetIpTtlRequest,
19839                            fidl::encoding::DefaultFuchsiaResourceDialect
19840                        );
19841                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
19842                        let control_handle =
19843                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19844                        Ok(BaseNetworkSocketRequest::SetIpTtl {
19845                            value: req.value,
19846
19847                            responder: BaseNetworkSocketSetIpTtlResponder {
19848                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19849                                tx_id: header.tx_id,
19850                            },
19851                        })
19852                    }
19853                    0x47e47fa1f24da471 => {
19854                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19855                        let mut req = fidl::new_empty!(
19856                            fidl::encoding::EmptyPayload,
19857                            fidl::encoding::DefaultFuchsiaResourceDialect
19858                        );
19859                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19860                        let control_handle =
19861                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19862                        Ok(BaseNetworkSocketRequest::GetIpTtl {
19863                            responder: BaseNetworkSocketGetIpTtlResponder {
19864                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19865                                tx_id: header.tx_id,
19866                            },
19867                        })
19868                    }
19869                    0x392d16bee20c0e16 => {
19870                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19871                        let mut req = fidl::new_empty!(
19872                            BaseNetworkSocketSetIpPacketInfoRequest,
19873                            fidl::encoding::DefaultFuchsiaResourceDialect
19874                        );
19875                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
19876                        let control_handle =
19877                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19878                        Ok(BaseNetworkSocketRequest::SetIpPacketInfo {
19879                            value: req.value,
19880
19881                            responder: BaseNetworkSocketSetIpPacketInfoResponder {
19882                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19883                                tx_id: header.tx_id,
19884                            },
19885                        })
19886                    }
19887                    0x54b505f242280740 => {
19888                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19889                        let mut req = fidl::new_empty!(
19890                            fidl::encoding::EmptyPayload,
19891                            fidl::encoding::DefaultFuchsiaResourceDialect
19892                        );
19893                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19894                        let control_handle =
19895                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19896                        Ok(BaseNetworkSocketRequest::GetIpPacketInfo {
19897                            responder: BaseNetworkSocketGetIpPacketInfoResponder {
19898                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19899                                tx_id: header.tx_id,
19900                            },
19901                        })
19902                    }
19903                    0x6c4f6714995f84ef => {
19904                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19905                        let mut req = fidl::new_empty!(
19906                            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
19907                            fidl::encoding::DefaultFuchsiaResourceDialect
19908                        );
19909                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
19910                        let control_handle =
19911                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19912                        Ok(BaseNetworkSocketRequest::SetIpReceiveTypeOfService {
19913                            value: req.value,
19914
19915                            responder: BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
19916                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19917                                tx_id: header.tx_id,
19918                            },
19919                        })
19920                    }
19921                    0x4158ba7dc2795960 => {
19922                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19923                        let mut req = fidl::new_empty!(
19924                            fidl::encoding::EmptyPayload,
19925                            fidl::encoding::DefaultFuchsiaResourceDialect
19926                        );
19927                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19928                        let control_handle =
19929                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19930                        Ok(BaseNetworkSocketRequest::GetIpReceiveTypeOfService {
19931                            responder: BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
19932                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19933                                tx_id: header.tx_id,
19934                            },
19935                        })
19936                    }
19937                    0x46f15be0ce0ab82b => {
19938                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19939                        let mut req = fidl::new_empty!(
19940                            BaseNetworkSocketSetIpReceiveTtlRequest,
19941                            fidl::encoding::DefaultFuchsiaResourceDialect
19942                        );
19943                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
19944                        let control_handle =
19945                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19946                        Ok(BaseNetworkSocketRequest::SetIpReceiveTtl {
19947                            value: req.value,
19948
19949                            responder: BaseNetworkSocketSetIpReceiveTtlResponder {
19950                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19951                                tx_id: header.tx_id,
19952                            },
19953                        })
19954                    }
19955                    0x678ddd5a5dfa2eb5 => {
19956                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19957                        let mut req = fidl::new_empty!(
19958                            fidl::encoding::EmptyPayload,
19959                            fidl::encoding::DefaultFuchsiaResourceDialect
19960                        );
19961                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19962                        let control_handle =
19963                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19964                        Ok(BaseNetworkSocketRequest::GetIpReceiveTtl {
19965                            responder: BaseNetworkSocketGetIpReceiveTtlResponder {
19966                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19967                                tx_id: header.tx_id,
19968                            },
19969                        })
19970                    }
19971                    0x752fbfa9b12befe => {
19972                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19973                        let mut req = fidl::new_empty!(
19974                            BaseNetworkSocketSetIpMulticastInterfaceRequest,
19975                            fidl::encoding::DefaultFuchsiaResourceDialect
19976                        );
19977                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
19978                        let control_handle =
19979                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19980                        Ok(BaseNetworkSocketRequest::SetIpMulticastInterface {
19981                            iface: req.iface,
19982                            address: req.address,
19983
19984                            responder: BaseNetworkSocketSetIpMulticastInterfaceResponder {
19985                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19986                                tx_id: header.tx_id,
19987                            },
19988                        })
19989                    }
19990                    0x320bd14c4df046c4 => {
19991                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19992                        let mut req = fidl::new_empty!(
19993                            fidl::encoding::EmptyPayload,
19994                            fidl::encoding::DefaultFuchsiaResourceDialect
19995                        );
19996                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19997                        let control_handle =
19998                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19999                        Ok(BaseNetworkSocketRequest::GetIpMulticastInterface {
20000                            responder: BaseNetworkSocketGetIpMulticastInterfaceResponder {
20001                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20002                                tx_id: header.tx_id,
20003                            },
20004                        })
20005                    }
20006                    0x63134d53772916a1 => {
20007                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20008                        let mut req = fidl::new_empty!(
20009                            BaseNetworkSocketSetIpMulticastTtlRequest,
20010                            fidl::encoding::DefaultFuchsiaResourceDialect
20011                        );
20012                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
20013                        let control_handle =
20014                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20015                        Ok(BaseNetworkSocketRequest::SetIpMulticastTtl {
20016                            value: req.value,
20017
20018                            responder: BaseNetworkSocketSetIpMulticastTtlResponder {
20019                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20020                                tx_id: header.tx_id,
20021                            },
20022                        })
20023                    }
20024                    0x4665cd378f39e1a => {
20025                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20026                        let mut req = fidl::new_empty!(
20027                            fidl::encoding::EmptyPayload,
20028                            fidl::encoding::DefaultFuchsiaResourceDialect
20029                        );
20030                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20031                        let control_handle =
20032                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20033                        Ok(BaseNetworkSocketRequest::GetIpMulticastTtl {
20034                            responder: BaseNetworkSocketGetIpMulticastTtlResponder {
20035                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20036                                tx_id: header.tx_id,
20037                            },
20038                        })
20039                    }
20040                    0x20c55c11f00943ea => {
20041                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20042                        let mut req = fidl::new_empty!(
20043                            BaseNetworkSocketSetIpMulticastLoopbackRequest,
20044                            fidl::encoding::DefaultFuchsiaResourceDialect
20045                        );
20046                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
20047                        let control_handle =
20048                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20049                        Ok(BaseNetworkSocketRequest::SetIpMulticastLoopback {
20050                            value: req.value,
20051
20052                            responder: BaseNetworkSocketSetIpMulticastLoopbackResponder {
20053                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20054                                tx_id: header.tx_id,
20055                            },
20056                        })
20057                    }
20058                    0x3b6b26ff558298f2 => {
20059                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20060                        let mut req = fidl::new_empty!(
20061                            fidl::encoding::EmptyPayload,
20062                            fidl::encoding::DefaultFuchsiaResourceDialect
20063                        );
20064                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20065                        let control_handle =
20066                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20067                        Ok(BaseNetworkSocketRequest::GetIpMulticastLoopback {
20068                            responder: BaseNetworkSocketGetIpMulticastLoopbackResponder {
20069                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20070                                tx_id: header.tx_id,
20071                            },
20072                        })
20073                    }
20074                    0x76bc7df115a3b4d0 => {
20075                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20076                        let mut req = fidl::new_empty!(
20077                            BaseNetworkSocketAddIpMembershipRequest,
20078                            fidl::encoding::DefaultFuchsiaResourceDialect
20079                        );
20080                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20081                        let control_handle =
20082                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20083                        Ok(BaseNetworkSocketRequest::AddIpMembership {
20084                            membership: req.membership,
20085
20086                            responder: BaseNetworkSocketAddIpMembershipResponder {
20087                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20088                                tx_id: header.tx_id,
20089                            },
20090                        })
20091                    }
20092                    0x2888f3099188d03 => {
20093                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20094                        let mut req = fidl::new_empty!(
20095                            BaseNetworkSocketDropIpMembershipRequest,
20096                            fidl::encoding::DefaultFuchsiaResourceDialect
20097                        );
20098                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20099                        let control_handle =
20100                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20101                        Ok(BaseNetworkSocketRequest::DropIpMembership {
20102                            membership: req.membership,
20103
20104                            responder: BaseNetworkSocketDropIpMembershipResponder {
20105                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20106                                tx_id: header.tx_id,
20107                            },
20108                        })
20109                    }
20110                    0x1ae532b0c066e3a0 => {
20111                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20112                        let mut req = fidl::new_empty!(
20113                            BaseNetworkSocketSetIpTransparentRequest,
20114                            fidl::encoding::DefaultFuchsiaResourceDialect
20115                        );
20116                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
20117                        let control_handle =
20118                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20119                        Ok(BaseNetworkSocketRequest::SetIpTransparent {
20120                            value: req.value,
20121
20122                            responder: BaseNetworkSocketSetIpTransparentResponder {
20123                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20124                                tx_id: header.tx_id,
20125                            },
20126                        })
20127                    }
20128                    0x51d43695962ebfb5 => {
20129                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20130                        let mut req = fidl::new_empty!(
20131                            fidl::encoding::EmptyPayload,
20132                            fidl::encoding::DefaultFuchsiaResourceDialect
20133                        );
20134                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20135                        let control_handle =
20136                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20137                        Ok(BaseNetworkSocketRequest::GetIpTransparent {
20138                            responder: BaseNetworkSocketGetIpTransparentResponder {
20139                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20140                                tx_id: header.tx_id,
20141                            },
20142                        })
20143                    }
20144                    0x4722b4ce52f7840 => {
20145                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20146                        let mut req = fidl::new_empty!(
20147                            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
20148                            fidl::encoding::DefaultFuchsiaResourceDialect
20149                        );
20150                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
20151                        let control_handle =
20152                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20153                        Ok(BaseNetworkSocketRequest::SetIpReceiveOriginalDestinationAddress {
20154                            value: req.value,
20155
20156                            responder:
20157                                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
20158                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
20159                                    tx_id: header.tx_id,
20160                                },
20161                        })
20162                    }
20163                    0x2a0e7dc5d6bfdfe9 => {
20164                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20165                        let mut req = fidl::new_empty!(
20166                            fidl::encoding::EmptyPayload,
20167                            fidl::encoding::DefaultFuchsiaResourceDialect
20168                        );
20169                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20170                        let control_handle =
20171                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20172                        Ok(BaseNetworkSocketRequest::GetIpReceiveOriginalDestinationAddress {
20173                            responder:
20174                                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
20175                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
20176                                    tx_id: header.tx_id,
20177                                },
20178                        })
20179                    }
20180                    0x7c94727acb4ea4b3 => {
20181                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20182                        let mut req = fidl::new_empty!(
20183                            BaseNetworkSocketAddIpv6MembershipRequest,
20184                            fidl::encoding::DefaultFuchsiaResourceDialect
20185                        );
20186                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20187                        let control_handle =
20188                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20189                        Ok(BaseNetworkSocketRequest::AddIpv6Membership {
20190                            membership: req.membership,
20191
20192                            responder: BaseNetworkSocketAddIpv6MembershipResponder {
20193                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20194                                tx_id: header.tx_id,
20195                            },
20196                        })
20197                    }
20198                    0x42104c70ccaba304 => {
20199                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20200                        let mut req = fidl::new_empty!(
20201                            BaseNetworkSocketDropIpv6MembershipRequest,
20202                            fidl::encoding::DefaultFuchsiaResourceDialect
20203                        );
20204                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20205                        let control_handle =
20206                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20207                        Ok(BaseNetworkSocketRequest::DropIpv6Membership {
20208                            membership: req.membership,
20209
20210                            responder: BaseNetworkSocketDropIpv6MembershipResponder {
20211                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20212                                tx_id: header.tx_id,
20213                            },
20214                        })
20215                    }
20216                    0x135f76db3774ab3b => {
20217                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20218                        let mut req = fidl::new_empty!(
20219                            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
20220                            fidl::encoding::DefaultFuchsiaResourceDialect
20221                        );
20222                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
20223                        let control_handle =
20224                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20225                        Ok(BaseNetworkSocketRequest::SetIpv6MulticastInterface {
20226                            value: req.value,
20227
20228                            responder: BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
20229                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20230                                tx_id: header.tx_id,
20231                            },
20232                        })
20233                    }
20234                    0x1f26fcdd348f1882 => {
20235                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20236                        let mut req = fidl::new_empty!(
20237                            fidl::encoding::EmptyPayload,
20238                            fidl::encoding::DefaultFuchsiaResourceDialect
20239                        );
20240                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20241                        let control_handle =
20242                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20243                        Ok(BaseNetworkSocketRequest::GetIpv6MulticastInterface {
20244                            responder: BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
20245                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20246                                tx_id: header.tx_id,
20247                            },
20248                        })
20249                    }
20250                    0x157d51e98f462859 => {
20251                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20252                        let mut req = fidl::new_empty!(
20253                            BaseNetworkSocketSetIpv6UnicastHopsRequest,
20254                            fidl::encoding::DefaultFuchsiaResourceDialect
20255                        );
20256                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
20257                        let control_handle =
20258                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20259                        Ok(BaseNetworkSocketRequest::SetIpv6UnicastHops {
20260                            value: req.value,
20261
20262                            responder: BaseNetworkSocketSetIpv6UnicastHopsResponder {
20263                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20264                                tx_id: header.tx_id,
20265                            },
20266                        })
20267                    }
20268                    0x21f4641cad8bd8d2 => {
20269                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20270                        let mut req = fidl::new_empty!(
20271                            fidl::encoding::EmptyPayload,
20272                            fidl::encoding::DefaultFuchsiaResourceDialect
20273                        );
20274                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20275                        let control_handle =
20276                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20277                        Ok(BaseNetworkSocketRequest::GetIpv6UnicastHops {
20278                            responder: BaseNetworkSocketGetIpv6UnicastHopsResponder {
20279                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20280                                tx_id: header.tx_id,
20281                            },
20282                        })
20283                    }
20284                    0x5c24808ed2e84a1e => {
20285                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20286                        let mut req = fidl::new_empty!(
20287                            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
20288                            fidl::encoding::DefaultFuchsiaResourceDialect
20289                        );
20290                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
20291                        let control_handle =
20292                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20293                        Ok(BaseNetworkSocketRequest::SetIpv6ReceiveHopLimit {
20294                            value: req.value,
20295
20296                            responder: BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
20297                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20298                                tx_id: header.tx_id,
20299                            },
20300                        })
20301                    }
20302                    0x341e06689885b4c0 => {
20303                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20304                        let mut req = fidl::new_empty!(
20305                            fidl::encoding::EmptyPayload,
20306                            fidl::encoding::DefaultFuchsiaResourceDialect
20307                        );
20308                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20309                        let control_handle =
20310                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20311                        Ok(BaseNetworkSocketRequest::GetIpv6ReceiveHopLimit {
20312                            responder: BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
20313                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20314                                tx_id: header.tx_id,
20315                            },
20316                        })
20317                    }
20318                    0x25b9cd4d181f82c1 => {
20319                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20320                        let mut req = fidl::new_empty!(
20321                            BaseNetworkSocketSetIpv6MulticastHopsRequest,
20322                            fidl::encoding::DefaultFuchsiaResourceDialect
20323                        );
20324                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
20325                        let control_handle =
20326                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20327                        Ok(BaseNetworkSocketRequest::SetIpv6MulticastHops {
20328                            value: req.value,
20329
20330                            responder: BaseNetworkSocketSetIpv6MulticastHopsResponder {
20331                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20332                                tx_id: header.tx_id,
20333                            },
20334                        })
20335                    }
20336                    0x52916948a365012a => {
20337                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20338                        let mut req = fidl::new_empty!(
20339                            fidl::encoding::EmptyPayload,
20340                            fidl::encoding::DefaultFuchsiaResourceDialect
20341                        );
20342                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20343                        let control_handle =
20344                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20345                        Ok(BaseNetworkSocketRequest::GetIpv6MulticastHops {
20346                            responder: BaseNetworkSocketGetIpv6MulticastHopsResponder {
20347                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20348                                tx_id: header.tx_id,
20349                            },
20350                        })
20351                    }
20352                    0x55701c409ff41b40 => {
20353                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20354                        let mut req = fidl::new_empty!(
20355                            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
20356                            fidl::encoding::DefaultFuchsiaResourceDialect
20357                        );
20358                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
20359                        let control_handle =
20360                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20361                        Ok(BaseNetworkSocketRequest::SetIpv6MulticastLoopback {
20362                            value: req.value,
20363
20364                            responder: BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
20365                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20366                                tx_id: header.tx_id,
20367                            },
20368                        })
20369                    }
20370                    0x4415b701fde319c3 => {
20371                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20372                        let mut req = fidl::new_empty!(
20373                            fidl::encoding::EmptyPayload,
20374                            fidl::encoding::DefaultFuchsiaResourceDialect
20375                        );
20376                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20377                        let control_handle =
20378                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20379                        Ok(BaseNetworkSocketRequest::GetIpv6MulticastLoopback {
20380                            responder: BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
20381                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20382                                tx_id: header.tx_id,
20383                            },
20384                        })
20385                    }
20386                    0x4873f1364758cbba => {
20387                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20388                        let mut req = fidl::new_empty!(
20389                            BaseNetworkSocketSetIpv6OnlyRequest,
20390                            fidl::encoding::DefaultFuchsiaResourceDialect
20391                        );
20392                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
20393                        let control_handle =
20394                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20395                        Ok(BaseNetworkSocketRequest::SetIpv6Only {
20396                            value: req.value,
20397
20398                            responder: BaseNetworkSocketSetIpv6OnlyResponder {
20399                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20400                                tx_id: header.tx_id,
20401                            },
20402                        })
20403                    }
20404                    0x4aa3340a1a26b89c => {
20405                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20406                        let mut req = fidl::new_empty!(
20407                            fidl::encoding::EmptyPayload,
20408                            fidl::encoding::DefaultFuchsiaResourceDialect
20409                        );
20410                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20411                        let control_handle =
20412                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20413                        Ok(BaseNetworkSocketRequest::GetIpv6Only {
20414                            responder: BaseNetworkSocketGetIpv6OnlyResponder {
20415                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20416                                tx_id: header.tx_id,
20417                            },
20418                        })
20419                    }
20420                    0x58f07c8788d099a0 => {
20421                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20422                        let mut req = fidl::new_empty!(
20423                            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
20424                            fidl::encoding::DefaultFuchsiaResourceDialect
20425                        );
20426                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
20427                        let control_handle =
20428                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20429                        Ok(BaseNetworkSocketRequest::SetIpv6ReceiveTrafficClass {
20430                            value: req.value,
20431
20432                            responder: BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
20433                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20434                                tx_id: header.tx_id,
20435                            },
20436                        })
20437                    }
20438                    0x2e334df1da553ffa => {
20439                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20440                        let mut req = fidl::new_empty!(
20441                            fidl::encoding::EmptyPayload,
20442                            fidl::encoding::DefaultFuchsiaResourceDialect
20443                        );
20444                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20445                        let control_handle =
20446                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20447                        Ok(BaseNetworkSocketRequest::GetIpv6ReceiveTrafficClass {
20448                            responder: BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
20449                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20450                                tx_id: header.tx_id,
20451                            },
20452                        })
20453                    }
20454                    0x6af077800c5a0b4f => {
20455                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20456                        let mut req = fidl::new_empty!(
20457                            BaseNetworkSocketSetIpv6TrafficClassRequest,
20458                            fidl::encoding::DefaultFuchsiaResourceDialect
20459                        );
20460                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
20461                        let control_handle =
20462                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20463                        Ok(BaseNetworkSocketRequest::SetIpv6TrafficClass {
20464                            value: req.value,
20465
20466                            responder: BaseNetworkSocketSetIpv6TrafficClassResponder {
20467                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20468                                tx_id: header.tx_id,
20469                            },
20470                        })
20471                    }
20472                    0x6baf6eed8fc2f04 => {
20473                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20474                        let mut req = fidl::new_empty!(
20475                            fidl::encoding::EmptyPayload,
20476                            fidl::encoding::DefaultFuchsiaResourceDialect
20477                        );
20478                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20479                        let control_handle =
20480                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20481                        Ok(BaseNetworkSocketRequest::GetIpv6TrafficClass {
20482                            responder: BaseNetworkSocketGetIpv6TrafficClassResponder {
20483                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20484                                tx_id: header.tx_id,
20485                            },
20486                        })
20487                    }
20488                    0x19259775b1a92768 => {
20489                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20490                        let mut req = fidl::new_empty!(
20491                            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
20492                            fidl::encoding::DefaultFuchsiaResourceDialect
20493                        );
20494                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
20495                        let control_handle =
20496                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20497                        Ok(BaseNetworkSocketRequest::SetIpv6ReceivePacketInfo {
20498                            value: req.value,
20499
20500                            responder: BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
20501                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20502                                tx_id: header.tx_id,
20503                            },
20504                        })
20505                    }
20506                    0x7acd4a2775baec75 => {
20507                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20508                        let mut req = fidl::new_empty!(
20509                            fidl::encoding::EmptyPayload,
20510                            fidl::encoding::DefaultFuchsiaResourceDialect
20511                        );
20512                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20513                        let control_handle =
20514                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20515                        Ok(BaseNetworkSocketRequest::GetIpv6ReceivePacketInfo {
20516                            responder: BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
20517                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20518                                tx_id: header.tx_id,
20519                            },
20520                        })
20521                    }
20522                    0x38bf28f0dafdbac0 => {
20523                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20524                        let mut req = fidl::new_empty!(
20525                            fidl::encoding::EmptyPayload,
20526                            fidl::encoding::DefaultFuchsiaResourceDialect
20527                        );
20528                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20529                        let control_handle =
20530                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20531                        Ok(BaseNetworkSocketRequest::GetOriginalDestination {
20532                            responder: BaseNetworkSocketGetOriginalDestinationResponder {
20533                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20534                                tx_id: header.tx_id,
20535                            },
20536                        })
20537                    }
20538                    _ => Err(fidl::Error::UnknownOrdinal {
20539                        ordinal: header.ordinal,
20540                        protocol_name:
20541                            <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
20542                    }),
20543                }))
20544            },
20545        )
20546    }
20547}
20548
20549/// A network socket.
20550#[derive(Debug)]
20551pub enum BaseNetworkSocketRequest {
20552    Clone {
20553        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
20554        control_handle: BaseNetworkSocketControlHandle,
20555    },
20556    /// Terminates the connection.
20557    ///
20558    /// After calling `Close`, the client must not send any other requests.
20559    ///
20560    /// Servers, after sending the status response, should close the connection
20561    /// regardless of status and without sending an epitaph.
20562    ///
20563    /// Closing the client end of the channel should be semantically equivalent
20564    /// to calling `Close` without knowing when the close has completed or its
20565    /// status.
20566    Close {
20567        responder: BaseNetworkSocketCloseResponder,
20568    },
20569    Query {
20570        responder: BaseNetworkSocketQueryResponder,
20571    },
20572    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
20573    SetReuseAddress {
20574        value: bool,
20575        responder: BaseNetworkSocketSetReuseAddressResponder,
20576    },
20577    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
20578    GetReuseAddress {
20579        responder: BaseNetworkSocketGetReuseAddressResponder,
20580    },
20581    /// Get `SOL_SOCKET` -> `SO_ERROR`.
20582    /// Returns the last error if there is an error set on the socket.
20583    GetError {
20584        responder: BaseNetworkSocketGetErrorResponder,
20585    },
20586    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
20587    SetBroadcast {
20588        value: bool,
20589        responder: BaseNetworkSocketSetBroadcastResponder,
20590    },
20591    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
20592    GetBroadcast {
20593        responder: BaseNetworkSocketGetBroadcastResponder,
20594    },
20595    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
20596    SetSendBuffer {
20597        value_bytes: u64,
20598        responder: BaseNetworkSocketSetSendBufferResponder,
20599    },
20600    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
20601    GetSendBuffer {
20602        responder: BaseNetworkSocketGetSendBufferResponder,
20603    },
20604    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
20605    SetReceiveBuffer {
20606        value_bytes: u64,
20607        responder: BaseNetworkSocketSetReceiveBufferResponder,
20608    },
20609    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
20610    GetReceiveBuffer {
20611        responder: BaseNetworkSocketGetReceiveBufferResponder,
20612    },
20613    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
20614    SetKeepAlive {
20615        value: bool,
20616        responder: BaseNetworkSocketSetKeepAliveResponder,
20617    },
20618    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
20619    GetKeepAlive {
20620        responder: BaseNetworkSocketGetKeepAliveResponder,
20621    },
20622    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
20623    SetOutOfBandInline {
20624        value: bool,
20625        responder: BaseNetworkSocketSetOutOfBandInlineResponder,
20626    },
20627    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
20628    GetOutOfBandInline {
20629        responder: BaseNetworkSocketGetOutOfBandInlineResponder,
20630    },
20631    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
20632    SetNoCheck {
20633        value: bool,
20634        responder: BaseNetworkSocketSetNoCheckResponder,
20635    },
20636    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
20637    GetNoCheck {
20638        responder: BaseNetworkSocketGetNoCheckResponder,
20639    },
20640    /// Set `SOL_SOCKET` -> `SO_LINGER`.
20641    SetLinger {
20642        linger: bool,
20643        length_secs: u32,
20644        responder: BaseNetworkSocketSetLingerResponder,
20645    },
20646    /// Get `SOL_SOCKET` -> `SO_LINGER`.
20647    GetLinger {
20648        responder: BaseNetworkSocketGetLingerResponder,
20649    },
20650    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
20651    SetReusePort {
20652        value: bool,
20653        responder: BaseNetworkSocketSetReusePortResponder,
20654    },
20655    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
20656    GetReusePort {
20657        responder: BaseNetworkSocketGetReusePortResponder,
20658    },
20659    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
20660    GetAcceptConn {
20661        responder: BaseNetworkSocketGetAcceptConnResponder,
20662    },
20663    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
20664    SetBindToDevice {
20665        value: String,
20666        responder: BaseNetworkSocketSetBindToDeviceResponder,
20667    },
20668    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
20669    GetBindToDevice {
20670        responder: BaseNetworkSocketGetBindToDeviceResponder,
20671    },
20672    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
20673    /// If `value` is 0, this clears the bound interface.
20674    SetBindToInterfaceIndex {
20675        value: u64,
20676        responder: BaseNetworkSocketSetBindToInterfaceIndexResponder,
20677    },
20678    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
20679    GetBindToInterfaceIndex {
20680        responder: BaseNetworkSocketGetBindToInterfaceIndexResponder,
20681    },
20682    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
20683    SetTimestamp {
20684        value: TimestampOption,
20685        responder: BaseNetworkSocketSetTimestampResponder,
20686    },
20687    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
20688    GetTimestamp {
20689        responder: BaseNetworkSocketGetTimestampResponder,
20690    },
20691    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
20692    /// unlike the standard SO_MARK, this API has multiple mark domains and each
20693    /// mark can be set independently in each domain.
20694    SetMark {
20695        domain: fidl_fuchsia_net::MarkDomain,
20696        mark: OptionalUint32,
20697        responder: BaseNetworkSocketSetMarkResponder,
20698    },
20699    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
20700    /// unlike the standard SO_MARK, this API has multiple mark domains and each
20701    /// mark can be retrieved independently in each domain.
20702    GetMark {
20703        domain: fidl_fuchsia_net::MarkDomain,
20704        responder: BaseNetworkSocketGetMarkResponder,
20705    },
20706    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
20707    GetCookie {
20708        responder: BaseNetworkSocketGetCookieResponder,
20709    },
20710    /// Sets the local address used for the socket.
20711    Bind {
20712        addr: fidl_fuchsia_net::SocketAddress,
20713        responder: BaseNetworkSocketBindResponder,
20714    },
20715    /// Initiates a connection to a remote address.
20716    Connect {
20717        addr: fidl_fuchsia_net::SocketAddress,
20718        responder: BaseNetworkSocketConnectResponder,
20719    },
20720    /// Clears connection information from this socket.
20721    Disconnect {
20722        responder: BaseNetworkSocketDisconnectResponder,
20723    },
20724    /// Retrieves the local socket address.
20725    GetSockName {
20726        responder: BaseNetworkSocketGetSockNameResponder,
20727    },
20728    /// Retrieves the remote socket address.
20729    GetPeerName {
20730        responder: BaseNetworkSocketGetPeerNameResponder,
20731    },
20732    /// Shuts down part of the socket.
20733    Shutdown {
20734        mode: ShutdownMode,
20735        responder: BaseNetworkSocketShutdownResponder,
20736    },
20737    /// Set `SOL_IP` -> `IP_TOS`.
20738    SetIpTypeOfService {
20739        value: u8,
20740        responder: BaseNetworkSocketSetIpTypeOfServiceResponder,
20741    },
20742    /// Get `SOL_IP` -> `IP_TOS`.
20743    GetIpTypeOfService {
20744        responder: BaseNetworkSocketGetIpTypeOfServiceResponder,
20745    },
20746    /// Set `SOL_IP` -> `IP_TTL`.
20747    SetIpTtl {
20748        value: OptionalUint8,
20749        responder: BaseNetworkSocketSetIpTtlResponder,
20750    },
20751    /// Get `SOL_IP` -> `IP_TTL`.
20752    GetIpTtl {
20753        responder: BaseNetworkSocketGetIpTtlResponder,
20754    },
20755    /// Set `SOL_IP` -> `IP_PKTINFO`.
20756    SetIpPacketInfo {
20757        value: bool,
20758        responder: BaseNetworkSocketSetIpPacketInfoResponder,
20759    },
20760    /// Get `SOL_IP` -> `IP_PKTINFO`.
20761    GetIpPacketInfo {
20762        responder: BaseNetworkSocketGetIpPacketInfoResponder,
20763    },
20764    /// Set `SOL_IP` -> `IP_RECVTOS`.
20765    SetIpReceiveTypeOfService {
20766        value: bool,
20767        responder: BaseNetworkSocketSetIpReceiveTypeOfServiceResponder,
20768    },
20769    /// Get `SOL_IP` -> `IP_RECVTOS`.
20770    GetIpReceiveTypeOfService {
20771        responder: BaseNetworkSocketGetIpReceiveTypeOfServiceResponder,
20772    },
20773    /// Set `SOL_IP` -> `IP_RECVTTL`.
20774    SetIpReceiveTtl {
20775        value: bool,
20776        responder: BaseNetworkSocketSetIpReceiveTtlResponder,
20777    },
20778    /// Get `SOL_IP` -> `IP_RECVTTL`.
20779    GetIpReceiveTtl {
20780        responder: BaseNetworkSocketGetIpReceiveTtlResponder,
20781    },
20782    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
20783    SetIpMulticastInterface {
20784        iface: u64,
20785        address: fidl_fuchsia_net::Ipv4Address,
20786        responder: BaseNetworkSocketSetIpMulticastInterfaceResponder,
20787    },
20788    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
20789    GetIpMulticastInterface {
20790        responder: BaseNetworkSocketGetIpMulticastInterfaceResponder,
20791    },
20792    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
20793    SetIpMulticastTtl {
20794        value: OptionalUint8,
20795        responder: BaseNetworkSocketSetIpMulticastTtlResponder,
20796    },
20797    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
20798    GetIpMulticastTtl {
20799        responder: BaseNetworkSocketGetIpMulticastTtlResponder,
20800    },
20801    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
20802    SetIpMulticastLoopback {
20803        value: bool,
20804        responder: BaseNetworkSocketSetIpMulticastLoopbackResponder,
20805    },
20806    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
20807    GetIpMulticastLoopback {
20808        responder: BaseNetworkSocketGetIpMulticastLoopbackResponder,
20809    },
20810    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
20811    AddIpMembership {
20812        membership: IpMulticastMembership,
20813        responder: BaseNetworkSocketAddIpMembershipResponder,
20814    },
20815    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
20816    DropIpMembership {
20817        membership: IpMulticastMembership,
20818        responder: BaseNetworkSocketDropIpMembershipResponder,
20819    },
20820    /// Set `SOL_IP` -> `IP_TRANSPARENT`
20821    SetIpTransparent {
20822        value: bool,
20823        responder: BaseNetworkSocketSetIpTransparentResponder,
20824    },
20825    /// Get `SOL_IP` -> `IP_TRANSPARENT`
20826    GetIpTransparent {
20827        responder: BaseNetworkSocketGetIpTransparentResponder,
20828    },
20829    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
20830    SetIpReceiveOriginalDestinationAddress {
20831        value: bool,
20832        responder: BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder,
20833    },
20834    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
20835    GetIpReceiveOriginalDestinationAddress {
20836        responder: BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder,
20837    },
20838    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
20839    AddIpv6Membership {
20840        membership: Ipv6MulticastMembership,
20841        responder: BaseNetworkSocketAddIpv6MembershipResponder,
20842    },
20843    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
20844    DropIpv6Membership {
20845        membership: Ipv6MulticastMembership,
20846        responder: BaseNetworkSocketDropIpv6MembershipResponder,
20847    },
20848    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
20849    SetIpv6MulticastInterface {
20850        value: u64,
20851        responder: BaseNetworkSocketSetIpv6MulticastInterfaceResponder,
20852    },
20853    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
20854    GetIpv6MulticastInterface {
20855        responder: BaseNetworkSocketGetIpv6MulticastInterfaceResponder,
20856    },
20857    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
20858    SetIpv6UnicastHops {
20859        value: OptionalUint8,
20860        responder: BaseNetworkSocketSetIpv6UnicastHopsResponder,
20861    },
20862    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
20863    GetIpv6UnicastHops {
20864        responder: BaseNetworkSocketGetIpv6UnicastHopsResponder,
20865    },
20866    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
20867    SetIpv6ReceiveHopLimit {
20868        value: bool,
20869        responder: BaseNetworkSocketSetIpv6ReceiveHopLimitResponder,
20870    },
20871    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
20872    GetIpv6ReceiveHopLimit {
20873        responder: BaseNetworkSocketGetIpv6ReceiveHopLimitResponder,
20874    },
20875    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
20876    SetIpv6MulticastHops {
20877        value: OptionalUint8,
20878        responder: BaseNetworkSocketSetIpv6MulticastHopsResponder,
20879    },
20880    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
20881    GetIpv6MulticastHops {
20882        responder: BaseNetworkSocketGetIpv6MulticastHopsResponder,
20883    },
20884    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
20885    SetIpv6MulticastLoopback {
20886        value: bool,
20887        responder: BaseNetworkSocketSetIpv6MulticastLoopbackResponder,
20888    },
20889    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
20890    GetIpv6MulticastLoopback {
20891        responder: BaseNetworkSocketGetIpv6MulticastLoopbackResponder,
20892    },
20893    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
20894    SetIpv6Only {
20895        value: bool,
20896        responder: BaseNetworkSocketSetIpv6OnlyResponder,
20897    },
20898    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
20899    GetIpv6Only {
20900        responder: BaseNetworkSocketGetIpv6OnlyResponder,
20901    },
20902    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
20903    SetIpv6ReceiveTrafficClass {
20904        value: bool,
20905        responder: BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder,
20906    },
20907    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
20908    GetIpv6ReceiveTrafficClass {
20909        responder: BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder,
20910    },
20911    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
20912    SetIpv6TrafficClass {
20913        value: OptionalUint8,
20914        responder: BaseNetworkSocketSetIpv6TrafficClassResponder,
20915    },
20916    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
20917    GetIpv6TrafficClass {
20918        responder: BaseNetworkSocketGetIpv6TrafficClassResponder,
20919    },
20920    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
20921    SetIpv6ReceivePacketInfo {
20922        value: bool,
20923        responder: BaseNetworkSocketSetIpv6ReceivePacketInfoResponder,
20924    },
20925    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
20926    GetIpv6ReceivePacketInfo {
20927        responder: BaseNetworkSocketGetIpv6ReceivePacketInfoResponder,
20928    },
20929    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
20930    GetOriginalDestination {
20931        responder: BaseNetworkSocketGetOriginalDestinationResponder,
20932    },
20933}
20934
20935impl BaseNetworkSocketRequest {
20936    #[allow(irrefutable_let_patterns)]
20937    pub fn into_clone(
20938        self,
20939    ) -> Option<(
20940        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
20941        BaseNetworkSocketControlHandle,
20942    )> {
20943        if let BaseNetworkSocketRequest::Clone { request, control_handle } = self {
20944            Some((request, control_handle))
20945        } else {
20946            None
20947        }
20948    }
20949
20950    #[allow(irrefutable_let_patterns)]
20951    pub fn into_close(self) -> Option<(BaseNetworkSocketCloseResponder)> {
20952        if let BaseNetworkSocketRequest::Close { responder } = self {
20953            Some((responder))
20954        } else {
20955            None
20956        }
20957    }
20958
20959    #[allow(irrefutable_let_patterns)]
20960    pub fn into_query(self) -> Option<(BaseNetworkSocketQueryResponder)> {
20961        if let BaseNetworkSocketRequest::Query { responder } = self {
20962            Some((responder))
20963        } else {
20964            None
20965        }
20966    }
20967
20968    #[allow(irrefutable_let_patterns)]
20969    pub fn into_set_reuse_address(
20970        self,
20971    ) -> Option<(bool, BaseNetworkSocketSetReuseAddressResponder)> {
20972        if let BaseNetworkSocketRequest::SetReuseAddress { value, responder } = self {
20973            Some((value, responder))
20974        } else {
20975            None
20976        }
20977    }
20978
20979    #[allow(irrefutable_let_patterns)]
20980    pub fn into_get_reuse_address(self) -> Option<(BaseNetworkSocketGetReuseAddressResponder)> {
20981        if let BaseNetworkSocketRequest::GetReuseAddress { responder } = self {
20982            Some((responder))
20983        } else {
20984            None
20985        }
20986    }
20987
20988    #[allow(irrefutable_let_patterns)]
20989    pub fn into_get_error(self) -> Option<(BaseNetworkSocketGetErrorResponder)> {
20990        if let BaseNetworkSocketRequest::GetError { responder } = self {
20991            Some((responder))
20992        } else {
20993            None
20994        }
20995    }
20996
20997    #[allow(irrefutable_let_patterns)]
20998    pub fn into_set_broadcast(self) -> Option<(bool, BaseNetworkSocketSetBroadcastResponder)> {
20999        if let BaseNetworkSocketRequest::SetBroadcast { value, responder } = self {
21000            Some((value, responder))
21001        } else {
21002            None
21003        }
21004    }
21005
21006    #[allow(irrefutable_let_patterns)]
21007    pub fn into_get_broadcast(self) -> Option<(BaseNetworkSocketGetBroadcastResponder)> {
21008        if let BaseNetworkSocketRequest::GetBroadcast { responder } = self {
21009            Some((responder))
21010        } else {
21011            None
21012        }
21013    }
21014
21015    #[allow(irrefutable_let_patterns)]
21016    pub fn into_set_send_buffer(self) -> Option<(u64, BaseNetworkSocketSetSendBufferResponder)> {
21017        if let BaseNetworkSocketRequest::SetSendBuffer { value_bytes, responder } = self {
21018            Some((value_bytes, responder))
21019        } else {
21020            None
21021        }
21022    }
21023
21024    #[allow(irrefutable_let_patterns)]
21025    pub fn into_get_send_buffer(self) -> Option<(BaseNetworkSocketGetSendBufferResponder)> {
21026        if let BaseNetworkSocketRequest::GetSendBuffer { responder } = self {
21027            Some((responder))
21028        } else {
21029            None
21030        }
21031    }
21032
21033    #[allow(irrefutable_let_patterns)]
21034    pub fn into_set_receive_buffer(
21035        self,
21036    ) -> Option<(u64, BaseNetworkSocketSetReceiveBufferResponder)> {
21037        if let BaseNetworkSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
21038            Some((value_bytes, responder))
21039        } else {
21040            None
21041        }
21042    }
21043
21044    #[allow(irrefutable_let_patterns)]
21045    pub fn into_get_receive_buffer(self) -> Option<(BaseNetworkSocketGetReceiveBufferResponder)> {
21046        if let BaseNetworkSocketRequest::GetReceiveBuffer { responder } = self {
21047            Some((responder))
21048        } else {
21049            None
21050        }
21051    }
21052
21053    #[allow(irrefutable_let_patterns)]
21054    pub fn into_set_keep_alive(self) -> Option<(bool, BaseNetworkSocketSetKeepAliveResponder)> {
21055        if let BaseNetworkSocketRequest::SetKeepAlive { value, responder } = self {
21056            Some((value, responder))
21057        } else {
21058            None
21059        }
21060    }
21061
21062    #[allow(irrefutable_let_patterns)]
21063    pub fn into_get_keep_alive(self) -> Option<(BaseNetworkSocketGetKeepAliveResponder)> {
21064        if let BaseNetworkSocketRequest::GetKeepAlive { responder } = self {
21065            Some((responder))
21066        } else {
21067            None
21068        }
21069    }
21070
21071    #[allow(irrefutable_let_patterns)]
21072    pub fn into_set_out_of_band_inline(
21073        self,
21074    ) -> Option<(bool, BaseNetworkSocketSetOutOfBandInlineResponder)> {
21075        if let BaseNetworkSocketRequest::SetOutOfBandInline { value, responder } = self {
21076            Some((value, responder))
21077        } else {
21078            None
21079        }
21080    }
21081
21082    #[allow(irrefutable_let_patterns)]
21083    pub fn into_get_out_of_band_inline(
21084        self,
21085    ) -> Option<(BaseNetworkSocketGetOutOfBandInlineResponder)> {
21086        if let BaseNetworkSocketRequest::GetOutOfBandInline { responder } = self {
21087            Some((responder))
21088        } else {
21089            None
21090        }
21091    }
21092
21093    #[allow(irrefutable_let_patterns)]
21094    pub fn into_set_no_check(self) -> Option<(bool, BaseNetworkSocketSetNoCheckResponder)> {
21095        if let BaseNetworkSocketRequest::SetNoCheck { value, responder } = self {
21096            Some((value, responder))
21097        } else {
21098            None
21099        }
21100    }
21101
21102    #[allow(irrefutable_let_patterns)]
21103    pub fn into_get_no_check(self) -> Option<(BaseNetworkSocketGetNoCheckResponder)> {
21104        if let BaseNetworkSocketRequest::GetNoCheck { responder } = self {
21105            Some((responder))
21106        } else {
21107            None
21108        }
21109    }
21110
21111    #[allow(irrefutable_let_patterns)]
21112    pub fn into_set_linger(self) -> Option<(bool, u32, BaseNetworkSocketSetLingerResponder)> {
21113        if let BaseNetworkSocketRequest::SetLinger { linger, length_secs, responder } = self {
21114            Some((linger, length_secs, responder))
21115        } else {
21116            None
21117        }
21118    }
21119
21120    #[allow(irrefutable_let_patterns)]
21121    pub fn into_get_linger(self) -> Option<(BaseNetworkSocketGetLingerResponder)> {
21122        if let BaseNetworkSocketRequest::GetLinger { responder } = self {
21123            Some((responder))
21124        } else {
21125            None
21126        }
21127    }
21128
21129    #[allow(irrefutable_let_patterns)]
21130    pub fn into_set_reuse_port(self) -> Option<(bool, BaseNetworkSocketSetReusePortResponder)> {
21131        if let BaseNetworkSocketRequest::SetReusePort { value, responder } = self {
21132            Some((value, responder))
21133        } else {
21134            None
21135        }
21136    }
21137
21138    #[allow(irrefutable_let_patterns)]
21139    pub fn into_get_reuse_port(self) -> Option<(BaseNetworkSocketGetReusePortResponder)> {
21140        if let BaseNetworkSocketRequest::GetReusePort { responder } = self {
21141            Some((responder))
21142        } else {
21143            None
21144        }
21145    }
21146
21147    #[allow(irrefutable_let_patterns)]
21148    pub fn into_get_accept_conn(self) -> Option<(BaseNetworkSocketGetAcceptConnResponder)> {
21149        if let BaseNetworkSocketRequest::GetAcceptConn { responder } = self {
21150            Some((responder))
21151        } else {
21152            None
21153        }
21154    }
21155
21156    #[allow(irrefutable_let_patterns)]
21157    pub fn into_set_bind_to_device(
21158        self,
21159    ) -> Option<(String, BaseNetworkSocketSetBindToDeviceResponder)> {
21160        if let BaseNetworkSocketRequest::SetBindToDevice { value, responder } = self {
21161            Some((value, responder))
21162        } else {
21163            None
21164        }
21165    }
21166
21167    #[allow(irrefutable_let_patterns)]
21168    pub fn into_get_bind_to_device(self) -> Option<(BaseNetworkSocketGetBindToDeviceResponder)> {
21169        if let BaseNetworkSocketRequest::GetBindToDevice { responder } = self {
21170            Some((responder))
21171        } else {
21172            None
21173        }
21174    }
21175
21176    #[allow(irrefutable_let_patterns)]
21177    pub fn into_set_bind_to_interface_index(
21178        self,
21179    ) -> Option<(u64, BaseNetworkSocketSetBindToInterfaceIndexResponder)> {
21180        if let BaseNetworkSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
21181            Some((value, responder))
21182        } else {
21183            None
21184        }
21185    }
21186
21187    #[allow(irrefutable_let_patterns)]
21188    pub fn into_get_bind_to_interface_index(
21189        self,
21190    ) -> Option<(BaseNetworkSocketGetBindToInterfaceIndexResponder)> {
21191        if let BaseNetworkSocketRequest::GetBindToInterfaceIndex { responder } = self {
21192            Some((responder))
21193        } else {
21194            None
21195        }
21196    }
21197
21198    #[allow(irrefutable_let_patterns)]
21199    pub fn into_set_timestamp(
21200        self,
21201    ) -> Option<(TimestampOption, BaseNetworkSocketSetTimestampResponder)> {
21202        if let BaseNetworkSocketRequest::SetTimestamp { value, responder } = self {
21203            Some((value, responder))
21204        } else {
21205            None
21206        }
21207    }
21208
21209    #[allow(irrefutable_let_patterns)]
21210    pub fn into_get_timestamp(self) -> Option<(BaseNetworkSocketGetTimestampResponder)> {
21211        if let BaseNetworkSocketRequest::GetTimestamp { responder } = self {
21212            Some((responder))
21213        } else {
21214            None
21215        }
21216    }
21217
21218    #[allow(irrefutable_let_patterns)]
21219    pub fn into_set_mark(
21220        self,
21221    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, BaseNetworkSocketSetMarkResponder)>
21222    {
21223        if let BaseNetworkSocketRequest::SetMark { domain, mark, responder } = self {
21224            Some((domain, mark, responder))
21225        } else {
21226            None
21227        }
21228    }
21229
21230    #[allow(irrefutable_let_patterns)]
21231    pub fn into_get_mark(
21232        self,
21233    ) -> Option<(fidl_fuchsia_net::MarkDomain, BaseNetworkSocketGetMarkResponder)> {
21234        if let BaseNetworkSocketRequest::GetMark { domain, responder } = self {
21235            Some((domain, responder))
21236        } else {
21237            None
21238        }
21239    }
21240
21241    #[allow(irrefutable_let_patterns)]
21242    pub fn into_get_cookie(self) -> Option<(BaseNetworkSocketGetCookieResponder)> {
21243        if let BaseNetworkSocketRequest::GetCookie { responder } = self {
21244            Some((responder))
21245        } else {
21246            None
21247        }
21248    }
21249
21250    #[allow(irrefutable_let_patterns)]
21251    pub fn into_bind(
21252        self,
21253    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseNetworkSocketBindResponder)> {
21254        if let BaseNetworkSocketRequest::Bind { addr, responder } = self {
21255            Some((addr, responder))
21256        } else {
21257            None
21258        }
21259    }
21260
21261    #[allow(irrefutable_let_patterns)]
21262    pub fn into_connect(
21263        self,
21264    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseNetworkSocketConnectResponder)> {
21265        if let BaseNetworkSocketRequest::Connect { addr, responder } = self {
21266            Some((addr, responder))
21267        } else {
21268            None
21269        }
21270    }
21271
21272    #[allow(irrefutable_let_patterns)]
21273    pub fn into_disconnect(self) -> Option<(BaseNetworkSocketDisconnectResponder)> {
21274        if let BaseNetworkSocketRequest::Disconnect { responder } = self {
21275            Some((responder))
21276        } else {
21277            None
21278        }
21279    }
21280
21281    #[allow(irrefutable_let_patterns)]
21282    pub fn into_get_sock_name(self) -> Option<(BaseNetworkSocketGetSockNameResponder)> {
21283        if let BaseNetworkSocketRequest::GetSockName { responder } = self {
21284            Some((responder))
21285        } else {
21286            None
21287        }
21288    }
21289
21290    #[allow(irrefutable_let_patterns)]
21291    pub fn into_get_peer_name(self) -> Option<(BaseNetworkSocketGetPeerNameResponder)> {
21292        if let BaseNetworkSocketRequest::GetPeerName { responder } = self {
21293            Some((responder))
21294        } else {
21295            None
21296        }
21297    }
21298
21299    #[allow(irrefutable_let_patterns)]
21300    pub fn into_shutdown(self) -> Option<(ShutdownMode, BaseNetworkSocketShutdownResponder)> {
21301        if let BaseNetworkSocketRequest::Shutdown { mode, responder } = self {
21302            Some((mode, responder))
21303        } else {
21304            None
21305        }
21306    }
21307
21308    #[allow(irrefutable_let_patterns)]
21309    pub fn into_set_ip_type_of_service(
21310        self,
21311    ) -> Option<(u8, BaseNetworkSocketSetIpTypeOfServiceResponder)> {
21312        if let BaseNetworkSocketRequest::SetIpTypeOfService { value, responder } = self {
21313            Some((value, responder))
21314        } else {
21315            None
21316        }
21317    }
21318
21319    #[allow(irrefutable_let_patterns)]
21320    pub fn into_get_ip_type_of_service(
21321        self,
21322    ) -> Option<(BaseNetworkSocketGetIpTypeOfServiceResponder)> {
21323        if let BaseNetworkSocketRequest::GetIpTypeOfService { responder } = self {
21324            Some((responder))
21325        } else {
21326            None
21327        }
21328    }
21329
21330    #[allow(irrefutable_let_patterns)]
21331    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, BaseNetworkSocketSetIpTtlResponder)> {
21332        if let BaseNetworkSocketRequest::SetIpTtl { value, responder } = self {
21333            Some((value, responder))
21334        } else {
21335            None
21336        }
21337    }
21338
21339    #[allow(irrefutable_let_patterns)]
21340    pub fn into_get_ip_ttl(self) -> Option<(BaseNetworkSocketGetIpTtlResponder)> {
21341        if let BaseNetworkSocketRequest::GetIpTtl { responder } = self {
21342            Some((responder))
21343        } else {
21344            None
21345        }
21346    }
21347
21348    #[allow(irrefutable_let_patterns)]
21349    pub fn into_set_ip_packet_info(
21350        self,
21351    ) -> Option<(bool, BaseNetworkSocketSetIpPacketInfoResponder)> {
21352        if let BaseNetworkSocketRequest::SetIpPacketInfo { value, responder } = self {
21353            Some((value, responder))
21354        } else {
21355            None
21356        }
21357    }
21358
21359    #[allow(irrefutable_let_patterns)]
21360    pub fn into_get_ip_packet_info(self) -> Option<(BaseNetworkSocketGetIpPacketInfoResponder)> {
21361        if let BaseNetworkSocketRequest::GetIpPacketInfo { responder } = self {
21362            Some((responder))
21363        } else {
21364            None
21365        }
21366    }
21367
21368    #[allow(irrefutable_let_patterns)]
21369    pub fn into_set_ip_receive_type_of_service(
21370        self,
21371    ) -> Option<(bool, BaseNetworkSocketSetIpReceiveTypeOfServiceResponder)> {
21372        if let BaseNetworkSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
21373            Some((value, responder))
21374        } else {
21375            None
21376        }
21377    }
21378
21379    #[allow(irrefutable_let_patterns)]
21380    pub fn into_get_ip_receive_type_of_service(
21381        self,
21382    ) -> Option<(BaseNetworkSocketGetIpReceiveTypeOfServiceResponder)> {
21383        if let BaseNetworkSocketRequest::GetIpReceiveTypeOfService { responder } = self {
21384            Some((responder))
21385        } else {
21386            None
21387        }
21388    }
21389
21390    #[allow(irrefutable_let_patterns)]
21391    pub fn into_set_ip_receive_ttl(
21392        self,
21393    ) -> Option<(bool, BaseNetworkSocketSetIpReceiveTtlResponder)> {
21394        if let BaseNetworkSocketRequest::SetIpReceiveTtl { value, responder } = self {
21395            Some((value, responder))
21396        } else {
21397            None
21398        }
21399    }
21400
21401    #[allow(irrefutable_let_patterns)]
21402    pub fn into_get_ip_receive_ttl(self) -> Option<(BaseNetworkSocketGetIpReceiveTtlResponder)> {
21403        if let BaseNetworkSocketRequest::GetIpReceiveTtl { responder } = self {
21404            Some((responder))
21405        } else {
21406            None
21407        }
21408    }
21409
21410    #[allow(irrefutable_let_patterns)]
21411    pub fn into_set_ip_multicast_interface(
21412        self,
21413    ) -> Option<(
21414        u64,
21415        fidl_fuchsia_net::Ipv4Address,
21416        BaseNetworkSocketSetIpMulticastInterfaceResponder,
21417    )> {
21418        if let BaseNetworkSocketRequest::SetIpMulticastInterface { iface, address, responder } =
21419            self
21420        {
21421            Some((iface, address, responder))
21422        } else {
21423            None
21424        }
21425    }
21426
21427    #[allow(irrefutable_let_patterns)]
21428    pub fn into_get_ip_multicast_interface(
21429        self,
21430    ) -> Option<(BaseNetworkSocketGetIpMulticastInterfaceResponder)> {
21431        if let BaseNetworkSocketRequest::GetIpMulticastInterface { responder } = self {
21432            Some((responder))
21433        } else {
21434            None
21435        }
21436    }
21437
21438    #[allow(irrefutable_let_patterns)]
21439    pub fn into_set_ip_multicast_ttl(
21440        self,
21441    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpMulticastTtlResponder)> {
21442        if let BaseNetworkSocketRequest::SetIpMulticastTtl { value, responder } = self {
21443            Some((value, responder))
21444        } else {
21445            None
21446        }
21447    }
21448
21449    #[allow(irrefutable_let_patterns)]
21450    pub fn into_get_ip_multicast_ttl(
21451        self,
21452    ) -> Option<(BaseNetworkSocketGetIpMulticastTtlResponder)> {
21453        if let BaseNetworkSocketRequest::GetIpMulticastTtl { responder } = self {
21454            Some((responder))
21455        } else {
21456            None
21457        }
21458    }
21459
21460    #[allow(irrefutable_let_patterns)]
21461    pub fn into_set_ip_multicast_loopback(
21462        self,
21463    ) -> Option<(bool, BaseNetworkSocketSetIpMulticastLoopbackResponder)> {
21464        if let BaseNetworkSocketRequest::SetIpMulticastLoopback { value, responder } = self {
21465            Some((value, responder))
21466        } else {
21467            None
21468        }
21469    }
21470
21471    #[allow(irrefutable_let_patterns)]
21472    pub fn into_get_ip_multicast_loopback(
21473        self,
21474    ) -> Option<(BaseNetworkSocketGetIpMulticastLoopbackResponder)> {
21475        if let BaseNetworkSocketRequest::GetIpMulticastLoopback { responder } = self {
21476            Some((responder))
21477        } else {
21478            None
21479        }
21480    }
21481
21482    #[allow(irrefutable_let_patterns)]
21483    pub fn into_add_ip_membership(
21484        self,
21485    ) -> Option<(IpMulticastMembership, BaseNetworkSocketAddIpMembershipResponder)> {
21486        if let BaseNetworkSocketRequest::AddIpMembership { membership, responder } = self {
21487            Some((membership, responder))
21488        } else {
21489            None
21490        }
21491    }
21492
21493    #[allow(irrefutable_let_patterns)]
21494    pub fn into_drop_ip_membership(
21495        self,
21496    ) -> Option<(IpMulticastMembership, BaseNetworkSocketDropIpMembershipResponder)> {
21497        if let BaseNetworkSocketRequest::DropIpMembership { membership, responder } = self {
21498            Some((membership, responder))
21499        } else {
21500            None
21501        }
21502    }
21503
21504    #[allow(irrefutable_let_patterns)]
21505    pub fn into_set_ip_transparent(
21506        self,
21507    ) -> Option<(bool, BaseNetworkSocketSetIpTransparentResponder)> {
21508        if let BaseNetworkSocketRequest::SetIpTransparent { value, responder } = self {
21509            Some((value, responder))
21510        } else {
21511            None
21512        }
21513    }
21514
21515    #[allow(irrefutable_let_patterns)]
21516    pub fn into_get_ip_transparent(self) -> Option<(BaseNetworkSocketGetIpTransparentResponder)> {
21517        if let BaseNetworkSocketRequest::GetIpTransparent { responder } = self {
21518            Some((responder))
21519        } else {
21520            None
21521        }
21522    }
21523
21524    #[allow(irrefutable_let_patterns)]
21525    pub fn into_set_ip_receive_original_destination_address(
21526        self,
21527    ) -> Option<(bool, BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder)> {
21528        if let BaseNetworkSocketRequest::SetIpReceiveOriginalDestinationAddress {
21529            value,
21530            responder,
21531        } = self
21532        {
21533            Some((value, responder))
21534        } else {
21535            None
21536        }
21537    }
21538
21539    #[allow(irrefutable_let_patterns)]
21540    pub fn into_get_ip_receive_original_destination_address(
21541        self,
21542    ) -> Option<(BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder)> {
21543        if let BaseNetworkSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } = self
21544        {
21545            Some((responder))
21546        } else {
21547            None
21548        }
21549    }
21550
21551    #[allow(irrefutable_let_patterns)]
21552    pub fn into_add_ipv6_membership(
21553        self,
21554    ) -> Option<(Ipv6MulticastMembership, BaseNetworkSocketAddIpv6MembershipResponder)> {
21555        if let BaseNetworkSocketRequest::AddIpv6Membership { membership, responder } = self {
21556            Some((membership, responder))
21557        } else {
21558            None
21559        }
21560    }
21561
21562    #[allow(irrefutable_let_patterns)]
21563    pub fn into_drop_ipv6_membership(
21564        self,
21565    ) -> Option<(Ipv6MulticastMembership, BaseNetworkSocketDropIpv6MembershipResponder)> {
21566        if let BaseNetworkSocketRequest::DropIpv6Membership { membership, responder } = self {
21567            Some((membership, responder))
21568        } else {
21569            None
21570        }
21571    }
21572
21573    #[allow(irrefutable_let_patterns)]
21574    pub fn into_set_ipv6_multicast_interface(
21575        self,
21576    ) -> Option<(u64, BaseNetworkSocketSetIpv6MulticastInterfaceResponder)> {
21577        if let BaseNetworkSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
21578            Some((value, responder))
21579        } else {
21580            None
21581        }
21582    }
21583
21584    #[allow(irrefutable_let_patterns)]
21585    pub fn into_get_ipv6_multicast_interface(
21586        self,
21587    ) -> Option<(BaseNetworkSocketGetIpv6MulticastInterfaceResponder)> {
21588        if let BaseNetworkSocketRequest::GetIpv6MulticastInterface { responder } = self {
21589            Some((responder))
21590        } else {
21591            None
21592        }
21593    }
21594
21595    #[allow(irrefutable_let_patterns)]
21596    pub fn into_set_ipv6_unicast_hops(
21597        self,
21598    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpv6UnicastHopsResponder)> {
21599        if let BaseNetworkSocketRequest::SetIpv6UnicastHops { value, responder } = self {
21600            Some((value, responder))
21601        } else {
21602            None
21603        }
21604    }
21605
21606    #[allow(irrefutable_let_patterns)]
21607    pub fn into_get_ipv6_unicast_hops(
21608        self,
21609    ) -> Option<(BaseNetworkSocketGetIpv6UnicastHopsResponder)> {
21610        if let BaseNetworkSocketRequest::GetIpv6UnicastHops { responder } = self {
21611            Some((responder))
21612        } else {
21613            None
21614        }
21615    }
21616
21617    #[allow(irrefutable_let_patterns)]
21618    pub fn into_set_ipv6_receive_hop_limit(
21619        self,
21620    ) -> Option<(bool, BaseNetworkSocketSetIpv6ReceiveHopLimitResponder)> {
21621        if let BaseNetworkSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
21622            Some((value, responder))
21623        } else {
21624            None
21625        }
21626    }
21627
21628    #[allow(irrefutable_let_patterns)]
21629    pub fn into_get_ipv6_receive_hop_limit(
21630        self,
21631    ) -> Option<(BaseNetworkSocketGetIpv6ReceiveHopLimitResponder)> {
21632        if let BaseNetworkSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
21633            Some((responder))
21634        } else {
21635            None
21636        }
21637    }
21638
21639    #[allow(irrefutable_let_patterns)]
21640    pub fn into_set_ipv6_multicast_hops(
21641        self,
21642    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpv6MulticastHopsResponder)> {
21643        if let BaseNetworkSocketRequest::SetIpv6MulticastHops { value, responder } = self {
21644            Some((value, responder))
21645        } else {
21646            None
21647        }
21648    }
21649
21650    #[allow(irrefutable_let_patterns)]
21651    pub fn into_get_ipv6_multicast_hops(
21652        self,
21653    ) -> Option<(BaseNetworkSocketGetIpv6MulticastHopsResponder)> {
21654        if let BaseNetworkSocketRequest::GetIpv6MulticastHops { responder } = self {
21655            Some((responder))
21656        } else {
21657            None
21658        }
21659    }
21660
21661    #[allow(irrefutable_let_patterns)]
21662    pub fn into_set_ipv6_multicast_loopback(
21663        self,
21664    ) -> Option<(bool, BaseNetworkSocketSetIpv6MulticastLoopbackResponder)> {
21665        if let BaseNetworkSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
21666            Some((value, responder))
21667        } else {
21668            None
21669        }
21670    }
21671
21672    #[allow(irrefutable_let_patterns)]
21673    pub fn into_get_ipv6_multicast_loopback(
21674        self,
21675    ) -> Option<(BaseNetworkSocketGetIpv6MulticastLoopbackResponder)> {
21676        if let BaseNetworkSocketRequest::GetIpv6MulticastLoopback { responder } = self {
21677            Some((responder))
21678        } else {
21679            None
21680        }
21681    }
21682
21683    #[allow(irrefutable_let_patterns)]
21684    pub fn into_set_ipv6_only(self) -> Option<(bool, BaseNetworkSocketSetIpv6OnlyResponder)> {
21685        if let BaseNetworkSocketRequest::SetIpv6Only { value, responder } = self {
21686            Some((value, responder))
21687        } else {
21688            None
21689        }
21690    }
21691
21692    #[allow(irrefutable_let_patterns)]
21693    pub fn into_get_ipv6_only(self) -> Option<(BaseNetworkSocketGetIpv6OnlyResponder)> {
21694        if let BaseNetworkSocketRequest::GetIpv6Only { responder } = self {
21695            Some((responder))
21696        } else {
21697            None
21698        }
21699    }
21700
21701    #[allow(irrefutable_let_patterns)]
21702    pub fn into_set_ipv6_receive_traffic_class(
21703        self,
21704    ) -> Option<(bool, BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder)> {
21705        if let BaseNetworkSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
21706            Some((value, responder))
21707        } else {
21708            None
21709        }
21710    }
21711
21712    #[allow(irrefutable_let_patterns)]
21713    pub fn into_get_ipv6_receive_traffic_class(
21714        self,
21715    ) -> Option<(BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder)> {
21716        if let BaseNetworkSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
21717            Some((responder))
21718        } else {
21719            None
21720        }
21721    }
21722
21723    #[allow(irrefutable_let_patterns)]
21724    pub fn into_set_ipv6_traffic_class(
21725        self,
21726    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpv6TrafficClassResponder)> {
21727        if let BaseNetworkSocketRequest::SetIpv6TrafficClass { value, responder } = self {
21728            Some((value, responder))
21729        } else {
21730            None
21731        }
21732    }
21733
21734    #[allow(irrefutable_let_patterns)]
21735    pub fn into_get_ipv6_traffic_class(
21736        self,
21737    ) -> Option<(BaseNetworkSocketGetIpv6TrafficClassResponder)> {
21738        if let BaseNetworkSocketRequest::GetIpv6TrafficClass { responder } = self {
21739            Some((responder))
21740        } else {
21741            None
21742        }
21743    }
21744
21745    #[allow(irrefutable_let_patterns)]
21746    pub fn into_set_ipv6_receive_packet_info(
21747        self,
21748    ) -> Option<(bool, BaseNetworkSocketSetIpv6ReceivePacketInfoResponder)> {
21749        if let BaseNetworkSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
21750            Some((value, responder))
21751        } else {
21752            None
21753        }
21754    }
21755
21756    #[allow(irrefutable_let_patterns)]
21757    pub fn into_get_ipv6_receive_packet_info(
21758        self,
21759    ) -> Option<(BaseNetworkSocketGetIpv6ReceivePacketInfoResponder)> {
21760        if let BaseNetworkSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
21761            Some((responder))
21762        } else {
21763            None
21764        }
21765    }
21766
21767    #[allow(irrefutable_let_patterns)]
21768    pub fn into_get_original_destination(
21769        self,
21770    ) -> Option<(BaseNetworkSocketGetOriginalDestinationResponder)> {
21771        if let BaseNetworkSocketRequest::GetOriginalDestination { responder } = self {
21772            Some((responder))
21773        } else {
21774            None
21775        }
21776    }
21777
21778    /// Name of the method defined in FIDL
21779    pub fn method_name(&self) -> &'static str {
21780        match *self {
21781            BaseNetworkSocketRequest::Clone { .. } => "clone",
21782            BaseNetworkSocketRequest::Close { .. } => "close",
21783            BaseNetworkSocketRequest::Query { .. } => "query",
21784            BaseNetworkSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
21785            BaseNetworkSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
21786            BaseNetworkSocketRequest::GetError { .. } => "get_error",
21787            BaseNetworkSocketRequest::SetBroadcast { .. } => "set_broadcast",
21788            BaseNetworkSocketRequest::GetBroadcast { .. } => "get_broadcast",
21789            BaseNetworkSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
21790            BaseNetworkSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
21791            BaseNetworkSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
21792            BaseNetworkSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
21793            BaseNetworkSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
21794            BaseNetworkSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
21795            BaseNetworkSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
21796            BaseNetworkSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
21797            BaseNetworkSocketRequest::SetNoCheck { .. } => "set_no_check",
21798            BaseNetworkSocketRequest::GetNoCheck { .. } => "get_no_check",
21799            BaseNetworkSocketRequest::SetLinger { .. } => "set_linger",
21800            BaseNetworkSocketRequest::GetLinger { .. } => "get_linger",
21801            BaseNetworkSocketRequest::SetReusePort { .. } => "set_reuse_port",
21802            BaseNetworkSocketRequest::GetReusePort { .. } => "get_reuse_port",
21803            BaseNetworkSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
21804            BaseNetworkSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
21805            BaseNetworkSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
21806            BaseNetworkSocketRequest::SetBindToInterfaceIndex { .. } => {
21807                "set_bind_to_interface_index"
21808            }
21809            BaseNetworkSocketRequest::GetBindToInterfaceIndex { .. } => {
21810                "get_bind_to_interface_index"
21811            }
21812            BaseNetworkSocketRequest::SetTimestamp { .. } => "set_timestamp",
21813            BaseNetworkSocketRequest::GetTimestamp { .. } => "get_timestamp",
21814            BaseNetworkSocketRequest::SetMark { .. } => "set_mark",
21815            BaseNetworkSocketRequest::GetMark { .. } => "get_mark",
21816            BaseNetworkSocketRequest::GetCookie { .. } => "get_cookie",
21817            BaseNetworkSocketRequest::Bind { .. } => "bind",
21818            BaseNetworkSocketRequest::Connect { .. } => "connect",
21819            BaseNetworkSocketRequest::Disconnect { .. } => "disconnect",
21820            BaseNetworkSocketRequest::GetSockName { .. } => "get_sock_name",
21821            BaseNetworkSocketRequest::GetPeerName { .. } => "get_peer_name",
21822            BaseNetworkSocketRequest::Shutdown { .. } => "shutdown",
21823            BaseNetworkSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
21824            BaseNetworkSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
21825            BaseNetworkSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
21826            BaseNetworkSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
21827            BaseNetworkSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
21828            BaseNetworkSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
21829            BaseNetworkSocketRequest::SetIpReceiveTypeOfService { .. } => {
21830                "set_ip_receive_type_of_service"
21831            }
21832            BaseNetworkSocketRequest::GetIpReceiveTypeOfService { .. } => {
21833                "get_ip_receive_type_of_service"
21834            }
21835            BaseNetworkSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
21836            BaseNetworkSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
21837            BaseNetworkSocketRequest::SetIpMulticastInterface { .. } => {
21838                "set_ip_multicast_interface"
21839            }
21840            BaseNetworkSocketRequest::GetIpMulticastInterface { .. } => {
21841                "get_ip_multicast_interface"
21842            }
21843            BaseNetworkSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
21844            BaseNetworkSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
21845            BaseNetworkSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
21846            BaseNetworkSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
21847            BaseNetworkSocketRequest::AddIpMembership { .. } => "add_ip_membership",
21848            BaseNetworkSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
21849            BaseNetworkSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
21850            BaseNetworkSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
21851            BaseNetworkSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
21852                "set_ip_receive_original_destination_address"
21853            }
21854            BaseNetworkSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
21855                "get_ip_receive_original_destination_address"
21856            }
21857            BaseNetworkSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
21858            BaseNetworkSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
21859            BaseNetworkSocketRequest::SetIpv6MulticastInterface { .. } => {
21860                "set_ipv6_multicast_interface"
21861            }
21862            BaseNetworkSocketRequest::GetIpv6MulticastInterface { .. } => {
21863                "get_ipv6_multicast_interface"
21864            }
21865            BaseNetworkSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
21866            BaseNetworkSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
21867            BaseNetworkSocketRequest::SetIpv6ReceiveHopLimit { .. } => "set_ipv6_receive_hop_limit",
21868            BaseNetworkSocketRequest::GetIpv6ReceiveHopLimit { .. } => "get_ipv6_receive_hop_limit",
21869            BaseNetworkSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
21870            BaseNetworkSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
21871            BaseNetworkSocketRequest::SetIpv6MulticastLoopback { .. } => {
21872                "set_ipv6_multicast_loopback"
21873            }
21874            BaseNetworkSocketRequest::GetIpv6MulticastLoopback { .. } => {
21875                "get_ipv6_multicast_loopback"
21876            }
21877            BaseNetworkSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
21878            BaseNetworkSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
21879            BaseNetworkSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
21880                "set_ipv6_receive_traffic_class"
21881            }
21882            BaseNetworkSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
21883                "get_ipv6_receive_traffic_class"
21884            }
21885            BaseNetworkSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
21886            BaseNetworkSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
21887            BaseNetworkSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
21888                "set_ipv6_receive_packet_info"
21889            }
21890            BaseNetworkSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
21891                "get_ipv6_receive_packet_info"
21892            }
21893            BaseNetworkSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
21894        }
21895    }
21896}
21897
21898#[derive(Debug, Clone)]
21899pub struct BaseNetworkSocketControlHandle {
21900    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
21901}
21902
21903impl fidl::endpoints::ControlHandle for BaseNetworkSocketControlHandle {
21904    fn shutdown(&self) {
21905        self.inner.shutdown()
21906    }
21907    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
21908        self.inner.shutdown_with_epitaph(status)
21909    }
21910
21911    fn is_closed(&self) -> bool {
21912        self.inner.channel().is_closed()
21913    }
21914    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
21915        self.inner.channel().on_closed()
21916    }
21917
21918    #[cfg(target_os = "fuchsia")]
21919    fn signal_peer(
21920        &self,
21921        clear_mask: zx::Signals,
21922        set_mask: zx::Signals,
21923    ) -> Result<(), zx_status::Status> {
21924        use fidl::Peered;
21925        self.inner.channel().signal_peer(clear_mask, set_mask)
21926    }
21927}
21928
21929impl BaseNetworkSocketControlHandle {}
21930
21931#[must_use = "FIDL methods require a response to be sent"]
21932#[derive(Debug)]
21933pub struct BaseNetworkSocketCloseResponder {
21934    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
21935    tx_id: u32,
21936}
21937
21938/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
21939/// if the responder is dropped without sending a response, so that the client
21940/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
21941impl std::ops::Drop for BaseNetworkSocketCloseResponder {
21942    fn drop(&mut self) {
21943        self.control_handle.shutdown();
21944        // Safety: drops once, never accessed again
21945        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
21946    }
21947}
21948
21949impl fidl::endpoints::Responder for BaseNetworkSocketCloseResponder {
21950    type ControlHandle = BaseNetworkSocketControlHandle;
21951
21952    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
21953        &self.control_handle
21954    }
21955
21956    fn drop_without_shutdown(mut self) {
21957        // Safety: drops once, never accessed again due to mem::forget
21958        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
21959        // Prevent Drop from running (which would shut down the channel)
21960        std::mem::forget(self);
21961    }
21962}
21963
21964impl BaseNetworkSocketCloseResponder {
21965    /// Sends a response to the FIDL transaction.
21966    ///
21967    /// Sets the channel to shutdown if an error occurs.
21968    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
21969        let _result = self.send_raw(result);
21970        if _result.is_err() {
21971            self.control_handle.shutdown();
21972        }
21973        self.drop_without_shutdown();
21974        _result
21975    }
21976
21977    /// Similar to "send" but does not shutdown the channel if an error occurs.
21978    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
21979        let _result = self.send_raw(result);
21980        self.drop_without_shutdown();
21981        _result
21982    }
21983
21984    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
21985        self.control_handle
21986            .inner
21987            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
21988                result,
21989                self.tx_id,
21990                0x5ac5d459ad7f657e,
21991                fidl::encoding::DynamicFlags::empty(),
21992            )
21993    }
21994}
21995
21996#[must_use = "FIDL methods require a response to be sent"]
21997#[derive(Debug)]
21998pub struct BaseNetworkSocketQueryResponder {
21999    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22000    tx_id: u32,
22001}
22002
22003/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22004/// if the responder is dropped without sending a response, so that the client
22005/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22006impl std::ops::Drop for BaseNetworkSocketQueryResponder {
22007    fn drop(&mut self) {
22008        self.control_handle.shutdown();
22009        // Safety: drops once, never accessed again
22010        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22011    }
22012}
22013
22014impl fidl::endpoints::Responder for BaseNetworkSocketQueryResponder {
22015    type ControlHandle = BaseNetworkSocketControlHandle;
22016
22017    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22018        &self.control_handle
22019    }
22020
22021    fn drop_without_shutdown(mut self) {
22022        // Safety: drops once, never accessed again due to mem::forget
22023        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22024        // Prevent Drop from running (which would shut down the channel)
22025        std::mem::forget(self);
22026    }
22027}
22028
22029impl BaseNetworkSocketQueryResponder {
22030    /// Sends a response to the FIDL transaction.
22031    ///
22032    /// Sets the channel to shutdown if an error occurs.
22033    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
22034        let _result = self.send_raw(protocol);
22035        if _result.is_err() {
22036            self.control_handle.shutdown();
22037        }
22038        self.drop_without_shutdown();
22039        _result
22040    }
22041
22042    /// Similar to "send" but does not shutdown the channel if an error occurs.
22043    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
22044        let _result = self.send_raw(protocol);
22045        self.drop_without_shutdown();
22046        _result
22047    }
22048
22049    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
22050        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
22051            (protocol,),
22052            self.tx_id,
22053            0x2658edee9decfc06,
22054            fidl::encoding::DynamicFlags::empty(),
22055        )
22056    }
22057}
22058
22059#[must_use = "FIDL methods require a response to be sent"]
22060#[derive(Debug)]
22061pub struct BaseNetworkSocketSetReuseAddressResponder {
22062    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22063    tx_id: u32,
22064}
22065
22066/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22067/// if the responder is dropped without sending a response, so that the client
22068/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22069impl std::ops::Drop for BaseNetworkSocketSetReuseAddressResponder {
22070    fn drop(&mut self) {
22071        self.control_handle.shutdown();
22072        // Safety: drops once, never accessed again
22073        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22074    }
22075}
22076
22077impl fidl::endpoints::Responder for BaseNetworkSocketSetReuseAddressResponder {
22078    type ControlHandle = BaseNetworkSocketControlHandle;
22079
22080    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22081        &self.control_handle
22082    }
22083
22084    fn drop_without_shutdown(mut self) {
22085        // Safety: drops once, never accessed again due to mem::forget
22086        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22087        // Prevent Drop from running (which would shut down the channel)
22088        std::mem::forget(self);
22089    }
22090}
22091
22092impl BaseNetworkSocketSetReuseAddressResponder {
22093    /// Sends a response to the FIDL transaction.
22094    ///
22095    /// Sets the channel to shutdown if an error occurs.
22096    pub fn send(
22097        self,
22098        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22099    ) -> Result<(), fidl::Error> {
22100        let _result = self.send_raw(result);
22101        if _result.is_err() {
22102            self.control_handle.shutdown();
22103        }
22104        self.drop_without_shutdown();
22105        _result
22106    }
22107
22108    /// Similar to "send" but does not shutdown the channel if an error occurs.
22109    pub fn send_no_shutdown_on_err(
22110        self,
22111        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22112    ) -> Result<(), fidl::Error> {
22113        let _result = self.send_raw(result);
22114        self.drop_without_shutdown();
22115        _result
22116    }
22117
22118    fn send_raw(
22119        &self,
22120        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22121    ) -> Result<(), fidl::Error> {
22122        self.control_handle.inner.send::<fidl::encoding::ResultType<
22123            fidl::encoding::EmptyStruct,
22124            fidl_fuchsia_posix::Errno,
22125        >>(
22126            result,
22127            self.tx_id,
22128            0x1fd74ee8b9a4a876,
22129            fidl::encoding::DynamicFlags::empty(),
22130        )
22131    }
22132}
22133
22134#[must_use = "FIDL methods require a response to be sent"]
22135#[derive(Debug)]
22136pub struct BaseNetworkSocketGetReuseAddressResponder {
22137    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22138    tx_id: u32,
22139}
22140
22141/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22142/// if the responder is dropped without sending a response, so that the client
22143/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22144impl std::ops::Drop for BaseNetworkSocketGetReuseAddressResponder {
22145    fn drop(&mut self) {
22146        self.control_handle.shutdown();
22147        // Safety: drops once, never accessed again
22148        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22149    }
22150}
22151
22152impl fidl::endpoints::Responder for BaseNetworkSocketGetReuseAddressResponder {
22153    type ControlHandle = BaseNetworkSocketControlHandle;
22154
22155    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22156        &self.control_handle
22157    }
22158
22159    fn drop_without_shutdown(mut self) {
22160        // Safety: drops once, never accessed again due to mem::forget
22161        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22162        // Prevent Drop from running (which would shut down the channel)
22163        std::mem::forget(self);
22164    }
22165}
22166
22167impl BaseNetworkSocketGetReuseAddressResponder {
22168    /// Sends a response to the FIDL transaction.
22169    ///
22170    /// Sets the channel to shutdown if an error occurs.
22171    pub fn send(
22172        self,
22173        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22174    ) -> Result<(), fidl::Error> {
22175        let _result = self.send_raw(result);
22176        if _result.is_err() {
22177            self.control_handle.shutdown();
22178        }
22179        self.drop_without_shutdown();
22180        _result
22181    }
22182
22183    /// Similar to "send" but does not shutdown the channel if an error occurs.
22184    pub fn send_no_shutdown_on_err(
22185        self,
22186        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22187    ) -> Result<(), fidl::Error> {
22188        let _result = self.send_raw(result);
22189        self.drop_without_shutdown();
22190        _result
22191    }
22192
22193    fn send_raw(
22194        &self,
22195        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22196    ) -> Result<(), fidl::Error> {
22197        self.control_handle.inner.send::<fidl::encoding::ResultType<
22198            BaseSocketGetReuseAddressResponse,
22199            fidl_fuchsia_posix::Errno,
22200        >>(
22201            result.map(|value| (value,)),
22202            self.tx_id,
22203            0x67b7206b8d1bc0a5,
22204            fidl::encoding::DynamicFlags::empty(),
22205        )
22206    }
22207}
22208
22209#[must_use = "FIDL methods require a response to be sent"]
22210#[derive(Debug)]
22211pub struct BaseNetworkSocketGetErrorResponder {
22212    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22213    tx_id: u32,
22214}
22215
22216/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22217/// if the responder is dropped without sending a response, so that the client
22218/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22219impl std::ops::Drop for BaseNetworkSocketGetErrorResponder {
22220    fn drop(&mut self) {
22221        self.control_handle.shutdown();
22222        // Safety: drops once, never accessed again
22223        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22224    }
22225}
22226
22227impl fidl::endpoints::Responder for BaseNetworkSocketGetErrorResponder {
22228    type ControlHandle = BaseNetworkSocketControlHandle;
22229
22230    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22231        &self.control_handle
22232    }
22233
22234    fn drop_without_shutdown(mut self) {
22235        // Safety: drops once, never accessed again due to mem::forget
22236        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22237        // Prevent Drop from running (which would shut down the channel)
22238        std::mem::forget(self);
22239    }
22240}
22241
22242impl BaseNetworkSocketGetErrorResponder {
22243    /// Sends a response to the FIDL transaction.
22244    ///
22245    /// Sets the channel to shutdown if an error occurs.
22246    pub fn send(
22247        self,
22248        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22249    ) -> Result<(), fidl::Error> {
22250        let _result = self.send_raw(result);
22251        if _result.is_err() {
22252            self.control_handle.shutdown();
22253        }
22254        self.drop_without_shutdown();
22255        _result
22256    }
22257
22258    /// Similar to "send" but does not shutdown the channel if an error occurs.
22259    pub fn send_no_shutdown_on_err(
22260        self,
22261        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22262    ) -> Result<(), fidl::Error> {
22263        let _result = self.send_raw(result);
22264        self.drop_without_shutdown();
22265        _result
22266    }
22267
22268    fn send_raw(
22269        &self,
22270        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22271    ) -> Result<(), fidl::Error> {
22272        self.control_handle.inner.send::<fidl::encoding::ResultType<
22273            fidl::encoding::EmptyStruct,
22274            fidl_fuchsia_posix::Errno,
22275        >>(
22276            result,
22277            self.tx_id,
22278            0x5aad39b33e5f6ebb,
22279            fidl::encoding::DynamicFlags::empty(),
22280        )
22281    }
22282}
22283
22284#[must_use = "FIDL methods require a response to be sent"]
22285#[derive(Debug)]
22286pub struct BaseNetworkSocketSetBroadcastResponder {
22287    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22288    tx_id: u32,
22289}
22290
22291/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22292/// if the responder is dropped without sending a response, so that the client
22293/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22294impl std::ops::Drop for BaseNetworkSocketSetBroadcastResponder {
22295    fn drop(&mut self) {
22296        self.control_handle.shutdown();
22297        // Safety: drops once, never accessed again
22298        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22299    }
22300}
22301
22302impl fidl::endpoints::Responder for BaseNetworkSocketSetBroadcastResponder {
22303    type ControlHandle = BaseNetworkSocketControlHandle;
22304
22305    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22306        &self.control_handle
22307    }
22308
22309    fn drop_without_shutdown(mut self) {
22310        // Safety: drops once, never accessed again due to mem::forget
22311        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22312        // Prevent Drop from running (which would shut down the channel)
22313        std::mem::forget(self);
22314    }
22315}
22316
22317impl BaseNetworkSocketSetBroadcastResponder {
22318    /// Sends a response to the FIDL transaction.
22319    ///
22320    /// Sets the channel to shutdown if an error occurs.
22321    pub fn send(
22322        self,
22323        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22324    ) -> Result<(), fidl::Error> {
22325        let _result = self.send_raw(result);
22326        if _result.is_err() {
22327            self.control_handle.shutdown();
22328        }
22329        self.drop_without_shutdown();
22330        _result
22331    }
22332
22333    /// Similar to "send" but does not shutdown the channel if an error occurs.
22334    pub fn send_no_shutdown_on_err(
22335        self,
22336        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22337    ) -> Result<(), fidl::Error> {
22338        let _result = self.send_raw(result);
22339        self.drop_without_shutdown();
22340        _result
22341    }
22342
22343    fn send_raw(
22344        &self,
22345        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22346    ) -> Result<(), fidl::Error> {
22347        self.control_handle.inner.send::<fidl::encoding::ResultType<
22348            fidl::encoding::EmptyStruct,
22349            fidl_fuchsia_posix::Errno,
22350        >>(
22351            result,
22352            self.tx_id,
22353            0x6023e081ce3cd947,
22354            fidl::encoding::DynamicFlags::empty(),
22355        )
22356    }
22357}
22358
22359#[must_use = "FIDL methods require a response to be sent"]
22360#[derive(Debug)]
22361pub struct BaseNetworkSocketGetBroadcastResponder {
22362    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22363    tx_id: u32,
22364}
22365
22366/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22367/// if the responder is dropped without sending a response, so that the client
22368/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22369impl std::ops::Drop for BaseNetworkSocketGetBroadcastResponder {
22370    fn drop(&mut self) {
22371        self.control_handle.shutdown();
22372        // Safety: drops once, never accessed again
22373        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22374    }
22375}
22376
22377impl fidl::endpoints::Responder for BaseNetworkSocketGetBroadcastResponder {
22378    type ControlHandle = BaseNetworkSocketControlHandle;
22379
22380    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22381        &self.control_handle
22382    }
22383
22384    fn drop_without_shutdown(mut self) {
22385        // Safety: drops once, never accessed again due to mem::forget
22386        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22387        // Prevent Drop from running (which would shut down the channel)
22388        std::mem::forget(self);
22389    }
22390}
22391
22392impl BaseNetworkSocketGetBroadcastResponder {
22393    /// Sends a response to the FIDL transaction.
22394    ///
22395    /// Sets the channel to shutdown if an error occurs.
22396    pub fn send(
22397        self,
22398        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22399    ) -> Result<(), fidl::Error> {
22400        let _result = self.send_raw(result);
22401        if _result.is_err() {
22402            self.control_handle.shutdown();
22403        }
22404        self.drop_without_shutdown();
22405        _result
22406    }
22407
22408    /// Similar to "send" but does not shutdown the channel if an error occurs.
22409    pub fn send_no_shutdown_on_err(
22410        self,
22411        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22412    ) -> Result<(), fidl::Error> {
22413        let _result = self.send_raw(result);
22414        self.drop_without_shutdown();
22415        _result
22416    }
22417
22418    fn send_raw(
22419        &self,
22420        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22421    ) -> Result<(), fidl::Error> {
22422        self.control_handle.inner.send::<fidl::encoding::ResultType<
22423            BaseSocketGetBroadcastResponse,
22424            fidl_fuchsia_posix::Errno,
22425        >>(
22426            result.map(|value| (value,)),
22427            self.tx_id,
22428            0x68796fc556f9780d,
22429            fidl::encoding::DynamicFlags::empty(),
22430        )
22431    }
22432}
22433
22434#[must_use = "FIDL methods require a response to be sent"]
22435#[derive(Debug)]
22436pub struct BaseNetworkSocketSetSendBufferResponder {
22437    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22438    tx_id: u32,
22439}
22440
22441/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22442/// if the responder is dropped without sending a response, so that the client
22443/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22444impl std::ops::Drop for BaseNetworkSocketSetSendBufferResponder {
22445    fn drop(&mut self) {
22446        self.control_handle.shutdown();
22447        // Safety: drops once, never accessed again
22448        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22449    }
22450}
22451
22452impl fidl::endpoints::Responder for BaseNetworkSocketSetSendBufferResponder {
22453    type ControlHandle = BaseNetworkSocketControlHandle;
22454
22455    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22456        &self.control_handle
22457    }
22458
22459    fn drop_without_shutdown(mut self) {
22460        // Safety: drops once, never accessed again due to mem::forget
22461        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22462        // Prevent Drop from running (which would shut down the channel)
22463        std::mem::forget(self);
22464    }
22465}
22466
22467impl BaseNetworkSocketSetSendBufferResponder {
22468    /// Sends a response to the FIDL transaction.
22469    ///
22470    /// Sets the channel to shutdown if an error occurs.
22471    pub fn send(
22472        self,
22473        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22474    ) -> Result<(), fidl::Error> {
22475        let _result = self.send_raw(result);
22476        if _result.is_err() {
22477            self.control_handle.shutdown();
22478        }
22479        self.drop_without_shutdown();
22480        _result
22481    }
22482
22483    /// Similar to "send" but does not shutdown the channel if an error occurs.
22484    pub fn send_no_shutdown_on_err(
22485        self,
22486        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22487    ) -> Result<(), fidl::Error> {
22488        let _result = self.send_raw(result);
22489        self.drop_without_shutdown();
22490        _result
22491    }
22492
22493    fn send_raw(
22494        &self,
22495        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22496    ) -> Result<(), fidl::Error> {
22497        self.control_handle.inner.send::<fidl::encoding::ResultType<
22498            fidl::encoding::EmptyStruct,
22499            fidl_fuchsia_posix::Errno,
22500        >>(
22501            result,
22502            self.tx_id,
22503            0x756eac32d73a7a70,
22504            fidl::encoding::DynamicFlags::empty(),
22505        )
22506    }
22507}
22508
22509#[must_use = "FIDL methods require a response to be sent"]
22510#[derive(Debug)]
22511pub struct BaseNetworkSocketGetSendBufferResponder {
22512    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22513    tx_id: u32,
22514}
22515
22516/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22517/// if the responder is dropped without sending a response, so that the client
22518/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22519impl std::ops::Drop for BaseNetworkSocketGetSendBufferResponder {
22520    fn drop(&mut self) {
22521        self.control_handle.shutdown();
22522        // Safety: drops once, never accessed again
22523        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22524    }
22525}
22526
22527impl fidl::endpoints::Responder for BaseNetworkSocketGetSendBufferResponder {
22528    type ControlHandle = BaseNetworkSocketControlHandle;
22529
22530    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22531        &self.control_handle
22532    }
22533
22534    fn drop_without_shutdown(mut self) {
22535        // Safety: drops once, never accessed again due to mem::forget
22536        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22537        // Prevent Drop from running (which would shut down the channel)
22538        std::mem::forget(self);
22539    }
22540}
22541
22542impl BaseNetworkSocketGetSendBufferResponder {
22543    /// Sends a response to the FIDL transaction.
22544    ///
22545    /// Sets the channel to shutdown if an error occurs.
22546    pub fn send(
22547        self,
22548        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22549    ) -> Result<(), fidl::Error> {
22550        let _result = self.send_raw(result);
22551        if _result.is_err() {
22552            self.control_handle.shutdown();
22553        }
22554        self.drop_without_shutdown();
22555        _result
22556    }
22557
22558    /// Similar to "send" but does not shutdown the channel if an error occurs.
22559    pub fn send_no_shutdown_on_err(
22560        self,
22561        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22562    ) -> Result<(), fidl::Error> {
22563        let _result = self.send_raw(result);
22564        self.drop_without_shutdown();
22565        _result
22566    }
22567
22568    fn send_raw(
22569        &self,
22570        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22571    ) -> Result<(), fidl::Error> {
22572        self.control_handle.inner.send::<fidl::encoding::ResultType<
22573            BaseSocketGetSendBufferResponse,
22574            fidl_fuchsia_posix::Errno,
22575        >>(
22576            result.map(|value_bytes| (value_bytes,)),
22577            self.tx_id,
22578            0x78a52fd9c7b2410b,
22579            fidl::encoding::DynamicFlags::empty(),
22580        )
22581    }
22582}
22583
22584#[must_use = "FIDL methods require a response to be sent"]
22585#[derive(Debug)]
22586pub struct BaseNetworkSocketSetReceiveBufferResponder {
22587    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22588    tx_id: u32,
22589}
22590
22591/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22592/// if the responder is dropped without sending a response, so that the client
22593/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22594impl std::ops::Drop for BaseNetworkSocketSetReceiveBufferResponder {
22595    fn drop(&mut self) {
22596        self.control_handle.shutdown();
22597        // Safety: drops once, never accessed again
22598        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22599    }
22600}
22601
22602impl fidl::endpoints::Responder for BaseNetworkSocketSetReceiveBufferResponder {
22603    type ControlHandle = BaseNetworkSocketControlHandle;
22604
22605    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22606        &self.control_handle
22607    }
22608
22609    fn drop_without_shutdown(mut self) {
22610        // Safety: drops once, never accessed again due to mem::forget
22611        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22612        // Prevent Drop from running (which would shut down the channel)
22613        std::mem::forget(self);
22614    }
22615}
22616
22617impl BaseNetworkSocketSetReceiveBufferResponder {
22618    /// Sends a response to the FIDL transaction.
22619    ///
22620    /// Sets the channel to shutdown if an error occurs.
22621    pub fn send(
22622        self,
22623        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22624    ) -> Result<(), fidl::Error> {
22625        let _result = self.send_raw(result);
22626        if _result.is_err() {
22627            self.control_handle.shutdown();
22628        }
22629        self.drop_without_shutdown();
22630        _result
22631    }
22632
22633    /// Similar to "send" but does not shutdown the channel if an error occurs.
22634    pub fn send_no_shutdown_on_err(
22635        self,
22636        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22637    ) -> Result<(), fidl::Error> {
22638        let _result = self.send_raw(result);
22639        self.drop_without_shutdown();
22640        _result
22641    }
22642
22643    fn send_raw(
22644        &self,
22645        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22646    ) -> Result<(), fidl::Error> {
22647        self.control_handle.inner.send::<fidl::encoding::ResultType<
22648            fidl::encoding::EmptyStruct,
22649            fidl_fuchsia_posix::Errno,
22650        >>(
22651            result,
22652            self.tx_id,
22653            0x6b0cf2f1919c7001,
22654            fidl::encoding::DynamicFlags::empty(),
22655        )
22656    }
22657}
22658
22659#[must_use = "FIDL methods require a response to be sent"]
22660#[derive(Debug)]
22661pub struct BaseNetworkSocketGetReceiveBufferResponder {
22662    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22663    tx_id: u32,
22664}
22665
22666/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22667/// if the responder is dropped without sending a response, so that the client
22668/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22669impl std::ops::Drop for BaseNetworkSocketGetReceiveBufferResponder {
22670    fn drop(&mut self) {
22671        self.control_handle.shutdown();
22672        // Safety: drops once, never accessed again
22673        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22674    }
22675}
22676
22677impl fidl::endpoints::Responder for BaseNetworkSocketGetReceiveBufferResponder {
22678    type ControlHandle = BaseNetworkSocketControlHandle;
22679
22680    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22681        &self.control_handle
22682    }
22683
22684    fn drop_without_shutdown(mut self) {
22685        // Safety: drops once, never accessed again due to mem::forget
22686        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22687        // Prevent Drop from running (which would shut down the channel)
22688        std::mem::forget(self);
22689    }
22690}
22691
22692impl BaseNetworkSocketGetReceiveBufferResponder {
22693    /// Sends a response to the FIDL transaction.
22694    ///
22695    /// Sets the channel to shutdown if an error occurs.
22696    pub fn send(
22697        self,
22698        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22699    ) -> Result<(), fidl::Error> {
22700        let _result = self.send_raw(result);
22701        if _result.is_err() {
22702            self.control_handle.shutdown();
22703        }
22704        self.drop_without_shutdown();
22705        _result
22706    }
22707
22708    /// Similar to "send" but does not shutdown the channel if an error occurs.
22709    pub fn send_no_shutdown_on_err(
22710        self,
22711        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22712    ) -> Result<(), fidl::Error> {
22713        let _result = self.send_raw(result);
22714        self.drop_without_shutdown();
22715        _result
22716    }
22717
22718    fn send_raw(
22719        &self,
22720        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22721    ) -> Result<(), fidl::Error> {
22722        self.control_handle.inner.send::<fidl::encoding::ResultType<
22723            BaseSocketGetReceiveBufferResponse,
22724            fidl_fuchsia_posix::Errno,
22725        >>(
22726            result.map(|value_bytes| (value_bytes,)),
22727            self.tx_id,
22728            0x14c1a4b64f709e5c,
22729            fidl::encoding::DynamicFlags::empty(),
22730        )
22731    }
22732}
22733
22734#[must_use = "FIDL methods require a response to be sent"]
22735#[derive(Debug)]
22736pub struct BaseNetworkSocketSetKeepAliveResponder {
22737    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22738    tx_id: u32,
22739}
22740
22741/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22742/// if the responder is dropped without sending a response, so that the client
22743/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22744impl std::ops::Drop for BaseNetworkSocketSetKeepAliveResponder {
22745    fn drop(&mut self) {
22746        self.control_handle.shutdown();
22747        // Safety: drops once, never accessed again
22748        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22749    }
22750}
22751
22752impl fidl::endpoints::Responder for BaseNetworkSocketSetKeepAliveResponder {
22753    type ControlHandle = BaseNetworkSocketControlHandle;
22754
22755    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22756        &self.control_handle
22757    }
22758
22759    fn drop_without_shutdown(mut self) {
22760        // Safety: drops once, never accessed again due to mem::forget
22761        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22762        // Prevent Drop from running (which would shut down the channel)
22763        std::mem::forget(self);
22764    }
22765}
22766
22767impl BaseNetworkSocketSetKeepAliveResponder {
22768    /// Sends a response to the FIDL transaction.
22769    ///
22770    /// Sets the channel to shutdown if an error occurs.
22771    pub fn send(
22772        self,
22773        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22774    ) -> Result<(), fidl::Error> {
22775        let _result = self.send_raw(result);
22776        if _result.is_err() {
22777            self.control_handle.shutdown();
22778        }
22779        self.drop_without_shutdown();
22780        _result
22781    }
22782
22783    /// Similar to "send" but does not shutdown the channel if an error occurs.
22784    pub fn send_no_shutdown_on_err(
22785        self,
22786        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22787    ) -> Result<(), fidl::Error> {
22788        let _result = self.send_raw(result);
22789        self.drop_without_shutdown();
22790        _result
22791    }
22792
22793    fn send_raw(
22794        &self,
22795        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22796    ) -> Result<(), fidl::Error> {
22797        self.control_handle.inner.send::<fidl::encoding::ResultType<
22798            fidl::encoding::EmptyStruct,
22799            fidl_fuchsia_posix::Errno,
22800        >>(
22801            result,
22802            self.tx_id,
22803            0x572df8f0b920d2c7,
22804            fidl::encoding::DynamicFlags::empty(),
22805        )
22806    }
22807}
22808
22809#[must_use = "FIDL methods require a response to be sent"]
22810#[derive(Debug)]
22811pub struct BaseNetworkSocketGetKeepAliveResponder {
22812    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22813    tx_id: u32,
22814}
22815
22816/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22817/// if the responder is dropped without sending a response, so that the client
22818/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22819impl std::ops::Drop for BaseNetworkSocketGetKeepAliveResponder {
22820    fn drop(&mut self) {
22821        self.control_handle.shutdown();
22822        // Safety: drops once, never accessed again
22823        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22824    }
22825}
22826
22827impl fidl::endpoints::Responder for BaseNetworkSocketGetKeepAliveResponder {
22828    type ControlHandle = BaseNetworkSocketControlHandle;
22829
22830    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22831        &self.control_handle
22832    }
22833
22834    fn drop_without_shutdown(mut self) {
22835        // Safety: drops once, never accessed again due to mem::forget
22836        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22837        // Prevent Drop from running (which would shut down the channel)
22838        std::mem::forget(self);
22839    }
22840}
22841
22842impl BaseNetworkSocketGetKeepAliveResponder {
22843    /// Sends a response to the FIDL transaction.
22844    ///
22845    /// Sets the channel to shutdown if an error occurs.
22846    pub fn send(
22847        self,
22848        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22849    ) -> Result<(), fidl::Error> {
22850        let _result = self.send_raw(result);
22851        if _result.is_err() {
22852            self.control_handle.shutdown();
22853        }
22854        self.drop_without_shutdown();
22855        _result
22856    }
22857
22858    /// Similar to "send" but does not shutdown the channel if an error occurs.
22859    pub fn send_no_shutdown_on_err(
22860        self,
22861        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22862    ) -> Result<(), fidl::Error> {
22863        let _result = self.send_raw(result);
22864        self.drop_without_shutdown();
22865        _result
22866    }
22867
22868    fn send_raw(
22869        &self,
22870        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22871    ) -> Result<(), fidl::Error> {
22872        self.control_handle.inner.send::<fidl::encoding::ResultType<
22873            BaseSocketGetKeepAliveResponse,
22874            fidl_fuchsia_posix::Errno,
22875        >>(
22876            result.map(|value| (value,)),
22877            self.tx_id,
22878            0x2dd29d3215f2c9d2,
22879            fidl::encoding::DynamicFlags::empty(),
22880        )
22881    }
22882}
22883
22884#[must_use = "FIDL methods require a response to be sent"]
22885#[derive(Debug)]
22886pub struct BaseNetworkSocketSetOutOfBandInlineResponder {
22887    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22888    tx_id: u32,
22889}
22890
22891/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22892/// if the responder is dropped without sending a response, so that the client
22893/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22894impl std::ops::Drop for BaseNetworkSocketSetOutOfBandInlineResponder {
22895    fn drop(&mut self) {
22896        self.control_handle.shutdown();
22897        // Safety: drops once, never accessed again
22898        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22899    }
22900}
22901
22902impl fidl::endpoints::Responder for BaseNetworkSocketSetOutOfBandInlineResponder {
22903    type ControlHandle = BaseNetworkSocketControlHandle;
22904
22905    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22906        &self.control_handle
22907    }
22908
22909    fn drop_without_shutdown(mut self) {
22910        // Safety: drops once, never accessed again due to mem::forget
22911        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22912        // Prevent Drop from running (which would shut down the channel)
22913        std::mem::forget(self);
22914    }
22915}
22916
22917impl BaseNetworkSocketSetOutOfBandInlineResponder {
22918    /// Sends a response to the FIDL transaction.
22919    ///
22920    /// Sets the channel to shutdown if an error occurs.
22921    pub fn send(
22922        self,
22923        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22924    ) -> Result<(), fidl::Error> {
22925        let _result = self.send_raw(result);
22926        if _result.is_err() {
22927            self.control_handle.shutdown();
22928        }
22929        self.drop_without_shutdown();
22930        _result
22931    }
22932
22933    /// Similar to "send" but does not shutdown the channel if an error occurs.
22934    pub fn send_no_shutdown_on_err(
22935        self,
22936        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22937    ) -> Result<(), fidl::Error> {
22938        let _result = self.send_raw(result);
22939        self.drop_without_shutdown();
22940        _result
22941    }
22942
22943    fn send_raw(
22944        &self,
22945        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22946    ) -> Result<(), fidl::Error> {
22947        self.control_handle.inner.send::<fidl::encoding::ResultType<
22948            fidl::encoding::EmptyStruct,
22949            fidl_fuchsia_posix::Errno,
22950        >>(
22951            result,
22952            self.tx_id,
22953            0x3ecb49968bee439,
22954            fidl::encoding::DynamicFlags::empty(),
22955        )
22956    }
22957}
22958
22959#[must_use = "FIDL methods require a response to be sent"]
22960#[derive(Debug)]
22961pub struct BaseNetworkSocketGetOutOfBandInlineResponder {
22962    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22963    tx_id: u32,
22964}
22965
22966/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22967/// if the responder is dropped without sending a response, so that the client
22968/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22969impl std::ops::Drop for BaseNetworkSocketGetOutOfBandInlineResponder {
22970    fn drop(&mut self) {
22971        self.control_handle.shutdown();
22972        // Safety: drops once, never accessed again
22973        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22974    }
22975}
22976
22977impl fidl::endpoints::Responder for BaseNetworkSocketGetOutOfBandInlineResponder {
22978    type ControlHandle = BaseNetworkSocketControlHandle;
22979
22980    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22981        &self.control_handle
22982    }
22983
22984    fn drop_without_shutdown(mut self) {
22985        // Safety: drops once, never accessed again due to mem::forget
22986        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22987        // Prevent Drop from running (which would shut down the channel)
22988        std::mem::forget(self);
22989    }
22990}
22991
22992impl BaseNetworkSocketGetOutOfBandInlineResponder {
22993    /// Sends a response to the FIDL transaction.
22994    ///
22995    /// Sets the channel to shutdown if an error occurs.
22996    pub fn send(
22997        self,
22998        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22999    ) -> Result<(), fidl::Error> {
23000        let _result = self.send_raw(result);
23001        if _result.is_err() {
23002            self.control_handle.shutdown();
23003        }
23004        self.drop_without_shutdown();
23005        _result
23006    }
23007
23008    /// Similar to "send" but does not shutdown the channel if an error occurs.
23009    pub fn send_no_shutdown_on_err(
23010        self,
23011        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23012    ) -> Result<(), fidl::Error> {
23013        let _result = self.send_raw(result);
23014        self.drop_without_shutdown();
23015        _result
23016    }
23017
23018    fn send_raw(
23019        &self,
23020        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23021    ) -> Result<(), fidl::Error> {
23022        self.control_handle.inner.send::<fidl::encoding::ResultType<
23023            BaseSocketGetOutOfBandInlineResponse,
23024            fidl_fuchsia_posix::Errno,
23025        >>(
23026            result.map(|value| (value,)),
23027            self.tx_id,
23028            0x348c1ab3aeca1745,
23029            fidl::encoding::DynamicFlags::empty(),
23030        )
23031    }
23032}
23033
23034#[must_use = "FIDL methods require a response to be sent"]
23035#[derive(Debug)]
23036pub struct BaseNetworkSocketSetNoCheckResponder {
23037    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23038    tx_id: u32,
23039}
23040
23041/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23042/// if the responder is dropped without sending a response, so that the client
23043/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23044impl std::ops::Drop for BaseNetworkSocketSetNoCheckResponder {
23045    fn drop(&mut self) {
23046        self.control_handle.shutdown();
23047        // Safety: drops once, never accessed again
23048        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23049    }
23050}
23051
23052impl fidl::endpoints::Responder for BaseNetworkSocketSetNoCheckResponder {
23053    type ControlHandle = BaseNetworkSocketControlHandle;
23054
23055    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23056        &self.control_handle
23057    }
23058
23059    fn drop_without_shutdown(mut self) {
23060        // Safety: drops once, never accessed again due to mem::forget
23061        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23062        // Prevent Drop from running (which would shut down the channel)
23063        std::mem::forget(self);
23064    }
23065}
23066
23067impl BaseNetworkSocketSetNoCheckResponder {
23068    /// Sends a response to the FIDL transaction.
23069    ///
23070    /// Sets the channel to shutdown if an error occurs.
23071    pub fn send(
23072        self,
23073        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23074    ) -> Result<(), fidl::Error> {
23075        let _result = self.send_raw(result);
23076        if _result.is_err() {
23077            self.control_handle.shutdown();
23078        }
23079        self.drop_without_shutdown();
23080        _result
23081    }
23082
23083    /// Similar to "send" but does not shutdown the channel if an error occurs.
23084    pub fn send_no_shutdown_on_err(
23085        self,
23086        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23087    ) -> Result<(), fidl::Error> {
23088        let _result = self.send_raw(result);
23089        self.drop_without_shutdown();
23090        _result
23091    }
23092
23093    fn send_raw(
23094        &self,
23095        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23096    ) -> Result<(), fidl::Error> {
23097        self.control_handle.inner.send::<fidl::encoding::ResultType<
23098            fidl::encoding::EmptyStruct,
23099            fidl_fuchsia_posix::Errno,
23100        >>(
23101            result,
23102            self.tx_id,
23103            0x6bbf00c53a4c78c2,
23104            fidl::encoding::DynamicFlags::empty(),
23105        )
23106    }
23107}
23108
23109#[must_use = "FIDL methods require a response to be sent"]
23110#[derive(Debug)]
23111pub struct BaseNetworkSocketGetNoCheckResponder {
23112    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23113    tx_id: u32,
23114}
23115
23116/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23117/// if the responder is dropped without sending a response, so that the client
23118/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23119impl std::ops::Drop for BaseNetworkSocketGetNoCheckResponder {
23120    fn drop(&mut self) {
23121        self.control_handle.shutdown();
23122        // Safety: drops once, never accessed again
23123        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23124    }
23125}
23126
23127impl fidl::endpoints::Responder for BaseNetworkSocketGetNoCheckResponder {
23128    type ControlHandle = BaseNetworkSocketControlHandle;
23129
23130    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23131        &self.control_handle
23132    }
23133
23134    fn drop_without_shutdown(mut self) {
23135        // Safety: drops once, never accessed again due to mem::forget
23136        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23137        // Prevent Drop from running (which would shut down the channel)
23138        std::mem::forget(self);
23139    }
23140}
23141
23142impl BaseNetworkSocketGetNoCheckResponder {
23143    /// Sends a response to the FIDL transaction.
23144    ///
23145    /// Sets the channel to shutdown if an error occurs.
23146    pub fn send(
23147        self,
23148        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23149    ) -> Result<(), fidl::Error> {
23150        let _result = self.send_raw(result);
23151        if _result.is_err() {
23152            self.control_handle.shutdown();
23153        }
23154        self.drop_without_shutdown();
23155        _result
23156    }
23157
23158    /// Similar to "send" but does not shutdown the channel if an error occurs.
23159    pub fn send_no_shutdown_on_err(
23160        self,
23161        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23162    ) -> Result<(), fidl::Error> {
23163        let _result = self.send_raw(result);
23164        self.drop_without_shutdown();
23165        _result
23166    }
23167
23168    fn send_raw(
23169        &self,
23170        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23171    ) -> Result<(), fidl::Error> {
23172        self.control_handle.inner.send::<fidl::encoding::ResultType<
23173            BaseSocketGetNoCheckResponse,
23174            fidl_fuchsia_posix::Errno,
23175        >>(
23176            result.map(|value| (value,)),
23177            self.tx_id,
23178            0x2cd4249286417694,
23179            fidl::encoding::DynamicFlags::empty(),
23180        )
23181    }
23182}
23183
23184#[must_use = "FIDL methods require a response to be sent"]
23185#[derive(Debug)]
23186pub struct BaseNetworkSocketSetLingerResponder {
23187    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23188    tx_id: u32,
23189}
23190
23191/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23192/// if the responder is dropped without sending a response, so that the client
23193/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23194impl std::ops::Drop for BaseNetworkSocketSetLingerResponder {
23195    fn drop(&mut self) {
23196        self.control_handle.shutdown();
23197        // Safety: drops once, never accessed again
23198        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23199    }
23200}
23201
23202impl fidl::endpoints::Responder for BaseNetworkSocketSetLingerResponder {
23203    type ControlHandle = BaseNetworkSocketControlHandle;
23204
23205    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23206        &self.control_handle
23207    }
23208
23209    fn drop_without_shutdown(mut self) {
23210        // Safety: drops once, never accessed again due to mem::forget
23211        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23212        // Prevent Drop from running (which would shut down the channel)
23213        std::mem::forget(self);
23214    }
23215}
23216
23217impl BaseNetworkSocketSetLingerResponder {
23218    /// Sends a response to the FIDL transaction.
23219    ///
23220    /// Sets the channel to shutdown if an error occurs.
23221    pub fn send(
23222        self,
23223        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23224    ) -> Result<(), fidl::Error> {
23225        let _result = self.send_raw(result);
23226        if _result.is_err() {
23227            self.control_handle.shutdown();
23228        }
23229        self.drop_without_shutdown();
23230        _result
23231    }
23232
23233    /// Similar to "send" but does not shutdown the channel if an error occurs.
23234    pub fn send_no_shutdown_on_err(
23235        self,
23236        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23237    ) -> Result<(), fidl::Error> {
23238        let _result = self.send_raw(result);
23239        self.drop_without_shutdown();
23240        _result
23241    }
23242
23243    fn send_raw(
23244        &self,
23245        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23246    ) -> Result<(), fidl::Error> {
23247        self.control_handle.inner.send::<fidl::encoding::ResultType<
23248            fidl::encoding::EmptyStruct,
23249            fidl_fuchsia_posix::Errno,
23250        >>(
23251            result,
23252            self.tx_id,
23253            0x45386351246e998e,
23254            fidl::encoding::DynamicFlags::empty(),
23255        )
23256    }
23257}
23258
23259#[must_use = "FIDL methods require a response to be sent"]
23260#[derive(Debug)]
23261pub struct BaseNetworkSocketGetLingerResponder {
23262    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23263    tx_id: u32,
23264}
23265
23266/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23267/// if the responder is dropped without sending a response, so that the client
23268/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23269impl std::ops::Drop for BaseNetworkSocketGetLingerResponder {
23270    fn drop(&mut self) {
23271        self.control_handle.shutdown();
23272        // Safety: drops once, never accessed again
23273        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23274    }
23275}
23276
23277impl fidl::endpoints::Responder for BaseNetworkSocketGetLingerResponder {
23278    type ControlHandle = BaseNetworkSocketControlHandle;
23279
23280    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23281        &self.control_handle
23282    }
23283
23284    fn drop_without_shutdown(mut self) {
23285        // Safety: drops once, never accessed again due to mem::forget
23286        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23287        // Prevent Drop from running (which would shut down the channel)
23288        std::mem::forget(self);
23289    }
23290}
23291
23292impl BaseNetworkSocketGetLingerResponder {
23293    /// Sends a response to the FIDL transaction.
23294    ///
23295    /// Sets the channel to shutdown if an error occurs.
23296    pub fn send(
23297        self,
23298        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
23299    ) -> Result<(), fidl::Error> {
23300        let _result = self.send_raw(result);
23301        if _result.is_err() {
23302            self.control_handle.shutdown();
23303        }
23304        self.drop_without_shutdown();
23305        _result
23306    }
23307
23308    /// Similar to "send" but does not shutdown the channel if an error occurs.
23309    pub fn send_no_shutdown_on_err(
23310        self,
23311        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
23312    ) -> Result<(), fidl::Error> {
23313        let _result = self.send_raw(result);
23314        self.drop_without_shutdown();
23315        _result
23316    }
23317
23318    fn send_raw(
23319        &self,
23320        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
23321    ) -> Result<(), fidl::Error> {
23322        self.control_handle.inner.send::<fidl::encoding::ResultType<
23323            BaseSocketGetLingerResponse,
23324            fidl_fuchsia_posix::Errno,
23325        >>(
23326            result,
23327            self.tx_id,
23328            0x48eb20fc5ccb0e45,
23329            fidl::encoding::DynamicFlags::empty(),
23330        )
23331    }
23332}
23333
23334#[must_use = "FIDL methods require a response to be sent"]
23335#[derive(Debug)]
23336pub struct BaseNetworkSocketSetReusePortResponder {
23337    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23338    tx_id: u32,
23339}
23340
23341/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23342/// if the responder is dropped without sending a response, so that the client
23343/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23344impl std::ops::Drop for BaseNetworkSocketSetReusePortResponder {
23345    fn drop(&mut self) {
23346        self.control_handle.shutdown();
23347        // Safety: drops once, never accessed again
23348        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23349    }
23350}
23351
23352impl fidl::endpoints::Responder for BaseNetworkSocketSetReusePortResponder {
23353    type ControlHandle = BaseNetworkSocketControlHandle;
23354
23355    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23356        &self.control_handle
23357    }
23358
23359    fn drop_without_shutdown(mut self) {
23360        // Safety: drops once, never accessed again due to mem::forget
23361        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23362        // Prevent Drop from running (which would shut down the channel)
23363        std::mem::forget(self);
23364    }
23365}
23366
23367impl BaseNetworkSocketSetReusePortResponder {
23368    /// Sends a response to the FIDL transaction.
23369    ///
23370    /// Sets the channel to shutdown if an error occurs.
23371    pub fn send(
23372        self,
23373        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23374    ) -> Result<(), fidl::Error> {
23375        let _result = self.send_raw(result);
23376        if _result.is_err() {
23377            self.control_handle.shutdown();
23378        }
23379        self.drop_without_shutdown();
23380        _result
23381    }
23382
23383    /// Similar to "send" but does not shutdown the channel if an error occurs.
23384    pub fn send_no_shutdown_on_err(
23385        self,
23386        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23387    ) -> Result<(), fidl::Error> {
23388        let _result = self.send_raw(result);
23389        self.drop_without_shutdown();
23390        _result
23391    }
23392
23393    fn send_raw(
23394        &self,
23395        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23396    ) -> Result<(), fidl::Error> {
23397        self.control_handle.inner.send::<fidl::encoding::ResultType<
23398            fidl::encoding::EmptyStruct,
23399            fidl_fuchsia_posix::Errno,
23400        >>(
23401            result,
23402            self.tx_id,
23403            0x24dd3e5cb36d9ccb,
23404            fidl::encoding::DynamicFlags::empty(),
23405        )
23406    }
23407}
23408
23409#[must_use = "FIDL methods require a response to be sent"]
23410#[derive(Debug)]
23411pub struct BaseNetworkSocketGetReusePortResponder {
23412    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23413    tx_id: u32,
23414}
23415
23416/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23417/// if the responder is dropped without sending a response, so that the client
23418/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23419impl std::ops::Drop for BaseNetworkSocketGetReusePortResponder {
23420    fn drop(&mut self) {
23421        self.control_handle.shutdown();
23422        // Safety: drops once, never accessed again
23423        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23424    }
23425}
23426
23427impl fidl::endpoints::Responder for BaseNetworkSocketGetReusePortResponder {
23428    type ControlHandle = BaseNetworkSocketControlHandle;
23429
23430    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23431        &self.control_handle
23432    }
23433
23434    fn drop_without_shutdown(mut self) {
23435        // Safety: drops once, never accessed again due to mem::forget
23436        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23437        // Prevent Drop from running (which would shut down the channel)
23438        std::mem::forget(self);
23439    }
23440}
23441
23442impl BaseNetworkSocketGetReusePortResponder {
23443    /// Sends a response to the FIDL transaction.
23444    ///
23445    /// Sets the channel to shutdown if an error occurs.
23446    pub fn send(
23447        self,
23448        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23449    ) -> Result<(), fidl::Error> {
23450        let _result = self.send_raw(result);
23451        if _result.is_err() {
23452            self.control_handle.shutdown();
23453        }
23454        self.drop_without_shutdown();
23455        _result
23456    }
23457
23458    /// Similar to "send" but does not shutdown the channel if an error occurs.
23459    pub fn send_no_shutdown_on_err(
23460        self,
23461        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23462    ) -> Result<(), fidl::Error> {
23463        let _result = self.send_raw(result);
23464        self.drop_without_shutdown();
23465        _result
23466    }
23467
23468    fn send_raw(
23469        &self,
23470        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23471    ) -> Result<(), fidl::Error> {
23472        self.control_handle.inner.send::<fidl::encoding::ResultType<
23473            BaseSocketGetReusePortResponse,
23474            fidl_fuchsia_posix::Errno,
23475        >>(
23476            result.map(|value| (value,)),
23477            self.tx_id,
23478            0x7a112c1ab54ff828,
23479            fidl::encoding::DynamicFlags::empty(),
23480        )
23481    }
23482}
23483
23484#[must_use = "FIDL methods require a response to be sent"]
23485#[derive(Debug)]
23486pub struct BaseNetworkSocketGetAcceptConnResponder {
23487    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23488    tx_id: u32,
23489}
23490
23491/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23492/// if the responder is dropped without sending a response, so that the client
23493/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23494impl std::ops::Drop for BaseNetworkSocketGetAcceptConnResponder {
23495    fn drop(&mut self) {
23496        self.control_handle.shutdown();
23497        // Safety: drops once, never accessed again
23498        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23499    }
23500}
23501
23502impl fidl::endpoints::Responder for BaseNetworkSocketGetAcceptConnResponder {
23503    type ControlHandle = BaseNetworkSocketControlHandle;
23504
23505    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23506        &self.control_handle
23507    }
23508
23509    fn drop_without_shutdown(mut self) {
23510        // Safety: drops once, never accessed again due to mem::forget
23511        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23512        // Prevent Drop from running (which would shut down the channel)
23513        std::mem::forget(self);
23514    }
23515}
23516
23517impl BaseNetworkSocketGetAcceptConnResponder {
23518    /// Sends a response to the FIDL transaction.
23519    ///
23520    /// Sets the channel to shutdown if an error occurs.
23521    pub fn send(
23522        self,
23523        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23524    ) -> Result<(), fidl::Error> {
23525        let _result = self.send_raw(result);
23526        if _result.is_err() {
23527            self.control_handle.shutdown();
23528        }
23529        self.drop_without_shutdown();
23530        _result
23531    }
23532
23533    /// Similar to "send" but does not shutdown the channel if an error occurs.
23534    pub fn send_no_shutdown_on_err(
23535        self,
23536        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23537    ) -> Result<(), fidl::Error> {
23538        let _result = self.send_raw(result);
23539        self.drop_without_shutdown();
23540        _result
23541    }
23542
23543    fn send_raw(
23544        &self,
23545        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23546    ) -> Result<(), fidl::Error> {
23547        self.control_handle.inner.send::<fidl::encoding::ResultType<
23548            BaseSocketGetAcceptConnResponse,
23549            fidl_fuchsia_posix::Errno,
23550        >>(
23551            result.map(|value| (value,)),
23552            self.tx_id,
23553            0x67ce6db6c2ec8966,
23554            fidl::encoding::DynamicFlags::empty(),
23555        )
23556    }
23557}
23558
23559#[must_use = "FIDL methods require a response to be sent"]
23560#[derive(Debug)]
23561pub struct BaseNetworkSocketSetBindToDeviceResponder {
23562    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23563    tx_id: u32,
23564}
23565
23566/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23567/// if the responder is dropped without sending a response, so that the client
23568/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23569impl std::ops::Drop for BaseNetworkSocketSetBindToDeviceResponder {
23570    fn drop(&mut self) {
23571        self.control_handle.shutdown();
23572        // Safety: drops once, never accessed again
23573        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23574    }
23575}
23576
23577impl fidl::endpoints::Responder for BaseNetworkSocketSetBindToDeviceResponder {
23578    type ControlHandle = BaseNetworkSocketControlHandle;
23579
23580    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23581        &self.control_handle
23582    }
23583
23584    fn drop_without_shutdown(mut self) {
23585        // Safety: drops once, never accessed again due to mem::forget
23586        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23587        // Prevent Drop from running (which would shut down the channel)
23588        std::mem::forget(self);
23589    }
23590}
23591
23592impl BaseNetworkSocketSetBindToDeviceResponder {
23593    /// Sends a response to the FIDL transaction.
23594    ///
23595    /// Sets the channel to shutdown if an error occurs.
23596    pub fn send(
23597        self,
23598        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23599    ) -> Result<(), fidl::Error> {
23600        let _result = self.send_raw(result);
23601        if _result.is_err() {
23602            self.control_handle.shutdown();
23603        }
23604        self.drop_without_shutdown();
23605        _result
23606    }
23607
23608    /// Similar to "send" but does not shutdown the channel if an error occurs.
23609    pub fn send_no_shutdown_on_err(
23610        self,
23611        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23612    ) -> Result<(), fidl::Error> {
23613        let _result = self.send_raw(result);
23614        self.drop_without_shutdown();
23615        _result
23616    }
23617
23618    fn send_raw(
23619        &self,
23620        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23621    ) -> Result<(), fidl::Error> {
23622        self.control_handle.inner.send::<fidl::encoding::ResultType<
23623            fidl::encoding::EmptyStruct,
23624            fidl_fuchsia_posix::Errno,
23625        >>(
23626            result,
23627            self.tx_id,
23628            0x2118b483f28aafc4,
23629            fidl::encoding::DynamicFlags::empty(),
23630        )
23631    }
23632}
23633
23634#[must_use = "FIDL methods require a response to be sent"]
23635#[derive(Debug)]
23636pub struct BaseNetworkSocketGetBindToDeviceResponder {
23637    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23638    tx_id: u32,
23639}
23640
23641/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23642/// if the responder is dropped without sending a response, so that the client
23643/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23644impl std::ops::Drop for BaseNetworkSocketGetBindToDeviceResponder {
23645    fn drop(&mut self) {
23646        self.control_handle.shutdown();
23647        // Safety: drops once, never accessed again
23648        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23649    }
23650}
23651
23652impl fidl::endpoints::Responder for BaseNetworkSocketGetBindToDeviceResponder {
23653    type ControlHandle = BaseNetworkSocketControlHandle;
23654
23655    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23656        &self.control_handle
23657    }
23658
23659    fn drop_without_shutdown(mut self) {
23660        // Safety: drops once, never accessed again due to mem::forget
23661        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23662        // Prevent Drop from running (which would shut down the channel)
23663        std::mem::forget(self);
23664    }
23665}
23666
23667impl BaseNetworkSocketGetBindToDeviceResponder {
23668    /// Sends a response to the FIDL transaction.
23669    ///
23670    /// Sets the channel to shutdown if an error occurs.
23671    pub fn send(
23672        self,
23673        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
23674    ) -> Result<(), fidl::Error> {
23675        let _result = self.send_raw(result);
23676        if _result.is_err() {
23677            self.control_handle.shutdown();
23678        }
23679        self.drop_without_shutdown();
23680        _result
23681    }
23682
23683    /// Similar to "send" but does not shutdown the channel if an error occurs.
23684    pub fn send_no_shutdown_on_err(
23685        self,
23686        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
23687    ) -> Result<(), fidl::Error> {
23688        let _result = self.send_raw(result);
23689        self.drop_without_shutdown();
23690        _result
23691    }
23692
23693    fn send_raw(
23694        &self,
23695        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
23696    ) -> Result<(), fidl::Error> {
23697        self.control_handle.inner.send::<fidl::encoding::ResultType<
23698            BaseSocketGetBindToDeviceResponse,
23699            fidl_fuchsia_posix::Errno,
23700        >>(
23701            result.map(|value| (value,)),
23702            self.tx_id,
23703            0x1ab1fbf0ef7906c8,
23704            fidl::encoding::DynamicFlags::empty(),
23705        )
23706    }
23707}
23708
23709#[must_use = "FIDL methods require a response to be sent"]
23710#[derive(Debug)]
23711pub struct BaseNetworkSocketSetBindToInterfaceIndexResponder {
23712    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23713    tx_id: u32,
23714}
23715
23716/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23717/// if the responder is dropped without sending a response, so that the client
23718/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23719impl std::ops::Drop for BaseNetworkSocketSetBindToInterfaceIndexResponder {
23720    fn drop(&mut self) {
23721        self.control_handle.shutdown();
23722        // Safety: drops once, never accessed again
23723        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23724    }
23725}
23726
23727impl fidl::endpoints::Responder for BaseNetworkSocketSetBindToInterfaceIndexResponder {
23728    type ControlHandle = BaseNetworkSocketControlHandle;
23729
23730    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23731        &self.control_handle
23732    }
23733
23734    fn drop_without_shutdown(mut self) {
23735        // Safety: drops once, never accessed again due to mem::forget
23736        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23737        // Prevent Drop from running (which would shut down the channel)
23738        std::mem::forget(self);
23739    }
23740}
23741
23742impl BaseNetworkSocketSetBindToInterfaceIndexResponder {
23743    /// Sends a response to the FIDL transaction.
23744    ///
23745    /// Sets the channel to shutdown if an error occurs.
23746    pub fn send(
23747        self,
23748        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23749    ) -> Result<(), fidl::Error> {
23750        let _result = self.send_raw(result);
23751        if _result.is_err() {
23752            self.control_handle.shutdown();
23753        }
23754        self.drop_without_shutdown();
23755        _result
23756    }
23757
23758    /// Similar to "send" but does not shutdown the channel if an error occurs.
23759    pub fn send_no_shutdown_on_err(
23760        self,
23761        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23762    ) -> Result<(), fidl::Error> {
23763        let _result = self.send_raw(result);
23764        self.drop_without_shutdown();
23765        _result
23766    }
23767
23768    fn send_raw(
23769        &self,
23770        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23771    ) -> Result<(), fidl::Error> {
23772        self.control_handle.inner.send::<fidl::encoding::ResultType<
23773            fidl::encoding::EmptyStruct,
23774            fidl_fuchsia_posix::Errno,
23775        >>(
23776            result,
23777            self.tx_id,
23778            0x6e387a0def00821,
23779            fidl::encoding::DynamicFlags::empty(),
23780        )
23781    }
23782}
23783
23784#[must_use = "FIDL methods require a response to be sent"]
23785#[derive(Debug)]
23786pub struct BaseNetworkSocketGetBindToInterfaceIndexResponder {
23787    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23788    tx_id: u32,
23789}
23790
23791/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23792/// if the responder is dropped without sending a response, so that the client
23793/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23794impl std::ops::Drop for BaseNetworkSocketGetBindToInterfaceIndexResponder {
23795    fn drop(&mut self) {
23796        self.control_handle.shutdown();
23797        // Safety: drops once, never accessed again
23798        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23799    }
23800}
23801
23802impl fidl::endpoints::Responder for BaseNetworkSocketGetBindToInterfaceIndexResponder {
23803    type ControlHandle = BaseNetworkSocketControlHandle;
23804
23805    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23806        &self.control_handle
23807    }
23808
23809    fn drop_without_shutdown(mut self) {
23810        // Safety: drops once, never accessed again due to mem::forget
23811        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23812        // Prevent Drop from running (which would shut down the channel)
23813        std::mem::forget(self);
23814    }
23815}
23816
23817impl BaseNetworkSocketGetBindToInterfaceIndexResponder {
23818    /// Sends a response to the FIDL transaction.
23819    ///
23820    /// Sets the channel to shutdown if an error occurs.
23821    pub fn send(
23822        self,
23823        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23824    ) -> Result<(), fidl::Error> {
23825        let _result = self.send_raw(result);
23826        if _result.is_err() {
23827            self.control_handle.shutdown();
23828        }
23829        self.drop_without_shutdown();
23830        _result
23831    }
23832
23833    /// Similar to "send" but does not shutdown the channel if an error occurs.
23834    pub fn send_no_shutdown_on_err(
23835        self,
23836        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23837    ) -> Result<(), fidl::Error> {
23838        let _result = self.send_raw(result);
23839        self.drop_without_shutdown();
23840        _result
23841    }
23842
23843    fn send_raw(
23844        &self,
23845        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23846    ) -> Result<(), fidl::Error> {
23847        self.control_handle.inner.send::<fidl::encoding::ResultType<
23848            BaseSocketGetBindToInterfaceIndexResponse,
23849            fidl_fuchsia_posix::Errno,
23850        >>(
23851            result.map(|value| (value,)),
23852            self.tx_id,
23853            0x59c31dd3e3078295,
23854            fidl::encoding::DynamicFlags::empty(),
23855        )
23856    }
23857}
23858
23859#[must_use = "FIDL methods require a response to be sent"]
23860#[derive(Debug)]
23861pub struct BaseNetworkSocketSetTimestampResponder {
23862    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23863    tx_id: u32,
23864}
23865
23866/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23867/// if the responder is dropped without sending a response, so that the client
23868/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23869impl std::ops::Drop for BaseNetworkSocketSetTimestampResponder {
23870    fn drop(&mut self) {
23871        self.control_handle.shutdown();
23872        // Safety: drops once, never accessed again
23873        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23874    }
23875}
23876
23877impl fidl::endpoints::Responder for BaseNetworkSocketSetTimestampResponder {
23878    type ControlHandle = BaseNetworkSocketControlHandle;
23879
23880    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23881        &self.control_handle
23882    }
23883
23884    fn drop_without_shutdown(mut self) {
23885        // Safety: drops once, never accessed again due to mem::forget
23886        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23887        // Prevent Drop from running (which would shut down the channel)
23888        std::mem::forget(self);
23889    }
23890}
23891
23892impl BaseNetworkSocketSetTimestampResponder {
23893    /// Sends a response to the FIDL transaction.
23894    ///
23895    /// Sets the channel to shutdown if an error occurs.
23896    pub fn send(
23897        self,
23898        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23899    ) -> Result<(), fidl::Error> {
23900        let _result = self.send_raw(result);
23901        if _result.is_err() {
23902            self.control_handle.shutdown();
23903        }
23904        self.drop_without_shutdown();
23905        _result
23906    }
23907
23908    /// Similar to "send" but does not shutdown the channel if an error occurs.
23909    pub fn send_no_shutdown_on_err(
23910        self,
23911        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23912    ) -> Result<(), fidl::Error> {
23913        let _result = self.send_raw(result);
23914        self.drop_without_shutdown();
23915        _result
23916    }
23917
23918    fn send_raw(
23919        &self,
23920        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23921    ) -> Result<(), fidl::Error> {
23922        self.control_handle.inner.send::<fidl::encoding::ResultType<
23923            fidl::encoding::EmptyStruct,
23924            fidl_fuchsia_posix::Errno,
23925        >>(
23926            result,
23927            self.tx_id,
23928            0x285d6516c263d839,
23929            fidl::encoding::DynamicFlags::empty(),
23930        )
23931    }
23932}
23933
23934#[must_use = "FIDL methods require a response to be sent"]
23935#[derive(Debug)]
23936pub struct BaseNetworkSocketGetTimestampResponder {
23937    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23938    tx_id: u32,
23939}
23940
23941/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23942/// if the responder is dropped without sending a response, so that the client
23943/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23944impl std::ops::Drop for BaseNetworkSocketGetTimestampResponder {
23945    fn drop(&mut self) {
23946        self.control_handle.shutdown();
23947        // Safety: drops once, never accessed again
23948        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23949    }
23950}
23951
23952impl fidl::endpoints::Responder for BaseNetworkSocketGetTimestampResponder {
23953    type ControlHandle = BaseNetworkSocketControlHandle;
23954
23955    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23956        &self.control_handle
23957    }
23958
23959    fn drop_without_shutdown(mut self) {
23960        // Safety: drops once, never accessed again due to mem::forget
23961        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23962        // Prevent Drop from running (which would shut down the channel)
23963        std::mem::forget(self);
23964    }
23965}
23966
23967impl BaseNetworkSocketGetTimestampResponder {
23968    /// Sends a response to the FIDL transaction.
23969    ///
23970    /// Sets the channel to shutdown if an error occurs.
23971    pub fn send(
23972        self,
23973        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
23974    ) -> Result<(), fidl::Error> {
23975        let _result = self.send_raw(result);
23976        if _result.is_err() {
23977            self.control_handle.shutdown();
23978        }
23979        self.drop_without_shutdown();
23980        _result
23981    }
23982
23983    /// Similar to "send" but does not shutdown the channel if an error occurs.
23984    pub fn send_no_shutdown_on_err(
23985        self,
23986        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
23987    ) -> Result<(), fidl::Error> {
23988        let _result = self.send_raw(result);
23989        self.drop_without_shutdown();
23990        _result
23991    }
23992
23993    fn send_raw(
23994        &self,
23995        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
23996    ) -> Result<(), fidl::Error> {
23997        self.control_handle.inner.send::<fidl::encoding::ResultType<
23998            BaseSocketGetTimestampResponse,
23999            fidl_fuchsia_posix::Errno,
24000        >>(
24001            result.map(|value| (value,)),
24002            self.tx_id,
24003            0x49f2fffbbcc2bd27,
24004            fidl::encoding::DynamicFlags::empty(),
24005        )
24006    }
24007}
24008
24009#[must_use = "FIDL methods require a response to be sent"]
24010#[derive(Debug)]
24011pub struct BaseNetworkSocketSetMarkResponder {
24012    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24013    tx_id: u32,
24014}
24015
24016/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24017/// if the responder is dropped without sending a response, so that the client
24018/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24019impl std::ops::Drop for BaseNetworkSocketSetMarkResponder {
24020    fn drop(&mut self) {
24021        self.control_handle.shutdown();
24022        // Safety: drops once, never accessed again
24023        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24024    }
24025}
24026
24027impl fidl::endpoints::Responder for BaseNetworkSocketSetMarkResponder {
24028    type ControlHandle = BaseNetworkSocketControlHandle;
24029
24030    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24031        &self.control_handle
24032    }
24033
24034    fn drop_without_shutdown(mut self) {
24035        // Safety: drops once, never accessed again due to mem::forget
24036        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24037        // Prevent Drop from running (which would shut down the channel)
24038        std::mem::forget(self);
24039    }
24040}
24041
24042impl BaseNetworkSocketSetMarkResponder {
24043    /// Sends a response to the FIDL transaction.
24044    ///
24045    /// Sets the channel to shutdown if an error occurs.
24046    pub fn send(
24047        self,
24048        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24049    ) -> Result<(), fidl::Error> {
24050        let _result = self.send_raw(result);
24051        if _result.is_err() {
24052            self.control_handle.shutdown();
24053        }
24054        self.drop_without_shutdown();
24055        _result
24056    }
24057
24058    /// Similar to "send" but does not shutdown the channel if an error occurs.
24059    pub fn send_no_shutdown_on_err(
24060        self,
24061        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24062    ) -> Result<(), fidl::Error> {
24063        let _result = self.send_raw(result);
24064        self.drop_without_shutdown();
24065        _result
24066    }
24067
24068    fn send_raw(
24069        &self,
24070        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24071    ) -> Result<(), fidl::Error> {
24072        self.control_handle.inner.send::<fidl::encoding::ResultType<
24073            fidl::encoding::EmptyStruct,
24074            fidl_fuchsia_posix::Errno,
24075        >>(
24076            result,
24077            self.tx_id,
24078            0x6ead6de09f653236,
24079            fidl::encoding::DynamicFlags::empty(),
24080        )
24081    }
24082}
24083
24084#[must_use = "FIDL methods require a response to be sent"]
24085#[derive(Debug)]
24086pub struct BaseNetworkSocketGetMarkResponder {
24087    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24088    tx_id: u32,
24089}
24090
24091/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24092/// if the responder is dropped without sending a response, so that the client
24093/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24094impl std::ops::Drop for BaseNetworkSocketGetMarkResponder {
24095    fn drop(&mut self) {
24096        self.control_handle.shutdown();
24097        // Safety: drops once, never accessed again
24098        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24099    }
24100}
24101
24102impl fidl::endpoints::Responder for BaseNetworkSocketGetMarkResponder {
24103    type ControlHandle = BaseNetworkSocketControlHandle;
24104
24105    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24106        &self.control_handle
24107    }
24108
24109    fn drop_without_shutdown(mut self) {
24110        // Safety: drops once, never accessed again due to mem::forget
24111        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24112        // Prevent Drop from running (which would shut down the channel)
24113        std::mem::forget(self);
24114    }
24115}
24116
24117impl BaseNetworkSocketGetMarkResponder {
24118    /// Sends a response to the FIDL transaction.
24119    ///
24120    /// Sets the channel to shutdown if an error occurs.
24121    pub fn send(
24122        self,
24123        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
24124    ) -> Result<(), fidl::Error> {
24125        let _result = self.send_raw(result);
24126        if _result.is_err() {
24127            self.control_handle.shutdown();
24128        }
24129        self.drop_without_shutdown();
24130        _result
24131    }
24132
24133    /// Similar to "send" but does not shutdown the channel if an error occurs.
24134    pub fn send_no_shutdown_on_err(
24135        self,
24136        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
24137    ) -> Result<(), fidl::Error> {
24138        let _result = self.send_raw(result);
24139        self.drop_without_shutdown();
24140        _result
24141    }
24142
24143    fn send_raw(
24144        &self,
24145        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
24146    ) -> Result<(), fidl::Error> {
24147        self.control_handle.inner.send::<fidl::encoding::ResultType<
24148            BaseSocketGetMarkResponse,
24149            fidl_fuchsia_posix::Errno,
24150        >>(
24151            result.map(|mark| (mark,)),
24152            self.tx_id,
24153            0x57a2752c61d93d47,
24154            fidl::encoding::DynamicFlags::empty(),
24155        )
24156    }
24157}
24158
24159#[must_use = "FIDL methods require a response to be sent"]
24160#[derive(Debug)]
24161pub struct BaseNetworkSocketGetCookieResponder {
24162    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24163    tx_id: u32,
24164}
24165
24166/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24167/// if the responder is dropped without sending a response, so that the client
24168/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24169impl std::ops::Drop for BaseNetworkSocketGetCookieResponder {
24170    fn drop(&mut self) {
24171        self.control_handle.shutdown();
24172        // Safety: drops once, never accessed again
24173        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24174    }
24175}
24176
24177impl fidl::endpoints::Responder for BaseNetworkSocketGetCookieResponder {
24178    type ControlHandle = BaseNetworkSocketControlHandle;
24179
24180    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24181        &self.control_handle
24182    }
24183
24184    fn drop_without_shutdown(mut self) {
24185        // Safety: drops once, never accessed again due to mem::forget
24186        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24187        // Prevent Drop from running (which would shut down the channel)
24188        std::mem::forget(self);
24189    }
24190}
24191
24192impl BaseNetworkSocketGetCookieResponder {
24193    /// Sends a response to the FIDL transaction.
24194    ///
24195    /// Sets the channel to shutdown if an error occurs.
24196    pub fn send(
24197        self,
24198        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24199    ) -> Result<(), fidl::Error> {
24200        let _result = self.send_raw(result);
24201        if _result.is_err() {
24202            self.control_handle.shutdown();
24203        }
24204        self.drop_without_shutdown();
24205        _result
24206    }
24207
24208    /// Similar to "send" but does not shutdown the channel if an error occurs.
24209    pub fn send_no_shutdown_on_err(
24210        self,
24211        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24212    ) -> Result<(), fidl::Error> {
24213        let _result = self.send_raw(result);
24214        self.drop_without_shutdown();
24215        _result
24216    }
24217
24218    fn send_raw(
24219        &self,
24220        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24221    ) -> Result<(), fidl::Error> {
24222        self.control_handle.inner.send::<fidl::encoding::ResultType<
24223            BaseSocketGetCookieResponse,
24224            fidl_fuchsia_posix::Errno,
24225        >>(
24226            result.map(|value| (value,)),
24227            self.tx_id,
24228            0x2c2f47fd8f924e52,
24229            fidl::encoding::DynamicFlags::empty(),
24230        )
24231    }
24232}
24233
24234#[must_use = "FIDL methods require a response to be sent"]
24235#[derive(Debug)]
24236pub struct BaseNetworkSocketBindResponder {
24237    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24238    tx_id: u32,
24239}
24240
24241/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24242/// if the responder is dropped without sending a response, so that the client
24243/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24244impl std::ops::Drop for BaseNetworkSocketBindResponder {
24245    fn drop(&mut self) {
24246        self.control_handle.shutdown();
24247        // Safety: drops once, never accessed again
24248        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24249    }
24250}
24251
24252impl fidl::endpoints::Responder for BaseNetworkSocketBindResponder {
24253    type ControlHandle = BaseNetworkSocketControlHandle;
24254
24255    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24256        &self.control_handle
24257    }
24258
24259    fn drop_without_shutdown(mut self) {
24260        // Safety: drops once, never accessed again due to mem::forget
24261        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24262        // Prevent Drop from running (which would shut down the channel)
24263        std::mem::forget(self);
24264    }
24265}
24266
24267impl BaseNetworkSocketBindResponder {
24268    /// Sends a response to the FIDL transaction.
24269    ///
24270    /// Sets the channel to shutdown if an error occurs.
24271    pub fn send(
24272        self,
24273        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24274    ) -> Result<(), fidl::Error> {
24275        let _result = self.send_raw(result);
24276        if _result.is_err() {
24277            self.control_handle.shutdown();
24278        }
24279        self.drop_without_shutdown();
24280        _result
24281    }
24282
24283    /// Similar to "send" but does not shutdown the channel if an error occurs.
24284    pub fn send_no_shutdown_on_err(
24285        self,
24286        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24287    ) -> Result<(), fidl::Error> {
24288        let _result = self.send_raw(result);
24289        self.drop_without_shutdown();
24290        _result
24291    }
24292
24293    fn send_raw(
24294        &self,
24295        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24296    ) -> Result<(), fidl::Error> {
24297        self.control_handle.inner.send::<fidl::encoding::ResultType<
24298            fidl::encoding::EmptyStruct,
24299            fidl_fuchsia_posix::Errno,
24300        >>(
24301            result,
24302            self.tx_id,
24303            0x4bc6400ae92125d,
24304            fidl::encoding::DynamicFlags::empty(),
24305        )
24306    }
24307}
24308
24309#[must_use = "FIDL methods require a response to be sent"]
24310#[derive(Debug)]
24311pub struct BaseNetworkSocketConnectResponder {
24312    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24313    tx_id: u32,
24314}
24315
24316/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24317/// if the responder is dropped without sending a response, so that the client
24318/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24319impl std::ops::Drop for BaseNetworkSocketConnectResponder {
24320    fn drop(&mut self) {
24321        self.control_handle.shutdown();
24322        // Safety: drops once, never accessed again
24323        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24324    }
24325}
24326
24327impl fidl::endpoints::Responder for BaseNetworkSocketConnectResponder {
24328    type ControlHandle = BaseNetworkSocketControlHandle;
24329
24330    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24331        &self.control_handle
24332    }
24333
24334    fn drop_without_shutdown(mut self) {
24335        // Safety: drops once, never accessed again due to mem::forget
24336        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24337        // Prevent Drop from running (which would shut down the channel)
24338        std::mem::forget(self);
24339    }
24340}
24341
24342impl BaseNetworkSocketConnectResponder {
24343    /// Sends a response to the FIDL transaction.
24344    ///
24345    /// Sets the channel to shutdown if an error occurs.
24346    pub fn send(
24347        self,
24348        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24349    ) -> Result<(), fidl::Error> {
24350        let _result = self.send_raw(result);
24351        if _result.is_err() {
24352            self.control_handle.shutdown();
24353        }
24354        self.drop_without_shutdown();
24355        _result
24356    }
24357
24358    /// Similar to "send" but does not shutdown the channel if an error occurs.
24359    pub fn send_no_shutdown_on_err(
24360        self,
24361        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24362    ) -> Result<(), fidl::Error> {
24363        let _result = self.send_raw(result);
24364        self.drop_without_shutdown();
24365        _result
24366    }
24367
24368    fn send_raw(
24369        &self,
24370        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24371    ) -> Result<(), fidl::Error> {
24372        self.control_handle.inner.send::<fidl::encoding::ResultType<
24373            fidl::encoding::EmptyStruct,
24374            fidl_fuchsia_posix::Errno,
24375        >>(
24376            result,
24377            self.tx_id,
24378            0x5f05f19bfdd38871,
24379            fidl::encoding::DynamicFlags::empty(),
24380        )
24381    }
24382}
24383
24384#[must_use = "FIDL methods require a response to be sent"]
24385#[derive(Debug)]
24386pub struct BaseNetworkSocketDisconnectResponder {
24387    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24388    tx_id: u32,
24389}
24390
24391/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24392/// if the responder is dropped without sending a response, so that the client
24393/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24394impl std::ops::Drop for BaseNetworkSocketDisconnectResponder {
24395    fn drop(&mut self) {
24396        self.control_handle.shutdown();
24397        // Safety: drops once, never accessed again
24398        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24399    }
24400}
24401
24402impl fidl::endpoints::Responder for BaseNetworkSocketDisconnectResponder {
24403    type ControlHandle = BaseNetworkSocketControlHandle;
24404
24405    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24406        &self.control_handle
24407    }
24408
24409    fn drop_without_shutdown(mut self) {
24410        // Safety: drops once, never accessed again due to mem::forget
24411        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24412        // Prevent Drop from running (which would shut down the channel)
24413        std::mem::forget(self);
24414    }
24415}
24416
24417impl BaseNetworkSocketDisconnectResponder {
24418    /// Sends a response to the FIDL transaction.
24419    ///
24420    /// Sets the channel to shutdown if an error occurs.
24421    pub fn send(
24422        self,
24423        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24424    ) -> Result<(), fidl::Error> {
24425        let _result = self.send_raw(result);
24426        if _result.is_err() {
24427            self.control_handle.shutdown();
24428        }
24429        self.drop_without_shutdown();
24430        _result
24431    }
24432
24433    /// Similar to "send" but does not shutdown the channel if an error occurs.
24434    pub fn send_no_shutdown_on_err(
24435        self,
24436        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24437    ) -> Result<(), fidl::Error> {
24438        let _result = self.send_raw(result);
24439        self.drop_without_shutdown();
24440        _result
24441    }
24442
24443    fn send_raw(
24444        &self,
24445        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24446    ) -> Result<(), fidl::Error> {
24447        self.control_handle.inner.send::<fidl::encoding::ResultType<
24448            fidl::encoding::EmptyStruct,
24449            fidl_fuchsia_posix::Errno,
24450        >>(
24451            result,
24452            self.tx_id,
24453            0x74e63b91f7b29b2,
24454            fidl::encoding::DynamicFlags::empty(),
24455        )
24456    }
24457}
24458
24459#[must_use = "FIDL methods require a response to be sent"]
24460#[derive(Debug)]
24461pub struct BaseNetworkSocketGetSockNameResponder {
24462    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24463    tx_id: u32,
24464}
24465
24466/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24467/// if the responder is dropped without sending a response, so that the client
24468/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24469impl std::ops::Drop for BaseNetworkSocketGetSockNameResponder {
24470    fn drop(&mut self) {
24471        self.control_handle.shutdown();
24472        // Safety: drops once, never accessed again
24473        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24474    }
24475}
24476
24477impl fidl::endpoints::Responder for BaseNetworkSocketGetSockNameResponder {
24478    type ControlHandle = BaseNetworkSocketControlHandle;
24479
24480    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24481        &self.control_handle
24482    }
24483
24484    fn drop_without_shutdown(mut self) {
24485        // Safety: drops once, never accessed again due to mem::forget
24486        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24487        // Prevent Drop from running (which would shut down the channel)
24488        std::mem::forget(self);
24489    }
24490}
24491
24492impl BaseNetworkSocketGetSockNameResponder {
24493    /// Sends a response to the FIDL transaction.
24494    ///
24495    /// Sets the channel to shutdown if an error occurs.
24496    pub fn send(
24497        self,
24498        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24499    ) -> Result<(), fidl::Error> {
24500        let _result = self.send_raw(result);
24501        if _result.is_err() {
24502            self.control_handle.shutdown();
24503        }
24504        self.drop_without_shutdown();
24505        _result
24506    }
24507
24508    /// Similar to "send" but does not shutdown the channel if an error occurs.
24509    pub fn send_no_shutdown_on_err(
24510        self,
24511        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24512    ) -> Result<(), fidl::Error> {
24513        let _result = self.send_raw(result);
24514        self.drop_without_shutdown();
24515        _result
24516    }
24517
24518    fn send_raw(
24519        &self,
24520        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24521    ) -> Result<(), fidl::Error> {
24522        self.control_handle.inner.send::<fidl::encoding::ResultType<
24523            BaseNetworkSocketGetSockNameResponse,
24524            fidl_fuchsia_posix::Errno,
24525        >>(
24526            result.map(|addr| (addr,)),
24527            self.tx_id,
24528            0x475f23f84a1a4f85,
24529            fidl::encoding::DynamicFlags::empty(),
24530        )
24531    }
24532}
24533
24534#[must_use = "FIDL methods require a response to be sent"]
24535#[derive(Debug)]
24536pub struct BaseNetworkSocketGetPeerNameResponder {
24537    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24538    tx_id: u32,
24539}
24540
24541/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24542/// if the responder is dropped without sending a response, so that the client
24543/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24544impl std::ops::Drop for BaseNetworkSocketGetPeerNameResponder {
24545    fn drop(&mut self) {
24546        self.control_handle.shutdown();
24547        // Safety: drops once, never accessed again
24548        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24549    }
24550}
24551
24552impl fidl::endpoints::Responder for BaseNetworkSocketGetPeerNameResponder {
24553    type ControlHandle = BaseNetworkSocketControlHandle;
24554
24555    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24556        &self.control_handle
24557    }
24558
24559    fn drop_without_shutdown(mut self) {
24560        // Safety: drops once, never accessed again due to mem::forget
24561        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24562        // Prevent Drop from running (which would shut down the channel)
24563        std::mem::forget(self);
24564    }
24565}
24566
24567impl BaseNetworkSocketGetPeerNameResponder {
24568    /// Sends a response to the FIDL transaction.
24569    ///
24570    /// Sets the channel to shutdown if an error occurs.
24571    pub fn send(
24572        self,
24573        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24574    ) -> Result<(), fidl::Error> {
24575        let _result = self.send_raw(result);
24576        if _result.is_err() {
24577            self.control_handle.shutdown();
24578        }
24579        self.drop_without_shutdown();
24580        _result
24581    }
24582
24583    /// Similar to "send" but does not shutdown the channel if an error occurs.
24584    pub fn send_no_shutdown_on_err(
24585        self,
24586        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24587    ) -> Result<(), fidl::Error> {
24588        let _result = self.send_raw(result);
24589        self.drop_without_shutdown();
24590        _result
24591    }
24592
24593    fn send_raw(
24594        &self,
24595        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24596    ) -> Result<(), fidl::Error> {
24597        self.control_handle.inner.send::<fidl::encoding::ResultType<
24598            BaseNetworkSocketGetPeerNameResponse,
24599            fidl_fuchsia_posix::Errno,
24600        >>(
24601            result.map(|addr| (addr,)),
24602            self.tx_id,
24603            0x1ffecf4bd5b6432e,
24604            fidl::encoding::DynamicFlags::empty(),
24605        )
24606    }
24607}
24608
24609#[must_use = "FIDL methods require a response to be sent"]
24610#[derive(Debug)]
24611pub struct BaseNetworkSocketShutdownResponder {
24612    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24613    tx_id: u32,
24614}
24615
24616/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24617/// if the responder is dropped without sending a response, so that the client
24618/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24619impl std::ops::Drop for BaseNetworkSocketShutdownResponder {
24620    fn drop(&mut self) {
24621        self.control_handle.shutdown();
24622        // Safety: drops once, never accessed again
24623        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24624    }
24625}
24626
24627impl fidl::endpoints::Responder for BaseNetworkSocketShutdownResponder {
24628    type ControlHandle = BaseNetworkSocketControlHandle;
24629
24630    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24631        &self.control_handle
24632    }
24633
24634    fn drop_without_shutdown(mut self) {
24635        // Safety: drops once, never accessed again due to mem::forget
24636        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24637        // Prevent Drop from running (which would shut down the channel)
24638        std::mem::forget(self);
24639    }
24640}
24641
24642impl BaseNetworkSocketShutdownResponder {
24643    /// Sends a response to the FIDL transaction.
24644    ///
24645    /// Sets the channel to shutdown if an error occurs.
24646    pub fn send(
24647        self,
24648        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24649    ) -> Result<(), fidl::Error> {
24650        let _result = self.send_raw(result);
24651        if _result.is_err() {
24652            self.control_handle.shutdown();
24653        }
24654        self.drop_without_shutdown();
24655        _result
24656    }
24657
24658    /// Similar to "send" but does not shutdown the channel if an error occurs.
24659    pub fn send_no_shutdown_on_err(
24660        self,
24661        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24662    ) -> Result<(), fidl::Error> {
24663        let _result = self.send_raw(result);
24664        self.drop_without_shutdown();
24665        _result
24666    }
24667
24668    fn send_raw(
24669        &self,
24670        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24671    ) -> Result<(), fidl::Error> {
24672        self.control_handle.inner.send::<fidl::encoding::ResultType<
24673            fidl::encoding::EmptyStruct,
24674            fidl_fuchsia_posix::Errno,
24675        >>(
24676            result,
24677            self.tx_id,
24678            0x247f38b6db68c336,
24679            fidl::encoding::DynamicFlags::empty(),
24680        )
24681    }
24682}
24683
24684#[must_use = "FIDL methods require a response to be sent"]
24685#[derive(Debug)]
24686pub struct BaseNetworkSocketSetIpTypeOfServiceResponder {
24687    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24688    tx_id: u32,
24689}
24690
24691/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24692/// if the responder is dropped without sending a response, so that the client
24693/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24694impl std::ops::Drop for BaseNetworkSocketSetIpTypeOfServiceResponder {
24695    fn drop(&mut self) {
24696        self.control_handle.shutdown();
24697        // Safety: drops once, never accessed again
24698        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24699    }
24700}
24701
24702impl fidl::endpoints::Responder for BaseNetworkSocketSetIpTypeOfServiceResponder {
24703    type ControlHandle = BaseNetworkSocketControlHandle;
24704
24705    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24706        &self.control_handle
24707    }
24708
24709    fn drop_without_shutdown(mut self) {
24710        // Safety: drops once, never accessed again due to mem::forget
24711        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24712        // Prevent Drop from running (which would shut down the channel)
24713        std::mem::forget(self);
24714    }
24715}
24716
24717impl BaseNetworkSocketSetIpTypeOfServiceResponder {
24718    /// Sends a response to the FIDL transaction.
24719    ///
24720    /// Sets the channel to shutdown if an error occurs.
24721    pub fn send(
24722        self,
24723        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24724    ) -> Result<(), fidl::Error> {
24725        let _result = self.send_raw(result);
24726        if _result.is_err() {
24727            self.control_handle.shutdown();
24728        }
24729        self.drop_without_shutdown();
24730        _result
24731    }
24732
24733    /// Similar to "send" but does not shutdown the channel if an error occurs.
24734    pub fn send_no_shutdown_on_err(
24735        self,
24736        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24737    ) -> Result<(), fidl::Error> {
24738        let _result = self.send_raw(result);
24739        self.drop_without_shutdown();
24740        _result
24741    }
24742
24743    fn send_raw(
24744        &self,
24745        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24746    ) -> Result<(), fidl::Error> {
24747        self.control_handle.inner.send::<fidl::encoding::ResultType<
24748            fidl::encoding::EmptyStruct,
24749            fidl_fuchsia_posix::Errno,
24750        >>(
24751            result,
24752            self.tx_id,
24753            0x995c600475b6d46,
24754            fidl::encoding::DynamicFlags::empty(),
24755        )
24756    }
24757}
24758
24759#[must_use = "FIDL methods require a response to be sent"]
24760#[derive(Debug)]
24761pub struct BaseNetworkSocketGetIpTypeOfServiceResponder {
24762    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24763    tx_id: u32,
24764}
24765
24766/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24767/// if the responder is dropped without sending a response, so that the client
24768/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24769impl std::ops::Drop for BaseNetworkSocketGetIpTypeOfServiceResponder {
24770    fn drop(&mut self) {
24771        self.control_handle.shutdown();
24772        // Safety: drops once, never accessed again
24773        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24774    }
24775}
24776
24777impl fidl::endpoints::Responder for BaseNetworkSocketGetIpTypeOfServiceResponder {
24778    type ControlHandle = BaseNetworkSocketControlHandle;
24779
24780    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24781        &self.control_handle
24782    }
24783
24784    fn drop_without_shutdown(mut self) {
24785        // Safety: drops once, never accessed again due to mem::forget
24786        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24787        // Prevent Drop from running (which would shut down the channel)
24788        std::mem::forget(self);
24789    }
24790}
24791
24792impl BaseNetworkSocketGetIpTypeOfServiceResponder {
24793    /// Sends a response to the FIDL transaction.
24794    ///
24795    /// Sets the channel to shutdown if an error occurs.
24796    pub fn send(
24797        self,
24798        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24799    ) -> Result<(), fidl::Error> {
24800        let _result = self.send_raw(result);
24801        if _result.is_err() {
24802            self.control_handle.shutdown();
24803        }
24804        self.drop_without_shutdown();
24805        _result
24806    }
24807
24808    /// Similar to "send" but does not shutdown the channel if an error occurs.
24809    pub fn send_no_shutdown_on_err(
24810        self,
24811        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24812    ) -> Result<(), fidl::Error> {
24813        let _result = self.send_raw(result);
24814        self.drop_without_shutdown();
24815        _result
24816    }
24817
24818    fn send_raw(
24819        &self,
24820        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24821    ) -> Result<(), fidl::Error> {
24822        self.control_handle.inner.send::<fidl::encoding::ResultType<
24823            BaseNetworkSocketGetIpTypeOfServiceResponse,
24824            fidl_fuchsia_posix::Errno,
24825        >>(
24826            result.map(|value| (value,)),
24827            self.tx_id,
24828            0x3814a04259f75fcb,
24829            fidl::encoding::DynamicFlags::empty(),
24830        )
24831    }
24832}
24833
24834#[must_use = "FIDL methods require a response to be sent"]
24835#[derive(Debug)]
24836pub struct BaseNetworkSocketSetIpTtlResponder {
24837    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24838    tx_id: u32,
24839}
24840
24841/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24842/// if the responder is dropped without sending a response, so that the client
24843/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24844impl std::ops::Drop for BaseNetworkSocketSetIpTtlResponder {
24845    fn drop(&mut self) {
24846        self.control_handle.shutdown();
24847        // Safety: drops once, never accessed again
24848        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24849    }
24850}
24851
24852impl fidl::endpoints::Responder for BaseNetworkSocketSetIpTtlResponder {
24853    type ControlHandle = BaseNetworkSocketControlHandle;
24854
24855    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24856        &self.control_handle
24857    }
24858
24859    fn drop_without_shutdown(mut self) {
24860        // Safety: drops once, never accessed again due to mem::forget
24861        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24862        // Prevent Drop from running (which would shut down the channel)
24863        std::mem::forget(self);
24864    }
24865}
24866
24867impl BaseNetworkSocketSetIpTtlResponder {
24868    /// Sends a response to the FIDL transaction.
24869    ///
24870    /// Sets the channel to shutdown if an error occurs.
24871    pub fn send(
24872        self,
24873        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24874    ) -> Result<(), fidl::Error> {
24875        let _result = self.send_raw(result);
24876        if _result.is_err() {
24877            self.control_handle.shutdown();
24878        }
24879        self.drop_without_shutdown();
24880        _result
24881    }
24882
24883    /// Similar to "send" but does not shutdown the channel if an error occurs.
24884    pub fn send_no_shutdown_on_err(
24885        self,
24886        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24887    ) -> Result<(), fidl::Error> {
24888        let _result = self.send_raw(result);
24889        self.drop_without_shutdown();
24890        _result
24891    }
24892
24893    fn send_raw(
24894        &self,
24895        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24896    ) -> Result<(), fidl::Error> {
24897        self.control_handle.inner.send::<fidl::encoding::ResultType<
24898            fidl::encoding::EmptyStruct,
24899            fidl_fuchsia_posix::Errno,
24900        >>(
24901            result,
24902            self.tx_id,
24903            0x29e2424b433ae1ef,
24904            fidl::encoding::DynamicFlags::empty(),
24905        )
24906    }
24907}
24908
24909#[must_use = "FIDL methods require a response to be sent"]
24910#[derive(Debug)]
24911pub struct BaseNetworkSocketGetIpTtlResponder {
24912    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24913    tx_id: u32,
24914}
24915
24916/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24917/// if the responder is dropped without sending a response, so that the client
24918/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24919impl std::ops::Drop for BaseNetworkSocketGetIpTtlResponder {
24920    fn drop(&mut self) {
24921        self.control_handle.shutdown();
24922        // Safety: drops once, never accessed again
24923        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24924    }
24925}
24926
24927impl fidl::endpoints::Responder for BaseNetworkSocketGetIpTtlResponder {
24928    type ControlHandle = BaseNetworkSocketControlHandle;
24929
24930    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24931        &self.control_handle
24932    }
24933
24934    fn drop_without_shutdown(mut self) {
24935        // Safety: drops once, never accessed again due to mem::forget
24936        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24937        // Prevent Drop from running (which would shut down the channel)
24938        std::mem::forget(self);
24939    }
24940}
24941
24942impl BaseNetworkSocketGetIpTtlResponder {
24943    /// Sends a response to the FIDL transaction.
24944    ///
24945    /// Sets the channel to shutdown if an error occurs.
24946    pub fn send(
24947        self,
24948        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24949    ) -> Result<(), fidl::Error> {
24950        let _result = self.send_raw(result);
24951        if _result.is_err() {
24952            self.control_handle.shutdown();
24953        }
24954        self.drop_without_shutdown();
24955        _result
24956    }
24957
24958    /// Similar to "send" but does not shutdown the channel if an error occurs.
24959    pub fn send_no_shutdown_on_err(
24960        self,
24961        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24962    ) -> Result<(), fidl::Error> {
24963        let _result = self.send_raw(result);
24964        self.drop_without_shutdown();
24965        _result
24966    }
24967
24968    fn send_raw(
24969        &self,
24970        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24971    ) -> Result<(), fidl::Error> {
24972        self.control_handle.inner.send::<fidl::encoding::ResultType<
24973            BaseNetworkSocketGetIpTtlResponse,
24974            fidl_fuchsia_posix::Errno,
24975        >>(
24976            result.map(|value| (value,)),
24977            self.tx_id,
24978            0x47e47fa1f24da471,
24979            fidl::encoding::DynamicFlags::empty(),
24980        )
24981    }
24982}
24983
24984#[must_use = "FIDL methods require a response to be sent"]
24985#[derive(Debug)]
24986pub struct BaseNetworkSocketSetIpPacketInfoResponder {
24987    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24988    tx_id: u32,
24989}
24990
24991/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24992/// if the responder is dropped without sending a response, so that the client
24993/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24994impl std::ops::Drop for BaseNetworkSocketSetIpPacketInfoResponder {
24995    fn drop(&mut self) {
24996        self.control_handle.shutdown();
24997        // Safety: drops once, never accessed again
24998        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24999    }
25000}
25001
25002impl fidl::endpoints::Responder for BaseNetworkSocketSetIpPacketInfoResponder {
25003    type ControlHandle = BaseNetworkSocketControlHandle;
25004
25005    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25006        &self.control_handle
25007    }
25008
25009    fn drop_without_shutdown(mut self) {
25010        // Safety: drops once, never accessed again due to mem::forget
25011        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25012        // Prevent Drop from running (which would shut down the channel)
25013        std::mem::forget(self);
25014    }
25015}
25016
25017impl BaseNetworkSocketSetIpPacketInfoResponder {
25018    /// Sends a response to the FIDL transaction.
25019    ///
25020    /// Sets the channel to shutdown if an error occurs.
25021    pub fn send(
25022        self,
25023        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25024    ) -> Result<(), fidl::Error> {
25025        let _result = self.send_raw(result);
25026        if _result.is_err() {
25027            self.control_handle.shutdown();
25028        }
25029        self.drop_without_shutdown();
25030        _result
25031    }
25032
25033    /// Similar to "send" but does not shutdown the channel if an error occurs.
25034    pub fn send_no_shutdown_on_err(
25035        self,
25036        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25037    ) -> Result<(), fidl::Error> {
25038        let _result = self.send_raw(result);
25039        self.drop_without_shutdown();
25040        _result
25041    }
25042
25043    fn send_raw(
25044        &self,
25045        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25046    ) -> Result<(), fidl::Error> {
25047        self.control_handle.inner.send::<fidl::encoding::ResultType<
25048            fidl::encoding::EmptyStruct,
25049            fidl_fuchsia_posix::Errno,
25050        >>(
25051            result,
25052            self.tx_id,
25053            0x392d16bee20c0e16,
25054            fidl::encoding::DynamicFlags::empty(),
25055        )
25056    }
25057}
25058
25059#[must_use = "FIDL methods require a response to be sent"]
25060#[derive(Debug)]
25061pub struct BaseNetworkSocketGetIpPacketInfoResponder {
25062    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25063    tx_id: u32,
25064}
25065
25066/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25067/// if the responder is dropped without sending a response, so that the client
25068/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25069impl std::ops::Drop for BaseNetworkSocketGetIpPacketInfoResponder {
25070    fn drop(&mut self) {
25071        self.control_handle.shutdown();
25072        // Safety: drops once, never accessed again
25073        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25074    }
25075}
25076
25077impl fidl::endpoints::Responder for BaseNetworkSocketGetIpPacketInfoResponder {
25078    type ControlHandle = BaseNetworkSocketControlHandle;
25079
25080    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25081        &self.control_handle
25082    }
25083
25084    fn drop_without_shutdown(mut self) {
25085        // Safety: drops once, never accessed again due to mem::forget
25086        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25087        // Prevent Drop from running (which would shut down the channel)
25088        std::mem::forget(self);
25089    }
25090}
25091
25092impl BaseNetworkSocketGetIpPacketInfoResponder {
25093    /// Sends a response to the FIDL transaction.
25094    ///
25095    /// Sets the channel to shutdown if an error occurs.
25096    pub fn send(
25097        self,
25098        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25099    ) -> Result<(), fidl::Error> {
25100        let _result = self.send_raw(result);
25101        if _result.is_err() {
25102            self.control_handle.shutdown();
25103        }
25104        self.drop_without_shutdown();
25105        _result
25106    }
25107
25108    /// Similar to "send" but does not shutdown the channel if an error occurs.
25109    pub fn send_no_shutdown_on_err(
25110        self,
25111        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25112    ) -> Result<(), fidl::Error> {
25113        let _result = self.send_raw(result);
25114        self.drop_without_shutdown();
25115        _result
25116    }
25117
25118    fn send_raw(
25119        &self,
25120        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25121    ) -> Result<(), fidl::Error> {
25122        self.control_handle.inner.send::<fidl::encoding::ResultType<
25123            BaseNetworkSocketGetIpPacketInfoResponse,
25124            fidl_fuchsia_posix::Errno,
25125        >>(
25126            result.map(|value| (value,)),
25127            self.tx_id,
25128            0x54b505f242280740,
25129            fidl::encoding::DynamicFlags::empty(),
25130        )
25131    }
25132}
25133
25134#[must_use = "FIDL methods require a response to be sent"]
25135#[derive(Debug)]
25136pub struct BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25137    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25138    tx_id: u32,
25139}
25140
25141/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25142/// if the responder is dropped without sending a response, so that the client
25143/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25144impl std::ops::Drop for BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25145    fn drop(&mut self) {
25146        self.control_handle.shutdown();
25147        // Safety: drops once, never accessed again
25148        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25149    }
25150}
25151
25152impl fidl::endpoints::Responder for BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25153    type ControlHandle = BaseNetworkSocketControlHandle;
25154
25155    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25156        &self.control_handle
25157    }
25158
25159    fn drop_without_shutdown(mut self) {
25160        // Safety: drops once, never accessed again due to mem::forget
25161        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25162        // Prevent Drop from running (which would shut down the channel)
25163        std::mem::forget(self);
25164    }
25165}
25166
25167impl BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25168    /// Sends a response to the FIDL transaction.
25169    ///
25170    /// Sets the channel to shutdown if an error occurs.
25171    pub fn send(
25172        self,
25173        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25174    ) -> Result<(), fidl::Error> {
25175        let _result = self.send_raw(result);
25176        if _result.is_err() {
25177            self.control_handle.shutdown();
25178        }
25179        self.drop_without_shutdown();
25180        _result
25181    }
25182
25183    /// Similar to "send" but does not shutdown the channel if an error occurs.
25184    pub fn send_no_shutdown_on_err(
25185        self,
25186        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25187    ) -> Result<(), fidl::Error> {
25188        let _result = self.send_raw(result);
25189        self.drop_without_shutdown();
25190        _result
25191    }
25192
25193    fn send_raw(
25194        &self,
25195        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25196    ) -> Result<(), fidl::Error> {
25197        self.control_handle.inner.send::<fidl::encoding::ResultType<
25198            fidl::encoding::EmptyStruct,
25199            fidl_fuchsia_posix::Errno,
25200        >>(
25201            result,
25202            self.tx_id,
25203            0x6c4f6714995f84ef,
25204            fidl::encoding::DynamicFlags::empty(),
25205        )
25206    }
25207}
25208
25209#[must_use = "FIDL methods require a response to be sent"]
25210#[derive(Debug)]
25211pub struct BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25212    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25213    tx_id: u32,
25214}
25215
25216/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25217/// if the responder is dropped without sending a response, so that the client
25218/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25219impl std::ops::Drop for BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25220    fn drop(&mut self) {
25221        self.control_handle.shutdown();
25222        // Safety: drops once, never accessed again
25223        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25224    }
25225}
25226
25227impl fidl::endpoints::Responder for BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25228    type ControlHandle = BaseNetworkSocketControlHandle;
25229
25230    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25231        &self.control_handle
25232    }
25233
25234    fn drop_without_shutdown(mut self) {
25235        // Safety: drops once, never accessed again due to mem::forget
25236        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25237        // Prevent Drop from running (which would shut down the channel)
25238        std::mem::forget(self);
25239    }
25240}
25241
25242impl BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25243    /// Sends a response to the FIDL transaction.
25244    ///
25245    /// Sets the channel to shutdown if an error occurs.
25246    pub fn send(
25247        self,
25248        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25249    ) -> Result<(), fidl::Error> {
25250        let _result = self.send_raw(result);
25251        if _result.is_err() {
25252            self.control_handle.shutdown();
25253        }
25254        self.drop_without_shutdown();
25255        _result
25256    }
25257
25258    /// Similar to "send" but does not shutdown the channel if an error occurs.
25259    pub fn send_no_shutdown_on_err(
25260        self,
25261        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25262    ) -> Result<(), fidl::Error> {
25263        let _result = self.send_raw(result);
25264        self.drop_without_shutdown();
25265        _result
25266    }
25267
25268    fn send_raw(
25269        &self,
25270        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25271    ) -> Result<(), fidl::Error> {
25272        self.control_handle.inner.send::<fidl::encoding::ResultType<
25273            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
25274            fidl_fuchsia_posix::Errno,
25275        >>(
25276            result.map(|value| (value,)),
25277            self.tx_id,
25278            0x4158ba7dc2795960,
25279            fidl::encoding::DynamicFlags::empty(),
25280        )
25281    }
25282}
25283
25284#[must_use = "FIDL methods require a response to be sent"]
25285#[derive(Debug)]
25286pub struct BaseNetworkSocketSetIpReceiveTtlResponder {
25287    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25288    tx_id: u32,
25289}
25290
25291/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25292/// if the responder is dropped without sending a response, so that the client
25293/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25294impl std::ops::Drop for BaseNetworkSocketSetIpReceiveTtlResponder {
25295    fn drop(&mut self) {
25296        self.control_handle.shutdown();
25297        // Safety: drops once, never accessed again
25298        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25299    }
25300}
25301
25302impl fidl::endpoints::Responder for BaseNetworkSocketSetIpReceiveTtlResponder {
25303    type ControlHandle = BaseNetworkSocketControlHandle;
25304
25305    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25306        &self.control_handle
25307    }
25308
25309    fn drop_without_shutdown(mut self) {
25310        // Safety: drops once, never accessed again due to mem::forget
25311        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25312        // Prevent Drop from running (which would shut down the channel)
25313        std::mem::forget(self);
25314    }
25315}
25316
25317impl BaseNetworkSocketSetIpReceiveTtlResponder {
25318    /// Sends a response to the FIDL transaction.
25319    ///
25320    /// Sets the channel to shutdown if an error occurs.
25321    pub fn send(
25322        self,
25323        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25324    ) -> Result<(), fidl::Error> {
25325        let _result = self.send_raw(result);
25326        if _result.is_err() {
25327            self.control_handle.shutdown();
25328        }
25329        self.drop_without_shutdown();
25330        _result
25331    }
25332
25333    /// Similar to "send" but does not shutdown the channel if an error occurs.
25334    pub fn send_no_shutdown_on_err(
25335        self,
25336        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25337    ) -> Result<(), fidl::Error> {
25338        let _result = self.send_raw(result);
25339        self.drop_without_shutdown();
25340        _result
25341    }
25342
25343    fn send_raw(
25344        &self,
25345        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25346    ) -> Result<(), fidl::Error> {
25347        self.control_handle.inner.send::<fidl::encoding::ResultType<
25348            fidl::encoding::EmptyStruct,
25349            fidl_fuchsia_posix::Errno,
25350        >>(
25351            result,
25352            self.tx_id,
25353            0x46f15be0ce0ab82b,
25354            fidl::encoding::DynamicFlags::empty(),
25355        )
25356    }
25357}
25358
25359#[must_use = "FIDL methods require a response to be sent"]
25360#[derive(Debug)]
25361pub struct BaseNetworkSocketGetIpReceiveTtlResponder {
25362    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25363    tx_id: u32,
25364}
25365
25366/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25367/// if the responder is dropped without sending a response, so that the client
25368/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25369impl std::ops::Drop for BaseNetworkSocketGetIpReceiveTtlResponder {
25370    fn drop(&mut self) {
25371        self.control_handle.shutdown();
25372        // Safety: drops once, never accessed again
25373        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25374    }
25375}
25376
25377impl fidl::endpoints::Responder for BaseNetworkSocketGetIpReceiveTtlResponder {
25378    type ControlHandle = BaseNetworkSocketControlHandle;
25379
25380    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25381        &self.control_handle
25382    }
25383
25384    fn drop_without_shutdown(mut self) {
25385        // Safety: drops once, never accessed again due to mem::forget
25386        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25387        // Prevent Drop from running (which would shut down the channel)
25388        std::mem::forget(self);
25389    }
25390}
25391
25392impl BaseNetworkSocketGetIpReceiveTtlResponder {
25393    /// Sends a response to the FIDL transaction.
25394    ///
25395    /// Sets the channel to shutdown if an error occurs.
25396    pub fn send(
25397        self,
25398        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25399    ) -> Result<(), fidl::Error> {
25400        let _result = self.send_raw(result);
25401        if _result.is_err() {
25402            self.control_handle.shutdown();
25403        }
25404        self.drop_without_shutdown();
25405        _result
25406    }
25407
25408    /// Similar to "send" but does not shutdown the channel if an error occurs.
25409    pub fn send_no_shutdown_on_err(
25410        self,
25411        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25412    ) -> Result<(), fidl::Error> {
25413        let _result = self.send_raw(result);
25414        self.drop_without_shutdown();
25415        _result
25416    }
25417
25418    fn send_raw(
25419        &self,
25420        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25421    ) -> Result<(), fidl::Error> {
25422        self.control_handle.inner.send::<fidl::encoding::ResultType<
25423            BaseNetworkSocketGetIpReceiveTtlResponse,
25424            fidl_fuchsia_posix::Errno,
25425        >>(
25426            result.map(|value| (value,)),
25427            self.tx_id,
25428            0x678ddd5a5dfa2eb5,
25429            fidl::encoding::DynamicFlags::empty(),
25430        )
25431    }
25432}
25433
25434#[must_use = "FIDL methods require a response to be sent"]
25435#[derive(Debug)]
25436pub struct BaseNetworkSocketSetIpMulticastInterfaceResponder {
25437    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25438    tx_id: u32,
25439}
25440
25441/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25442/// if the responder is dropped without sending a response, so that the client
25443/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25444impl std::ops::Drop for BaseNetworkSocketSetIpMulticastInterfaceResponder {
25445    fn drop(&mut self) {
25446        self.control_handle.shutdown();
25447        // Safety: drops once, never accessed again
25448        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25449    }
25450}
25451
25452impl fidl::endpoints::Responder for BaseNetworkSocketSetIpMulticastInterfaceResponder {
25453    type ControlHandle = BaseNetworkSocketControlHandle;
25454
25455    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25456        &self.control_handle
25457    }
25458
25459    fn drop_without_shutdown(mut self) {
25460        // Safety: drops once, never accessed again due to mem::forget
25461        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25462        // Prevent Drop from running (which would shut down the channel)
25463        std::mem::forget(self);
25464    }
25465}
25466
25467impl BaseNetworkSocketSetIpMulticastInterfaceResponder {
25468    /// Sends a response to the FIDL transaction.
25469    ///
25470    /// Sets the channel to shutdown if an error occurs.
25471    pub fn send(
25472        self,
25473        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25474    ) -> Result<(), fidl::Error> {
25475        let _result = self.send_raw(result);
25476        if _result.is_err() {
25477            self.control_handle.shutdown();
25478        }
25479        self.drop_without_shutdown();
25480        _result
25481    }
25482
25483    /// Similar to "send" but does not shutdown the channel if an error occurs.
25484    pub fn send_no_shutdown_on_err(
25485        self,
25486        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25487    ) -> Result<(), fidl::Error> {
25488        let _result = self.send_raw(result);
25489        self.drop_without_shutdown();
25490        _result
25491    }
25492
25493    fn send_raw(
25494        &self,
25495        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25496    ) -> Result<(), fidl::Error> {
25497        self.control_handle.inner.send::<fidl::encoding::ResultType<
25498            fidl::encoding::EmptyStruct,
25499            fidl_fuchsia_posix::Errno,
25500        >>(
25501            result,
25502            self.tx_id,
25503            0x752fbfa9b12befe,
25504            fidl::encoding::DynamicFlags::empty(),
25505        )
25506    }
25507}
25508
25509#[must_use = "FIDL methods require a response to be sent"]
25510#[derive(Debug)]
25511pub struct BaseNetworkSocketGetIpMulticastInterfaceResponder {
25512    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25513    tx_id: u32,
25514}
25515
25516/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25517/// if the responder is dropped without sending a response, so that the client
25518/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25519impl std::ops::Drop for BaseNetworkSocketGetIpMulticastInterfaceResponder {
25520    fn drop(&mut self) {
25521        self.control_handle.shutdown();
25522        // Safety: drops once, never accessed again
25523        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25524    }
25525}
25526
25527impl fidl::endpoints::Responder for BaseNetworkSocketGetIpMulticastInterfaceResponder {
25528    type ControlHandle = BaseNetworkSocketControlHandle;
25529
25530    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25531        &self.control_handle
25532    }
25533
25534    fn drop_without_shutdown(mut self) {
25535        // Safety: drops once, never accessed again due to mem::forget
25536        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25537        // Prevent Drop from running (which would shut down the channel)
25538        std::mem::forget(self);
25539    }
25540}
25541
25542impl BaseNetworkSocketGetIpMulticastInterfaceResponder {
25543    /// Sends a response to the FIDL transaction.
25544    ///
25545    /// Sets the channel to shutdown if an error occurs.
25546    pub fn send(
25547        self,
25548        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
25549    ) -> Result<(), fidl::Error> {
25550        let _result = self.send_raw(result);
25551        if _result.is_err() {
25552            self.control_handle.shutdown();
25553        }
25554        self.drop_without_shutdown();
25555        _result
25556    }
25557
25558    /// Similar to "send" but does not shutdown the channel if an error occurs.
25559    pub fn send_no_shutdown_on_err(
25560        self,
25561        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
25562    ) -> Result<(), fidl::Error> {
25563        let _result = self.send_raw(result);
25564        self.drop_without_shutdown();
25565        _result
25566    }
25567
25568    fn send_raw(
25569        &self,
25570        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
25571    ) -> Result<(), fidl::Error> {
25572        self.control_handle.inner.send::<fidl::encoding::ResultType<
25573            BaseNetworkSocketGetIpMulticastInterfaceResponse,
25574            fidl_fuchsia_posix::Errno,
25575        >>(
25576            result.map(|value| (value,)),
25577            self.tx_id,
25578            0x320bd14c4df046c4,
25579            fidl::encoding::DynamicFlags::empty(),
25580        )
25581    }
25582}
25583
25584#[must_use = "FIDL methods require a response to be sent"]
25585#[derive(Debug)]
25586pub struct BaseNetworkSocketSetIpMulticastTtlResponder {
25587    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25588    tx_id: u32,
25589}
25590
25591/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25592/// if the responder is dropped without sending a response, so that the client
25593/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25594impl std::ops::Drop for BaseNetworkSocketSetIpMulticastTtlResponder {
25595    fn drop(&mut self) {
25596        self.control_handle.shutdown();
25597        // Safety: drops once, never accessed again
25598        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25599    }
25600}
25601
25602impl fidl::endpoints::Responder for BaseNetworkSocketSetIpMulticastTtlResponder {
25603    type ControlHandle = BaseNetworkSocketControlHandle;
25604
25605    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25606        &self.control_handle
25607    }
25608
25609    fn drop_without_shutdown(mut self) {
25610        // Safety: drops once, never accessed again due to mem::forget
25611        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25612        // Prevent Drop from running (which would shut down the channel)
25613        std::mem::forget(self);
25614    }
25615}
25616
25617impl BaseNetworkSocketSetIpMulticastTtlResponder {
25618    /// Sends a response to the FIDL transaction.
25619    ///
25620    /// Sets the channel to shutdown if an error occurs.
25621    pub fn send(
25622        self,
25623        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25624    ) -> Result<(), fidl::Error> {
25625        let _result = self.send_raw(result);
25626        if _result.is_err() {
25627            self.control_handle.shutdown();
25628        }
25629        self.drop_without_shutdown();
25630        _result
25631    }
25632
25633    /// Similar to "send" but does not shutdown the channel if an error occurs.
25634    pub fn send_no_shutdown_on_err(
25635        self,
25636        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25637    ) -> Result<(), fidl::Error> {
25638        let _result = self.send_raw(result);
25639        self.drop_without_shutdown();
25640        _result
25641    }
25642
25643    fn send_raw(
25644        &self,
25645        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25646    ) -> Result<(), fidl::Error> {
25647        self.control_handle.inner.send::<fidl::encoding::ResultType<
25648            fidl::encoding::EmptyStruct,
25649            fidl_fuchsia_posix::Errno,
25650        >>(
25651            result,
25652            self.tx_id,
25653            0x63134d53772916a1,
25654            fidl::encoding::DynamicFlags::empty(),
25655        )
25656    }
25657}
25658
25659#[must_use = "FIDL methods require a response to be sent"]
25660#[derive(Debug)]
25661pub struct BaseNetworkSocketGetIpMulticastTtlResponder {
25662    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25663    tx_id: u32,
25664}
25665
25666/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25667/// if the responder is dropped without sending a response, so that the client
25668/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25669impl std::ops::Drop for BaseNetworkSocketGetIpMulticastTtlResponder {
25670    fn drop(&mut self) {
25671        self.control_handle.shutdown();
25672        // Safety: drops once, never accessed again
25673        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25674    }
25675}
25676
25677impl fidl::endpoints::Responder for BaseNetworkSocketGetIpMulticastTtlResponder {
25678    type ControlHandle = BaseNetworkSocketControlHandle;
25679
25680    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25681        &self.control_handle
25682    }
25683
25684    fn drop_without_shutdown(mut self) {
25685        // Safety: drops once, never accessed again due to mem::forget
25686        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25687        // Prevent Drop from running (which would shut down the channel)
25688        std::mem::forget(self);
25689    }
25690}
25691
25692impl BaseNetworkSocketGetIpMulticastTtlResponder {
25693    /// Sends a response to the FIDL transaction.
25694    ///
25695    /// Sets the channel to shutdown if an error occurs.
25696    pub fn send(
25697        self,
25698        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25699    ) -> Result<(), fidl::Error> {
25700        let _result = self.send_raw(result);
25701        if _result.is_err() {
25702            self.control_handle.shutdown();
25703        }
25704        self.drop_without_shutdown();
25705        _result
25706    }
25707
25708    /// Similar to "send" but does not shutdown the channel if an error occurs.
25709    pub fn send_no_shutdown_on_err(
25710        self,
25711        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25712    ) -> Result<(), fidl::Error> {
25713        let _result = self.send_raw(result);
25714        self.drop_without_shutdown();
25715        _result
25716    }
25717
25718    fn send_raw(
25719        &self,
25720        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25721    ) -> Result<(), fidl::Error> {
25722        self.control_handle.inner.send::<fidl::encoding::ResultType<
25723            BaseNetworkSocketGetIpMulticastTtlResponse,
25724            fidl_fuchsia_posix::Errno,
25725        >>(
25726            result.map(|value| (value,)),
25727            self.tx_id,
25728            0x4665cd378f39e1a,
25729            fidl::encoding::DynamicFlags::empty(),
25730        )
25731    }
25732}
25733
25734#[must_use = "FIDL methods require a response to be sent"]
25735#[derive(Debug)]
25736pub struct BaseNetworkSocketSetIpMulticastLoopbackResponder {
25737    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25738    tx_id: u32,
25739}
25740
25741/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25742/// if the responder is dropped without sending a response, so that the client
25743/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25744impl std::ops::Drop for BaseNetworkSocketSetIpMulticastLoopbackResponder {
25745    fn drop(&mut self) {
25746        self.control_handle.shutdown();
25747        // Safety: drops once, never accessed again
25748        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25749    }
25750}
25751
25752impl fidl::endpoints::Responder for BaseNetworkSocketSetIpMulticastLoopbackResponder {
25753    type ControlHandle = BaseNetworkSocketControlHandle;
25754
25755    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25756        &self.control_handle
25757    }
25758
25759    fn drop_without_shutdown(mut self) {
25760        // Safety: drops once, never accessed again due to mem::forget
25761        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25762        // Prevent Drop from running (which would shut down the channel)
25763        std::mem::forget(self);
25764    }
25765}
25766
25767impl BaseNetworkSocketSetIpMulticastLoopbackResponder {
25768    /// Sends a response to the FIDL transaction.
25769    ///
25770    /// Sets the channel to shutdown if an error occurs.
25771    pub fn send(
25772        self,
25773        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25774    ) -> Result<(), fidl::Error> {
25775        let _result = self.send_raw(result);
25776        if _result.is_err() {
25777            self.control_handle.shutdown();
25778        }
25779        self.drop_without_shutdown();
25780        _result
25781    }
25782
25783    /// Similar to "send" but does not shutdown the channel if an error occurs.
25784    pub fn send_no_shutdown_on_err(
25785        self,
25786        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25787    ) -> Result<(), fidl::Error> {
25788        let _result = self.send_raw(result);
25789        self.drop_without_shutdown();
25790        _result
25791    }
25792
25793    fn send_raw(
25794        &self,
25795        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25796    ) -> Result<(), fidl::Error> {
25797        self.control_handle.inner.send::<fidl::encoding::ResultType<
25798            fidl::encoding::EmptyStruct,
25799            fidl_fuchsia_posix::Errno,
25800        >>(
25801            result,
25802            self.tx_id,
25803            0x20c55c11f00943ea,
25804            fidl::encoding::DynamicFlags::empty(),
25805        )
25806    }
25807}
25808
25809#[must_use = "FIDL methods require a response to be sent"]
25810#[derive(Debug)]
25811pub struct BaseNetworkSocketGetIpMulticastLoopbackResponder {
25812    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25813    tx_id: u32,
25814}
25815
25816/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25817/// if the responder is dropped without sending a response, so that the client
25818/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25819impl std::ops::Drop for BaseNetworkSocketGetIpMulticastLoopbackResponder {
25820    fn drop(&mut self) {
25821        self.control_handle.shutdown();
25822        // Safety: drops once, never accessed again
25823        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25824    }
25825}
25826
25827impl fidl::endpoints::Responder for BaseNetworkSocketGetIpMulticastLoopbackResponder {
25828    type ControlHandle = BaseNetworkSocketControlHandle;
25829
25830    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25831        &self.control_handle
25832    }
25833
25834    fn drop_without_shutdown(mut self) {
25835        // Safety: drops once, never accessed again due to mem::forget
25836        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25837        // Prevent Drop from running (which would shut down the channel)
25838        std::mem::forget(self);
25839    }
25840}
25841
25842impl BaseNetworkSocketGetIpMulticastLoopbackResponder {
25843    /// Sends a response to the FIDL transaction.
25844    ///
25845    /// Sets the channel to shutdown if an error occurs.
25846    pub fn send(
25847        self,
25848        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25849    ) -> Result<(), fidl::Error> {
25850        let _result = self.send_raw(result);
25851        if _result.is_err() {
25852            self.control_handle.shutdown();
25853        }
25854        self.drop_without_shutdown();
25855        _result
25856    }
25857
25858    /// Similar to "send" but does not shutdown the channel if an error occurs.
25859    pub fn send_no_shutdown_on_err(
25860        self,
25861        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25862    ) -> Result<(), fidl::Error> {
25863        let _result = self.send_raw(result);
25864        self.drop_without_shutdown();
25865        _result
25866    }
25867
25868    fn send_raw(
25869        &self,
25870        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25871    ) -> Result<(), fidl::Error> {
25872        self.control_handle.inner.send::<fidl::encoding::ResultType<
25873            BaseNetworkSocketGetIpMulticastLoopbackResponse,
25874            fidl_fuchsia_posix::Errno,
25875        >>(
25876            result.map(|value| (value,)),
25877            self.tx_id,
25878            0x3b6b26ff558298f2,
25879            fidl::encoding::DynamicFlags::empty(),
25880        )
25881    }
25882}
25883
25884#[must_use = "FIDL methods require a response to be sent"]
25885#[derive(Debug)]
25886pub struct BaseNetworkSocketAddIpMembershipResponder {
25887    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25888    tx_id: u32,
25889}
25890
25891/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25892/// if the responder is dropped without sending a response, so that the client
25893/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25894impl std::ops::Drop for BaseNetworkSocketAddIpMembershipResponder {
25895    fn drop(&mut self) {
25896        self.control_handle.shutdown();
25897        // Safety: drops once, never accessed again
25898        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25899    }
25900}
25901
25902impl fidl::endpoints::Responder for BaseNetworkSocketAddIpMembershipResponder {
25903    type ControlHandle = BaseNetworkSocketControlHandle;
25904
25905    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25906        &self.control_handle
25907    }
25908
25909    fn drop_without_shutdown(mut self) {
25910        // Safety: drops once, never accessed again due to mem::forget
25911        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25912        // Prevent Drop from running (which would shut down the channel)
25913        std::mem::forget(self);
25914    }
25915}
25916
25917impl BaseNetworkSocketAddIpMembershipResponder {
25918    /// Sends a response to the FIDL transaction.
25919    ///
25920    /// Sets the channel to shutdown if an error occurs.
25921    pub fn send(
25922        self,
25923        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25924    ) -> Result<(), fidl::Error> {
25925        let _result = self.send_raw(result);
25926        if _result.is_err() {
25927            self.control_handle.shutdown();
25928        }
25929        self.drop_without_shutdown();
25930        _result
25931    }
25932
25933    /// Similar to "send" but does not shutdown the channel if an error occurs.
25934    pub fn send_no_shutdown_on_err(
25935        self,
25936        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25937    ) -> Result<(), fidl::Error> {
25938        let _result = self.send_raw(result);
25939        self.drop_without_shutdown();
25940        _result
25941    }
25942
25943    fn send_raw(
25944        &self,
25945        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25946    ) -> Result<(), fidl::Error> {
25947        self.control_handle.inner.send::<fidl::encoding::ResultType<
25948            fidl::encoding::EmptyStruct,
25949            fidl_fuchsia_posix::Errno,
25950        >>(
25951            result,
25952            self.tx_id,
25953            0x76bc7df115a3b4d0,
25954            fidl::encoding::DynamicFlags::empty(),
25955        )
25956    }
25957}
25958
25959#[must_use = "FIDL methods require a response to be sent"]
25960#[derive(Debug)]
25961pub struct BaseNetworkSocketDropIpMembershipResponder {
25962    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25963    tx_id: u32,
25964}
25965
25966/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25967/// if the responder is dropped without sending a response, so that the client
25968/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25969impl std::ops::Drop for BaseNetworkSocketDropIpMembershipResponder {
25970    fn drop(&mut self) {
25971        self.control_handle.shutdown();
25972        // Safety: drops once, never accessed again
25973        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25974    }
25975}
25976
25977impl fidl::endpoints::Responder for BaseNetworkSocketDropIpMembershipResponder {
25978    type ControlHandle = BaseNetworkSocketControlHandle;
25979
25980    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25981        &self.control_handle
25982    }
25983
25984    fn drop_without_shutdown(mut self) {
25985        // Safety: drops once, never accessed again due to mem::forget
25986        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25987        // Prevent Drop from running (which would shut down the channel)
25988        std::mem::forget(self);
25989    }
25990}
25991
25992impl BaseNetworkSocketDropIpMembershipResponder {
25993    /// Sends a response to the FIDL transaction.
25994    ///
25995    /// Sets the channel to shutdown if an error occurs.
25996    pub fn send(
25997        self,
25998        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25999    ) -> Result<(), fidl::Error> {
26000        let _result = self.send_raw(result);
26001        if _result.is_err() {
26002            self.control_handle.shutdown();
26003        }
26004        self.drop_without_shutdown();
26005        _result
26006    }
26007
26008    /// Similar to "send" but does not shutdown the channel if an error occurs.
26009    pub fn send_no_shutdown_on_err(
26010        self,
26011        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26012    ) -> Result<(), fidl::Error> {
26013        let _result = self.send_raw(result);
26014        self.drop_without_shutdown();
26015        _result
26016    }
26017
26018    fn send_raw(
26019        &self,
26020        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26021    ) -> Result<(), fidl::Error> {
26022        self.control_handle.inner.send::<fidl::encoding::ResultType<
26023            fidl::encoding::EmptyStruct,
26024            fidl_fuchsia_posix::Errno,
26025        >>(
26026            result,
26027            self.tx_id,
26028            0x2888f3099188d03,
26029            fidl::encoding::DynamicFlags::empty(),
26030        )
26031    }
26032}
26033
26034#[must_use = "FIDL methods require a response to be sent"]
26035#[derive(Debug)]
26036pub struct BaseNetworkSocketSetIpTransparentResponder {
26037    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26038    tx_id: u32,
26039}
26040
26041/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26042/// if the responder is dropped without sending a response, so that the client
26043/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26044impl std::ops::Drop for BaseNetworkSocketSetIpTransparentResponder {
26045    fn drop(&mut self) {
26046        self.control_handle.shutdown();
26047        // Safety: drops once, never accessed again
26048        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26049    }
26050}
26051
26052impl fidl::endpoints::Responder for BaseNetworkSocketSetIpTransparentResponder {
26053    type ControlHandle = BaseNetworkSocketControlHandle;
26054
26055    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26056        &self.control_handle
26057    }
26058
26059    fn drop_without_shutdown(mut self) {
26060        // Safety: drops once, never accessed again due to mem::forget
26061        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26062        // Prevent Drop from running (which would shut down the channel)
26063        std::mem::forget(self);
26064    }
26065}
26066
26067impl BaseNetworkSocketSetIpTransparentResponder {
26068    /// Sends a response to the FIDL transaction.
26069    ///
26070    /// Sets the channel to shutdown if an error occurs.
26071    pub fn send(
26072        self,
26073        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26074    ) -> Result<(), fidl::Error> {
26075        let _result = self.send_raw(result);
26076        if _result.is_err() {
26077            self.control_handle.shutdown();
26078        }
26079        self.drop_without_shutdown();
26080        _result
26081    }
26082
26083    /// Similar to "send" but does not shutdown the channel if an error occurs.
26084    pub fn send_no_shutdown_on_err(
26085        self,
26086        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26087    ) -> Result<(), fidl::Error> {
26088        let _result = self.send_raw(result);
26089        self.drop_without_shutdown();
26090        _result
26091    }
26092
26093    fn send_raw(
26094        &self,
26095        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26096    ) -> Result<(), fidl::Error> {
26097        self.control_handle.inner.send::<fidl::encoding::ResultType<
26098            fidl::encoding::EmptyStruct,
26099            fidl_fuchsia_posix::Errno,
26100        >>(
26101            result,
26102            self.tx_id,
26103            0x1ae532b0c066e3a0,
26104            fidl::encoding::DynamicFlags::empty(),
26105        )
26106    }
26107}
26108
26109#[must_use = "FIDL methods require a response to be sent"]
26110#[derive(Debug)]
26111pub struct BaseNetworkSocketGetIpTransparentResponder {
26112    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26113    tx_id: u32,
26114}
26115
26116/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26117/// if the responder is dropped without sending a response, so that the client
26118/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26119impl std::ops::Drop for BaseNetworkSocketGetIpTransparentResponder {
26120    fn drop(&mut self) {
26121        self.control_handle.shutdown();
26122        // Safety: drops once, never accessed again
26123        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26124    }
26125}
26126
26127impl fidl::endpoints::Responder for BaseNetworkSocketGetIpTransparentResponder {
26128    type ControlHandle = BaseNetworkSocketControlHandle;
26129
26130    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26131        &self.control_handle
26132    }
26133
26134    fn drop_without_shutdown(mut self) {
26135        // Safety: drops once, never accessed again due to mem::forget
26136        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26137        // Prevent Drop from running (which would shut down the channel)
26138        std::mem::forget(self);
26139    }
26140}
26141
26142impl BaseNetworkSocketGetIpTransparentResponder {
26143    /// Sends a response to the FIDL transaction.
26144    ///
26145    /// Sets the channel to shutdown if an error occurs.
26146    pub fn send(
26147        self,
26148        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26149    ) -> Result<(), fidl::Error> {
26150        let _result = self.send_raw(result);
26151        if _result.is_err() {
26152            self.control_handle.shutdown();
26153        }
26154        self.drop_without_shutdown();
26155        _result
26156    }
26157
26158    /// Similar to "send" but does not shutdown the channel if an error occurs.
26159    pub fn send_no_shutdown_on_err(
26160        self,
26161        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26162    ) -> Result<(), fidl::Error> {
26163        let _result = self.send_raw(result);
26164        self.drop_without_shutdown();
26165        _result
26166    }
26167
26168    fn send_raw(
26169        &self,
26170        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26171    ) -> Result<(), fidl::Error> {
26172        self.control_handle.inner.send::<fidl::encoding::ResultType<
26173            BaseNetworkSocketGetIpTransparentResponse,
26174            fidl_fuchsia_posix::Errno,
26175        >>(
26176            result.map(|value| (value,)),
26177            self.tx_id,
26178            0x51d43695962ebfb5,
26179            fidl::encoding::DynamicFlags::empty(),
26180        )
26181    }
26182}
26183
26184#[must_use = "FIDL methods require a response to be sent"]
26185#[derive(Debug)]
26186pub struct BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
26187    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26188    tx_id: u32,
26189}
26190
26191/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26192/// if the responder is dropped without sending a response, so that the client
26193/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26194impl std::ops::Drop for BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
26195    fn drop(&mut self) {
26196        self.control_handle.shutdown();
26197        // Safety: drops once, never accessed again
26198        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26199    }
26200}
26201
26202impl fidl::endpoints::Responder
26203    for BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder
26204{
26205    type ControlHandle = BaseNetworkSocketControlHandle;
26206
26207    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26208        &self.control_handle
26209    }
26210
26211    fn drop_without_shutdown(mut self) {
26212        // Safety: drops once, never accessed again due to mem::forget
26213        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26214        // Prevent Drop from running (which would shut down the channel)
26215        std::mem::forget(self);
26216    }
26217}
26218
26219impl BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
26220    /// Sends a response to the FIDL transaction.
26221    ///
26222    /// Sets the channel to shutdown if an error occurs.
26223    pub fn send(
26224        self,
26225        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26226    ) -> Result<(), fidl::Error> {
26227        let _result = self.send_raw(result);
26228        if _result.is_err() {
26229            self.control_handle.shutdown();
26230        }
26231        self.drop_without_shutdown();
26232        _result
26233    }
26234
26235    /// Similar to "send" but does not shutdown the channel if an error occurs.
26236    pub fn send_no_shutdown_on_err(
26237        self,
26238        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26239    ) -> Result<(), fidl::Error> {
26240        let _result = self.send_raw(result);
26241        self.drop_without_shutdown();
26242        _result
26243    }
26244
26245    fn send_raw(
26246        &self,
26247        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26248    ) -> Result<(), fidl::Error> {
26249        self.control_handle.inner.send::<fidl::encoding::ResultType<
26250            fidl::encoding::EmptyStruct,
26251            fidl_fuchsia_posix::Errno,
26252        >>(
26253            result,
26254            self.tx_id,
26255            0x4722b4ce52f7840,
26256            fidl::encoding::DynamicFlags::empty(),
26257        )
26258    }
26259}
26260
26261#[must_use = "FIDL methods require a response to be sent"]
26262#[derive(Debug)]
26263pub struct BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
26264    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26265    tx_id: u32,
26266}
26267
26268/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26269/// if the responder is dropped without sending a response, so that the client
26270/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26271impl std::ops::Drop for BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
26272    fn drop(&mut self) {
26273        self.control_handle.shutdown();
26274        // Safety: drops once, never accessed again
26275        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26276    }
26277}
26278
26279impl fidl::endpoints::Responder
26280    for BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder
26281{
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 BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
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<bool, 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<bool, 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<bool, fidl_fuchsia_posix::Errno>,
26325    ) -> Result<(), fidl::Error> {
26326        self.control_handle.inner.send::<fidl::encoding::ResultType<
26327            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
26328            fidl_fuchsia_posix::Errno,
26329        >>(
26330            result.map(|value| (value,)),
26331            self.tx_id,
26332            0x2a0e7dc5d6bfdfe9,
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 BaseNetworkSocketAddIpv6MembershipResponder {
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 BaseNetworkSocketAddIpv6MembershipResponder {
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 BaseNetworkSocketAddIpv6MembershipResponder {
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 BaseNetworkSocketAddIpv6MembershipResponder {
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<(), 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<(), 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<(), fidl_fuchsia_posix::Errno>,
26400    ) -> Result<(), fidl::Error> {
26401        self.control_handle.inner.send::<fidl::encoding::ResultType<
26402            fidl::encoding::EmptyStruct,
26403            fidl_fuchsia_posix::Errno,
26404        >>(
26405            result,
26406            self.tx_id,
26407            0x7c94727acb4ea4b3,
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 BaseNetworkSocketDropIpv6MembershipResponder {
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 BaseNetworkSocketDropIpv6MembershipResponder {
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 BaseNetworkSocketDropIpv6MembershipResponder {
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 BaseNetworkSocketDropIpv6MembershipResponder {
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            0x42104c70ccaba304,
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 BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
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 BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
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 BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
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 BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
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            0x135f76db3774ab3b,
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 BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
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 BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
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 BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
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 BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
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<u64, 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<u64, 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<u64, fidl_fuchsia_posix::Errno>,
26625    ) -> Result<(), fidl::Error> {
26626        self.control_handle.inner.send::<fidl::encoding::ResultType<
26627            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
26628            fidl_fuchsia_posix::Errno,
26629        >>(
26630            result.map(|value| (value,)),
26631            self.tx_id,
26632            0x1f26fcdd348f1882,
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 BaseNetworkSocketSetIpv6UnicastHopsResponder {
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 BaseNetworkSocketSetIpv6UnicastHopsResponder {
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 BaseNetworkSocketSetIpv6UnicastHopsResponder {
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 BaseNetworkSocketSetIpv6UnicastHopsResponder {
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<(), 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<(), 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<(), fidl_fuchsia_posix::Errno>,
26700    ) -> Result<(), fidl::Error> {
26701        self.control_handle.inner.send::<fidl::encoding::ResultType<
26702            fidl::encoding::EmptyStruct,
26703            fidl_fuchsia_posix::Errno,
26704        >>(
26705            result,
26706            self.tx_id,
26707            0x157d51e98f462859,
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 BaseNetworkSocketGetIpv6UnicastHopsResponder {
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 BaseNetworkSocketGetIpv6UnicastHopsResponder {
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 for BaseNetworkSocketGetIpv6UnicastHopsResponder {
26732    type ControlHandle = BaseNetworkSocketControlHandle;
26733
26734    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26735        &self.control_handle
26736    }
26737
26738    fn drop_without_shutdown(mut self) {
26739        // Safety: drops once, never accessed again due to mem::forget
26740        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26741        // Prevent Drop from running (which would shut down the channel)
26742        std::mem::forget(self);
26743    }
26744}
26745
26746impl BaseNetworkSocketGetIpv6UnicastHopsResponder {
26747    /// Sends a response to the FIDL transaction.
26748    ///
26749    /// Sets the channel to shutdown if an error occurs.
26750    pub fn send(
26751        self,
26752        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
26753    ) -> Result<(), fidl::Error> {
26754        let _result = self.send_raw(result);
26755        if _result.is_err() {
26756            self.control_handle.shutdown();
26757        }
26758        self.drop_without_shutdown();
26759        _result
26760    }
26761
26762    /// Similar to "send" but does not shutdown the channel if an error occurs.
26763    pub fn send_no_shutdown_on_err(
26764        self,
26765        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
26766    ) -> Result<(), fidl::Error> {
26767        let _result = self.send_raw(result);
26768        self.drop_without_shutdown();
26769        _result
26770    }
26771
26772    fn send_raw(
26773        &self,
26774        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
26775    ) -> Result<(), fidl::Error> {
26776        self.control_handle.inner.send::<fidl::encoding::ResultType<
26777            BaseNetworkSocketGetIpv6UnicastHopsResponse,
26778            fidl_fuchsia_posix::Errno,
26779        >>(
26780            result.map(|value| (value,)),
26781            self.tx_id,
26782            0x21f4641cad8bd8d2,
26783            fidl::encoding::DynamicFlags::empty(),
26784        )
26785    }
26786}
26787
26788#[must_use = "FIDL methods require a response to be sent"]
26789#[derive(Debug)]
26790pub struct BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
26791    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26792    tx_id: u32,
26793}
26794
26795/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26796/// if the responder is dropped without sending a response, so that the client
26797/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26798impl std::ops::Drop for BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
26799    fn drop(&mut self) {
26800        self.control_handle.shutdown();
26801        // Safety: drops once, never accessed again
26802        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26803    }
26804}
26805
26806impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
26807    type ControlHandle = BaseNetworkSocketControlHandle;
26808
26809    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26810        &self.control_handle
26811    }
26812
26813    fn drop_without_shutdown(mut self) {
26814        // Safety: drops once, never accessed again due to mem::forget
26815        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26816        // Prevent Drop from running (which would shut down the channel)
26817        std::mem::forget(self);
26818    }
26819}
26820
26821impl BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
26822    /// Sends a response to the FIDL transaction.
26823    ///
26824    /// Sets the channel to shutdown if an error occurs.
26825    pub fn send(
26826        self,
26827        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26828    ) -> Result<(), fidl::Error> {
26829        let _result = self.send_raw(result);
26830        if _result.is_err() {
26831            self.control_handle.shutdown();
26832        }
26833        self.drop_without_shutdown();
26834        _result
26835    }
26836
26837    /// Similar to "send" but does not shutdown the channel if an error occurs.
26838    pub fn send_no_shutdown_on_err(
26839        self,
26840        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26841    ) -> Result<(), fidl::Error> {
26842        let _result = self.send_raw(result);
26843        self.drop_without_shutdown();
26844        _result
26845    }
26846
26847    fn send_raw(
26848        &self,
26849        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26850    ) -> Result<(), fidl::Error> {
26851        self.control_handle.inner.send::<fidl::encoding::ResultType<
26852            fidl::encoding::EmptyStruct,
26853            fidl_fuchsia_posix::Errno,
26854        >>(
26855            result,
26856            self.tx_id,
26857            0x5c24808ed2e84a1e,
26858            fidl::encoding::DynamicFlags::empty(),
26859        )
26860    }
26861}
26862
26863#[must_use = "FIDL methods require a response to be sent"]
26864#[derive(Debug)]
26865pub struct BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
26866    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26867    tx_id: u32,
26868}
26869
26870/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26871/// if the responder is dropped without sending a response, so that the client
26872/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26873impl std::ops::Drop for BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
26874    fn drop(&mut self) {
26875        self.control_handle.shutdown();
26876        // Safety: drops once, never accessed again
26877        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26878    }
26879}
26880
26881impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
26882    type ControlHandle = BaseNetworkSocketControlHandle;
26883
26884    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26885        &self.control_handle
26886    }
26887
26888    fn drop_without_shutdown(mut self) {
26889        // Safety: drops once, never accessed again due to mem::forget
26890        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26891        // Prevent Drop from running (which would shut down the channel)
26892        std::mem::forget(self);
26893    }
26894}
26895
26896impl BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
26897    /// Sends a response to the FIDL transaction.
26898    ///
26899    /// Sets the channel to shutdown if an error occurs.
26900    pub fn send(
26901        self,
26902        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26903    ) -> Result<(), fidl::Error> {
26904        let _result = self.send_raw(result);
26905        if _result.is_err() {
26906            self.control_handle.shutdown();
26907        }
26908        self.drop_without_shutdown();
26909        _result
26910    }
26911
26912    /// Similar to "send" but does not shutdown the channel if an error occurs.
26913    pub fn send_no_shutdown_on_err(
26914        self,
26915        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26916    ) -> Result<(), fidl::Error> {
26917        let _result = self.send_raw(result);
26918        self.drop_without_shutdown();
26919        _result
26920    }
26921
26922    fn send_raw(
26923        &self,
26924        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26925    ) -> Result<(), fidl::Error> {
26926        self.control_handle.inner.send::<fidl::encoding::ResultType<
26927            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
26928            fidl_fuchsia_posix::Errno,
26929        >>(
26930            result.map(|value| (value,)),
26931            self.tx_id,
26932            0x341e06689885b4c0,
26933            fidl::encoding::DynamicFlags::empty(),
26934        )
26935    }
26936}
26937
26938#[must_use = "FIDL methods require a response to be sent"]
26939#[derive(Debug)]
26940pub struct BaseNetworkSocketSetIpv6MulticastHopsResponder {
26941    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26942    tx_id: u32,
26943}
26944
26945/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26946/// if the responder is dropped without sending a response, so that the client
26947/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26948impl std::ops::Drop for BaseNetworkSocketSetIpv6MulticastHopsResponder {
26949    fn drop(&mut self) {
26950        self.control_handle.shutdown();
26951        // Safety: drops once, never accessed again
26952        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26953    }
26954}
26955
26956impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6MulticastHopsResponder {
26957    type ControlHandle = BaseNetworkSocketControlHandle;
26958
26959    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26960        &self.control_handle
26961    }
26962
26963    fn drop_without_shutdown(mut self) {
26964        // Safety: drops once, never accessed again due to mem::forget
26965        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26966        // Prevent Drop from running (which would shut down the channel)
26967        std::mem::forget(self);
26968    }
26969}
26970
26971impl BaseNetworkSocketSetIpv6MulticastHopsResponder {
26972    /// Sends a response to the FIDL transaction.
26973    ///
26974    /// Sets the channel to shutdown if an error occurs.
26975    pub fn send(
26976        self,
26977        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26978    ) -> Result<(), fidl::Error> {
26979        let _result = self.send_raw(result);
26980        if _result.is_err() {
26981            self.control_handle.shutdown();
26982        }
26983        self.drop_without_shutdown();
26984        _result
26985    }
26986
26987    /// Similar to "send" but does not shutdown the channel if an error occurs.
26988    pub fn send_no_shutdown_on_err(
26989        self,
26990        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26991    ) -> Result<(), fidl::Error> {
26992        let _result = self.send_raw(result);
26993        self.drop_without_shutdown();
26994        _result
26995    }
26996
26997    fn send_raw(
26998        &self,
26999        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27000    ) -> Result<(), fidl::Error> {
27001        self.control_handle.inner.send::<fidl::encoding::ResultType<
27002            fidl::encoding::EmptyStruct,
27003            fidl_fuchsia_posix::Errno,
27004        >>(
27005            result,
27006            self.tx_id,
27007            0x25b9cd4d181f82c1,
27008            fidl::encoding::DynamicFlags::empty(),
27009        )
27010    }
27011}
27012
27013#[must_use = "FIDL methods require a response to be sent"]
27014#[derive(Debug)]
27015pub struct BaseNetworkSocketGetIpv6MulticastHopsResponder {
27016    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27017    tx_id: u32,
27018}
27019
27020/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27021/// if the responder is dropped without sending a response, so that the client
27022/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27023impl std::ops::Drop for BaseNetworkSocketGetIpv6MulticastHopsResponder {
27024    fn drop(&mut self) {
27025        self.control_handle.shutdown();
27026        // Safety: drops once, never accessed again
27027        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27028    }
27029}
27030
27031impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6MulticastHopsResponder {
27032    type ControlHandle = BaseNetworkSocketControlHandle;
27033
27034    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27035        &self.control_handle
27036    }
27037
27038    fn drop_without_shutdown(mut self) {
27039        // Safety: drops once, never accessed again due to mem::forget
27040        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27041        // Prevent Drop from running (which would shut down the channel)
27042        std::mem::forget(self);
27043    }
27044}
27045
27046impl BaseNetworkSocketGetIpv6MulticastHopsResponder {
27047    /// Sends a response to the FIDL transaction.
27048    ///
27049    /// Sets the channel to shutdown if an error occurs.
27050    pub fn send(
27051        self,
27052        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27053    ) -> Result<(), fidl::Error> {
27054        let _result = self.send_raw(result);
27055        if _result.is_err() {
27056            self.control_handle.shutdown();
27057        }
27058        self.drop_without_shutdown();
27059        _result
27060    }
27061
27062    /// Similar to "send" but does not shutdown the channel if an error occurs.
27063    pub fn send_no_shutdown_on_err(
27064        self,
27065        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27066    ) -> Result<(), fidl::Error> {
27067        let _result = self.send_raw(result);
27068        self.drop_without_shutdown();
27069        _result
27070    }
27071
27072    fn send_raw(
27073        &self,
27074        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27075    ) -> Result<(), fidl::Error> {
27076        self.control_handle.inner.send::<fidl::encoding::ResultType<
27077            BaseNetworkSocketGetIpv6MulticastHopsResponse,
27078            fidl_fuchsia_posix::Errno,
27079        >>(
27080            result.map(|value| (value,)),
27081            self.tx_id,
27082            0x52916948a365012a,
27083            fidl::encoding::DynamicFlags::empty(),
27084        )
27085    }
27086}
27087
27088#[must_use = "FIDL methods require a response to be sent"]
27089#[derive(Debug)]
27090pub struct BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27091    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27092    tx_id: u32,
27093}
27094
27095/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27096/// if the responder is dropped without sending a response, so that the client
27097/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27098impl std::ops::Drop for BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27099    fn drop(&mut self) {
27100        self.control_handle.shutdown();
27101        // Safety: drops once, never accessed again
27102        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27103    }
27104}
27105
27106impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27107    type ControlHandle = BaseNetworkSocketControlHandle;
27108
27109    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27110        &self.control_handle
27111    }
27112
27113    fn drop_without_shutdown(mut self) {
27114        // Safety: drops once, never accessed again due to mem::forget
27115        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27116        // Prevent Drop from running (which would shut down the channel)
27117        std::mem::forget(self);
27118    }
27119}
27120
27121impl BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27122    /// Sends a response to the FIDL transaction.
27123    ///
27124    /// Sets the channel to shutdown if an error occurs.
27125    pub fn send(
27126        self,
27127        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27128    ) -> Result<(), fidl::Error> {
27129        let _result = self.send_raw(result);
27130        if _result.is_err() {
27131            self.control_handle.shutdown();
27132        }
27133        self.drop_without_shutdown();
27134        _result
27135    }
27136
27137    /// Similar to "send" but does not shutdown the channel if an error occurs.
27138    pub fn send_no_shutdown_on_err(
27139        self,
27140        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27141    ) -> Result<(), fidl::Error> {
27142        let _result = self.send_raw(result);
27143        self.drop_without_shutdown();
27144        _result
27145    }
27146
27147    fn send_raw(
27148        &self,
27149        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27150    ) -> Result<(), fidl::Error> {
27151        self.control_handle.inner.send::<fidl::encoding::ResultType<
27152            fidl::encoding::EmptyStruct,
27153            fidl_fuchsia_posix::Errno,
27154        >>(
27155            result,
27156            self.tx_id,
27157            0x55701c409ff41b40,
27158            fidl::encoding::DynamicFlags::empty(),
27159        )
27160    }
27161}
27162
27163#[must_use = "FIDL methods require a response to be sent"]
27164#[derive(Debug)]
27165pub struct BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27166    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27167    tx_id: u32,
27168}
27169
27170/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27171/// if the responder is dropped without sending a response, so that the client
27172/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27173impl std::ops::Drop for BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27174    fn drop(&mut self) {
27175        self.control_handle.shutdown();
27176        // Safety: drops once, never accessed again
27177        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27178    }
27179}
27180
27181impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27182    type ControlHandle = BaseNetworkSocketControlHandle;
27183
27184    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27185        &self.control_handle
27186    }
27187
27188    fn drop_without_shutdown(mut self) {
27189        // Safety: drops once, never accessed again due to mem::forget
27190        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27191        // Prevent Drop from running (which would shut down the channel)
27192        std::mem::forget(self);
27193    }
27194}
27195
27196impl BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27197    /// Sends a response to the FIDL transaction.
27198    ///
27199    /// Sets the channel to shutdown if an error occurs.
27200    pub fn send(
27201        self,
27202        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27203    ) -> Result<(), fidl::Error> {
27204        let _result = self.send_raw(result);
27205        if _result.is_err() {
27206            self.control_handle.shutdown();
27207        }
27208        self.drop_without_shutdown();
27209        _result
27210    }
27211
27212    /// Similar to "send" but does not shutdown the channel if an error occurs.
27213    pub fn send_no_shutdown_on_err(
27214        self,
27215        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27216    ) -> Result<(), fidl::Error> {
27217        let _result = self.send_raw(result);
27218        self.drop_without_shutdown();
27219        _result
27220    }
27221
27222    fn send_raw(
27223        &self,
27224        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27225    ) -> Result<(), fidl::Error> {
27226        self.control_handle.inner.send::<fidl::encoding::ResultType<
27227            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
27228            fidl_fuchsia_posix::Errno,
27229        >>(
27230            result.map(|value| (value,)),
27231            self.tx_id,
27232            0x4415b701fde319c3,
27233            fidl::encoding::DynamicFlags::empty(),
27234        )
27235    }
27236}
27237
27238#[must_use = "FIDL methods require a response to be sent"]
27239#[derive(Debug)]
27240pub struct BaseNetworkSocketSetIpv6OnlyResponder {
27241    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27242    tx_id: u32,
27243}
27244
27245/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27246/// if the responder is dropped without sending a response, so that the client
27247/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27248impl std::ops::Drop for BaseNetworkSocketSetIpv6OnlyResponder {
27249    fn drop(&mut self) {
27250        self.control_handle.shutdown();
27251        // Safety: drops once, never accessed again
27252        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27253    }
27254}
27255
27256impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6OnlyResponder {
27257    type ControlHandle = BaseNetworkSocketControlHandle;
27258
27259    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27260        &self.control_handle
27261    }
27262
27263    fn drop_without_shutdown(mut self) {
27264        // Safety: drops once, never accessed again due to mem::forget
27265        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27266        // Prevent Drop from running (which would shut down the channel)
27267        std::mem::forget(self);
27268    }
27269}
27270
27271impl BaseNetworkSocketSetIpv6OnlyResponder {
27272    /// Sends a response to the FIDL transaction.
27273    ///
27274    /// Sets the channel to shutdown if an error occurs.
27275    pub fn send(
27276        self,
27277        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27278    ) -> Result<(), fidl::Error> {
27279        let _result = self.send_raw(result);
27280        if _result.is_err() {
27281            self.control_handle.shutdown();
27282        }
27283        self.drop_without_shutdown();
27284        _result
27285    }
27286
27287    /// Similar to "send" but does not shutdown the channel if an error occurs.
27288    pub fn send_no_shutdown_on_err(
27289        self,
27290        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27291    ) -> Result<(), fidl::Error> {
27292        let _result = self.send_raw(result);
27293        self.drop_without_shutdown();
27294        _result
27295    }
27296
27297    fn send_raw(
27298        &self,
27299        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27300    ) -> Result<(), fidl::Error> {
27301        self.control_handle.inner.send::<fidl::encoding::ResultType<
27302            fidl::encoding::EmptyStruct,
27303            fidl_fuchsia_posix::Errno,
27304        >>(
27305            result,
27306            self.tx_id,
27307            0x4873f1364758cbba,
27308            fidl::encoding::DynamicFlags::empty(),
27309        )
27310    }
27311}
27312
27313#[must_use = "FIDL methods require a response to be sent"]
27314#[derive(Debug)]
27315pub struct BaseNetworkSocketGetIpv6OnlyResponder {
27316    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27317    tx_id: u32,
27318}
27319
27320/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27321/// if the responder is dropped without sending a response, so that the client
27322/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27323impl std::ops::Drop for BaseNetworkSocketGetIpv6OnlyResponder {
27324    fn drop(&mut self) {
27325        self.control_handle.shutdown();
27326        // Safety: drops once, never accessed again
27327        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27328    }
27329}
27330
27331impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6OnlyResponder {
27332    type ControlHandle = BaseNetworkSocketControlHandle;
27333
27334    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27335        &self.control_handle
27336    }
27337
27338    fn drop_without_shutdown(mut self) {
27339        // Safety: drops once, never accessed again due to mem::forget
27340        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27341        // Prevent Drop from running (which would shut down the channel)
27342        std::mem::forget(self);
27343    }
27344}
27345
27346impl BaseNetworkSocketGetIpv6OnlyResponder {
27347    /// Sends a response to the FIDL transaction.
27348    ///
27349    /// Sets the channel to shutdown if an error occurs.
27350    pub fn send(
27351        self,
27352        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27353    ) -> Result<(), fidl::Error> {
27354        let _result = self.send_raw(result);
27355        if _result.is_err() {
27356            self.control_handle.shutdown();
27357        }
27358        self.drop_without_shutdown();
27359        _result
27360    }
27361
27362    /// Similar to "send" but does not shutdown the channel if an error occurs.
27363    pub fn send_no_shutdown_on_err(
27364        self,
27365        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27366    ) -> Result<(), fidl::Error> {
27367        let _result = self.send_raw(result);
27368        self.drop_without_shutdown();
27369        _result
27370    }
27371
27372    fn send_raw(
27373        &self,
27374        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27375    ) -> Result<(), fidl::Error> {
27376        self.control_handle.inner.send::<fidl::encoding::ResultType<
27377            BaseNetworkSocketGetIpv6OnlyResponse,
27378            fidl_fuchsia_posix::Errno,
27379        >>(
27380            result.map(|value| (value,)),
27381            self.tx_id,
27382            0x4aa3340a1a26b89c,
27383            fidl::encoding::DynamicFlags::empty(),
27384        )
27385    }
27386}
27387
27388#[must_use = "FIDL methods require a response to be sent"]
27389#[derive(Debug)]
27390pub struct BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27391    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27392    tx_id: u32,
27393}
27394
27395/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27396/// if the responder is dropped without sending a response, so that the client
27397/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27398impl std::ops::Drop for BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27399    fn drop(&mut self) {
27400        self.control_handle.shutdown();
27401        // Safety: drops once, never accessed again
27402        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27403    }
27404}
27405
27406impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27407    type ControlHandle = BaseNetworkSocketControlHandle;
27408
27409    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27410        &self.control_handle
27411    }
27412
27413    fn drop_without_shutdown(mut self) {
27414        // Safety: drops once, never accessed again due to mem::forget
27415        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27416        // Prevent Drop from running (which would shut down the channel)
27417        std::mem::forget(self);
27418    }
27419}
27420
27421impl BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27422    /// Sends a response to the FIDL transaction.
27423    ///
27424    /// Sets the channel to shutdown if an error occurs.
27425    pub fn send(
27426        self,
27427        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27428    ) -> Result<(), fidl::Error> {
27429        let _result = self.send_raw(result);
27430        if _result.is_err() {
27431            self.control_handle.shutdown();
27432        }
27433        self.drop_without_shutdown();
27434        _result
27435    }
27436
27437    /// Similar to "send" but does not shutdown the channel if an error occurs.
27438    pub fn send_no_shutdown_on_err(
27439        self,
27440        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27441    ) -> Result<(), fidl::Error> {
27442        let _result = self.send_raw(result);
27443        self.drop_without_shutdown();
27444        _result
27445    }
27446
27447    fn send_raw(
27448        &self,
27449        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27450    ) -> Result<(), fidl::Error> {
27451        self.control_handle.inner.send::<fidl::encoding::ResultType<
27452            fidl::encoding::EmptyStruct,
27453            fidl_fuchsia_posix::Errno,
27454        >>(
27455            result,
27456            self.tx_id,
27457            0x58f07c8788d099a0,
27458            fidl::encoding::DynamicFlags::empty(),
27459        )
27460    }
27461}
27462
27463#[must_use = "FIDL methods require a response to be sent"]
27464#[derive(Debug)]
27465pub struct BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
27466    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27467    tx_id: u32,
27468}
27469
27470/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27471/// if the responder is dropped without sending a response, so that the client
27472/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27473impl std::ops::Drop for BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
27474    fn drop(&mut self) {
27475        self.control_handle.shutdown();
27476        // Safety: drops once, never accessed again
27477        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27478    }
27479}
27480
27481impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
27482    type ControlHandle = BaseNetworkSocketControlHandle;
27483
27484    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27485        &self.control_handle
27486    }
27487
27488    fn drop_without_shutdown(mut self) {
27489        // Safety: drops once, never accessed again due to mem::forget
27490        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27491        // Prevent Drop from running (which would shut down the channel)
27492        std::mem::forget(self);
27493    }
27494}
27495
27496impl BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
27497    /// Sends a response to the FIDL transaction.
27498    ///
27499    /// Sets the channel to shutdown if an error occurs.
27500    pub fn send(
27501        self,
27502        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27503    ) -> Result<(), fidl::Error> {
27504        let _result = self.send_raw(result);
27505        if _result.is_err() {
27506            self.control_handle.shutdown();
27507        }
27508        self.drop_without_shutdown();
27509        _result
27510    }
27511
27512    /// Similar to "send" but does not shutdown the channel if an error occurs.
27513    pub fn send_no_shutdown_on_err(
27514        self,
27515        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27516    ) -> Result<(), fidl::Error> {
27517        let _result = self.send_raw(result);
27518        self.drop_without_shutdown();
27519        _result
27520    }
27521
27522    fn send_raw(
27523        &self,
27524        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27525    ) -> Result<(), fidl::Error> {
27526        self.control_handle.inner.send::<fidl::encoding::ResultType<
27527            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
27528            fidl_fuchsia_posix::Errno,
27529        >>(
27530            result.map(|value| (value,)),
27531            self.tx_id,
27532            0x2e334df1da553ffa,
27533            fidl::encoding::DynamicFlags::empty(),
27534        )
27535    }
27536}
27537
27538#[must_use = "FIDL methods require a response to be sent"]
27539#[derive(Debug)]
27540pub struct BaseNetworkSocketSetIpv6TrafficClassResponder {
27541    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27542    tx_id: u32,
27543}
27544
27545/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27546/// if the responder is dropped without sending a response, so that the client
27547/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27548impl std::ops::Drop for BaseNetworkSocketSetIpv6TrafficClassResponder {
27549    fn drop(&mut self) {
27550        self.control_handle.shutdown();
27551        // Safety: drops once, never accessed again
27552        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27553    }
27554}
27555
27556impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6TrafficClassResponder {
27557    type ControlHandle = BaseNetworkSocketControlHandle;
27558
27559    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27560        &self.control_handle
27561    }
27562
27563    fn drop_without_shutdown(mut self) {
27564        // Safety: drops once, never accessed again due to mem::forget
27565        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27566        // Prevent Drop from running (which would shut down the channel)
27567        std::mem::forget(self);
27568    }
27569}
27570
27571impl BaseNetworkSocketSetIpv6TrafficClassResponder {
27572    /// Sends a response to the FIDL transaction.
27573    ///
27574    /// Sets the channel to shutdown if an error occurs.
27575    pub fn send(
27576        self,
27577        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27578    ) -> Result<(), fidl::Error> {
27579        let _result = self.send_raw(result);
27580        if _result.is_err() {
27581            self.control_handle.shutdown();
27582        }
27583        self.drop_without_shutdown();
27584        _result
27585    }
27586
27587    /// Similar to "send" but does not shutdown the channel if an error occurs.
27588    pub fn send_no_shutdown_on_err(
27589        self,
27590        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27591    ) -> Result<(), fidl::Error> {
27592        let _result = self.send_raw(result);
27593        self.drop_without_shutdown();
27594        _result
27595    }
27596
27597    fn send_raw(
27598        &self,
27599        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27600    ) -> Result<(), fidl::Error> {
27601        self.control_handle.inner.send::<fidl::encoding::ResultType<
27602            fidl::encoding::EmptyStruct,
27603            fidl_fuchsia_posix::Errno,
27604        >>(
27605            result,
27606            self.tx_id,
27607            0x6af077800c5a0b4f,
27608            fidl::encoding::DynamicFlags::empty(),
27609        )
27610    }
27611}
27612
27613#[must_use = "FIDL methods require a response to be sent"]
27614#[derive(Debug)]
27615pub struct BaseNetworkSocketGetIpv6TrafficClassResponder {
27616    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27617    tx_id: u32,
27618}
27619
27620/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27621/// if the responder is dropped without sending a response, so that the client
27622/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27623impl std::ops::Drop for BaseNetworkSocketGetIpv6TrafficClassResponder {
27624    fn drop(&mut self) {
27625        self.control_handle.shutdown();
27626        // Safety: drops once, never accessed again
27627        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27628    }
27629}
27630
27631impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6TrafficClassResponder {
27632    type ControlHandle = BaseNetworkSocketControlHandle;
27633
27634    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27635        &self.control_handle
27636    }
27637
27638    fn drop_without_shutdown(mut self) {
27639        // Safety: drops once, never accessed again due to mem::forget
27640        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27641        // Prevent Drop from running (which would shut down the channel)
27642        std::mem::forget(self);
27643    }
27644}
27645
27646impl BaseNetworkSocketGetIpv6TrafficClassResponder {
27647    /// Sends a response to the FIDL transaction.
27648    ///
27649    /// Sets the channel to shutdown if an error occurs.
27650    pub fn send(
27651        self,
27652        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27653    ) -> Result<(), fidl::Error> {
27654        let _result = self.send_raw(result);
27655        if _result.is_err() {
27656            self.control_handle.shutdown();
27657        }
27658        self.drop_without_shutdown();
27659        _result
27660    }
27661
27662    /// Similar to "send" but does not shutdown the channel if an error occurs.
27663    pub fn send_no_shutdown_on_err(
27664        self,
27665        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27666    ) -> Result<(), fidl::Error> {
27667        let _result = self.send_raw(result);
27668        self.drop_without_shutdown();
27669        _result
27670    }
27671
27672    fn send_raw(
27673        &self,
27674        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27675    ) -> Result<(), fidl::Error> {
27676        self.control_handle.inner.send::<fidl::encoding::ResultType<
27677            BaseNetworkSocketGetIpv6TrafficClassResponse,
27678            fidl_fuchsia_posix::Errno,
27679        >>(
27680            result.map(|value| (value,)),
27681            self.tx_id,
27682            0x6baf6eed8fc2f04,
27683            fidl::encoding::DynamicFlags::empty(),
27684        )
27685    }
27686}
27687
27688#[must_use = "FIDL methods require a response to be sent"]
27689#[derive(Debug)]
27690pub struct BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
27691    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27692    tx_id: u32,
27693}
27694
27695/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27696/// if the responder is dropped without sending a response, so that the client
27697/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27698impl std::ops::Drop for BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
27699    fn drop(&mut self) {
27700        self.control_handle.shutdown();
27701        // Safety: drops once, never accessed again
27702        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27703    }
27704}
27705
27706impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
27707    type ControlHandle = BaseNetworkSocketControlHandle;
27708
27709    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27710        &self.control_handle
27711    }
27712
27713    fn drop_without_shutdown(mut self) {
27714        // Safety: drops once, never accessed again due to mem::forget
27715        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27716        // Prevent Drop from running (which would shut down the channel)
27717        std::mem::forget(self);
27718    }
27719}
27720
27721impl BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
27722    /// Sends a response to the FIDL transaction.
27723    ///
27724    /// Sets the channel to shutdown if an error occurs.
27725    pub fn send(
27726        self,
27727        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27728    ) -> Result<(), fidl::Error> {
27729        let _result = self.send_raw(result);
27730        if _result.is_err() {
27731            self.control_handle.shutdown();
27732        }
27733        self.drop_without_shutdown();
27734        _result
27735    }
27736
27737    /// Similar to "send" but does not shutdown the channel if an error occurs.
27738    pub fn send_no_shutdown_on_err(
27739        self,
27740        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27741    ) -> Result<(), fidl::Error> {
27742        let _result = self.send_raw(result);
27743        self.drop_without_shutdown();
27744        _result
27745    }
27746
27747    fn send_raw(
27748        &self,
27749        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27750    ) -> Result<(), fidl::Error> {
27751        self.control_handle.inner.send::<fidl::encoding::ResultType<
27752            fidl::encoding::EmptyStruct,
27753            fidl_fuchsia_posix::Errno,
27754        >>(
27755            result,
27756            self.tx_id,
27757            0x19259775b1a92768,
27758            fidl::encoding::DynamicFlags::empty(),
27759        )
27760    }
27761}
27762
27763#[must_use = "FIDL methods require a response to be sent"]
27764#[derive(Debug)]
27765pub struct BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
27766    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27767    tx_id: u32,
27768}
27769
27770/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27771/// if the responder is dropped without sending a response, so that the client
27772/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27773impl std::ops::Drop for BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
27774    fn drop(&mut self) {
27775        self.control_handle.shutdown();
27776        // Safety: drops once, never accessed again
27777        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27778    }
27779}
27780
27781impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
27782    type ControlHandle = BaseNetworkSocketControlHandle;
27783
27784    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27785        &self.control_handle
27786    }
27787
27788    fn drop_without_shutdown(mut self) {
27789        // Safety: drops once, never accessed again due to mem::forget
27790        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27791        // Prevent Drop from running (which would shut down the channel)
27792        std::mem::forget(self);
27793    }
27794}
27795
27796impl BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
27797    /// Sends a response to the FIDL transaction.
27798    ///
27799    /// Sets the channel to shutdown if an error occurs.
27800    pub fn send(
27801        self,
27802        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27803    ) -> Result<(), fidl::Error> {
27804        let _result = self.send_raw(result);
27805        if _result.is_err() {
27806            self.control_handle.shutdown();
27807        }
27808        self.drop_without_shutdown();
27809        _result
27810    }
27811
27812    /// Similar to "send" but does not shutdown the channel if an error occurs.
27813    pub fn send_no_shutdown_on_err(
27814        self,
27815        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27816    ) -> Result<(), fidl::Error> {
27817        let _result = self.send_raw(result);
27818        self.drop_without_shutdown();
27819        _result
27820    }
27821
27822    fn send_raw(
27823        &self,
27824        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27825    ) -> Result<(), fidl::Error> {
27826        self.control_handle.inner.send::<fidl::encoding::ResultType<
27827            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
27828            fidl_fuchsia_posix::Errno,
27829        >>(
27830            result.map(|value| (value,)),
27831            self.tx_id,
27832            0x7acd4a2775baec75,
27833            fidl::encoding::DynamicFlags::empty(),
27834        )
27835    }
27836}
27837
27838#[must_use = "FIDL methods require a response to be sent"]
27839#[derive(Debug)]
27840pub struct BaseNetworkSocketGetOriginalDestinationResponder {
27841    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27842    tx_id: u32,
27843}
27844
27845/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27846/// if the responder is dropped without sending a response, so that the client
27847/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27848impl std::ops::Drop for BaseNetworkSocketGetOriginalDestinationResponder {
27849    fn drop(&mut self) {
27850        self.control_handle.shutdown();
27851        // Safety: drops once, never accessed again
27852        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27853    }
27854}
27855
27856impl fidl::endpoints::Responder for BaseNetworkSocketGetOriginalDestinationResponder {
27857    type ControlHandle = BaseNetworkSocketControlHandle;
27858
27859    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27860        &self.control_handle
27861    }
27862
27863    fn drop_without_shutdown(mut self) {
27864        // Safety: drops once, never accessed again due to mem::forget
27865        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27866        // Prevent Drop from running (which would shut down the channel)
27867        std::mem::forget(self);
27868    }
27869}
27870
27871impl BaseNetworkSocketGetOriginalDestinationResponder {
27872    /// Sends a response to the FIDL transaction.
27873    ///
27874    /// Sets the channel to shutdown if an error occurs.
27875    pub fn send(
27876        self,
27877        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
27878    ) -> Result<(), fidl::Error> {
27879        let _result = self.send_raw(result);
27880        if _result.is_err() {
27881            self.control_handle.shutdown();
27882        }
27883        self.drop_without_shutdown();
27884        _result
27885    }
27886
27887    /// Similar to "send" but does not shutdown the channel if an error occurs.
27888    pub fn send_no_shutdown_on_err(
27889        self,
27890        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
27891    ) -> Result<(), fidl::Error> {
27892        let _result = self.send_raw(result);
27893        self.drop_without_shutdown();
27894        _result
27895    }
27896
27897    fn send_raw(
27898        &self,
27899        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
27900    ) -> Result<(), fidl::Error> {
27901        self.control_handle.inner.send::<fidl::encoding::ResultType<
27902            BaseNetworkSocketGetOriginalDestinationResponse,
27903            fidl_fuchsia_posix::Errno,
27904        >>(
27905            result.map(|value| (value,)),
27906            self.tx_id,
27907            0x38bf28f0dafdbac0,
27908            fidl::encoding::DynamicFlags::empty(),
27909        )
27910    }
27911}
27912
27913#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
27914pub struct BaseSocketMarker;
27915
27916impl fidl::endpoints::ProtocolMarker for BaseSocketMarker {
27917    type Proxy = BaseSocketProxy;
27918    type RequestStream = BaseSocketRequestStream;
27919    #[cfg(target_os = "fuchsia")]
27920    type SynchronousProxy = BaseSocketSynchronousProxy;
27921
27922    const DEBUG_NAME: &'static str = "(anonymous) BaseSocket";
27923}
27924pub type BaseSocketSetReuseAddressResult = Result<(), fidl_fuchsia_posix::Errno>;
27925pub type BaseSocketGetReuseAddressResult = Result<bool, fidl_fuchsia_posix::Errno>;
27926pub type BaseSocketGetErrorResult = Result<(), fidl_fuchsia_posix::Errno>;
27927pub type BaseSocketSetBroadcastResult = Result<(), fidl_fuchsia_posix::Errno>;
27928pub type BaseSocketGetBroadcastResult = Result<bool, fidl_fuchsia_posix::Errno>;
27929pub type BaseSocketSetSendBufferResult = Result<(), fidl_fuchsia_posix::Errno>;
27930pub type BaseSocketGetSendBufferResult = Result<u64, fidl_fuchsia_posix::Errno>;
27931pub type BaseSocketSetReceiveBufferResult = Result<(), fidl_fuchsia_posix::Errno>;
27932pub type BaseSocketGetReceiveBufferResult = Result<u64, fidl_fuchsia_posix::Errno>;
27933pub type BaseSocketSetKeepAliveResult = Result<(), fidl_fuchsia_posix::Errno>;
27934pub type BaseSocketGetKeepAliveResult = Result<bool, fidl_fuchsia_posix::Errno>;
27935pub type BaseSocketSetOutOfBandInlineResult = Result<(), fidl_fuchsia_posix::Errno>;
27936pub type BaseSocketGetOutOfBandInlineResult = Result<bool, fidl_fuchsia_posix::Errno>;
27937pub type BaseSocketSetNoCheckResult = Result<(), fidl_fuchsia_posix::Errno>;
27938pub type BaseSocketGetNoCheckResult = Result<bool, fidl_fuchsia_posix::Errno>;
27939pub type BaseSocketSetLingerResult = Result<(), fidl_fuchsia_posix::Errno>;
27940pub type BaseSocketGetLingerResult = Result<(bool, u32), fidl_fuchsia_posix::Errno>;
27941pub type BaseSocketSetReusePortResult = Result<(), fidl_fuchsia_posix::Errno>;
27942pub type BaseSocketGetReusePortResult = Result<bool, fidl_fuchsia_posix::Errno>;
27943pub type BaseSocketGetAcceptConnResult = Result<bool, fidl_fuchsia_posix::Errno>;
27944pub type BaseSocketSetBindToDeviceResult = Result<(), fidl_fuchsia_posix::Errno>;
27945pub type BaseSocketGetBindToDeviceResult = Result<String, fidl_fuchsia_posix::Errno>;
27946pub type BaseSocketSetBindToInterfaceIndexResult = Result<(), fidl_fuchsia_posix::Errno>;
27947pub type BaseSocketGetBindToInterfaceIndexResult = Result<u64, fidl_fuchsia_posix::Errno>;
27948pub type BaseSocketSetTimestampResult = Result<(), fidl_fuchsia_posix::Errno>;
27949pub type BaseSocketGetTimestampResult = Result<TimestampOption, fidl_fuchsia_posix::Errno>;
27950pub type BaseSocketSetMarkResult = Result<(), fidl_fuchsia_posix::Errno>;
27951pub type BaseSocketGetMarkResult = Result<OptionalUint32, fidl_fuchsia_posix::Errno>;
27952pub type BaseSocketGetCookieResult = Result<u64, fidl_fuchsia_posix::Errno>;
27953
27954pub trait BaseSocketProxyInterface: Send + Sync {
27955    fn r#clone(
27956        &self,
27957        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
27958    ) -> Result<(), fidl::Error>;
27959    type CloseResponseFut: std::future::Future<
27960            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
27961        > + Send;
27962    fn r#close(&self) -> Self::CloseResponseFut;
27963    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
27964    fn r#query(&self) -> Self::QueryResponseFut;
27965    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
27966        + Send;
27967    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
27968    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
27969        + Send;
27970    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
27971    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
27972        + Send;
27973    fn r#get_error(&self) -> Self::GetErrorResponseFut;
27974    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
27975        + Send;
27976    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
27977    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
27978        + Send;
27979    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
27980    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
27981        + Send;
27982    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
27983    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
27984        + Send;
27985    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
27986    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
27987        + Send;
27988    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
27989    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
27990        + Send;
27991    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
27992    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
27993        + Send;
27994    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
27995    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
27996        + Send;
27997    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
27998    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
27999        + Send;
28000    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
28001    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
28002        + Send;
28003    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
28004    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
28005        + Send;
28006    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
28007    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
28008        + Send;
28009    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
28010    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
28011        + Send;
28012    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
28013    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
28014        + Send;
28015    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
28016    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
28017        + Send;
28018    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
28019    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
28020        + Send;
28021    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
28022    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
28023        + Send;
28024    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
28025    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
28026        + Send;
28027    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
28028    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
28029        + Send;
28030    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
28031    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
28032        + Send;
28033    fn r#set_bind_to_interface_index(&self, value: u64)
28034    -> Self::SetBindToInterfaceIndexResponseFut;
28035    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
28036        + Send;
28037    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
28038    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
28039        + Send;
28040    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
28041    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
28042        + Send;
28043    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
28044    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
28045        + Send;
28046    fn r#set_mark(
28047        &self,
28048        domain: fidl_fuchsia_net::MarkDomain,
28049        mark: &OptionalUint32,
28050    ) -> Self::SetMarkResponseFut;
28051    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
28052        + Send;
28053    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
28054    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
28055        + Send;
28056    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
28057}
28058#[derive(Debug)]
28059#[cfg(target_os = "fuchsia")]
28060pub struct BaseSocketSynchronousProxy {
28061    client: fidl::client::sync::Client,
28062}
28063
28064#[cfg(target_os = "fuchsia")]
28065impl fidl::endpoints::SynchronousProxy for BaseSocketSynchronousProxy {
28066    type Proxy = BaseSocketProxy;
28067    type Protocol = BaseSocketMarker;
28068
28069    fn from_channel(inner: fidl::Channel) -> Self {
28070        Self::new(inner)
28071    }
28072
28073    fn into_channel(self) -> fidl::Channel {
28074        self.client.into_channel()
28075    }
28076
28077    fn as_channel(&self) -> &fidl::Channel {
28078        self.client.as_channel()
28079    }
28080}
28081
28082#[cfg(target_os = "fuchsia")]
28083impl BaseSocketSynchronousProxy {
28084    pub fn new(channel: fidl::Channel) -> Self {
28085        let protocol_name = <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
28086        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
28087    }
28088
28089    pub fn into_channel(self) -> fidl::Channel {
28090        self.client.into_channel()
28091    }
28092
28093    /// Waits until an event arrives and returns it. It is safe for other
28094    /// threads to make concurrent requests while waiting for an event.
28095    pub fn wait_for_event(
28096        &self,
28097        deadline: zx::MonotonicInstant,
28098    ) -> Result<BaseSocketEvent, fidl::Error> {
28099        BaseSocketEvent::decode(self.client.wait_for_event(deadline)?)
28100    }
28101
28102    pub fn r#clone(
28103        &self,
28104        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
28105    ) -> Result<(), fidl::Error> {
28106        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
28107            (request,),
28108            0x20d8a7aba2168a79,
28109            fidl::encoding::DynamicFlags::empty(),
28110        )
28111    }
28112
28113    /// Terminates the connection.
28114    ///
28115    /// After calling `Close`, the client must not send any other requests.
28116    ///
28117    /// Servers, after sending the status response, should close the connection
28118    /// regardless of status and without sending an epitaph.
28119    ///
28120    /// Closing the client end of the channel should be semantically equivalent
28121    /// to calling `Close` without knowing when the close has completed or its
28122    /// status.
28123    pub fn r#close(
28124        &self,
28125        ___deadline: zx::MonotonicInstant,
28126    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
28127        let _response = self.client.send_query::<
28128            fidl::encoding::EmptyPayload,
28129            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
28130        >(
28131            (),
28132            0x5ac5d459ad7f657e,
28133            fidl::encoding::DynamicFlags::empty(),
28134            ___deadline,
28135        )?;
28136        Ok(_response.map(|x| x))
28137    }
28138
28139    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
28140        let _response = self.client.send_query::<
28141            fidl::encoding::EmptyPayload,
28142            fidl_fuchsia_unknown::QueryableQueryResponse,
28143        >(
28144            (),
28145            0x2658edee9decfc06,
28146            fidl::encoding::DynamicFlags::empty(),
28147            ___deadline,
28148        )?;
28149        Ok(_response.protocol)
28150    }
28151
28152    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
28153    pub fn r#set_reuse_address(
28154        &self,
28155        mut value: bool,
28156        ___deadline: zx::MonotonicInstant,
28157    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
28158        let _response =
28159            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
28160                fidl::encoding::EmptyStruct,
28161                fidl_fuchsia_posix::Errno,
28162            >>(
28163                (value,),
28164                0x1fd74ee8b9a4a876,
28165                fidl::encoding::DynamicFlags::empty(),
28166                ___deadline,
28167            )?;
28168        Ok(_response.map(|x| x))
28169    }
28170
28171    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
28172    pub fn r#get_reuse_address(
28173        &self,
28174        ___deadline: zx::MonotonicInstant,
28175    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
28176        let _response = self
28177            .client
28178            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28179                BaseSocketGetReuseAddressResponse,
28180                fidl_fuchsia_posix::Errno,
28181            >>(
28182                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
28183            )?;
28184        Ok(_response.map(|x| x.value))
28185    }
28186
28187    /// Get `SOL_SOCKET` -> `SO_ERROR`.
28188    /// Returns the last error if there is an error set on the socket.
28189    pub fn r#get_error(
28190        &self,
28191        ___deadline: zx::MonotonicInstant,
28192    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
28193        let _response =
28194            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28195                fidl::encoding::EmptyStruct,
28196                fidl_fuchsia_posix::Errno,
28197            >>(
28198                (),
28199                0x5aad39b33e5f6ebb,
28200                fidl::encoding::DynamicFlags::empty(),
28201                ___deadline,
28202            )?;
28203        Ok(_response.map(|x| x))
28204    }
28205
28206    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
28207    pub fn r#set_broadcast(
28208        &self,
28209        mut value: bool,
28210        ___deadline: zx::MonotonicInstant,
28211    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
28212        let _response =
28213            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
28214                fidl::encoding::EmptyStruct,
28215                fidl_fuchsia_posix::Errno,
28216            >>(
28217                (value,),
28218                0x6023e081ce3cd947,
28219                fidl::encoding::DynamicFlags::empty(),
28220                ___deadline,
28221            )?;
28222        Ok(_response.map(|x| x))
28223    }
28224
28225    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
28226    pub fn r#get_broadcast(
28227        &self,
28228        ___deadline: zx::MonotonicInstant,
28229    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
28230        let _response =
28231            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28232                BaseSocketGetBroadcastResponse,
28233                fidl_fuchsia_posix::Errno,
28234            >>(
28235                (),
28236                0x68796fc556f9780d,
28237                fidl::encoding::DynamicFlags::empty(),
28238                ___deadline,
28239            )?;
28240        Ok(_response.map(|x| x.value))
28241    }
28242
28243    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
28244    pub fn r#set_send_buffer(
28245        &self,
28246        mut value_bytes: u64,
28247        ___deadline: zx::MonotonicInstant,
28248    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
28249        let _response =
28250            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
28251                fidl::encoding::EmptyStruct,
28252                fidl_fuchsia_posix::Errno,
28253            >>(
28254                (value_bytes,),
28255                0x756eac32d73a7a70,
28256                fidl::encoding::DynamicFlags::empty(),
28257                ___deadline,
28258            )?;
28259        Ok(_response.map(|x| x))
28260    }
28261
28262    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
28263    pub fn r#get_send_buffer(
28264        &self,
28265        ___deadline: zx::MonotonicInstant,
28266    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
28267        let _response = self
28268            .client
28269            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28270                BaseSocketGetSendBufferResponse,
28271                fidl_fuchsia_posix::Errno,
28272            >>(
28273                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
28274            )?;
28275        Ok(_response.map(|x| x.value_bytes))
28276    }
28277
28278    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
28279    pub fn r#set_receive_buffer(
28280        &self,
28281        mut value_bytes: u64,
28282        ___deadline: zx::MonotonicInstant,
28283    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
28284        let _response =
28285            self.client
28286                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
28287                    fidl::encoding::EmptyStruct,
28288                    fidl_fuchsia_posix::Errno,
28289                >>(
28290                    (value_bytes,),
28291                    0x6b0cf2f1919c7001,
28292                    fidl::encoding::DynamicFlags::empty(),
28293                    ___deadline,
28294                )?;
28295        Ok(_response.map(|x| x))
28296    }
28297
28298    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
28299    pub fn r#get_receive_buffer(
28300        &self,
28301        ___deadline: zx::MonotonicInstant,
28302    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
28303        let _response = self
28304            .client
28305            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28306                BaseSocketGetReceiveBufferResponse,
28307                fidl_fuchsia_posix::Errno,
28308            >>(
28309                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
28310            )?;
28311        Ok(_response.map(|x| x.value_bytes))
28312    }
28313
28314    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
28315    pub fn r#set_keep_alive(
28316        &self,
28317        mut value: bool,
28318        ___deadline: zx::MonotonicInstant,
28319    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
28320        let _response =
28321            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
28322                fidl::encoding::EmptyStruct,
28323                fidl_fuchsia_posix::Errno,
28324            >>(
28325                (value,),
28326                0x572df8f0b920d2c7,
28327                fidl::encoding::DynamicFlags::empty(),
28328                ___deadline,
28329            )?;
28330        Ok(_response.map(|x| x))
28331    }
28332
28333    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
28334    pub fn r#get_keep_alive(
28335        &self,
28336        ___deadline: zx::MonotonicInstant,
28337    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
28338        let _response =
28339            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28340                BaseSocketGetKeepAliveResponse,
28341                fidl_fuchsia_posix::Errno,
28342            >>(
28343                (),
28344                0x2dd29d3215f2c9d2,
28345                fidl::encoding::DynamicFlags::empty(),
28346                ___deadline,
28347            )?;
28348        Ok(_response.map(|x| x.value))
28349    }
28350
28351    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
28352    pub fn r#set_out_of_band_inline(
28353        &self,
28354        mut value: bool,
28355        ___deadline: zx::MonotonicInstant,
28356    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
28357        let _response =
28358            self.client
28359                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
28360                    fidl::encoding::EmptyStruct,
28361                    fidl_fuchsia_posix::Errno,
28362                >>(
28363                    (value,),
28364                    0x3ecb49968bee439,
28365                    fidl::encoding::DynamicFlags::empty(),
28366                    ___deadline,
28367                )?;
28368        Ok(_response.map(|x| x))
28369    }
28370
28371    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
28372    pub fn r#get_out_of_band_inline(
28373        &self,
28374        ___deadline: zx::MonotonicInstant,
28375    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
28376        let _response = self
28377            .client
28378            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28379                BaseSocketGetOutOfBandInlineResponse,
28380                fidl_fuchsia_posix::Errno,
28381            >>(
28382                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
28383            )?;
28384        Ok(_response.map(|x| x.value))
28385    }
28386
28387    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
28388    pub fn r#set_no_check(
28389        &self,
28390        mut value: bool,
28391        ___deadline: zx::MonotonicInstant,
28392    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
28393        let _response =
28394            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
28395                fidl::encoding::EmptyStruct,
28396                fidl_fuchsia_posix::Errno,
28397            >>(
28398                (value,),
28399                0x6bbf00c53a4c78c2,
28400                fidl::encoding::DynamicFlags::empty(),
28401                ___deadline,
28402            )?;
28403        Ok(_response.map(|x| x))
28404    }
28405
28406    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
28407    pub fn r#get_no_check(
28408        &self,
28409        ___deadline: zx::MonotonicInstant,
28410    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
28411        let _response =
28412            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28413                BaseSocketGetNoCheckResponse,
28414                fidl_fuchsia_posix::Errno,
28415            >>(
28416                (),
28417                0x2cd4249286417694,
28418                fidl::encoding::DynamicFlags::empty(),
28419                ___deadline,
28420            )?;
28421        Ok(_response.map(|x| x.value))
28422    }
28423
28424    /// Set `SOL_SOCKET` -> `SO_LINGER`.
28425    pub fn r#set_linger(
28426        &self,
28427        mut linger: bool,
28428        mut length_secs: u32,
28429        ___deadline: zx::MonotonicInstant,
28430    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
28431        let _response =
28432            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
28433                fidl::encoding::EmptyStruct,
28434                fidl_fuchsia_posix::Errno,
28435            >>(
28436                (linger, length_secs),
28437                0x45386351246e998e,
28438                fidl::encoding::DynamicFlags::empty(),
28439                ___deadline,
28440            )?;
28441        Ok(_response.map(|x| x))
28442    }
28443
28444    /// Get `SOL_SOCKET` -> `SO_LINGER`.
28445    pub fn r#get_linger(
28446        &self,
28447        ___deadline: zx::MonotonicInstant,
28448    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
28449        let _response =
28450            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28451                BaseSocketGetLingerResponse,
28452                fidl_fuchsia_posix::Errno,
28453            >>(
28454                (),
28455                0x48eb20fc5ccb0e45,
28456                fidl::encoding::DynamicFlags::empty(),
28457                ___deadline,
28458            )?;
28459        Ok(_response.map(|x| (x.linger, x.length_secs)))
28460    }
28461
28462    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
28463    pub fn r#set_reuse_port(
28464        &self,
28465        mut value: bool,
28466        ___deadline: zx::MonotonicInstant,
28467    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
28468        let _response =
28469            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
28470                fidl::encoding::EmptyStruct,
28471                fidl_fuchsia_posix::Errno,
28472            >>(
28473                (value,),
28474                0x24dd3e5cb36d9ccb,
28475                fidl::encoding::DynamicFlags::empty(),
28476                ___deadline,
28477            )?;
28478        Ok(_response.map(|x| x))
28479    }
28480
28481    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
28482    pub fn r#get_reuse_port(
28483        &self,
28484        ___deadline: zx::MonotonicInstant,
28485    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
28486        let _response =
28487            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28488                BaseSocketGetReusePortResponse,
28489                fidl_fuchsia_posix::Errno,
28490            >>(
28491                (),
28492                0x7a112c1ab54ff828,
28493                fidl::encoding::DynamicFlags::empty(),
28494                ___deadline,
28495            )?;
28496        Ok(_response.map(|x| x.value))
28497    }
28498
28499    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
28500    pub fn r#get_accept_conn(
28501        &self,
28502        ___deadline: zx::MonotonicInstant,
28503    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
28504        let _response = self
28505            .client
28506            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28507                BaseSocketGetAcceptConnResponse,
28508                fidl_fuchsia_posix::Errno,
28509            >>(
28510                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
28511            )?;
28512        Ok(_response.map(|x| x.value))
28513    }
28514
28515    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
28516    pub fn r#set_bind_to_device(
28517        &self,
28518        mut value: &str,
28519        ___deadline: zx::MonotonicInstant,
28520    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
28521        let _response =
28522            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
28523                fidl::encoding::EmptyStruct,
28524                fidl_fuchsia_posix::Errno,
28525            >>(
28526                (value,),
28527                0x2118b483f28aafc4,
28528                fidl::encoding::DynamicFlags::empty(),
28529                ___deadline,
28530            )?;
28531        Ok(_response.map(|x| x))
28532    }
28533
28534    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
28535    pub fn r#get_bind_to_device(
28536        &self,
28537        ___deadline: zx::MonotonicInstant,
28538    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
28539        let _response = self
28540            .client
28541            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28542                BaseSocketGetBindToDeviceResponse,
28543                fidl_fuchsia_posix::Errno,
28544            >>(
28545                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
28546            )?;
28547        Ok(_response.map(|x| x.value))
28548    }
28549
28550    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
28551    /// If `value` is 0, this clears the bound interface.
28552    pub fn r#set_bind_to_interface_index(
28553        &self,
28554        mut value: u64,
28555        ___deadline: zx::MonotonicInstant,
28556    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
28557        let _response =
28558            self.client
28559                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
28560                    fidl::encoding::EmptyStruct,
28561                    fidl_fuchsia_posix::Errno,
28562                >>(
28563                    (value,),
28564                    0x6e387a0def00821,
28565                    fidl::encoding::DynamicFlags::empty(),
28566                    ___deadline,
28567                )?;
28568        Ok(_response.map(|x| x))
28569    }
28570
28571    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
28572    pub fn r#get_bind_to_interface_index(
28573        &self,
28574        ___deadline: zx::MonotonicInstant,
28575    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
28576        let _response = self
28577            .client
28578            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28579                BaseSocketGetBindToInterfaceIndexResponse,
28580                fidl_fuchsia_posix::Errno,
28581            >>(
28582                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
28583            )?;
28584        Ok(_response.map(|x| x.value))
28585    }
28586
28587    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
28588    pub fn r#set_timestamp(
28589        &self,
28590        mut value: TimestampOption,
28591        ___deadline: zx::MonotonicInstant,
28592    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
28593        let _response =
28594            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
28595                fidl::encoding::EmptyStruct,
28596                fidl_fuchsia_posix::Errno,
28597            >>(
28598                (value,),
28599                0x285d6516c263d839,
28600                fidl::encoding::DynamicFlags::empty(),
28601                ___deadline,
28602            )?;
28603        Ok(_response.map(|x| x))
28604    }
28605
28606    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
28607    pub fn r#get_timestamp(
28608        &self,
28609        ___deadline: zx::MonotonicInstant,
28610    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
28611        let _response =
28612            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28613                BaseSocketGetTimestampResponse,
28614                fidl_fuchsia_posix::Errno,
28615            >>(
28616                (),
28617                0x49f2fffbbcc2bd27,
28618                fidl::encoding::DynamicFlags::empty(),
28619                ___deadline,
28620            )?;
28621        Ok(_response.map(|x| x.value))
28622    }
28623
28624    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
28625    /// unlike the standard SO_MARK, this API has multiple mark domains and each
28626    /// mark can be set independently in each domain.
28627    pub fn r#set_mark(
28628        &self,
28629        mut domain: fidl_fuchsia_net::MarkDomain,
28630        mut mark: &OptionalUint32,
28631        ___deadline: zx::MonotonicInstant,
28632    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
28633        let _response =
28634            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
28635                fidl::encoding::EmptyStruct,
28636                fidl_fuchsia_posix::Errno,
28637            >>(
28638                (domain, mark),
28639                0x6ead6de09f653236,
28640                fidl::encoding::DynamicFlags::empty(),
28641                ___deadline,
28642            )?;
28643        Ok(_response.map(|x| x))
28644    }
28645
28646    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
28647    /// unlike the standard SO_MARK, this API has multiple mark domains and each
28648    /// mark can be retrieved independently in each domain.
28649    pub fn r#get_mark(
28650        &self,
28651        mut domain: fidl_fuchsia_net::MarkDomain,
28652        ___deadline: zx::MonotonicInstant,
28653    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
28654        let _response =
28655            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
28656                BaseSocketGetMarkResponse,
28657                fidl_fuchsia_posix::Errno,
28658            >>(
28659                (domain,),
28660                0x57a2752c61d93d47,
28661                fidl::encoding::DynamicFlags::empty(),
28662                ___deadline,
28663            )?;
28664        Ok(_response.map(|x| x.mark))
28665    }
28666
28667    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
28668    pub fn r#get_cookie(
28669        &self,
28670        ___deadline: zx::MonotonicInstant,
28671    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
28672        let _response =
28673            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28674                BaseSocketGetCookieResponse,
28675                fidl_fuchsia_posix::Errno,
28676            >>(
28677                (),
28678                0x2c2f47fd8f924e52,
28679                fidl::encoding::DynamicFlags::empty(),
28680                ___deadline,
28681            )?;
28682        Ok(_response.map(|x| x.value))
28683    }
28684}
28685
28686#[cfg(target_os = "fuchsia")]
28687impl From<BaseSocketSynchronousProxy> for zx::Handle {
28688    fn from(value: BaseSocketSynchronousProxy) -> Self {
28689        value.into_channel().into()
28690    }
28691}
28692
28693#[cfg(target_os = "fuchsia")]
28694impl From<fidl::Channel> for BaseSocketSynchronousProxy {
28695    fn from(value: fidl::Channel) -> Self {
28696        Self::new(value)
28697    }
28698}
28699
28700#[cfg(target_os = "fuchsia")]
28701impl fidl::endpoints::FromClient for BaseSocketSynchronousProxy {
28702    type Protocol = BaseSocketMarker;
28703
28704    fn from_client(value: fidl::endpoints::ClientEnd<BaseSocketMarker>) -> Self {
28705        Self::new(value.into_channel())
28706    }
28707}
28708
28709#[derive(Debug, Clone)]
28710pub struct BaseSocketProxy {
28711    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
28712}
28713
28714impl fidl::endpoints::Proxy for BaseSocketProxy {
28715    type Protocol = BaseSocketMarker;
28716
28717    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
28718        Self::new(inner)
28719    }
28720
28721    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
28722        self.client.into_channel().map_err(|client| Self { client })
28723    }
28724
28725    fn as_channel(&self) -> &::fidl::AsyncChannel {
28726        self.client.as_channel()
28727    }
28728}
28729
28730impl BaseSocketProxy {
28731    /// Create a new Proxy for fuchsia.posix.socket/BaseSocket.
28732    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
28733        let protocol_name = <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
28734        Self { client: fidl::client::Client::new(channel, protocol_name) }
28735    }
28736
28737    /// Get a Stream of events from the remote end of the protocol.
28738    ///
28739    /// # Panics
28740    ///
28741    /// Panics if the event stream was already taken.
28742    pub fn take_event_stream(&self) -> BaseSocketEventStream {
28743        BaseSocketEventStream { event_receiver: self.client.take_event_receiver() }
28744    }
28745
28746    pub fn r#clone(
28747        &self,
28748        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
28749    ) -> Result<(), fidl::Error> {
28750        BaseSocketProxyInterface::r#clone(self, request)
28751    }
28752
28753    /// Terminates the connection.
28754    ///
28755    /// After calling `Close`, the client must not send any other requests.
28756    ///
28757    /// Servers, after sending the status response, should close the connection
28758    /// regardless of status and without sending an epitaph.
28759    ///
28760    /// Closing the client end of the channel should be semantically equivalent
28761    /// to calling `Close` without knowing when the close has completed or its
28762    /// status.
28763    pub fn r#close(
28764        &self,
28765    ) -> fidl::client::QueryResponseFut<
28766        fidl_fuchsia_unknown::CloseableCloseResult,
28767        fidl::encoding::DefaultFuchsiaResourceDialect,
28768    > {
28769        BaseSocketProxyInterface::r#close(self)
28770    }
28771
28772    pub fn r#query(
28773        &self,
28774    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
28775    {
28776        BaseSocketProxyInterface::r#query(self)
28777    }
28778
28779    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
28780    pub fn r#set_reuse_address(
28781        &self,
28782        mut value: bool,
28783    ) -> fidl::client::QueryResponseFut<
28784        BaseSocketSetReuseAddressResult,
28785        fidl::encoding::DefaultFuchsiaResourceDialect,
28786    > {
28787        BaseSocketProxyInterface::r#set_reuse_address(self, value)
28788    }
28789
28790    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
28791    pub fn r#get_reuse_address(
28792        &self,
28793    ) -> fidl::client::QueryResponseFut<
28794        BaseSocketGetReuseAddressResult,
28795        fidl::encoding::DefaultFuchsiaResourceDialect,
28796    > {
28797        BaseSocketProxyInterface::r#get_reuse_address(self)
28798    }
28799
28800    /// Get `SOL_SOCKET` -> `SO_ERROR`.
28801    /// Returns the last error if there is an error set on the socket.
28802    pub fn r#get_error(
28803        &self,
28804    ) -> fidl::client::QueryResponseFut<
28805        BaseSocketGetErrorResult,
28806        fidl::encoding::DefaultFuchsiaResourceDialect,
28807    > {
28808        BaseSocketProxyInterface::r#get_error(self)
28809    }
28810
28811    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
28812    pub fn r#set_broadcast(
28813        &self,
28814        mut value: bool,
28815    ) -> fidl::client::QueryResponseFut<
28816        BaseSocketSetBroadcastResult,
28817        fidl::encoding::DefaultFuchsiaResourceDialect,
28818    > {
28819        BaseSocketProxyInterface::r#set_broadcast(self, value)
28820    }
28821
28822    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
28823    pub fn r#get_broadcast(
28824        &self,
28825    ) -> fidl::client::QueryResponseFut<
28826        BaseSocketGetBroadcastResult,
28827        fidl::encoding::DefaultFuchsiaResourceDialect,
28828    > {
28829        BaseSocketProxyInterface::r#get_broadcast(self)
28830    }
28831
28832    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
28833    pub fn r#set_send_buffer(
28834        &self,
28835        mut value_bytes: u64,
28836    ) -> fidl::client::QueryResponseFut<
28837        BaseSocketSetSendBufferResult,
28838        fidl::encoding::DefaultFuchsiaResourceDialect,
28839    > {
28840        BaseSocketProxyInterface::r#set_send_buffer(self, value_bytes)
28841    }
28842
28843    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
28844    pub fn r#get_send_buffer(
28845        &self,
28846    ) -> fidl::client::QueryResponseFut<
28847        BaseSocketGetSendBufferResult,
28848        fidl::encoding::DefaultFuchsiaResourceDialect,
28849    > {
28850        BaseSocketProxyInterface::r#get_send_buffer(self)
28851    }
28852
28853    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
28854    pub fn r#set_receive_buffer(
28855        &self,
28856        mut value_bytes: u64,
28857    ) -> fidl::client::QueryResponseFut<
28858        BaseSocketSetReceiveBufferResult,
28859        fidl::encoding::DefaultFuchsiaResourceDialect,
28860    > {
28861        BaseSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
28862    }
28863
28864    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
28865    pub fn r#get_receive_buffer(
28866        &self,
28867    ) -> fidl::client::QueryResponseFut<
28868        BaseSocketGetReceiveBufferResult,
28869        fidl::encoding::DefaultFuchsiaResourceDialect,
28870    > {
28871        BaseSocketProxyInterface::r#get_receive_buffer(self)
28872    }
28873
28874    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
28875    pub fn r#set_keep_alive(
28876        &self,
28877        mut value: bool,
28878    ) -> fidl::client::QueryResponseFut<
28879        BaseSocketSetKeepAliveResult,
28880        fidl::encoding::DefaultFuchsiaResourceDialect,
28881    > {
28882        BaseSocketProxyInterface::r#set_keep_alive(self, value)
28883    }
28884
28885    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
28886    pub fn r#get_keep_alive(
28887        &self,
28888    ) -> fidl::client::QueryResponseFut<
28889        BaseSocketGetKeepAliveResult,
28890        fidl::encoding::DefaultFuchsiaResourceDialect,
28891    > {
28892        BaseSocketProxyInterface::r#get_keep_alive(self)
28893    }
28894
28895    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
28896    pub fn r#set_out_of_band_inline(
28897        &self,
28898        mut value: bool,
28899    ) -> fidl::client::QueryResponseFut<
28900        BaseSocketSetOutOfBandInlineResult,
28901        fidl::encoding::DefaultFuchsiaResourceDialect,
28902    > {
28903        BaseSocketProxyInterface::r#set_out_of_band_inline(self, value)
28904    }
28905
28906    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
28907    pub fn r#get_out_of_band_inline(
28908        &self,
28909    ) -> fidl::client::QueryResponseFut<
28910        BaseSocketGetOutOfBandInlineResult,
28911        fidl::encoding::DefaultFuchsiaResourceDialect,
28912    > {
28913        BaseSocketProxyInterface::r#get_out_of_band_inline(self)
28914    }
28915
28916    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
28917    pub fn r#set_no_check(
28918        &self,
28919        mut value: bool,
28920    ) -> fidl::client::QueryResponseFut<
28921        BaseSocketSetNoCheckResult,
28922        fidl::encoding::DefaultFuchsiaResourceDialect,
28923    > {
28924        BaseSocketProxyInterface::r#set_no_check(self, value)
28925    }
28926
28927    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
28928    pub fn r#get_no_check(
28929        &self,
28930    ) -> fidl::client::QueryResponseFut<
28931        BaseSocketGetNoCheckResult,
28932        fidl::encoding::DefaultFuchsiaResourceDialect,
28933    > {
28934        BaseSocketProxyInterface::r#get_no_check(self)
28935    }
28936
28937    /// Set `SOL_SOCKET` -> `SO_LINGER`.
28938    pub fn r#set_linger(
28939        &self,
28940        mut linger: bool,
28941        mut length_secs: u32,
28942    ) -> fidl::client::QueryResponseFut<
28943        BaseSocketSetLingerResult,
28944        fidl::encoding::DefaultFuchsiaResourceDialect,
28945    > {
28946        BaseSocketProxyInterface::r#set_linger(self, linger, length_secs)
28947    }
28948
28949    /// Get `SOL_SOCKET` -> `SO_LINGER`.
28950    pub fn r#get_linger(
28951        &self,
28952    ) -> fidl::client::QueryResponseFut<
28953        BaseSocketGetLingerResult,
28954        fidl::encoding::DefaultFuchsiaResourceDialect,
28955    > {
28956        BaseSocketProxyInterface::r#get_linger(self)
28957    }
28958
28959    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
28960    pub fn r#set_reuse_port(
28961        &self,
28962        mut value: bool,
28963    ) -> fidl::client::QueryResponseFut<
28964        BaseSocketSetReusePortResult,
28965        fidl::encoding::DefaultFuchsiaResourceDialect,
28966    > {
28967        BaseSocketProxyInterface::r#set_reuse_port(self, value)
28968    }
28969
28970    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
28971    pub fn r#get_reuse_port(
28972        &self,
28973    ) -> fidl::client::QueryResponseFut<
28974        BaseSocketGetReusePortResult,
28975        fidl::encoding::DefaultFuchsiaResourceDialect,
28976    > {
28977        BaseSocketProxyInterface::r#get_reuse_port(self)
28978    }
28979
28980    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
28981    pub fn r#get_accept_conn(
28982        &self,
28983    ) -> fidl::client::QueryResponseFut<
28984        BaseSocketGetAcceptConnResult,
28985        fidl::encoding::DefaultFuchsiaResourceDialect,
28986    > {
28987        BaseSocketProxyInterface::r#get_accept_conn(self)
28988    }
28989
28990    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
28991    pub fn r#set_bind_to_device(
28992        &self,
28993        mut value: &str,
28994    ) -> fidl::client::QueryResponseFut<
28995        BaseSocketSetBindToDeviceResult,
28996        fidl::encoding::DefaultFuchsiaResourceDialect,
28997    > {
28998        BaseSocketProxyInterface::r#set_bind_to_device(self, value)
28999    }
29000
29001    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
29002    pub fn r#get_bind_to_device(
29003        &self,
29004    ) -> fidl::client::QueryResponseFut<
29005        BaseSocketGetBindToDeviceResult,
29006        fidl::encoding::DefaultFuchsiaResourceDialect,
29007    > {
29008        BaseSocketProxyInterface::r#get_bind_to_device(self)
29009    }
29010
29011    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
29012    /// If `value` is 0, this clears the bound interface.
29013    pub fn r#set_bind_to_interface_index(
29014        &self,
29015        mut value: u64,
29016    ) -> fidl::client::QueryResponseFut<
29017        BaseSocketSetBindToInterfaceIndexResult,
29018        fidl::encoding::DefaultFuchsiaResourceDialect,
29019    > {
29020        BaseSocketProxyInterface::r#set_bind_to_interface_index(self, value)
29021    }
29022
29023    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
29024    pub fn r#get_bind_to_interface_index(
29025        &self,
29026    ) -> fidl::client::QueryResponseFut<
29027        BaseSocketGetBindToInterfaceIndexResult,
29028        fidl::encoding::DefaultFuchsiaResourceDialect,
29029    > {
29030        BaseSocketProxyInterface::r#get_bind_to_interface_index(self)
29031    }
29032
29033    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
29034    pub fn r#set_timestamp(
29035        &self,
29036        mut value: TimestampOption,
29037    ) -> fidl::client::QueryResponseFut<
29038        BaseSocketSetTimestampResult,
29039        fidl::encoding::DefaultFuchsiaResourceDialect,
29040    > {
29041        BaseSocketProxyInterface::r#set_timestamp(self, value)
29042    }
29043
29044    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
29045    pub fn r#get_timestamp(
29046        &self,
29047    ) -> fidl::client::QueryResponseFut<
29048        BaseSocketGetTimestampResult,
29049        fidl::encoding::DefaultFuchsiaResourceDialect,
29050    > {
29051        BaseSocketProxyInterface::r#get_timestamp(self)
29052    }
29053
29054    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
29055    /// unlike the standard SO_MARK, this API has multiple mark domains and each
29056    /// mark can be set independently in each domain.
29057    pub fn r#set_mark(
29058        &self,
29059        mut domain: fidl_fuchsia_net::MarkDomain,
29060        mut mark: &OptionalUint32,
29061    ) -> fidl::client::QueryResponseFut<
29062        BaseSocketSetMarkResult,
29063        fidl::encoding::DefaultFuchsiaResourceDialect,
29064    > {
29065        BaseSocketProxyInterface::r#set_mark(self, domain, mark)
29066    }
29067
29068    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
29069    /// unlike the standard SO_MARK, this API has multiple mark domains and each
29070    /// mark can be retrieved independently in each domain.
29071    pub fn r#get_mark(
29072        &self,
29073        mut domain: fidl_fuchsia_net::MarkDomain,
29074    ) -> fidl::client::QueryResponseFut<
29075        BaseSocketGetMarkResult,
29076        fidl::encoding::DefaultFuchsiaResourceDialect,
29077    > {
29078        BaseSocketProxyInterface::r#get_mark(self, domain)
29079    }
29080
29081    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
29082    pub fn r#get_cookie(
29083        &self,
29084    ) -> fidl::client::QueryResponseFut<
29085        BaseSocketGetCookieResult,
29086        fidl::encoding::DefaultFuchsiaResourceDialect,
29087    > {
29088        BaseSocketProxyInterface::r#get_cookie(self)
29089    }
29090}
29091
29092impl BaseSocketProxyInterface for BaseSocketProxy {
29093    fn r#clone(
29094        &self,
29095        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
29096    ) -> Result<(), fidl::Error> {
29097        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
29098            (request,),
29099            0x20d8a7aba2168a79,
29100            fidl::encoding::DynamicFlags::empty(),
29101        )
29102    }
29103
29104    type CloseResponseFut = fidl::client::QueryResponseFut<
29105        fidl_fuchsia_unknown::CloseableCloseResult,
29106        fidl::encoding::DefaultFuchsiaResourceDialect,
29107    >;
29108    fn r#close(&self) -> Self::CloseResponseFut {
29109        fn _decode(
29110            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29111        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
29112            let _response = fidl::client::decode_transaction_body::<
29113                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
29114                fidl::encoding::DefaultFuchsiaResourceDialect,
29115                0x5ac5d459ad7f657e,
29116            >(_buf?)?;
29117            Ok(_response.map(|x| x))
29118        }
29119        self.client.send_query_and_decode::<
29120            fidl::encoding::EmptyPayload,
29121            fidl_fuchsia_unknown::CloseableCloseResult,
29122        >(
29123            (),
29124            0x5ac5d459ad7f657e,
29125            fidl::encoding::DynamicFlags::empty(),
29126            _decode,
29127        )
29128    }
29129
29130    type QueryResponseFut =
29131        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
29132    fn r#query(&self) -> Self::QueryResponseFut {
29133        fn _decode(
29134            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29135        ) -> Result<Vec<u8>, fidl::Error> {
29136            let _response = fidl::client::decode_transaction_body::<
29137                fidl_fuchsia_unknown::QueryableQueryResponse,
29138                fidl::encoding::DefaultFuchsiaResourceDialect,
29139                0x2658edee9decfc06,
29140            >(_buf?)?;
29141            Ok(_response.protocol)
29142        }
29143        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
29144            (),
29145            0x2658edee9decfc06,
29146            fidl::encoding::DynamicFlags::empty(),
29147            _decode,
29148        )
29149    }
29150
29151    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
29152        BaseSocketSetReuseAddressResult,
29153        fidl::encoding::DefaultFuchsiaResourceDialect,
29154    >;
29155    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
29156        fn _decode(
29157            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29158        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
29159            let _response = fidl::client::decode_transaction_body::<
29160                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29161                fidl::encoding::DefaultFuchsiaResourceDialect,
29162                0x1fd74ee8b9a4a876,
29163            >(_buf?)?;
29164            Ok(_response.map(|x| x))
29165        }
29166        self.client.send_query_and_decode::<
29167            BaseSocketSetReuseAddressRequest,
29168            BaseSocketSetReuseAddressResult,
29169        >(
29170            (value,),
29171            0x1fd74ee8b9a4a876,
29172            fidl::encoding::DynamicFlags::empty(),
29173            _decode,
29174        )
29175    }
29176
29177    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
29178        BaseSocketGetReuseAddressResult,
29179        fidl::encoding::DefaultFuchsiaResourceDialect,
29180    >;
29181    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
29182        fn _decode(
29183            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29184        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
29185            let _response = fidl::client::decode_transaction_body::<
29186                fidl::encoding::ResultType<
29187                    BaseSocketGetReuseAddressResponse,
29188                    fidl_fuchsia_posix::Errno,
29189                >,
29190                fidl::encoding::DefaultFuchsiaResourceDialect,
29191                0x67b7206b8d1bc0a5,
29192            >(_buf?)?;
29193            Ok(_response.map(|x| x.value))
29194        }
29195        self.client
29196            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
29197                (),
29198                0x67b7206b8d1bc0a5,
29199                fidl::encoding::DynamicFlags::empty(),
29200                _decode,
29201            )
29202    }
29203
29204    type GetErrorResponseFut = fidl::client::QueryResponseFut<
29205        BaseSocketGetErrorResult,
29206        fidl::encoding::DefaultFuchsiaResourceDialect,
29207    >;
29208    fn r#get_error(&self) -> Self::GetErrorResponseFut {
29209        fn _decode(
29210            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29211        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
29212            let _response = fidl::client::decode_transaction_body::<
29213                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29214                fidl::encoding::DefaultFuchsiaResourceDialect,
29215                0x5aad39b33e5f6ebb,
29216            >(_buf?)?;
29217            Ok(_response.map(|x| x))
29218        }
29219        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
29220            (),
29221            0x5aad39b33e5f6ebb,
29222            fidl::encoding::DynamicFlags::empty(),
29223            _decode,
29224        )
29225    }
29226
29227    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
29228        BaseSocketSetBroadcastResult,
29229        fidl::encoding::DefaultFuchsiaResourceDialect,
29230    >;
29231    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
29232        fn _decode(
29233            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29234        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
29235            let _response = fidl::client::decode_transaction_body::<
29236                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29237                fidl::encoding::DefaultFuchsiaResourceDialect,
29238                0x6023e081ce3cd947,
29239            >(_buf?)?;
29240            Ok(_response.map(|x| x))
29241        }
29242        self.client
29243            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
29244                (value,),
29245                0x6023e081ce3cd947,
29246                fidl::encoding::DynamicFlags::empty(),
29247                _decode,
29248            )
29249    }
29250
29251    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
29252        BaseSocketGetBroadcastResult,
29253        fidl::encoding::DefaultFuchsiaResourceDialect,
29254    >;
29255    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
29256        fn _decode(
29257            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29258        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
29259            let _response = fidl::client::decode_transaction_body::<
29260                fidl::encoding::ResultType<
29261                    BaseSocketGetBroadcastResponse,
29262                    fidl_fuchsia_posix::Errno,
29263                >,
29264                fidl::encoding::DefaultFuchsiaResourceDialect,
29265                0x68796fc556f9780d,
29266            >(_buf?)?;
29267            Ok(_response.map(|x| x.value))
29268        }
29269        self.client
29270            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
29271                (),
29272                0x68796fc556f9780d,
29273                fidl::encoding::DynamicFlags::empty(),
29274                _decode,
29275            )
29276    }
29277
29278    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
29279        BaseSocketSetSendBufferResult,
29280        fidl::encoding::DefaultFuchsiaResourceDialect,
29281    >;
29282    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
29283        fn _decode(
29284            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29285        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
29286            let _response = fidl::client::decode_transaction_body::<
29287                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29288                fidl::encoding::DefaultFuchsiaResourceDialect,
29289                0x756eac32d73a7a70,
29290            >(_buf?)?;
29291            Ok(_response.map(|x| x))
29292        }
29293        self.client
29294            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
29295                (value_bytes,),
29296                0x756eac32d73a7a70,
29297                fidl::encoding::DynamicFlags::empty(),
29298                _decode,
29299            )
29300    }
29301
29302    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
29303        BaseSocketGetSendBufferResult,
29304        fidl::encoding::DefaultFuchsiaResourceDialect,
29305    >;
29306    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
29307        fn _decode(
29308            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29309        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
29310            let _response = fidl::client::decode_transaction_body::<
29311                fidl::encoding::ResultType<
29312                    BaseSocketGetSendBufferResponse,
29313                    fidl_fuchsia_posix::Errno,
29314                >,
29315                fidl::encoding::DefaultFuchsiaResourceDialect,
29316                0x78a52fd9c7b2410b,
29317            >(_buf?)?;
29318            Ok(_response.map(|x| x.value_bytes))
29319        }
29320        self.client
29321            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
29322                (),
29323                0x78a52fd9c7b2410b,
29324                fidl::encoding::DynamicFlags::empty(),
29325                _decode,
29326            )
29327    }
29328
29329    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
29330        BaseSocketSetReceiveBufferResult,
29331        fidl::encoding::DefaultFuchsiaResourceDialect,
29332    >;
29333    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
29334        fn _decode(
29335            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29336        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
29337            let _response = fidl::client::decode_transaction_body::<
29338                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29339                fidl::encoding::DefaultFuchsiaResourceDialect,
29340                0x6b0cf2f1919c7001,
29341            >(_buf?)?;
29342            Ok(_response.map(|x| x))
29343        }
29344        self.client.send_query_and_decode::<
29345            BaseSocketSetReceiveBufferRequest,
29346            BaseSocketSetReceiveBufferResult,
29347        >(
29348            (value_bytes,),
29349            0x6b0cf2f1919c7001,
29350            fidl::encoding::DynamicFlags::empty(),
29351            _decode,
29352        )
29353    }
29354
29355    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
29356        BaseSocketGetReceiveBufferResult,
29357        fidl::encoding::DefaultFuchsiaResourceDialect,
29358    >;
29359    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
29360        fn _decode(
29361            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29362        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
29363            let _response = fidl::client::decode_transaction_body::<
29364                fidl::encoding::ResultType<
29365                    BaseSocketGetReceiveBufferResponse,
29366                    fidl_fuchsia_posix::Errno,
29367                >,
29368                fidl::encoding::DefaultFuchsiaResourceDialect,
29369                0x14c1a4b64f709e5c,
29370            >(_buf?)?;
29371            Ok(_response.map(|x| x.value_bytes))
29372        }
29373        self.client.send_query_and_decode::<
29374            fidl::encoding::EmptyPayload,
29375            BaseSocketGetReceiveBufferResult,
29376        >(
29377            (),
29378            0x14c1a4b64f709e5c,
29379            fidl::encoding::DynamicFlags::empty(),
29380            _decode,
29381        )
29382    }
29383
29384    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
29385        BaseSocketSetKeepAliveResult,
29386        fidl::encoding::DefaultFuchsiaResourceDialect,
29387    >;
29388    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
29389        fn _decode(
29390            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29391        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
29392            let _response = fidl::client::decode_transaction_body::<
29393                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29394                fidl::encoding::DefaultFuchsiaResourceDialect,
29395                0x572df8f0b920d2c7,
29396            >(_buf?)?;
29397            Ok(_response.map(|x| x))
29398        }
29399        self.client
29400            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
29401                (value,),
29402                0x572df8f0b920d2c7,
29403                fidl::encoding::DynamicFlags::empty(),
29404                _decode,
29405            )
29406    }
29407
29408    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
29409        BaseSocketGetKeepAliveResult,
29410        fidl::encoding::DefaultFuchsiaResourceDialect,
29411    >;
29412    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
29413        fn _decode(
29414            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29415        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
29416            let _response = fidl::client::decode_transaction_body::<
29417                fidl::encoding::ResultType<
29418                    BaseSocketGetKeepAliveResponse,
29419                    fidl_fuchsia_posix::Errno,
29420                >,
29421                fidl::encoding::DefaultFuchsiaResourceDialect,
29422                0x2dd29d3215f2c9d2,
29423            >(_buf?)?;
29424            Ok(_response.map(|x| x.value))
29425        }
29426        self.client
29427            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
29428                (),
29429                0x2dd29d3215f2c9d2,
29430                fidl::encoding::DynamicFlags::empty(),
29431                _decode,
29432            )
29433    }
29434
29435    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
29436        BaseSocketSetOutOfBandInlineResult,
29437        fidl::encoding::DefaultFuchsiaResourceDialect,
29438    >;
29439    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
29440        fn _decode(
29441            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29442        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
29443            let _response = fidl::client::decode_transaction_body::<
29444                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29445                fidl::encoding::DefaultFuchsiaResourceDialect,
29446                0x3ecb49968bee439,
29447            >(_buf?)?;
29448            Ok(_response.map(|x| x))
29449        }
29450        self.client.send_query_and_decode::<
29451            BaseSocketSetOutOfBandInlineRequest,
29452            BaseSocketSetOutOfBandInlineResult,
29453        >(
29454            (value,),
29455            0x3ecb49968bee439,
29456            fidl::encoding::DynamicFlags::empty(),
29457            _decode,
29458        )
29459    }
29460
29461    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
29462        BaseSocketGetOutOfBandInlineResult,
29463        fidl::encoding::DefaultFuchsiaResourceDialect,
29464    >;
29465    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
29466        fn _decode(
29467            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29468        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
29469            let _response = fidl::client::decode_transaction_body::<
29470                fidl::encoding::ResultType<
29471                    BaseSocketGetOutOfBandInlineResponse,
29472                    fidl_fuchsia_posix::Errno,
29473                >,
29474                fidl::encoding::DefaultFuchsiaResourceDialect,
29475                0x348c1ab3aeca1745,
29476            >(_buf?)?;
29477            Ok(_response.map(|x| x.value))
29478        }
29479        self.client.send_query_and_decode::<
29480            fidl::encoding::EmptyPayload,
29481            BaseSocketGetOutOfBandInlineResult,
29482        >(
29483            (),
29484            0x348c1ab3aeca1745,
29485            fidl::encoding::DynamicFlags::empty(),
29486            _decode,
29487        )
29488    }
29489
29490    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
29491        BaseSocketSetNoCheckResult,
29492        fidl::encoding::DefaultFuchsiaResourceDialect,
29493    >;
29494    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
29495        fn _decode(
29496            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29497        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
29498            let _response = fidl::client::decode_transaction_body::<
29499                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29500                fidl::encoding::DefaultFuchsiaResourceDialect,
29501                0x6bbf00c53a4c78c2,
29502            >(_buf?)?;
29503            Ok(_response.map(|x| x))
29504        }
29505        self.client
29506            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
29507                (value,),
29508                0x6bbf00c53a4c78c2,
29509                fidl::encoding::DynamicFlags::empty(),
29510                _decode,
29511            )
29512    }
29513
29514    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
29515        BaseSocketGetNoCheckResult,
29516        fidl::encoding::DefaultFuchsiaResourceDialect,
29517    >;
29518    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
29519        fn _decode(
29520            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29521        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
29522            let _response = fidl::client::decode_transaction_body::<
29523                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
29524                fidl::encoding::DefaultFuchsiaResourceDialect,
29525                0x2cd4249286417694,
29526            >(_buf?)?;
29527            Ok(_response.map(|x| x.value))
29528        }
29529        self.client
29530            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
29531                (),
29532                0x2cd4249286417694,
29533                fidl::encoding::DynamicFlags::empty(),
29534                _decode,
29535            )
29536    }
29537
29538    type SetLingerResponseFut = fidl::client::QueryResponseFut<
29539        BaseSocketSetLingerResult,
29540        fidl::encoding::DefaultFuchsiaResourceDialect,
29541    >;
29542    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
29543        fn _decode(
29544            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29545        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
29546            let _response = fidl::client::decode_transaction_body::<
29547                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29548                fidl::encoding::DefaultFuchsiaResourceDialect,
29549                0x45386351246e998e,
29550            >(_buf?)?;
29551            Ok(_response.map(|x| x))
29552        }
29553        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
29554            (linger, length_secs),
29555            0x45386351246e998e,
29556            fidl::encoding::DynamicFlags::empty(),
29557            _decode,
29558        )
29559    }
29560
29561    type GetLingerResponseFut = fidl::client::QueryResponseFut<
29562        BaseSocketGetLingerResult,
29563        fidl::encoding::DefaultFuchsiaResourceDialect,
29564    >;
29565    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
29566        fn _decode(
29567            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29568        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
29569            let _response = fidl::client::decode_transaction_body::<
29570                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
29571                fidl::encoding::DefaultFuchsiaResourceDialect,
29572                0x48eb20fc5ccb0e45,
29573            >(_buf?)?;
29574            Ok(_response.map(|x| (x.linger, x.length_secs)))
29575        }
29576        self.client
29577            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
29578                (),
29579                0x48eb20fc5ccb0e45,
29580                fidl::encoding::DynamicFlags::empty(),
29581                _decode,
29582            )
29583    }
29584
29585    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
29586        BaseSocketSetReusePortResult,
29587        fidl::encoding::DefaultFuchsiaResourceDialect,
29588    >;
29589    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
29590        fn _decode(
29591            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29592        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
29593            let _response = fidl::client::decode_transaction_body::<
29594                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29595                fidl::encoding::DefaultFuchsiaResourceDialect,
29596                0x24dd3e5cb36d9ccb,
29597            >(_buf?)?;
29598            Ok(_response.map(|x| x))
29599        }
29600        self.client
29601            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
29602                (value,),
29603                0x24dd3e5cb36d9ccb,
29604                fidl::encoding::DynamicFlags::empty(),
29605                _decode,
29606            )
29607    }
29608
29609    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
29610        BaseSocketGetReusePortResult,
29611        fidl::encoding::DefaultFuchsiaResourceDialect,
29612    >;
29613    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
29614        fn _decode(
29615            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29616        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
29617            let _response = fidl::client::decode_transaction_body::<
29618                fidl::encoding::ResultType<
29619                    BaseSocketGetReusePortResponse,
29620                    fidl_fuchsia_posix::Errno,
29621                >,
29622                fidl::encoding::DefaultFuchsiaResourceDialect,
29623                0x7a112c1ab54ff828,
29624            >(_buf?)?;
29625            Ok(_response.map(|x| x.value))
29626        }
29627        self.client
29628            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
29629                (),
29630                0x7a112c1ab54ff828,
29631                fidl::encoding::DynamicFlags::empty(),
29632                _decode,
29633            )
29634    }
29635
29636    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
29637        BaseSocketGetAcceptConnResult,
29638        fidl::encoding::DefaultFuchsiaResourceDialect,
29639    >;
29640    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
29641        fn _decode(
29642            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29643        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
29644            let _response = fidl::client::decode_transaction_body::<
29645                fidl::encoding::ResultType<
29646                    BaseSocketGetAcceptConnResponse,
29647                    fidl_fuchsia_posix::Errno,
29648                >,
29649                fidl::encoding::DefaultFuchsiaResourceDialect,
29650                0x67ce6db6c2ec8966,
29651            >(_buf?)?;
29652            Ok(_response.map(|x| x.value))
29653        }
29654        self.client
29655            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
29656                (),
29657                0x67ce6db6c2ec8966,
29658                fidl::encoding::DynamicFlags::empty(),
29659                _decode,
29660            )
29661    }
29662
29663    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
29664        BaseSocketSetBindToDeviceResult,
29665        fidl::encoding::DefaultFuchsiaResourceDialect,
29666    >;
29667    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
29668        fn _decode(
29669            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29670        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
29671            let _response = fidl::client::decode_transaction_body::<
29672                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29673                fidl::encoding::DefaultFuchsiaResourceDialect,
29674                0x2118b483f28aafc4,
29675            >(_buf?)?;
29676            Ok(_response.map(|x| x))
29677        }
29678        self.client.send_query_and_decode::<
29679            BaseSocketSetBindToDeviceRequest,
29680            BaseSocketSetBindToDeviceResult,
29681        >(
29682            (value,),
29683            0x2118b483f28aafc4,
29684            fidl::encoding::DynamicFlags::empty(),
29685            _decode,
29686        )
29687    }
29688
29689    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
29690        BaseSocketGetBindToDeviceResult,
29691        fidl::encoding::DefaultFuchsiaResourceDialect,
29692    >;
29693    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
29694        fn _decode(
29695            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29696        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
29697            let _response = fidl::client::decode_transaction_body::<
29698                fidl::encoding::ResultType<
29699                    BaseSocketGetBindToDeviceResponse,
29700                    fidl_fuchsia_posix::Errno,
29701                >,
29702                fidl::encoding::DefaultFuchsiaResourceDialect,
29703                0x1ab1fbf0ef7906c8,
29704            >(_buf?)?;
29705            Ok(_response.map(|x| x.value))
29706        }
29707        self.client
29708            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
29709                (),
29710                0x1ab1fbf0ef7906c8,
29711                fidl::encoding::DynamicFlags::empty(),
29712                _decode,
29713            )
29714    }
29715
29716    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
29717        BaseSocketSetBindToInterfaceIndexResult,
29718        fidl::encoding::DefaultFuchsiaResourceDialect,
29719    >;
29720    fn r#set_bind_to_interface_index(
29721        &self,
29722        mut value: u64,
29723    ) -> Self::SetBindToInterfaceIndexResponseFut {
29724        fn _decode(
29725            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29726        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
29727            let _response = fidl::client::decode_transaction_body::<
29728                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29729                fidl::encoding::DefaultFuchsiaResourceDialect,
29730                0x6e387a0def00821,
29731            >(_buf?)?;
29732            Ok(_response.map(|x| x))
29733        }
29734        self.client.send_query_and_decode::<
29735            BaseSocketSetBindToInterfaceIndexRequest,
29736            BaseSocketSetBindToInterfaceIndexResult,
29737        >(
29738            (value,),
29739            0x6e387a0def00821,
29740            fidl::encoding::DynamicFlags::empty(),
29741            _decode,
29742        )
29743    }
29744
29745    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
29746        BaseSocketGetBindToInterfaceIndexResult,
29747        fidl::encoding::DefaultFuchsiaResourceDialect,
29748    >;
29749    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
29750        fn _decode(
29751            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29752        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
29753            let _response = fidl::client::decode_transaction_body::<
29754                fidl::encoding::ResultType<
29755                    BaseSocketGetBindToInterfaceIndexResponse,
29756                    fidl_fuchsia_posix::Errno,
29757                >,
29758                fidl::encoding::DefaultFuchsiaResourceDialect,
29759                0x59c31dd3e3078295,
29760            >(_buf?)?;
29761            Ok(_response.map(|x| x.value))
29762        }
29763        self.client.send_query_and_decode::<
29764            fidl::encoding::EmptyPayload,
29765            BaseSocketGetBindToInterfaceIndexResult,
29766        >(
29767            (),
29768            0x59c31dd3e3078295,
29769            fidl::encoding::DynamicFlags::empty(),
29770            _decode,
29771        )
29772    }
29773
29774    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
29775        BaseSocketSetTimestampResult,
29776        fidl::encoding::DefaultFuchsiaResourceDialect,
29777    >;
29778    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
29779        fn _decode(
29780            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29781        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
29782            let _response = fidl::client::decode_transaction_body::<
29783                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29784                fidl::encoding::DefaultFuchsiaResourceDialect,
29785                0x285d6516c263d839,
29786            >(_buf?)?;
29787            Ok(_response.map(|x| x))
29788        }
29789        self.client
29790            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
29791                (value,),
29792                0x285d6516c263d839,
29793                fidl::encoding::DynamicFlags::empty(),
29794                _decode,
29795            )
29796    }
29797
29798    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
29799        BaseSocketGetTimestampResult,
29800        fidl::encoding::DefaultFuchsiaResourceDialect,
29801    >;
29802    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
29803        fn _decode(
29804            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29805        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
29806            let _response = fidl::client::decode_transaction_body::<
29807                fidl::encoding::ResultType<
29808                    BaseSocketGetTimestampResponse,
29809                    fidl_fuchsia_posix::Errno,
29810                >,
29811                fidl::encoding::DefaultFuchsiaResourceDialect,
29812                0x49f2fffbbcc2bd27,
29813            >(_buf?)?;
29814            Ok(_response.map(|x| x.value))
29815        }
29816        self.client
29817            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
29818                (),
29819                0x49f2fffbbcc2bd27,
29820                fidl::encoding::DynamicFlags::empty(),
29821                _decode,
29822            )
29823    }
29824
29825    type SetMarkResponseFut = fidl::client::QueryResponseFut<
29826        BaseSocketSetMarkResult,
29827        fidl::encoding::DefaultFuchsiaResourceDialect,
29828    >;
29829    fn r#set_mark(
29830        &self,
29831        mut domain: fidl_fuchsia_net::MarkDomain,
29832        mut mark: &OptionalUint32,
29833    ) -> Self::SetMarkResponseFut {
29834        fn _decode(
29835            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29836        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
29837            let _response = fidl::client::decode_transaction_body::<
29838                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29839                fidl::encoding::DefaultFuchsiaResourceDialect,
29840                0x6ead6de09f653236,
29841            >(_buf?)?;
29842            Ok(_response.map(|x| x))
29843        }
29844        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
29845            (domain, mark),
29846            0x6ead6de09f653236,
29847            fidl::encoding::DynamicFlags::empty(),
29848            _decode,
29849        )
29850    }
29851
29852    type GetMarkResponseFut = fidl::client::QueryResponseFut<
29853        BaseSocketGetMarkResult,
29854        fidl::encoding::DefaultFuchsiaResourceDialect,
29855    >;
29856    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
29857        fn _decode(
29858            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29859        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
29860            let _response = fidl::client::decode_transaction_body::<
29861                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
29862                fidl::encoding::DefaultFuchsiaResourceDialect,
29863                0x57a2752c61d93d47,
29864            >(_buf?)?;
29865            Ok(_response.map(|x| x.mark))
29866        }
29867        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
29868            (domain,),
29869            0x57a2752c61d93d47,
29870            fidl::encoding::DynamicFlags::empty(),
29871            _decode,
29872        )
29873    }
29874
29875    type GetCookieResponseFut = fidl::client::QueryResponseFut<
29876        BaseSocketGetCookieResult,
29877        fidl::encoding::DefaultFuchsiaResourceDialect,
29878    >;
29879    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
29880        fn _decode(
29881            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29882        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
29883            let _response = fidl::client::decode_transaction_body::<
29884                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
29885                fidl::encoding::DefaultFuchsiaResourceDialect,
29886                0x2c2f47fd8f924e52,
29887            >(_buf?)?;
29888            Ok(_response.map(|x| x.value))
29889        }
29890        self.client
29891            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
29892                (),
29893                0x2c2f47fd8f924e52,
29894                fidl::encoding::DynamicFlags::empty(),
29895                _decode,
29896            )
29897    }
29898}
29899
29900pub struct BaseSocketEventStream {
29901    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
29902}
29903
29904impl std::marker::Unpin for BaseSocketEventStream {}
29905
29906impl futures::stream::FusedStream for BaseSocketEventStream {
29907    fn is_terminated(&self) -> bool {
29908        self.event_receiver.is_terminated()
29909    }
29910}
29911
29912impl futures::Stream for BaseSocketEventStream {
29913    type Item = Result<BaseSocketEvent, fidl::Error>;
29914
29915    fn poll_next(
29916        mut self: std::pin::Pin<&mut Self>,
29917        cx: &mut std::task::Context<'_>,
29918    ) -> std::task::Poll<Option<Self::Item>> {
29919        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
29920            &mut self.event_receiver,
29921            cx
29922        )?) {
29923            Some(buf) => std::task::Poll::Ready(Some(BaseSocketEvent::decode(buf))),
29924            None => std::task::Poll::Ready(None),
29925        }
29926    }
29927}
29928
29929#[derive(Debug)]
29930pub enum BaseSocketEvent {}
29931
29932impl BaseSocketEvent {
29933    /// Decodes a message buffer as a [`BaseSocketEvent`].
29934    fn decode(
29935        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
29936    ) -> Result<BaseSocketEvent, fidl::Error> {
29937        let (bytes, _handles) = buf.split_mut();
29938        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
29939        debug_assert_eq!(tx_header.tx_id, 0);
29940        match tx_header.ordinal {
29941            _ => Err(fidl::Error::UnknownOrdinal {
29942                ordinal: tx_header.ordinal,
29943                protocol_name: <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
29944            }),
29945        }
29946    }
29947}
29948
29949/// A Stream of incoming requests for fuchsia.posix.socket/BaseSocket.
29950pub struct BaseSocketRequestStream {
29951    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
29952    is_terminated: bool,
29953}
29954
29955impl std::marker::Unpin for BaseSocketRequestStream {}
29956
29957impl futures::stream::FusedStream for BaseSocketRequestStream {
29958    fn is_terminated(&self) -> bool {
29959        self.is_terminated
29960    }
29961}
29962
29963impl fidl::endpoints::RequestStream for BaseSocketRequestStream {
29964    type Protocol = BaseSocketMarker;
29965    type ControlHandle = BaseSocketControlHandle;
29966
29967    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
29968        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
29969    }
29970
29971    fn control_handle(&self) -> Self::ControlHandle {
29972        BaseSocketControlHandle { inner: self.inner.clone() }
29973    }
29974
29975    fn into_inner(
29976        self,
29977    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
29978    {
29979        (self.inner, self.is_terminated)
29980    }
29981
29982    fn from_inner(
29983        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
29984        is_terminated: bool,
29985    ) -> Self {
29986        Self { inner, is_terminated }
29987    }
29988}
29989
29990impl futures::Stream for BaseSocketRequestStream {
29991    type Item = Result<BaseSocketRequest, fidl::Error>;
29992
29993    fn poll_next(
29994        mut self: std::pin::Pin<&mut Self>,
29995        cx: &mut std::task::Context<'_>,
29996    ) -> std::task::Poll<Option<Self::Item>> {
29997        let this = &mut *self;
29998        if this.inner.check_shutdown(cx) {
29999            this.is_terminated = true;
30000            return std::task::Poll::Ready(None);
30001        }
30002        if this.is_terminated {
30003            panic!("polled BaseSocketRequestStream after completion");
30004        }
30005        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
30006            |bytes, handles| {
30007                match this.inner.channel().read_etc(cx, bytes, handles) {
30008                    std::task::Poll::Ready(Ok(())) => {}
30009                    std::task::Poll::Pending => return std::task::Poll::Pending,
30010                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
30011                        this.is_terminated = true;
30012                        return std::task::Poll::Ready(None);
30013                    }
30014                    std::task::Poll::Ready(Err(e)) => {
30015                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
30016                            e.into(),
30017                        ))));
30018                    }
30019                }
30020
30021                // A message has been received from the channel
30022                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
30023
30024                std::task::Poll::Ready(Some(match header.ordinal {
30025                    0x20d8a7aba2168a79 => {
30026                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
30027                        let mut req = fidl::new_empty!(
30028                            fidl_fuchsia_unknown::CloneableCloneRequest,
30029                            fidl::encoding::DefaultFuchsiaResourceDialect
30030                        );
30031                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
30032                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30033                        Ok(BaseSocketRequest::Clone { request: req.request, control_handle })
30034                    }
30035                    0x5ac5d459ad7f657e => {
30036                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30037                        let mut req = fidl::new_empty!(
30038                            fidl::encoding::EmptyPayload,
30039                            fidl::encoding::DefaultFuchsiaResourceDialect
30040                        );
30041                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30042                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30043                        Ok(BaseSocketRequest::Close {
30044                            responder: BaseSocketCloseResponder {
30045                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30046                                tx_id: header.tx_id,
30047                            },
30048                        })
30049                    }
30050                    0x2658edee9decfc06 => {
30051                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30052                        let mut req = fidl::new_empty!(
30053                            fidl::encoding::EmptyPayload,
30054                            fidl::encoding::DefaultFuchsiaResourceDialect
30055                        );
30056                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30057                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30058                        Ok(BaseSocketRequest::Query {
30059                            responder: BaseSocketQueryResponder {
30060                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30061                                tx_id: header.tx_id,
30062                            },
30063                        })
30064                    }
30065                    0x1fd74ee8b9a4a876 => {
30066                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30067                        let mut req = fidl::new_empty!(
30068                            BaseSocketSetReuseAddressRequest,
30069                            fidl::encoding::DefaultFuchsiaResourceDialect
30070                        );
30071                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
30072                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30073                        Ok(BaseSocketRequest::SetReuseAddress {
30074                            value: req.value,
30075
30076                            responder: BaseSocketSetReuseAddressResponder {
30077                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30078                                tx_id: header.tx_id,
30079                            },
30080                        })
30081                    }
30082                    0x67b7206b8d1bc0a5 => {
30083                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30084                        let mut req = fidl::new_empty!(
30085                            fidl::encoding::EmptyPayload,
30086                            fidl::encoding::DefaultFuchsiaResourceDialect
30087                        );
30088                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30089                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30090                        Ok(BaseSocketRequest::GetReuseAddress {
30091                            responder: BaseSocketGetReuseAddressResponder {
30092                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30093                                tx_id: header.tx_id,
30094                            },
30095                        })
30096                    }
30097                    0x5aad39b33e5f6ebb => {
30098                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30099                        let mut req = fidl::new_empty!(
30100                            fidl::encoding::EmptyPayload,
30101                            fidl::encoding::DefaultFuchsiaResourceDialect
30102                        );
30103                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30104                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30105                        Ok(BaseSocketRequest::GetError {
30106                            responder: BaseSocketGetErrorResponder {
30107                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30108                                tx_id: header.tx_id,
30109                            },
30110                        })
30111                    }
30112                    0x6023e081ce3cd947 => {
30113                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30114                        let mut req = fidl::new_empty!(
30115                            BaseSocketSetBroadcastRequest,
30116                            fidl::encoding::DefaultFuchsiaResourceDialect
30117                        );
30118                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
30119                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30120                        Ok(BaseSocketRequest::SetBroadcast {
30121                            value: req.value,
30122
30123                            responder: BaseSocketSetBroadcastResponder {
30124                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30125                                tx_id: header.tx_id,
30126                            },
30127                        })
30128                    }
30129                    0x68796fc556f9780d => {
30130                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30131                        let mut req = fidl::new_empty!(
30132                            fidl::encoding::EmptyPayload,
30133                            fidl::encoding::DefaultFuchsiaResourceDialect
30134                        );
30135                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30136                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30137                        Ok(BaseSocketRequest::GetBroadcast {
30138                            responder: BaseSocketGetBroadcastResponder {
30139                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30140                                tx_id: header.tx_id,
30141                            },
30142                        })
30143                    }
30144                    0x756eac32d73a7a70 => {
30145                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30146                        let mut req = fidl::new_empty!(
30147                            BaseSocketSetSendBufferRequest,
30148                            fidl::encoding::DefaultFuchsiaResourceDialect
30149                        );
30150                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
30151                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30152                        Ok(BaseSocketRequest::SetSendBuffer {
30153                            value_bytes: req.value_bytes,
30154
30155                            responder: BaseSocketSetSendBufferResponder {
30156                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30157                                tx_id: header.tx_id,
30158                            },
30159                        })
30160                    }
30161                    0x78a52fd9c7b2410b => {
30162                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30163                        let mut req = fidl::new_empty!(
30164                            fidl::encoding::EmptyPayload,
30165                            fidl::encoding::DefaultFuchsiaResourceDialect
30166                        );
30167                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30168                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30169                        Ok(BaseSocketRequest::GetSendBuffer {
30170                            responder: BaseSocketGetSendBufferResponder {
30171                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30172                                tx_id: header.tx_id,
30173                            },
30174                        })
30175                    }
30176                    0x6b0cf2f1919c7001 => {
30177                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30178                        let mut req = fidl::new_empty!(
30179                            BaseSocketSetReceiveBufferRequest,
30180                            fidl::encoding::DefaultFuchsiaResourceDialect
30181                        );
30182                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
30183                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30184                        Ok(BaseSocketRequest::SetReceiveBuffer {
30185                            value_bytes: req.value_bytes,
30186
30187                            responder: BaseSocketSetReceiveBufferResponder {
30188                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30189                                tx_id: header.tx_id,
30190                            },
30191                        })
30192                    }
30193                    0x14c1a4b64f709e5c => {
30194                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30195                        let mut req = fidl::new_empty!(
30196                            fidl::encoding::EmptyPayload,
30197                            fidl::encoding::DefaultFuchsiaResourceDialect
30198                        );
30199                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30200                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30201                        Ok(BaseSocketRequest::GetReceiveBuffer {
30202                            responder: BaseSocketGetReceiveBufferResponder {
30203                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30204                                tx_id: header.tx_id,
30205                            },
30206                        })
30207                    }
30208                    0x572df8f0b920d2c7 => {
30209                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30210                        let mut req = fidl::new_empty!(
30211                            BaseSocketSetKeepAliveRequest,
30212                            fidl::encoding::DefaultFuchsiaResourceDialect
30213                        );
30214                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
30215                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30216                        Ok(BaseSocketRequest::SetKeepAlive {
30217                            value: req.value,
30218
30219                            responder: BaseSocketSetKeepAliveResponder {
30220                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30221                                tx_id: header.tx_id,
30222                            },
30223                        })
30224                    }
30225                    0x2dd29d3215f2c9d2 => {
30226                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30227                        let mut req = fidl::new_empty!(
30228                            fidl::encoding::EmptyPayload,
30229                            fidl::encoding::DefaultFuchsiaResourceDialect
30230                        );
30231                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30232                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30233                        Ok(BaseSocketRequest::GetKeepAlive {
30234                            responder: BaseSocketGetKeepAliveResponder {
30235                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30236                                tx_id: header.tx_id,
30237                            },
30238                        })
30239                    }
30240                    0x3ecb49968bee439 => {
30241                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30242                        let mut req = fidl::new_empty!(
30243                            BaseSocketSetOutOfBandInlineRequest,
30244                            fidl::encoding::DefaultFuchsiaResourceDialect
30245                        );
30246                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
30247                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30248                        Ok(BaseSocketRequest::SetOutOfBandInline {
30249                            value: req.value,
30250
30251                            responder: BaseSocketSetOutOfBandInlineResponder {
30252                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30253                                tx_id: header.tx_id,
30254                            },
30255                        })
30256                    }
30257                    0x348c1ab3aeca1745 => {
30258                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30259                        let mut req = fidl::new_empty!(
30260                            fidl::encoding::EmptyPayload,
30261                            fidl::encoding::DefaultFuchsiaResourceDialect
30262                        );
30263                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30264                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30265                        Ok(BaseSocketRequest::GetOutOfBandInline {
30266                            responder: BaseSocketGetOutOfBandInlineResponder {
30267                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30268                                tx_id: header.tx_id,
30269                            },
30270                        })
30271                    }
30272                    0x6bbf00c53a4c78c2 => {
30273                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30274                        let mut req = fidl::new_empty!(
30275                            BaseSocketSetNoCheckRequest,
30276                            fidl::encoding::DefaultFuchsiaResourceDialect
30277                        );
30278                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
30279                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30280                        Ok(BaseSocketRequest::SetNoCheck {
30281                            value: req.value,
30282
30283                            responder: BaseSocketSetNoCheckResponder {
30284                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30285                                tx_id: header.tx_id,
30286                            },
30287                        })
30288                    }
30289                    0x2cd4249286417694 => {
30290                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30291                        let mut req = fidl::new_empty!(
30292                            fidl::encoding::EmptyPayload,
30293                            fidl::encoding::DefaultFuchsiaResourceDialect
30294                        );
30295                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30296                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30297                        Ok(BaseSocketRequest::GetNoCheck {
30298                            responder: BaseSocketGetNoCheckResponder {
30299                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30300                                tx_id: header.tx_id,
30301                            },
30302                        })
30303                    }
30304                    0x45386351246e998e => {
30305                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30306                        let mut req = fidl::new_empty!(
30307                            BaseSocketSetLingerRequest,
30308                            fidl::encoding::DefaultFuchsiaResourceDialect
30309                        );
30310                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
30311                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30312                        Ok(BaseSocketRequest::SetLinger {
30313                            linger: req.linger,
30314                            length_secs: req.length_secs,
30315
30316                            responder: BaseSocketSetLingerResponder {
30317                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30318                                tx_id: header.tx_id,
30319                            },
30320                        })
30321                    }
30322                    0x48eb20fc5ccb0e45 => {
30323                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30324                        let mut req = fidl::new_empty!(
30325                            fidl::encoding::EmptyPayload,
30326                            fidl::encoding::DefaultFuchsiaResourceDialect
30327                        );
30328                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30329                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30330                        Ok(BaseSocketRequest::GetLinger {
30331                            responder: BaseSocketGetLingerResponder {
30332                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30333                                tx_id: header.tx_id,
30334                            },
30335                        })
30336                    }
30337                    0x24dd3e5cb36d9ccb => {
30338                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30339                        let mut req = fidl::new_empty!(
30340                            BaseSocketSetReusePortRequest,
30341                            fidl::encoding::DefaultFuchsiaResourceDialect
30342                        );
30343                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
30344                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30345                        Ok(BaseSocketRequest::SetReusePort {
30346                            value: req.value,
30347
30348                            responder: BaseSocketSetReusePortResponder {
30349                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30350                                tx_id: header.tx_id,
30351                            },
30352                        })
30353                    }
30354                    0x7a112c1ab54ff828 => {
30355                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30356                        let mut req = fidl::new_empty!(
30357                            fidl::encoding::EmptyPayload,
30358                            fidl::encoding::DefaultFuchsiaResourceDialect
30359                        );
30360                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30361                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30362                        Ok(BaseSocketRequest::GetReusePort {
30363                            responder: BaseSocketGetReusePortResponder {
30364                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30365                                tx_id: header.tx_id,
30366                            },
30367                        })
30368                    }
30369                    0x67ce6db6c2ec8966 => {
30370                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30371                        let mut req = fidl::new_empty!(
30372                            fidl::encoding::EmptyPayload,
30373                            fidl::encoding::DefaultFuchsiaResourceDialect
30374                        );
30375                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30376                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30377                        Ok(BaseSocketRequest::GetAcceptConn {
30378                            responder: BaseSocketGetAcceptConnResponder {
30379                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30380                                tx_id: header.tx_id,
30381                            },
30382                        })
30383                    }
30384                    0x2118b483f28aafc4 => {
30385                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30386                        let mut req = fidl::new_empty!(
30387                            BaseSocketSetBindToDeviceRequest,
30388                            fidl::encoding::DefaultFuchsiaResourceDialect
30389                        );
30390                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
30391                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30392                        Ok(BaseSocketRequest::SetBindToDevice {
30393                            value: req.value,
30394
30395                            responder: BaseSocketSetBindToDeviceResponder {
30396                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30397                                tx_id: header.tx_id,
30398                            },
30399                        })
30400                    }
30401                    0x1ab1fbf0ef7906c8 => {
30402                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30403                        let mut req = fidl::new_empty!(
30404                            fidl::encoding::EmptyPayload,
30405                            fidl::encoding::DefaultFuchsiaResourceDialect
30406                        );
30407                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30408                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30409                        Ok(BaseSocketRequest::GetBindToDevice {
30410                            responder: BaseSocketGetBindToDeviceResponder {
30411                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30412                                tx_id: header.tx_id,
30413                            },
30414                        })
30415                    }
30416                    0x6e387a0def00821 => {
30417                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30418                        let mut req = fidl::new_empty!(
30419                            BaseSocketSetBindToInterfaceIndexRequest,
30420                            fidl::encoding::DefaultFuchsiaResourceDialect
30421                        );
30422                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
30423                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30424                        Ok(BaseSocketRequest::SetBindToInterfaceIndex {
30425                            value: req.value,
30426
30427                            responder: BaseSocketSetBindToInterfaceIndexResponder {
30428                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30429                                tx_id: header.tx_id,
30430                            },
30431                        })
30432                    }
30433                    0x59c31dd3e3078295 => {
30434                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30435                        let mut req = fidl::new_empty!(
30436                            fidl::encoding::EmptyPayload,
30437                            fidl::encoding::DefaultFuchsiaResourceDialect
30438                        );
30439                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30440                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30441                        Ok(BaseSocketRequest::GetBindToInterfaceIndex {
30442                            responder: BaseSocketGetBindToInterfaceIndexResponder {
30443                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30444                                tx_id: header.tx_id,
30445                            },
30446                        })
30447                    }
30448                    0x285d6516c263d839 => {
30449                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30450                        let mut req = fidl::new_empty!(
30451                            BaseSocketSetTimestampRequest,
30452                            fidl::encoding::DefaultFuchsiaResourceDialect
30453                        );
30454                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
30455                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30456                        Ok(BaseSocketRequest::SetTimestamp {
30457                            value: req.value,
30458
30459                            responder: BaseSocketSetTimestampResponder {
30460                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30461                                tx_id: header.tx_id,
30462                            },
30463                        })
30464                    }
30465                    0x49f2fffbbcc2bd27 => {
30466                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30467                        let mut req = fidl::new_empty!(
30468                            fidl::encoding::EmptyPayload,
30469                            fidl::encoding::DefaultFuchsiaResourceDialect
30470                        );
30471                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30472                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30473                        Ok(BaseSocketRequest::GetTimestamp {
30474                            responder: BaseSocketGetTimestampResponder {
30475                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30476                                tx_id: header.tx_id,
30477                            },
30478                        })
30479                    }
30480                    0x6ead6de09f653236 => {
30481                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30482                        let mut req = fidl::new_empty!(
30483                            BaseSocketSetMarkRequest,
30484                            fidl::encoding::DefaultFuchsiaResourceDialect
30485                        );
30486                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
30487                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30488                        Ok(BaseSocketRequest::SetMark {
30489                            domain: req.domain,
30490                            mark: req.mark,
30491
30492                            responder: BaseSocketSetMarkResponder {
30493                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30494                                tx_id: header.tx_id,
30495                            },
30496                        })
30497                    }
30498                    0x57a2752c61d93d47 => {
30499                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30500                        let mut req = fidl::new_empty!(
30501                            BaseSocketGetMarkRequest,
30502                            fidl::encoding::DefaultFuchsiaResourceDialect
30503                        );
30504                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
30505                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30506                        Ok(BaseSocketRequest::GetMark {
30507                            domain: req.domain,
30508
30509                            responder: BaseSocketGetMarkResponder {
30510                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30511                                tx_id: header.tx_id,
30512                            },
30513                        })
30514                    }
30515                    0x2c2f47fd8f924e52 => {
30516                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30517                        let mut req = fidl::new_empty!(
30518                            fidl::encoding::EmptyPayload,
30519                            fidl::encoding::DefaultFuchsiaResourceDialect
30520                        );
30521                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30522                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30523                        Ok(BaseSocketRequest::GetCookie {
30524                            responder: BaseSocketGetCookieResponder {
30525                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30526                                tx_id: header.tx_id,
30527                            },
30528                        })
30529                    }
30530                    _ => Err(fidl::Error::UnknownOrdinal {
30531                        ordinal: header.ordinal,
30532                        protocol_name:
30533                            <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
30534                    }),
30535                }))
30536            },
30537        )
30538    }
30539}
30540
30541/// A socket.
30542#[derive(Debug)]
30543pub enum BaseSocketRequest {
30544    Clone {
30545        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
30546        control_handle: BaseSocketControlHandle,
30547    },
30548    /// Terminates the connection.
30549    ///
30550    /// After calling `Close`, the client must not send any other requests.
30551    ///
30552    /// Servers, after sending the status response, should close the connection
30553    /// regardless of status and without sending an epitaph.
30554    ///
30555    /// Closing the client end of the channel should be semantically equivalent
30556    /// to calling `Close` without knowing when the close has completed or its
30557    /// status.
30558    Close {
30559        responder: BaseSocketCloseResponder,
30560    },
30561    Query {
30562        responder: BaseSocketQueryResponder,
30563    },
30564    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
30565    SetReuseAddress {
30566        value: bool,
30567        responder: BaseSocketSetReuseAddressResponder,
30568    },
30569    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
30570    GetReuseAddress {
30571        responder: BaseSocketGetReuseAddressResponder,
30572    },
30573    /// Get `SOL_SOCKET` -> `SO_ERROR`.
30574    /// Returns the last error if there is an error set on the socket.
30575    GetError {
30576        responder: BaseSocketGetErrorResponder,
30577    },
30578    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
30579    SetBroadcast {
30580        value: bool,
30581        responder: BaseSocketSetBroadcastResponder,
30582    },
30583    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
30584    GetBroadcast {
30585        responder: BaseSocketGetBroadcastResponder,
30586    },
30587    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
30588    SetSendBuffer {
30589        value_bytes: u64,
30590        responder: BaseSocketSetSendBufferResponder,
30591    },
30592    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
30593    GetSendBuffer {
30594        responder: BaseSocketGetSendBufferResponder,
30595    },
30596    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
30597    SetReceiveBuffer {
30598        value_bytes: u64,
30599        responder: BaseSocketSetReceiveBufferResponder,
30600    },
30601    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
30602    GetReceiveBuffer {
30603        responder: BaseSocketGetReceiveBufferResponder,
30604    },
30605    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
30606    SetKeepAlive {
30607        value: bool,
30608        responder: BaseSocketSetKeepAliveResponder,
30609    },
30610    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
30611    GetKeepAlive {
30612        responder: BaseSocketGetKeepAliveResponder,
30613    },
30614    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
30615    SetOutOfBandInline {
30616        value: bool,
30617        responder: BaseSocketSetOutOfBandInlineResponder,
30618    },
30619    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
30620    GetOutOfBandInline {
30621        responder: BaseSocketGetOutOfBandInlineResponder,
30622    },
30623    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
30624    SetNoCheck {
30625        value: bool,
30626        responder: BaseSocketSetNoCheckResponder,
30627    },
30628    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
30629    GetNoCheck {
30630        responder: BaseSocketGetNoCheckResponder,
30631    },
30632    /// Set `SOL_SOCKET` -> `SO_LINGER`.
30633    SetLinger {
30634        linger: bool,
30635        length_secs: u32,
30636        responder: BaseSocketSetLingerResponder,
30637    },
30638    /// Get `SOL_SOCKET` -> `SO_LINGER`.
30639    GetLinger {
30640        responder: BaseSocketGetLingerResponder,
30641    },
30642    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
30643    SetReusePort {
30644        value: bool,
30645        responder: BaseSocketSetReusePortResponder,
30646    },
30647    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
30648    GetReusePort {
30649        responder: BaseSocketGetReusePortResponder,
30650    },
30651    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
30652    GetAcceptConn {
30653        responder: BaseSocketGetAcceptConnResponder,
30654    },
30655    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
30656    SetBindToDevice {
30657        value: String,
30658        responder: BaseSocketSetBindToDeviceResponder,
30659    },
30660    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
30661    GetBindToDevice {
30662        responder: BaseSocketGetBindToDeviceResponder,
30663    },
30664    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
30665    /// If `value` is 0, this clears the bound interface.
30666    SetBindToInterfaceIndex {
30667        value: u64,
30668        responder: BaseSocketSetBindToInterfaceIndexResponder,
30669    },
30670    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
30671    GetBindToInterfaceIndex {
30672        responder: BaseSocketGetBindToInterfaceIndexResponder,
30673    },
30674    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
30675    SetTimestamp {
30676        value: TimestampOption,
30677        responder: BaseSocketSetTimestampResponder,
30678    },
30679    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
30680    GetTimestamp {
30681        responder: BaseSocketGetTimestampResponder,
30682    },
30683    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
30684    /// unlike the standard SO_MARK, this API has multiple mark domains and each
30685    /// mark can be set independently in each domain.
30686    SetMark {
30687        domain: fidl_fuchsia_net::MarkDomain,
30688        mark: OptionalUint32,
30689        responder: BaseSocketSetMarkResponder,
30690    },
30691    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
30692    /// unlike the standard SO_MARK, this API has multiple mark domains and each
30693    /// mark can be retrieved independently in each domain.
30694    GetMark {
30695        domain: fidl_fuchsia_net::MarkDomain,
30696        responder: BaseSocketGetMarkResponder,
30697    },
30698    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
30699    GetCookie {
30700        responder: BaseSocketGetCookieResponder,
30701    },
30702}
30703
30704impl BaseSocketRequest {
30705    #[allow(irrefutable_let_patterns)]
30706    pub fn into_clone(
30707        self,
30708    ) -> Option<(
30709        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
30710        BaseSocketControlHandle,
30711    )> {
30712        if let BaseSocketRequest::Clone { request, control_handle } = self {
30713            Some((request, control_handle))
30714        } else {
30715            None
30716        }
30717    }
30718
30719    #[allow(irrefutable_let_patterns)]
30720    pub fn into_close(self) -> Option<(BaseSocketCloseResponder)> {
30721        if let BaseSocketRequest::Close { responder } = self { Some((responder)) } else { None }
30722    }
30723
30724    #[allow(irrefutable_let_patterns)]
30725    pub fn into_query(self) -> Option<(BaseSocketQueryResponder)> {
30726        if let BaseSocketRequest::Query { responder } = self { Some((responder)) } else { None }
30727    }
30728
30729    #[allow(irrefutable_let_patterns)]
30730    pub fn into_set_reuse_address(self) -> Option<(bool, BaseSocketSetReuseAddressResponder)> {
30731        if let BaseSocketRequest::SetReuseAddress { value, responder } = self {
30732            Some((value, responder))
30733        } else {
30734            None
30735        }
30736    }
30737
30738    #[allow(irrefutable_let_patterns)]
30739    pub fn into_get_reuse_address(self) -> Option<(BaseSocketGetReuseAddressResponder)> {
30740        if let BaseSocketRequest::GetReuseAddress { responder } = self {
30741            Some((responder))
30742        } else {
30743            None
30744        }
30745    }
30746
30747    #[allow(irrefutable_let_patterns)]
30748    pub fn into_get_error(self) -> Option<(BaseSocketGetErrorResponder)> {
30749        if let BaseSocketRequest::GetError { responder } = self { Some((responder)) } else { None }
30750    }
30751
30752    #[allow(irrefutable_let_patterns)]
30753    pub fn into_set_broadcast(self) -> Option<(bool, BaseSocketSetBroadcastResponder)> {
30754        if let BaseSocketRequest::SetBroadcast { value, responder } = self {
30755            Some((value, responder))
30756        } else {
30757            None
30758        }
30759    }
30760
30761    #[allow(irrefutable_let_patterns)]
30762    pub fn into_get_broadcast(self) -> Option<(BaseSocketGetBroadcastResponder)> {
30763        if let BaseSocketRequest::GetBroadcast { responder } = self {
30764            Some((responder))
30765        } else {
30766            None
30767        }
30768    }
30769
30770    #[allow(irrefutable_let_patterns)]
30771    pub fn into_set_send_buffer(self) -> Option<(u64, BaseSocketSetSendBufferResponder)> {
30772        if let BaseSocketRequest::SetSendBuffer { value_bytes, responder } = self {
30773            Some((value_bytes, responder))
30774        } else {
30775            None
30776        }
30777    }
30778
30779    #[allow(irrefutable_let_patterns)]
30780    pub fn into_get_send_buffer(self) -> Option<(BaseSocketGetSendBufferResponder)> {
30781        if let BaseSocketRequest::GetSendBuffer { responder } = self {
30782            Some((responder))
30783        } else {
30784            None
30785        }
30786    }
30787
30788    #[allow(irrefutable_let_patterns)]
30789    pub fn into_set_receive_buffer(self) -> Option<(u64, BaseSocketSetReceiveBufferResponder)> {
30790        if let BaseSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
30791            Some((value_bytes, responder))
30792        } else {
30793            None
30794        }
30795    }
30796
30797    #[allow(irrefutable_let_patterns)]
30798    pub fn into_get_receive_buffer(self) -> Option<(BaseSocketGetReceiveBufferResponder)> {
30799        if let BaseSocketRequest::GetReceiveBuffer { responder } = self {
30800            Some((responder))
30801        } else {
30802            None
30803        }
30804    }
30805
30806    #[allow(irrefutable_let_patterns)]
30807    pub fn into_set_keep_alive(self) -> Option<(bool, BaseSocketSetKeepAliveResponder)> {
30808        if let BaseSocketRequest::SetKeepAlive { value, responder } = self {
30809            Some((value, responder))
30810        } else {
30811            None
30812        }
30813    }
30814
30815    #[allow(irrefutable_let_patterns)]
30816    pub fn into_get_keep_alive(self) -> Option<(BaseSocketGetKeepAliveResponder)> {
30817        if let BaseSocketRequest::GetKeepAlive { responder } = self {
30818            Some((responder))
30819        } else {
30820            None
30821        }
30822    }
30823
30824    #[allow(irrefutable_let_patterns)]
30825    pub fn into_set_out_of_band_inline(
30826        self,
30827    ) -> Option<(bool, BaseSocketSetOutOfBandInlineResponder)> {
30828        if let BaseSocketRequest::SetOutOfBandInline { value, responder } = self {
30829            Some((value, responder))
30830        } else {
30831            None
30832        }
30833    }
30834
30835    #[allow(irrefutable_let_patterns)]
30836    pub fn into_get_out_of_band_inline(self) -> Option<(BaseSocketGetOutOfBandInlineResponder)> {
30837        if let BaseSocketRequest::GetOutOfBandInline { responder } = self {
30838            Some((responder))
30839        } else {
30840            None
30841        }
30842    }
30843
30844    #[allow(irrefutable_let_patterns)]
30845    pub fn into_set_no_check(self) -> Option<(bool, BaseSocketSetNoCheckResponder)> {
30846        if let BaseSocketRequest::SetNoCheck { value, responder } = self {
30847            Some((value, responder))
30848        } else {
30849            None
30850        }
30851    }
30852
30853    #[allow(irrefutable_let_patterns)]
30854    pub fn into_get_no_check(self) -> Option<(BaseSocketGetNoCheckResponder)> {
30855        if let BaseSocketRequest::GetNoCheck { responder } = self {
30856            Some((responder))
30857        } else {
30858            None
30859        }
30860    }
30861
30862    #[allow(irrefutable_let_patterns)]
30863    pub fn into_set_linger(self) -> Option<(bool, u32, BaseSocketSetLingerResponder)> {
30864        if let BaseSocketRequest::SetLinger { linger, length_secs, responder } = self {
30865            Some((linger, length_secs, responder))
30866        } else {
30867            None
30868        }
30869    }
30870
30871    #[allow(irrefutable_let_patterns)]
30872    pub fn into_get_linger(self) -> Option<(BaseSocketGetLingerResponder)> {
30873        if let BaseSocketRequest::GetLinger { responder } = self { Some((responder)) } else { None }
30874    }
30875
30876    #[allow(irrefutable_let_patterns)]
30877    pub fn into_set_reuse_port(self) -> Option<(bool, BaseSocketSetReusePortResponder)> {
30878        if let BaseSocketRequest::SetReusePort { value, responder } = self {
30879            Some((value, responder))
30880        } else {
30881            None
30882        }
30883    }
30884
30885    #[allow(irrefutable_let_patterns)]
30886    pub fn into_get_reuse_port(self) -> Option<(BaseSocketGetReusePortResponder)> {
30887        if let BaseSocketRequest::GetReusePort { responder } = self {
30888            Some((responder))
30889        } else {
30890            None
30891        }
30892    }
30893
30894    #[allow(irrefutable_let_patterns)]
30895    pub fn into_get_accept_conn(self) -> Option<(BaseSocketGetAcceptConnResponder)> {
30896        if let BaseSocketRequest::GetAcceptConn { responder } = self {
30897            Some((responder))
30898        } else {
30899            None
30900        }
30901    }
30902
30903    #[allow(irrefutable_let_patterns)]
30904    pub fn into_set_bind_to_device(self) -> Option<(String, BaseSocketSetBindToDeviceResponder)> {
30905        if let BaseSocketRequest::SetBindToDevice { value, responder } = self {
30906            Some((value, responder))
30907        } else {
30908            None
30909        }
30910    }
30911
30912    #[allow(irrefutable_let_patterns)]
30913    pub fn into_get_bind_to_device(self) -> Option<(BaseSocketGetBindToDeviceResponder)> {
30914        if let BaseSocketRequest::GetBindToDevice { responder } = self {
30915            Some((responder))
30916        } else {
30917            None
30918        }
30919    }
30920
30921    #[allow(irrefutable_let_patterns)]
30922    pub fn into_set_bind_to_interface_index(
30923        self,
30924    ) -> Option<(u64, BaseSocketSetBindToInterfaceIndexResponder)> {
30925        if let BaseSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
30926            Some((value, responder))
30927        } else {
30928            None
30929        }
30930    }
30931
30932    #[allow(irrefutable_let_patterns)]
30933    pub fn into_get_bind_to_interface_index(
30934        self,
30935    ) -> Option<(BaseSocketGetBindToInterfaceIndexResponder)> {
30936        if let BaseSocketRequest::GetBindToInterfaceIndex { responder } = self {
30937            Some((responder))
30938        } else {
30939            None
30940        }
30941    }
30942
30943    #[allow(irrefutable_let_patterns)]
30944    pub fn into_set_timestamp(self) -> Option<(TimestampOption, BaseSocketSetTimestampResponder)> {
30945        if let BaseSocketRequest::SetTimestamp { value, responder } = self {
30946            Some((value, responder))
30947        } else {
30948            None
30949        }
30950    }
30951
30952    #[allow(irrefutable_let_patterns)]
30953    pub fn into_get_timestamp(self) -> Option<(BaseSocketGetTimestampResponder)> {
30954        if let BaseSocketRequest::GetTimestamp { responder } = self {
30955            Some((responder))
30956        } else {
30957            None
30958        }
30959    }
30960
30961    #[allow(irrefutable_let_patterns)]
30962    pub fn into_set_mark(
30963        self,
30964    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, BaseSocketSetMarkResponder)> {
30965        if let BaseSocketRequest::SetMark { domain, mark, responder } = self {
30966            Some((domain, mark, responder))
30967        } else {
30968            None
30969        }
30970    }
30971
30972    #[allow(irrefutable_let_patterns)]
30973    pub fn into_get_mark(
30974        self,
30975    ) -> Option<(fidl_fuchsia_net::MarkDomain, BaseSocketGetMarkResponder)> {
30976        if let BaseSocketRequest::GetMark { domain, responder } = self {
30977            Some((domain, responder))
30978        } else {
30979            None
30980        }
30981    }
30982
30983    #[allow(irrefutable_let_patterns)]
30984    pub fn into_get_cookie(self) -> Option<(BaseSocketGetCookieResponder)> {
30985        if let BaseSocketRequest::GetCookie { responder } = self { Some((responder)) } else { None }
30986    }
30987
30988    /// Name of the method defined in FIDL
30989    pub fn method_name(&self) -> &'static str {
30990        match *self {
30991            BaseSocketRequest::Clone { .. } => "clone",
30992            BaseSocketRequest::Close { .. } => "close",
30993            BaseSocketRequest::Query { .. } => "query",
30994            BaseSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
30995            BaseSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
30996            BaseSocketRequest::GetError { .. } => "get_error",
30997            BaseSocketRequest::SetBroadcast { .. } => "set_broadcast",
30998            BaseSocketRequest::GetBroadcast { .. } => "get_broadcast",
30999            BaseSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
31000            BaseSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
31001            BaseSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
31002            BaseSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
31003            BaseSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
31004            BaseSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
31005            BaseSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
31006            BaseSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
31007            BaseSocketRequest::SetNoCheck { .. } => "set_no_check",
31008            BaseSocketRequest::GetNoCheck { .. } => "get_no_check",
31009            BaseSocketRequest::SetLinger { .. } => "set_linger",
31010            BaseSocketRequest::GetLinger { .. } => "get_linger",
31011            BaseSocketRequest::SetReusePort { .. } => "set_reuse_port",
31012            BaseSocketRequest::GetReusePort { .. } => "get_reuse_port",
31013            BaseSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
31014            BaseSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
31015            BaseSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
31016            BaseSocketRequest::SetBindToInterfaceIndex { .. } => "set_bind_to_interface_index",
31017            BaseSocketRequest::GetBindToInterfaceIndex { .. } => "get_bind_to_interface_index",
31018            BaseSocketRequest::SetTimestamp { .. } => "set_timestamp",
31019            BaseSocketRequest::GetTimestamp { .. } => "get_timestamp",
31020            BaseSocketRequest::SetMark { .. } => "set_mark",
31021            BaseSocketRequest::GetMark { .. } => "get_mark",
31022            BaseSocketRequest::GetCookie { .. } => "get_cookie",
31023        }
31024    }
31025}
31026
31027#[derive(Debug, Clone)]
31028pub struct BaseSocketControlHandle {
31029    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
31030}
31031
31032impl fidl::endpoints::ControlHandle for BaseSocketControlHandle {
31033    fn shutdown(&self) {
31034        self.inner.shutdown()
31035    }
31036    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
31037        self.inner.shutdown_with_epitaph(status)
31038    }
31039
31040    fn is_closed(&self) -> bool {
31041        self.inner.channel().is_closed()
31042    }
31043    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
31044        self.inner.channel().on_closed()
31045    }
31046
31047    #[cfg(target_os = "fuchsia")]
31048    fn signal_peer(
31049        &self,
31050        clear_mask: zx::Signals,
31051        set_mask: zx::Signals,
31052    ) -> Result<(), zx_status::Status> {
31053        use fidl::Peered;
31054        self.inner.channel().signal_peer(clear_mask, set_mask)
31055    }
31056}
31057
31058impl BaseSocketControlHandle {}
31059
31060#[must_use = "FIDL methods require a response to be sent"]
31061#[derive(Debug)]
31062pub struct BaseSocketCloseResponder {
31063    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31064    tx_id: u32,
31065}
31066
31067/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31068/// if the responder is dropped without sending a response, so that the client
31069/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31070impl std::ops::Drop for BaseSocketCloseResponder {
31071    fn drop(&mut self) {
31072        self.control_handle.shutdown();
31073        // Safety: drops once, never accessed again
31074        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31075    }
31076}
31077
31078impl fidl::endpoints::Responder for BaseSocketCloseResponder {
31079    type ControlHandle = BaseSocketControlHandle;
31080
31081    fn control_handle(&self) -> &BaseSocketControlHandle {
31082        &self.control_handle
31083    }
31084
31085    fn drop_without_shutdown(mut self) {
31086        // Safety: drops once, never accessed again due to mem::forget
31087        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31088        // Prevent Drop from running (which would shut down the channel)
31089        std::mem::forget(self);
31090    }
31091}
31092
31093impl BaseSocketCloseResponder {
31094    /// Sends a response to the FIDL transaction.
31095    ///
31096    /// Sets the channel to shutdown if an error occurs.
31097    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
31098        let _result = self.send_raw(result);
31099        if _result.is_err() {
31100            self.control_handle.shutdown();
31101        }
31102        self.drop_without_shutdown();
31103        _result
31104    }
31105
31106    /// Similar to "send" but does not shutdown the channel if an error occurs.
31107    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
31108        let _result = self.send_raw(result);
31109        self.drop_without_shutdown();
31110        _result
31111    }
31112
31113    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
31114        self.control_handle
31115            .inner
31116            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
31117                result,
31118                self.tx_id,
31119                0x5ac5d459ad7f657e,
31120                fidl::encoding::DynamicFlags::empty(),
31121            )
31122    }
31123}
31124
31125#[must_use = "FIDL methods require a response to be sent"]
31126#[derive(Debug)]
31127pub struct BaseSocketQueryResponder {
31128    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31129    tx_id: u32,
31130}
31131
31132/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31133/// if the responder is dropped without sending a response, so that the client
31134/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31135impl std::ops::Drop for BaseSocketQueryResponder {
31136    fn drop(&mut self) {
31137        self.control_handle.shutdown();
31138        // Safety: drops once, never accessed again
31139        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31140    }
31141}
31142
31143impl fidl::endpoints::Responder for BaseSocketQueryResponder {
31144    type ControlHandle = BaseSocketControlHandle;
31145
31146    fn control_handle(&self) -> &BaseSocketControlHandle {
31147        &self.control_handle
31148    }
31149
31150    fn drop_without_shutdown(mut self) {
31151        // Safety: drops once, never accessed again due to mem::forget
31152        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31153        // Prevent Drop from running (which would shut down the channel)
31154        std::mem::forget(self);
31155    }
31156}
31157
31158impl BaseSocketQueryResponder {
31159    /// Sends a response to the FIDL transaction.
31160    ///
31161    /// Sets the channel to shutdown if an error occurs.
31162    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
31163        let _result = self.send_raw(protocol);
31164        if _result.is_err() {
31165            self.control_handle.shutdown();
31166        }
31167        self.drop_without_shutdown();
31168        _result
31169    }
31170
31171    /// Similar to "send" but does not shutdown the channel if an error occurs.
31172    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
31173        let _result = self.send_raw(protocol);
31174        self.drop_without_shutdown();
31175        _result
31176    }
31177
31178    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
31179        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
31180            (protocol,),
31181            self.tx_id,
31182            0x2658edee9decfc06,
31183            fidl::encoding::DynamicFlags::empty(),
31184        )
31185    }
31186}
31187
31188#[must_use = "FIDL methods require a response to be sent"]
31189#[derive(Debug)]
31190pub struct BaseSocketSetReuseAddressResponder {
31191    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31192    tx_id: u32,
31193}
31194
31195/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31196/// if the responder is dropped without sending a response, so that the client
31197/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31198impl std::ops::Drop for BaseSocketSetReuseAddressResponder {
31199    fn drop(&mut self) {
31200        self.control_handle.shutdown();
31201        // Safety: drops once, never accessed again
31202        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31203    }
31204}
31205
31206impl fidl::endpoints::Responder for BaseSocketSetReuseAddressResponder {
31207    type ControlHandle = BaseSocketControlHandle;
31208
31209    fn control_handle(&self) -> &BaseSocketControlHandle {
31210        &self.control_handle
31211    }
31212
31213    fn drop_without_shutdown(mut self) {
31214        // Safety: drops once, never accessed again due to mem::forget
31215        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31216        // Prevent Drop from running (which would shut down the channel)
31217        std::mem::forget(self);
31218    }
31219}
31220
31221impl BaseSocketSetReuseAddressResponder {
31222    /// Sends a response to the FIDL transaction.
31223    ///
31224    /// Sets the channel to shutdown if an error occurs.
31225    pub fn send(
31226        self,
31227        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31228    ) -> Result<(), fidl::Error> {
31229        let _result = self.send_raw(result);
31230        if _result.is_err() {
31231            self.control_handle.shutdown();
31232        }
31233        self.drop_without_shutdown();
31234        _result
31235    }
31236
31237    /// Similar to "send" but does not shutdown the channel if an error occurs.
31238    pub fn send_no_shutdown_on_err(
31239        self,
31240        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31241    ) -> Result<(), fidl::Error> {
31242        let _result = self.send_raw(result);
31243        self.drop_without_shutdown();
31244        _result
31245    }
31246
31247    fn send_raw(
31248        &self,
31249        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31250    ) -> Result<(), fidl::Error> {
31251        self.control_handle.inner.send::<fidl::encoding::ResultType<
31252            fidl::encoding::EmptyStruct,
31253            fidl_fuchsia_posix::Errno,
31254        >>(
31255            result,
31256            self.tx_id,
31257            0x1fd74ee8b9a4a876,
31258            fidl::encoding::DynamicFlags::empty(),
31259        )
31260    }
31261}
31262
31263#[must_use = "FIDL methods require a response to be sent"]
31264#[derive(Debug)]
31265pub struct BaseSocketGetReuseAddressResponder {
31266    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31267    tx_id: u32,
31268}
31269
31270/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31271/// if the responder is dropped without sending a response, so that the client
31272/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31273impl std::ops::Drop for BaseSocketGetReuseAddressResponder {
31274    fn drop(&mut self) {
31275        self.control_handle.shutdown();
31276        // Safety: drops once, never accessed again
31277        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31278    }
31279}
31280
31281impl fidl::endpoints::Responder for BaseSocketGetReuseAddressResponder {
31282    type ControlHandle = BaseSocketControlHandle;
31283
31284    fn control_handle(&self) -> &BaseSocketControlHandle {
31285        &self.control_handle
31286    }
31287
31288    fn drop_without_shutdown(mut self) {
31289        // Safety: drops once, never accessed again due to mem::forget
31290        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31291        // Prevent Drop from running (which would shut down the channel)
31292        std::mem::forget(self);
31293    }
31294}
31295
31296impl BaseSocketGetReuseAddressResponder {
31297    /// Sends a response to the FIDL transaction.
31298    ///
31299    /// Sets the channel to shutdown if an error occurs.
31300    pub fn send(
31301        self,
31302        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31303    ) -> Result<(), fidl::Error> {
31304        let _result = self.send_raw(result);
31305        if _result.is_err() {
31306            self.control_handle.shutdown();
31307        }
31308        self.drop_without_shutdown();
31309        _result
31310    }
31311
31312    /// Similar to "send" but does not shutdown the channel if an error occurs.
31313    pub fn send_no_shutdown_on_err(
31314        self,
31315        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31316    ) -> Result<(), fidl::Error> {
31317        let _result = self.send_raw(result);
31318        self.drop_without_shutdown();
31319        _result
31320    }
31321
31322    fn send_raw(
31323        &self,
31324        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31325    ) -> Result<(), fidl::Error> {
31326        self.control_handle.inner.send::<fidl::encoding::ResultType<
31327            BaseSocketGetReuseAddressResponse,
31328            fidl_fuchsia_posix::Errno,
31329        >>(
31330            result.map(|value| (value,)),
31331            self.tx_id,
31332            0x67b7206b8d1bc0a5,
31333            fidl::encoding::DynamicFlags::empty(),
31334        )
31335    }
31336}
31337
31338#[must_use = "FIDL methods require a response to be sent"]
31339#[derive(Debug)]
31340pub struct BaseSocketGetErrorResponder {
31341    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31342    tx_id: u32,
31343}
31344
31345/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31346/// if the responder is dropped without sending a response, so that the client
31347/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31348impl std::ops::Drop for BaseSocketGetErrorResponder {
31349    fn drop(&mut self) {
31350        self.control_handle.shutdown();
31351        // Safety: drops once, never accessed again
31352        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31353    }
31354}
31355
31356impl fidl::endpoints::Responder for BaseSocketGetErrorResponder {
31357    type ControlHandle = BaseSocketControlHandle;
31358
31359    fn control_handle(&self) -> &BaseSocketControlHandle {
31360        &self.control_handle
31361    }
31362
31363    fn drop_without_shutdown(mut self) {
31364        // Safety: drops once, never accessed again due to mem::forget
31365        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31366        // Prevent Drop from running (which would shut down the channel)
31367        std::mem::forget(self);
31368    }
31369}
31370
31371impl BaseSocketGetErrorResponder {
31372    /// Sends a response to the FIDL transaction.
31373    ///
31374    /// Sets the channel to shutdown if an error occurs.
31375    pub fn send(
31376        self,
31377        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31378    ) -> Result<(), fidl::Error> {
31379        let _result = self.send_raw(result);
31380        if _result.is_err() {
31381            self.control_handle.shutdown();
31382        }
31383        self.drop_without_shutdown();
31384        _result
31385    }
31386
31387    /// Similar to "send" but does not shutdown the channel if an error occurs.
31388    pub fn send_no_shutdown_on_err(
31389        self,
31390        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31391    ) -> Result<(), fidl::Error> {
31392        let _result = self.send_raw(result);
31393        self.drop_without_shutdown();
31394        _result
31395    }
31396
31397    fn send_raw(
31398        &self,
31399        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31400    ) -> Result<(), fidl::Error> {
31401        self.control_handle.inner.send::<fidl::encoding::ResultType<
31402            fidl::encoding::EmptyStruct,
31403            fidl_fuchsia_posix::Errno,
31404        >>(
31405            result,
31406            self.tx_id,
31407            0x5aad39b33e5f6ebb,
31408            fidl::encoding::DynamicFlags::empty(),
31409        )
31410    }
31411}
31412
31413#[must_use = "FIDL methods require a response to be sent"]
31414#[derive(Debug)]
31415pub struct BaseSocketSetBroadcastResponder {
31416    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31417    tx_id: u32,
31418}
31419
31420/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31421/// if the responder is dropped without sending a response, so that the client
31422/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31423impl std::ops::Drop for BaseSocketSetBroadcastResponder {
31424    fn drop(&mut self) {
31425        self.control_handle.shutdown();
31426        // Safety: drops once, never accessed again
31427        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31428    }
31429}
31430
31431impl fidl::endpoints::Responder for BaseSocketSetBroadcastResponder {
31432    type ControlHandle = BaseSocketControlHandle;
31433
31434    fn control_handle(&self) -> &BaseSocketControlHandle {
31435        &self.control_handle
31436    }
31437
31438    fn drop_without_shutdown(mut self) {
31439        // Safety: drops once, never accessed again due to mem::forget
31440        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31441        // Prevent Drop from running (which would shut down the channel)
31442        std::mem::forget(self);
31443    }
31444}
31445
31446impl BaseSocketSetBroadcastResponder {
31447    /// Sends a response to the FIDL transaction.
31448    ///
31449    /// Sets the channel to shutdown if an error occurs.
31450    pub fn send(
31451        self,
31452        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31453    ) -> Result<(), fidl::Error> {
31454        let _result = self.send_raw(result);
31455        if _result.is_err() {
31456            self.control_handle.shutdown();
31457        }
31458        self.drop_without_shutdown();
31459        _result
31460    }
31461
31462    /// Similar to "send" but does not shutdown the channel if an error occurs.
31463    pub fn send_no_shutdown_on_err(
31464        self,
31465        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31466    ) -> Result<(), fidl::Error> {
31467        let _result = self.send_raw(result);
31468        self.drop_without_shutdown();
31469        _result
31470    }
31471
31472    fn send_raw(
31473        &self,
31474        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31475    ) -> Result<(), fidl::Error> {
31476        self.control_handle.inner.send::<fidl::encoding::ResultType<
31477            fidl::encoding::EmptyStruct,
31478            fidl_fuchsia_posix::Errno,
31479        >>(
31480            result,
31481            self.tx_id,
31482            0x6023e081ce3cd947,
31483            fidl::encoding::DynamicFlags::empty(),
31484        )
31485    }
31486}
31487
31488#[must_use = "FIDL methods require a response to be sent"]
31489#[derive(Debug)]
31490pub struct BaseSocketGetBroadcastResponder {
31491    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31492    tx_id: u32,
31493}
31494
31495/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31496/// if the responder is dropped without sending a response, so that the client
31497/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31498impl std::ops::Drop for BaseSocketGetBroadcastResponder {
31499    fn drop(&mut self) {
31500        self.control_handle.shutdown();
31501        // Safety: drops once, never accessed again
31502        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31503    }
31504}
31505
31506impl fidl::endpoints::Responder for BaseSocketGetBroadcastResponder {
31507    type ControlHandle = BaseSocketControlHandle;
31508
31509    fn control_handle(&self) -> &BaseSocketControlHandle {
31510        &self.control_handle
31511    }
31512
31513    fn drop_without_shutdown(mut self) {
31514        // Safety: drops once, never accessed again due to mem::forget
31515        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31516        // Prevent Drop from running (which would shut down the channel)
31517        std::mem::forget(self);
31518    }
31519}
31520
31521impl BaseSocketGetBroadcastResponder {
31522    /// Sends a response to the FIDL transaction.
31523    ///
31524    /// Sets the channel to shutdown if an error occurs.
31525    pub fn send(
31526        self,
31527        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31528    ) -> Result<(), fidl::Error> {
31529        let _result = self.send_raw(result);
31530        if _result.is_err() {
31531            self.control_handle.shutdown();
31532        }
31533        self.drop_without_shutdown();
31534        _result
31535    }
31536
31537    /// Similar to "send" but does not shutdown the channel if an error occurs.
31538    pub fn send_no_shutdown_on_err(
31539        self,
31540        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31541    ) -> Result<(), fidl::Error> {
31542        let _result = self.send_raw(result);
31543        self.drop_without_shutdown();
31544        _result
31545    }
31546
31547    fn send_raw(
31548        &self,
31549        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31550    ) -> Result<(), fidl::Error> {
31551        self.control_handle.inner.send::<fidl::encoding::ResultType<
31552            BaseSocketGetBroadcastResponse,
31553            fidl_fuchsia_posix::Errno,
31554        >>(
31555            result.map(|value| (value,)),
31556            self.tx_id,
31557            0x68796fc556f9780d,
31558            fidl::encoding::DynamicFlags::empty(),
31559        )
31560    }
31561}
31562
31563#[must_use = "FIDL methods require a response to be sent"]
31564#[derive(Debug)]
31565pub struct BaseSocketSetSendBufferResponder {
31566    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31567    tx_id: u32,
31568}
31569
31570/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31571/// if the responder is dropped without sending a response, so that the client
31572/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31573impl std::ops::Drop for BaseSocketSetSendBufferResponder {
31574    fn drop(&mut self) {
31575        self.control_handle.shutdown();
31576        // Safety: drops once, never accessed again
31577        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31578    }
31579}
31580
31581impl fidl::endpoints::Responder for BaseSocketSetSendBufferResponder {
31582    type ControlHandle = BaseSocketControlHandle;
31583
31584    fn control_handle(&self) -> &BaseSocketControlHandle {
31585        &self.control_handle
31586    }
31587
31588    fn drop_without_shutdown(mut self) {
31589        // Safety: drops once, never accessed again due to mem::forget
31590        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31591        // Prevent Drop from running (which would shut down the channel)
31592        std::mem::forget(self);
31593    }
31594}
31595
31596impl BaseSocketSetSendBufferResponder {
31597    /// Sends a response to the FIDL transaction.
31598    ///
31599    /// Sets the channel to shutdown if an error occurs.
31600    pub fn send(
31601        self,
31602        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31603    ) -> Result<(), fidl::Error> {
31604        let _result = self.send_raw(result);
31605        if _result.is_err() {
31606            self.control_handle.shutdown();
31607        }
31608        self.drop_without_shutdown();
31609        _result
31610    }
31611
31612    /// Similar to "send" but does not shutdown the channel if an error occurs.
31613    pub fn send_no_shutdown_on_err(
31614        self,
31615        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31616    ) -> Result<(), fidl::Error> {
31617        let _result = self.send_raw(result);
31618        self.drop_without_shutdown();
31619        _result
31620    }
31621
31622    fn send_raw(
31623        &self,
31624        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31625    ) -> Result<(), fidl::Error> {
31626        self.control_handle.inner.send::<fidl::encoding::ResultType<
31627            fidl::encoding::EmptyStruct,
31628            fidl_fuchsia_posix::Errno,
31629        >>(
31630            result,
31631            self.tx_id,
31632            0x756eac32d73a7a70,
31633            fidl::encoding::DynamicFlags::empty(),
31634        )
31635    }
31636}
31637
31638#[must_use = "FIDL methods require a response to be sent"]
31639#[derive(Debug)]
31640pub struct BaseSocketGetSendBufferResponder {
31641    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31642    tx_id: u32,
31643}
31644
31645/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31646/// if the responder is dropped without sending a response, so that the client
31647/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31648impl std::ops::Drop for BaseSocketGetSendBufferResponder {
31649    fn drop(&mut self) {
31650        self.control_handle.shutdown();
31651        // Safety: drops once, never accessed again
31652        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31653    }
31654}
31655
31656impl fidl::endpoints::Responder for BaseSocketGetSendBufferResponder {
31657    type ControlHandle = BaseSocketControlHandle;
31658
31659    fn control_handle(&self) -> &BaseSocketControlHandle {
31660        &self.control_handle
31661    }
31662
31663    fn drop_without_shutdown(mut self) {
31664        // Safety: drops once, never accessed again due to mem::forget
31665        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31666        // Prevent Drop from running (which would shut down the channel)
31667        std::mem::forget(self);
31668    }
31669}
31670
31671impl BaseSocketGetSendBufferResponder {
31672    /// Sends a response to the FIDL transaction.
31673    ///
31674    /// Sets the channel to shutdown if an error occurs.
31675    pub fn send(
31676        self,
31677        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31678    ) -> Result<(), fidl::Error> {
31679        let _result = self.send_raw(result);
31680        if _result.is_err() {
31681            self.control_handle.shutdown();
31682        }
31683        self.drop_without_shutdown();
31684        _result
31685    }
31686
31687    /// Similar to "send" but does not shutdown the channel if an error occurs.
31688    pub fn send_no_shutdown_on_err(
31689        self,
31690        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31691    ) -> Result<(), fidl::Error> {
31692        let _result = self.send_raw(result);
31693        self.drop_without_shutdown();
31694        _result
31695    }
31696
31697    fn send_raw(
31698        &self,
31699        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31700    ) -> Result<(), fidl::Error> {
31701        self.control_handle.inner.send::<fidl::encoding::ResultType<
31702            BaseSocketGetSendBufferResponse,
31703            fidl_fuchsia_posix::Errno,
31704        >>(
31705            result.map(|value_bytes| (value_bytes,)),
31706            self.tx_id,
31707            0x78a52fd9c7b2410b,
31708            fidl::encoding::DynamicFlags::empty(),
31709        )
31710    }
31711}
31712
31713#[must_use = "FIDL methods require a response to be sent"]
31714#[derive(Debug)]
31715pub struct BaseSocketSetReceiveBufferResponder {
31716    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31717    tx_id: u32,
31718}
31719
31720/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31721/// if the responder is dropped without sending a response, so that the client
31722/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31723impl std::ops::Drop for BaseSocketSetReceiveBufferResponder {
31724    fn drop(&mut self) {
31725        self.control_handle.shutdown();
31726        // Safety: drops once, never accessed again
31727        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31728    }
31729}
31730
31731impl fidl::endpoints::Responder for BaseSocketSetReceiveBufferResponder {
31732    type ControlHandle = BaseSocketControlHandle;
31733
31734    fn control_handle(&self) -> &BaseSocketControlHandle {
31735        &self.control_handle
31736    }
31737
31738    fn drop_without_shutdown(mut self) {
31739        // Safety: drops once, never accessed again due to mem::forget
31740        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31741        // Prevent Drop from running (which would shut down the channel)
31742        std::mem::forget(self);
31743    }
31744}
31745
31746impl BaseSocketSetReceiveBufferResponder {
31747    /// Sends a response to the FIDL transaction.
31748    ///
31749    /// Sets the channel to shutdown if an error occurs.
31750    pub fn send(
31751        self,
31752        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31753    ) -> Result<(), fidl::Error> {
31754        let _result = self.send_raw(result);
31755        if _result.is_err() {
31756            self.control_handle.shutdown();
31757        }
31758        self.drop_without_shutdown();
31759        _result
31760    }
31761
31762    /// Similar to "send" but does not shutdown the channel if an error occurs.
31763    pub fn send_no_shutdown_on_err(
31764        self,
31765        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31766    ) -> Result<(), fidl::Error> {
31767        let _result = self.send_raw(result);
31768        self.drop_without_shutdown();
31769        _result
31770    }
31771
31772    fn send_raw(
31773        &self,
31774        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31775    ) -> Result<(), fidl::Error> {
31776        self.control_handle.inner.send::<fidl::encoding::ResultType<
31777            fidl::encoding::EmptyStruct,
31778            fidl_fuchsia_posix::Errno,
31779        >>(
31780            result,
31781            self.tx_id,
31782            0x6b0cf2f1919c7001,
31783            fidl::encoding::DynamicFlags::empty(),
31784        )
31785    }
31786}
31787
31788#[must_use = "FIDL methods require a response to be sent"]
31789#[derive(Debug)]
31790pub struct BaseSocketGetReceiveBufferResponder {
31791    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31792    tx_id: u32,
31793}
31794
31795/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31796/// if the responder is dropped without sending a response, so that the client
31797/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31798impl std::ops::Drop for BaseSocketGetReceiveBufferResponder {
31799    fn drop(&mut self) {
31800        self.control_handle.shutdown();
31801        // Safety: drops once, never accessed again
31802        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31803    }
31804}
31805
31806impl fidl::endpoints::Responder for BaseSocketGetReceiveBufferResponder {
31807    type ControlHandle = BaseSocketControlHandle;
31808
31809    fn control_handle(&self) -> &BaseSocketControlHandle {
31810        &self.control_handle
31811    }
31812
31813    fn drop_without_shutdown(mut self) {
31814        // Safety: drops once, never accessed again due to mem::forget
31815        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31816        // Prevent Drop from running (which would shut down the channel)
31817        std::mem::forget(self);
31818    }
31819}
31820
31821impl BaseSocketGetReceiveBufferResponder {
31822    /// Sends a response to the FIDL transaction.
31823    ///
31824    /// Sets the channel to shutdown if an error occurs.
31825    pub fn send(
31826        self,
31827        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31828    ) -> Result<(), fidl::Error> {
31829        let _result = self.send_raw(result);
31830        if _result.is_err() {
31831            self.control_handle.shutdown();
31832        }
31833        self.drop_without_shutdown();
31834        _result
31835    }
31836
31837    /// Similar to "send" but does not shutdown the channel if an error occurs.
31838    pub fn send_no_shutdown_on_err(
31839        self,
31840        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31841    ) -> Result<(), fidl::Error> {
31842        let _result = self.send_raw(result);
31843        self.drop_without_shutdown();
31844        _result
31845    }
31846
31847    fn send_raw(
31848        &self,
31849        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31850    ) -> Result<(), fidl::Error> {
31851        self.control_handle.inner.send::<fidl::encoding::ResultType<
31852            BaseSocketGetReceiveBufferResponse,
31853            fidl_fuchsia_posix::Errno,
31854        >>(
31855            result.map(|value_bytes| (value_bytes,)),
31856            self.tx_id,
31857            0x14c1a4b64f709e5c,
31858            fidl::encoding::DynamicFlags::empty(),
31859        )
31860    }
31861}
31862
31863#[must_use = "FIDL methods require a response to be sent"]
31864#[derive(Debug)]
31865pub struct BaseSocketSetKeepAliveResponder {
31866    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31867    tx_id: u32,
31868}
31869
31870/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31871/// if the responder is dropped without sending a response, so that the client
31872/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31873impl std::ops::Drop for BaseSocketSetKeepAliveResponder {
31874    fn drop(&mut self) {
31875        self.control_handle.shutdown();
31876        // Safety: drops once, never accessed again
31877        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31878    }
31879}
31880
31881impl fidl::endpoints::Responder for BaseSocketSetKeepAliveResponder {
31882    type ControlHandle = BaseSocketControlHandle;
31883
31884    fn control_handle(&self) -> &BaseSocketControlHandle {
31885        &self.control_handle
31886    }
31887
31888    fn drop_without_shutdown(mut self) {
31889        // Safety: drops once, never accessed again due to mem::forget
31890        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31891        // Prevent Drop from running (which would shut down the channel)
31892        std::mem::forget(self);
31893    }
31894}
31895
31896impl BaseSocketSetKeepAliveResponder {
31897    /// Sends a response to the FIDL transaction.
31898    ///
31899    /// Sets the channel to shutdown if an error occurs.
31900    pub fn send(
31901        self,
31902        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31903    ) -> Result<(), fidl::Error> {
31904        let _result = self.send_raw(result);
31905        if _result.is_err() {
31906            self.control_handle.shutdown();
31907        }
31908        self.drop_without_shutdown();
31909        _result
31910    }
31911
31912    /// Similar to "send" but does not shutdown the channel if an error occurs.
31913    pub fn send_no_shutdown_on_err(
31914        self,
31915        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31916    ) -> Result<(), fidl::Error> {
31917        let _result = self.send_raw(result);
31918        self.drop_without_shutdown();
31919        _result
31920    }
31921
31922    fn send_raw(
31923        &self,
31924        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31925    ) -> Result<(), fidl::Error> {
31926        self.control_handle.inner.send::<fidl::encoding::ResultType<
31927            fidl::encoding::EmptyStruct,
31928            fidl_fuchsia_posix::Errno,
31929        >>(
31930            result,
31931            self.tx_id,
31932            0x572df8f0b920d2c7,
31933            fidl::encoding::DynamicFlags::empty(),
31934        )
31935    }
31936}
31937
31938#[must_use = "FIDL methods require a response to be sent"]
31939#[derive(Debug)]
31940pub struct BaseSocketGetKeepAliveResponder {
31941    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31942    tx_id: u32,
31943}
31944
31945/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31946/// if the responder is dropped without sending a response, so that the client
31947/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31948impl std::ops::Drop for BaseSocketGetKeepAliveResponder {
31949    fn drop(&mut self) {
31950        self.control_handle.shutdown();
31951        // Safety: drops once, never accessed again
31952        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31953    }
31954}
31955
31956impl fidl::endpoints::Responder for BaseSocketGetKeepAliveResponder {
31957    type ControlHandle = BaseSocketControlHandle;
31958
31959    fn control_handle(&self) -> &BaseSocketControlHandle {
31960        &self.control_handle
31961    }
31962
31963    fn drop_without_shutdown(mut self) {
31964        // Safety: drops once, never accessed again due to mem::forget
31965        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31966        // Prevent Drop from running (which would shut down the channel)
31967        std::mem::forget(self);
31968    }
31969}
31970
31971impl BaseSocketGetKeepAliveResponder {
31972    /// Sends a response to the FIDL transaction.
31973    ///
31974    /// Sets the channel to shutdown if an error occurs.
31975    pub fn send(
31976        self,
31977        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31978    ) -> Result<(), fidl::Error> {
31979        let _result = self.send_raw(result);
31980        if _result.is_err() {
31981            self.control_handle.shutdown();
31982        }
31983        self.drop_without_shutdown();
31984        _result
31985    }
31986
31987    /// Similar to "send" but does not shutdown the channel if an error occurs.
31988    pub fn send_no_shutdown_on_err(
31989        self,
31990        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31991    ) -> Result<(), fidl::Error> {
31992        let _result = self.send_raw(result);
31993        self.drop_without_shutdown();
31994        _result
31995    }
31996
31997    fn send_raw(
31998        &self,
31999        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32000    ) -> Result<(), fidl::Error> {
32001        self.control_handle.inner.send::<fidl::encoding::ResultType<
32002            BaseSocketGetKeepAliveResponse,
32003            fidl_fuchsia_posix::Errno,
32004        >>(
32005            result.map(|value| (value,)),
32006            self.tx_id,
32007            0x2dd29d3215f2c9d2,
32008            fidl::encoding::DynamicFlags::empty(),
32009        )
32010    }
32011}
32012
32013#[must_use = "FIDL methods require a response to be sent"]
32014#[derive(Debug)]
32015pub struct BaseSocketSetOutOfBandInlineResponder {
32016    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32017    tx_id: u32,
32018}
32019
32020/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32021/// if the responder is dropped without sending a response, so that the client
32022/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32023impl std::ops::Drop for BaseSocketSetOutOfBandInlineResponder {
32024    fn drop(&mut self) {
32025        self.control_handle.shutdown();
32026        // Safety: drops once, never accessed again
32027        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32028    }
32029}
32030
32031impl fidl::endpoints::Responder for BaseSocketSetOutOfBandInlineResponder {
32032    type ControlHandle = BaseSocketControlHandle;
32033
32034    fn control_handle(&self) -> &BaseSocketControlHandle {
32035        &self.control_handle
32036    }
32037
32038    fn drop_without_shutdown(mut self) {
32039        // Safety: drops once, never accessed again due to mem::forget
32040        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32041        // Prevent Drop from running (which would shut down the channel)
32042        std::mem::forget(self);
32043    }
32044}
32045
32046impl BaseSocketSetOutOfBandInlineResponder {
32047    /// Sends a response to the FIDL transaction.
32048    ///
32049    /// Sets the channel to shutdown if an error occurs.
32050    pub fn send(
32051        self,
32052        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32053    ) -> Result<(), fidl::Error> {
32054        let _result = self.send_raw(result);
32055        if _result.is_err() {
32056            self.control_handle.shutdown();
32057        }
32058        self.drop_without_shutdown();
32059        _result
32060    }
32061
32062    /// Similar to "send" but does not shutdown the channel if an error occurs.
32063    pub fn send_no_shutdown_on_err(
32064        self,
32065        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32066    ) -> Result<(), fidl::Error> {
32067        let _result = self.send_raw(result);
32068        self.drop_without_shutdown();
32069        _result
32070    }
32071
32072    fn send_raw(
32073        &self,
32074        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32075    ) -> Result<(), fidl::Error> {
32076        self.control_handle.inner.send::<fidl::encoding::ResultType<
32077            fidl::encoding::EmptyStruct,
32078            fidl_fuchsia_posix::Errno,
32079        >>(
32080            result,
32081            self.tx_id,
32082            0x3ecb49968bee439,
32083            fidl::encoding::DynamicFlags::empty(),
32084        )
32085    }
32086}
32087
32088#[must_use = "FIDL methods require a response to be sent"]
32089#[derive(Debug)]
32090pub struct BaseSocketGetOutOfBandInlineResponder {
32091    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32092    tx_id: u32,
32093}
32094
32095/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32096/// if the responder is dropped without sending a response, so that the client
32097/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32098impl std::ops::Drop for BaseSocketGetOutOfBandInlineResponder {
32099    fn drop(&mut self) {
32100        self.control_handle.shutdown();
32101        // Safety: drops once, never accessed again
32102        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32103    }
32104}
32105
32106impl fidl::endpoints::Responder for BaseSocketGetOutOfBandInlineResponder {
32107    type ControlHandle = BaseSocketControlHandle;
32108
32109    fn control_handle(&self) -> &BaseSocketControlHandle {
32110        &self.control_handle
32111    }
32112
32113    fn drop_without_shutdown(mut self) {
32114        // Safety: drops once, never accessed again due to mem::forget
32115        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32116        // Prevent Drop from running (which would shut down the channel)
32117        std::mem::forget(self);
32118    }
32119}
32120
32121impl BaseSocketGetOutOfBandInlineResponder {
32122    /// Sends a response to the FIDL transaction.
32123    ///
32124    /// Sets the channel to shutdown if an error occurs.
32125    pub fn send(
32126        self,
32127        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32128    ) -> Result<(), fidl::Error> {
32129        let _result = self.send_raw(result);
32130        if _result.is_err() {
32131            self.control_handle.shutdown();
32132        }
32133        self.drop_without_shutdown();
32134        _result
32135    }
32136
32137    /// Similar to "send" but does not shutdown the channel if an error occurs.
32138    pub fn send_no_shutdown_on_err(
32139        self,
32140        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32141    ) -> Result<(), fidl::Error> {
32142        let _result = self.send_raw(result);
32143        self.drop_without_shutdown();
32144        _result
32145    }
32146
32147    fn send_raw(
32148        &self,
32149        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32150    ) -> Result<(), fidl::Error> {
32151        self.control_handle.inner.send::<fidl::encoding::ResultType<
32152            BaseSocketGetOutOfBandInlineResponse,
32153            fidl_fuchsia_posix::Errno,
32154        >>(
32155            result.map(|value| (value,)),
32156            self.tx_id,
32157            0x348c1ab3aeca1745,
32158            fidl::encoding::DynamicFlags::empty(),
32159        )
32160    }
32161}
32162
32163#[must_use = "FIDL methods require a response to be sent"]
32164#[derive(Debug)]
32165pub struct BaseSocketSetNoCheckResponder {
32166    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32167    tx_id: u32,
32168}
32169
32170/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32171/// if the responder is dropped without sending a response, so that the client
32172/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32173impl std::ops::Drop for BaseSocketSetNoCheckResponder {
32174    fn drop(&mut self) {
32175        self.control_handle.shutdown();
32176        // Safety: drops once, never accessed again
32177        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32178    }
32179}
32180
32181impl fidl::endpoints::Responder for BaseSocketSetNoCheckResponder {
32182    type ControlHandle = BaseSocketControlHandle;
32183
32184    fn control_handle(&self) -> &BaseSocketControlHandle {
32185        &self.control_handle
32186    }
32187
32188    fn drop_without_shutdown(mut self) {
32189        // Safety: drops once, never accessed again due to mem::forget
32190        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32191        // Prevent Drop from running (which would shut down the channel)
32192        std::mem::forget(self);
32193    }
32194}
32195
32196impl BaseSocketSetNoCheckResponder {
32197    /// Sends a response to the FIDL transaction.
32198    ///
32199    /// Sets the channel to shutdown if an error occurs.
32200    pub fn send(
32201        self,
32202        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32203    ) -> Result<(), fidl::Error> {
32204        let _result = self.send_raw(result);
32205        if _result.is_err() {
32206            self.control_handle.shutdown();
32207        }
32208        self.drop_without_shutdown();
32209        _result
32210    }
32211
32212    /// Similar to "send" but does not shutdown the channel if an error occurs.
32213    pub fn send_no_shutdown_on_err(
32214        self,
32215        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32216    ) -> Result<(), fidl::Error> {
32217        let _result = self.send_raw(result);
32218        self.drop_without_shutdown();
32219        _result
32220    }
32221
32222    fn send_raw(
32223        &self,
32224        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32225    ) -> Result<(), fidl::Error> {
32226        self.control_handle.inner.send::<fidl::encoding::ResultType<
32227            fidl::encoding::EmptyStruct,
32228            fidl_fuchsia_posix::Errno,
32229        >>(
32230            result,
32231            self.tx_id,
32232            0x6bbf00c53a4c78c2,
32233            fidl::encoding::DynamicFlags::empty(),
32234        )
32235    }
32236}
32237
32238#[must_use = "FIDL methods require a response to be sent"]
32239#[derive(Debug)]
32240pub struct BaseSocketGetNoCheckResponder {
32241    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32242    tx_id: u32,
32243}
32244
32245/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32246/// if the responder is dropped without sending a response, so that the client
32247/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32248impl std::ops::Drop for BaseSocketGetNoCheckResponder {
32249    fn drop(&mut self) {
32250        self.control_handle.shutdown();
32251        // Safety: drops once, never accessed again
32252        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32253    }
32254}
32255
32256impl fidl::endpoints::Responder for BaseSocketGetNoCheckResponder {
32257    type ControlHandle = BaseSocketControlHandle;
32258
32259    fn control_handle(&self) -> &BaseSocketControlHandle {
32260        &self.control_handle
32261    }
32262
32263    fn drop_without_shutdown(mut self) {
32264        // Safety: drops once, never accessed again due to mem::forget
32265        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32266        // Prevent Drop from running (which would shut down the channel)
32267        std::mem::forget(self);
32268    }
32269}
32270
32271impl BaseSocketGetNoCheckResponder {
32272    /// Sends a response to the FIDL transaction.
32273    ///
32274    /// Sets the channel to shutdown if an error occurs.
32275    pub fn send(
32276        self,
32277        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32278    ) -> Result<(), fidl::Error> {
32279        let _result = self.send_raw(result);
32280        if _result.is_err() {
32281            self.control_handle.shutdown();
32282        }
32283        self.drop_without_shutdown();
32284        _result
32285    }
32286
32287    /// Similar to "send" but does not shutdown the channel if an error occurs.
32288    pub fn send_no_shutdown_on_err(
32289        self,
32290        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32291    ) -> Result<(), fidl::Error> {
32292        let _result = self.send_raw(result);
32293        self.drop_without_shutdown();
32294        _result
32295    }
32296
32297    fn send_raw(
32298        &self,
32299        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32300    ) -> Result<(), fidl::Error> {
32301        self.control_handle.inner.send::<fidl::encoding::ResultType<
32302            BaseSocketGetNoCheckResponse,
32303            fidl_fuchsia_posix::Errno,
32304        >>(
32305            result.map(|value| (value,)),
32306            self.tx_id,
32307            0x2cd4249286417694,
32308            fidl::encoding::DynamicFlags::empty(),
32309        )
32310    }
32311}
32312
32313#[must_use = "FIDL methods require a response to be sent"]
32314#[derive(Debug)]
32315pub struct BaseSocketSetLingerResponder {
32316    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32317    tx_id: u32,
32318}
32319
32320/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32321/// if the responder is dropped without sending a response, so that the client
32322/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32323impl std::ops::Drop for BaseSocketSetLingerResponder {
32324    fn drop(&mut self) {
32325        self.control_handle.shutdown();
32326        // Safety: drops once, never accessed again
32327        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32328    }
32329}
32330
32331impl fidl::endpoints::Responder for BaseSocketSetLingerResponder {
32332    type ControlHandle = BaseSocketControlHandle;
32333
32334    fn control_handle(&self) -> &BaseSocketControlHandle {
32335        &self.control_handle
32336    }
32337
32338    fn drop_without_shutdown(mut self) {
32339        // Safety: drops once, never accessed again due to mem::forget
32340        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32341        // Prevent Drop from running (which would shut down the channel)
32342        std::mem::forget(self);
32343    }
32344}
32345
32346impl BaseSocketSetLingerResponder {
32347    /// Sends a response to the FIDL transaction.
32348    ///
32349    /// Sets the channel to shutdown if an error occurs.
32350    pub fn send(
32351        self,
32352        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32353    ) -> Result<(), fidl::Error> {
32354        let _result = self.send_raw(result);
32355        if _result.is_err() {
32356            self.control_handle.shutdown();
32357        }
32358        self.drop_without_shutdown();
32359        _result
32360    }
32361
32362    /// Similar to "send" but does not shutdown the channel if an error occurs.
32363    pub fn send_no_shutdown_on_err(
32364        self,
32365        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32366    ) -> Result<(), fidl::Error> {
32367        let _result = self.send_raw(result);
32368        self.drop_without_shutdown();
32369        _result
32370    }
32371
32372    fn send_raw(
32373        &self,
32374        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32375    ) -> Result<(), fidl::Error> {
32376        self.control_handle.inner.send::<fidl::encoding::ResultType<
32377            fidl::encoding::EmptyStruct,
32378            fidl_fuchsia_posix::Errno,
32379        >>(
32380            result,
32381            self.tx_id,
32382            0x45386351246e998e,
32383            fidl::encoding::DynamicFlags::empty(),
32384        )
32385    }
32386}
32387
32388#[must_use = "FIDL methods require a response to be sent"]
32389#[derive(Debug)]
32390pub struct BaseSocketGetLingerResponder {
32391    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32392    tx_id: u32,
32393}
32394
32395/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32396/// if the responder is dropped without sending a response, so that the client
32397/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32398impl std::ops::Drop for BaseSocketGetLingerResponder {
32399    fn drop(&mut self) {
32400        self.control_handle.shutdown();
32401        // Safety: drops once, never accessed again
32402        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32403    }
32404}
32405
32406impl fidl::endpoints::Responder for BaseSocketGetLingerResponder {
32407    type ControlHandle = BaseSocketControlHandle;
32408
32409    fn control_handle(&self) -> &BaseSocketControlHandle {
32410        &self.control_handle
32411    }
32412
32413    fn drop_without_shutdown(mut self) {
32414        // Safety: drops once, never accessed again due to mem::forget
32415        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32416        // Prevent Drop from running (which would shut down the channel)
32417        std::mem::forget(self);
32418    }
32419}
32420
32421impl BaseSocketGetLingerResponder {
32422    /// Sends a response to the FIDL transaction.
32423    ///
32424    /// Sets the channel to shutdown if an error occurs.
32425    pub fn send(
32426        self,
32427        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
32428    ) -> Result<(), fidl::Error> {
32429        let _result = self.send_raw(result);
32430        if _result.is_err() {
32431            self.control_handle.shutdown();
32432        }
32433        self.drop_without_shutdown();
32434        _result
32435    }
32436
32437    /// Similar to "send" but does not shutdown the channel if an error occurs.
32438    pub fn send_no_shutdown_on_err(
32439        self,
32440        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
32441    ) -> Result<(), fidl::Error> {
32442        let _result = self.send_raw(result);
32443        self.drop_without_shutdown();
32444        _result
32445    }
32446
32447    fn send_raw(
32448        &self,
32449        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
32450    ) -> Result<(), fidl::Error> {
32451        self.control_handle.inner.send::<fidl::encoding::ResultType<
32452            BaseSocketGetLingerResponse,
32453            fidl_fuchsia_posix::Errno,
32454        >>(
32455            result,
32456            self.tx_id,
32457            0x48eb20fc5ccb0e45,
32458            fidl::encoding::DynamicFlags::empty(),
32459        )
32460    }
32461}
32462
32463#[must_use = "FIDL methods require a response to be sent"]
32464#[derive(Debug)]
32465pub struct BaseSocketSetReusePortResponder {
32466    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32467    tx_id: u32,
32468}
32469
32470/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32471/// if the responder is dropped without sending a response, so that the client
32472/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32473impl std::ops::Drop for BaseSocketSetReusePortResponder {
32474    fn drop(&mut self) {
32475        self.control_handle.shutdown();
32476        // Safety: drops once, never accessed again
32477        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32478    }
32479}
32480
32481impl fidl::endpoints::Responder for BaseSocketSetReusePortResponder {
32482    type ControlHandle = BaseSocketControlHandle;
32483
32484    fn control_handle(&self) -> &BaseSocketControlHandle {
32485        &self.control_handle
32486    }
32487
32488    fn drop_without_shutdown(mut self) {
32489        // Safety: drops once, never accessed again due to mem::forget
32490        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32491        // Prevent Drop from running (which would shut down the channel)
32492        std::mem::forget(self);
32493    }
32494}
32495
32496impl BaseSocketSetReusePortResponder {
32497    /// Sends a response to the FIDL transaction.
32498    ///
32499    /// Sets the channel to shutdown if an error occurs.
32500    pub fn send(
32501        self,
32502        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32503    ) -> Result<(), fidl::Error> {
32504        let _result = self.send_raw(result);
32505        if _result.is_err() {
32506            self.control_handle.shutdown();
32507        }
32508        self.drop_without_shutdown();
32509        _result
32510    }
32511
32512    /// Similar to "send" but does not shutdown the channel if an error occurs.
32513    pub fn send_no_shutdown_on_err(
32514        self,
32515        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32516    ) -> Result<(), fidl::Error> {
32517        let _result = self.send_raw(result);
32518        self.drop_without_shutdown();
32519        _result
32520    }
32521
32522    fn send_raw(
32523        &self,
32524        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32525    ) -> Result<(), fidl::Error> {
32526        self.control_handle.inner.send::<fidl::encoding::ResultType<
32527            fidl::encoding::EmptyStruct,
32528            fidl_fuchsia_posix::Errno,
32529        >>(
32530            result,
32531            self.tx_id,
32532            0x24dd3e5cb36d9ccb,
32533            fidl::encoding::DynamicFlags::empty(),
32534        )
32535    }
32536}
32537
32538#[must_use = "FIDL methods require a response to be sent"]
32539#[derive(Debug)]
32540pub struct BaseSocketGetReusePortResponder {
32541    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32542    tx_id: u32,
32543}
32544
32545/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32546/// if the responder is dropped without sending a response, so that the client
32547/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32548impl std::ops::Drop for BaseSocketGetReusePortResponder {
32549    fn drop(&mut self) {
32550        self.control_handle.shutdown();
32551        // Safety: drops once, never accessed again
32552        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32553    }
32554}
32555
32556impl fidl::endpoints::Responder for BaseSocketGetReusePortResponder {
32557    type ControlHandle = BaseSocketControlHandle;
32558
32559    fn control_handle(&self) -> &BaseSocketControlHandle {
32560        &self.control_handle
32561    }
32562
32563    fn drop_without_shutdown(mut self) {
32564        // Safety: drops once, never accessed again due to mem::forget
32565        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32566        // Prevent Drop from running (which would shut down the channel)
32567        std::mem::forget(self);
32568    }
32569}
32570
32571impl BaseSocketGetReusePortResponder {
32572    /// Sends a response to the FIDL transaction.
32573    ///
32574    /// Sets the channel to shutdown if an error occurs.
32575    pub fn send(
32576        self,
32577        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32578    ) -> Result<(), fidl::Error> {
32579        let _result = self.send_raw(result);
32580        if _result.is_err() {
32581            self.control_handle.shutdown();
32582        }
32583        self.drop_without_shutdown();
32584        _result
32585    }
32586
32587    /// Similar to "send" but does not shutdown the channel if an error occurs.
32588    pub fn send_no_shutdown_on_err(
32589        self,
32590        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32591    ) -> Result<(), fidl::Error> {
32592        let _result = self.send_raw(result);
32593        self.drop_without_shutdown();
32594        _result
32595    }
32596
32597    fn send_raw(
32598        &self,
32599        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32600    ) -> Result<(), fidl::Error> {
32601        self.control_handle.inner.send::<fidl::encoding::ResultType<
32602            BaseSocketGetReusePortResponse,
32603            fidl_fuchsia_posix::Errno,
32604        >>(
32605            result.map(|value| (value,)),
32606            self.tx_id,
32607            0x7a112c1ab54ff828,
32608            fidl::encoding::DynamicFlags::empty(),
32609        )
32610    }
32611}
32612
32613#[must_use = "FIDL methods require a response to be sent"]
32614#[derive(Debug)]
32615pub struct BaseSocketGetAcceptConnResponder {
32616    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32617    tx_id: u32,
32618}
32619
32620/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32621/// if the responder is dropped without sending a response, so that the client
32622/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32623impl std::ops::Drop for BaseSocketGetAcceptConnResponder {
32624    fn drop(&mut self) {
32625        self.control_handle.shutdown();
32626        // Safety: drops once, never accessed again
32627        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32628    }
32629}
32630
32631impl fidl::endpoints::Responder for BaseSocketGetAcceptConnResponder {
32632    type ControlHandle = BaseSocketControlHandle;
32633
32634    fn control_handle(&self) -> &BaseSocketControlHandle {
32635        &self.control_handle
32636    }
32637
32638    fn drop_without_shutdown(mut self) {
32639        // Safety: drops once, never accessed again due to mem::forget
32640        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32641        // Prevent Drop from running (which would shut down the channel)
32642        std::mem::forget(self);
32643    }
32644}
32645
32646impl BaseSocketGetAcceptConnResponder {
32647    /// Sends a response to the FIDL transaction.
32648    ///
32649    /// Sets the channel to shutdown if an error occurs.
32650    pub fn send(
32651        self,
32652        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32653    ) -> Result<(), fidl::Error> {
32654        let _result = self.send_raw(result);
32655        if _result.is_err() {
32656            self.control_handle.shutdown();
32657        }
32658        self.drop_without_shutdown();
32659        _result
32660    }
32661
32662    /// Similar to "send" but does not shutdown the channel if an error occurs.
32663    pub fn send_no_shutdown_on_err(
32664        self,
32665        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32666    ) -> Result<(), fidl::Error> {
32667        let _result = self.send_raw(result);
32668        self.drop_without_shutdown();
32669        _result
32670    }
32671
32672    fn send_raw(
32673        &self,
32674        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32675    ) -> Result<(), fidl::Error> {
32676        self.control_handle.inner.send::<fidl::encoding::ResultType<
32677            BaseSocketGetAcceptConnResponse,
32678            fidl_fuchsia_posix::Errno,
32679        >>(
32680            result.map(|value| (value,)),
32681            self.tx_id,
32682            0x67ce6db6c2ec8966,
32683            fidl::encoding::DynamicFlags::empty(),
32684        )
32685    }
32686}
32687
32688#[must_use = "FIDL methods require a response to be sent"]
32689#[derive(Debug)]
32690pub struct BaseSocketSetBindToDeviceResponder {
32691    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32692    tx_id: u32,
32693}
32694
32695/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32696/// if the responder is dropped without sending a response, so that the client
32697/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32698impl std::ops::Drop for BaseSocketSetBindToDeviceResponder {
32699    fn drop(&mut self) {
32700        self.control_handle.shutdown();
32701        // Safety: drops once, never accessed again
32702        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32703    }
32704}
32705
32706impl fidl::endpoints::Responder for BaseSocketSetBindToDeviceResponder {
32707    type ControlHandle = BaseSocketControlHandle;
32708
32709    fn control_handle(&self) -> &BaseSocketControlHandle {
32710        &self.control_handle
32711    }
32712
32713    fn drop_without_shutdown(mut self) {
32714        // Safety: drops once, never accessed again due to mem::forget
32715        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32716        // Prevent Drop from running (which would shut down the channel)
32717        std::mem::forget(self);
32718    }
32719}
32720
32721impl BaseSocketSetBindToDeviceResponder {
32722    /// Sends a response to the FIDL transaction.
32723    ///
32724    /// Sets the channel to shutdown if an error occurs.
32725    pub fn send(
32726        self,
32727        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32728    ) -> Result<(), fidl::Error> {
32729        let _result = self.send_raw(result);
32730        if _result.is_err() {
32731            self.control_handle.shutdown();
32732        }
32733        self.drop_without_shutdown();
32734        _result
32735    }
32736
32737    /// Similar to "send" but does not shutdown the channel if an error occurs.
32738    pub fn send_no_shutdown_on_err(
32739        self,
32740        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32741    ) -> Result<(), fidl::Error> {
32742        let _result = self.send_raw(result);
32743        self.drop_without_shutdown();
32744        _result
32745    }
32746
32747    fn send_raw(
32748        &self,
32749        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32750    ) -> Result<(), fidl::Error> {
32751        self.control_handle.inner.send::<fidl::encoding::ResultType<
32752            fidl::encoding::EmptyStruct,
32753            fidl_fuchsia_posix::Errno,
32754        >>(
32755            result,
32756            self.tx_id,
32757            0x2118b483f28aafc4,
32758            fidl::encoding::DynamicFlags::empty(),
32759        )
32760    }
32761}
32762
32763#[must_use = "FIDL methods require a response to be sent"]
32764#[derive(Debug)]
32765pub struct BaseSocketGetBindToDeviceResponder {
32766    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32767    tx_id: u32,
32768}
32769
32770/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32771/// if the responder is dropped without sending a response, so that the client
32772/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32773impl std::ops::Drop for BaseSocketGetBindToDeviceResponder {
32774    fn drop(&mut self) {
32775        self.control_handle.shutdown();
32776        // Safety: drops once, never accessed again
32777        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32778    }
32779}
32780
32781impl fidl::endpoints::Responder for BaseSocketGetBindToDeviceResponder {
32782    type ControlHandle = BaseSocketControlHandle;
32783
32784    fn control_handle(&self) -> &BaseSocketControlHandle {
32785        &self.control_handle
32786    }
32787
32788    fn drop_without_shutdown(mut self) {
32789        // Safety: drops once, never accessed again due to mem::forget
32790        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32791        // Prevent Drop from running (which would shut down the channel)
32792        std::mem::forget(self);
32793    }
32794}
32795
32796impl BaseSocketGetBindToDeviceResponder {
32797    /// Sends a response to the FIDL transaction.
32798    ///
32799    /// Sets the channel to shutdown if an error occurs.
32800    pub fn send(
32801        self,
32802        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
32803    ) -> Result<(), fidl::Error> {
32804        let _result = self.send_raw(result);
32805        if _result.is_err() {
32806            self.control_handle.shutdown();
32807        }
32808        self.drop_without_shutdown();
32809        _result
32810    }
32811
32812    /// Similar to "send" but does not shutdown the channel if an error occurs.
32813    pub fn send_no_shutdown_on_err(
32814        self,
32815        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
32816    ) -> Result<(), fidl::Error> {
32817        let _result = self.send_raw(result);
32818        self.drop_without_shutdown();
32819        _result
32820    }
32821
32822    fn send_raw(
32823        &self,
32824        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
32825    ) -> Result<(), fidl::Error> {
32826        self.control_handle.inner.send::<fidl::encoding::ResultType<
32827            BaseSocketGetBindToDeviceResponse,
32828            fidl_fuchsia_posix::Errno,
32829        >>(
32830            result.map(|value| (value,)),
32831            self.tx_id,
32832            0x1ab1fbf0ef7906c8,
32833            fidl::encoding::DynamicFlags::empty(),
32834        )
32835    }
32836}
32837
32838#[must_use = "FIDL methods require a response to be sent"]
32839#[derive(Debug)]
32840pub struct BaseSocketSetBindToInterfaceIndexResponder {
32841    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32842    tx_id: u32,
32843}
32844
32845/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32846/// if the responder is dropped without sending a response, so that the client
32847/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32848impl std::ops::Drop for BaseSocketSetBindToInterfaceIndexResponder {
32849    fn drop(&mut self) {
32850        self.control_handle.shutdown();
32851        // Safety: drops once, never accessed again
32852        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32853    }
32854}
32855
32856impl fidl::endpoints::Responder for BaseSocketSetBindToInterfaceIndexResponder {
32857    type ControlHandle = BaseSocketControlHandle;
32858
32859    fn control_handle(&self) -> &BaseSocketControlHandle {
32860        &self.control_handle
32861    }
32862
32863    fn drop_without_shutdown(mut self) {
32864        // Safety: drops once, never accessed again due to mem::forget
32865        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32866        // Prevent Drop from running (which would shut down the channel)
32867        std::mem::forget(self);
32868    }
32869}
32870
32871impl BaseSocketSetBindToInterfaceIndexResponder {
32872    /// Sends a response to the FIDL transaction.
32873    ///
32874    /// Sets the channel to shutdown if an error occurs.
32875    pub fn send(
32876        self,
32877        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32878    ) -> Result<(), fidl::Error> {
32879        let _result = self.send_raw(result);
32880        if _result.is_err() {
32881            self.control_handle.shutdown();
32882        }
32883        self.drop_without_shutdown();
32884        _result
32885    }
32886
32887    /// Similar to "send" but does not shutdown the channel if an error occurs.
32888    pub fn send_no_shutdown_on_err(
32889        self,
32890        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32891    ) -> Result<(), fidl::Error> {
32892        let _result = self.send_raw(result);
32893        self.drop_without_shutdown();
32894        _result
32895    }
32896
32897    fn send_raw(
32898        &self,
32899        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32900    ) -> Result<(), fidl::Error> {
32901        self.control_handle.inner.send::<fidl::encoding::ResultType<
32902            fidl::encoding::EmptyStruct,
32903            fidl_fuchsia_posix::Errno,
32904        >>(
32905            result,
32906            self.tx_id,
32907            0x6e387a0def00821,
32908            fidl::encoding::DynamicFlags::empty(),
32909        )
32910    }
32911}
32912
32913#[must_use = "FIDL methods require a response to be sent"]
32914#[derive(Debug)]
32915pub struct BaseSocketGetBindToInterfaceIndexResponder {
32916    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32917    tx_id: u32,
32918}
32919
32920/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32921/// if the responder is dropped without sending a response, so that the client
32922/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32923impl std::ops::Drop for BaseSocketGetBindToInterfaceIndexResponder {
32924    fn drop(&mut self) {
32925        self.control_handle.shutdown();
32926        // Safety: drops once, never accessed again
32927        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32928    }
32929}
32930
32931impl fidl::endpoints::Responder for BaseSocketGetBindToInterfaceIndexResponder {
32932    type ControlHandle = BaseSocketControlHandle;
32933
32934    fn control_handle(&self) -> &BaseSocketControlHandle {
32935        &self.control_handle
32936    }
32937
32938    fn drop_without_shutdown(mut self) {
32939        // Safety: drops once, never accessed again due to mem::forget
32940        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32941        // Prevent Drop from running (which would shut down the channel)
32942        std::mem::forget(self);
32943    }
32944}
32945
32946impl BaseSocketGetBindToInterfaceIndexResponder {
32947    /// Sends a response to the FIDL transaction.
32948    ///
32949    /// Sets the channel to shutdown if an error occurs.
32950    pub fn send(
32951        self,
32952        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32953    ) -> Result<(), fidl::Error> {
32954        let _result = self.send_raw(result);
32955        if _result.is_err() {
32956            self.control_handle.shutdown();
32957        }
32958        self.drop_without_shutdown();
32959        _result
32960    }
32961
32962    /// Similar to "send" but does not shutdown the channel if an error occurs.
32963    pub fn send_no_shutdown_on_err(
32964        self,
32965        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32966    ) -> Result<(), fidl::Error> {
32967        let _result = self.send_raw(result);
32968        self.drop_without_shutdown();
32969        _result
32970    }
32971
32972    fn send_raw(
32973        &self,
32974        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32975    ) -> Result<(), fidl::Error> {
32976        self.control_handle.inner.send::<fidl::encoding::ResultType<
32977            BaseSocketGetBindToInterfaceIndexResponse,
32978            fidl_fuchsia_posix::Errno,
32979        >>(
32980            result.map(|value| (value,)),
32981            self.tx_id,
32982            0x59c31dd3e3078295,
32983            fidl::encoding::DynamicFlags::empty(),
32984        )
32985    }
32986}
32987
32988#[must_use = "FIDL methods require a response to be sent"]
32989#[derive(Debug)]
32990pub struct BaseSocketSetTimestampResponder {
32991    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32992    tx_id: u32,
32993}
32994
32995/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32996/// if the responder is dropped without sending a response, so that the client
32997/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32998impl std::ops::Drop for BaseSocketSetTimestampResponder {
32999    fn drop(&mut self) {
33000        self.control_handle.shutdown();
33001        // Safety: drops once, never accessed again
33002        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33003    }
33004}
33005
33006impl fidl::endpoints::Responder for BaseSocketSetTimestampResponder {
33007    type ControlHandle = BaseSocketControlHandle;
33008
33009    fn control_handle(&self) -> &BaseSocketControlHandle {
33010        &self.control_handle
33011    }
33012
33013    fn drop_without_shutdown(mut self) {
33014        // Safety: drops once, never accessed again due to mem::forget
33015        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33016        // Prevent Drop from running (which would shut down the channel)
33017        std::mem::forget(self);
33018    }
33019}
33020
33021impl BaseSocketSetTimestampResponder {
33022    /// Sends a response to the FIDL transaction.
33023    ///
33024    /// Sets the channel to shutdown if an error occurs.
33025    pub fn send(
33026        self,
33027        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33028    ) -> Result<(), fidl::Error> {
33029        let _result = self.send_raw(result);
33030        if _result.is_err() {
33031            self.control_handle.shutdown();
33032        }
33033        self.drop_without_shutdown();
33034        _result
33035    }
33036
33037    /// Similar to "send" but does not shutdown the channel if an error occurs.
33038    pub fn send_no_shutdown_on_err(
33039        self,
33040        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33041    ) -> Result<(), fidl::Error> {
33042        let _result = self.send_raw(result);
33043        self.drop_without_shutdown();
33044        _result
33045    }
33046
33047    fn send_raw(
33048        &self,
33049        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33050    ) -> Result<(), fidl::Error> {
33051        self.control_handle.inner.send::<fidl::encoding::ResultType<
33052            fidl::encoding::EmptyStruct,
33053            fidl_fuchsia_posix::Errno,
33054        >>(
33055            result,
33056            self.tx_id,
33057            0x285d6516c263d839,
33058            fidl::encoding::DynamicFlags::empty(),
33059        )
33060    }
33061}
33062
33063#[must_use = "FIDL methods require a response to be sent"]
33064#[derive(Debug)]
33065pub struct BaseSocketGetTimestampResponder {
33066    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33067    tx_id: u32,
33068}
33069
33070/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33071/// if the responder is dropped without sending a response, so that the client
33072/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33073impl std::ops::Drop for BaseSocketGetTimestampResponder {
33074    fn drop(&mut self) {
33075        self.control_handle.shutdown();
33076        // Safety: drops once, never accessed again
33077        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33078    }
33079}
33080
33081impl fidl::endpoints::Responder for BaseSocketGetTimestampResponder {
33082    type ControlHandle = BaseSocketControlHandle;
33083
33084    fn control_handle(&self) -> &BaseSocketControlHandle {
33085        &self.control_handle
33086    }
33087
33088    fn drop_without_shutdown(mut self) {
33089        // Safety: drops once, never accessed again due to mem::forget
33090        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33091        // Prevent Drop from running (which would shut down the channel)
33092        std::mem::forget(self);
33093    }
33094}
33095
33096impl BaseSocketGetTimestampResponder {
33097    /// Sends a response to the FIDL transaction.
33098    ///
33099    /// Sets the channel to shutdown if an error occurs.
33100    pub fn send(
33101        self,
33102        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
33103    ) -> Result<(), fidl::Error> {
33104        let _result = self.send_raw(result);
33105        if _result.is_err() {
33106            self.control_handle.shutdown();
33107        }
33108        self.drop_without_shutdown();
33109        _result
33110    }
33111
33112    /// Similar to "send" but does not shutdown the channel if an error occurs.
33113    pub fn send_no_shutdown_on_err(
33114        self,
33115        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
33116    ) -> Result<(), fidl::Error> {
33117        let _result = self.send_raw(result);
33118        self.drop_without_shutdown();
33119        _result
33120    }
33121
33122    fn send_raw(
33123        &self,
33124        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
33125    ) -> Result<(), fidl::Error> {
33126        self.control_handle.inner.send::<fidl::encoding::ResultType<
33127            BaseSocketGetTimestampResponse,
33128            fidl_fuchsia_posix::Errno,
33129        >>(
33130            result.map(|value| (value,)),
33131            self.tx_id,
33132            0x49f2fffbbcc2bd27,
33133            fidl::encoding::DynamicFlags::empty(),
33134        )
33135    }
33136}
33137
33138#[must_use = "FIDL methods require a response to be sent"]
33139#[derive(Debug)]
33140pub struct BaseSocketSetMarkResponder {
33141    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33142    tx_id: u32,
33143}
33144
33145/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33146/// if the responder is dropped without sending a response, so that the client
33147/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33148impl std::ops::Drop for BaseSocketSetMarkResponder {
33149    fn drop(&mut self) {
33150        self.control_handle.shutdown();
33151        // Safety: drops once, never accessed again
33152        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33153    }
33154}
33155
33156impl fidl::endpoints::Responder for BaseSocketSetMarkResponder {
33157    type ControlHandle = BaseSocketControlHandle;
33158
33159    fn control_handle(&self) -> &BaseSocketControlHandle {
33160        &self.control_handle
33161    }
33162
33163    fn drop_without_shutdown(mut self) {
33164        // Safety: drops once, never accessed again due to mem::forget
33165        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33166        // Prevent Drop from running (which would shut down the channel)
33167        std::mem::forget(self);
33168    }
33169}
33170
33171impl BaseSocketSetMarkResponder {
33172    /// Sends a response to the FIDL transaction.
33173    ///
33174    /// Sets the channel to shutdown if an error occurs.
33175    pub fn send(
33176        self,
33177        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33178    ) -> Result<(), fidl::Error> {
33179        let _result = self.send_raw(result);
33180        if _result.is_err() {
33181            self.control_handle.shutdown();
33182        }
33183        self.drop_without_shutdown();
33184        _result
33185    }
33186
33187    /// Similar to "send" but does not shutdown the channel if an error occurs.
33188    pub fn send_no_shutdown_on_err(
33189        self,
33190        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33191    ) -> Result<(), fidl::Error> {
33192        let _result = self.send_raw(result);
33193        self.drop_without_shutdown();
33194        _result
33195    }
33196
33197    fn send_raw(
33198        &self,
33199        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33200    ) -> Result<(), fidl::Error> {
33201        self.control_handle.inner.send::<fidl::encoding::ResultType<
33202            fidl::encoding::EmptyStruct,
33203            fidl_fuchsia_posix::Errno,
33204        >>(
33205            result,
33206            self.tx_id,
33207            0x6ead6de09f653236,
33208            fidl::encoding::DynamicFlags::empty(),
33209        )
33210    }
33211}
33212
33213#[must_use = "FIDL methods require a response to be sent"]
33214#[derive(Debug)]
33215pub struct BaseSocketGetMarkResponder {
33216    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33217    tx_id: u32,
33218}
33219
33220/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33221/// if the responder is dropped without sending a response, so that the client
33222/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33223impl std::ops::Drop for BaseSocketGetMarkResponder {
33224    fn drop(&mut self) {
33225        self.control_handle.shutdown();
33226        // Safety: drops once, never accessed again
33227        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33228    }
33229}
33230
33231impl fidl::endpoints::Responder for BaseSocketGetMarkResponder {
33232    type ControlHandle = BaseSocketControlHandle;
33233
33234    fn control_handle(&self) -> &BaseSocketControlHandle {
33235        &self.control_handle
33236    }
33237
33238    fn drop_without_shutdown(mut self) {
33239        // Safety: drops once, never accessed again due to mem::forget
33240        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33241        // Prevent Drop from running (which would shut down the channel)
33242        std::mem::forget(self);
33243    }
33244}
33245
33246impl BaseSocketGetMarkResponder {
33247    /// Sends a response to the FIDL transaction.
33248    ///
33249    /// Sets the channel to shutdown if an error occurs.
33250    pub fn send(
33251        self,
33252        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
33253    ) -> Result<(), fidl::Error> {
33254        let _result = self.send_raw(result);
33255        if _result.is_err() {
33256            self.control_handle.shutdown();
33257        }
33258        self.drop_without_shutdown();
33259        _result
33260    }
33261
33262    /// Similar to "send" but does not shutdown the channel if an error occurs.
33263    pub fn send_no_shutdown_on_err(
33264        self,
33265        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
33266    ) -> Result<(), fidl::Error> {
33267        let _result = self.send_raw(result);
33268        self.drop_without_shutdown();
33269        _result
33270    }
33271
33272    fn send_raw(
33273        &self,
33274        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
33275    ) -> Result<(), fidl::Error> {
33276        self.control_handle.inner.send::<fidl::encoding::ResultType<
33277            BaseSocketGetMarkResponse,
33278            fidl_fuchsia_posix::Errno,
33279        >>(
33280            result.map(|mark| (mark,)),
33281            self.tx_id,
33282            0x57a2752c61d93d47,
33283            fidl::encoding::DynamicFlags::empty(),
33284        )
33285    }
33286}
33287
33288#[must_use = "FIDL methods require a response to be sent"]
33289#[derive(Debug)]
33290pub struct BaseSocketGetCookieResponder {
33291    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33292    tx_id: u32,
33293}
33294
33295/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33296/// if the responder is dropped without sending a response, so that the client
33297/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33298impl std::ops::Drop for BaseSocketGetCookieResponder {
33299    fn drop(&mut self) {
33300        self.control_handle.shutdown();
33301        // Safety: drops once, never accessed again
33302        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33303    }
33304}
33305
33306impl fidl::endpoints::Responder for BaseSocketGetCookieResponder {
33307    type ControlHandle = BaseSocketControlHandle;
33308
33309    fn control_handle(&self) -> &BaseSocketControlHandle {
33310        &self.control_handle
33311    }
33312
33313    fn drop_without_shutdown(mut self) {
33314        // Safety: drops once, never accessed again due to mem::forget
33315        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33316        // Prevent Drop from running (which would shut down the channel)
33317        std::mem::forget(self);
33318    }
33319}
33320
33321impl BaseSocketGetCookieResponder {
33322    /// Sends a response to the FIDL transaction.
33323    ///
33324    /// Sets the channel to shutdown if an error occurs.
33325    pub fn send(
33326        self,
33327        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
33328    ) -> Result<(), fidl::Error> {
33329        let _result = self.send_raw(result);
33330        if _result.is_err() {
33331            self.control_handle.shutdown();
33332        }
33333        self.drop_without_shutdown();
33334        _result
33335    }
33336
33337    /// Similar to "send" but does not shutdown the channel if an error occurs.
33338    pub fn send_no_shutdown_on_err(
33339        self,
33340        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
33341    ) -> Result<(), fidl::Error> {
33342        let _result = self.send_raw(result);
33343        self.drop_without_shutdown();
33344        _result
33345    }
33346
33347    fn send_raw(
33348        &self,
33349        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
33350    ) -> Result<(), fidl::Error> {
33351        self.control_handle.inner.send::<fidl::encoding::ResultType<
33352            BaseSocketGetCookieResponse,
33353            fidl_fuchsia_posix::Errno,
33354        >>(
33355            result.map(|value| (value,)),
33356            self.tx_id,
33357            0x2c2f47fd8f924e52,
33358            fidl::encoding::DynamicFlags::empty(),
33359        )
33360    }
33361}
33362
33363#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
33364pub struct DatagramSocketMarker;
33365
33366impl fidl::endpoints::ProtocolMarker for DatagramSocketMarker {
33367    type Proxy = DatagramSocketProxy;
33368    type RequestStream = DatagramSocketRequestStream;
33369    #[cfg(target_os = "fuchsia")]
33370    type SynchronousProxy = DatagramSocketSynchronousProxy;
33371
33372    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.DatagramSocket";
33373}
33374impl fidl::endpoints::DiscoverableProtocolMarker for DatagramSocketMarker {}
33375pub type DatagramSocketSendMsgPreflightResult =
33376    Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>;
33377pub type DatagramSocketRecvMsgPostflightResult =
33378    Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>;
33379
33380pub trait DatagramSocketProxyInterface: Send + Sync {
33381    fn r#clone(
33382        &self,
33383        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
33384    ) -> Result<(), fidl::Error>;
33385    type CloseResponseFut: std::future::Future<
33386            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
33387        > + Send;
33388    fn r#close(&self) -> Self::CloseResponseFut;
33389    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
33390    fn r#query(&self) -> Self::QueryResponseFut;
33391    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
33392        + Send;
33393    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
33394    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
33395        + Send;
33396    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
33397    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
33398        + Send;
33399    fn r#get_error(&self) -> Self::GetErrorResponseFut;
33400    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
33401        + Send;
33402    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
33403    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
33404        + Send;
33405    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
33406    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
33407        + Send;
33408    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
33409    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
33410        + Send;
33411    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
33412    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
33413        + Send;
33414    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
33415    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
33416        + Send;
33417    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
33418    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
33419        + Send;
33420    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
33421    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
33422        + Send;
33423    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
33424    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
33425        + Send;
33426    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
33427    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
33428        + Send;
33429    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
33430    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
33431        + Send;
33432    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
33433    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
33434        + Send;
33435    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
33436    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
33437        + Send;
33438    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
33439    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
33440        + Send;
33441    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
33442    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
33443        + Send;
33444    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
33445    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
33446        + Send;
33447    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
33448    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
33449        + Send;
33450    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
33451    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
33452        + Send;
33453    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
33454    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
33455        + Send;
33456    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
33457    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
33458        + Send;
33459    fn r#set_bind_to_interface_index(&self, value: u64)
33460    -> Self::SetBindToInterfaceIndexResponseFut;
33461    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
33462        + Send;
33463    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
33464    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
33465        + Send;
33466    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
33467    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
33468        + Send;
33469    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
33470    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
33471        + Send;
33472    fn r#set_mark(
33473        &self,
33474        domain: fidl_fuchsia_net::MarkDomain,
33475        mark: &OptionalUint32,
33476    ) -> Self::SetMarkResponseFut;
33477    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
33478        + Send;
33479    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
33480    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
33481        + Send;
33482    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
33483    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
33484        + Send;
33485    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
33486    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
33487        + Send;
33488    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
33489    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
33490        + Send;
33491    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
33492    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
33493        + Send;
33494    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
33495    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
33496        + Send;
33497    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
33498    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
33499        + Send;
33500    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
33501    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
33502        + Send;
33503    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
33504    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
33505        + Send;
33506    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
33507    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
33508        + Send;
33509    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
33510    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
33511        + Send;
33512    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
33513    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
33514        + Send;
33515    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
33516    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
33517        + Send;
33518    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
33519    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
33520            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
33521        > + Send;
33522    fn r#set_ip_receive_type_of_service(
33523        &self,
33524        value: bool,
33525    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
33526    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
33527            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
33528        > + Send;
33529    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
33530    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
33531        + Send;
33532    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
33533    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
33534        + Send;
33535    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
33536    type SetIpMulticastInterfaceResponseFut: std::future::Future<
33537            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
33538        > + Send;
33539    fn r#set_ip_multicast_interface(
33540        &self,
33541        iface: u64,
33542        address: &fidl_fuchsia_net::Ipv4Address,
33543    ) -> Self::SetIpMulticastInterfaceResponseFut;
33544    type GetIpMulticastInterfaceResponseFut: std::future::Future<
33545            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
33546        > + Send;
33547    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
33548    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
33549        + Send;
33550    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
33551    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
33552        + Send;
33553    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
33554    type SetIpMulticastLoopbackResponseFut: std::future::Future<
33555            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
33556        > + Send;
33557    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
33558    type GetIpMulticastLoopbackResponseFut: std::future::Future<
33559            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
33560        > + Send;
33561    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
33562    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
33563        + Send;
33564    fn r#add_ip_membership(
33565        &self,
33566        membership: &IpMulticastMembership,
33567    ) -> Self::AddIpMembershipResponseFut;
33568    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
33569        + Send;
33570    fn r#drop_ip_membership(
33571        &self,
33572        membership: &IpMulticastMembership,
33573    ) -> Self::DropIpMembershipResponseFut;
33574    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
33575        + Send;
33576    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
33577    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
33578        + Send;
33579    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
33580    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
33581            Output = Result<
33582                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
33583                fidl::Error,
33584            >,
33585        > + Send;
33586    fn r#set_ip_receive_original_destination_address(
33587        &self,
33588        value: bool,
33589    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
33590    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
33591            Output = Result<
33592                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
33593                fidl::Error,
33594            >,
33595        > + Send;
33596    fn r#get_ip_receive_original_destination_address(
33597        &self,
33598    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
33599    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
33600        + Send;
33601    fn r#add_ipv6_membership(
33602        &self,
33603        membership: &Ipv6MulticastMembership,
33604    ) -> Self::AddIpv6MembershipResponseFut;
33605    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
33606        + Send;
33607    fn r#drop_ipv6_membership(
33608        &self,
33609        membership: &Ipv6MulticastMembership,
33610    ) -> Self::DropIpv6MembershipResponseFut;
33611    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
33612            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
33613        > + Send;
33614    fn r#set_ipv6_multicast_interface(
33615        &self,
33616        value: u64,
33617    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
33618    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
33619            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
33620        > + Send;
33621    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
33622    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
33623        + Send;
33624    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
33625    -> Self::SetIpv6UnicastHopsResponseFut;
33626    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
33627        + Send;
33628    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
33629    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
33630            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
33631        > + Send;
33632    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
33633    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
33634            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
33635        > + Send;
33636    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
33637    type SetIpv6MulticastHopsResponseFut: std::future::Future<
33638            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
33639        > + Send;
33640    fn r#set_ipv6_multicast_hops(
33641        &self,
33642        value: &OptionalUint8,
33643    ) -> Self::SetIpv6MulticastHopsResponseFut;
33644    type GetIpv6MulticastHopsResponseFut: std::future::Future<
33645            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
33646        > + Send;
33647    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
33648    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
33649            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
33650        > + Send;
33651    fn r#set_ipv6_multicast_loopback(
33652        &self,
33653        value: bool,
33654    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
33655    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
33656            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
33657        > + Send;
33658    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
33659    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
33660        + Send;
33661    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
33662    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
33663        + Send;
33664    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
33665    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
33666            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
33667        > + Send;
33668    fn r#set_ipv6_receive_traffic_class(
33669        &self,
33670        value: bool,
33671    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
33672    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
33673            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
33674        > + Send;
33675    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
33676    type SetIpv6TrafficClassResponseFut: std::future::Future<
33677            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
33678        > + Send;
33679    fn r#set_ipv6_traffic_class(
33680        &self,
33681        value: &OptionalUint8,
33682    ) -> Self::SetIpv6TrafficClassResponseFut;
33683    type GetIpv6TrafficClassResponseFut: std::future::Future<
33684            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
33685        > + Send;
33686    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
33687    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
33688            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
33689        > + Send;
33690    fn r#set_ipv6_receive_packet_info(
33691        &self,
33692        value: bool,
33693    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
33694    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
33695            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
33696        > + Send;
33697    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
33698    type GetOriginalDestinationResponseFut: std::future::Future<
33699            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
33700        > + Send;
33701    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
33702    type GetInfoResponseFut: std::future::Future<Output = Result<BaseDatagramSocketGetInfoResult, fidl::Error>>
33703        + Send;
33704    fn r#get_info(&self) -> Self::GetInfoResponseFut;
33705    type DescribeResponseFut: std::future::Future<Output = Result<DatagramSocketDescribeResponse, fidl::Error>>
33706        + Send;
33707    fn r#describe(&self) -> Self::DescribeResponseFut;
33708    type SendMsgPreflightResponseFut: std::future::Future<Output = Result<DatagramSocketSendMsgPreflightResult, fidl::Error>>
33709        + Send;
33710    fn r#send_msg_preflight(
33711        &self,
33712        payload: &DatagramSocketSendMsgPreflightRequest,
33713    ) -> Self::SendMsgPreflightResponseFut;
33714    type RecvMsgPostflightResponseFut: std::future::Future<Output = Result<DatagramSocketRecvMsgPostflightResult, fidl::Error>>
33715        + Send;
33716    fn r#recv_msg_postflight(&self) -> Self::RecvMsgPostflightResponseFut;
33717}
33718#[derive(Debug)]
33719#[cfg(target_os = "fuchsia")]
33720pub struct DatagramSocketSynchronousProxy {
33721    client: fidl::client::sync::Client,
33722}
33723
33724#[cfg(target_os = "fuchsia")]
33725impl fidl::endpoints::SynchronousProxy for DatagramSocketSynchronousProxy {
33726    type Proxy = DatagramSocketProxy;
33727    type Protocol = DatagramSocketMarker;
33728
33729    fn from_channel(inner: fidl::Channel) -> Self {
33730        Self::new(inner)
33731    }
33732
33733    fn into_channel(self) -> fidl::Channel {
33734        self.client.into_channel()
33735    }
33736
33737    fn as_channel(&self) -> &fidl::Channel {
33738        self.client.as_channel()
33739    }
33740}
33741
33742#[cfg(target_os = "fuchsia")]
33743impl DatagramSocketSynchronousProxy {
33744    pub fn new(channel: fidl::Channel) -> Self {
33745        let protocol_name = <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
33746        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
33747    }
33748
33749    pub fn into_channel(self) -> fidl::Channel {
33750        self.client.into_channel()
33751    }
33752
33753    /// Waits until an event arrives and returns it. It is safe for other
33754    /// threads to make concurrent requests while waiting for an event.
33755    pub fn wait_for_event(
33756        &self,
33757        deadline: zx::MonotonicInstant,
33758    ) -> Result<DatagramSocketEvent, fidl::Error> {
33759        DatagramSocketEvent::decode(self.client.wait_for_event(deadline)?)
33760    }
33761
33762    pub fn r#clone(
33763        &self,
33764        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
33765    ) -> Result<(), fidl::Error> {
33766        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
33767            (request,),
33768            0x20d8a7aba2168a79,
33769            fidl::encoding::DynamicFlags::empty(),
33770        )
33771    }
33772
33773    /// Terminates the connection.
33774    ///
33775    /// After calling `Close`, the client must not send any other requests.
33776    ///
33777    /// Servers, after sending the status response, should close the connection
33778    /// regardless of status and without sending an epitaph.
33779    ///
33780    /// Closing the client end of the channel should be semantically equivalent
33781    /// to calling `Close` without knowing when the close has completed or its
33782    /// status.
33783    pub fn r#close(
33784        &self,
33785        ___deadline: zx::MonotonicInstant,
33786    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
33787        let _response = self.client.send_query::<
33788            fidl::encoding::EmptyPayload,
33789            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
33790        >(
33791            (),
33792            0x5ac5d459ad7f657e,
33793            fidl::encoding::DynamicFlags::empty(),
33794            ___deadline,
33795        )?;
33796        Ok(_response.map(|x| x))
33797    }
33798
33799    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
33800        let _response = self.client.send_query::<
33801            fidl::encoding::EmptyPayload,
33802            fidl_fuchsia_unknown::QueryableQueryResponse,
33803        >(
33804            (),
33805            0x2658edee9decfc06,
33806            fidl::encoding::DynamicFlags::empty(),
33807            ___deadline,
33808        )?;
33809        Ok(_response.protocol)
33810    }
33811
33812    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
33813    pub fn r#set_reuse_address(
33814        &self,
33815        mut value: bool,
33816        ___deadline: zx::MonotonicInstant,
33817    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
33818        let _response =
33819            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
33820                fidl::encoding::EmptyStruct,
33821                fidl_fuchsia_posix::Errno,
33822            >>(
33823                (value,),
33824                0x1fd74ee8b9a4a876,
33825                fidl::encoding::DynamicFlags::empty(),
33826                ___deadline,
33827            )?;
33828        Ok(_response.map(|x| x))
33829    }
33830
33831    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
33832    pub fn r#get_reuse_address(
33833        &self,
33834        ___deadline: zx::MonotonicInstant,
33835    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
33836        let _response = self
33837            .client
33838            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33839                BaseSocketGetReuseAddressResponse,
33840                fidl_fuchsia_posix::Errno,
33841            >>(
33842                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
33843            )?;
33844        Ok(_response.map(|x| x.value))
33845    }
33846
33847    /// Get `SOL_SOCKET` -> `SO_ERROR`.
33848    /// Returns the last error if there is an error set on the socket.
33849    pub fn r#get_error(
33850        &self,
33851        ___deadline: zx::MonotonicInstant,
33852    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
33853        let _response =
33854            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33855                fidl::encoding::EmptyStruct,
33856                fidl_fuchsia_posix::Errno,
33857            >>(
33858                (),
33859                0x5aad39b33e5f6ebb,
33860                fidl::encoding::DynamicFlags::empty(),
33861                ___deadline,
33862            )?;
33863        Ok(_response.map(|x| x))
33864    }
33865
33866    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
33867    pub fn r#set_broadcast(
33868        &self,
33869        mut value: bool,
33870        ___deadline: zx::MonotonicInstant,
33871    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
33872        let _response =
33873            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
33874                fidl::encoding::EmptyStruct,
33875                fidl_fuchsia_posix::Errno,
33876            >>(
33877                (value,),
33878                0x6023e081ce3cd947,
33879                fidl::encoding::DynamicFlags::empty(),
33880                ___deadline,
33881            )?;
33882        Ok(_response.map(|x| x))
33883    }
33884
33885    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
33886    pub fn r#get_broadcast(
33887        &self,
33888        ___deadline: zx::MonotonicInstant,
33889    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
33890        let _response =
33891            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33892                BaseSocketGetBroadcastResponse,
33893                fidl_fuchsia_posix::Errno,
33894            >>(
33895                (),
33896                0x68796fc556f9780d,
33897                fidl::encoding::DynamicFlags::empty(),
33898                ___deadline,
33899            )?;
33900        Ok(_response.map(|x| x.value))
33901    }
33902
33903    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
33904    pub fn r#set_send_buffer(
33905        &self,
33906        mut value_bytes: u64,
33907        ___deadline: zx::MonotonicInstant,
33908    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
33909        let _response =
33910            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
33911                fidl::encoding::EmptyStruct,
33912                fidl_fuchsia_posix::Errno,
33913            >>(
33914                (value_bytes,),
33915                0x756eac32d73a7a70,
33916                fidl::encoding::DynamicFlags::empty(),
33917                ___deadline,
33918            )?;
33919        Ok(_response.map(|x| x))
33920    }
33921
33922    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
33923    pub fn r#get_send_buffer(
33924        &self,
33925        ___deadline: zx::MonotonicInstant,
33926    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
33927        let _response = self
33928            .client
33929            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33930                BaseSocketGetSendBufferResponse,
33931                fidl_fuchsia_posix::Errno,
33932            >>(
33933                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
33934            )?;
33935        Ok(_response.map(|x| x.value_bytes))
33936    }
33937
33938    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
33939    pub fn r#set_receive_buffer(
33940        &self,
33941        mut value_bytes: u64,
33942        ___deadline: zx::MonotonicInstant,
33943    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
33944        let _response =
33945            self.client
33946                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
33947                    fidl::encoding::EmptyStruct,
33948                    fidl_fuchsia_posix::Errno,
33949                >>(
33950                    (value_bytes,),
33951                    0x6b0cf2f1919c7001,
33952                    fidl::encoding::DynamicFlags::empty(),
33953                    ___deadline,
33954                )?;
33955        Ok(_response.map(|x| x))
33956    }
33957
33958    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
33959    pub fn r#get_receive_buffer(
33960        &self,
33961        ___deadline: zx::MonotonicInstant,
33962    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
33963        let _response = self
33964            .client
33965            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33966                BaseSocketGetReceiveBufferResponse,
33967                fidl_fuchsia_posix::Errno,
33968            >>(
33969                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
33970            )?;
33971        Ok(_response.map(|x| x.value_bytes))
33972    }
33973
33974    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
33975    pub fn r#set_keep_alive(
33976        &self,
33977        mut value: bool,
33978        ___deadline: zx::MonotonicInstant,
33979    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
33980        let _response =
33981            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
33982                fidl::encoding::EmptyStruct,
33983                fidl_fuchsia_posix::Errno,
33984            >>(
33985                (value,),
33986                0x572df8f0b920d2c7,
33987                fidl::encoding::DynamicFlags::empty(),
33988                ___deadline,
33989            )?;
33990        Ok(_response.map(|x| x))
33991    }
33992
33993    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
33994    pub fn r#get_keep_alive(
33995        &self,
33996        ___deadline: zx::MonotonicInstant,
33997    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
33998        let _response =
33999            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34000                BaseSocketGetKeepAliveResponse,
34001                fidl_fuchsia_posix::Errno,
34002            >>(
34003                (),
34004                0x2dd29d3215f2c9d2,
34005                fidl::encoding::DynamicFlags::empty(),
34006                ___deadline,
34007            )?;
34008        Ok(_response.map(|x| x.value))
34009    }
34010
34011    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
34012    pub fn r#set_out_of_band_inline(
34013        &self,
34014        mut value: bool,
34015        ___deadline: zx::MonotonicInstant,
34016    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
34017        let _response =
34018            self.client
34019                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
34020                    fidl::encoding::EmptyStruct,
34021                    fidl_fuchsia_posix::Errno,
34022                >>(
34023                    (value,),
34024                    0x3ecb49968bee439,
34025                    fidl::encoding::DynamicFlags::empty(),
34026                    ___deadline,
34027                )?;
34028        Ok(_response.map(|x| x))
34029    }
34030
34031    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
34032    pub fn r#get_out_of_band_inline(
34033        &self,
34034        ___deadline: zx::MonotonicInstant,
34035    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
34036        let _response = self
34037            .client
34038            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34039                BaseSocketGetOutOfBandInlineResponse,
34040                fidl_fuchsia_posix::Errno,
34041            >>(
34042                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
34043            )?;
34044        Ok(_response.map(|x| x.value))
34045    }
34046
34047    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
34048    pub fn r#set_no_check(
34049        &self,
34050        mut value: bool,
34051        ___deadline: zx::MonotonicInstant,
34052    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
34053        let _response =
34054            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
34055                fidl::encoding::EmptyStruct,
34056                fidl_fuchsia_posix::Errno,
34057            >>(
34058                (value,),
34059                0x6bbf00c53a4c78c2,
34060                fidl::encoding::DynamicFlags::empty(),
34061                ___deadline,
34062            )?;
34063        Ok(_response.map(|x| x))
34064    }
34065
34066    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
34067    pub fn r#get_no_check(
34068        &self,
34069        ___deadline: zx::MonotonicInstant,
34070    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
34071        let _response =
34072            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34073                BaseSocketGetNoCheckResponse,
34074                fidl_fuchsia_posix::Errno,
34075            >>(
34076                (),
34077                0x2cd4249286417694,
34078                fidl::encoding::DynamicFlags::empty(),
34079                ___deadline,
34080            )?;
34081        Ok(_response.map(|x| x.value))
34082    }
34083
34084    /// Set `SOL_SOCKET` -> `SO_LINGER`.
34085    pub fn r#set_linger(
34086        &self,
34087        mut linger: bool,
34088        mut length_secs: u32,
34089        ___deadline: zx::MonotonicInstant,
34090    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
34091        let _response =
34092            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
34093                fidl::encoding::EmptyStruct,
34094                fidl_fuchsia_posix::Errno,
34095            >>(
34096                (linger, length_secs),
34097                0x45386351246e998e,
34098                fidl::encoding::DynamicFlags::empty(),
34099                ___deadline,
34100            )?;
34101        Ok(_response.map(|x| x))
34102    }
34103
34104    /// Get `SOL_SOCKET` -> `SO_LINGER`.
34105    pub fn r#get_linger(
34106        &self,
34107        ___deadline: zx::MonotonicInstant,
34108    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
34109        let _response =
34110            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34111                BaseSocketGetLingerResponse,
34112                fidl_fuchsia_posix::Errno,
34113            >>(
34114                (),
34115                0x48eb20fc5ccb0e45,
34116                fidl::encoding::DynamicFlags::empty(),
34117                ___deadline,
34118            )?;
34119        Ok(_response.map(|x| (x.linger, x.length_secs)))
34120    }
34121
34122    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
34123    pub fn r#set_reuse_port(
34124        &self,
34125        mut value: bool,
34126        ___deadline: zx::MonotonicInstant,
34127    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
34128        let _response =
34129            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
34130                fidl::encoding::EmptyStruct,
34131                fidl_fuchsia_posix::Errno,
34132            >>(
34133                (value,),
34134                0x24dd3e5cb36d9ccb,
34135                fidl::encoding::DynamicFlags::empty(),
34136                ___deadline,
34137            )?;
34138        Ok(_response.map(|x| x))
34139    }
34140
34141    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
34142    pub fn r#get_reuse_port(
34143        &self,
34144        ___deadline: zx::MonotonicInstant,
34145    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
34146        let _response =
34147            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34148                BaseSocketGetReusePortResponse,
34149                fidl_fuchsia_posix::Errno,
34150            >>(
34151                (),
34152                0x7a112c1ab54ff828,
34153                fidl::encoding::DynamicFlags::empty(),
34154                ___deadline,
34155            )?;
34156        Ok(_response.map(|x| x.value))
34157    }
34158
34159    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
34160    pub fn r#get_accept_conn(
34161        &self,
34162        ___deadline: zx::MonotonicInstant,
34163    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
34164        let _response = self
34165            .client
34166            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34167                BaseSocketGetAcceptConnResponse,
34168                fidl_fuchsia_posix::Errno,
34169            >>(
34170                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
34171            )?;
34172        Ok(_response.map(|x| x.value))
34173    }
34174
34175    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
34176    pub fn r#set_bind_to_device(
34177        &self,
34178        mut value: &str,
34179        ___deadline: zx::MonotonicInstant,
34180    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
34181        let _response =
34182            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
34183                fidl::encoding::EmptyStruct,
34184                fidl_fuchsia_posix::Errno,
34185            >>(
34186                (value,),
34187                0x2118b483f28aafc4,
34188                fidl::encoding::DynamicFlags::empty(),
34189                ___deadline,
34190            )?;
34191        Ok(_response.map(|x| x))
34192    }
34193
34194    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
34195    pub fn r#get_bind_to_device(
34196        &self,
34197        ___deadline: zx::MonotonicInstant,
34198    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
34199        let _response = self
34200            .client
34201            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34202                BaseSocketGetBindToDeviceResponse,
34203                fidl_fuchsia_posix::Errno,
34204            >>(
34205                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
34206            )?;
34207        Ok(_response.map(|x| x.value))
34208    }
34209
34210    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
34211    /// If `value` is 0, this clears the bound interface.
34212    pub fn r#set_bind_to_interface_index(
34213        &self,
34214        mut value: u64,
34215        ___deadline: zx::MonotonicInstant,
34216    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
34217        let _response =
34218            self.client
34219                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
34220                    fidl::encoding::EmptyStruct,
34221                    fidl_fuchsia_posix::Errno,
34222                >>(
34223                    (value,),
34224                    0x6e387a0def00821,
34225                    fidl::encoding::DynamicFlags::empty(),
34226                    ___deadline,
34227                )?;
34228        Ok(_response.map(|x| x))
34229    }
34230
34231    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
34232    pub fn r#get_bind_to_interface_index(
34233        &self,
34234        ___deadline: zx::MonotonicInstant,
34235    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
34236        let _response = self
34237            .client
34238            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34239                BaseSocketGetBindToInterfaceIndexResponse,
34240                fidl_fuchsia_posix::Errno,
34241            >>(
34242                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
34243            )?;
34244        Ok(_response.map(|x| x.value))
34245    }
34246
34247    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
34248    pub fn r#set_timestamp(
34249        &self,
34250        mut value: TimestampOption,
34251        ___deadline: zx::MonotonicInstant,
34252    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
34253        let _response =
34254            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
34255                fidl::encoding::EmptyStruct,
34256                fidl_fuchsia_posix::Errno,
34257            >>(
34258                (value,),
34259                0x285d6516c263d839,
34260                fidl::encoding::DynamicFlags::empty(),
34261                ___deadline,
34262            )?;
34263        Ok(_response.map(|x| x))
34264    }
34265
34266    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
34267    pub fn r#get_timestamp(
34268        &self,
34269        ___deadline: zx::MonotonicInstant,
34270    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
34271        let _response =
34272            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34273                BaseSocketGetTimestampResponse,
34274                fidl_fuchsia_posix::Errno,
34275            >>(
34276                (),
34277                0x49f2fffbbcc2bd27,
34278                fidl::encoding::DynamicFlags::empty(),
34279                ___deadline,
34280            )?;
34281        Ok(_response.map(|x| x.value))
34282    }
34283
34284    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
34285    /// unlike the standard SO_MARK, this API has multiple mark domains and each
34286    /// mark can be set independently in each domain.
34287    pub fn r#set_mark(
34288        &self,
34289        mut domain: fidl_fuchsia_net::MarkDomain,
34290        mut mark: &OptionalUint32,
34291        ___deadline: zx::MonotonicInstant,
34292    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
34293        let _response =
34294            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
34295                fidl::encoding::EmptyStruct,
34296                fidl_fuchsia_posix::Errno,
34297            >>(
34298                (domain, mark),
34299                0x6ead6de09f653236,
34300                fidl::encoding::DynamicFlags::empty(),
34301                ___deadline,
34302            )?;
34303        Ok(_response.map(|x| x))
34304    }
34305
34306    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
34307    /// unlike the standard SO_MARK, this API has multiple mark domains and each
34308    /// mark can be retrieved independently in each domain.
34309    pub fn r#get_mark(
34310        &self,
34311        mut domain: fidl_fuchsia_net::MarkDomain,
34312        ___deadline: zx::MonotonicInstant,
34313    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
34314        let _response =
34315            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
34316                BaseSocketGetMarkResponse,
34317                fidl_fuchsia_posix::Errno,
34318            >>(
34319                (domain,),
34320                0x57a2752c61d93d47,
34321                fidl::encoding::DynamicFlags::empty(),
34322                ___deadline,
34323            )?;
34324        Ok(_response.map(|x| x.mark))
34325    }
34326
34327    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
34328    pub fn r#get_cookie(
34329        &self,
34330        ___deadline: zx::MonotonicInstant,
34331    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
34332        let _response =
34333            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34334                BaseSocketGetCookieResponse,
34335                fidl_fuchsia_posix::Errno,
34336            >>(
34337                (),
34338                0x2c2f47fd8f924e52,
34339                fidl::encoding::DynamicFlags::empty(),
34340                ___deadline,
34341            )?;
34342        Ok(_response.map(|x| x.value))
34343    }
34344
34345    /// Sets the local address used for the socket.
34346    pub fn r#bind(
34347        &self,
34348        mut addr: &fidl_fuchsia_net::SocketAddress,
34349        ___deadline: zx::MonotonicInstant,
34350    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
34351        let _response =
34352            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
34353                fidl::encoding::EmptyStruct,
34354                fidl_fuchsia_posix::Errno,
34355            >>(
34356                (addr,),
34357                0x4bc6400ae92125d,
34358                fidl::encoding::DynamicFlags::empty(),
34359                ___deadline,
34360            )?;
34361        Ok(_response.map(|x| x))
34362    }
34363
34364    /// Initiates a connection to a remote address.
34365    pub fn r#connect(
34366        &self,
34367        mut addr: &fidl_fuchsia_net::SocketAddress,
34368        ___deadline: zx::MonotonicInstant,
34369    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
34370        let _response =
34371            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
34372                fidl::encoding::EmptyStruct,
34373                fidl_fuchsia_posix::Errno,
34374            >>(
34375                (addr,),
34376                0x5f05f19bfdd38871,
34377                fidl::encoding::DynamicFlags::empty(),
34378                ___deadline,
34379            )?;
34380        Ok(_response.map(|x| x))
34381    }
34382
34383    /// Clears connection information from this socket.
34384    pub fn r#disconnect(
34385        &self,
34386        ___deadline: zx::MonotonicInstant,
34387    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
34388        let _response =
34389            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34390                fidl::encoding::EmptyStruct,
34391                fidl_fuchsia_posix::Errno,
34392            >>(
34393                (),
34394                0x74e63b91f7b29b2,
34395                fidl::encoding::DynamicFlags::empty(),
34396                ___deadline,
34397            )?;
34398        Ok(_response.map(|x| x))
34399    }
34400
34401    /// Retrieves the local socket address.
34402    pub fn r#get_sock_name(
34403        &self,
34404        ___deadline: zx::MonotonicInstant,
34405    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
34406        let _response = self
34407            .client
34408            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34409                BaseNetworkSocketGetSockNameResponse,
34410                fidl_fuchsia_posix::Errno,
34411            >>(
34412                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
34413            )?;
34414        Ok(_response.map(|x| x.addr))
34415    }
34416
34417    /// Retrieves the remote socket address.
34418    pub fn r#get_peer_name(
34419        &self,
34420        ___deadline: zx::MonotonicInstant,
34421    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
34422        let _response = self
34423            .client
34424            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34425                BaseNetworkSocketGetPeerNameResponse,
34426                fidl_fuchsia_posix::Errno,
34427            >>(
34428                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
34429            )?;
34430        Ok(_response.map(|x| x.addr))
34431    }
34432
34433    /// Shuts down part of the socket.
34434    pub fn r#shutdown(
34435        &self,
34436        mut mode: ShutdownMode,
34437        ___deadline: zx::MonotonicInstant,
34438    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
34439        let _response =
34440            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
34441                fidl::encoding::EmptyStruct,
34442                fidl_fuchsia_posix::Errno,
34443            >>(
34444                (mode,),
34445                0x247f38b6db68c336,
34446                fidl::encoding::DynamicFlags::empty(),
34447                ___deadline,
34448            )?;
34449        Ok(_response.map(|x| x))
34450    }
34451
34452    /// Set `SOL_IP` -> `IP_TOS`.
34453    pub fn r#set_ip_type_of_service(
34454        &self,
34455        mut value: u8,
34456        ___deadline: zx::MonotonicInstant,
34457    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
34458        let _response = self.client.send_query::<
34459            BaseNetworkSocketSetIpTypeOfServiceRequest,
34460            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34461        >(
34462            (value,),
34463            0x995c600475b6d46,
34464            fidl::encoding::DynamicFlags::empty(),
34465            ___deadline,
34466        )?;
34467        Ok(_response.map(|x| x))
34468    }
34469
34470    /// Get `SOL_IP` -> `IP_TOS`.
34471    pub fn r#get_ip_type_of_service(
34472        &self,
34473        ___deadline: zx::MonotonicInstant,
34474    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
34475        let _response = self
34476            .client
34477            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34478                BaseNetworkSocketGetIpTypeOfServiceResponse,
34479                fidl_fuchsia_posix::Errno,
34480            >>(
34481                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
34482            )?;
34483        Ok(_response.map(|x| x.value))
34484    }
34485
34486    /// Set `SOL_IP` -> `IP_TTL`.
34487    pub fn r#set_ip_ttl(
34488        &self,
34489        mut value: &OptionalUint8,
34490        ___deadline: zx::MonotonicInstant,
34491    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
34492        let _response =
34493            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
34494                fidl::encoding::EmptyStruct,
34495                fidl_fuchsia_posix::Errno,
34496            >>(
34497                (value,),
34498                0x29e2424b433ae1ef,
34499                fidl::encoding::DynamicFlags::empty(),
34500                ___deadline,
34501            )?;
34502        Ok(_response.map(|x| x))
34503    }
34504
34505    /// Get `SOL_IP` -> `IP_TTL`.
34506    pub fn r#get_ip_ttl(
34507        &self,
34508        ___deadline: zx::MonotonicInstant,
34509    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
34510        let _response = self
34511            .client
34512            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34513                BaseNetworkSocketGetIpTtlResponse,
34514                fidl_fuchsia_posix::Errno,
34515            >>(
34516                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
34517            )?;
34518        Ok(_response.map(|x| x.value))
34519    }
34520
34521    /// Set `SOL_IP` -> `IP_PKTINFO`.
34522    pub fn r#set_ip_packet_info(
34523        &self,
34524        mut value: bool,
34525        ___deadline: zx::MonotonicInstant,
34526    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
34527        let _response =
34528            self.client
34529                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
34530                    fidl::encoding::EmptyStruct,
34531                    fidl_fuchsia_posix::Errno,
34532                >>(
34533                    (value,),
34534                    0x392d16bee20c0e16,
34535                    fidl::encoding::DynamicFlags::empty(),
34536                    ___deadline,
34537                )?;
34538        Ok(_response.map(|x| x))
34539    }
34540
34541    /// Get `SOL_IP` -> `IP_PKTINFO`.
34542    pub fn r#get_ip_packet_info(
34543        &self,
34544        ___deadline: zx::MonotonicInstant,
34545    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
34546        let _response = self
34547            .client
34548            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34549                BaseNetworkSocketGetIpPacketInfoResponse,
34550                fidl_fuchsia_posix::Errno,
34551            >>(
34552                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
34553            )?;
34554        Ok(_response.map(|x| x.value))
34555    }
34556
34557    /// Set `SOL_IP` -> `IP_RECVTOS`.
34558    pub fn r#set_ip_receive_type_of_service(
34559        &self,
34560        mut value: bool,
34561        ___deadline: zx::MonotonicInstant,
34562    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
34563        let _response = self.client.send_query::<
34564            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
34565            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34566        >(
34567            (value,),
34568            0x6c4f6714995f84ef,
34569            fidl::encoding::DynamicFlags::empty(),
34570            ___deadline,
34571        )?;
34572        Ok(_response.map(|x| x))
34573    }
34574
34575    /// Get `SOL_IP` -> `IP_RECVTOS`.
34576    pub fn r#get_ip_receive_type_of_service(
34577        &self,
34578        ___deadline: zx::MonotonicInstant,
34579    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
34580        let _response = self
34581            .client
34582            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34583                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
34584                fidl_fuchsia_posix::Errno,
34585            >>(
34586                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
34587            )?;
34588        Ok(_response.map(|x| x.value))
34589    }
34590
34591    /// Set `SOL_IP` -> `IP_RECVTTL`.
34592    pub fn r#set_ip_receive_ttl(
34593        &self,
34594        mut value: bool,
34595        ___deadline: zx::MonotonicInstant,
34596    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
34597        let _response =
34598            self.client
34599                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
34600                    fidl::encoding::EmptyStruct,
34601                    fidl_fuchsia_posix::Errno,
34602                >>(
34603                    (value,),
34604                    0x46f15be0ce0ab82b,
34605                    fidl::encoding::DynamicFlags::empty(),
34606                    ___deadline,
34607                )?;
34608        Ok(_response.map(|x| x))
34609    }
34610
34611    /// Get `SOL_IP` -> `IP_RECVTTL`.
34612    pub fn r#get_ip_receive_ttl(
34613        &self,
34614        ___deadline: zx::MonotonicInstant,
34615    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
34616        let _response = self
34617            .client
34618            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34619                BaseNetworkSocketGetIpReceiveTtlResponse,
34620                fidl_fuchsia_posix::Errno,
34621            >>(
34622                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
34623            )?;
34624        Ok(_response.map(|x| x.value))
34625    }
34626
34627    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
34628    pub fn r#set_ip_multicast_interface(
34629        &self,
34630        mut iface: u64,
34631        mut address: &fidl_fuchsia_net::Ipv4Address,
34632        ___deadline: zx::MonotonicInstant,
34633    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
34634        let _response = self.client.send_query::<
34635            BaseNetworkSocketSetIpMulticastInterfaceRequest,
34636            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34637        >(
34638            (iface, address,),
34639            0x752fbfa9b12befe,
34640            fidl::encoding::DynamicFlags::empty(),
34641            ___deadline,
34642        )?;
34643        Ok(_response.map(|x| x))
34644    }
34645
34646    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
34647    pub fn r#get_ip_multicast_interface(
34648        &self,
34649        ___deadline: zx::MonotonicInstant,
34650    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
34651        let _response = self
34652            .client
34653            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34654                BaseNetworkSocketGetIpMulticastInterfaceResponse,
34655                fidl_fuchsia_posix::Errno,
34656            >>(
34657                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
34658            )?;
34659        Ok(_response.map(|x| x.value))
34660    }
34661
34662    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
34663    pub fn r#set_ip_multicast_ttl(
34664        &self,
34665        mut value: &OptionalUint8,
34666        ___deadline: zx::MonotonicInstant,
34667    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
34668        let _response =
34669            self.client
34670                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
34671                    fidl::encoding::EmptyStruct,
34672                    fidl_fuchsia_posix::Errno,
34673                >>(
34674                    (value,),
34675                    0x63134d53772916a1,
34676                    fidl::encoding::DynamicFlags::empty(),
34677                    ___deadline,
34678                )?;
34679        Ok(_response.map(|x| x))
34680    }
34681
34682    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
34683    pub fn r#get_ip_multicast_ttl(
34684        &self,
34685        ___deadline: zx::MonotonicInstant,
34686    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
34687        let _response = self
34688            .client
34689            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34690                BaseNetworkSocketGetIpMulticastTtlResponse,
34691                fidl_fuchsia_posix::Errno,
34692            >>(
34693                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
34694            )?;
34695        Ok(_response.map(|x| x.value))
34696    }
34697
34698    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
34699    pub fn r#set_ip_multicast_loopback(
34700        &self,
34701        mut value: bool,
34702        ___deadline: zx::MonotonicInstant,
34703    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
34704        let _response = self.client.send_query::<
34705            BaseNetworkSocketSetIpMulticastLoopbackRequest,
34706            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34707        >(
34708            (value,),
34709            0x20c55c11f00943ea,
34710            fidl::encoding::DynamicFlags::empty(),
34711            ___deadline,
34712        )?;
34713        Ok(_response.map(|x| x))
34714    }
34715
34716    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
34717    pub fn r#get_ip_multicast_loopback(
34718        &self,
34719        ___deadline: zx::MonotonicInstant,
34720    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
34721        let _response = self
34722            .client
34723            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34724                BaseNetworkSocketGetIpMulticastLoopbackResponse,
34725                fidl_fuchsia_posix::Errno,
34726            >>(
34727                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
34728            )?;
34729        Ok(_response.map(|x| x.value))
34730    }
34731
34732    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
34733    pub fn r#add_ip_membership(
34734        &self,
34735        mut membership: &IpMulticastMembership,
34736        ___deadline: zx::MonotonicInstant,
34737    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
34738        let _response =
34739            self.client
34740                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
34741                    fidl::encoding::EmptyStruct,
34742                    fidl_fuchsia_posix::Errno,
34743                >>(
34744                    (membership,),
34745                    0x76bc7df115a3b4d0,
34746                    fidl::encoding::DynamicFlags::empty(),
34747                    ___deadline,
34748                )?;
34749        Ok(_response.map(|x| x))
34750    }
34751
34752    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
34753    pub fn r#drop_ip_membership(
34754        &self,
34755        mut membership: &IpMulticastMembership,
34756        ___deadline: zx::MonotonicInstant,
34757    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
34758        let _response =
34759            self.client
34760                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
34761                    fidl::encoding::EmptyStruct,
34762                    fidl_fuchsia_posix::Errno,
34763                >>(
34764                    (membership,),
34765                    0x2888f3099188d03,
34766                    fidl::encoding::DynamicFlags::empty(),
34767                    ___deadline,
34768                )?;
34769        Ok(_response.map(|x| x))
34770    }
34771
34772    /// Set `SOL_IP` -> `IP_TRANSPARENT`
34773    pub fn r#set_ip_transparent(
34774        &self,
34775        mut value: bool,
34776        ___deadline: zx::MonotonicInstant,
34777    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
34778        let _response =
34779            self.client
34780                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
34781                    fidl::encoding::EmptyStruct,
34782                    fidl_fuchsia_posix::Errno,
34783                >>(
34784                    (value,),
34785                    0x1ae532b0c066e3a0,
34786                    fidl::encoding::DynamicFlags::empty(),
34787                    ___deadline,
34788                )?;
34789        Ok(_response.map(|x| x))
34790    }
34791
34792    /// Get `SOL_IP` -> `IP_TRANSPARENT`
34793    pub fn r#get_ip_transparent(
34794        &self,
34795        ___deadline: zx::MonotonicInstant,
34796    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
34797        let _response = self
34798            .client
34799            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34800                BaseNetworkSocketGetIpTransparentResponse,
34801                fidl_fuchsia_posix::Errno,
34802            >>(
34803                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
34804            )?;
34805        Ok(_response.map(|x| x.value))
34806    }
34807
34808    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
34809    pub fn r#set_ip_receive_original_destination_address(
34810        &self,
34811        mut value: bool,
34812        ___deadline: zx::MonotonicInstant,
34813    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
34814        let _response = self.client.send_query::<
34815            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
34816            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34817        >(
34818            (value,),
34819            0x4722b4ce52f7840,
34820            fidl::encoding::DynamicFlags::empty(),
34821            ___deadline,
34822        )?;
34823        Ok(_response.map(|x| x))
34824    }
34825
34826    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
34827    pub fn r#get_ip_receive_original_destination_address(
34828        &self,
34829        ___deadline: zx::MonotonicInstant,
34830    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
34831        let _response = self
34832            .client
34833            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34834                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
34835                fidl_fuchsia_posix::Errno,
34836            >>(
34837                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
34838            )?;
34839        Ok(_response.map(|x| x.value))
34840    }
34841
34842    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
34843    pub fn r#add_ipv6_membership(
34844        &self,
34845        mut membership: &Ipv6MulticastMembership,
34846        ___deadline: zx::MonotonicInstant,
34847    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
34848        let _response =
34849            self.client
34850                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
34851                    fidl::encoding::EmptyStruct,
34852                    fidl_fuchsia_posix::Errno,
34853                >>(
34854                    (membership,),
34855                    0x7c94727acb4ea4b3,
34856                    fidl::encoding::DynamicFlags::empty(),
34857                    ___deadline,
34858                )?;
34859        Ok(_response.map(|x| x))
34860    }
34861
34862    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
34863    pub fn r#drop_ipv6_membership(
34864        &self,
34865        mut membership: &Ipv6MulticastMembership,
34866        ___deadline: zx::MonotonicInstant,
34867    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
34868        let _response = self.client.send_query::<
34869            BaseNetworkSocketDropIpv6MembershipRequest,
34870            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34871        >(
34872            (membership,),
34873            0x42104c70ccaba304,
34874            fidl::encoding::DynamicFlags::empty(),
34875            ___deadline,
34876        )?;
34877        Ok(_response.map(|x| x))
34878    }
34879
34880    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
34881    pub fn r#set_ipv6_multicast_interface(
34882        &self,
34883        mut value: u64,
34884        ___deadline: zx::MonotonicInstant,
34885    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
34886        let _response = self.client.send_query::<
34887            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
34888            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34889        >(
34890            (value,),
34891            0x135f76db3774ab3b,
34892            fidl::encoding::DynamicFlags::empty(),
34893            ___deadline,
34894        )?;
34895        Ok(_response.map(|x| x))
34896    }
34897
34898    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
34899    pub fn r#get_ipv6_multicast_interface(
34900        &self,
34901        ___deadline: zx::MonotonicInstant,
34902    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
34903        let _response = self
34904            .client
34905            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34906                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
34907                fidl_fuchsia_posix::Errno,
34908            >>(
34909                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
34910            )?;
34911        Ok(_response.map(|x| x.value))
34912    }
34913
34914    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
34915    pub fn r#set_ipv6_unicast_hops(
34916        &self,
34917        mut value: &OptionalUint8,
34918        ___deadline: zx::MonotonicInstant,
34919    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
34920        let _response = self.client.send_query::<
34921            BaseNetworkSocketSetIpv6UnicastHopsRequest,
34922            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34923        >(
34924            (value,),
34925            0x157d51e98f462859,
34926            fidl::encoding::DynamicFlags::empty(),
34927            ___deadline,
34928        )?;
34929        Ok(_response.map(|x| x))
34930    }
34931
34932    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
34933    pub fn r#get_ipv6_unicast_hops(
34934        &self,
34935        ___deadline: zx::MonotonicInstant,
34936    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
34937        let _response = self
34938            .client
34939            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34940                BaseNetworkSocketGetIpv6UnicastHopsResponse,
34941                fidl_fuchsia_posix::Errno,
34942            >>(
34943                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
34944            )?;
34945        Ok(_response.map(|x| x.value))
34946    }
34947
34948    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
34949    pub fn r#set_ipv6_receive_hop_limit(
34950        &self,
34951        mut value: bool,
34952        ___deadline: zx::MonotonicInstant,
34953    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
34954        let _response = self.client.send_query::<
34955            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
34956            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34957        >(
34958            (value,),
34959            0x5c24808ed2e84a1e,
34960            fidl::encoding::DynamicFlags::empty(),
34961            ___deadline,
34962        )?;
34963        Ok(_response.map(|x| x))
34964    }
34965
34966    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
34967    pub fn r#get_ipv6_receive_hop_limit(
34968        &self,
34969        ___deadline: zx::MonotonicInstant,
34970    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
34971        let _response = self
34972            .client
34973            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34974                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
34975                fidl_fuchsia_posix::Errno,
34976            >>(
34977                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
34978            )?;
34979        Ok(_response.map(|x| x.value))
34980    }
34981
34982    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
34983    pub fn r#set_ipv6_multicast_hops(
34984        &self,
34985        mut value: &OptionalUint8,
34986        ___deadline: zx::MonotonicInstant,
34987    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
34988        let _response = self.client.send_query::<
34989            BaseNetworkSocketSetIpv6MulticastHopsRequest,
34990            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34991        >(
34992            (value,),
34993            0x25b9cd4d181f82c1,
34994            fidl::encoding::DynamicFlags::empty(),
34995            ___deadline,
34996        )?;
34997        Ok(_response.map(|x| x))
34998    }
34999
35000    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
35001    pub fn r#get_ipv6_multicast_hops(
35002        &self,
35003        ___deadline: zx::MonotonicInstant,
35004    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
35005        let _response = self
35006            .client
35007            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35008                BaseNetworkSocketGetIpv6MulticastHopsResponse,
35009                fidl_fuchsia_posix::Errno,
35010            >>(
35011                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
35012            )?;
35013        Ok(_response.map(|x| x.value))
35014    }
35015
35016    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
35017    pub fn r#set_ipv6_multicast_loopback(
35018        &self,
35019        mut value: bool,
35020        ___deadline: zx::MonotonicInstant,
35021    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
35022        let _response = self.client.send_query::<
35023            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
35024            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35025        >(
35026            (value,),
35027            0x55701c409ff41b40,
35028            fidl::encoding::DynamicFlags::empty(),
35029            ___deadline,
35030        )?;
35031        Ok(_response.map(|x| x))
35032    }
35033
35034    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
35035    pub fn r#get_ipv6_multicast_loopback(
35036        &self,
35037        ___deadline: zx::MonotonicInstant,
35038    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
35039        let _response = self
35040            .client
35041            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35042                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
35043                fidl_fuchsia_posix::Errno,
35044            >>(
35045                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
35046            )?;
35047        Ok(_response.map(|x| x.value))
35048    }
35049
35050    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
35051    pub fn r#set_ipv6_only(
35052        &self,
35053        mut value: bool,
35054        ___deadline: zx::MonotonicInstant,
35055    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
35056        let _response =
35057            self.client
35058                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
35059                    fidl::encoding::EmptyStruct,
35060                    fidl_fuchsia_posix::Errno,
35061                >>(
35062                    (value,),
35063                    0x4873f1364758cbba,
35064                    fidl::encoding::DynamicFlags::empty(),
35065                    ___deadline,
35066                )?;
35067        Ok(_response.map(|x| x))
35068    }
35069
35070    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
35071    pub fn r#get_ipv6_only(
35072        &self,
35073        ___deadline: zx::MonotonicInstant,
35074    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
35075        let _response = self
35076            .client
35077            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35078                BaseNetworkSocketGetIpv6OnlyResponse,
35079                fidl_fuchsia_posix::Errno,
35080            >>(
35081                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
35082            )?;
35083        Ok(_response.map(|x| x.value))
35084    }
35085
35086    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
35087    pub fn r#set_ipv6_receive_traffic_class(
35088        &self,
35089        mut value: bool,
35090        ___deadline: zx::MonotonicInstant,
35091    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
35092        let _response = self.client.send_query::<
35093            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
35094            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35095        >(
35096            (value,),
35097            0x58f07c8788d099a0,
35098            fidl::encoding::DynamicFlags::empty(),
35099            ___deadline,
35100        )?;
35101        Ok(_response.map(|x| x))
35102    }
35103
35104    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
35105    pub fn r#get_ipv6_receive_traffic_class(
35106        &self,
35107        ___deadline: zx::MonotonicInstant,
35108    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
35109        let _response = self
35110            .client
35111            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35112                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
35113                fidl_fuchsia_posix::Errno,
35114            >>(
35115                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
35116            )?;
35117        Ok(_response.map(|x| x.value))
35118    }
35119
35120    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
35121    pub fn r#set_ipv6_traffic_class(
35122        &self,
35123        mut value: &OptionalUint8,
35124        ___deadline: zx::MonotonicInstant,
35125    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
35126        let _response = self.client.send_query::<
35127            BaseNetworkSocketSetIpv6TrafficClassRequest,
35128            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35129        >(
35130            (value,),
35131            0x6af077800c5a0b4f,
35132            fidl::encoding::DynamicFlags::empty(),
35133            ___deadline,
35134        )?;
35135        Ok(_response.map(|x| x))
35136    }
35137
35138    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
35139    pub fn r#get_ipv6_traffic_class(
35140        &self,
35141        ___deadline: zx::MonotonicInstant,
35142    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
35143        let _response = self
35144            .client
35145            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35146                BaseNetworkSocketGetIpv6TrafficClassResponse,
35147                fidl_fuchsia_posix::Errno,
35148            >>(
35149                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
35150            )?;
35151        Ok(_response.map(|x| x.value))
35152    }
35153
35154    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
35155    pub fn r#set_ipv6_receive_packet_info(
35156        &self,
35157        mut value: bool,
35158        ___deadline: zx::MonotonicInstant,
35159    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
35160        let _response = self.client.send_query::<
35161            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
35162            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35163        >(
35164            (value,),
35165            0x19259775b1a92768,
35166            fidl::encoding::DynamicFlags::empty(),
35167            ___deadline,
35168        )?;
35169        Ok(_response.map(|x| x))
35170    }
35171
35172    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
35173    pub fn r#get_ipv6_receive_packet_info(
35174        &self,
35175        ___deadline: zx::MonotonicInstant,
35176    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
35177        let _response = self
35178            .client
35179            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35180                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
35181                fidl_fuchsia_posix::Errno,
35182            >>(
35183                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
35184            )?;
35185        Ok(_response.map(|x| x.value))
35186    }
35187
35188    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
35189    pub fn r#get_original_destination(
35190        &self,
35191        ___deadline: zx::MonotonicInstant,
35192    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
35193        let _response = self
35194            .client
35195            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35196                BaseNetworkSocketGetOriginalDestinationResponse,
35197                fidl_fuchsia_posix::Errno,
35198            >>(
35199                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
35200            )?;
35201        Ok(_response.map(|x| x.value))
35202    }
35203
35204    /// Retrieves creation information from the socket.
35205    ///
35206    /// - response `domain` the socket's associated domain.
35207    /// - response `proto` the socket's associated protocol.
35208    pub fn r#get_info(
35209        &self,
35210        ___deadline: zx::MonotonicInstant,
35211    ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
35212        let _response = self
35213            .client
35214            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35215                BaseDatagramSocketGetInfoResponse,
35216                fidl_fuchsia_posix::Errno,
35217            >>(
35218                (), 0x48aa0a1f6a32d2ed, fidl::encoding::DynamicFlags::empty(), ___deadline
35219            )?;
35220        Ok(_response.map(|x| (x.domain, x.proto)))
35221    }
35222
35223    pub fn r#describe(
35224        &self,
35225        ___deadline: zx::MonotonicInstant,
35226    ) -> Result<DatagramSocketDescribeResponse, fidl::Error> {
35227        let _response = self
35228            .client
35229            .send_query::<fidl::encoding::EmptyPayload, DatagramSocketDescribeResponse>(
35230                (),
35231                0xbf1e2f0a86601f3,
35232                fidl::encoding::DynamicFlags::empty(),
35233                ___deadline,
35234            )?;
35235        Ok(_response)
35236    }
35237
35238    /// Validates that data can be sent.
35239    ///
35240    /// + request `args` the requested disposition of data to be sent.
35241    /// - response the constraints sent data must satisfy.
35242    /// * error the error code indicating the reason for validation failure.
35243    pub fn r#send_msg_preflight(
35244        &self,
35245        mut payload: &DatagramSocketSendMsgPreflightRequest,
35246        ___deadline: zx::MonotonicInstant,
35247    ) -> Result<DatagramSocketSendMsgPreflightResult, fidl::Error> {
35248        let _response = self
35249            .client
35250            .send_query::<DatagramSocketSendMsgPreflightRequest, fidl::encoding::ResultType<
35251                DatagramSocketSendMsgPreflightResponse,
35252                fidl_fuchsia_posix::Errno,
35253            >>(
35254                payload, 0x5362e668e777248a, fidl::encoding::DynamicFlags::empty(), ___deadline
35255            )?;
35256        Ok(_response.map(|x| x))
35257    }
35258
35259    /// Returns the set of requested control messages.
35260    ///
35261    /// - response the set of currently requested control messages.
35262    pub fn r#recv_msg_postflight(
35263        &self,
35264        ___deadline: zx::MonotonicInstant,
35265    ) -> Result<DatagramSocketRecvMsgPostflightResult, fidl::Error> {
35266        let _response = self
35267            .client
35268            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35269                DatagramSocketRecvMsgPostflightResponse,
35270                fidl_fuchsia_posix::Errno,
35271            >>(
35272                (), 0x1a7cdeca5f3eb8e2, fidl::encoding::DynamicFlags::empty(), ___deadline
35273            )?;
35274        Ok(_response.map(|x| x))
35275    }
35276}
35277
35278#[cfg(target_os = "fuchsia")]
35279impl From<DatagramSocketSynchronousProxy> for zx::Handle {
35280    fn from(value: DatagramSocketSynchronousProxy) -> Self {
35281        value.into_channel().into()
35282    }
35283}
35284
35285#[cfg(target_os = "fuchsia")]
35286impl From<fidl::Channel> for DatagramSocketSynchronousProxy {
35287    fn from(value: fidl::Channel) -> Self {
35288        Self::new(value)
35289    }
35290}
35291
35292#[cfg(target_os = "fuchsia")]
35293impl fidl::endpoints::FromClient for DatagramSocketSynchronousProxy {
35294    type Protocol = DatagramSocketMarker;
35295
35296    fn from_client(value: fidl::endpoints::ClientEnd<DatagramSocketMarker>) -> Self {
35297        Self::new(value.into_channel())
35298    }
35299}
35300
35301#[derive(Debug, Clone)]
35302pub struct DatagramSocketProxy {
35303    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
35304}
35305
35306impl fidl::endpoints::Proxy for DatagramSocketProxy {
35307    type Protocol = DatagramSocketMarker;
35308
35309    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
35310        Self::new(inner)
35311    }
35312
35313    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
35314        self.client.into_channel().map_err(|client| Self { client })
35315    }
35316
35317    fn as_channel(&self) -> &::fidl::AsyncChannel {
35318        self.client.as_channel()
35319    }
35320}
35321
35322impl DatagramSocketProxy {
35323    /// Create a new Proxy for fuchsia.posix.socket/DatagramSocket.
35324    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
35325        let protocol_name = <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
35326        Self { client: fidl::client::Client::new(channel, protocol_name) }
35327    }
35328
35329    /// Get a Stream of events from the remote end of the protocol.
35330    ///
35331    /// # Panics
35332    ///
35333    /// Panics if the event stream was already taken.
35334    pub fn take_event_stream(&self) -> DatagramSocketEventStream {
35335        DatagramSocketEventStream { event_receiver: self.client.take_event_receiver() }
35336    }
35337
35338    pub fn r#clone(
35339        &self,
35340        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
35341    ) -> Result<(), fidl::Error> {
35342        DatagramSocketProxyInterface::r#clone(self, request)
35343    }
35344
35345    /// Terminates the connection.
35346    ///
35347    /// After calling `Close`, the client must not send any other requests.
35348    ///
35349    /// Servers, after sending the status response, should close the connection
35350    /// regardless of status and without sending an epitaph.
35351    ///
35352    /// Closing the client end of the channel should be semantically equivalent
35353    /// to calling `Close` without knowing when the close has completed or its
35354    /// status.
35355    pub fn r#close(
35356        &self,
35357    ) -> fidl::client::QueryResponseFut<
35358        fidl_fuchsia_unknown::CloseableCloseResult,
35359        fidl::encoding::DefaultFuchsiaResourceDialect,
35360    > {
35361        DatagramSocketProxyInterface::r#close(self)
35362    }
35363
35364    pub fn r#query(
35365        &self,
35366    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
35367    {
35368        DatagramSocketProxyInterface::r#query(self)
35369    }
35370
35371    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
35372    pub fn r#set_reuse_address(
35373        &self,
35374        mut value: bool,
35375    ) -> fidl::client::QueryResponseFut<
35376        BaseSocketSetReuseAddressResult,
35377        fidl::encoding::DefaultFuchsiaResourceDialect,
35378    > {
35379        DatagramSocketProxyInterface::r#set_reuse_address(self, value)
35380    }
35381
35382    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
35383    pub fn r#get_reuse_address(
35384        &self,
35385    ) -> fidl::client::QueryResponseFut<
35386        BaseSocketGetReuseAddressResult,
35387        fidl::encoding::DefaultFuchsiaResourceDialect,
35388    > {
35389        DatagramSocketProxyInterface::r#get_reuse_address(self)
35390    }
35391
35392    /// Get `SOL_SOCKET` -> `SO_ERROR`.
35393    /// Returns the last error if there is an error set on the socket.
35394    pub fn r#get_error(
35395        &self,
35396    ) -> fidl::client::QueryResponseFut<
35397        BaseSocketGetErrorResult,
35398        fidl::encoding::DefaultFuchsiaResourceDialect,
35399    > {
35400        DatagramSocketProxyInterface::r#get_error(self)
35401    }
35402
35403    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
35404    pub fn r#set_broadcast(
35405        &self,
35406        mut value: bool,
35407    ) -> fidl::client::QueryResponseFut<
35408        BaseSocketSetBroadcastResult,
35409        fidl::encoding::DefaultFuchsiaResourceDialect,
35410    > {
35411        DatagramSocketProxyInterface::r#set_broadcast(self, value)
35412    }
35413
35414    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
35415    pub fn r#get_broadcast(
35416        &self,
35417    ) -> fidl::client::QueryResponseFut<
35418        BaseSocketGetBroadcastResult,
35419        fidl::encoding::DefaultFuchsiaResourceDialect,
35420    > {
35421        DatagramSocketProxyInterface::r#get_broadcast(self)
35422    }
35423
35424    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
35425    pub fn r#set_send_buffer(
35426        &self,
35427        mut value_bytes: u64,
35428    ) -> fidl::client::QueryResponseFut<
35429        BaseSocketSetSendBufferResult,
35430        fidl::encoding::DefaultFuchsiaResourceDialect,
35431    > {
35432        DatagramSocketProxyInterface::r#set_send_buffer(self, value_bytes)
35433    }
35434
35435    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
35436    pub fn r#get_send_buffer(
35437        &self,
35438    ) -> fidl::client::QueryResponseFut<
35439        BaseSocketGetSendBufferResult,
35440        fidl::encoding::DefaultFuchsiaResourceDialect,
35441    > {
35442        DatagramSocketProxyInterface::r#get_send_buffer(self)
35443    }
35444
35445    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
35446    pub fn r#set_receive_buffer(
35447        &self,
35448        mut value_bytes: u64,
35449    ) -> fidl::client::QueryResponseFut<
35450        BaseSocketSetReceiveBufferResult,
35451        fidl::encoding::DefaultFuchsiaResourceDialect,
35452    > {
35453        DatagramSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
35454    }
35455
35456    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
35457    pub fn r#get_receive_buffer(
35458        &self,
35459    ) -> fidl::client::QueryResponseFut<
35460        BaseSocketGetReceiveBufferResult,
35461        fidl::encoding::DefaultFuchsiaResourceDialect,
35462    > {
35463        DatagramSocketProxyInterface::r#get_receive_buffer(self)
35464    }
35465
35466    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
35467    pub fn r#set_keep_alive(
35468        &self,
35469        mut value: bool,
35470    ) -> fidl::client::QueryResponseFut<
35471        BaseSocketSetKeepAliveResult,
35472        fidl::encoding::DefaultFuchsiaResourceDialect,
35473    > {
35474        DatagramSocketProxyInterface::r#set_keep_alive(self, value)
35475    }
35476
35477    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
35478    pub fn r#get_keep_alive(
35479        &self,
35480    ) -> fidl::client::QueryResponseFut<
35481        BaseSocketGetKeepAliveResult,
35482        fidl::encoding::DefaultFuchsiaResourceDialect,
35483    > {
35484        DatagramSocketProxyInterface::r#get_keep_alive(self)
35485    }
35486
35487    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
35488    pub fn r#set_out_of_band_inline(
35489        &self,
35490        mut value: bool,
35491    ) -> fidl::client::QueryResponseFut<
35492        BaseSocketSetOutOfBandInlineResult,
35493        fidl::encoding::DefaultFuchsiaResourceDialect,
35494    > {
35495        DatagramSocketProxyInterface::r#set_out_of_band_inline(self, value)
35496    }
35497
35498    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
35499    pub fn r#get_out_of_band_inline(
35500        &self,
35501    ) -> fidl::client::QueryResponseFut<
35502        BaseSocketGetOutOfBandInlineResult,
35503        fidl::encoding::DefaultFuchsiaResourceDialect,
35504    > {
35505        DatagramSocketProxyInterface::r#get_out_of_band_inline(self)
35506    }
35507
35508    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
35509    pub fn r#set_no_check(
35510        &self,
35511        mut value: bool,
35512    ) -> fidl::client::QueryResponseFut<
35513        BaseSocketSetNoCheckResult,
35514        fidl::encoding::DefaultFuchsiaResourceDialect,
35515    > {
35516        DatagramSocketProxyInterface::r#set_no_check(self, value)
35517    }
35518
35519    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
35520    pub fn r#get_no_check(
35521        &self,
35522    ) -> fidl::client::QueryResponseFut<
35523        BaseSocketGetNoCheckResult,
35524        fidl::encoding::DefaultFuchsiaResourceDialect,
35525    > {
35526        DatagramSocketProxyInterface::r#get_no_check(self)
35527    }
35528
35529    /// Set `SOL_SOCKET` -> `SO_LINGER`.
35530    pub fn r#set_linger(
35531        &self,
35532        mut linger: bool,
35533        mut length_secs: u32,
35534    ) -> fidl::client::QueryResponseFut<
35535        BaseSocketSetLingerResult,
35536        fidl::encoding::DefaultFuchsiaResourceDialect,
35537    > {
35538        DatagramSocketProxyInterface::r#set_linger(self, linger, length_secs)
35539    }
35540
35541    /// Get `SOL_SOCKET` -> `SO_LINGER`.
35542    pub fn r#get_linger(
35543        &self,
35544    ) -> fidl::client::QueryResponseFut<
35545        BaseSocketGetLingerResult,
35546        fidl::encoding::DefaultFuchsiaResourceDialect,
35547    > {
35548        DatagramSocketProxyInterface::r#get_linger(self)
35549    }
35550
35551    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
35552    pub fn r#set_reuse_port(
35553        &self,
35554        mut value: bool,
35555    ) -> fidl::client::QueryResponseFut<
35556        BaseSocketSetReusePortResult,
35557        fidl::encoding::DefaultFuchsiaResourceDialect,
35558    > {
35559        DatagramSocketProxyInterface::r#set_reuse_port(self, value)
35560    }
35561
35562    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
35563    pub fn r#get_reuse_port(
35564        &self,
35565    ) -> fidl::client::QueryResponseFut<
35566        BaseSocketGetReusePortResult,
35567        fidl::encoding::DefaultFuchsiaResourceDialect,
35568    > {
35569        DatagramSocketProxyInterface::r#get_reuse_port(self)
35570    }
35571
35572    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
35573    pub fn r#get_accept_conn(
35574        &self,
35575    ) -> fidl::client::QueryResponseFut<
35576        BaseSocketGetAcceptConnResult,
35577        fidl::encoding::DefaultFuchsiaResourceDialect,
35578    > {
35579        DatagramSocketProxyInterface::r#get_accept_conn(self)
35580    }
35581
35582    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
35583    pub fn r#set_bind_to_device(
35584        &self,
35585        mut value: &str,
35586    ) -> fidl::client::QueryResponseFut<
35587        BaseSocketSetBindToDeviceResult,
35588        fidl::encoding::DefaultFuchsiaResourceDialect,
35589    > {
35590        DatagramSocketProxyInterface::r#set_bind_to_device(self, value)
35591    }
35592
35593    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
35594    pub fn r#get_bind_to_device(
35595        &self,
35596    ) -> fidl::client::QueryResponseFut<
35597        BaseSocketGetBindToDeviceResult,
35598        fidl::encoding::DefaultFuchsiaResourceDialect,
35599    > {
35600        DatagramSocketProxyInterface::r#get_bind_to_device(self)
35601    }
35602
35603    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
35604    /// If `value` is 0, this clears the bound interface.
35605    pub fn r#set_bind_to_interface_index(
35606        &self,
35607        mut value: u64,
35608    ) -> fidl::client::QueryResponseFut<
35609        BaseSocketSetBindToInterfaceIndexResult,
35610        fidl::encoding::DefaultFuchsiaResourceDialect,
35611    > {
35612        DatagramSocketProxyInterface::r#set_bind_to_interface_index(self, value)
35613    }
35614
35615    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
35616    pub fn r#get_bind_to_interface_index(
35617        &self,
35618    ) -> fidl::client::QueryResponseFut<
35619        BaseSocketGetBindToInterfaceIndexResult,
35620        fidl::encoding::DefaultFuchsiaResourceDialect,
35621    > {
35622        DatagramSocketProxyInterface::r#get_bind_to_interface_index(self)
35623    }
35624
35625    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
35626    pub fn r#set_timestamp(
35627        &self,
35628        mut value: TimestampOption,
35629    ) -> fidl::client::QueryResponseFut<
35630        BaseSocketSetTimestampResult,
35631        fidl::encoding::DefaultFuchsiaResourceDialect,
35632    > {
35633        DatagramSocketProxyInterface::r#set_timestamp(self, value)
35634    }
35635
35636    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
35637    pub fn r#get_timestamp(
35638        &self,
35639    ) -> fidl::client::QueryResponseFut<
35640        BaseSocketGetTimestampResult,
35641        fidl::encoding::DefaultFuchsiaResourceDialect,
35642    > {
35643        DatagramSocketProxyInterface::r#get_timestamp(self)
35644    }
35645
35646    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
35647    /// unlike the standard SO_MARK, this API has multiple mark domains and each
35648    /// mark can be set independently in each domain.
35649    pub fn r#set_mark(
35650        &self,
35651        mut domain: fidl_fuchsia_net::MarkDomain,
35652        mut mark: &OptionalUint32,
35653    ) -> fidl::client::QueryResponseFut<
35654        BaseSocketSetMarkResult,
35655        fidl::encoding::DefaultFuchsiaResourceDialect,
35656    > {
35657        DatagramSocketProxyInterface::r#set_mark(self, domain, mark)
35658    }
35659
35660    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
35661    /// unlike the standard SO_MARK, this API has multiple mark domains and each
35662    /// mark can be retrieved independently in each domain.
35663    pub fn r#get_mark(
35664        &self,
35665        mut domain: fidl_fuchsia_net::MarkDomain,
35666    ) -> fidl::client::QueryResponseFut<
35667        BaseSocketGetMarkResult,
35668        fidl::encoding::DefaultFuchsiaResourceDialect,
35669    > {
35670        DatagramSocketProxyInterface::r#get_mark(self, domain)
35671    }
35672
35673    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
35674    pub fn r#get_cookie(
35675        &self,
35676    ) -> fidl::client::QueryResponseFut<
35677        BaseSocketGetCookieResult,
35678        fidl::encoding::DefaultFuchsiaResourceDialect,
35679    > {
35680        DatagramSocketProxyInterface::r#get_cookie(self)
35681    }
35682
35683    /// Sets the local address used for the socket.
35684    pub fn r#bind(
35685        &self,
35686        mut addr: &fidl_fuchsia_net::SocketAddress,
35687    ) -> fidl::client::QueryResponseFut<
35688        BaseNetworkSocketBindResult,
35689        fidl::encoding::DefaultFuchsiaResourceDialect,
35690    > {
35691        DatagramSocketProxyInterface::r#bind(self, addr)
35692    }
35693
35694    /// Initiates a connection to a remote address.
35695    pub fn r#connect(
35696        &self,
35697        mut addr: &fidl_fuchsia_net::SocketAddress,
35698    ) -> fidl::client::QueryResponseFut<
35699        BaseNetworkSocketConnectResult,
35700        fidl::encoding::DefaultFuchsiaResourceDialect,
35701    > {
35702        DatagramSocketProxyInterface::r#connect(self, addr)
35703    }
35704
35705    /// Clears connection information from this socket.
35706    pub fn r#disconnect(
35707        &self,
35708    ) -> fidl::client::QueryResponseFut<
35709        BaseNetworkSocketDisconnectResult,
35710        fidl::encoding::DefaultFuchsiaResourceDialect,
35711    > {
35712        DatagramSocketProxyInterface::r#disconnect(self)
35713    }
35714
35715    /// Retrieves the local socket address.
35716    pub fn r#get_sock_name(
35717        &self,
35718    ) -> fidl::client::QueryResponseFut<
35719        BaseNetworkSocketGetSockNameResult,
35720        fidl::encoding::DefaultFuchsiaResourceDialect,
35721    > {
35722        DatagramSocketProxyInterface::r#get_sock_name(self)
35723    }
35724
35725    /// Retrieves the remote socket address.
35726    pub fn r#get_peer_name(
35727        &self,
35728    ) -> fidl::client::QueryResponseFut<
35729        BaseNetworkSocketGetPeerNameResult,
35730        fidl::encoding::DefaultFuchsiaResourceDialect,
35731    > {
35732        DatagramSocketProxyInterface::r#get_peer_name(self)
35733    }
35734
35735    /// Shuts down part of the socket.
35736    pub fn r#shutdown(
35737        &self,
35738        mut mode: ShutdownMode,
35739    ) -> fidl::client::QueryResponseFut<
35740        BaseNetworkSocketShutdownResult,
35741        fidl::encoding::DefaultFuchsiaResourceDialect,
35742    > {
35743        DatagramSocketProxyInterface::r#shutdown(self, mode)
35744    }
35745
35746    /// Set `SOL_IP` -> `IP_TOS`.
35747    pub fn r#set_ip_type_of_service(
35748        &self,
35749        mut value: u8,
35750    ) -> fidl::client::QueryResponseFut<
35751        BaseNetworkSocketSetIpTypeOfServiceResult,
35752        fidl::encoding::DefaultFuchsiaResourceDialect,
35753    > {
35754        DatagramSocketProxyInterface::r#set_ip_type_of_service(self, value)
35755    }
35756
35757    /// Get `SOL_IP` -> `IP_TOS`.
35758    pub fn r#get_ip_type_of_service(
35759        &self,
35760    ) -> fidl::client::QueryResponseFut<
35761        BaseNetworkSocketGetIpTypeOfServiceResult,
35762        fidl::encoding::DefaultFuchsiaResourceDialect,
35763    > {
35764        DatagramSocketProxyInterface::r#get_ip_type_of_service(self)
35765    }
35766
35767    /// Set `SOL_IP` -> `IP_TTL`.
35768    pub fn r#set_ip_ttl(
35769        &self,
35770        mut value: &OptionalUint8,
35771    ) -> fidl::client::QueryResponseFut<
35772        BaseNetworkSocketSetIpTtlResult,
35773        fidl::encoding::DefaultFuchsiaResourceDialect,
35774    > {
35775        DatagramSocketProxyInterface::r#set_ip_ttl(self, value)
35776    }
35777
35778    /// Get `SOL_IP` -> `IP_TTL`.
35779    pub fn r#get_ip_ttl(
35780        &self,
35781    ) -> fidl::client::QueryResponseFut<
35782        BaseNetworkSocketGetIpTtlResult,
35783        fidl::encoding::DefaultFuchsiaResourceDialect,
35784    > {
35785        DatagramSocketProxyInterface::r#get_ip_ttl(self)
35786    }
35787
35788    /// Set `SOL_IP` -> `IP_PKTINFO`.
35789    pub fn r#set_ip_packet_info(
35790        &self,
35791        mut value: bool,
35792    ) -> fidl::client::QueryResponseFut<
35793        BaseNetworkSocketSetIpPacketInfoResult,
35794        fidl::encoding::DefaultFuchsiaResourceDialect,
35795    > {
35796        DatagramSocketProxyInterface::r#set_ip_packet_info(self, value)
35797    }
35798
35799    /// Get `SOL_IP` -> `IP_PKTINFO`.
35800    pub fn r#get_ip_packet_info(
35801        &self,
35802    ) -> fidl::client::QueryResponseFut<
35803        BaseNetworkSocketGetIpPacketInfoResult,
35804        fidl::encoding::DefaultFuchsiaResourceDialect,
35805    > {
35806        DatagramSocketProxyInterface::r#get_ip_packet_info(self)
35807    }
35808
35809    /// Set `SOL_IP` -> `IP_RECVTOS`.
35810    pub fn r#set_ip_receive_type_of_service(
35811        &self,
35812        mut value: bool,
35813    ) -> fidl::client::QueryResponseFut<
35814        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
35815        fidl::encoding::DefaultFuchsiaResourceDialect,
35816    > {
35817        DatagramSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
35818    }
35819
35820    /// Get `SOL_IP` -> `IP_RECVTOS`.
35821    pub fn r#get_ip_receive_type_of_service(
35822        &self,
35823    ) -> fidl::client::QueryResponseFut<
35824        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
35825        fidl::encoding::DefaultFuchsiaResourceDialect,
35826    > {
35827        DatagramSocketProxyInterface::r#get_ip_receive_type_of_service(self)
35828    }
35829
35830    /// Set `SOL_IP` -> `IP_RECVTTL`.
35831    pub fn r#set_ip_receive_ttl(
35832        &self,
35833        mut value: bool,
35834    ) -> fidl::client::QueryResponseFut<
35835        BaseNetworkSocketSetIpReceiveTtlResult,
35836        fidl::encoding::DefaultFuchsiaResourceDialect,
35837    > {
35838        DatagramSocketProxyInterface::r#set_ip_receive_ttl(self, value)
35839    }
35840
35841    /// Get `SOL_IP` -> `IP_RECVTTL`.
35842    pub fn r#get_ip_receive_ttl(
35843        &self,
35844    ) -> fidl::client::QueryResponseFut<
35845        BaseNetworkSocketGetIpReceiveTtlResult,
35846        fidl::encoding::DefaultFuchsiaResourceDialect,
35847    > {
35848        DatagramSocketProxyInterface::r#get_ip_receive_ttl(self)
35849    }
35850
35851    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
35852    pub fn r#set_ip_multicast_interface(
35853        &self,
35854        mut iface: u64,
35855        mut address: &fidl_fuchsia_net::Ipv4Address,
35856    ) -> fidl::client::QueryResponseFut<
35857        BaseNetworkSocketSetIpMulticastInterfaceResult,
35858        fidl::encoding::DefaultFuchsiaResourceDialect,
35859    > {
35860        DatagramSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
35861    }
35862
35863    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
35864    pub fn r#get_ip_multicast_interface(
35865        &self,
35866    ) -> fidl::client::QueryResponseFut<
35867        BaseNetworkSocketGetIpMulticastInterfaceResult,
35868        fidl::encoding::DefaultFuchsiaResourceDialect,
35869    > {
35870        DatagramSocketProxyInterface::r#get_ip_multicast_interface(self)
35871    }
35872
35873    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
35874    pub fn r#set_ip_multicast_ttl(
35875        &self,
35876        mut value: &OptionalUint8,
35877    ) -> fidl::client::QueryResponseFut<
35878        BaseNetworkSocketSetIpMulticastTtlResult,
35879        fidl::encoding::DefaultFuchsiaResourceDialect,
35880    > {
35881        DatagramSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
35882    }
35883
35884    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
35885    pub fn r#get_ip_multicast_ttl(
35886        &self,
35887    ) -> fidl::client::QueryResponseFut<
35888        BaseNetworkSocketGetIpMulticastTtlResult,
35889        fidl::encoding::DefaultFuchsiaResourceDialect,
35890    > {
35891        DatagramSocketProxyInterface::r#get_ip_multicast_ttl(self)
35892    }
35893
35894    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
35895    pub fn r#set_ip_multicast_loopback(
35896        &self,
35897        mut value: bool,
35898    ) -> fidl::client::QueryResponseFut<
35899        BaseNetworkSocketSetIpMulticastLoopbackResult,
35900        fidl::encoding::DefaultFuchsiaResourceDialect,
35901    > {
35902        DatagramSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
35903    }
35904
35905    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
35906    pub fn r#get_ip_multicast_loopback(
35907        &self,
35908    ) -> fidl::client::QueryResponseFut<
35909        BaseNetworkSocketGetIpMulticastLoopbackResult,
35910        fidl::encoding::DefaultFuchsiaResourceDialect,
35911    > {
35912        DatagramSocketProxyInterface::r#get_ip_multicast_loopback(self)
35913    }
35914
35915    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
35916    pub fn r#add_ip_membership(
35917        &self,
35918        mut membership: &IpMulticastMembership,
35919    ) -> fidl::client::QueryResponseFut<
35920        BaseNetworkSocketAddIpMembershipResult,
35921        fidl::encoding::DefaultFuchsiaResourceDialect,
35922    > {
35923        DatagramSocketProxyInterface::r#add_ip_membership(self, membership)
35924    }
35925
35926    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
35927    pub fn r#drop_ip_membership(
35928        &self,
35929        mut membership: &IpMulticastMembership,
35930    ) -> fidl::client::QueryResponseFut<
35931        BaseNetworkSocketDropIpMembershipResult,
35932        fidl::encoding::DefaultFuchsiaResourceDialect,
35933    > {
35934        DatagramSocketProxyInterface::r#drop_ip_membership(self, membership)
35935    }
35936
35937    /// Set `SOL_IP` -> `IP_TRANSPARENT`
35938    pub fn r#set_ip_transparent(
35939        &self,
35940        mut value: bool,
35941    ) -> fidl::client::QueryResponseFut<
35942        BaseNetworkSocketSetIpTransparentResult,
35943        fidl::encoding::DefaultFuchsiaResourceDialect,
35944    > {
35945        DatagramSocketProxyInterface::r#set_ip_transparent(self, value)
35946    }
35947
35948    /// Get `SOL_IP` -> `IP_TRANSPARENT`
35949    pub fn r#get_ip_transparent(
35950        &self,
35951    ) -> fidl::client::QueryResponseFut<
35952        BaseNetworkSocketGetIpTransparentResult,
35953        fidl::encoding::DefaultFuchsiaResourceDialect,
35954    > {
35955        DatagramSocketProxyInterface::r#get_ip_transparent(self)
35956    }
35957
35958    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
35959    pub fn r#set_ip_receive_original_destination_address(
35960        &self,
35961        mut value: bool,
35962    ) -> fidl::client::QueryResponseFut<
35963        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
35964        fidl::encoding::DefaultFuchsiaResourceDialect,
35965    > {
35966        DatagramSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
35967    }
35968
35969    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
35970    pub fn r#get_ip_receive_original_destination_address(
35971        &self,
35972    ) -> fidl::client::QueryResponseFut<
35973        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
35974        fidl::encoding::DefaultFuchsiaResourceDialect,
35975    > {
35976        DatagramSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
35977    }
35978
35979    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
35980    pub fn r#add_ipv6_membership(
35981        &self,
35982        mut membership: &Ipv6MulticastMembership,
35983    ) -> fidl::client::QueryResponseFut<
35984        BaseNetworkSocketAddIpv6MembershipResult,
35985        fidl::encoding::DefaultFuchsiaResourceDialect,
35986    > {
35987        DatagramSocketProxyInterface::r#add_ipv6_membership(self, membership)
35988    }
35989
35990    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
35991    pub fn r#drop_ipv6_membership(
35992        &self,
35993        mut membership: &Ipv6MulticastMembership,
35994    ) -> fidl::client::QueryResponseFut<
35995        BaseNetworkSocketDropIpv6MembershipResult,
35996        fidl::encoding::DefaultFuchsiaResourceDialect,
35997    > {
35998        DatagramSocketProxyInterface::r#drop_ipv6_membership(self, membership)
35999    }
36000
36001    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
36002    pub fn r#set_ipv6_multicast_interface(
36003        &self,
36004        mut value: u64,
36005    ) -> fidl::client::QueryResponseFut<
36006        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
36007        fidl::encoding::DefaultFuchsiaResourceDialect,
36008    > {
36009        DatagramSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
36010    }
36011
36012    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
36013    pub fn r#get_ipv6_multicast_interface(
36014        &self,
36015    ) -> fidl::client::QueryResponseFut<
36016        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
36017        fidl::encoding::DefaultFuchsiaResourceDialect,
36018    > {
36019        DatagramSocketProxyInterface::r#get_ipv6_multicast_interface(self)
36020    }
36021
36022    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
36023    pub fn r#set_ipv6_unicast_hops(
36024        &self,
36025        mut value: &OptionalUint8,
36026    ) -> fidl::client::QueryResponseFut<
36027        BaseNetworkSocketSetIpv6UnicastHopsResult,
36028        fidl::encoding::DefaultFuchsiaResourceDialect,
36029    > {
36030        DatagramSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
36031    }
36032
36033    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
36034    pub fn r#get_ipv6_unicast_hops(
36035        &self,
36036    ) -> fidl::client::QueryResponseFut<
36037        BaseNetworkSocketGetIpv6UnicastHopsResult,
36038        fidl::encoding::DefaultFuchsiaResourceDialect,
36039    > {
36040        DatagramSocketProxyInterface::r#get_ipv6_unicast_hops(self)
36041    }
36042
36043    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
36044    pub fn r#set_ipv6_receive_hop_limit(
36045        &self,
36046        mut value: bool,
36047    ) -> fidl::client::QueryResponseFut<
36048        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
36049        fidl::encoding::DefaultFuchsiaResourceDialect,
36050    > {
36051        DatagramSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
36052    }
36053
36054    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
36055    pub fn r#get_ipv6_receive_hop_limit(
36056        &self,
36057    ) -> fidl::client::QueryResponseFut<
36058        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
36059        fidl::encoding::DefaultFuchsiaResourceDialect,
36060    > {
36061        DatagramSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
36062    }
36063
36064    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
36065    pub fn r#set_ipv6_multicast_hops(
36066        &self,
36067        mut value: &OptionalUint8,
36068    ) -> fidl::client::QueryResponseFut<
36069        BaseNetworkSocketSetIpv6MulticastHopsResult,
36070        fidl::encoding::DefaultFuchsiaResourceDialect,
36071    > {
36072        DatagramSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
36073    }
36074
36075    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
36076    pub fn r#get_ipv6_multicast_hops(
36077        &self,
36078    ) -> fidl::client::QueryResponseFut<
36079        BaseNetworkSocketGetIpv6MulticastHopsResult,
36080        fidl::encoding::DefaultFuchsiaResourceDialect,
36081    > {
36082        DatagramSocketProxyInterface::r#get_ipv6_multicast_hops(self)
36083    }
36084
36085    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
36086    pub fn r#set_ipv6_multicast_loopback(
36087        &self,
36088        mut value: bool,
36089    ) -> fidl::client::QueryResponseFut<
36090        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
36091        fidl::encoding::DefaultFuchsiaResourceDialect,
36092    > {
36093        DatagramSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
36094    }
36095
36096    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
36097    pub fn r#get_ipv6_multicast_loopback(
36098        &self,
36099    ) -> fidl::client::QueryResponseFut<
36100        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
36101        fidl::encoding::DefaultFuchsiaResourceDialect,
36102    > {
36103        DatagramSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
36104    }
36105
36106    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
36107    pub fn r#set_ipv6_only(
36108        &self,
36109        mut value: bool,
36110    ) -> fidl::client::QueryResponseFut<
36111        BaseNetworkSocketSetIpv6OnlyResult,
36112        fidl::encoding::DefaultFuchsiaResourceDialect,
36113    > {
36114        DatagramSocketProxyInterface::r#set_ipv6_only(self, value)
36115    }
36116
36117    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
36118    pub fn r#get_ipv6_only(
36119        &self,
36120    ) -> fidl::client::QueryResponseFut<
36121        BaseNetworkSocketGetIpv6OnlyResult,
36122        fidl::encoding::DefaultFuchsiaResourceDialect,
36123    > {
36124        DatagramSocketProxyInterface::r#get_ipv6_only(self)
36125    }
36126
36127    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
36128    pub fn r#set_ipv6_receive_traffic_class(
36129        &self,
36130        mut value: bool,
36131    ) -> fidl::client::QueryResponseFut<
36132        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
36133        fidl::encoding::DefaultFuchsiaResourceDialect,
36134    > {
36135        DatagramSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
36136    }
36137
36138    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
36139    pub fn r#get_ipv6_receive_traffic_class(
36140        &self,
36141    ) -> fidl::client::QueryResponseFut<
36142        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
36143        fidl::encoding::DefaultFuchsiaResourceDialect,
36144    > {
36145        DatagramSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
36146    }
36147
36148    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
36149    pub fn r#set_ipv6_traffic_class(
36150        &self,
36151        mut value: &OptionalUint8,
36152    ) -> fidl::client::QueryResponseFut<
36153        BaseNetworkSocketSetIpv6TrafficClassResult,
36154        fidl::encoding::DefaultFuchsiaResourceDialect,
36155    > {
36156        DatagramSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
36157    }
36158
36159    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
36160    pub fn r#get_ipv6_traffic_class(
36161        &self,
36162    ) -> fidl::client::QueryResponseFut<
36163        BaseNetworkSocketGetIpv6TrafficClassResult,
36164        fidl::encoding::DefaultFuchsiaResourceDialect,
36165    > {
36166        DatagramSocketProxyInterface::r#get_ipv6_traffic_class(self)
36167    }
36168
36169    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
36170    pub fn r#set_ipv6_receive_packet_info(
36171        &self,
36172        mut value: bool,
36173    ) -> fidl::client::QueryResponseFut<
36174        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
36175        fidl::encoding::DefaultFuchsiaResourceDialect,
36176    > {
36177        DatagramSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
36178    }
36179
36180    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
36181    pub fn r#get_ipv6_receive_packet_info(
36182        &self,
36183    ) -> fidl::client::QueryResponseFut<
36184        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
36185        fidl::encoding::DefaultFuchsiaResourceDialect,
36186    > {
36187        DatagramSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
36188    }
36189
36190    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
36191    pub fn r#get_original_destination(
36192        &self,
36193    ) -> fidl::client::QueryResponseFut<
36194        BaseNetworkSocketGetOriginalDestinationResult,
36195        fidl::encoding::DefaultFuchsiaResourceDialect,
36196    > {
36197        DatagramSocketProxyInterface::r#get_original_destination(self)
36198    }
36199
36200    /// Retrieves creation information from the socket.
36201    ///
36202    /// - response `domain` the socket's associated domain.
36203    /// - response `proto` the socket's associated protocol.
36204    pub fn r#get_info(
36205        &self,
36206    ) -> fidl::client::QueryResponseFut<
36207        BaseDatagramSocketGetInfoResult,
36208        fidl::encoding::DefaultFuchsiaResourceDialect,
36209    > {
36210        DatagramSocketProxyInterface::r#get_info(self)
36211    }
36212
36213    pub fn r#describe(
36214        &self,
36215    ) -> fidl::client::QueryResponseFut<
36216        DatagramSocketDescribeResponse,
36217        fidl::encoding::DefaultFuchsiaResourceDialect,
36218    > {
36219        DatagramSocketProxyInterface::r#describe(self)
36220    }
36221
36222    /// Validates that data can be sent.
36223    ///
36224    /// + request `args` the requested disposition of data to be sent.
36225    /// - response the constraints sent data must satisfy.
36226    /// * error the error code indicating the reason for validation failure.
36227    pub fn r#send_msg_preflight(
36228        &self,
36229        mut payload: &DatagramSocketSendMsgPreflightRequest,
36230    ) -> fidl::client::QueryResponseFut<
36231        DatagramSocketSendMsgPreflightResult,
36232        fidl::encoding::DefaultFuchsiaResourceDialect,
36233    > {
36234        DatagramSocketProxyInterface::r#send_msg_preflight(self, payload)
36235    }
36236
36237    /// Returns the set of requested control messages.
36238    ///
36239    /// - response the set of currently requested control messages.
36240    pub fn r#recv_msg_postflight(
36241        &self,
36242    ) -> fidl::client::QueryResponseFut<
36243        DatagramSocketRecvMsgPostflightResult,
36244        fidl::encoding::DefaultFuchsiaResourceDialect,
36245    > {
36246        DatagramSocketProxyInterface::r#recv_msg_postflight(self)
36247    }
36248}
36249
36250impl DatagramSocketProxyInterface for DatagramSocketProxy {
36251    fn r#clone(
36252        &self,
36253        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
36254    ) -> Result<(), fidl::Error> {
36255        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
36256            (request,),
36257            0x20d8a7aba2168a79,
36258            fidl::encoding::DynamicFlags::empty(),
36259        )
36260    }
36261
36262    type CloseResponseFut = fidl::client::QueryResponseFut<
36263        fidl_fuchsia_unknown::CloseableCloseResult,
36264        fidl::encoding::DefaultFuchsiaResourceDialect,
36265    >;
36266    fn r#close(&self) -> Self::CloseResponseFut {
36267        fn _decode(
36268            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36269        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
36270            let _response = fidl::client::decode_transaction_body::<
36271                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
36272                fidl::encoding::DefaultFuchsiaResourceDialect,
36273                0x5ac5d459ad7f657e,
36274            >(_buf?)?;
36275            Ok(_response.map(|x| x))
36276        }
36277        self.client.send_query_and_decode::<
36278            fidl::encoding::EmptyPayload,
36279            fidl_fuchsia_unknown::CloseableCloseResult,
36280        >(
36281            (),
36282            0x5ac5d459ad7f657e,
36283            fidl::encoding::DynamicFlags::empty(),
36284            _decode,
36285        )
36286    }
36287
36288    type QueryResponseFut =
36289        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
36290    fn r#query(&self) -> Self::QueryResponseFut {
36291        fn _decode(
36292            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36293        ) -> Result<Vec<u8>, fidl::Error> {
36294            let _response = fidl::client::decode_transaction_body::<
36295                fidl_fuchsia_unknown::QueryableQueryResponse,
36296                fidl::encoding::DefaultFuchsiaResourceDialect,
36297                0x2658edee9decfc06,
36298            >(_buf?)?;
36299            Ok(_response.protocol)
36300        }
36301        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
36302            (),
36303            0x2658edee9decfc06,
36304            fidl::encoding::DynamicFlags::empty(),
36305            _decode,
36306        )
36307    }
36308
36309    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
36310        BaseSocketSetReuseAddressResult,
36311        fidl::encoding::DefaultFuchsiaResourceDialect,
36312    >;
36313    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
36314        fn _decode(
36315            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36316        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
36317            let _response = fidl::client::decode_transaction_body::<
36318                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36319                fidl::encoding::DefaultFuchsiaResourceDialect,
36320                0x1fd74ee8b9a4a876,
36321            >(_buf?)?;
36322            Ok(_response.map(|x| x))
36323        }
36324        self.client.send_query_and_decode::<
36325            BaseSocketSetReuseAddressRequest,
36326            BaseSocketSetReuseAddressResult,
36327        >(
36328            (value,),
36329            0x1fd74ee8b9a4a876,
36330            fidl::encoding::DynamicFlags::empty(),
36331            _decode,
36332        )
36333    }
36334
36335    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
36336        BaseSocketGetReuseAddressResult,
36337        fidl::encoding::DefaultFuchsiaResourceDialect,
36338    >;
36339    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
36340        fn _decode(
36341            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36342        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
36343            let _response = fidl::client::decode_transaction_body::<
36344                fidl::encoding::ResultType<
36345                    BaseSocketGetReuseAddressResponse,
36346                    fidl_fuchsia_posix::Errno,
36347                >,
36348                fidl::encoding::DefaultFuchsiaResourceDialect,
36349                0x67b7206b8d1bc0a5,
36350            >(_buf?)?;
36351            Ok(_response.map(|x| x.value))
36352        }
36353        self.client
36354            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
36355                (),
36356                0x67b7206b8d1bc0a5,
36357                fidl::encoding::DynamicFlags::empty(),
36358                _decode,
36359            )
36360    }
36361
36362    type GetErrorResponseFut = fidl::client::QueryResponseFut<
36363        BaseSocketGetErrorResult,
36364        fidl::encoding::DefaultFuchsiaResourceDialect,
36365    >;
36366    fn r#get_error(&self) -> Self::GetErrorResponseFut {
36367        fn _decode(
36368            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36369        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
36370            let _response = fidl::client::decode_transaction_body::<
36371                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36372                fidl::encoding::DefaultFuchsiaResourceDialect,
36373                0x5aad39b33e5f6ebb,
36374            >(_buf?)?;
36375            Ok(_response.map(|x| x))
36376        }
36377        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
36378            (),
36379            0x5aad39b33e5f6ebb,
36380            fidl::encoding::DynamicFlags::empty(),
36381            _decode,
36382        )
36383    }
36384
36385    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
36386        BaseSocketSetBroadcastResult,
36387        fidl::encoding::DefaultFuchsiaResourceDialect,
36388    >;
36389    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
36390        fn _decode(
36391            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36392        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
36393            let _response = fidl::client::decode_transaction_body::<
36394                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36395                fidl::encoding::DefaultFuchsiaResourceDialect,
36396                0x6023e081ce3cd947,
36397            >(_buf?)?;
36398            Ok(_response.map(|x| x))
36399        }
36400        self.client
36401            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
36402                (value,),
36403                0x6023e081ce3cd947,
36404                fidl::encoding::DynamicFlags::empty(),
36405                _decode,
36406            )
36407    }
36408
36409    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
36410        BaseSocketGetBroadcastResult,
36411        fidl::encoding::DefaultFuchsiaResourceDialect,
36412    >;
36413    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
36414        fn _decode(
36415            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36416        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
36417            let _response = fidl::client::decode_transaction_body::<
36418                fidl::encoding::ResultType<
36419                    BaseSocketGetBroadcastResponse,
36420                    fidl_fuchsia_posix::Errno,
36421                >,
36422                fidl::encoding::DefaultFuchsiaResourceDialect,
36423                0x68796fc556f9780d,
36424            >(_buf?)?;
36425            Ok(_response.map(|x| x.value))
36426        }
36427        self.client
36428            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
36429                (),
36430                0x68796fc556f9780d,
36431                fidl::encoding::DynamicFlags::empty(),
36432                _decode,
36433            )
36434    }
36435
36436    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
36437        BaseSocketSetSendBufferResult,
36438        fidl::encoding::DefaultFuchsiaResourceDialect,
36439    >;
36440    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
36441        fn _decode(
36442            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36443        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
36444            let _response = fidl::client::decode_transaction_body::<
36445                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36446                fidl::encoding::DefaultFuchsiaResourceDialect,
36447                0x756eac32d73a7a70,
36448            >(_buf?)?;
36449            Ok(_response.map(|x| x))
36450        }
36451        self.client
36452            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
36453                (value_bytes,),
36454                0x756eac32d73a7a70,
36455                fidl::encoding::DynamicFlags::empty(),
36456                _decode,
36457            )
36458    }
36459
36460    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
36461        BaseSocketGetSendBufferResult,
36462        fidl::encoding::DefaultFuchsiaResourceDialect,
36463    >;
36464    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
36465        fn _decode(
36466            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36467        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
36468            let _response = fidl::client::decode_transaction_body::<
36469                fidl::encoding::ResultType<
36470                    BaseSocketGetSendBufferResponse,
36471                    fidl_fuchsia_posix::Errno,
36472                >,
36473                fidl::encoding::DefaultFuchsiaResourceDialect,
36474                0x78a52fd9c7b2410b,
36475            >(_buf?)?;
36476            Ok(_response.map(|x| x.value_bytes))
36477        }
36478        self.client
36479            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
36480                (),
36481                0x78a52fd9c7b2410b,
36482                fidl::encoding::DynamicFlags::empty(),
36483                _decode,
36484            )
36485    }
36486
36487    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
36488        BaseSocketSetReceiveBufferResult,
36489        fidl::encoding::DefaultFuchsiaResourceDialect,
36490    >;
36491    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
36492        fn _decode(
36493            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36494        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
36495            let _response = fidl::client::decode_transaction_body::<
36496                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36497                fidl::encoding::DefaultFuchsiaResourceDialect,
36498                0x6b0cf2f1919c7001,
36499            >(_buf?)?;
36500            Ok(_response.map(|x| x))
36501        }
36502        self.client.send_query_and_decode::<
36503            BaseSocketSetReceiveBufferRequest,
36504            BaseSocketSetReceiveBufferResult,
36505        >(
36506            (value_bytes,),
36507            0x6b0cf2f1919c7001,
36508            fidl::encoding::DynamicFlags::empty(),
36509            _decode,
36510        )
36511    }
36512
36513    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
36514        BaseSocketGetReceiveBufferResult,
36515        fidl::encoding::DefaultFuchsiaResourceDialect,
36516    >;
36517    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
36518        fn _decode(
36519            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36520        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
36521            let _response = fidl::client::decode_transaction_body::<
36522                fidl::encoding::ResultType<
36523                    BaseSocketGetReceiveBufferResponse,
36524                    fidl_fuchsia_posix::Errno,
36525                >,
36526                fidl::encoding::DefaultFuchsiaResourceDialect,
36527                0x14c1a4b64f709e5c,
36528            >(_buf?)?;
36529            Ok(_response.map(|x| x.value_bytes))
36530        }
36531        self.client.send_query_and_decode::<
36532            fidl::encoding::EmptyPayload,
36533            BaseSocketGetReceiveBufferResult,
36534        >(
36535            (),
36536            0x14c1a4b64f709e5c,
36537            fidl::encoding::DynamicFlags::empty(),
36538            _decode,
36539        )
36540    }
36541
36542    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
36543        BaseSocketSetKeepAliveResult,
36544        fidl::encoding::DefaultFuchsiaResourceDialect,
36545    >;
36546    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
36547        fn _decode(
36548            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36549        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
36550            let _response = fidl::client::decode_transaction_body::<
36551                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36552                fidl::encoding::DefaultFuchsiaResourceDialect,
36553                0x572df8f0b920d2c7,
36554            >(_buf?)?;
36555            Ok(_response.map(|x| x))
36556        }
36557        self.client
36558            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
36559                (value,),
36560                0x572df8f0b920d2c7,
36561                fidl::encoding::DynamicFlags::empty(),
36562                _decode,
36563            )
36564    }
36565
36566    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
36567        BaseSocketGetKeepAliveResult,
36568        fidl::encoding::DefaultFuchsiaResourceDialect,
36569    >;
36570    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
36571        fn _decode(
36572            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36573        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
36574            let _response = fidl::client::decode_transaction_body::<
36575                fidl::encoding::ResultType<
36576                    BaseSocketGetKeepAliveResponse,
36577                    fidl_fuchsia_posix::Errno,
36578                >,
36579                fidl::encoding::DefaultFuchsiaResourceDialect,
36580                0x2dd29d3215f2c9d2,
36581            >(_buf?)?;
36582            Ok(_response.map(|x| x.value))
36583        }
36584        self.client
36585            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
36586                (),
36587                0x2dd29d3215f2c9d2,
36588                fidl::encoding::DynamicFlags::empty(),
36589                _decode,
36590            )
36591    }
36592
36593    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
36594        BaseSocketSetOutOfBandInlineResult,
36595        fidl::encoding::DefaultFuchsiaResourceDialect,
36596    >;
36597    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
36598        fn _decode(
36599            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36600        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
36601            let _response = fidl::client::decode_transaction_body::<
36602                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36603                fidl::encoding::DefaultFuchsiaResourceDialect,
36604                0x3ecb49968bee439,
36605            >(_buf?)?;
36606            Ok(_response.map(|x| x))
36607        }
36608        self.client.send_query_and_decode::<
36609            BaseSocketSetOutOfBandInlineRequest,
36610            BaseSocketSetOutOfBandInlineResult,
36611        >(
36612            (value,),
36613            0x3ecb49968bee439,
36614            fidl::encoding::DynamicFlags::empty(),
36615            _decode,
36616        )
36617    }
36618
36619    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
36620        BaseSocketGetOutOfBandInlineResult,
36621        fidl::encoding::DefaultFuchsiaResourceDialect,
36622    >;
36623    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
36624        fn _decode(
36625            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36626        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
36627            let _response = fidl::client::decode_transaction_body::<
36628                fidl::encoding::ResultType<
36629                    BaseSocketGetOutOfBandInlineResponse,
36630                    fidl_fuchsia_posix::Errno,
36631                >,
36632                fidl::encoding::DefaultFuchsiaResourceDialect,
36633                0x348c1ab3aeca1745,
36634            >(_buf?)?;
36635            Ok(_response.map(|x| x.value))
36636        }
36637        self.client.send_query_and_decode::<
36638            fidl::encoding::EmptyPayload,
36639            BaseSocketGetOutOfBandInlineResult,
36640        >(
36641            (),
36642            0x348c1ab3aeca1745,
36643            fidl::encoding::DynamicFlags::empty(),
36644            _decode,
36645        )
36646    }
36647
36648    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
36649        BaseSocketSetNoCheckResult,
36650        fidl::encoding::DefaultFuchsiaResourceDialect,
36651    >;
36652    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
36653        fn _decode(
36654            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36655        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
36656            let _response = fidl::client::decode_transaction_body::<
36657                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36658                fidl::encoding::DefaultFuchsiaResourceDialect,
36659                0x6bbf00c53a4c78c2,
36660            >(_buf?)?;
36661            Ok(_response.map(|x| x))
36662        }
36663        self.client
36664            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
36665                (value,),
36666                0x6bbf00c53a4c78c2,
36667                fidl::encoding::DynamicFlags::empty(),
36668                _decode,
36669            )
36670    }
36671
36672    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
36673        BaseSocketGetNoCheckResult,
36674        fidl::encoding::DefaultFuchsiaResourceDialect,
36675    >;
36676    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
36677        fn _decode(
36678            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36679        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
36680            let _response = fidl::client::decode_transaction_body::<
36681                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
36682                fidl::encoding::DefaultFuchsiaResourceDialect,
36683                0x2cd4249286417694,
36684            >(_buf?)?;
36685            Ok(_response.map(|x| x.value))
36686        }
36687        self.client
36688            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
36689                (),
36690                0x2cd4249286417694,
36691                fidl::encoding::DynamicFlags::empty(),
36692                _decode,
36693            )
36694    }
36695
36696    type SetLingerResponseFut = fidl::client::QueryResponseFut<
36697        BaseSocketSetLingerResult,
36698        fidl::encoding::DefaultFuchsiaResourceDialect,
36699    >;
36700    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
36701        fn _decode(
36702            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36703        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
36704            let _response = fidl::client::decode_transaction_body::<
36705                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36706                fidl::encoding::DefaultFuchsiaResourceDialect,
36707                0x45386351246e998e,
36708            >(_buf?)?;
36709            Ok(_response.map(|x| x))
36710        }
36711        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
36712            (linger, length_secs),
36713            0x45386351246e998e,
36714            fidl::encoding::DynamicFlags::empty(),
36715            _decode,
36716        )
36717    }
36718
36719    type GetLingerResponseFut = fidl::client::QueryResponseFut<
36720        BaseSocketGetLingerResult,
36721        fidl::encoding::DefaultFuchsiaResourceDialect,
36722    >;
36723    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
36724        fn _decode(
36725            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36726        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
36727            let _response = fidl::client::decode_transaction_body::<
36728                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
36729                fidl::encoding::DefaultFuchsiaResourceDialect,
36730                0x48eb20fc5ccb0e45,
36731            >(_buf?)?;
36732            Ok(_response.map(|x| (x.linger, x.length_secs)))
36733        }
36734        self.client
36735            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
36736                (),
36737                0x48eb20fc5ccb0e45,
36738                fidl::encoding::DynamicFlags::empty(),
36739                _decode,
36740            )
36741    }
36742
36743    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
36744        BaseSocketSetReusePortResult,
36745        fidl::encoding::DefaultFuchsiaResourceDialect,
36746    >;
36747    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
36748        fn _decode(
36749            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36750        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
36751            let _response = fidl::client::decode_transaction_body::<
36752                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36753                fidl::encoding::DefaultFuchsiaResourceDialect,
36754                0x24dd3e5cb36d9ccb,
36755            >(_buf?)?;
36756            Ok(_response.map(|x| x))
36757        }
36758        self.client
36759            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
36760                (value,),
36761                0x24dd3e5cb36d9ccb,
36762                fidl::encoding::DynamicFlags::empty(),
36763                _decode,
36764            )
36765    }
36766
36767    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
36768        BaseSocketGetReusePortResult,
36769        fidl::encoding::DefaultFuchsiaResourceDialect,
36770    >;
36771    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
36772        fn _decode(
36773            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36774        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
36775            let _response = fidl::client::decode_transaction_body::<
36776                fidl::encoding::ResultType<
36777                    BaseSocketGetReusePortResponse,
36778                    fidl_fuchsia_posix::Errno,
36779                >,
36780                fidl::encoding::DefaultFuchsiaResourceDialect,
36781                0x7a112c1ab54ff828,
36782            >(_buf?)?;
36783            Ok(_response.map(|x| x.value))
36784        }
36785        self.client
36786            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
36787                (),
36788                0x7a112c1ab54ff828,
36789                fidl::encoding::DynamicFlags::empty(),
36790                _decode,
36791            )
36792    }
36793
36794    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
36795        BaseSocketGetAcceptConnResult,
36796        fidl::encoding::DefaultFuchsiaResourceDialect,
36797    >;
36798    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
36799        fn _decode(
36800            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36801        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
36802            let _response = fidl::client::decode_transaction_body::<
36803                fidl::encoding::ResultType<
36804                    BaseSocketGetAcceptConnResponse,
36805                    fidl_fuchsia_posix::Errno,
36806                >,
36807                fidl::encoding::DefaultFuchsiaResourceDialect,
36808                0x67ce6db6c2ec8966,
36809            >(_buf?)?;
36810            Ok(_response.map(|x| x.value))
36811        }
36812        self.client
36813            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
36814                (),
36815                0x67ce6db6c2ec8966,
36816                fidl::encoding::DynamicFlags::empty(),
36817                _decode,
36818            )
36819    }
36820
36821    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
36822        BaseSocketSetBindToDeviceResult,
36823        fidl::encoding::DefaultFuchsiaResourceDialect,
36824    >;
36825    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
36826        fn _decode(
36827            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36828        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
36829            let _response = fidl::client::decode_transaction_body::<
36830                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36831                fidl::encoding::DefaultFuchsiaResourceDialect,
36832                0x2118b483f28aafc4,
36833            >(_buf?)?;
36834            Ok(_response.map(|x| x))
36835        }
36836        self.client.send_query_and_decode::<
36837            BaseSocketSetBindToDeviceRequest,
36838            BaseSocketSetBindToDeviceResult,
36839        >(
36840            (value,),
36841            0x2118b483f28aafc4,
36842            fidl::encoding::DynamicFlags::empty(),
36843            _decode,
36844        )
36845    }
36846
36847    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
36848        BaseSocketGetBindToDeviceResult,
36849        fidl::encoding::DefaultFuchsiaResourceDialect,
36850    >;
36851    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
36852        fn _decode(
36853            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36854        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
36855            let _response = fidl::client::decode_transaction_body::<
36856                fidl::encoding::ResultType<
36857                    BaseSocketGetBindToDeviceResponse,
36858                    fidl_fuchsia_posix::Errno,
36859                >,
36860                fidl::encoding::DefaultFuchsiaResourceDialect,
36861                0x1ab1fbf0ef7906c8,
36862            >(_buf?)?;
36863            Ok(_response.map(|x| x.value))
36864        }
36865        self.client
36866            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
36867                (),
36868                0x1ab1fbf0ef7906c8,
36869                fidl::encoding::DynamicFlags::empty(),
36870                _decode,
36871            )
36872    }
36873
36874    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
36875        BaseSocketSetBindToInterfaceIndexResult,
36876        fidl::encoding::DefaultFuchsiaResourceDialect,
36877    >;
36878    fn r#set_bind_to_interface_index(
36879        &self,
36880        mut value: u64,
36881    ) -> Self::SetBindToInterfaceIndexResponseFut {
36882        fn _decode(
36883            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36884        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
36885            let _response = fidl::client::decode_transaction_body::<
36886                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36887                fidl::encoding::DefaultFuchsiaResourceDialect,
36888                0x6e387a0def00821,
36889            >(_buf?)?;
36890            Ok(_response.map(|x| x))
36891        }
36892        self.client.send_query_and_decode::<
36893            BaseSocketSetBindToInterfaceIndexRequest,
36894            BaseSocketSetBindToInterfaceIndexResult,
36895        >(
36896            (value,),
36897            0x6e387a0def00821,
36898            fidl::encoding::DynamicFlags::empty(),
36899            _decode,
36900        )
36901    }
36902
36903    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
36904        BaseSocketGetBindToInterfaceIndexResult,
36905        fidl::encoding::DefaultFuchsiaResourceDialect,
36906    >;
36907    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
36908        fn _decode(
36909            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36910        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
36911            let _response = fidl::client::decode_transaction_body::<
36912                fidl::encoding::ResultType<
36913                    BaseSocketGetBindToInterfaceIndexResponse,
36914                    fidl_fuchsia_posix::Errno,
36915                >,
36916                fidl::encoding::DefaultFuchsiaResourceDialect,
36917                0x59c31dd3e3078295,
36918            >(_buf?)?;
36919            Ok(_response.map(|x| x.value))
36920        }
36921        self.client.send_query_and_decode::<
36922            fidl::encoding::EmptyPayload,
36923            BaseSocketGetBindToInterfaceIndexResult,
36924        >(
36925            (),
36926            0x59c31dd3e3078295,
36927            fidl::encoding::DynamicFlags::empty(),
36928            _decode,
36929        )
36930    }
36931
36932    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
36933        BaseSocketSetTimestampResult,
36934        fidl::encoding::DefaultFuchsiaResourceDialect,
36935    >;
36936    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
36937        fn _decode(
36938            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36939        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
36940            let _response = fidl::client::decode_transaction_body::<
36941                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36942                fidl::encoding::DefaultFuchsiaResourceDialect,
36943                0x285d6516c263d839,
36944            >(_buf?)?;
36945            Ok(_response.map(|x| x))
36946        }
36947        self.client
36948            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
36949                (value,),
36950                0x285d6516c263d839,
36951                fidl::encoding::DynamicFlags::empty(),
36952                _decode,
36953            )
36954    }
36955
36956    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
36957        BaseSocketGetTimestampResult,
36958        fidl::encoding::DefaultFuchsiaResourceDialect,
36959    >;
36960    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
36961        fn _decode(
36962            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36963        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
36964            let _response = fidl::client::decode_transaction_body::<
36965                fidl::encoding::ResultType<
36966                    BaseSocketGetTimestampResponse,
36967                    fidl_fuchsia_posix::Errno,
36968                >,
36969                fidl::encoding::DefaultFuchsiaResourceDialect,
36970                0x49f2fffbbcc2bd27,
36971            >(_buf?)?;
36972            Ok(_response.map(|x| x.value))
36973        }
36974        self.client
36975            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
36976                (),
36977                0x49f2fffbbcc2bd27,
36978                fidl::encoding::DynamicFlags::empty(),
36979                _decode,
36980            )
36981    }
36982
36983    type SetMarkResponseFut = fidl::client::QueryResponseFut<
36984        BaseSocketSetMarkResult,
36985        fidl::encoding::DefaultFuchsiaResourceDialect,
36986    >;
36987    fn r#set_mark(
36988        &self,
36989        mut domain: fidl_fuchsia_net::MarkDomain,
36990        mut mark: &OptionalUint32,
36991    ) -> Self::SetMarkResponseFut {
36992        fn _decode(
36993            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36994        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
36995            let _response = fidl::client::decode_transaction_body::<
36996                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36997                fidl::encoding::DefaultFuchsiaResourceDialect,
36998                0x6ead6de09f653236,
36999            >(_buf?)?;
37000            Ok(_response.map(|x| x))
37001        }
37002        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
37003            (domain, mark),
37004            0x6ead6de09f653236,
37005            fidl::encoding::DynamicFlags::empty(),
37006            _decode,
37007        )
37008    }
37009
37010    type GetMarkResponseFut = fidl::client::QueryResponseFut<
37011        BaseSocketGetMarkResult,
37012        fidl::encoding::DefaultFuchsiaResourceDialect,
37013    >;
37014    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
37015        fn _decode(
37016            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37017        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
37018            let _response = fidl::client::decode_transaction_body::<
37019                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
37020                fidl::encoding::DefaultFuchsiaResourceDialect,
37021                0x57a2752c61d93d47,
37022            >(_buf?)?;
37023            Ok(_response.map(|x| x.mark))
37024        }
37025        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
37026            (domain,),
37027            0x57a2752c61d93d47,
37028            fidl::encoding::DynamicFlags::empty(),
37029            _decode,
37030        )
37031    }
37032
37033    type GetCookieResponseFut = fidl::client::QueryResponseFut<
37034        BaseSocketGetCookieResult,
37035        fidl::encoding::DefaultFuchsiaResourceDialect,
37036    >;
37037    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
37038        fn _decode(
37039            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37040        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
37041            let _response = fidl::client::decode_transaction_body::<
37042                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
37043                fidl::encoding::DefaultFuchsiaResourceDialect,
37044                0x2c2f47fd8f924e52,
37045            >(_buf?)?;
37046            Ok(_response.map(|x| x.value))
37047        }
37048        self.client
37049            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
37050                (),
37051                0x2c2f47fd8f924e52,
37052                fidl::encoding::DynamicFlags::empty(),
37053                _decode,
37054            )
37055    }
37056
37057    type BindResponseFut = fidl::client::QueryResponseFut<
37058        BaseNetworkSocketBindResult,
37059        fidl::encoding::DefaultFuchsiaResourceDialect,
37060    >;
37061    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
37062        fn _decode(
37063            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37064        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
37065            let _response = fidl::client::decode_transaction_body::<
37066                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37067                fidl::encoding::DefaultFuchsiaResourceDialect,
37068                0x4bc6400ae92125d,
37069            >(_buf?)?;
37070            Ok(_response.map(|x| x))
37071        }
37072        self.client
37073            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
37074                (addr,),
37075                0x4bc6400ae92125d,
37076                fidl::encoding::DynamicFlags::empty(),
37077                _decode,
37078            )
37079    }
37080
37081    type ConnectResponseFut = fidl::client::QueryResponseFut<
37082        BaseNetworkSocketConnectResult,
37083        fidl::encoding::DefaultFuchsiaResourceDialect,
37084    >;
37085    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
37086        fn _decode(
37087            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37088        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
37089            let _response = fidl::client::decode_transaction_body::<
37090                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37091                fidl::encoding::DefaultFuchsiaResourceDialect,
37092                0x5f05f19bfdd38871,
37093            >(_buf?)?;
37094            Ok(_response.map(|x| x))
37095        }
37096        self.client.send_query_and_decode::<
37097            BaseNetworkSocketConnectRequest,
37098            BaseNetworkSocketConnectResult,
37099        >(
37100            (addr,),
37101            0x5f05f19bfdd38871,
37102            fidl::encoding::DynamicFlags::empty(),
37103            _decode,
37104        )
37105    }
37106
37107    type DisconnectResponseFut = fidl::client::QueryResponseFut<
37108        BaseNetworkSocketDisconnectResult,
37109        fidl::encoding::DefaultFuchsiaResourceDialect,
37110    >;
37111    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
37112        fn _decode(
37113            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37114        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
37115            let _response = fidl::client::decode_transaction_body::<
37116                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37117                fidl::encoding::DefaultFuchsiaResourceDialect,
37118                0x74e63b91f7b29b2,
37119            >(_buf?)?;
37120            Ok(_response.map(|x| x))
37121        }
37122        self.client.send_query_and_decode::<
37123            fidl::encoding::EmptyPayload,
37124            BaseNetworkSocketDisconnectResult,
37125        >(
37126            (),
37127            0x74e63b91f7b29b2,
37128            fidl::encoding::DynamicFlags::empty(),
37129            _decode,
37130        )
37131    }
37132
37133    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
37134        BaseNetworkSocketGetSockNameResult,
37135        fidl::encoding::DefaultFuchsiaResourceDialect,
37136    >;
37137    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
37138        fn _decode(
37139            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37140        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
37141            let _response = fidl::client::decode_transaction_body::<
37142                fidl::encoding::ResultType<
37143                    BaseNetworkSocketGetSockNameResponse,
37144                    fidl_fuchsia_posix::Errno,
37145                >,
37146                fidl::encoding::DefaultFuchsiaResourceDialect,
37147                0x475f23f84a1a4f85,
37148            >(_buf?)?;
37149            Ok(_response.map(|x| x.addr))
37150        }
37151        self.client.send_query_and_decode::<
37152            fidl::encoding::EmptyPayload,
37153            BaseNetworkSocketGetSockNameResult,
37154        >(
37155            (),
37156            0x475f23f84a1a4f85,
37157            fidl::encoding::DynamicFlags::empty(),
37158            _decode,
37159        )
37160    }
37161
37162    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
37163        BaseNetworkSocketGetPeerNameResult,
37164        fidl::encoding::DefaultFuchsiaResourceDialect,
37165    >;
37166    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
37167        fn _decode(
37168            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37169        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
37170            let _response = fidl::client::decode_transaction_body::<
37171                fidl::encoding::ResultType<
37172                    BaseNetworkSocketGetPeerNameResponse,
37173                    fidl_fuchsia_posix::Errno,
37174                >,
37175                fidl::encoding::DefaultFuchsiaResourceDialect,
37176                0x1ffecf4bd5b6432e,
37177            >(_buf?)?;
37178            Ok(_response.map(|x| x.addr))
37179        }
37180        self.client.send_query_and_decode::<
37181            fidl::encoding::EmptyPayload,
37182            BaseNetworkSocketGetPeerNameResult,
37183        >(
37184            (),
37185            0x1ffecf4bd5b6432e,
37186            fidl::encoding::DynamicFlags::empty(),
37187            _decode,
37188        )
37189    }
37190
37191    type ShutdownResponseFut = fidl::client::QueryResponseFut<
37192        BaseNetworkSocketShutdownResult,
37193        fidl::encoding::DefaultFuchsiaResourceDialect,
37194    >;
37195    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
37196        fn _decode(
37197            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37198        ) -> Result<BaseNetworkSocketShutdownResult, 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                0x247f38b6db68c336,
37203            >(_buf?)?;
37204            Ok(_response.map(|x| x))
37205        }
37206        self.client.send_query_and_decode::<
37207            BaseNetworkSocketShutdownRequest,
37208            BaseNetworkSocketShutdownResult,
37209        >(
37210            (mode,),
37211            0x247f38b6db68c336,
37212            fidl::encoding::DynamicFlags::empty(),
37213            _decode,
37214        )
37215    }
37216
37217    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
37218        BaseNetworkSocketSetIpTypeOfServiceResult,
37219        fidl::encoding::DefaultFuchsiaResourceDialect,
37220    >;
37221    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
37222        fn _decode(
37223            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37224        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
37225            let _response = fidl::client::decode_transaction_body::<
37226                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37227                fidl::encoding::DefaultFuchsiaResourceDialect,
37228                0x995c600475b6d46,
37229            >(_buf?)?;
37230            Ok(_response.map(|x| x))
37231        }
37232        self.client.send_query_and_decode::<
37233            BaseNetworkSocketSetIpTypeOfServiceRequest,
37234            BaseNetworkSocketSetIpTypeOfServiceResult,
37235        >(
37236            (value,),
37237            0x995c600475b6d46,
37238            fidl::encoding::DynamicFlags::empty(),
37239            _decode,
37240        )
37241    }
37242
37243    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
37244        BaseNetworkSocketGetIpTypeOfServiceResult,
37245        fidl::encoding::DefaultFuchsiaResourceDialect,
37246    >;
37247    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
37248        fn _decode(
37249            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37250        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
37251            let _response = fidl::client::decode_transaction_body::<
37252                fidl::encoding::ResultType<
37253                    BaseNetworkSocketGetIpTypeOfServiceResponse,
37254                    fidl_fuchsia_posix::Errno,
37255                >,
37256                fidl::encoding::DefaultFuchsiaResourceDialect,
37257                0x3814a04259f75fcb,
37258            >(_buf?)?;
37259            Ok(_response.map(|x| x.value))
37260        }
37261        self.client.send_query_and_decode::<
37262            fidl::encoding::EmptyPayload,
37263            BaseNetworkSocketGetIpTypeOfServiceResult,
37264        >(
37265            (),
37266            0x3814a04259f75fcb,
37267            fidl::encoding::DynamicFlags::empty(),
37268            _decode,
37269        )
37270    }
37271
37272    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
37273        BaseNetworkSocketSetIpTtlResult,
37274        fidl::encoding::DefaultFuchsiaResourceDialect,
37275    >;
37276    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
37277        fn _decode(
37278            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37279        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
37280            let _response = fidl::client::decode_transaction_body::<
37281                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37282                fidl::encoding::DefaultFuchsiaResourceDialect,
37283                0x29e2424b433ae1ef,
37284            >(_buf?)?;
37285            Ok(_response.map(|x| x))
37286        }
37287        self.client.send_query_and_decode::<
37288            BaseNetworkSocketSetIpTtlRequest,
37289            BaseNetworkSocketSetIpTtlResult,
37290        >(
37291            (value,),
37292            0x29e2424b433ae1ef,
37293            fidl::encoding::DynamicFlags::empty(),
37294            _decode,
37295        )
37296    }
37297
37298    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
37299        BaseNetworkSocketGetIpTtlResult,
37300        fidl::encoding::DefaultFuchsiaResourceDialect,
37301    >;
37302    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
37303        fn _decode(
37304            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37305        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
37306            let _response = fidl::client::decode_transaction_body::<
37307                fidl::encoding::ResultType<
37308                    BaseNetworkSocketGetIpTtlResponse,
37309                    fidl_fuchsia_posix::Errno,
37310                >,
37311                fidl::encoding::DefaultFuchsiaResourceDialect,
37312                0x47e47fa1f24da471,
37313            >(_buf?)?;
37314            Ok(_response.map(|x| x.value))
37315        }
37316        self.client
37317            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
37318                (),
37319                0x47e47fa1f24da471,
37320                fidl::encoding::DynamicFlags::empty(),
37321                _decode,
37322            )
37323    }
37324
37325    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
37326        BaseNetworkSocketSetIpPacketInfoResult,
37327        fidl::encoding::DefaultFuchsiaResourceDialect,
37328    >;
37329    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
37330        fn _decode(
37331            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37332        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
37333            let _response = fidl::client::decode_transaction_body::<
37334                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37335                fidl::encoding::DefaultFuchsiaResourceDialect,
37336                0x392d16bee20c0e16,
37337            >(_buf?)?;
37338            Ok(_response.map(|x| x))
37339        }
37340        self.client.send_query_and_decode::<
37341            BaseNetworkSocketSetIpPacketInfoRequest,
37342            BaseNetworkSocketSetIpPacketInfoResult,
37343        >(
37344            (value,),
37345            0x392d16bee20c0e16,
37346            fidl::encoding::DynamicFlags::empty(),
37347            _decode,
37348        )
37349    }
37350
37351    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
37352        BaseNetworkSocketGetIpPacketInfoResult,
37353        fidl::encoding::DefaultFuchsiaResourceDialect,
37354    >;
37355    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
37356        fn _decode(
37357            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37358        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
37359            let _response = fidl::client::decode_transaction_body::<
37360                fidl::encoding::ResultType<
37361                    BaseNetworkSocketGetIpPacketInfoResponse,
37362                    fidl_fuchsia_posix::Errno,
37363                >,
37364                fidl::encoding::DefaultFuchsiaResourceDialect,
37365                0x54b505f242280740,
37366            >(_buf?)?;
37367            Ok(_response.map(|x| x.value))
37368        }
37369        self.client.send_query_and_decode::<
37370            fidl::encoding::EmptyPayload,
37371            BaseNetworkSocketGetIpPacketInfoResult,
37372        >(
37373            (),
37374            0x54b505f242280740,
37375            fidl::encoding::DynamicFlags::empty(),
37376            _decode,
37377        )
37378    }
37379
37380    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
37381        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
37382        fidl::encoding::DefaultFuchsiaResourceDialect,
37383    >;
37384    fn r#set_ip_receive_type_of_service(
37385        &self,
37386        mut value: bool,
37387    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
37388        fn _decode(
37389            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37390        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
37391            let _response = fidl::client::decode_transaction_body::<
37392                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37393                fidl::encoding::DefaultFuchsiaResourceDialect,
37394                0x6c4f6714995f84ef,
37395            >(_buf?)?;
37396            Ok(_response.map(|x| x))
37397        }
37398        self.client.send_query_and_decode::<
37399            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
37400            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
37401        >(
37402            (value,),
37403            0x6c4f6714995f84ef,
37404            fidl::encoding::DynamicFlags::empty(),
37405            _decode,
37406        )
37407    }
37408
37409    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
37410        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
37411        fidl::encoding::DefaultFuchsiaResourceDialect,
37412    >;
37413    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
37414        fn _decode(
37415            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37416        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
37417            let _response = fidl::client::decode_transaction_body::<
37418                fidl::encoding::ResultType<
37419                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
37420                    fidl_fuchsia_posix::Errno,
37421                >,
37422                fidl::encoding::DefaultFuchsiaResourceDialect,
37423                0x4158ba7dc2795960,
37424            >(_buf?)?;
37425            Ok(_response.map(|x| x.value))
37426        }
37427        self.client.send_query_and_decode::<
37428            fidl::encoding::EmptyPayload,
37429            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
37430        >(
37431            (),
37432            0x4158ba7dc2795960,
37433            fidl::encoding::DynamicFlags::empty(),
37434            _decode,
37435        )
37436    }
37437
37438    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
37439        BaseNetworkSocketSetIpReceiveTtlResult,
37440        fidl::encoding::DefaultFuchsiaResourceDialect,
37441    >;
37442    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
37443        fn _decode(
37444            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37445        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
37446            let _response = fidl::client::decode_transaction_body::<
37447                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37448                fidl::encoding::DefaultFuchsiaResourceDialect,
37449                0x46f15be0ce0ab82b,
37450            >(_buf?)?;
37451            Ok(_response.map(|x| x))
37452        }
37453        self.client.send_query_and_decode::<
37454            BaseNetworkSocketSetIpReceiveTtlRequest,
37455            BaseNetworkSocketSetIpReceiveTtlResult,
37456        >(
37457            (value,),
37458            0x46f15be0ce0ab82b,
37459            fidl::encoding::DynamicFlags::empty(),
37460            _decode,
37461        )
37462    }
37463
37464    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
37465        BaseNetworkSocketGetIpReceiveTtlResult,
37466        fidl::encoding::DefaultFuchsiaResourceDialect,
37467    >;
37468    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
37469        fn _decode(
37470            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37471        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
37472            let _response = fidl::client::decode_transaction_body::<
37473                fidl::encoding::ResultType<
37474                    BaseNetworkSocketGetIpReceiveTtlResponse,
37475                    fidl_fuchsia_posix::Errno,
37476                >,
37477                fidl::encoding::DefaultFuchsiaResourceDialect,
37478                0x678ddd5a5dfa2eb5,
37479            >(_buf?)?;
37480            Ok(_response.map(|x| x.value))
37481        }
37482        self.client.send_query_and_decode::<
37483            fidl::encoding::EmptyPayload,
37484            BaseNetworkSocketGetIpReceiveTtlResult,
37485        >(
37486            (),
37487            0x678ddd5a5dfa2eb5,
37488            fidl::encoding::DynamicFlags::empty(),
37489            _decode,
37490        )
37491    }
37492
37493    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
37494        BaseNetworkSocketSetIpMulticastInterfaceResult,
37495        fidl::encoding::DefaultFuchsiaResourceDialect,
37496    >;
37497    fn r#set_ip_multicast_interface(
37498        &self,
37499        mut iface: u64,
37500        mut address: &fidl_fuchsia_net::Ipv4Address,
37501    ) -> Self::SetIpMulticastInterfaceResponseFut {
37502        fn _decode(
37503            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37504        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
37505            let _response = fidl::client::decode_transaction_body::<
37506                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37507                fidl::encoding::DefaultFuchsiaResourceDialect,
37508                0x752fbfa9b12befe,
37509            >(_buf?)?;
37510            Ok(_response.map(|x| x))
37511        }
37512        self.client.send_query_and_decode::<
37513            BaseNetworkSocketSetIpMulticastInterfaceRequest,
37514            BaseNetworkSocketSetIpMulticastInterfaceResult,
37515        >(
37516            (iface, address,),
37517            0x752fbfa9b12befe,
37518            fidl::encoding::DynamicFlags::empty(),
37519            _decode,
37520        )
37521    }
37522
37523    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
37524        BaseNetworkSocketGetIpMulticastInterfaceResult,
37525        fidl::encoding::DefaultFuchsiaResourceDialect,
37526    >;
37527    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
37528        fn _decode(
37529            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37530        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
37531            let _response = fidl::client::decode_transaction_body::<
37532                fidl::encoding::ResultType<
37533                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
37534                    fidl_fuchsia_posix::Errno,
37535                >,
37536                fidl::encoding::DefaultFuchsiaResourceDialect,
37537                0x320bd14c4df046c4,
37538            >(_buf?)?;
37539            Ok(_response.map(|x| x.value))
37540        }
37541        self.client.send_query_and_decode::<
37542            fidl::encoding::EmptyPayload,
37543            BaseNetworkSocketGetIpMulticastInterfaceResult,
37544        >(
37545            (),
37546            0x320bd14c4df046c4,
37547            fidl::encoding::DynamicFlags::empty(),
37548            _decode,
37549        )
37550    }
37551
37552    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
37553        BaseNetworkSocketSetIpMulticastTtlResult,
37554        fidl::encoding::DefaultFuchsiaResourceDialect,
37555    >;
37556    fn r#set_ip_multicast_ttl(
37557        &self,
37558        mut value: &OptionalUint8,
37559    ) -> Self::SetIpMulticastTtlResponseFut {
37560        fn _decode(
37561            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37562        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
37563            let _response = fidl::client::decode_transaction_body::<
37564                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37565                fidl::encoding::DefaultFuchsiaResourceDialect,
37566                0x63134d53772916a1,
37567            >(_buf?)?;
37568            Ok(_response.map(|x| x))
37569        }
37570        self.client.send_query_and_decode::<
37571            BaseNetworkSocketSetIpMulticastTtlRequest,
37572            BaseNetworkSocketSetIpMulticastTtlResult,
37573        >(
37574            (value,),
37575            0x63134d53772916a1,
37576            fidl::encoding::DynamicFlags::empty(),
37577            _decode,
37578        )
37579    }
37580
37581    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
37582        BaseNetworkSocketGetIpMulticastTtlResult,
37583        fidl::encoding::DefaultFuchsiaResourceDialect,
37584    >;
37585    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
37586        fn _decode(
37587            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37588        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
37589            let _response = fidl::client::decode_transaction_body::<
37590                fidl::encoding::ResultType<
37591                    BaseNetworkSocketGetIpMulticastTtlResponse,
37592                    fidl_fuchsia_posix::Errno,
37593                >,
37594                fidl::encoding::DefaultFuchsiaResourceDialect,
37595                0x4665cd378f39e1a,
37596            >(_buf?)?;
37597            Ok(_response.map(|x| x.value))
37598        }
37599        self.client.send_query_and_decode::<
37600            fidl::encoding::EmptyPayload,
37601            BaseNetworkSocketGetIpMulticastTtlResult,
37602        >(
37603            (),
37604            0x4665cd378f39e1a,
37605            fidl::encoding::DynamicFlags::empty(),
37606            _decode,
37607        )
37608    }
37609
37610    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
37611        BaseNetworkSocketSetIpMulticastLoopbackResult,
37612        fidl::encoding::DefaultFuchsiaResourceDialect,
37613    >;
37614    fn r#set_ip_multicast_loopback(
37615        &self,
37616        mut value: bool,
37617    ) -> Self::SetIpMulticastLoopbackResponseFut {
37618        fn _decode(
37619            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37620        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
37621            let _response = fidl::client::decode_transaction_body::<
37622                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37623                fidl::encoding::DefaultFuchsiaResourceDialect,
37624                0x20c55c11f00943ea,
37625            >(_buf?)?;
37626            Ok(_response.map(|x| x))
37627        }
37628        self.client.send_query_and_decode::<
37629            BaseNetworkSocketSetIpMulticastLoopbackRequest,
37630            BaseNetworkSocketSetIpMulticastLoopbackResult,
37631        >(
37632            (value,),
37633            0x20c55c11f00943ea,
37634            fidl::encoding::DynamicFlags::empty(),
37635            _decode,
37636        )
37637    }
37638
37639    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
37640        BaseNetworkSocketGetIpMulticastLoopbackResult,
37641        fidl::encoding::DefaultFuchsiaResourceDialect,
37642    >;
37643    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
37644        fn _decode(
37645            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37646        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
37647            let _response = fidl::client::decode_transaction_body::<
37648                fidl::encoding::ResultType<
37649                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
37650                    fidl_fuchsia_posix::Errno,
37651                >,
37652                fidl::encoding::DefaultFuchsiaResourceDialect,
37653                0x3b6b26ff558298f2,
37654            >(_buf?)?;
37655            Ok(_response.map(|x| x.value))
37656        }
37657        self.client.send_query_and_decode::<
37658            fidl::encoding::EmptyPayload,
37659            BaseNetworkSocketGetIpMulticastLoopbackResult,
37660        >(
37661            (),
37662            0x3b6b26ff558298f2,
37663            fidl::encoding::DynamicFlags::empty(),
37664            _decode,
37665        )
37666    }
37667
37668    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
37669        BaseNetworkSocketAddIpMembershipResult,
37670        fidl::encoding::DefaultFuchsiaResourceDialect,
37671    >;
37672    fn r#add_ip_membership(
37673        &self,
37674        mut membership: &IpMulticastMembership,
37675    ) -> Self::AddIpMembershipResponseFut {
37676        fn _decode(
37677            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37678        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
37679            let _response = fidl::client::decode_transaction_body::<
37680                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37681                fidl::encoding::DefaultFuchsiaResourceDialect,
37682                0x76bc7df115a3b4d0,
37683            >(_buf?)?;
37684            Ok(_response.map(|x| x))
37685        }
37686        self.client.send_query_and_decode::<
37687            BaseNetworkSocketAddIpMembershipRequest,
37688            BaseNetworkSocketAddIpMembershipResult,
37689        >(
37690            (membership,),
37691            0x76bc7df115a3b4d0,
37692            fidl::encoding::DynamicFlags::empty(),
37693            _decode,
37694        )
37695    }
37696
37697    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
37698        BaseNetworkSocketDropIpMembershipResult,
37699        fidl::encoding::DefaultFuchsiaResourceDialect,
37700    >;
37701    fn r#drop_ip_membership(
37702        &self,
37703        mut membership: &IpMulticastMembership,
37704    ) -> Self::DropIpMembershipResponseFut {
37705        fn _decode(
37706            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37707        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
37708            let _response = fidl::client::decode_transaction_body::<
37709                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37710                fidl::encoding::DefaultFuchsiaResourceDialect,
37711                0x2888f3099188d03,
37712            >(_buf?)?;
37713            Ok(_response.map(|x| x))
37714        }
37715        self.client.send_query_and_decode::<
37716            BaseNetworkSocketDropIpMembershipRequest,
37717            BaseNetworkSocketDropIpMembershipResult,
37718        >(
37719            (membership,),
37720            0x2888f3099188d03,
37721            fidl::encoding::DynamicFlags::empty(),
37722            _decode,
37723        )
37724    }
37725
37726    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
37727        BaseNetworkSocketSetIpTransparentResult,
37728        fidl::encoding::DefaultFuchsiaResourceDialect,
37729    >;
37730    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
37731        fn _decode(
37732            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37733        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
37734            let _response = fidl::client::decode_transaction_body::<
37735                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37736                fidl::encoding::DefaultFuchsiaResourceDialect,
37737                0x1ae532b0c066e3a0,
37738            >(_buf?)?;
37739            Ok(_response.map(|x| x))
37740        }
37741        self.client.send_query_and_decode::<
37742            BaseNetworkSocketSetIpTransparentRequest,
37743            BaseNetworkSocketSetIpTransparentResult,
37744        >(
37745            (value,),
37746            0x1ae532b0c066e3a0,
37747            fidl::encoding::DynamicFlags::empty(),
37748            _decode,
37749        )
37750    }
37751
37752    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
37753        BaseNetworkSocketGetIpTransparentResult,
37754        fidl::encoding::DefaultFuchsiaResourceDialect,
37755    >;
37756    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
37757        fn _decode(
37758            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37759        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
37760            let _response = fidl::client::decode_transaction_body::<
37761                fidl::encoding::ResultType<
37762                    BaseNetworkSocketGetIpTransparentResponse,
37763                    fidl_fuchsia_posix::Errno,
37764                >,
37765                fidl::encoding::DefaultFuchsiaResourceDialect,
37766                0x51d43695962ebfb5,
37767            >(_buf?)?;
37768            Ok(_response.map(|x| x.value))
37769        }
37770        self.client.send_query_and_decode::<
37771            fidl::encoding::EmptyPayload,
37772            BaseNetworkSocketGetIpTransparentResult,
37773        >(
37774            (),
37775            0x51d43695962ebfb5,
37776            fidl::encoding::DynamicFlags::empty(),
37777            _decode,
37778        )
37779    }
37780
37781    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
37782        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
37783        fidl::encoding::DefaultFuchsiaResourceDialect,
37784    >;
37785    fn r#set_ip_receive_original_destination_address(
37786        &self,
37787        mut value: bool,
37788    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
37789        fn _decode(
37790            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37791        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
37792        {
37793            let _response = fidl::client::decode_transaction_body::<
37794                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37795                fidl::encoding::DefaultFuchsiaResourceDialect,
37796                0x4722b4ce52f7840,
37797            >(_buf?)?;
37798            Ok(_response.map(|x| x))
37799        }
37800        self.client.send_query_and_decode::<
37801            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
37802            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
37803        >(
37804            (value,),
37805            0x4722b4ce52f7840,
37806            fidl::encoding::DynamicFlags::empty(),
37807            _decode,
37808        )
37809    }
37810
37811    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
37812        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
37813        fidl::encoding::DefaultFuchsiaResourceDialect,
37814    >;
37815    fn r#get_ip_receive_original_destination_address(
37816        &self,
37817    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
37818        fn _decode(
37819            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37820        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
37821        {
37822            let _response = fidl::client::decode_transaction_body::<
37823                fidl::encoding::ResultType<
37824                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
37825                    fidl_fuchsia_posix::Errno,
37826                >,
37827                fidl::encoding::DefaultFuchsiaResourceDialect,
37828                0x2a0e7dc5d6bfdfe9,
37829            >(_buf?)?;
37830            Ok(_response.map(|x| x.value))
37831        }
37832        self.client.send_query_and_decode::<
37833            fidl::encoding::EmptyPayload,
37834            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
37835        >(
37836            (),
37837            0x2a0e7dc5d6bfdfe9,
37838            fidl::encoding::DynamicFlags::empty(),
37839            _decode,
37840        )
37841    }
37842
37843    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
37844        BaseNetworkSocketAddIpv6MembershipResult,
37845        fidl::encoding::DefaultFuchsiaResourceDialect,
37846    >;
37847    fn r#add_ipv6_membership(
37848        &self,
37849        mut membership: &Ipv6MulticastMembership,
37850    ) -> Self::AddIpv6MembershipResponseFut {
37851        fn _decode(
37852            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37853        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
37854            let _response = fidl::client::decode_transaction_body::<
37855                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37856                fidl::encoding::DefaultFuchsiaResourceDialect,
37857                0x7c94727acb4ea4b3,
37858            >(_buf?)?;
37859            Ok(_response.map(|x| x))
37860        }
37861        self.client.send_query_and_decode::<
37862            BaseNetworkSocketAddIpv6MembershipRequest,
37863            BaseNetworkSocketAddIpv6MembershipResult,
37864        >(
37865            (membership,),
37866            0x7c94727acb4ea4b3,
37867            fidl::encoding::DynamicFlags::empty(),
37868            _decode,
37869        )
37870    }
37871
37872    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
37873        BaseNetworkSocketDropIpv6MembershipResult,
37874        fidl::encoding::DefaultFuchsiaResourceDialect,
37875    >;
37876    fn r#drop_ipv6_membership(
37877        &self,
37878        mut membership: &Ipv6MulticastMembership,
37879    ) -> Self::DropIpv6MembershipResponseFut {
37880        fn _decode(
37881            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37882        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
37883            let _response = fidl::client::decode_transaction_body::<
37884                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37885                fidl::encoding::DefaultFuchsiaResourceDialect,
37886                0x42104c70ccaba304,
37887            >(_buf?)?;
37888            Ok(_response.map(|x| x))
37889        }
37890        self.client.send_query_and_decode::<
37891            BaseNetworkSocketDropIpv6MembershipRequest,
37892            BaseNetworkSocketDropIpv6MembershipResult,
37893        >(
37894            (membership,),
37895            0x42104c70ccaba304,
37896            fidl::encoding::DynamicFlags::empty(),
37897            _decode,
37898        )
37899    }
37900
37901    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
37902        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
37903        fidl::encoding::DefaultFuchsiaResourceDialect,
37904    >;
37905    fn r#set_ipv6_multicast_interface(
37906        &self,
37907        mut value: u64,
37908    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
37909        fn _decode(
37910            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37911        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
37912            let _response = fidl::client::decode_transaction_body::<
37913                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37914                fidl::encoding::DefaultFuchsiaResourceDialect,
37915                0x135f76db3774ab3b,
37916            >(_buf?)?;
37917            Ok(_response.map(|x| x))
37918        }
37919        self.client.send_query_and_decode::<
37920            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
37921            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
37922        >(
37923            (value,),
37924            0x135f76db3774ab3b,
37925            fidl::encoding::DynamicFlags::empty(),
37926            _decode,
37927        )
37928    }
37929
37930    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
37931        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
37932        fidl::encoding::DefaultFuchsiaResourceDialect,
37933    >;
37934    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
37935        fn _decode(
37936            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37937        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
37938            let _response = fidl::client::decode_transaction_body::<
37939                fidl::encoding::ResultType<
37940                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
37941                    fidl_fuchsia_posix::Errno,
37942                >,
37943                fidl::encoding::DefaultFuchsiaResourceDialect,
37944                0x1f26fcdd348f1882,
37945            >(_buf?)?;
37946            Ok(_response.map(|x| x.value))
37947        }
37948        self.client.send_query_and_decode::<
37949            fidl::encoding::EmptyPayload,
37950            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
37951        >(
37952            (),
37953            0x1f26fcdd348f1882,
37954            fidl::encoding::DynamicFlags::empty(),
37955            _decode,
37956        )
37957    }
37958
37959    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
37960        BaseNetworkSocketSetIpv6UnicastHopsResult,
37961        fidl::encoding::DefaultFuchsiaResourceDialect,
37962    >;
37963    fn r#set_ipv6_unicast_hops(
37964        &self,
37965        mut value: &OptionalUint8,
37966    ) -> Self::SetIpv6UnicastHopsResponseFut {
37967        fn _decode(
37968            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37969        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
37970            let _response = fidl::client::decode_transaction_body::<
37971                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37972                fidl::encoding::DefaultFuchsiaResourceDialect,
37973                0x157d51e98f462859,
37974            >(_buf?)?;
37975            Ok(_response.map(|x| x))
37976        }
37977        self.client.send_query_and_decode::<
37978            BaseNetworkSocketSetIpv6UnicastHopsRequest,
37979            BaseNetworkSocketSetIpv6UnicastHopsResult,
37980        >(
37981            (value,),
37982            0x157d51e98f462859,
37983            fidl::encoding::DynamicFlags::empty(),
37984            _decode,
37985        )
37986    }
37987
37988    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
37989        BaseNetworkSocketGetIpv6UnicastHopsResult,
37990        fidl::encoding::DefaultFuchsiaResourceDialect,
37991    >;
37992    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
37993        fn _decode(
37994            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37995        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
37996            let _response = fidl::client::decode_transaction_body::<
37997                fidl::encoding::ResultType<
37998                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
37999                    fidl_fuchsia_posix::Errno,
38000                >,
38001                fidl::encoding::DefaultFuchsiaResourceDialect,
38002                0x21f4641cad8bd8d2,
38003            >(_buf?)?;
38004            Ok(_response.map(|x| x.value))
38005        }
38006        self.client.send_query_and_decode::<
38007            fidl::encoding::EmptyPayload,
38008            BaseNetworkSocketGetIpv6UnicastHopsResult,
38009        >(
38010            (),
38011            0x21f4641cad8bd8d2,
38012            fidl::encoding::DynamicFlags::empty(),
38013            _decode,
38014        )
38015    }
38016
38017    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
38018        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
38019        fidl::encoding::DefaultFuchsiaResourceDialect,
38020    >;
38021    fn r#set_ipv6_receive_hop_limit(
38022        &self,
38023        mut value: bool,
38024    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
38025        fn _decode(
38026            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38027        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
38028            let _response = fidl::client::decode_transaction_body::<
38029                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38030                fidl::encoding::DefaultFuchsiaResourceDialect,
38031                0x5c24808ed2e84a1e,
38032            >(_buf?)?;
38033            Ok(_response.map(|x| x))
38034        }
38035        self.client.send_query_and_decode::<
38036            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
38037            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
38038        >(
38039            (value,),
38040            0x5c24808ed2e84a1e,
38041            fidl::encoding::DynamicFlags::empty(),
38042            _decode,
38043        )
38044    }
38045
38046    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
38047        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
38048        fidl::encoding::DefaultFuchsiaResourceDialect,
38049    >;
38050    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
38051        fn _decode(
38052            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38053        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
38054            let _response = fidl::client::decode_transaction_body::<
38055                fidl::encoding::ResultType<
38056                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
38057                    fidl_fuchsia_posix::Errno,
38058                >,
38059                fidl::encoding::DefaultFuchsiaResourceDialect,
38060                0x341e06689885b4c0,
38061            >(_buf?)?;
38062            Ok(_response.map(|x| x.value))
38063        }
38064        self.client.send_query_and_decode::<
38065            fidl::encoding::EmptyPayload,
38066            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
38067        >(
38068            (),
38069            0x341e06689885b4c0,
38070            fidl::encoding::DynamicFlags::empty(),
38071            _decode,
38072        )
38073    }
38074
38075    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
38076        BaseNetworkSocketSetIpv6MulticastHopsResult,
38077        fidl::encoding::DefaultFuchsiaResourceDialect,
38078    >;
38079    fn r#set_ipv6_multicast_hops(
38080        &self,
38081        mut value: &OptionalUint8,
38082    ) -> Self::SetIpv6MulticastHopsResponseFut {
38083        fn _decode(
38084            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38085        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
38086            let _response = fidl::client::decode_transaction_body::<
38087                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38088                fidl::encoding::DefaultFuchsiaResourceDialect,
38089                0x25b9cd4d181f82c1,
38090            >(_buf?)?;
38091            Ok(_response.map(|x| x))
38092        }
38093        self.client.send_query_and_decode::<
38094            BaseNetworkSocketSetIpv6MulticastHopsRequest,
38095            BaseNetworkSocketSetIpv6MulticastHopsResult,
38096        >(
38097            (value,),
38098            0x25b9cd4d181f82c1,
38099            fidl::encoding::DynamicFlags::empty(),
38100            _decode,
38101        )
38102    }
38103
38104    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
38105        BaseNetworkSocketGetIpv6MulticastHopsResult,
38106        fidl::encoding::DefaultFuchsiaResourceDialect,
38107    >;
38108    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
38109        fn _decode(
38110            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38111        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
38112            let _response = fidl::client::decode_transaction_body::<
38113                fidl::encoding::ResultType<
38114                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
38115                    fidl_fuchsia_posix::Errno,
38116                >,
38117                fidl::encoding::DefaultFuchsiaResourceDialect,
38118                0x52916948a365012a,
38119            >(_buf?)?;
38120            Ok(_response.map(|x| x.value))
38121        }
38122        self.client.send_query_and_decode::<
38123            fidl::encoding::EmptyPayload,
38124            BaseNetworkSocketGetIpv6MulticastHopsResult,
38125        >(
38126            (),
38127            0x52916948a365012a,
38128            fidl::encoding::DynamicFlags::empty(),
38129            _decode,
38130        )
38131    }
38132
38133    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
38134        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
38135        fidl::encoding::DefaultFuchsiaResourceDialect,
38136    >;
38137    fn r#set_ipv6_multicast_loopback(
38138        &self,
38139        mut value: bool,
38140    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
38141        fn _decode(
38142            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38143        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
38144            let _response = fidl::client::decode_transaction_body::<
38145                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38146                fidl::encoding::DefaultFuchsiaResourceDialect,
38147                0x55701c409ff41b40,
38148            >(_buf?)?;
38149            Ok(_response.map(|x| x))
38150        }
38151        self.client.send_query_and_decode::<
38152            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
38153            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
38154        >(
38155            (value,),
38156            0x55701c409ff41b40,
38157            fidl::encoding::DynamicFlags::empty(),
38158            _decode,
38159        )
38160    }
38161
38162    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
38163        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
38164        fidl::encoding::DefaultFuchsiaResourceDialect,
38165    >;
38166    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
38167        fn _decode(
38168            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38169        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
38170            let _response = fidl::client::decode_transaction_body::<
38171                fidl::encoding::ResultType<
38172                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
38173                    fidl_fuchsia_posix::Errno,
38174                >,
38175                fidl::encoding::DefaultFuchsiaResourceDialect,
38176                0x4415b701fde319c3,
38177            >(_buf?)?;
38178            Ok(_response.map(|x| x.value))
38179        }
38180        self.client.send_query_and_decode::<
38181            fidl::encoding::EmptyPayload,
38182            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
38183        >(
38184            (),
38185            0x4415b701fde319c3,
38186            fidl::encoding::DynamicFlags::empty(),
38187            _decode,
38188        )
38189    }
38190
38191    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
38192        BaseNetworkSocketSetIpv6OnlyResult,
38193        fidl::encoding::DefaultFuchsiaResourceDialect,
38194    >;
38195    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
38196        fn _decode(
38197            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38198        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
38199            let _response = fidl::client::decode_transaction_body::<
38200                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38201                fidl::encoding::DefaultFuchsiaResourceDialect,
38202                0x4873f1364758cbba,
38203            >(_buf?)?;
38204            Ok(_response.map(|x| x))
38205        }
38206        self.client.send_query_and_decode::<
38207            BaseNetworkSocketSetIpv6OnlyRequest,
38208            BaseNetworkSocketSetIpv6OnlyResult,
38209        >(
38210            (value,),
38211            0x4873f1364758cbba,
38212            fidl::encoding::DynamicFlags::empty(),
38213            _decode,
38214        )
38215    }
38216
38217    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
38218        BaseNetworkSocketGetIpv6OnlyResult,
38219        fidl::encoding::DefaultFuchsiaResourceDialect,
38220    >;
38221    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
38222        fn _decode(
38223            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38224        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
38225            let _response = fidl::client::decode_transaction_body::<
38226                fidl::encoding::ResultType<
38227                    BaseNetworkSocketGetIpv6OnlyResponse,
38228                    fidl_fuchsia_posix::Errno,
38229                >,
38230                fidl::encoding::DefaultFuchsiaResourceDialect,
38231                0x4aa3340a1a26b89c,
38232            >(_buf?)?;
38233            Ok(_response.map(|x| x.value))
38234        }
38235        self.client.send_query_and_decode::<
38236            fidl::encoding::EmptyPayload,
38237            BaseNetworkSocketGetIpv6OnlyResult,
38238        >(
38239            (),
38240            0x4aa3340a1a26b89c,
38241            fidl::encoding::DynamicFlags::empty(),
38242            _decode,
38243        )
38244    }
38245
38246    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
38247        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
38248        fidl::encoding::DefaultFuchsiaResourceDialect,
38249    >;
38250    fn r#set_ipv6_receive_traffic_class(
38251        &self,
38252        mut value: bool,
38253    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
38254        fn _decode(
38255            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38256        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
38257            let _response = fidl::client::decode_transaction_body::<
38258                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38259                fidl::encoding::DefaultFuchsiaResourceDialect,
38260                0x58f07c8788d099a0,
38261            >(_buf?)?;
38262            Ok(_response.map(|x| x))
38263        }
38264        self.client.send_query_and_decode::<
38265            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
38266            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
38267        >(
38268            (value,),
38269            0x58f07c8788d099a0,
38270            fidl::encoding::DynamicFlags::empty(),
38271            _decode,
38272        )
38273    }
38274
38275    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
38276        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
38277        fidl::encoding::DefaultFuchsiaResourceDialect,
38278    >;
38279    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
38280        fn _decode(
38281            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38282        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
38283            let _response = fidl::client::decode_transaction_body::<
38284                fidl::encoding::ResultType<
38285                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
38286                    fidl_fuchsia_posix::Errno,
38287                >,
38288                fidl::encoding::DefaultFuchsiaResourceDialect,
38289                0x2e334df1da553ffa,
38290            >(_buf?)?;
38291            Ok(_response.map(|x| x.value))
38292        }
38293        self.client.send_query_and_decode::<
38294            fidl::encoding::EmptyPayload,
38295            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
38296        >(
38297            (),
38298            0x2e334df1da553ffa,
38299            fidl::encoding::DynamicFlags::empty(),
38300            _decode,
38301        )
38302    }
38303
38304    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
38305        BaseNetworkSocketSetIpv6TrafficClassResult,
38306        fidl::encoding::DefaultFuchsiaResourceDialect,
38307    >;
38308    fn r#set_ipv6_traffic_class(
38309        &self,
38310        mut value: &OptionalUint8,
38311    ) -> Self::SetIpv6TrafficClassResponseFut {
38312        fn _decode(
38313            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38314        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
38315            let _response = fidl::client::decode_transaction_body::<
38316                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38317                fidl::encoding::DefaultFuchsiaResourceDialect,
38318                0x6af077800c5a0b4f,
38319            >(_buf?)?;
38320            Ok(_response.map(|x| x))
38321        }
38322        self.client.send_query_and_decode::<
38323            BaseNetworkSocketSetIpv6TrafficClassRequest,
38324            BaseNetworkSocketSetIpv6TrafficClassResult,
38325        >(
38326            (value,),
38327            0x6af077800c5a0b4f,
38328            fidl::encoding::DynamicFlags::empty(),
38329            _decode,
38330        )
38331    }
38332
38333    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
38334        BaseNetworkSocketGetIpv6TrafficClassResult,
38335        fidl::encoding::DefaultFuchsiaResourceDialect,
38336    >;
38337    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
38338        fn _decode(
38339            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38340        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
38341            let _response = fidl::client::decode_transaction_body::<
38342                fidl::encoding::ResultType<
38343                    BaseNetworkSocketGetIpv6TrafficClassResponse,
38344                    fidl_fuchsia_posix::Errno,
38345                >,
38346                fidl::encoding::DefaultFuchsiaResourceDialect,
38347                0x6baf6eed8fc2f04,
38348            >(_buf?)?;
38349            Ok(_response.map(|x| x.value))
38350        }
38351        self.client.send_query_and_decode::<
38352            fidl::encoding::EmptyPayload,
38353            BaseNetworkSocketGetIpv6TrafficClassResult,
38354        >(
38355            (),
38356            0x6baf6eed8fc2f04,
38357            fidl::encoding::DynamicFlags::empty(),
38358            _decode,
38359        )
38360    }
38361
38362    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
38363        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
38364        fidl::encoding::DefaultFuchsiaResourceDialect,
38365    >;
38366    fn r#set_ipv6_receive_packet_info(
38367        &self,
38368        mut value: bool,
38369    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
38370        fn _decode(
38371            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38372        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
38373            let _response = fidl::client::decode_transaction_body::<
38374                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38375                fidl::encoding::DefaultFuchsiaResourceDialect,
38376                0x19259775b1a92768,
38377            >(_buf?)?;
38378            Ok(_response.map(|x| x))
38379        }
38380        self.client.send_query_and_decode::<
38381            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
38382            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
38383        >(
38384            (value,),
38385            0x19259775b1a92768,
38386            fidl::encoding::DynamicFlags::empty(),
38387            _decode,
38388        )
38389    }
38390
38391    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
38392        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
38393        fidl::encoding::DefaultFuchsiaResourceDialect,
38394    >;
38395    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
38396        fn _decode(
38397            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38398        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
38399            let _response = fidl::client::decode_transaction_body::<
38400                fidl::encoding::ResultType<
38401                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
38402                    fidl_fuchsia_posix::Errno,
38403                >,
38404                fidl::encoding::DefaultFuchsiaResourceDialect,
38405                0x7acd4a2775baec75,
38406            >(_buf?)?;
38407            Ok(_response.map(|x| x.value))
38408        }
38409        self.client.send_query_and_decode::<
38410            fidl::encoding::EmptyPayload,
38411            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
38412        >(
38413            (),
38414            0x7acd4a2775baec75,
38415            fidl::encoding::DynamicFlags::empty(),
38416            _decode,
38417        )
38418    }
38419
38420    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
38421        BaseNetworkSocketGetOriginalDestinationResult,
38422        fidl::encoding::DefaultFuchsiaResourceDialect,
38423    >;
38424    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
38425        fn _decode(
38426            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38427        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
38428            let _response = fidl::client::decode_transaction_body::<
38429                fidl::encoding::ResultType<
38430                    BaseNetworkSocketGetOriginalDestinationResponse,
38431                    fidl_fuchsia_posix::Errno,
38432                >,
38433                fidl::encoding::DefaultFuchsiaResourceDialect,
38434                0x38bf28f0dafdbac0,
38435            >(_buf?)?;
38436            Ok(_response.map(|x| x.value))
38437        }
38438        self.client.send_query_and_decode::<
38439            fidl::encoding::EmptyPayload,
38440            BaseNetworkSocketGetOriginalDestinationResult,
38441        >(
38442            (),
38443            0x38bf28f0dafdbac0,
38444            fidl::encoding::DynamicFlags::empty(),
38445            _decode,
38446        )
38447    }
38448
38449    type GetInfoResponseFut = fidl::client::QueryResponseFut<
38450        BaseDatagramSocketGetInfoResult,
38451        fidl::encoding::DefaultFuchsiaResourceDialect,
38452    >;
38453    fn r#get_info(&self) -> Self::GetInfoResponseFut {
38454        fn _decode(
38455            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38456        ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
38457            let _response = fidl::client::decode_transaction_body::<
38458                fidl::encoding::ResultType<
38459                    BaseDatagramSocketGetInfoResponse,
38460                    fidl_fuchsia_posix::Errno,
38461                >,
38462                fidl::encoding::DefaultFuchsiaResourceDialect,
38463                0x48aa0a1f6a32d2ed,
38464            >(_buf?)?;
38465            Ok(_response.map(|x| (x.domain, x.proto)))
38466        }
38467        self.client
38468            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseDatagramSocketGetInfoResult>(
38469                (),
38470                0x48aa0a1f6a32d2ed,
38471                fidl::encoding::DynamicFlags::empty(),
38472                _decode,
38473            )
38474    }
38475
38476    type DescribeResponseFut = fidl::client::QueryResponseFut<
38477        DatagramSocketDescribeResponse,
38478        fidl::encoding::DefaultFuchsiaResourceDialect,
38479    >;
38480    fn r#describe(&self) -> Self::DescribeResponseFut {
38481        fn _decode(
38482            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38483        ) -> Result<DatagramSocketDescribeResponse, fidl::Error> {
38484            let _response = fidl::client::decode_transaction_body::<
38485                DatagramSocketDescribeResponse,
38486                fidl::encoding::DefaultFuchsiaResourceDialect,
38487                0xbf1e2f0a86601f3,
38488            >(_buf?)?;
38489            Ok(_response)
38490        }
38491        self.client
38492            .send_query_and_decode::<fidl::encoding::EmptyPayload, DatagramSocketDescribeResponse>(
38493                (),
38494                0xbf1e2f0a86601f3,
38495                fidl::encoding::DynamicFlags::empty(),
38496                _decode,
38497            )
38498    }
38499
38500    type SendMsgPreflightResponseFut = fidl::client::QueryResponseFut<
38501        DatagramSocketSendMsgPreflightResult,
38502        fidl::encoding::DefaultFuchsiaResourceDialect,
38503    >;
38504    fn r#send_msg_preflight(
38505        &self,
38506        mut payload: &DatagramSocketSendMsgPreflightRequest,
38507    ) -> Self::SendMsgPreflightResponseFut {
38508        fn _decode(
38509            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38510        ) -> Result<DatagramSocketSendMsgPreflightResult, fidl::Error> {
38511            let _response = fidl::client::decode_transaction_body::<
38512                fidl::encoding::ResultType<
38513                    DatagramSocketSendMsgPreflightResponse,
38514                    fidl_fuchsia_posix::Errno,
38515                >,
38516                fidl::encoding::DefaultFuchsiaResourceDialect,
38517                0x5362e668e777248a,
38518            >(_buf?)?;
38519            Ok(_response.map(|x| x))
38520        }
38521        self.client.send_query_and_decode::<
38522            DatagramSocketSendMsgPreflightRequest,
38523            DatagramSocketSendMsgPreflightResult,
38524        >(
38525            payload,
38526            0x5362e668e777248a,
38527            fidl::encoding::DynamicFlags::empty(),
38528            _decode,
38529        )
38530    }
38531
38532    type RecvMsgPostflightResponseFut = fidl::client::QueryResponseFut<
38533        DatagramSocketRecvMsgPostflightResult,
38534        fidl::encoding::DefaultFuchsiaResourceDialect,
38535    >;
38536    fn r#recv_msg_postflight(&self) -> Self::RecvMsgPostflightResponseFut {
38537        fn _decode(
38538            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38539        ) -> Result<DatagramSocketRecvMsgPostflightResult, fidl::Error> {
38540            let _response = fidl::client::decode_transaction_body::<
38541                fidl::encoding::ResultType<
38542                    DatagramSocketRecvMsgPostflightResponse,
38543                    fidl_fuchsia_posix::Errno,
38544                >,
38545                fidl::encoding::DefaultFuchsiaResourceDialect,
38546                0x1a7cdeca5f3eb8e2,
38547            >(_buf?)?;
38548            Ok(_response.map(|x| x))
38549        }
38550        self.client.send_query_and_decode::<
38551            fidl::encoding::EmptyPayload,
38552            DatagramSocketRecvMsgPostflightResult,
38553        >(
38554            (),
38555            0x1a7cdeca5f3eb8e2,
38556            fidl::encoding::DynamicFlags::empty(),
38557            _decode,
38558        )
38559    }
38560}
38561
38562pub struct DatagramSocketEventStream {
38563    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
38564}
38565
38566impl std::marker::Unpin for DatagramSocketEventStream {}
38567
38568impl futures::stream::FusedStream for DatagramSocketEventStream {
38569    fn is_terminated(&self) -> bool {
38570        self.event_receiver.is_terminated()
38571    }
38572}
38573
38574impl futures::Stream for DatagramSocketEventStream {
38575    type Item = Result<DatagramSocketEvent, fidl::Error>;
38576
38577    fn poll_next(
38578        mut self: std::pin::Pin<&mut Self>,
38579        cx: &mut std::task::Context<'_>,
38580    ) -> std::task::Poll<Option<Self::Item>> {
38581        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
38582            &mut self.event_receiver,
38583            cx
38584        )?) {
38585            Some(buf) => std::task::Poll::Ready(Some(DatagramSocketEvent::decode(buf))),
38586            None => std::task::Poll::Ready(None),
38587        }
38588    }
38589}
38590
38591#[derive(Debug)]
38592pub enum DatagramSocketEvent {}
38593
38594impl DatagramSocketEvent {
38595    /// Decodes a message buffer as a [`DatagramSocketEvent`].
38596    fn decode(
38597        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
38598    ) -> Result<DatagramSocketEvent, fidl::Error> {
38599        let (bytes, _handles) = buf.split_mut();
38600        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
38601        debug_assert_eq!(tx_header.tx_id, 0);
38602        match tx_header.ordinal {
38603            _ => Err(fidl::Error::UnknownOrdinal {
38604                ordinal: tx_header.ordinal,
38605                protocol_name:
38606                    <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
38607            }),
38608        }
38609    }
38610}
38611
38612/// A Stream of incoming requests for fuchsia.posix.socket/DatagramSocket.
38613pub struct DatagramSocketRequestStream {
38614    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
38615    is_terminated: bool,
38616}
38617
38618impl std::marker::Unpin for DatagramSocketRequestStream {}
38619
38620impl futures::stream::FusedStream for DatagramSocketRequestStream {
38621    fn is_terminated(&self) -> bool {
38622        self.is_terminated
38623    }
38624}
38625
38626impl fidl::endpoints::RequestStream for DatagramSocketRequestStream {
38627    type Protocol = DatagramSocketMarker;
38628    type ControlHandle = DatagramSocketControlHandle;
38629
38630    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
38631        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
38632    }
38633
38634    fn control_handle(&self) -> Self::ControlHandle {
38635        DatagramSocketControlHandle { inner: self.inner.clone() }
38636    }
38637
38638    fn into_inner(
38639        self,
38640    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
38641    {
38642        (self.inner, self.is_terminated)
38643    }
38644
38645    fn from_inner(
38646        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
38647        is_terminated: bool,
38648    ) -> Self {
38649        Self { inner, is_terminated }
38650    }
38651}
38652
38653impl futures::Stream for DatagramSocketRequestStream {
38654    type Item = Result<DatagramSocketRequest, fidl::Error>;
38655
38656    fn poll_next(
38657        mut self: std::pin::Pin<&mut Self>,
38658        cx: &mut std::task::Context<'_>,
38659    ) -> std::task::Poll<Option<Self::Item>> {
38660        let this = &mut *self;
38661        if this.inner.check_shutdown(cx) {
38662            this.is_terminated = true;
38663            return std::task::Poll::Ready(None);
38664        }
38665        if this.is_terminated {
38666            panic!("polled DatagramSocketRequestStream after completion");
38667        }
38668        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
38669            |bytes, handles| {
38670                match this.inner.channel().read_etc(cx, bytes, handles) {
38671                    std::task::Poll::Ready(Ok(())) => {}
38672                    std::task::Poll::Pending => return std::task::Poll::Pending,
38673                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
38674                        this.is_terminated = true;
38675                        return std::task::Poll::Ready(None);
38676                    }
38677                    std::task::Poll::Ready(Err(e)) => {
38678                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
38679                            e.into(),
38680                        ))));
38681                    }
38682                }
38683
38684                // A message has been received from the channel
38685                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
38686
38687                std::task::Poll::Ready(Some(match header.ordinal {
38688                    0x20d8a7aba2168a79 => {
38689                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
38690                        let mut req = fidl::new_empty!(
38691                            fidl_fuchsia_unknown::CloneableCloneRequest,
38692                            fidl::encoding::DefaultFuchsiaResourceDialect
38693                        );
38694                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
38695                        let control_handle =
38696                            DatagramSocketControlHandle { inner: this.inner.clone() };
38697                        Ok(DatagramSocketRequest::Clone { request: req.request, control_handle })
38698                    }
38699                    0x5ac5d459ad7f657e => {
38700                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38701                        let mut req = fidl::new_empty!(
38702                            fidl::encoding::EmptyPayload,
38703                            fidl::encoding::DefaultFuchsiaResourceDialect
38704                        );
38705                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38706                        let control_handle =
38707                            DatagramSocketControlHandle { inner: this.inner.clone() };
38708                        Ok(DatagramSocketRequest::Close {
38709                            responder: DatagramSocketCloseResponder {
38710                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38711                                tx_id: header.tx_id,
38712                            },
38713                        })
38714                    }
38715                    0x2658edee9decfc06 => {
38716                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38717                        let mut req = fidl::new_empty!(
38718                            fidl::encoding::EmptyPayload,
38719                            fidl::encoding::DefaultFuchsiaResourceDialect
38720                        );
38721                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38722                        let control_handle =
38723                            DatagramSocketControlHandle { inner: this.inner.clone() };
38724                        Ok(DatagramSocketRequest::Query {
38725                            responder: DatagramSocketQueryResponder {
38726                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38727                                tx_id: header.tx_id,
38728                            },
38729                        })
38730                    }
38731                    0x1fd74ee8b9a4a876 => {
38732                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38733                        let mut req = fidl::new_empty!(
38734                            BaseSocketSetReuseAddressRequest,
38735                            fidl::encoding::DefaultFuchsiaResourceDialect
38736                        );
38737                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
38738                        let control_handle =
38739                            DatagramSocketControlHandle { inner: this.inner.clone() };
38740                        Ok(DatagramSocketRequest::SetReuseAddress {
38741                            value: req.value,
38742
38743                            responder: DatagramSocketSetReuseAddressResponder {
38744                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38745                                tx_id: header.tx_id,
38746                            },
38747                        })
38748                    }
38749                    0x67b7206b8d1bc0a5 => {
38750                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38751                        let mut req = fidl::new_empty!(
38752                            fidl::encoding::EmptyPayload,
38753                            fidl::encoding::DefaultFuchsiaResourceDialect
38754                        );
38755                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38756                        let control_handle =
38757                            DatagramSocketControlHandle { inner: this.inner.clone() };
38758                        Ok(DatagramSocketRequest::GetReuseAddress {
38759                            responder: DatagramSocketGetReuseAddressResponder {
38760                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38761                                tx_id: header.tx_id,
38762                            },
38763                        })
38764                    }
38765                    0x5aad39b33e5f6ebb => {
38766                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38767                        let mut req = fidl::new_empty!(
38768                            fidl::encoding::EmptyPayload,
38769                            fidl::encoding::DefaultFuchsiaResourceDialect
38770                        );
38771                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38772                        let control_handle =
38773                            DatagramSocketControlHandle { inner: this.inner.clone() };
38774                        Ok(DatagramSocketRequest::GetError {
38775                            responder: DatagramSocketGetErrorResponder {
38776                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38777                                tx_id: header.tx_id,
38778                            },
38779                        })
38780                    }
38781                    0x6023e081ce3cd947 => {
38782                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38783                        let mut req = fidl::new_empty!(
38784                            BaseSocketSetBroadcastRequest,
38785                            fidl::encoding::DefaultFuchsiaResourceDialect
38786                        );
38787                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
38788                        let control_handle =
38789                            DatagramSocketControlHandle { inner: this.inner.clone() };
38790                        Ok(DatagramSocketRequest::SetBroadcast {
38791                            value: req.value,
38792
38793                            responder: DatagramSocketSetBroadcastResponder {
38794                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38795                                tx_id: header.tx_id,
38796                            },
38797                        })
38798                    }
38799                    0x68796fc556f9780d => {
38800                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38801                        let mut req = fidl::new_empty!(
38802                            fidl::encoding::EmptyPayload,
38803                            fidl::encoding::DefaultFuchsiaResourceDialect
38804                        );
38805                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38806                        let control_handle =
38807                            DatagramSocketControlHandle { inner: this.inner.clone() };
38808                        Ok(DatagramSocketRequest::GetBroadcast {
38809                            responder: DatagramSocketGetBroadcastResponder {
38810                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38811                                tx_id: header.tx_id,
38812                            },
38813                        })
38814                    }
38815                    0x756eac32d73a7a70 => {
38816                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38817                        let mut req = fidl::new_empty!(
38818                            BaseSocketSetSendBufferRequest,
38819                            fidl::encoding::DefaultFuchsiaResourceDialect
38820                        );
38821                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
38822                        let control_handle =
38823                            DatagramSocketControlHandle { inner: this.inner.clone() };
38824                        Ok(DatagramSocketRequest::SetSendBuffer {
38825                            value_bytes: req.value_bytes,
38826
38827                            responder: DatagramSocketSetSendBufferResponder {
38828                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38829                                tx_id: header.tx_id,
38830                            },
38831                        })
38832                    }
38833                    0x78a52fd9c7b2410b => {
38834                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38835                        let mut req = fidl::new_empty!(
38836                            fidl::encoding::EmptyPayload,
38837                            fidl::encoding::DefaultFuchsiaResourceDialect
38838                        );
38839                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38840                        let control_handle =
38841                            DatagramSocketControlHandle { inner: this.inner.clone() };
38842                        Ok(DatagramSocketRequest::GetSendBuffer {
38843                            responder: DatagramSocketGetSendBufferResponder {
38844                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38845                                tx_id: header.tx_id,
38846                            },
38847                        })
38848                    }
38849                    0x6b0cf2f1919c7001 => {
38850                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38851                        let mut req = fidl::new_empty!(
38852                            BaseSocketSetReceiveBufferRequest,
38853                            fidl::encoding::DefaultFuchsiaResourceDialect
38854                        );
38855                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
38856                        let control_handle =
38857                            DatagramSocketControlHandle { inner: this.inner.clone() };
38858                        Ok(DatagramSocketRequest::SetReceiveBuffer {
38859                            value_bytes: req.value_bytes,
38860
38861                            responder: DatagramSocketSetReceiveBufferResponder {
38862                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38863                                tx_id: header.tx_id,
38864                            },
38865                        })
38866                    }
38867                    0x14c1a4b64f709e5c => {
38868                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38869                        let mut req = fidl::new_empty!(
38870                            fidl::encoding::EmptyPayload,
38871                            fidl::encoding::DefaultFuchsiaResourceDialect
38872                        );
38873                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38874                        let control_handle =
38875                            DatagramSocketControlHandle { inner: this.inner.clone() };
38876                        Ok(DatagramSocketRequest::GetReceiveBuffer {
38877                            responder: DatagramSocketGetReceiveBufferResponder {
38878                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38879                                tx_id: header.tx_id,
38880                            },
38881                        })
38882                    }
38883                    0x572df8f0b920d2c7 => {
38884                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38885                        let mut req = fidl::new_empty!(
38886                            BaseSocketSetKeepAliveRequest,
38887                            fidl::encoding::DefaultFuchsiaResourceDialect
38888                        );
38889                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
38890                        let control_handle =
38891                            DatagramSocketControlHandle { inner: this.inner.clone() };
38892                        Ok(DatagramSocketRequest::SetKeepAlive {
38893                            value: req.value,
38894
38895                            responder: DatagramSocketSetKeepAliveResponder {
38896                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38897                                tx_id: header.tx_id,
38898                            },
38899                        })
38900                    }
38901                    0x2dd29d3215f2c9d2 => {
38902                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38903                        let mut req = fidl::new_empty!(
38904                            fidl::encoding::EmptyPayload,
38905                            fidl::encoding::DefaultFuchsiaResourceDialect
38906                        );
38907                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38908                        let control_handle =
38909                            DatagramSocketControlHandle { inner: this.inner.clone() };
38910                        Ok(DatagramSocketRequest::GetKeepAlive {
38911                            responder: DatagramSocketGetKeepAliveResponder {
38912                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38913                                tx_id: header.tx_id,
38914                            },
38915                        })
38916                    }
38917                    0x3ecb49968bee439 => {
38918                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38919                        let mut req = fidl::new_empty!(
38920                            BaseSocketSetOutOfBandInlineRequest,
38921                            fidl::encoding::DefaultFuchsiaResourceDialect
38922                        );
38923                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
38924                        let control_handle =
38925                            DatagramSocketControlHandle { inner: this.inner.clone() };
38926                        Ok(DatagramSocketRequest::SetOutOfBandInline {
38927                            value: req.value,
38928
38929                            responder: DatagramSocketSetOutOfBandInlineResponder {
38930                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38931                                tx_id: header.tx_id,
38932                            },
38933                        })
38934                    }
38935                    0x348c1ab3aeca1745 => {
38936                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38937                        let mut req = fidl::new_empty!(
38938                            fidl::encoding::EmptyPayload,
38939                            fidl::encoding::DefaultFuchsiaResourceDialect
38940                        );
38941                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38942                        let control_handle =
38943                            DatagramSocketControlHandle { inner: this.inner.clone() };
38944                        Ok(DatagramSocketRequest::GetOutOfBandInline {
38945                            responder: DatagramSocketGetOutOfBandInlineResponder {
38946                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38947                                tx_id: header.tx_id,
38948                            },
38949                        })
38950                    }
38951                    0x6bbf00c53a4c78c2 => {
38952                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38953                        let mut req = fidl::new_empty!(
38954                            BaseSocketSetNoCheckRequest,
38955                            fidl::encoding::DefaultFuchsiaResourceDialect
38956                        );
38957                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
38958                        let control_handle =
38959                            DatagramSocketControlHandle { inner: this.inner.clone() };
38960                        Ok(DatagramSocketRequest::SetNoCheck {
38961                            value: req.value,
38962
38963                            responder: DatagramSocketSetNoCheckResponder {
38964                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38965                                tx_id: header.tx_id,
38966                            },
38967                        })
38968                    }
38969                    0x2cd4249286417694 => {
38970                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38971                        let mut req = fidl::new_empty!(
38972                            fidl::encoding::EmptyPayload,
38973                            fidl::encoding::DefaultFuchsiaResourceDialect
38974                        );
38975                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38976                        let control_handle =
38977                            DatagramSocketControlHandle { inner: this.inner.clone() };
38978                        Ok(DatagramSocketRequest::GetNoCheck {
38979                            responder: DatagramSocketGetNoCheckResponder {
38980                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38981                                tx_id: header.tx_id,
38982                            },
38983                        })
38984                    }
38985                    0x45386351246e998e => {
38986                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38987                        let mut req = fidl::new_empty!(
38988                            BaseSocketSetLingerRequest,
38989                            fidl::encoding::DefaultFuchsiaResourceDialect
38990                        );
38991                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
38992                        let control_handle =
38993                            DatagramSocketControlHandle { inner: this.inner.clone() };
38994                        Ok(DatagramSocketRequest::SetLinger {
38995                            linger: req.linger,
38996                            length_secs: req.length_secs,
38997
38998                            responder: DatagramSocketSetLingerResponder {
38999                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39000                                tx_id: header.tx_id,
39001                            },
39002                        })
39003                    }
39004                    0x48eb20fc5ccb0e45 => {
39005                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39006                        let mut req = fidl::new_empty!(
39007                            fidl::encoding::EmptyPayload,
39008                            fidl::encoding::DefaultFuchsiaResourceDialect
39009                        );
39010                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39011                        let control_handle =
39012                            DatagramSocketControlHandle { inner: this.inner.clone() };
39013                        Ok(DatagramSocketRequest::GetLinger {
39014                            responder: DatagramSocketGetLingerResponder {
39015                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39016                                tx_id: header.tx_id,
39017                            },
39018                        })
39019                    }
39020                    0x24dd3e5cb36d9ccb => {
39021                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39022                        let mut req = fidl::new_empty!(
39023                            BaseSocketSetReusePortRequest,
39024                            fidl::encoding::DefaultFuchsiaResourceDialect
39025                        );
39026                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
39027                        let control_handle =
39028                            DatagramSocketControlHandle { inner: this.inner.clone() };
39029                        Ok(DatagramSocketRequest::SetReusePort {
39030                            value: req.value,
39031
39032                            responder: DatagramSocketSetReusePortResponder {
39033                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39034                                tx_id: header.tx_id,
39035                            },
39036                        })
39037                    }
39038                    0x7a112c1ab54ff828 => {
39039                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39040                        let mut req = fidl::new_empty!(
39041                            fidl::encoding::EmptyPayload,
39042                            fidl::encoding::DefaultFuchsiaResourceDialect
39043                        );
39044                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39045                        let control_handle =
39046                            DatagramSocketControlHandle { inner: this.inner.clone() };
39047                        Ok(DatagramSocketRequest::GetReusePort {
39048                            responder: DatagramSocketGetReusePortResponder {
39049                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39050                                tx_id: header.tx_id,
39051                            },
39052                        })
39053                    }
39054                    0x67ce6db6c2ec8966 => {
39055                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39056                        let mut req = fidl::new_empty!(
39057                            fidl::encoding::EmptyPayload,
39058                            fidl::encoding::DefaultFuchsiaResourceDialect
39059                        );
39060                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39061                        let control_handle =
39062                            DatagramSocketControlHandle { inner: this.inner.clone() };
39063                        Ok(DatagramSocketRequest::GetAcceptConn {
39064                            responder: DatagramSocketGetAcceptConnResponder {
39065                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39066                                tx_id: header.tx_id,
39067                            },
39068                        })
39069                    }
39070                    0x2118b483f28aafc4 => {
39071                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39072                        let mut req = fidl::new_empty!(
39073                            BaseSocketSetBindToDeviceRequest,
39074                            fidl::encoding::DefaultFuchsiaResourceDialect
39075                        );
39076                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
39077                        let control_handle =
39078                            DatagramSocketControlHandle { inner: this.inner.clone() };
39079                        Ok(DatagramSocketRequest::SetBindToDevice {
39080                            value: req.value,
39081
39082                            responder: DatagramSocketSetBindToDeviceResponder {
39083                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39084                                tx_id: header.tx_id,
39085                            },
39086                        })
39087                    }
39088                    0x1ab1fbf0ef7906c8 => {
39089                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39090                        let mut req = fidl::new_empty!(
39091                            fidl::encoding::EmptyPayload,
39092                            fidl::encoding::DefaultFuchsiaResourceDialect
39093                        );
39094                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39095                        let control_handle =
39096                            DatagramSocketControlHandle { inner: this.inner.clone() };
39097                        Ok(DatagramSocketRequest::GetBindToDevice {
39098                            responder: DatagramSocketGetBindToDeviceResponder {
39099                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39100                                tx_id: header.tx_id,
39101                            },
39102                        })
39103                    }
39104                    0x6e387a0def00821 => {
39105                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39106                        let mut req = fidl::new_empty!(
39107                            BaseSocketSetBindToInterfaceIndexRequest,
39108                            fidl::encoding::DefaultFuchsiaResourceDialect
39109                        );
39110                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
39111                        let control_handle =
39112                            DatagramSocketControlHandle { inner: this.inner.clone() };
39113                        Ok(DatagramSocketRequest::SetBindToInterfaceIndex {
39114                            value: req.value,
39115
39116                            responder: DatagramSocketSetBindToInterfaceIndexResponder {
39117                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39118                                tx_id: header.tx_id,
39119                            },
39120                        })
39121                    }
39122                    0x59c31dd3e3078295 => {
39123                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39124                        let mut req = fidl::new_empty!(
39125                            fidl::encoding::EmptyPayload,
39126                            fidl::encoding::DefaultFuchsiaResourceDialect
39127                        );
39128                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39129                        let control_handle =
39130                            DatagramSocketControlHandle { inner: this.inner.clone() };
39131                        Ok(DatagramSocketRequest::GetBindToInterfaceIndex {
39132                            responder: DatagramSocketGetBindToInterfaceIndexResponder {
39133                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39134                                tx_id: header.tx_id,
39135                            },
39136                        })
39137                    }
39138                    0x285d6516c263d839 => {
39139                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39140                        let mut req = fidl::new_empty!(
39141                            BaseSocketSetTimestampRequest,
39142                            fidl::encoding::DefaultFuchsiaResourceDialect
39143                        );
39144                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
39145                        let control_handle =
39146                            DatagramSocketControlHandle { inner: this.inner.clone() };
39147                        Ok(DatagramSocketRequest::SetTimestamp {
39148                            value: req.value,
39149
39150                            responder: DatagramSocketSetTimestampResponder {
39151                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39152                                tx_id: header.tx_id,
39153                            },
39154                        })
39155                    }
39156                    0x49f2fffbbcc2bd27 => {
39157                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39158                        let mut req = fidl::new_empty!(
39159                            fidl::encoding::EmptyPayload,
39160                            fidl::encoding::DefaultFuchsiaResourceDialect
39161                        );
39162                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39163                        let control_handle =
39164                            DatagramSocketControlHandle { inner: this.inner.clone() };
39165                        Ok(DatagramSocketRequest::GetTimestamp {
39166                            responder: DatagramSocketGetTimestampResponder {
39167                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39168                                tx_id: header.tx_id,
39169                            },
39170                        })
39171                    }
39172                    0x6ead6de09f653236 => {
39173                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39174                        let mut req = fidl::new_empty!(
39175                            BaseSocketSetMarkRequest,
39176                            fidl::encoding::DefaultFuchsiaResourceDialect
39177                        );
39178                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
39179                        let control_handle =
39180                            DatagramSocketControlHandle { inner: this.inner.clone() };
39181                        Ok(DatagramSocketRequest::SetMark {
39182                            domain: req.domain,
39183                            mark: req.mark,
39184
39185                            responder: DatagramSocketSetMarkResponder {
39186                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39187                                tx_id: header.tx_id,
39188                            },
39189                        })
39190                    }
39191                    0x57a2752c61d93d47 => {
39192                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39193                        let mut req = fidl::new_empty!(
39194                            BaseSocketGetMarkRequest,
39195                            fidl::encoding::DefaultFuchsiaResourceDialect
39196                        );
39197                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
39198                        let control_handle =
39199                            DatagramSocketControlHandle { inner: this.inner.clone() };
39200                        Ok(DatagramSocketRequest::GetMark {
39201                            domain: req.domain,
39202
39203                            responder: DatagramSocketGetMarkResponder {
39204                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39205                                tx_id: header.tx_id,
39206                            },
39207                        })
39208                    }
39209                    0x2c2f47fd8f924e52 => {
39210                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39211                        let mut req = fidl::new_empty!(
39212                            fidl::encoding::EmptyPayload,
39213                            fidl::encoding::DefaultFuchsiaResourceDialect
39214                        );
39215                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39216                        let control_handle =
39217                            DatagramSocketControlHandle { inner: this.inner.clone() };
39218                        Ok(DatagramSocketRequest::GetCookie {
39219                            responder: DatagramSocketGetCookieResponder {
39220                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39221                                tx_id: header.tx_id,
39222                            },
39223                        })
39224                    }
39225                    0x4bc6400ae92125d => {
39226                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39227                        let mut req = fidl::new_empty!(
39228                            BaseNetworkSocketBindRequest,
39229                            fidl::encoding::DefaultFuchsiaResourceDialect
39230                        );
39231                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
39232                        let control_handle =
39233                            DatagramSocketControlHandle { inner: this.inner.clone() };
39234                        Ok(DatagramSocketRequest::Bind {
39235                            addr: req.addr,
39236
39237                            responder: DatagramSocketBindResponder {
39238                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39239                                tx_id: header.tx_id,
39240                            },
39241                        })
39242                    }
39243                    0x5f05f19bfdd38871 => {
39244                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39245                        let mut req = fidl::new_empty!(
39246                            BaseNetworkSocketConnectRequest,
39247                            fidl::encoding::DefaultFuchsiaResourceDialect
39248                        );
39249                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
39250                        let control_handle =
39251                            DatagramSocketControlHandle { inner: this.inner.clone() };
39252                        Ok(DatagramSocketRequest::Connect {
39253                            addr: req.addr,
39254
39255                            responder: DatagramSocketConnectResponder {
39256                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39257                                tx_id: header.tx_id,
39258                            },
39259                        })
39260                    }
39261                    0x74e63b91f7b29b2 => {
39262                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39263                        let mut req = fidl::new_empty!(
39264                            fidl::encoding::EmptyPayload,
39265                            fidl::encoding::DefaultFuchsiaResourceDialect
39266                        );
39267                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39268                        let control_handle =
39269                            DatagramSocketControlHandle { inner: this.inner.clone() };
39270                        Ok(DatagramSocketRequest::Disconnect {
39271                            responder: DatagramSocketDisconnectResponder {
39272                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39273                                tx_id: header.tx_id,
39274                            },
39275                        })
39276                    }
39277                    0x475f23f84a1a4f85 => {
39278                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39279                        let mut req = fidl::new_empty!(
39280                            fidl::encoding::EmptyPayload,
39281                            fidl::encoding::DefaultFuchsiaResourceDialect
39282                        );
39283                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39284                        let control_handle =
39285                            DatagramSocketControlHandle { inner: this.inner.clone() };
39286                        Ok(DatagramSocketRequest::GetSockName {
39287                            responder: DatagramSocketGetSockNameResponder {
39288                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39289                                tx_id: header.tx_id,
39290                            },
39291                        })
39292                    }
39293                    0x1ffecf4bd5b6432e => {
39294                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39295                        let mut req = fidl::new_empty!(
39296                            fidl::encoding::EmptyPayload,
39297                            fidl::encoding::DefaultFuchsiaResourceDialect
39298                        );
39299                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39300                        let control_handle =
39301                            DatagramSocketControlHandle { inner: this.inner.clone() };
39302                        Ok(DatagramSocketRequest::GetPeerName {
39303                            responder: DatagramSocketGetPeerNameResponder {
39304                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39305                                tx_id: header.tx_id,
39306                            },
39307                        })
39308                    }
39309                    0x247f38b6db68c336 => {
39310                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39311                        let mut req = fidl::new_empty!(
39312                            BaseNetworkSocketShutdownRequest,
39313                            fidl::encoding::DefaultFuchsiaResourceDialect
39314                        );
39315                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
39316                        let control_handle =
39317                            DatagramSocketControlHandle { inner: this.inner.clone() };
39318                        Ok(DatagramSocketRequest::Shutdown {
39319                            mode: req.mode,
39320
39321                            responder: DatagramSocketShutdownResponder {
39322                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39323                                tx_id: header.tx_id,
39324                            },
39325                        })
39326                    }
39327                    0x995c600475b6d46 => {
39328                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39329                        let mut req = fidl::new_empty!(
39330                            BaseNetworkSocketSetIpTypeOfServiceRequest,
39331                            fidl::encoding::DefaultFuchsiaResourceDialect
39332                        );
39333                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
39334                        let control_handle =
39335                            DatagramSocketControlHandle { inner: this.inner.clone() };
39336                        Ok(DatagramSocketRequest::SetIpTypeOfService {
39337                            value: req.value,
39338
39339                            responder: DatagramSocketSetIpTypeOfServiceResponder {
39340                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39341                                tx_id: header.tx_id,
39342                            },
39343                        })
39344                    }
39345                    0x3814a04259f75fcb => {
39346                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39347                        let mut req = fidl::new_empty!(
39348                            fidl::encoding::EmptyPayload,
39349                            fidl::encoding::DefaultFuchsiaResourceDialect
39350                        );
39351                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39352                        let control_handle =
39353                            DatagramSocketControlHandle { inner: this.inner.clone() };
39354                        Ok(DatagramSocketRequest::GetIpTypeOfService {
39355                            responder: DatagramSocketGetIpTypeOfServiceResponder {
39356                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39357                                tx_id: header.tx_id,
39358                            },
39359                        })
39360                    }
39361                    0x29e2424b433ae1ef => {
39362                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39363                        let mut req = fidl::new_empty!(
39364                            BaseNetworkSocketSetIpTtlRequest,
39365                            fidl::encoding::DefaultFuchsiaResourceDialect
39366                        );
39367                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
39368                        let control_handle =
39369                            DatagramSocketControlHandle { inner: this.inner.clone() };
39370                        Ok(DatagramSocketRequest::SetIpTtl {
39371                            value: req.value,
39372
39373                            responder: DatagramSocketSetIpTtlResponder {
39374                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39375                                tx_id: header.tx_id,
39376                            },
39377                        })
39378                    }
39379                    0x47e47fa1f24da471 => {
39380                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39381                        let mut req = fidl::new_empty!(
39382                            fidl::encoding::EmptyPayload,
39383                            fidl::encoding::DefaultFuchsiaResourceDialect
39384                        );
39385                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39386                        let control_handle =
39387                            DatagramSocketControlHandle { inner: this.inner.clone() };
39388                        Ok(DatagramSocketRequest::GetIpTtl {
39389                            responder: DatagramSocketGetIpTtlResponder {
39390                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39391                                tx_id: header.tx_id,
39392                            },
39393                        })
39394                    }
39395                    0x392d16bee20c0e16 => {
39396                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39397                        let mut req = fidl::new_empty!(
39398                            BaseNetworkSocketSetIpPacketInfoRequest,
39399                            fidl::encoding::DefaultFuchsiaResourceDialect
39400                        );
39401                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
39402                        let control_handle =
39403                            DatagramSocketControlHandle { inner: this.inner.clone() };
39404                        Ok(DatagramSocketRequest::SetIpPacketInfo {
39405                            value: req.value,
39406
39407                            responder: DatagramSocketSetIpPacketInfoResponder {
39408                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39409                                tx_id: header.tx_id,
39410                            },
39411                        })
39412                    }
39413                    0x54b505f242280740 => {
39414                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39415                        let mut req = fidl::new_empty!(
39416                            fidl::encoding::EmptyPayload,
39417                            fidl::encoding::DefaultFuchsiaResourceDialect
39418                        );
39419                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39420                        let control_handle =
39421                            DatagramSocketControlHandle { inner: this.inner.clone() };
39422                        Ok(DatagramSocketRequest::GetIpPacketInfo {
39423                            responder: DatagramSocketGetIpPacketInfoResponder {
39424                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39425                                tx_id: header.tx_id,
39426                            },
39427                        })
39428                    }
39429                    0x6c4f6714995f84ef => {
39430                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39431                        let mut req = fidl::new_empty!(
39432                            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
39433                            fidl::encoding::DefaultFuchsiaResourceDialect
39434                        );
39435                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
39436                        let control_handle =
39437                            DatagramSocketControlHandle { inner: this.inner.clone() };
39438                        Ok(DatagramSocketRequest::SetIpReceiveTypeOfService {
39439                            value: req.value,
39440
39441                            responder: DatagramSocketSetIpReceiveTypeOfServiceResponder {
39442                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39443                                tx_id: header.tx_id,
39444                            },
39445                        })
39446                    }
39447                    0x4158ba7dc2795960 => {
39448                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39449                        let mut req = fidl::new_empty!(
39450                            fidl::encoding::EmptyPayload,
39451                            fidl::encoding::DefaultFuchsiaResourceDialect
39452                        );
39453                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39454                        let control_handle =
39455                            DatagramSocketControlHandle { inner: this.inner.clone() };
39456                        Ok(DatagramSocketRequest::GetIpReceiveTypeOfService {
39457                            responder: DatagramSocketGetIpReceiveTypeOfServiceResponder {
39458                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39459                                tx_id: header.tx_id,
39460                            },
39461                        })
39462                    }
39463                    0x46f15be0ce0ab82b => {
39464                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39465                        let mut req = fidl::new_empty!(
39466                            BaseNetworkSocketSetIpReceiveTtlRequest,
39467                            fidl::encoding::DefaultFuchsiaResourceDialect
39468                        );
39469                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
39470                        let control_handle =
39471                            DatagramSocketControlHandle { inner: this.inner.clone() };
39472                        Ok(DatagramSocketRequest::SetIpReceiveTtl {
39473                            value: req.value,
39474
39475                            responder: DatagramSocketSetIpReceiveTtlResponder {
39476                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39477                                tx_id: header.tx_id,
39478                            },
39479                        })
39480                    }
39481                    0x678ddd5a5dfa2eb5 => {
39482                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39483                        let mut req = fidl::new_empty!(
39484                            fidl::encoding::EmptyPayload,
39485                            fidl::encoding::DefaultFuchsiaResourceDialect
39486                        );
39487                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39488                        let control_handle =
39489                            DatagramSocketControlHandle { inner: this.inner.clone() };
39490                        Ok(DatagramSocketRequest::GetIpReceiveTtl {
39491                            responder: DatagramSocketGetIpReceiveTtlResponder {
39492                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39493                                tx_id: header.tx_id,
39494                            },
39495                        })
39496                    }
39497                    0x752fbfa9b12befe => {
39498                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39499                        let mut req = fidl::new_empty!(
39500                            BaseNetworkSocketSetIpMulticastInterfaceRequest,
39501                            fidl::encoding::DefaultFuchsiaResourceDialect
39502                        );
39503                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
39504                        let control_handle =
39505                            DatagramSocketControlHandle { inner: this.inner.clone() };
39506                        Ok(DatagramSocketRequest::SetIpMulticastInterface {
39507                            iface: req.iface,
39508                            address: req.address,
39509
39510                            responder: DatagramSocketSetIpMulticastInterfaceResponder {
39511                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39512                                tx_id: header.tx_id,
39513                            },
39514                        })
39515                    }
39516                    0x320bd14c4df046c4 => {
39517                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39518                        let mut req = fidl::new_empty!(
39519                            fidl::encoding::EmptyPayload,
39520                            fidl::encoding::DefaultFuchsiaResourceDialect
39521                        );
39522                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39523                        let control_handle =
39524                            DatagramSocketControlHandle { inner: this.inner.clone() };
39525                        Ok(DatagramSocketRequest::GetIpMulticastInterface {
39526                            responder: DatagramSocketGetIpMulticastInterfaceResponder {
39527                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39528                                tx_id: header.tx_id,
39529                            },
39530                        })
39531                    }
39532                    0x63134d53772916a1 => {
39533                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39534                        let mut req = fidl::new_empty!(
39535                            BaseNetworkSocketSetIpMulticastTtlRequest,
39536                            fidl::encoding::DefaultFuchsiaResourceDialect
39537                        );
39538                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
39539                        let control_handle =
39540                            DatagramSocketControlHandle { inner: this.inner.clone() };
39541                        Ok(DatagramSocketRequest::SetIpMulticastTtl {
39542                            value: req.value,
39543
39544                            responder: DatagramSocketSetIpMulticastTtlResponder {
39545                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39546                                tx_id: header.tx_id,
39547                            },
39548                        })
39549                    }
39550                    0x4665cd378f39e1a => {
39551                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39552                        let mut req = fidl::new_empty!(
39553                            fidl::encoding::EmptyPayload,
39554                            fidl::encoding::DefaultFuchsiaResourceDialect
39555                        );
39556                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39557                        let control_handle =
39558                            DatagramSocketControlHandle { inner: this.inner.clone() };
39559                        Ok(DatagramSocketRequest::GetIpMulticastTtl {
39560                            responder: DatagramSocketGetIpMulticastTtlResponder {
39561                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39562                                tx_id: header.tx_id,
39563                            },
39564                        })
39565                    }
39566                    0x20c55c11f00943ea => {
39567                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39568                        let mut req = fidl::new_empty!(
39569                            BaseNetworkSocketSetIpMulticastLoopbackRequest,
39570                            fidl::encoding::DefaultFuchsiaResourceDialect
39571                        );
39572                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
39573                        let control_handle =
39574                            DatagramSocketControlHandle { inner: this.inner.clone() };
39575                        Ok(DatagramSocketRequest::SetIpMulticastLoopback {
39576                            value: req.value,
39577
39578                            responder: DatagramSocketSetIpMulticastLoopbackResponder {
39579                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39580                                tx_id: header.tx_id,
39581                            },
39582                        })
39583                    }
39584                    0x3b6b26ff558298f2 => {
39585                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39586                        let mut req = fidl::new_empty!(
39587                            fidl::encoding::EmptyPayload,
39588                            fidl::encoding::DefaultFuchsiaResourceDialect
39589                        );
39590                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39591                        let control_handle =
39592                            DatagramSocketControlHandle { inner: this.inner.clone() };
39593                        Ok(DatagramSocketRequest::GetIpMulticastLoopback {
39594                            responder: DatagramSocketGetIpMulticastLoopbackResponder {
39595                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39596                                tx_id: header.tx_id,
39597                            },
39598                        })
39599                    }
39600                    0x76bc7df115a3b4d0 => {
39601                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39602                        let mut req = fidl::new_empty!(
39603                            BaseNetworkSocketAddIpMembershipRequest,
39604                            fidl::encoding::DefaultFuchsiaResourceDialect
39605                        );
39606                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
39607                        let control_handle =
39608                            DatagramSocketControlHandle { inner: this.inner.clone() };
39609                        Ok(DatagramSocketRequest::AddIpMembership {
39610                            membership: req.membership,
39611
39612                            responder: DatagramSocketAddIpMembershipResponder {
39613                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39614                                tx_id: header.tx_id,
39615                            },
39616                        })
39617                    }
39618                    0x2888f3099188d03 => {
39619                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39620                        let mut req = fidl::new_empty!(
39621                            BaseNetworkSocketDropIpMembershipRequest,
39622                            fidl::encoding::DefaultFuchsiaResourceDialect
39623                        );
39624                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
39625                        let control_handle =
39626                            DatagramSocketControlHandle { inner: this.inner.clone() };
39627                        Ok(DatagramSocketRequest::DropIpMembership {
39628                            membership: req.membership,
39629
39630                            responder: DatagramSocketDropIpMembershipResponder {
39631                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39632                                tx_id: header.tx_id,
39633                            },
39634                        })
39635                    }
39636                    0x1ae532b0c066e3a0 => {
39637                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39638                        let mut req = fidl::new_empty!(
39639                            BaseNetworkSocketSetIpTransparentRequest,
39640                            fidl::encoding::DefaultFuchsiaResourceDialect
39641                        );
39642                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
39643                        let control_handle =
39644                            DatagramSocketControlHandle { inner: this.inner.clone() };
39645                        Ok(DatagramSocketRequest::SetIpTransparent {
39646                            value: req.value,
39647
39648                            responder: DatagramSocketSetIpTransparentResponder {
39649                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39650                                tx_id: header.tx_id,
39651                            },
39652                        })
39653                    }
39654                    0x51d43695962ebfb5 => {
39655                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39656                        let mut req = fidl::new_empty!(
39657                            fidl::encoding::EmptyPayload,
39658                            fidl::encoding::DefaultFuchsiaResourceDialect
39659                        );
39660                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39661                        let control_handle =
39662                            DatagramSocketControlHandle { inner: this.inner.clone() };
39663                        Ok(DatagramSocketRequest::GetIpTransparent {
39664                            responder: DatagramSocketGetIpTransparentResponder {
39665                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39666                                tx_id: header.tx_id,
39667                            },
39668                        })
39669                    }
39670                    0x4722b4ce52f7840 => {
39671                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39672                        let mut req = fidl::new_empty!(
39673                            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
39674                            fidl::encoding::DefaultFuchsiaResourceDialect
39675                        );
39676                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
39677                        let control_handle =
39678                            DatagramSocketControlHandle { inner: this.inner.clone() };
39679                        Ok(DatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {
39680                            value: req.value,
39681
39682                            responder:
39683                                DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
39684                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
39685                                    tx_id: header.tx_id,
39686                                },
39687                        })
39688                    }
39689                    0x2a0e7dc5d6bfdfe9 => {
39690                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39691                        let mut req = fidl::new_empty!(
39692                            fidl::encoding::EmptyPayload,
39693                            fidl::encoding::DefaultFuchsiaResourceDialect
39694                        );
39695                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39696                        let control_handle =
39697                            DatagramSocketControlHandle { inner: this.inner.clone() };
39698                        Ok(DatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
39699                            responder:
39700                                DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
39701                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
39702                                    tx_id: header.tx_id,
39703                                },
39704                        })
39705                    }
39706                    0x7c94727acb4ea4b3 => {
39707                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39708                        let mut req = fidl::new_empty!(
39709                            BaseNetworkSocketAddIpv6MembershipRequest,
39710                            fidl::encoding::DefaultFuchsiaResourceDialect
39711                        );
39712                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
39713                        let control_handle =
39714                            DatagramSocketControlHandle { inner: this.inner.clone() };
39715                        Ok(DatagramSocketRequest::AddIpv6Membership {
39716                            membership: req.membership,
39717
39718                            responder: DatagramSocketAddIpv6MembershipResponder {
39719                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39720                                tx_id: header.tx_id,
39721                            },
39722                        })
39723                    }
39724                    0x42104c70ccaba304 => {
39725                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39726                        let mut req = fidl::new_empty!(
39727                            BaseNetworkSocketDropIpv6MembershipRequest,
39728                            fidl::encoding::DefaultFuchsiaResourceDialect
39729                        );
39730                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
39731                        let control_handle =
39732                            DatagramSocketControlHandle { inner: this.inner.clone() };
39733                        Ok(DatagramSocketRequest::DropIpv6Membership {
39734                            membership: req.membership,
39735
39736                            responder: DatagramSocketDropIpv6MembershipResponder {
39737                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39738                                tx_id: header.tx_id,
39739                            },
39740                        })
39741                    }
39742                    0x135f76db3774ab3b => {
39743                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39744                        let mut req = fidl::new_empty!(
39745                            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
39746                            fidl::encoding::DefaultFuchsiaResourceDialect
39747                        );
39748                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
39749                        let control_handle =
39750                            DatagramSocketControlHandle { inner: this.inner.clone() };
39751                        Ok(DatagramSocketRequest::SetIpv6MulticastInterface {
39752                            value: req.value,
39753
39754                            responder: DatagramSocketSetIpv6MulticastInterfaceResponder {
39755                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39756                                tx_id: header.tx_id,
39757                            },
39758                        })
39759                    }
39760                    0x1f26fcdd348f1882 => {
39761                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39762                        let mut req = fidl::new_empty!(
39763                            fidl::encoding::EmptyPayload,
39764                            fidl::encoding::DefaultFuchsiaResourceDialect
39765                        );
39766                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39767                        let control_handle =
39768                            DatagramSocketControlHandle { inner: this.inner.clone() };
39769                        Ok(DatagramSocketRequest::GetIpv6MulticastInterface {
39770                            responder: DatagramSocketGetIpv6MulticastInterfaceResponder {
39771                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39772                                tx_id: header.tx_id,
39773                            },
39774                        })
39775                    }
39776                    0x157d51e98f462859 => {
39777                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39778                        let mut req = fidl::new_empty!(
39779                            BaseNetworkSocketSetIpv6UnicastHopsRequest,
39780                            fidl::encoding::DefaultFuchsiaResourceDialect
39781                        );
39782                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
39783                        let control_handle =
39784                            DatagramSocketControlHandle { inner: this.inner.clone() };
39785                        Ok(DatagramSocketRequest::SetIpv6UnicastHops {
39786                            value: req.value,
39787
39788                            responder: DatagramSocketSetIpv6UnicastHopsResponder {
39789                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39790                                tx_id: header.tx_id,
39791                            },
39792                        })
39793                    }
39794                    0x21f4641cad8bd8d2 => {
39795                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39796                        let mut req = fidl::new_empty!(
39797                            fidl::encoding::EmptyPayload,
39798                            fidl::encoding::DefaultFuchsiaResourceDialect
39799                        );
39800                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39801                        let control_handle =
39802                            DatagramSocketControlHandle { inner: this.inner.clone() };
39803                        Ok(DatagramSocketRequest::GetIpv6UnicastHops {
39804                            responder: DatagramSocketGetIpv6UnicastHopsResponder {
39805                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39806                                tx_id: header.tx_id,
39807                            },
39808                        })
39809                    }
39810                    0x5c24808ed2e84a1e => {
39811                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39812                        let mut req = fidl::new_empty!(
39813                            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
39814                            fidl::encoding::DefaultFuchsiaResourceDialect
39815                        );
39816                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
39817                        let control_handle =
39818                            DatagramSocketControlHandle { inner: this.inner.clone() };
39819                        Ok(DatagramSocketRequest::SetIpv6ReceiveHopLimit {
39820                            value: req.value,
39821
39822                            responder: DatagramSocketSetIpv6ReceiveHopLimitResponder {
39823                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39824                                tx_id: header.tx_id,
39825                            },
39826                        })
39827                    }
39828                    0x341e06689885b4c0 => {
39829                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39830                        let mut req = fidl::new_empty!(
39831                            fidl::encoding::EmptyPayload,
39832                            fidl::encoding::DefaultFuchsiaResourceDialect
39833                        );
39834                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39835                        let control_handle =
39836                            DatagramSocketControlHandle { inner: this.inner.clone() };
39837                        Ok(DatagramSocketRequest::GetIpv6ReceiveHopLimit {
39838                            responder: DatagramSocketGetIpv6ReceiveHopLimitResponder {
39839                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39840                                tx_id: header.tx_id,
39841                            },
39842                        })
39843                    }
39844                    0x25b9cd4d181f82c1 => {
39845                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39846                        let mut req = fidl::new_empty!(
39847                            BaseNetworkSocketSetIpv6MulticastHopsRequest,
39848                            fidl::encoding::DefaultFuchsiaResourceDialect
39849                        );
39850                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
39851                        let control_handle =
39852                            DatagramSocketControlHandle { inner: this.inner.clone() };
39853                        Ok(DatagramSocketRequest::SetIpv6MulticastHops {
39854                            value: req.value,
39855
39856                            responder: DatagramSocketSetIpv6MulticastHopsResponder {
39857                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39858                                tx_id: header.tx_id,
39859                            },
39860                        })
39861                    }
39862                    0x52916948a365012a => {
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::GetIpv6MulticastHops {
39872                            responder: DatagramSocketGetIpv6MulticastHopsResponder {
39873                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39874                                tx_id: header.tx_id,
39875                            },
39876                        })
39877                    }
39878                    0x55701c409ff41b40 => {
39879                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39880                        let mut req = fidl::new_empty!(
39881                            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
39882                            fidl::encoding::DefaultFuchsiaResourceDialect
39883                        );
39884                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
39885                        let control_handle =
39886                            DatagramSocketControlHandle { inner: this.inner.clone() };
39887                        Ok(DatagramSocketRequest::SetIpv6MulticastLoopback {
39888                            value: req.value,
39889
39890                            responder: DatagramSocketSetIpv6MulticastLoopbackResponder {
39891                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39892                                tx_id: header.tx_id,
39893                            },
39894                        })
39895                    }
39896                    0x4415b701fde319c3 => {
39897                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39898                        let mut req = fidl::new_empty!(
39899                            fidl::encoding::EmptyPayload,
39900                            fidl::encoding::DefaultFuchsiaResourceDialect
39901                        );
39902                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39903                        let control_handle =
39904                            DatagramSocketControlHandle { inner: this.inner.clone() };
39905                        Ok(DatagramSocketRequest::GetIpv6MulticastLoopback {
39906                            responder: DatagramSocketGetIpv6MulticastLoopbackResponder {
39907                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39908                                tx_id: header.tx_id,
39909                            },
39910                        })
39911                    }
39912                    0x4873f1364758cbba => {
39913                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39914                        let mut req = fidl::new_empty!(
39915                            BaseNetworkSocketSetIpv6OnlyRequest,
39916                            fidl::encoding::DefaultFuchsiaResourceDialect
39917                        );
39918                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
39919                        let control_handle =
39920                            DatagramSocketControlHandle { inner: this.inner.clone() };
39921                        Ok(DatagramSocketRequest::SetIpv6Only {
39922                            value: req.value,
39923
39924                            responder: DatagramSocketSetIpv6OnlyResponder {
39925                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39926                                tx_id: header.tx_id,
39927                            },
39928                        })
39929                    }
39930                    0x4aa3340a1a26b89c => {
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::GetIpv6Only {
39940                            responder: DatagramSocketGetIpv6OnlyResponder {
39941                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39942                                tx_id: header.tx_id,
39943                            },
39944                        })
39945                    }
39946                    0x58f07c8788d099a0 => {
39947                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39948                        let mut req = fidl::new_empty!(
39949                            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
39950                            fidl::encoding::DefaultFuchsiaResourceDialect
39951                        );
39952                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
39953                        let control_handle =
39954                            DatagramSocketControlHandle { inner: this.inner.clone() };
39955                        Ok(DatagramSocketRequest::SetIpv6ReceiveTrafficClass {
39956                            value: req.value,
39957
39958                            responder: DatagramSocketSetIpv6ReceiveTrafficClassResponder {
39959                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39960                                tx_id: header.tx_id,
39961                            },
39962                        })
39963                    }
39964                    0x2e334df1da553ffa => {
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::GetIpv6ReceiveTrafficClass {
39974                            responder: DatagramSocketGetIpv6ReceiveTrafficClassResponder {
39975                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39976                                tx_id: header.tx_id,
39977                            },
39978                        })
39979                    }
39980                    0x6af077800c5a0b4f => {
39981                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39982                        let mut req = fidl::new_empty!(
39983                            BaseNetworkSocketSetIpv6TrafficClassRequest,
39984                            fidl::encoding::DefaultFuchsiaResourceDialect
39985                        );
39986                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
39987                        let control_handle =
39988                            DatagramSocketControlHandle { inner: this.inner.clone() };
39989                        Ok(DatagramSocketRequest::SetIpv6TrafficClass {
39990                            value: req.value,
39991
39992                            responder: DatagramSocketSetIpv6TrafficClassResponder {
39993                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39994                                tx_id: header.tx_id,
39995                            },
39996                        })
39997                    }
39998                    0x6baf6eed8fc2f04 => {
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::GetIpv6TrafficClass {
40008                            responder: DatagramSocketGetIpv6TrafficClassResponder {
40009                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40010                                tx_id: header.tx_id,
40011                            },
40012                        })
40013                    }
40014                    0x19259775b1a92768 => {
40015                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40016                        let mut req = fidl::new_empty!(
40017                            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
40018                            fidl::encoding::DefaultFuchsiaResourceDialect
40019                        );
40020                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
40021                        let control_handle =
40022                            DatagramSocketControlHandle { inner: this.inner.clone() };
40023                        Ok(DatagramSocketRequest::SetIpv6ReceivePacketInfo {
40024                            value: req.value,
40025
40026                            responder: DatagramSocketSetIpv6ReceivePacketInfoResponder {
40027                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40028                                tx_id: header.tx_id,
40029                            },
40030                        })
40031                    }
40032                    0x7acd4a2775baec75 => {
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::GetIpv6ReceivePacketInfo {
40042                            responder: DatagramSocketGetIpv6ReceivePacketInfoResponder {
40043                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40044                                tx_id: header.tx_id,
40045                            },
40046                        })
40047                    }
40048                    0x38bf28f0dafdbac0 => {
40049                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40050                        let mut req = fidl::new_empty!(
40051                            fidl::encoding::EmptyPayload,
40052                            fidl::encoding::DefaultFuchsiaResourceDialect
40053                        );
40054                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40055                        let control_handle =
40056                            DatagramSocketControlHandle { inner: this.inner.clone() };
40057                        Ok(DatagramSocketRequest::GetOriginalDestination {
40058                            responder: DatagramSocketGetOriginalDestinationResponder {
40059                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40060                                tx_id: header.tx_id,
40061                            },
40062                        })
40063                    }
40064                    0x48aa0a1f6a32d2ed => {
40065                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40066                        let mut req = fidl::new_empty!(
40067                            fidl::encoding::EmptyPayload,
40068                            fidl::encoding::DefaultFuchsiaResourceDialect
40069                        );
40070                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40071                        let control_handle =
40072                            DatagramSocketControlHandle { inner: this.inner.clone() };
40073                        Ok(DatagramSocketRequest::GetInfo {
40074                            responder: DatagramSocketGetInfoResponder {
40075                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40076                                tx_id: header.tx_id,
40077                            },
40078                        })
40079                    }
40080                    0xbf1e2f0a86601f3 => {
40081                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40082                        let mut req = fidl::new_empty!(
40083                            fidl::encoding::EmptyPayload,
40084                            fidl::encoding::DefaultFuchsiaResourceDialect
40085                        );
40086                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40087                        let control_handle =
40088                            DatagramSocketControlHandle { inner: this.inner.clone() };
40089                        Ok(DatagramSocketRequest::Describe {
40090                            responder: DatagramSocketDescribeResponder {
40091                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40092                                tx_id: header.tx_id,
40093                            },
40094                        })
40095                    }
40096                    0x5362e668e777248a => {
40097                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40098                        let mut req = fidl::new_empty!(
40099                            DatagramSocketSendMsgPreflightRequest,
40100                            fidl::encoding::DefaultFuchsiaResourceDialect
40101                        );
40102                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DatagramSocketSendMsgPreflightRequest>(&header, _body_bytes, handles, &mut req)?;
40103                        let control_handle =
40104                            DatagramSocketControlHandle { inner: this.inner.clone() };
40105                        Ok(DatagramSocketRequest::SendMsgPreflight {
40106                            payload: req,
40107                            responder: DatagramSocketSendMsgPreflightResponder {
40108                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40109                                tx_id: header.tx_id,
40110                            },
40111                        })
40112                    }
40113                    0x1a7cdeca5f3eb8e2 => {
40114                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40115                        let mut req = fidl::new_empty!(
40116                            fidl::encoding::EmptyPayload,
40117                            fidl::encoding::DefaultFuchsiaResourceDialect
40118                        );
40119                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40120                        let control_handle =
40121                            DatagramSocketControlHandle { inner: this.inner.clone() };
40122                        Ok(DatagramSocketRequest::RecvMsgPostflight {
40123                            responder: DatagramSocketRecvMsgPostflightResponder {
40124                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40125                                tx_id: header.tx_id,
40126                            },
40127                        })
40128                    }
40129                    _ => Err(fidl::Error::UnknownOrdinal {
40130                        ordinal: header.ordinal,
40131                        protocol_name:
40132                            <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
40133                    }),
40134                }))
40135            },
40136        )
40137    }
40138}
40139
40140/// A datagram socket.
40141#[derive(Debug)]
40142pub enum DatagramSocketRequest {
40143    Clone {
40144        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
40145        control_handle: DatagramSocketControlHandle,
40146    },
40147    /// Terminates the connection.
40148    ///
40149    /// After calling `Close`, the client must not send any other requests.
40150    ///
40151    /// Servers, after sending the status response, should close the connection
40152    /// regardless of status and without sending an epitaph.
40153    ///
40154    /// Closing the client end of the channel should be semantically equivalent
40155    /// to calling `Close` without knowing when the close has completed or its
40156    /// status.
40157    Close {
40158        responder: DatagramSocketCloseResponder,
40159    },
40160    Query {
40161        responder: DatagramSocketQueryResponder,
40162    },
40163    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
40164    SetReuseAddress {
40165        value: bool,
40166        responder: DatagramSocketSetReuseAddressResponder,
40167    },
40168    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
40169    GetReuseAddress {
40170        responder: DatagramSocketGetReuseAddressResponder,
40171    },
40172    /// Get `SOL_SOCKET` -> `SO_ERROR`.
40173    /// Returns the last error if there is an error set on the socket.
40174    GetError {
40175        responder: DatagramSocketGetErrorResponder,
40176    },
40177    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
40178    SetBroadcast {
40179        value: bool,
40180        responder: DatagramSocketSetBroadcastResponder,
40181    },
40182    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
40183    GetBroadcast {
40184        responder: DatagramSocketGetBroadcastResponder,
40185    },
40186    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
40187    SetSendBuffer {
40188        value_bytes: u64,
40189        responder: DatagramSocketSetSendBufferResponder,
40190    },
40191    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
40192    GetSendBuffer {
40193        responder: DatagramSocketGetSendBufferResponder,
40194    },
40195    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
40196    SetReceiveBuffer {
40197        value_bytes: u64,
40198        responder: DatagramSocketSetReceiveBufferResponder,
40199    },
40200    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
40201    GetReceiveBuffer {
40202        responder: DatagramSocketGetReceiveBufferResponder,
40203    },
40204    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
40205    SetKeepAlive {
40206        value: bool,
40207        responder: DatagramSocketSetKeepAliveResponder,
40208    },
40209    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
40210    GetKeepAlive {
40211        responder: DatagramSocketGetKeepAliveResponder,
40212    },
40213    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
40214    SetOutOfBandInline {
40215        value: bool,
40216        responder: DatagramSocketSetOutOfBandInlineResponder,
40217    },
40218    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
40219    GetOutOfBandInline {
40220        responder: DatagramSocketGetOutOfBandInlineResponder,
40221    },
40222    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
40223    SetNoCheck {
40224        value: bool,
40225        responder: DatagramSocketSetNoCheckResponder,
40226    },
40227    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
40228    GetNoCheck {
40229        responder: DatagramSocketGetNoCheckResponder,
40230    },
40231    /// Set `SOL_SOCKET` -> `SO_LINGER`.
40232    SetLinger {
40233        linger: bool,
40234        length_secs: u32,
40235        responder: DatagramSocketSetLingerResponder,
40236    },
40237    /// Get `SOL_SOCKET` -> `SO_LINGER`.
40238    GetLinger {
40239        responder: DatagramSocketGetLingerResponder,
40240    },
40241    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
40242    SetReusePort {
40243        value: bool,
40244        responder: DatagramSocketSetReusePortResponder,
40245    },
40246    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
40247    GetReusePort {
40248        responder: DatagramSocketGetReusePortResponder,
40249    },
40250    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
40251    GetAcceptConn {
40252        responder: DatagramSocketGetAcceptConnResponder,
40253    },
40254    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
40255    SetBindToDevice {
40256        value: String,
40257        responder: DatagramSocketSetBindToDeviceResponder,
40258    },
40259    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
40260    GetBindToDevice {
40261        responder: DatagramSocketGetBindToDeviceResponder,
40262    },
40263    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
40264    /// If `value` is 0, this clears the bound interface.
40265    SetBindToInterfaceIndex {
40266        value: u64,
40267        responder: DatagramSocketSetBindToInterfaceIndexResponder,
40268    },
40269    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
40270    GetBindToInterfaceIndex {
40271        responder: DatagramSocketGetBindToInterfaceIndexResponder,
40272    },
40273    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
40274    SetTimestamp {
40275        value: TimestampOption,
40276        responder: DatagramSocketSetTimestampResponder,
40277    },
40278    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
40279    GetTimestamp {
40280        responder: DatagramSocketGetTimestampResponder,
40281    },
40282    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
40283    /// unlike the standard SO_MARK, this API has multiple mark domains and each
40284    /// mark can be set independently in each domain.
40285    SetMark {
40286        domain: fidl_fuchsia_net::MarkDomain,
40287        mark: OptionalUint32,
40288        responder: DatagramSocketSetMarkResponder,
40289    },
40290    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
40291    /// unlike the standard SO_MARK, this API has multiple mark domains and each
40292    /// mark can be retrieved independently in each domain.
40293    GetMark {
40294        domain: fidl_fuchsia_net::MarkDomain,
40295        responder: DatagramSocketGetMarkResponder,
40296    },
40297    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
40298    GetCookie {
40299        responder: DatagramSocketGetCookieResponder,
40300    },
40301    /// Sets the local address used for the socket.
40302    Bind {
40303        addr: fidl_fuchsia_net::SocketAddress,
40304        responder: DatagramSocketBindResponder,
40305    },
40306    /// Initiates a connection to a remote address.
40307    Connect {
40308        addr: fidl_fuchsia_net::SocketAddress,
40309        responder: DatagramSocketConnectResponder,
40310    },
40311    /// Clears connection information from this socket.
40312    Disconnect {
40313        responder: DatagramSocketDisconnectResponder,
40314    },
40315    /// Retrieves the local socket address.
40316    GetSockName {
40317        responder: DatagramSocketGetSockNameResponder,
40318    },
40319    /// Retrieves the remote socket address.
40320    GetPeerName {
40321        responder: DatagramSocketGetPeerNameResponder,
40322    },
40323    /// Shuts down part of the socket.
40324    Shutdown {
40325        mode: ShutdownMode,
40326        responder: DatagramSocketShutdownResponder,
40327    },
40328    /// Set `SOL_IP` -> `IP_TOS`.
40329    SetIpTypeOfService {
40330        value: u8,
40331        responder: DatagramSocketSetIpTypeOfServiceResponder,
40332    },
40333    /// Get `SOL_IP` -> `IP_TOS`.
40334    GetIpTypeOfService {
40335        responder: DatagramSocketGetIpTypeOfServiceResponder,
40336    },
40337    /// Set `SOL_IP` -> `IP_TTL`.
40338    SetIpTtl {
40339        value: OptionalUint8,
40340        responder: DatagramSocketSetIpTtlResponder,
40341    },
40342    /// Get `SOL_IP` -> `IP_TTL`.
40343    GetIpTtl {
40344        responder: DatagramSocketGetIpTtlResponder,
40345    },
40346    /// Set `SOL_IP` -> `IP_PKTINFO`.
40347    SetIpPacketInfo {
40348        value: bool,
40349        responder: DatagramSocketSetIpPacketInfoResponder,
40350    },
40351    /// Get `SOL_IP` -> `IP_PKTINFO`.
40352    GetIpPacketInfo {
40353        responder: DatagramSocketGetIpPacketInfoResponder,
40354    },
40355    /// Set `SOL_IP` -> `IP_RECVTOS`.
40356    SetIpReceiveTypeOfService {
40357        value: bool,
40358        responder: DatagramSocketSetIpReceiveTypeOfServiceResponder,
40359    },
40360    /// Get `SOL_IP` -> `IP_RECVTOS`.
40361    GetIpReceiveTypeOfService {
40362        responder: DatagramSocketGetIpReceiveTypeOfServiceResponder,
40363    },
40364    /// Set `SOL_IP` -> `IP_RECVTTL`.
40365    SetIpReceiveTtl {
40366        value: bool,
40367        responder: DatagramSocketSetIpReceiveTtlResponder,
40368    },
40369    /// Get `SOL_IP` -> `IP_RECVTTL`.
40370    GetIpReceiveTtl {
40371        responder: DatagramSocketGetIpReceiveTtlResponder,
40372    },
40373    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
40374    SetIpMulticastInterface {
40375        iface: u64,
40376        address: fidl_fuchsia_net::Ipv4Address,
40377        responder: DatagramSocketSetIpMulticastInterfaceResponder,
40378    },
40379    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
40380    GetIpMulticastInterface {
40381        responder: DatagramSocketGetIpMulticastInterfaceResponder,
40382    },
40383    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
40384    SetIpMulticastTtl {
40385        value: OptionalUint8,
40386        responder: DatagramSocketSetIpMulticastTtlResponder,
40387    },
40388    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
40389    GetIpMulticastTtl {
40390        responder: DatagramSocketGetIpMulticastTtlResponder,
40391    },
40392    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
40393    SetIpMulticastLoopback {
40394        value: bool,
40395        responder: DatagramSocketSetIpMulticastLoopbackResponder,
40396    },
40397    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
40398    GetIpMulticastLoopback {
40399        responder: DatagramSocketGetIpMulticastLoopbackResponder,
40400    },
40401    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
40402    AddIpMembership {
40403        membership: IpMulticastMembership,
40404        responder: DatagramSocketAddIpMembershipResponder,
40405    },
40406    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
40407    DropIpMembership {
40408        membership: IpMulticastMembership,
40409        responder: DatagramSocketDropIpMembershipResponder,
40410    },
40411    /// Set `SOL_IP` -> `IP_TRANSPARENT`
40412    SetIpTransparent {
40413        value: bool,
40414        responder: DatagramSocketSetIpTransparentResponder,
40415    },
40416    /// Get `SOL_IP` -> `IP_TRANSPARENT`
40417    GetIpTransparent {
40418        responder: DatagramSocketGetIpTransparentResponder,
40419    },
40420    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
40421    SetIpReceiveOriginalDestinationAddress {
40422        value: bool,
40423        responder: DatagramSocketSetIpReceiveOriginalDestinationAddressResponder,
40424    },
40425    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
40426    GetIpReceiveOriginalDestinationAddress {
40427        responder: DatagramSocketGetIpReceiveOriginalDestinationAddressResponder,
40428    },
40429    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
40430    AddIpv6Membership {
40431        membership: Ipv6MulticastMembership,
40432        responder: DatagramSocketAddIpv6MembershipResponder,
40433    },
40434    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
40435    DropIpv6Membership {
40436        membership: Ipv6MulticastMembership,
40437        responder: DatagramSocketDropIpv6MembershipResponder,
40438    },
40439    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
40440    SetIpv6MulticastInterface {
40441        value: u64,
40442        responder: DatagramSocketSetIpv6MulticastInterfaceResponder,
40443    },
40444    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
40445    GetIpv6MulticastInterface {
40446        responder: DatagramSocketGetIpv6MulticastInterfaceResponder,
40447    },
40448    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
40449    SetIpv6UnicastHops {
40450        value: OptionalUint8,
40451        responder: DatagramSocketSetIpv6UnicastHopsResponder,
40452    },
40453    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
40454    GetIpv6UnicastHops {
40455        responder: DatagramSocketGetIpv6UnicastHopsResponder,
40456    },
40457    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
40458    SetIpv6ReceiveHopLimit {
40459        value: bool,
40460        responder: DatagramSocketSetIpv6ReceiveHopLimitResponder,
40461    },
40462    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
40463    GetIpv6ReceiveHopLimit {
40464        responder: DatagramSocketGetIpv6ReceiveHopLimitResponder,
40465    },
40466    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
40467    SetIpv6MulticastHops {
40468        value: OptionalUint8,
40469        responder: DatagramSocketSetIpv6MulticastHopsResponder,
40470    },
40471    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
40472    GetIpv6MulticastHops {
40473        responder: DatagramSocketGetIpv6MulticastHopsResponder,
40474    },
40475    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
40476    SetIpv6MulticastLoopback {
40477        value: bool,
40478        responder: DatagramSocketSetIpv6MulticastLoopbackResponder,
40479    },
40480    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
40481    GetIpv6MulticastLoopback {
40482        responder: DatagramSocketGetIpv6MulticastLoopbackResponder,
40483    },
40484    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
40485    SetIpv6Only {
40486        value: bool,
40487        responder: DatagramSocketSetIpv6OnlyResponder,
40488    },
40489    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
40490    GetIpv6Only {
40491        responder: DatagramSocketGetIpv6OnlyResponder,
40492    },
40493    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
40494    SetIpv6ReceiveTrafficClass {
40495        value: bool,
40496        responder: DatagramSocketSetIpv6ReceiveTrafficClassResponder,
40497    },
40498    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
40499    GetIpv6ReceiveTrafficClass {
40500        responder: DatagramSocketGetIpv6ReceiveTrafficClassResponder,
40501    },
40502    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
40503    SetIpv6TrafficClass {
40504        value: OptionalUint8,
40505        responder: DatagramSocketSetIpv6TrafficClassResponder,
40506    },
40507    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
40508    GetIpv6TrafficClass {
40509        responder: DatagramSocketGetIpv6TrafficClassResponder,
40510    },
40511    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
40512    SetIpv6ReceivePacketInfo {
40513        value: bool,
40514        responder: DatagramSocketSetIpv6ReceivePacketInfoResponder,
40515    },
40516    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
40517    GetIpv6ReceivePacketInfo {
40518        responder: DatagramSocketGetIpv6ReceivePacketInfoResponder,
40519    },
40520    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
40521    GetOriginalDestination {
40522        responder: DatagramSocketGetOriginalDestinationResponder,
40523    },
40524    /// Retrieves creation information from the socket.
40525    ///
40526    /// - response `domain` the socket's associated domain.
40527    /// - response `proto` the socket's associated protocol.
40528    GetInfo {
40529        responder: DatagramSocketGetInfoResponder,
40530    },
40531    Describe {
40532        responder: DatagramSocketDescribeResponder,
40533    },
40534    /// Validates that data can be sent.
40535    ///
40536    /// + request `args` the requested disposition of data to be sent.
40537    /// - response the constraints sent data must satisfy.
40538    /// * error the error code indicating the reason for validation failure.
40539    SendMsgPreflight {
40540        payload: DatagramSocketSendMsgPreflightRequest,
40541        responder: DatagramSocketSendMsgPreflightResponder,
40542    },
40543    /// Returns the set of requested control messages.
40544    ///
40545    /// - response the set of currently requested control messages.
40546    RecvMsgPostflight {
40547        responder: DatagramSocketRecvMsgPostflightResponder,
40548    },
40549}
40550
40551impl DatagramSocketRequest {
40552    #[allow(irrefutable_let_patterns)]
40553    pub fn into_clone(
40554        self,
40555    ) -> Option<(
40556        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
40557        DatagramSocketControlHandle,
40558    )> {
40559        if let DatagramSocketRequest::Clone { request, control_handle } = self {
40560            Some((request, control_handle))
40561        } else {
40562            None
40563        }
40564    }
40565
40566    #[allow(irrefutable_let_patterns)]
40567    pub fn into_close(self) -> Option<(DatagramSocketCloseResponder)> {
40568        if let DatagramSocketRequest::Close { responder } = self { Some((responder)) } else { None }
40569    }
40570
40571    #[allow(irrefutable_let_patterns)]
40572    pub fn into_query(self) -> Option<(DatagramSocketQueryResponder)> {
40573        if let DatagramSocketRequest::Query { responder } = self { Some((responder)) } else { None }
40574    }
40575
40576    #[allow(irrefutable_let_patterns)]
40577    pub fn into_set_reuse_address(self) -> Option<(bool, DatagramSocketSetReuseAddressResponder)> {
40578        if let DatagramSocketRequest::SetReuseAddress { value, responder } = self {
40579            Some((value, responder))
40580        } else {
40581            None
40582        }
40583    }
40584
40585    #[allow(irrefutable_let_patterns)]
40586    pub fn into_get_reuse_address(self) -> Option<(DatagramSocketGetReuseAddressResponder)> {
40587        if let DatagramSocketRequest::GetReuseAddress { responder } = self {
40588            Some((responder))
40589        } else {
40590            None
40591        }
40592    }
40593
40594    #[allow(irrefutable_let_patterns)]
40595    pub fn into_get_error(self) -> Option<(DatagramSocketGetErrorResponder)> {
40596        if let DatagramSocketRequest::GetError { responder } = self {
40597            Some((responder))
40598        } else {
40599            None
40600        }
40601    }
40602
40603    #[allow(irrefutable_let_patterns)]
40604    pub fn into_set_broadcast(self) -> Option<(bool, DatagramSocketSetBroadcastResponder)> {
40605        if let DatagramSocketRequest::SetBroadcast { value, responder } = self {
40606            Some((value, responder))
40607        } else {
40608            None
40609        }
40610    }
40611
40612    #[allow(irrefutable_let_patterns)]
40613    pub fn into_get_broadcast(self) -> Option<(DatagramSocketGetBroadcastResponder)> {
40614        if let DatagramSocketRequest::GetBroadcast { responder } = self {
40615            Some((responder))
40616        } else {
40617            None
40618        }
40619    }
40620
40621    #[allow(irrefutable_let_patterns)]
40622    pub fn into_set_send_buffer(self) -> Option<(u64, DatagramSocketSetSendBufferResponder)> {
40623        if let DatagramSocketRequest::SetSendBuffer { value_bytes, responder } = self {
40624            Some((value_bytes, responder))
40625        } else {
40626            None
40627        }
40628    }
40629
40630    #[allow(irrefutable_let_patterns)]
40631    pub fn into_get_send_buffer(self) -> Option<(DatagramSocketGetSendBufferResponder)> {
40632        if let DatagramSocketRequest::GetSendBuffer { responder } = self {
40633            Some((responder))
40634        } else {
40635            None
40636        }
40637    }
40638
40639    #[allow(irrefutable_let_patterns)]
40640    pub fn into_set_receive_buffer(self) -> Option<(u64, DatagramSocketSetReceiveBufferResponder)> {
40641        if let DatagramSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
40642            Some((value_bytes, responder))
40643        } else {
40644            None
40645        }
40646    }
40647
40648    #[allow(irrefutable_let_patterns)]
40649    pub fn into_get_receive_buffer(self) -> Option<(DatagramSocketGetReceiveBufferResponder)> {
40650        if let DatagramSocketRequest::GetReceiveBuffer { responder } = self {
40651            Some((responder))
40652        } else {
40653            None
40654        }
40655    }
40656
40657    #[allow(irrefutable_let_patterns)]
40658    pub fn into_set_keep_alive(self) -> Option<(bool, DatagramSocketSetKeepAliveResponder)> {
40659        if let DatagramSocketRequest::SetKeepAlive { value, responder } = self {
40660            Some((value, responder))
40661        } else {
40662            None
40663        }
40664    }
40665
40666    #[allow(irrefutable_let_patterns)]
40667    pub fn into_get_keep_alive(self) -> Option<(DatagramSocketGetKeepAliveResponder)> {
40668        if let DatagramSocketRequest::GetKeepAlive { responder } = self {
40669            Some((responder))
40670        } else {
40671            None
40672        }
40673    }
40674
40675    #[allow(irrefutable_let_patterns)]
40676    pub fn into_set_out_of_band_inline(
40677        self,
40678    ) -> Option<(bool, DatagramSocketSetOutOfBandInlineResponder)> {
40679        if let DatagramSocketRequest::SetOutOfBandInline { value, responder } = self {
40680            Some((value, responder))
40681        } else {
40682            None
40683        }
40684    }
40685
40686    #[allow(irrefutable_let_patterns)]
40687    pub fn into_get_out_of_band_inline(
40688        self,
40689    ) -> Option<(DatagramSocketGetOutOfBandInlineResponder)> {
40690        if let DatagramSocketRequest::GetOutOfBandInline { responder } = self {
40691            Some((responder))
40692        } else {
40693            None
40694        }
40695    }
40696
40697    #[allow(irrefutable_let_patterns)]
40698    pub fn into_set_no_check(self) -> Option<(bool, DatagramSocketSetNoCheckResponder)> {
40699        if let DatagramSocketRequest::SetNoCheck { value, responder } = self {
40700            Some((value, responder))
40701        } else {
40702            None
40703        }
40704    }
40705
40706    #[allow(irrefutable_let_patterns)]
40707    pub fn into_get_no_check(self) -> Option<(DatagramSocketGetNoCheckResponder)> {
40708        if let DatagramSocketRequest::GetNoCheck { responder } = self {
40709            Some((responder))
40710        } else {
40711            None
40712        }
40713    }
40714
40715    #[allow(irrefutable_let_patterns)]
40716    pub fn into_set_linger(self) -> Option<(bool, u32, DatagramSocketSetLingerResponder)> {
40717        if let DatagramSocketRequest::SetLinger { linger, length_secs, responder } = self {
40718            Some((linger, length_secs, responder))
40719        } else {
40720            None
40721        }
40722    }
40723
40724    #[allow(irrefutable_let_patterns)]
40725    pub fn into_get_linger(self) -> Option<(DatagramSocketGetLingerResponder)> {
40726        if let DatagramSocketRequest::GetLinger { responder } = self {
40727            Some((responder))
40728        } else {
40729            None
40730        }
40731    }
40732
40733    #[allow(irrefutable_let_patterns)]
40734    pub fn into_set_reuse_port(self) -> Option<(bool, DatagramSocketSetReusePortResponder)> {
40735        if let DatagramSocketRequest::SetReusePort { value, responder } = self {
40736            Some((value, responder))
40737        } else {
40738            None
40739        }
40740    }
40741
40742    #[allow(irrefutable_let_patterns)]
40743    pub fn into_get_reuse_port(self) -> Option<(DatagramSocketGetReusePortResponder)> {
40744        if let DatagramSocketRequest::GetReusePort { responder } = self {
40745            Some((responder))
40746        } else {
40747            None
40748        }
40749    }
40750
40751    #[allow(irrefutable_let_patterns)]
40752    pub fn into_get_accept_conn(self) -> Option<(DatagramSocketGetAcceptConnResponder)> {
40753        if let DatagramSocketRequest::GetAcceptConn { responder } = self {
40754            Some((responder))
40755        } else {
40756            None
40757        }
40758    }
40759
40760    #[allow(irrefutable_let_patterns)]
40761    pub fn into_set_bind_to_device(
40762        self,
40763    ) -> Option<(String, DatagramSocketSetBindToDeviceResponder)> {
40764        if let DatagramSocketRequest::SetBindToDevice { value, responder } = self {
40765            Some((value, responder))
40766        } else {
40767            None
40768        }
40769    }
40770
40771    #[allow(irrefutable_let_patterns)]
40772    pub fn into_get_bind_to_device(self) -> Option<(DatagramSocketGetBindToDeviceResponder)> {
40773        if let DatagramSocketRequest::GetBindToDevice { responder } = self {
40774            Some((responder))
40775        } else {
40776            None
40777        }
40778    }
40779
40780    #[allow(irrefutable_let_patterns)]
40781    pub fn into_set_bind_to_interface_index(
40782        self,
40783    ) -> Option<(u64, DatagramSocketSetBindToInterfaceIndexResponder)> {
40784        if let DatagramSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
40785            Some((value, responder))
40786        } else {
40787            None
40788        }
40789    }
40790
40791    #[allow(irrefutable_let_patterns)]
40792    pub fn into_get_bind_to_interface_index(
40793        self,
40794    ) -> Option<(DatagramSocketGetBindToInterfaceIndexResponder)> {
40795        if let DatagramSocketRequest::GetBindToInterfaceIndex { responder } = self {
40796            Some((responder))
40797        } else {
40798            None
40799        }
40800    }
40801
40802    #[allow(irrefutable_let_patterns)]
40803    pub fn into_set_timestamp(
40804        self,
40805    ) -> Option<(TimestampOption, DatagramSocketSetTimestampResponder)> {
40806        if let DatagramSocketRequest::SetTimestamp { value, responder } = self {
40807            Some((value, responder))
40808        } else {
40809            None
40810        }
40811    }
40812
40813    #[allow(irrefutable_let_patterns)]
40814    pub fn into_get_timestamp(self) -> Option<(DatagramSocketGetTimestampResponder)> {
40815        if let DatagramSocketRequest::GetTimestamp { responder } = self {
40816            Some((responder))
40817        } else {
40818            None
40819        }
40820    }
40821
40822    #[allow(irrefutable_let_patterns)]
40823    pub fn into_set_mark(
40824        self,
40825    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, DatagramSocketSetMarkResponder)>
40826    {
40827        if let DatagramSocketRequest::SetMark { domain, mark, responder } = self {
40828            Some((domain, mark, responder))
40829        } else {
40830            None
40831        }
40832    }
40833
40834    #[allow(irrefutable_let_patterns)]
40835    pub fn into_get_mark(
40836        self,
40837    ) -> Option<(fidl_fuchsia_net::MarkDomain, DatagramSocketGetMarkResponder)> {
40838        if let DatagramSocketRequest::GetMark { domain, responder } = self {
40839            Some((domain, responder))
40840        } else {
40841            None
40842        }
40843    }
40844
40845    #[allow(irrefutable_let_patterns)]
40846    pub fn into_get_cookie(self) -> Option<(DatagramSocketGetCookieResponder)> {
40847        if let DatagramSocketRequest::GetCookie { responder } = self {
40848            Some((responder))
40849        } else {
40850            None
40851        }
40852    }
40853
40854    #[allow(irrefutable_let_patterns)]
40855    pub fn into_bind(
40856        self,
40857    ) -> Option<(fidl_fuchsia_net::SocketAddress, DatagramSocketBindResponder)> {
40858        if let DatagramSocketRequest::Bind { addr, responder } = self {
40859            Some((addr, responder))
40860        } else {
40861            None
40862        }
40863    }
40864
40865    #[allow(irrefutable_let_patterns)]
40866    pub fn into_connect(
40867        self,
40868    ) -> Option<(fidl_fuchsia_net::SocketAddress, DatagramSocketConnectResponder)> {
40869        if let DatagramSocketRequest::Connect { addr, responder } = self {
40870            Some((addr, responder))
40871        } else {
40872            None
40873        }
40874    }
40875
40876    #[allow(irrefutable_let_patterns)]
40877    pub fn into_disconnect(self) -> Option<(DatagramSocketDisconnectResponder)> {
40878        if let DatagramSocketRequest::Disconnect { responder } = self {
40879            Some((responder))
40880        } else {
40881            None
40882        }
40883    }
40884
40885    #[allow(irrefutable_let_patterns)]
40886    pub fn into_get_sock_name(self) -> Option<(DatagramSocketGetSockNameResponder)> {
40887        if let DatagramSocketRequest::GetSockName { responder } = self {
40888            Some((responder))
40889        } else {
40890            None
40891        }
40892    }
40893
40894    #[allow(irrefutable_let_patterns)]
40895    pub fn into_get_peer_name(self) -> Option<(DatagramSocketGetPeerNameResponder)> {
40896        if let DatagramSocketRequest::GetPeerName { responder } = self {
40897            Some((responder))
40898        } else {
40899            None
40900        }
40901    }
40902
40903    #[allow(irrefutable_let_patterns)]
40904    pub fn into_shutdown(self) -> Option<(ShutdownMode, DatagramSocketShutdownResponder)> {
40905        if let DatagramSocketRequest::Shutdown { mode, responder } = self {
40906            Some((mode, responder))
40907        } else {
40908            None
40909        }
40910    }
40911
40912    #[allow(irrefutable_let_patterns)]
40913    pub fn into_set_ip_type_of_service(
40914        self,
40915    ) -> Option<(u8, DatagramSocketSetIpTypeOfServiceResponder)> {
40916        if let DatagramSocketRequest::SetIpTypeOfService { value, responder } = self {
40917            Some((value, responder))
40918        } else {
40919            None
40920        }
40921    }
40922
40923    #[allow(irrefutable_let_patterns)]
40924    pub fn into_get_ip_type_of_service(
40925        self,
40926    ) -> Option<(DatagramSocketGetIpTypeOfServiceResponder)> {
40927        if let DatagramSocketRequest::GetIpTypeOfService { responder } = self {
40928            Some((responder))
40929        } else {
40930            None
40931        }
40932    }
40933
40934    #[allow(irrefutable_let_patterns)]
40935    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, DatagramSocketSetIpTtlResponder)> {
40936        if let DatagramSocketRequest::SetIpTtl { value, responder } = self {
40937            Some((value, responder))
40938        } else {
40939            None
40940        }
40941    }
40942
40943    #[allow(irrefutable_let_patterns)]
40944    pub fn into_get_ip_ttl(self) -> Option<(DatagramSocketGetIpTtlResponder)> {
40945        if let DatagramSocketRequest::GetIpTtl { responder } = self {
40946            Some((responder))
40947        } else {
40948            None
40949        }
40950    }
40951
40952    #[allow(irrefutable_let_patterns)]
40953    pub fn into_set_ip_packet_info(self) -> Option<(bool, DatagramSocketSetIpPacketInfoResponder)> {
40954        if let DatagramSocketRequest::SetIpPacketInfo { value, responder } = self {
40955            Some((value, responder))
40956        } else {
40957            None
40958        }
40959    }
40960
40961    #[allow(irrefutable_let_patterns)]
40962    pub fn into_get_ip_packet_info(self) -> Option<(DatagramSocketGetIpPacketInfoResponder)> {
40963        if let DatagramSocketRequest::GetIpPacketInfo { responder } = self {
40964            Some((responder))
40965        } else {
40966            None
40967        }
40968    }
40969
40970    #[allow(irrefutable_let_patterns)]
40971    pub fn into_set_ip_receive_type_of_service(
40972        self,
40973    ) -> Option<(bool, DatagramSocketSetIpReceiveTypeOfServiceResponder)> {
40974        if let DatagramSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
40975            Some((value, responder))
40976        } else {
40977            None
40978        }
40979    }
40980
40981    #[allow(irrefutable_let_patterns)]
40982    pub fn into_get_ip_receive_type_of_service(
40983        self,
40984    ) -> Option<(DatagramSocketGetIpReceiveTypeOfServiceResponder)> {
40985        if let DatagramSocketRequest::GetIpReceiveTypeOfService { responder } = self {
40986            Some((responder))
40987        } else {
40988            None
40989        }
40990    }
40991
40992    #[allow(irrefutable_let_patterns)]
40993    pub fn into_set_ip_receive_ttl(self) -> Option<(bool, DatagramSocketSetIpReceiveTtlResponder)> {
40994        if let DatagramSocketRequest::SetIpReceiveTtl { value, responder } = self {
40995            Some((value, responder))
40996        } else {
40997            None
40998        }
40999    }
41000
41001    #[allow(irrefutable_let_patterns)]
41002    pub fn into_get_ip_receive_ttl(self) -> Option<(DatagramSocketGetIpReceiveTtlResponder)> {
41003        if let DatagramSocketRequest::GetIpReceiveTtl { responder } = self {
41004            Some((responder))
41005        } else {
41006            None
41007        }
41008    }
41009
41010    #[allow(irrefutable_let_patterns)]
41011    pub fn into_set_ip_multicast_interface(
41012        self,
41013    ) -> Option<(u64, fidl_fuchsia_net::Ipv4Address, DatagramSocketSetIpMulticastInterfaceResponder)>
41014    {
41015        if let DatagramSocketRequest::SetIpMulticastInterface { iface, address, responder } = self {
41016            Some((iface, address, responder))
41017        } else {
41018            None
41019        }
41020    }
41021
41022    #[allow(irrefutable_let_patterns)]
41023    pub fn into_get_ip_multicast_interface(
41024        self,
41025    ) -> Option<(DatagramSocketGetIpMulticastInterfaceResponder)> {
41026        if let DatagramSocketRequest::GetIpMulticastInterface { responder } = self {
41027            Some((responder))
41028        } else {
41029            None
41030        }
41031    }
41032
41033    #[allow(irrefutable_let_patterns)]
41034    pub fn into_set_ip_multicast_ttl(
41035        self,
41036    ) -> Option<(OptionalUint8, DatagramSocketSetIpMulticastTtlResponder)> {
41037        if let DatagramSocketRequest::SetIpMulticastTtl { value, responder } = self {
41038            Some((value, responder))
41039        } else {
41040            None
41041        }
41042    }
41043
41044    #[allow(irrefutable_let_patterns)]
41045    pub fn into_get_ip_multicast_ttl(self) -> Option<(DatagramSocketGetIpMulticastTtlResponder)> {
41046        if let DatagramSocketRequest::GetIpMulticastTtl { responder } = self {
41047            Some((responder))
41048        } else {
41049            None
41050        }
41051    }
41052
41053    #[allow(irrefutable_let_patterns)]
41054    pub fn into_set_ip_multicast_loopback(
41055        self,
41056    ) -> Option<(bool, DatagramSocketSetIpMulticastLoopbackResponder)> {
41057        if let DatagramSocketRequest::SetIpMulticastLoopback { value, responder } = self {
41058            Some((value, responder))
41059        } else {
41060            None
41061        }
41062    }
41063
41064    #[allow(irrefutable_let_patterns)]
41065    pub fn into_get_ip_multicast_loopback(
41066        self,
41067    ) -> Option<(DatagramSocketGetIpMulticastLoopbackResponder)> {
41068        if let DatagramSocketRequest::GetIpMulticastLoopback { responder } = self {
41069            Some((responder))
41070        } else {
41071            None
41072        }
41073    }
41074
41075    #[allow(irrefutable_let_patterns)]
41076    pub fn into_add_ip_membership(
41077        self,
41078    ) -> Option<(IpMulticastMembership, DatagramSocketAddIpMembershipResponder)> {
41079        if let DatagramSocketRequest::AddIpMembership { membership, responder } = self {
41080            Some((membership, responder))
41081        } else {
41082            None
41083        }
41084    }
41085
41086    #[allow(irrefutable_let_patterns)]
41087    pub fn into_drop_ip_membership(
41088        self,
41089    ) -> Option<(IpMulticastMembership, DatagramSocketDropIpMembershipResponder)> {
41090        if let DatagramSocketRequest::DropIpMembership { membership, responder } = self {
41091            Some((membership, responder))
41092        } else {
41093            None
41094        }
41095    }
41096
41097    #[allow(irrefutable_let_patterns)]
41098    pub fn into_set_ip_transparent(
41099        self,
41100    ) -> Option<(bool, DatagramSocketSetIpTransparentResponder)> {
41101        if let DatagramSocketRequest::SetIpTransparent { value, responder } = self {
41102            Some((value, responder))
41103        } else {
41104            None
41105        }
41106    }
41107
41108    #[allow(irrefutable_let_patterns)]
41109    pub fn into_get_ip_transparent(self) -> Option<(DatagramSocketGetIpTransparentResponder)> {
41110        if let DatagramSocketRequest::GetIpTransparent { responder } = self {
41111            Some((responder))
41112        } else {
41113            None
41114        }
41115    }
41116
41117    #[allow(irrefutable_let_patterns)]
41118    pub fn into_set_ip_receive_original_destination_address(
41119        self,
41120    ) -> Option<(bool, DatagramSocketSetIpReceiveOriginalDestinationAddressResponder)> {
41121        if let DatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { value, responder } =
41122            self
41123        {
41124            Some((value, responder))
41125        } else {
41126            None
41127        }
41128    }
41129
41130    #[allow(irrefutable_let_patterns)]
41131    pub fn into_get_ip_receive_original_destination_address(
41132        self,
41133    ) -> Option<(DatagramSocketGetIpReceiveOriginalDestinationAddressResponder)> {
41134        if let DatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } = self {
41135            Some((responder))
41136        } else {
41137            None
41138        }
41139    }
41140
41141    #[allow(irrefutable_let_patterns)]
41142    pub fn into_add_ipv6_membership(
41143        self,
41144    ) -> Option<(Ipv6MulticastMembership, DatagramSocketAddIpv6MembershipResponder)> {
41145        if let DatagramSocketRequest::AddIpv6Membership { membership, responder } = self {
41146            Some((membership, responder))
41147        } else {
41148            None
41149        }
41150    }
41151
41152    #[allow(irrefutable_let_patterns)]
41153    pub fn into_drop_ipv6_membership(
41154        self,
41155    ) -> Option<(Ipv6MulticastMembership, DatagramSocketDropIpv6MembershipResponder)> {
41156        if let DatagramSocketRequest::DropIpv6Membership { membership, responder } = self {
41157            Some((membership, responder))
41158        } else {
41159            None
41160        }
41161    }
41162
41163    #[allow(irrefutable_let_patterns)]
41164    pub fn into_set_ipv6_multicast_interface(
41165        self,
41166    ) -> Option<(u64, DatagramSocketSetIpv6MulticastInterfaceResponder)> {
41167        if let DatagramSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
41168            Some((value, responder))
41169        } else {
41170            None
41171        }
41172    }
41173
41174    #[allow(irrefutable_let_patterns)]
41175    pub fn into_get_ipv6_multicast_interface(
41176        self,
41177    ) -> Option<(DatagramSocketGetIpv6MulticastInterfaceResponder)> {
41178        if let DatagramSocketRequest::GetIpv6MulticastInterface { responder } = self {
41179            Some((responder))
41180        } else {
41181            None
41182        }
41183    }
41184
41185    #[allow(irrefutable_let_patterns)]
41186    pub fn into_set_ipv6_unicast_hops(
41187        self,
41188    ) -> Option<(OptionalUint8, DatagramSocketSetIpv6UnicastHopsResponder)> {
41189        if let DatagramSocketRequest::SetIpv6UnicastHops { value, responder } = self {
41190            Some((value, responder))
41191        } else {
41192            None
41193        }
41194    }
41195
41196    #[allow(irrefutable_let_patterns)]
41197    pub fn into_get_ipv6_unicast_hops(self) -> Option<(DatagramSocketGetIpv6UnicastHopsResponder)> {
41198        if let DatagramSocketRequest::GetIpv6UnicastHops { responder } = self {
41199            Some((responder))
41200        } else {
41201            None
41202        }
41203    }
41204
41205    #[allow(irrefutable_let_patterns)]
41206    pub fn into_set_ipv6_receive_hop_limit(
41207        self,
41208    ) -> Option<(bool, DatagramSocketSetIpv6ReceiveHopLimitResponder)> {
41209        if let DatagramSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
41210            Some((value, responder))
41211        } else {
41212            None
41213        }
41214    }
41215
41216    #[allow(irrefutable_let_patterns)]
41217    pub fn into_get_ipv6_receive_hop_limit(
41218        self,
41219    ) -> Option<(DatagramSocketGetIpv6ReceiveHopLimitResponder)> {
41220        if let DatagramSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
41221            Some((responder))
41222        } else {
41223            None
41224        }
41225    }
41226
41227    #[allow(irrefutable_let_patterns)]
41228    pub fn into_set_ipv6_multicast_hops(
41229        self,
41230    ) -> Option<(OptionalUint8, DatagramSocketSetIpv6MulticastHopsResponder)> {
41231        if let DatagramSocketRequest::SetIpv6MulticastHops { value, responder } = self {
41232            Some((value, responder))
41233        } else {
41234            None
41235        }
41236    }
41237
41238    #[allow(irrefutable_let_patterns)]
41239    pub fn into_get_ipv6_multicast_hops(
41240        self,
41241    ) -> Option<(DatagramSocketGetIpv6MulticastHopsResponder)> {
41242        if let DatagramSocketRequest::GetIpv6MulticastHops { responder } = self {
41243            Some((responder))
41244        } else {
41245            None
41246        }
41247    }
41248
41249    #[allow(irrefutable_let_patterns)]
41250    pub fn into_set_ipv6_multicast_loopback(
41251        self,
41252    ) -> Option<(bool, DatagramSocketSetIpv6MulticastLoopbackResponder)> {
41253        if let DatagramSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
41254            Some((value, responder))
41255        } else {
41256            None
41257        }
41258    }
41259
41260    #[allow(irrefutable_let_patterns)]
41261    pub fn into_get_ipv6_multicast_loopback(
41262        self,
41263    ) -> Option<(DatagramSocketGetIpv6MulticastLoopbackResponder)> {
41264        if let DatagramSocketRequest::GetIpv6MulticastLoopback { responder } = self {
41265            Some((responder))
41266        } else {
41267            None
41268        }
41269    }
41270
41271    #[allow(irrefutable_let_patterns)]
41272    pub fn into_set_ipv6_only(self) -> Option<(bool, DatagramSocketSetIpv6OnlyResponder)> {
41273        if let DatagramSocketRequest::SetIpv6Only { value, responder } = self {
41274            Some((value, responder))
41275        } else {
41276            None
41277        }
41278    }
41279
41280    #[allow(irrefutable_let_patterns)]
41281    pub fn into_get_ipv6_only(self) -> Option<(DatagramSocketGetIpv6OnlyResponder)> {
41282        if let DatagramSocketRequest::GetIpv6Only { responder } = self {
41283            Some((responder))
41284        } else {
41285            None
41286        }
41287    }
41288
41289    #[allow(irrefutable_let_patterns)]
41290    pub fn into_set_ipv6_receive_traffic_class(
41291        self,
41292    ) -> Option<(bool, DatagramSocketSetIpv6ReceiveTrafficClassResponder)> {
41293        if let DatagramSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
41294            Some((value, responder))
41295        } else {
41296            None
41297        }
41298    }
41299
41300    #[allow(irrefutable_let_patterns)]
41301    pub fn into_get_ipv6_receive_traffic_class(
41302        self,
41303    ) -> Option<(DatagramSocketGetIpv6ReceiveTrafficClassResponder)> {
41304        if let DatagramSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
41305            Some((responder))
41306        } else {
41307            None
41308        }
41309    }
41310
41311    #[allow(irrefutable_let_patterns)]
41312    pub fn into_set_ipv6_traffic_class(
41313        self,
41314    ) -> Option<(OptionalUint8, DatagramSocketSetIpv6TrafficClassResponder)> {
41315        if let DatagramSocketRequest::SetIpv6TrafficClass { value, responder } = self {
41316            Some((value, responder))
41317        } else {
41318            None
41319        }
41320    }
41321
41322    #[allow(irrefutable_let_patterns)]
41323    pub fn into_get_ipv6_traffic_class(
41324        self,
41325    ) -> Option<(DatagramSocketGetIpv6TrafficClassResponder)> {
41326        if let DatagramSocketRequest::GetIpv6TrafficClass { responder } = self {
41327            Some((responder))
41328        } else {
41329            None
41330        }
41331    }
41332
41333    #[allow(irrefutable_let_patterns)]
41334    pub fn into_set_ipv6_receive_packet_info(
41335        self,
41336    ) -> Option<(bool, DatagramSocketSetIpv6ReceivePacketInfoResponder)> {
41337        if let DatagramSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
41338            Some((value, responder))
41339        } else {
41340            None
41341        }
41342    }
41343
41344    #[allow(irrefutable_let_patterns)]
41345    pub fn into_get_ipv6_receive_packet_info(
41346        self,
41347    ) -> Option<(DatagramSocketGetIpv6ReceivePacketInfoResponder)> {
41348        if let DatagramSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
41349            Some((responder))
41350        } else {
41351            None
41352        }
41353    }
41354
41355    #[allow(irrefutable_let_patterns)]
41356    pub fn into_get_original_destination(
41357        self,
41358    ) -> Option<(DatagramSocketGetOriginalDestinationResponder)> {
41359        if let DatagramSocketRequest::GetOriginalDestination { responder } = self {
41360            Some((responder))
41361        } else {
41362            None
41363        }
41364    }
41365
41366    #[allow(irrefutable_let_patterns)]
41367    pub fn into_get_info(self) -> Option<(DatagramSocketGetInfoResponder)> {
41368        if let DatagramSocketRequest::GetInfo { responder } = self {
41369            Some((responder))
41370        } else {
41371            None
41372        }
41373    }
41374
41375    #[allow(irrefutable_let_patterns)]
41376    pub fn into_describe(self) -> Option<(DatagramSocketDescribeResponder)> {
41377        if let DatagramSocketRequest::Describe { responder } = self {
41378            Some((responder))
41379        } else {
41380            None
41381        }
41382    }
41383
41384    #[allow(irrefutable_let_patterns)]
41385    pub fn into_send_msg_preflight(
41386        self,
41387    ) -> Option<(DatagramSocketSendMsgPreflightRequest, DatagramSocketSendMsgPreflightResponder)>
41388    {
41389        if let DatagramSocketRequest::SendMsgPreflight { payload, responder } = self {
41390            Some((payload, responder))
41391        } else {
41392            None
41393        }
41394    }
41395
41396    #[allow(irrefutable_let_patterns)]
41397    pub fn into_recv_msg_postflight(self) -> Option<(DatagramSocketRecvMsgPostflightResponder)> {
41398        if let DatagramSocketRequest::RecvMsgPostflight { responder } = self {
41399            Some((responder))
41400        } else {
41401            None
41402        }
41403    }
41404
41405    /// Name of the method defined in FIDL
41406    pub fn method_name(&self) -> &'static str {
41407        match *self {
41408            DatagramSocketRequest::Clone { .. } => "clone",
41409            DatagramSocketRequest::Close { .. } => "close",
41410            DatagramSocketRequest::Query { .. } => "query",
41411            DatagramSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
41412            DatagramSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
41413            DatagramSocketRequest::GetError { .. } => "get_error",
41414            DatagramSocketRequest::SetBroadcast { .. } => "set_broadcast",
41415            DatagramSocketRequest::GetBroadcast { .. } => "get_broadcast",
41416            DatagramSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
41417            DatagramSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
41418            DatagramSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
41419            DatagramSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
41420            DatagramSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
41421            DatagramSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
41422            DatagramSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
41423            DatagramSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
41424            DatagramSocketRequest::SetNoCheck { .. } => "set_no_check",
41425            DatagramSocketRequest::GetNoCheck { .. } => "get_no_check",
41426            DatagramSocketRequest::SetLinger { .. } => "set_linger",
41427            DatagramSocketRequest::GetLinger { .. } => "get_linger",
41428            DatagramSocketRequest::SetReusePort { .. } => "set_reuse_port",
41429            DatagramSocketRequest::GetReusePort { .. } => "get_reuse_port",
41430            DatagramSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
41431            DatagramSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
41432            DatagramSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
41433            DatagramSocketRequest::SetBindToInterfaceIndex { .. } => "set_bind_to_interface_index",
41434            DatagramSocketRequest::GetBindToInterfaceIndex { .. } => "get_bind_to_interface_index",
41435            DatagramSocketRequest::SetTimestamp { .. } => "set_timestamp",
41436            DatagramSocketRequest::GetTimestamp { .. } => "get_timestamp",
41437            DatagramSocketRequest::SetMark { .. } => "set_mark",
41438            DatagramSocketRequest::GetMark { .. } => "get_mark",
41439            DatagramSocketRequest::GetCookie { .. } => "get_cookie",
41440            DatagramSocketRequest::Bind { .. } => "bind",
41441            DatagramSocketRequest::Connect { .. } => "connect",
41442            DatagramSocketRequest::Disconnect { .. } => "disconnect",
41443            DatagramSocketRequest::GetSockName { .. } => "get_sock_name",
41444            DatagramSocketRequest::GetPeerName { .. } => "get_peer_name",
41445            DatagramSocketRequest::Shutdown { .. } => "shutdown",
41446            DatagramSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
41447            DatagramSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
41448            DatagramSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
41449            DatagramSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
41450            DatagramSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
41451            DatagramSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
41452            DatagramSocketRequest::SetIpReceiveTypeOfService { .. } => {
41453                "set_ip_receive_type_of_service"
41454            }
41455            DatagramSocketRequest::GetIpReceiveTypeOfService { .. } => {
41456                "get_ip_receive_type_of_service"
41457            }
41458            DatagramSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
41459            DatagramSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
41460            DatagramSocketRequest::SetIpMulticastInterface { .. } => "set_ip_multicast_interface",
41461            DatagramSocketRequest::GetIpMulticastInterface { .. } => "get_ip_multicast_interface",
41462            DatagramSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
41463            DatagramSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
41464            DatagramSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
41465            DatagramSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
41466            DatagramSocketRequest::AddIpMembership { .. } => "add_ip_membership",
41467            DatagramSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
41468            DatagramSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
41469            DatagramSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
41470            DatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
41471                "set_ip_receive_original_destination_address"
41472            }
41473            DatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
41474                "get_ip_receive_original_destination_address"
41475            }
41476            DatagramSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
41477            DatagramSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
41478            DatagramSocketRequest::SetIpv6MulticastInterface { .. } => {
41479                "set_ipv6_multicast_interface"
41480            }
41481            DatagramSocketRequest::GetIpv6MulticastInterface { .. } => {
41482                "get_ipv6_multicast_interface"
41483            }
41484            DatagramSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
41485            DatagramSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
41486            DatagramSocketRequest::SetIpv6ReceiveHopLimit { .. } => "set_ipv6_receive_hop_limit",
41487            DatagramSocketRequest::GetIpv6ReceiveHopLimit { .. } => "get_ipv6_receive_hop_limit",
41488            DatagramSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
41489            DatagramSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
41490            DatagramSocketRequest::SetIpv6MulticastLoopback { .. } => "set_ipv6_multicast_loopback",
41491            DatagramSocketRequest::GetIpv6MulticastLoopback { .. } => "get_ipv6_multicast_loopback",
41492            DatagramSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
41493            DatagramSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
41494            DatagramSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
41495                "set_ipv6_receive_traffic_class"
41496            }
41497            DatagramSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
41498                "get_ipv6_receive_traffic_class"
41499            }
41500            DatagramSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
41501            DatagramSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
41502            DatagramSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
41503                "set_ipv6_receive_packet_info"
41504            }
41505            DatagramSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
41506                "get_ipv6_receive_packet_info"
41507            }
41508            DatagramSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
41509            DatagramSocketRequest::GetInfo { .. } => "get_info",
41510            DatagramSocketRequest::Describe { .. } => "describe",
41511            DatagramSocketRequest::SendMsgPreflight { .. } => "send_msg_preflight",
41512            DatagramSocketRequest::RecvMsgPostflight { .. } => "recv_msg_postflight",
41513        }
41514    }
41515}
41516
41517#[derive(Debug, Clone)]
41518pub struct DatagramSocketControlHandle {
41519    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
41520}
41521
41522impl fidl::endpoints::ControlHandle for DatagramSocketControlHandle {
41523    fn shutdown(&self) {
41524        self.inner.shutdown()
41525    }
41526    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
41527        self.inner.shutdown_with_epitaph(status)
41528    }
41529
41530    fn is_closed(&self) -> bool {
41531        self.inner.channel().is_closed()
41532    }
41533    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
41534        self.inner.channel().on_closed()
41535    }
41536
41537    #[cfg(target_os = "fuchsia")]
41538    fn signal_peer(
41539        &self,
41540        clear_mask: zx::Signals,
41541        set_mask: zx::Signals,
41542    ) -> Result<(), zx_status::Status> {
41543        use fidl::Peered;
41544        self.inner.channel().signal_peer(clear_mask, set_mask)
41545    }
41546}
41547
41548impl DatagramSocketControlHandle {}
41549
41550#[must_use = "FIDL methods require a response to be sent"]
41551#[derive(Debug)]
41552pub struct DatagramSocketCloseResponder {
41553    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41554    tx_id: u32,
41555}
41556
41557/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41558/// if the responder is dropped without sending a response, so that the client
41559/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41560impl std::ops::Drop for DatagramSocketCloseResponder {
41561    fn drop(&mut self) {
41562        self.control_handle.shutdown();
41563        // Safety: drops once, never accessed again
41564        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41565    }
41566}
41567
41568impl fidl::endpoints::Responder for DatagramSocketCloseResponder {
41569    type ControlHandle = DatagramSocketControlHandle;
41570
41571    fn control_handle(&self) -> &DatagramSocketControlHandle {
41572        &self.control_handle
41573    }
41574
41575    fn drop_without_shutdown(mut self) {
41576        // Safety: drops once, never accessed again due to mem::forget
41577        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41578        // Prevent Drop from running (which would shut down the channel)
41579        std::mem::forget(self);
41580    }
41581}
41582
41583impl DatagramSocketCloseResponder {
41584    /// Sends a response to the FIDL transaction.
41585    ///
41586    /// Sets the channel to shutdown if an error occurs.
41587    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
41588        let _result = self.send_raw(result);
41589        if _result.is_err() {
41590            self.control_handle.shutdown();
41591        }
41592        self.drop_without_shutdown();
41593        _result
41594    }
41595
41596    /// Similar to "send" but does not shutdown the channel if an error occurs.
41597    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
41598        let _result = self.send_raw(result);
41599        self.drop_without_shutdown();
41600        _result
41601    }
41602
41603    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
41604        self.control_handle
41605            .inner
41606            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
41607                result,
41608                self.tx_id,
41609                0x5ac5d459ad7f657e,
41610                fidl::encoding::DynamicFlags::empty(),
41611            )
41612    }
41613}
41614
41615#[must_use = "FIDL methods require a response to be sent"]
41616#[derive(Debug)]
41617pub struct DatagramSocketQueryResponder {
41618    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41619    tx_id: u32,
41620}
41621
41622/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41623/// if the responder is dropped without sending a response, so that the client
41624/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41625impl std::ops::Drop for DatagramSocketQueryResponder {
41626    fn drop(&mut self) {
41627        self.control_handle.shutdown();
41628        // Safety: drops once, never accessed again
41629        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41630    }
41631}
41632
41633impl fidl::endpoints::Responder for DatagramSocketQueryResponder {
41634    type ControlHandle = DatagramSocketControlHandle;
41635
41636    fn control_handle(&self) -> &DatagramSocketControlHandle {
41637        &self.control_handle
41638    }
41639
41640    fn drop_without_shutdown(mut self) {
41641        // Safety: drops once, never accessed again due to mem::forget
41642        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41643        // Prevent Drop from running (which would shut down the channel)
41644        std::mem::forget(self);
41645    }
41646}
41647
41648impl DatagramSocketQueryResponder {
41649    /// Sends a response to the FIDL transaction.
41650    ///
41651    /// Sets the channel to shutdown if an error occurs.
41652    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
41653        let _result = self.send_raw(protocol);
41654        if _result.is_err() {
41655            self.control_handle.shutdown();
41656        }
41657        self.drop_without_shutdown();
41658        _result
41659    }
41660
41661    /// Similar to "send" but does not shutdown the channel if an error occurs.
41662    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
41663        let _result = self.send_raw(protocol);
41664        self.drop_without_shutdown();
41665        _result
41666    }
41667
41668    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
41669        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
41670            (protocol,),
41671            self.tx_id,
41672            0x2658edee9decfc06,
41673            fidl::encoding::DynamicFlags::empty(),
41674        )
41675    }
41676}
41677
41678#[must_use = "FIDL methods require a response to be sent"]
41679#[derive(Debug)]
41680pub struct DatagramSocketSetReuseAddressResponder {
41681    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41682    tx_id: u32,
41683}
41684
41685/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41686/// if the responder is dropped without sending a response, so that the client
41687/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41688impl std::ops::Drop for DatagramSocketSetReuseAddressResponder {
41689    fn drop(&mut self) {
41690        self.control_handle.shutdown();
41691        // Safety: drops once, never accessed again
41692        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41693    }
41694}
41695
41696impl fidl::endpoints::Responder for DatagramSocketSetReuseAddressResponder {
41697    type ControlHandle = DatagramSocketControlHandle;
41698
41699    fn control_handle(&self) -> &DatagramSocketControlHandle {
41700        &self.control_handle
41701    }
41702
41703    fn drop_without_shutdown(mut self) {
41704        // Safety: drops once, never accessed again due to mem::forget
41705        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41706        // Prevent Drop from running (which would shut down the channel)
41707        std::mem::forget(self);
41708    }
41709}
41710
41711impl DatagramSocketSetReuseAddressResponder {
41712    /// Sends a response to the FIDL transaction.
41713    ///
41714    /// Sets the channel to shutdown if an error occurs.
41715    pub fn send(
41716        self,
41717        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41718    ) -> Result<(), fidl::Error> {
41719        let _result = self.send_raw(result);
41720        if _result.is_err() {
41721            self.control_handle.shutdown();
41722        }
41723        self.drop_without_shutdown();
41724        _result
41725    }
41726
41727    /// Similar to "send" but does not shutdown the channel if an error occurs.
41728    pub fn send_no_shutdown_on_err(
41729        self,
41730        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41731    ) -> Result<(), fidl::Error> {
41732        let _result = self.send_raw(result);
41733        self.drop_without_shutdown();
41734        _result
41735    }
41736
41737    fn send_raw(
41738        &self,
41739        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41740    ) -> Result<(), fidl::Error> {
41741        self.control_handle.inner.send::<fidl::encoding::ResultType<
41742            fidl::encoding::EmptyStruct,
41743            fidl_fuchsia_posix::Errno,
41744        >>(
41745            result,
41746            self.tx_id,
41747            0x1fd74ee8b9a4a876,
41748            fidl::encoding::DynamicFlags::empty(),
41749        )
41750    }
41751}
41752
41753#[must_use = "FIDL methods require a response to be sent"]
41754#[derive(Debug)]
41755pub struct DatagramSocketGetReuseAddressResponder {
41756    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41757    tx_id: u32,
41758}
41759
41760/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41761/// if the responder is dropped without sending a response, so that the client
41762/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41763impl std::ops::Drop for DatagramSocketGetReuseAddressResponder {
41764    fn drop(&mut self) {
41765        self.control_handle.shutdown();
41766        // Safety: drops once, never accessed again
41767        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41768    }
41769}
41770
41771impl fidl::endpoints::Responder for DatagramSocketGetReuseAddressResponder {
41772    type ControlHandle = DatagramSocketControlHandle;
41773
41774    fn control_handle(&self) -> &DatagramSocketControlHandle {
41775        &self.control_handle
41776    }
41777
41778    fn drop_without_shutdown(mut self) {
41779        // Safety: drops once, never accessed again due to mem::forget
41780        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41781        // Prevent Drop from running (which would shut down the channel)
41782        std::mem::forget(self);
41783    }
41784}
41785
41786impl DatagramSocketGetReuseAddressResponder {
41787    /// Sends a response to the FIDL transaction.
41788    ///
41789    /// Sets the channel to shutdown if an error occurs.
41790    pub fn send(
41791        self,
41792        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
41793    ) -> Result<(), fidl::Error> {
41794        let _result = self.send_raw(result);
41795        if _result.is_err() {
41796            self.control_handle.shutdown();
41797        }
41798        self.drop_without_shutdown();
41799        _result
41800    }
41801
41802    /// Similar to "send" but does not shutdown the channel if an error occurs.
41803    pub fn send_no_shutdown_on_err(
41804        self,
41805        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
41806    ) -> Result<(), fidl::Error> {
41807        let _result = self.send_raw(result);
41808        self.drop_without_shutdown();
41809        _result
41810    }
41811
41812    fn send_raw(
41813        &self,
41814        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
41815    ) -> Result<(), fidl::Error> {
41816        self.control_handle.inner.send::<fidl::encoding::ResultType<
41817            BaseSocketGetReuseAddressResponse,
41818            fidl_fuchsia_posix::Errno,
41819        >>(
41820            result.map(|value| (value,)),
41821            self.tx_id,
41822            0x67b7206b8d1bc0a5,
41823            fidl::encoding::DynamicFlags::empty(),
41824        )
41825    }
41826}
41827
41828#[must_use = "FIDL methods require a response to be sent"]
41829#[derive(Debug)]
41830pub struct DatagramSocketGetErrorResponder {
41831    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41832    tx_id: u32,
41833}
41834
41835/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41836/// if the responder is dropped without sending a response, so that the client
41837/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41838impl std::ops::Drop for DatagramSocketGetErrorResponder {
41839    fn drop(&mut self) {
41840        self.control_handle.shutdown();
41841        // Safety: drops once, never accessed again
41842        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41843    }
41844}
41845
41846impl fidl::endpoints::Responder for DatagramSocketGetErrorResponder {
41847    type ControlHandle = DatagramSocketControlHandle;
41848
41849    fn control_handle(&self) -> &DatagramSocketControlHandle {
41850        &self.control_handle
41851    }
41852
41853    fn drop_without_shutdown(mut self) {
41854        // Safety: drops once, never accessed again due to mem::forget
41855        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41856        // Prevent Drop from running (which would shut down the channel)
41857        std::mem::forget(self);
41858    }
41859}
41860
41861impl DatagramSocketGetErrorResponder {
41862    /// Sends a response to the FIDL transaction.
41863    ///
41864    /// Sets the channel to shutdown if an error occurs.
41865    pub fn send(
41866        self,
41867        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41868    ) -> Result<(), fidl::Error> {
41869        let _result = self.send_raw(result);
41870        if _result.is_err() {
41871            self.control_handle.shutdown();
41872        }
41873        self.drop_without_shutdown();
41874        _result
41875    }
41876
41877    /// Similar to "send" but does not shutdown the channel if an error occurs.
41878    pub fn send_no_shutdown_on_err(
41879        self,
41880        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41881    ) -> Result<(), fidl::Error> {
41882        let _result = self.send_raw(result);
41883        self.drop_without_shutdown();
41884        _result
41885    }
41886
41887    fn send_raw(
41888        &self,
41889        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41890    ) -> Result<(), fidl::Error> {
41891        self.control_handle.inner.send::<fidl::encoding::ResultType<
41892            fidl::encoding::EmptyStruct,
41893            fidl_fuchsia_posix::Errno,
41894        >>(
41895            result,
41896            self.tx_id,
41897            0x5aad39b33e5f6ebb,
41898            fidl::encoding::DynamicFlags::empty(),
41899        )
41900    }
41901}
41902
41903#[must_use = "FIDL methods require a response to be sent"]
41904#[derive(Debug)]
41905pub struct DatagramSocketSetBroadcastResponder {
41906    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41907    tx_id: u32,
41908}
41909
41910/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41911/// if the responder is dropped without sending a response, so that the client
41912/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41913impl std::ops::Drop for DatagramSocketSetBroadcastResponder {
41914    fn drop(&mut self) {
41915        self.control_handle.shutdown();
41916        // Safety: drops once, never accessed again
41917        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41918    }
41919}
41920
41921impl fidl::endpoints::Responder for DatagramSocketSetBroadcastResponder {
41922    type ControlHandle = DatagramSocketControlHandle;
41923
41924    fn control_handle(&self) -> &DatagramSocketControlHandle {
41925        &self.control_handle
41926    }
41927
41928    fn drop_without_shutdown(mut self) {
41929        // Safety: drops once, never accessed again due to mem::forget
41930        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41931        // Prevent Drop from running (which would shut down the channel)
41932        std::mem::forget(self);
41933    }
41934}
41935
41936impl DatagramSocketSetBroadcastResponder {
41937    /// Sends a response to the FIDL transaction.
41938    ///
41939    /// Sets the channel to shutdown if an error occurs.
41940    pub fn send(
41941        self,
41942        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41943    ) -> Result<(), fidl::Error> {
41944        let _result = self.send_raw(result);
41945        if _result.is_err() {
41946            self.control_handle.shutdown();
41947        }
41948        self.drop_without_shutdown();
41949        _result
41950    }
41951
41952    /// Similar to "send" but does not shutdown the channel if an error occurs.
41953    pub fn send_no_shutdown_on_err(
41954        self,
41955        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41956    ) -> Result<(), fidl::Error> {
41957        let _result = self.send_raw(result);
41958        self.drop_without_shutdown();
41959        _result
41960    }
41961
41962    fn send_raw(
41963        &self,
41964        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41965    ) -> Result<(), fidl::Error> {
41966        self.control_handle.inner.send::<fidl::encoding::ResultType<
41967            fidl::encoding::EmptyStruct,
41968            fidl_fuchsia_posix::Errno,
41969        >>(
41970            result,
41971            self.tx_id,
41972            0x6023e081ce3cd947,
41973            fidl::encoding::DynamicFlags::empty(),
41974        )
41975    }
41976}
41977
41978#[must_use = "FIDL methods require a response to be sent"]
41979#[derive(Debug)]
41980pub struct DatagramSocketGetBroadcastResponder {
41981    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41982    tx_id: u32,
41983}
41984
41985/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41986/// if the responder is dropped without sending a response, so that the client
41987/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41988impl std::ops::Drop for DatagramSocketGetBroadcastResponder {
41989    fn drop(&mut self) {
41990        self.control_handle.shutdown();
41991        // Safety: drops once, never accessed again
41992        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41993    }
41994}
41995
41996impl fidl::endpoints::Responder for DatagramSocketGetBroadcastResponder {
41997    type ControlHandle = DatagramSocketControlHandle;
41998
41999    fn control_handle(&self) -> &DatagramSocketControlHandle {
42000        &self.control_handle
42001    }
42002
42003    fn drop_without_shutdown(mut self) {
42004        // Safety: drops once, never accessed again due to mem::forget
42005        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42006        // Prevent Drop from running (which would shut down the channel)
42007        std::mem::forget(self);
42008    }
42009}
42010
42011impl DatagramSocketGetBroadcastResponder {
42012    /// Sends a response to the FIDL transaction.
42013    ///
42014    /// Sets the channel to shutdown if an error occurs.
42015    pub fn send(
42016        self,
42017        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42018    ) -> Result<(), fidl::Error> {
42019        let _result = self.send_raw(result);
42020        if _result.is_err() {
42021            self.control_handle.shutdown();
42022        }
42023        self.drop_without_shutdown();
42024        _result
42025    }
42026
42027    /// Similar to "send" but does not shutdown the channel if an error occurs.
42028    pub fn send_no_shutdown_on_err(
42029        self,
42030        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42031    ) -> Result<(), fidl::Error> {
42032        let _result = self.send_raw(result);
42033        self.drop_without_shutdown();
42034        _result
42035    }
42036
42037    fn send_raw(
42038        &self,
42039        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42040    ) -> Result<(), fidl::Error> {
42041        self.control_handle.inner.send::<fidl::encoding::ResultType<
42042            BaseSocketGetBroadcastResponse,
42043            fidl_fuchsia_posix::Errno,
42044        >>(
42045            result.map(|value| (value,)),
42046            self.tx_id,
42047            0x68796fc556f9780d,
42048            fidl::encoding::DynamicFlags::empty(),
42049        )
42050    }
42051}
42052
42053#[must_use = "FIDL methods require a response to be sent"]
42054#[derive(Debug)]
42055pub struct DatagramSocketSetSendBufferResponder {
42056    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42057    tx_id: u32,
42058}
42059
42060/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42061/// if the responder is dropped without sending a response, so that the client
42062/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42063impl std::ops::Drop for DatagramSocketSetSendBufferResponder {
42064    fn drop(&mut self) {
42065        self.control_handle.shutdown();
42066        // Safety: drops once, never accessed again
42067        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42068    }
42069}
42070
42071impl fidl::endpoints::Responder for DatagramSocketSetSendBufferResponder {
42072    type ControlHandle = DatagramSocketControlHandle;
42073
42074    fn control_handle(&self) -> &DatagramSocketControlHandle {
42075        &self.control_handle
42076    }
42077
42078    fn drop_without_shutdown(mut self) {
42079        // Safety: drops once, never accessed again due to mem::forget
42080        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42081        // Prevent Drop from running (which would shut down the channel)
42082        std::mem::forget(self);
42083    }
42084}
42085
42086impl DatagramSocketSetSendBufferResponder {
42087    /// Sends a response to the FIDL transaction.
42088    ///
42089    /// Sets the channel to shutdown if an error occurs.
42090    pub fn send(
42091        self,
42092        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42093    ) -> Result<(), fidl::Error> {
42094        let _result = self.send_raw(result);
42095        if _result.is_err() {
42096            self.control_handle.shutdown();
42097        }
42098        self.drop_without_shutdown();
42099        _result
42100    }
42101
42102    /// Similar to "send" but does not shutdown the channel if an error occurs.
42103    pub fn send_no_shutdown_on_err(
42104        self,
42105        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42106    ) -> Result<(), fidl::Error> {
42107        let _result = self.send_raw(result);
42108        self.drop_without_shutdown();
42109        _result
42110    }
42111
42112    fn send_raw(
42113        &self,
42114        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42115    ) -> Result<(), fidl::Error> {
42116        self.control_handle.inner.send::<fidl::encoding::ResultType<
42117            fidl::encoding::EmptyStruct,
42118            fidl_fuchsia_posix::Errno,
42119        >>(
42120            result,
42121            self.tx_id,
42122            0x756eac32d73a7a70,
42123            fidl::encoding::DynamicFlags::empty(),
42124        )
42125    }
42126}
42127
42128#[must_use = "FIDL methods require a response to be sent"]
42129#[derive(Debug)]
42130pub struct DatagramSocketGetSendBufferResponder {
42131    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42132    tx_id: u32,
42133}
42134
42135/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42136/// if the responder is dropped without sending a response, so that the client
42137/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42138impl std::ops::Drop for DatagramSocketGetSendBufferResponder {
42139    fn drop(&mut self) {
42140        self.control_handle.shutdown();
42141        // Safety: drops once, never accessed again
42142        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42143    }
42144}
42145
42146impl fidl::endpoints::Responder for DatagramSocketGetSendBufferResponder {
42147    type ControlHandle = DatagramSocketControlHandle;
42148
42149    fn control_handle(&self) -> &DatagramSocketControlHandle {
42150        &self.control_handle
42151    }
42152
42153    fn drop_without_shutdown(mut self) {
42154        // Safety: drops once, never accessed again due to mem::forget
42155        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42156        // Prevent Drop from running (which would shut down the channel)
42157        std::mem::forget(self);
42158    }
42159}
42160
42161impl DatagramSocketGetSendBufferResponder {
42162    /// Sends a response to the FIDL transaction.
42163    ///
42164    /// Sets the channel to shutdown if an error occurs.
42165    pub fn send(
42166        self,
42167        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42168    ) -> Result<(), fidl::Error> {
42169        let _result = self.send_raw(result);
42170        if _result.is_err() {
42171            self.control_handle.shutdown();
42172        }
42173        self.drop_without_shutdown();
42174        _result
42175    }
42176
42177    /// Similar to "send" but does not shutdown the channel if an error occurs.
42178    pub fn send_no_shutdown_on_err(
42179        self,
42180        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42181    ) -> Result<(), fidl::Error> {
42182        let _result = self.send_raw(result);
42183        self.drop_without_shutdown();
42184        _result
42185    }
42186
42187    fn send_raw(
42188        &self,
42189        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42190    ) -> Result<(), fidl::Error> {
42191        self.control_handle.inner.send::<fidl::encoding::ResultType<
42192            BaseSocketGetSendBufferResponse,
42193            fidl_fuchsia_posix::Errno,
42194        >>(
42195            result.map(|value_bytes| (value_bytes,)),
42196            self.tx_id,
42197            0x78a52fd9c7b2410b,
42198            fidl::encoding::DynamicFlags::empty(),
42199        )
42200    }
42201}
42202
42203#[must_use = "FIDL methods require a response to be sent"]
42204#[derive(Debug)]
42205pub struct DatagramSocketSetReceiveBufferResponder {
42206    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42207    tx_id: u32,
42208}
42209
42210/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42211/// if the responder is dropped without sending a response, so that the client
42212/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42213impl std::ops::Drop for DatagramSocketSetReceiveBufferResponder {
42214    fn drop(&mut self) {
42215        self.control_handle.shutdown();
42216        // Safety: drops once, never accessed again
42217        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42218    }
42219}
42220
42221impl fidl::endpoints::Responder for DatagramSocketSetReceiveBufferResponder {
42222    type ControlHandle = DatagramSocketControlHandle;
42223
42224    fn control_handle(&self) -> &DatagramSocketControlHandle {
42225        &self.control_handle
42226    }
42227
42228    fn drop_without_shutdown(mut self) {
42229        // Safety: drops once, never accessed again due to mem::forget
42230        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42231        // Prevent Drop from running (which would shut down the channel)
42232        std::mem::forget(self);
42233    }
42234}
42235
42236impl DatagramSocketSetReceiveBufferResponder {
42237    /// Sends a response to the FIDL transaction.
42238    ///
42239    /// Sets the channel to shutdown if an error occurs.
42240    pub fn send(
42241        self,
42242        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42243    ) -> Result<(), fidl::Error> {
42244        let _result = self.send_raw(result);
42245        if _result.is_err() {
42246            self.control_handle.shutdown();
42247        }
42248        self.drop_without_shutdown();
42249        _result
42250    }
42251
42252    /// Similar to "send" but does not shutdown the channel if an error occurs.
42253    pub fn send_no_shutdown_on_err(
42254        self,
42255        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42256    ) -> Result<(), fidl::Error> {
42257        let _result = self.send_raw(result);
42258        self.drop_without_shutdown();
42259        _result
42260    }
42261
42262    fn send_raw(
42263        &self,
42264        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42265    ) -> Result<(), fidl::Error> {
42266        self.control_handle.inner.send::<fidl::encoding::ResultType<
42267            fidl::encoding::EmptyStruct,
42268            fidl_fuchsia_posix::Errno,
42269        >>(
42270            result,
42271            self.tx_id,
42272            0x6b0cf2f1919c7001,
42273            fidl::encoding::DynamicFlags::empty(),
42274        )
42275    }
42276}
42277
42278#[must_use = "FIDL methods require a response to be sent"]
42279#[derive(Debug)]
42280pub struct DatagramSocketGetReceiveBufferResponder {
42281    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42282    tx_id: u32,
42283}
42284
42285/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42286/// if the responder is dropped without sending a response, so that the client
42287/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42288impl std::ops::Drop for DatagramSocketGetReceiveBufferResponder {
42289    fn drop(&mut self) {
42290        self.control_handle.shutdown();
42291        // Safety: drops once, never accessed again
42292        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42293    }
42294}
42295
42296impl fidl::endpoints::Responder for DatagramSocketGetReceiveBufferResponder {
42297    type ControlHandle = DatagramSocketControlHandle;
42298
42299    fn control_handle(&self) -> &DatagramSocketControlHandle {
42300        &self.control_handle
42301    }
42302
42303    fn drop_without_shutdown(mut self) {
42304        // Safety: drops once, never accessed again due to mem::forget
42305        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42306        // Prevent Drop from running (which would shut down the channel)
42307        std::mem::forget(self);
42308    }
42309}
42310
42311impl DatagramSocketGetReceiveBufferResponder {
42312    /// Sends a response to the FIDL transaction.
42313    ///
42314    /// Sets the channel to shutdown if an error occurs.
42315    pub fn send(
42316        self,
42317        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42318    ) -> Result<(), fidl::Error> {
42319        let _result = self.send_raw(result);
42320        if _result.is_err() {
42321            self.control_handle.shutdown();
42322        }
42323        self.drop_without_shutdown();
42324        _result
42325    }
42326
42327    /// Similar to "send" but does not shutdown the channel if an error occurs.
42328    pub fn send_no_shutdown_on_err(
42329        self,
42330        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42331    ) -> Result<(), fidl::Error> {
42332        let _result = self.send_raw(result);
42333        self.drop_without_shutdown();
42334        _result
42335    }
42336
42337    fn send_raw(
42338        &self,
42339        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42340    ) -> Result<(), fidl::Error> {
42341        self.control_handle.inner.send::<fidl::encoding::ResultType<
42342            BaseSocketGetReceiveBufferResponse,
42343            fidl_fuchsia_posix::Errno,
42344        >>(
42345            result.map(|value_bytes| (value_bytes,)),
42346            self.tx_id,
42347            0x14c1a4b64f709e5c,
42348            fidl::encoding::DynamicFlags::empty(),
42349        )
42350    }
42351}
42352
42353#[must_use = "FIDL methods require a response to be sent"]
42354#[derive(Debug)]
42355pub struct DatagramSocketSetKeepAliveResponder {
42356    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42357    tx_id: u32,
42358}
42359
42360/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42361/// if the responder is dropped without sending a response, so that the client
42362/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42363impl std::ops::Drop for DatagramSocketSetKeepAliveResponder {
42364    fn drop(&mut self) {
42365        self.control_handle.shutdown();
42366        // Safety: drops once, never accessed again
42367        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42368    }
42369}
42370
42371impl fidl::endpoints::Responder for DatagramSocketSetKeepAliveResponder {
42372    type ControlHandle = DatagramSocketControlHandle;
42373
42374    fn control_handle(&self) -> &DatagramSocketControlHandle {
42375        &self.control_handle
42376    }
42377
42378    fn drop_without_shutdown(mut self) {
42379        // Safety: drops once, never accessed again due to mem::forget
42380        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42381        // Prevent Drop from running (which would shut down the channel)
42382        std::mem::forget(self);
42383    }
42384}
42385
42386impl DatagramSocketSetKeepAliveResponder {
42387    /// Sends a response to the FIDL transaction.
42388    ///
42389    /// Sets the channel to shutdown if an error occurs.
42390    pub fn send(
42391        self,
42392        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42393    ) -> Result<(), fidl::Error> {
42394        let _result = self.send_raw(result);
42395        if _result.is_err() {
42396            self.control_handle.shutdown();
42397        }
42398        self.drop_without_shutdown();
42399        _result
42400    }
42401
42402    /// Similar to "send" but does not shutdown the channel if an error occurs.
42403    pub fn send_no_shutdown_on_err(
42404        self,
42405        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42406    ) -> Result<(), fidl::Error> {
42407        let _result = self.send_raw(result);
42408        self.drop_without_shutdown();
42409        _result
42410    }
42411
42412    fn send_raw(
42413        &self,
42414        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42415    ) -> Result<(), fidl::Error> {
42416        self.control_handle.inner.send::<fidl::encoding::ResultType<
42417            fidl::encoding::EmptyStruct,
42418            fidl_fuchsia_posix::Errno,
42419        >>(
42420            result,
42421            self.tx_id,
42422            0x572df8f0b920d2c7,
42423            fidl::encoding::DynamicFlags::empty(),
42424        )
42425    }
42426}
42427
42428#[must_use = "FIDL methods require a response to be sent"]
42429#[derive(Debug)]
42430pub struct DatagramSocketGetKeepAliveResponder {
42431    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42432    tx_id: u32,
42433}
42434
42435/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42436/// if the responder is dropped without sending a response, so that the client
42437/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42438impl std::ops::Drop for DatagramSocketGetKeepAliveResponder {
42439    fn drop(&mut self) {
42440        self.control_handle.shutdown();
42441        // Safety: drops once, never accessed again
42442        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42443    }
42444}
42445
42446impl fidl::endpoints::Responder for DatagramSocketGetKeepAliveResponder {
42447    type ControlHandle = DatagramSocketControlHandle;
42448
42449    fn control_handle(&self) -> &DatagramSocketControlHandle {
42450        &self.control_handle
42451    }
42452
42453    fn drop_without_shutdown(mut self) {
42454        // Safety: drops once, never accessed again due to mem::forget
42455        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42456        // Prevent Drop from running (which would shut down the channel)
42457        std::mem::forget(self);
42458    }
42459}
42460
42461impl DatagramSocketGetKeepAliveResponder {
42462    /// Sends a response to the FIDL transaction.
42463    ///
42464    /// Sets the channel to shutdown if an error occurs.
42465    pub fn send(
42466        self,
42467        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42468    ) -> Result<(), fidl::Error> {
42469        let _result = self.send_raw(result);
42470        if _result.is_err() {
42471            self.control_handle.shutdown();
42472        }
42473        self.drop_without_shutdown();
42474        _result
42475    }
42476
42477    /// Similar to "send" but does not shutdown the channel if an error occurs.
42478    pub fn send_no_shutdown_on_err(
42479        self,
42480        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42481    ) -> Result<(), fidl::Error> {
42482        let _result = self.send_raw(result);
42483        self.drop_without_shutdown();
42484        _result
42485    }
42486
42487    fn send_raw(
42488        &self,
42489        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42490    ) -> Result<(), fidl::Error> {
42491        self.control_handle.inner.send::<fidl::encoding::ResultType<
42492            BaseSocketGetKeepAliveResponse,
42493            fidl_fuchsia_posix::Errno,
42494        >>(
42495            result.map(|value| (value,)),
42496            self.tx_id,
42497            0x2dd29d3215f2c9d2,
42498            fidl::encoding::DynamicFlags::empty(),
42499        )
42500    }
42501}
42502
42503#[must_use = "FIDL methods require a response to be sent"]
42504#[derive(Debug)]
42505pub struct DatagramSocketSetOutOfBandInlineResponder {
42506    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42507    tx_id: u32,
42508}
42509
42510/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42511/// if the responder is dropped without sending a response, so that the client
42512/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42513impl std::ops::Drop for DatagramSocketSetOutOfBandInlineResponder {
42514    fn drop(&mut self) {
42515        self.control_handle.shutdown();
42516        // Safety: drops once, never accessed again
42517        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42518    }
42519}
42520
42521impl fidl::endpoints::Responder for DatagramSocketSetOutOfBandInlineResponder {
42522    type ControlHandle = DatagramSocketControlHandle;
42523
42524    fn control_handle(&self) -> &DatagramSocketControlHandle {
42525        &self.control_handle
42526    }
42527
42528    fn drop_without_shutdown(mut self) {
42529        // Safety: drops once, never accessed again due to mem::forget
42530        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42531        // Prevent Drop from running (which would shut down the channel)
42532        std::mem::forget(self);
42533    }
42534}
42535
42536impl DatagramSocketSetOutOfBandInlineResponder {
42537    /// Sends a response to the FIDL transaction.
42538    ///
42539    /// Sets the channel to shutdown if an error occurs.
42540    pub fn send(
42541        self,
42542        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42543    ) -> Result<(), fidl::Error> {
42544        let _result = self.send_raw(result);
42545        if _result.is_err() {
42546            self.control_handle.shutdown();
42547        }
42548        self.drop_without_shutdown();
42549        _result
42550    }
42551
42552    /// Similar to "send" but does not shutdown the channel if an error occurs.
42553    pub fn send_no_shutdown_on_err(
42554        self,
42555        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42556    ) -> Result<(), fidl::Error> {
42557        let _result = self.send_raw(result);
42558        self.drop_without_shutdown();
42559        _result
42560    }
42561
42562    fn send_raw(
42563        &self,
42564        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42565    ) -> Result<(), fidl::Error> {
42566        self.control_handle.inner.send::<fidl::encoding::ResultType<
42567            fidl::encoding::EmptyStruct,
42568            fidl_fuchsia_posix::Errno,
42569        >>(
42570            result,
42571            self.tx_id,
42572            0x3ecb49968bee439,
42573            fidl::encoding::DynamicFlags::empty(),
42574        )
42575    }
42576}
42577
42578#[must_use = "FIDL methods require a response to be sent"]
42579#[derive(Debug)]
42580pub struct DatagramSocketGetOutOfBandInlineResponder {
42581    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42582    tx_id: u32,
42583}
42584
42585/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42586/// if the responder is dropped without sending a response, so that the client
42587/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42588impl std::ops::Drop for DatagramSocketGetOutOfBandInlineResponder {
42589    fn drop(&mut self) {
42590        self.control_handle.shutdown();
42591        // Safety: drops once, never accessed again
42592        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42593    }
42594}
42595
42596impl fidl::endpoints::Responder for DatagramSocketGetOutOfBandInlineResponder {
42597    type ControlHandle = DatagramSocketControlHandle;
42598
42599    fn control_handle(&self) -> &DatagramSocketControlHandle {
42600        &self.control_handle
42601    }
42602
42603    fn drop_without_shutdown(mut self) {
42604        // Safety: drops once, never accessed again due to mem::forget
42605        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42606        // Prevent Drop from running (which would shut down the channel)
42607        std::mem::forget(self);
42608    }
42609}
42610
42611impl DatagramSocketGetOutOfBandInlineResponder {
42612    /// Sends a response to the FIDL transaction.
42613    ///
42614    /// Sets the channel to shutdown if an error occurs.
42615    pub fn send(
42616        self,
42617        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42618    ) -> Result<(), fidl::Error> {
42619        let _result = self.send_raw(result);
42620        if _result.is_err() {
42621            self.control_handle.shutdown();
42622        }
42623        self.drop_without_shutdown();
42624        _result
42625    }
42626
42627    /// Similar to "send" but does not shutdown the channel if an error occurs.
42628    pub fn send_no_shutdown_on_err(
42629        self,
42630        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42631    ) -> Result<(), fidl::Error> {
42632        let _result = self.send_raw(result);
42633        self.drop_without_shutdown();
42634        _result
42635    }
42636
42637    fn send_raw(
42638        &self,
42639        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42640    ) -> Result<(), fidl::Error> {
42641        self.control_handle.inner.send::<fidl::encoding::ResultType<
42642            BaseSocketGetOutOfBandInlineResponse,
42643            fidl_fuchsia_posix::Errno,
42644        >>(
42645            result.map(|value| (value,)),
42646            self.tx_id,
42647            0x348c1ab3aeca1745,
42648            fidl::encoding::DynamicFlags::empty(),
42649        )
42650    }
42651}
42652
42653#[must_use = "FIDL methods require a response to be sent"]
42654#[derive(Debug)]
42655pub struct DatagramSocketSetNoCheckResponder {
42656    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42657    tx_id: u32,
42658}
42659
42660/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42661/// if the responder is dropped without sending a response, so that the client
42662/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42663impl std::ops::Drop for DatagramSocketSetNoCheckResponder {
42664    fn drop(&mut self) {
42665        self.control_handle.shutdown();
42666        // Safety: drops once, never accessed again
42667        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42668    }
42669}
42670
42671impl fidl::endpoints::Responder for DatagramSocketSetNoCheckResponder {
42672    type ControlHandle = DatagramSocketControlHandle;
42673
42674    fn control_handle(&self) -> &DatagramSocketControlHandle {
42675        &self.control_handle
42676    }
42677
42678    fn drop_without_shutdown(mut self) {
42679        // Safety: drops once, never accessed again due to mem::forget
42680        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42681        // Prevent Drop from running (which would shut down the channel)
42682        std::mem::forget(self);
42683    }
42684}
42685
42686impl DatagramSocketSetNoCheckResponder {
42687    /// Sends a response to the FIDL transaction.
42688    ///
42689    /// Sets the channel to shutdown if an error occurs.
42690    pub fn send(
42691        self,
42692        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42693    ) -> Result<(), fidl::Error> {
42694        let _result = self.send_raw(result);
42695        if _result.is_err() {
42696            self.control_handle.shutdown();
42697        }
42698        self.drop_without_shutdown();
42699        _result
42700    }
42701
42702    /// Similar to "send" but does not shutdown the channel if an error occurs.
42703    pub fn send_no_shutdown_on_err(
42704        self,
42705        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42706    ) -> Result<(), fidl::Error> {
42707        let _result = self.send_raw(result);
42708        self.drop_without_shutdown();
42709        _result
42710    }
42711
42712    fn send_raw(
42713        &self,
42714        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42715    ) -> Result<(), fidl::Error> {
42716        self.control_handle.inner.send::<fidl::encoding::ResultType<
42717            fidl::encoding::EmptyStruct,
42718            fidl_fuchsia_posix::Errno,
42719        >>(
42720            result,
42721            self.tx_id,
42722            0x6bbf00c53a4c78c2,
42723            fidl::encoding::DynamicFlags::empty(),
42724        )
42725    }
42726}
42727
42728#[must_use = "FIDL methods require a response to be sent"]
42729#[derive(Debug)]
42730pub struct DatagramSocketGetNoCheckResponder {
42731    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42732    tx_id: u32,
42733}
42734
42735/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42736/// if the responder is dropped without sending a response, so that the client
42737/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42738impl std::ops::Drop for DatagramSocketGetNoCheckResponder {
42739    fn drop(&mut self) {
42740        self.control_handle.shutdown();
42741        // Safety: drops once, never accessed again
42742        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42743    }
42744}
42745
42746impl fidl::endpoints::Responder for DatagramSocketGetNoCheckResponder {
42747    type ControlHandle = DatagramSocketControlHandle;
42748
42749    fn control_handle(&self) -> &DatagramSocketControlHandle {
42750        &self.control_handle
42751    }
42752
42753    fn drop_without_shutdown(mut self) {
42754        // Safety: drops once, never accessed again due to mem::forget
42755        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42756        // Prevent Drop from running (which would shut down the channel)
42757        std::mem::forget(self);
42758    }
42759}
42760
42761impl DatagramSocketGetNoCheckResponder {
42762    /// Sends a response to the FIDL transaction.
42763    ///
42764    /// Sets the channel to shutdown if an error occurs.
42765    pub fn send(
42766        self,
42767        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42768    ) -> Result<(), fidl::Error> {
42769        let _result = self.send_raw(result);
42770        if _result.is_err() {
42771            self.control_handle.shutdown();
42772        }
42773        self.drop_without_shutdown();
42774        _result
42775    }
42776
42777    /// Similar to "send" but does not shutdown the channel if an error occurs.
42778    pub fn send_no_shutdown_on_err(
42779        self,
42780        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42781    ) -> Result<(), fidl::Error> {
42782        let _result = self.send_raw(result);
42783        self.drop_without_shutdown();
42784        _result
42785    }
42786
42787    fn send_raw(
42788        &self,
42789        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42790    ) -> Result<(), fidl::Error> {
42791        self.control_handle.inner.send::<fidl::encoding::ResultType<
42792            BaseSocketGetNoCheckResponse,
42793            fidl_fuchsia_posix::Errno,
42794        >>(
42795            result.map(|value| (value,)),
42796            self.tx_id,
42797            0x2cd4249286417694,
42798            fidl::encoding::DynamicFlags::empty(),
42799        )
42800    }
42801}
42802
42803#[must_use = "FIDL methods require a response to be sent"]
42804#[derive(Debug)]
42805pub struct DatagramSocketSetLingerResponder {
42806    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42807    tx_id: u32,
42808}
42809
42810/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42811/// if the responder is dropped without sending a response, so that the client
42812/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42813impl std::ops::Drop for DatagramSocketSetLingerResponder {
42814    fn drop(&mut self) {
42815        self.control_handle.shutdown();
42816        // Safety: drops once, never accessed again
42817        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42818    }
42819}
42820
42821impl fidl::endpoints::Responder for DatagramSocketSetLingerResponder {
42822    type ControlHandle = DatagramSocketControlHandle;
42823
42824    fn control_handle(&self) -> &DatagramSocketControlHandle {
42825        &self.control_handle
42826    }
42827
42828    fn drop_without_shutdown(mut self) {
42829        // Safety: drops once, never accessed again due to mem::forget
42830        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42831        // Prevent Drop from running (which would shut down the channel)
42832        std::mem::forget(self);
42833    }
42834}
42835
42836impl DatagramSocketSetLingerResponder {
42837    /// Sends a response to the FIDL transaction.
42838    ///
42839    /// Sets the channel to shutdown if an error occurs.
42840    pub fn send(
42841        self,
42842        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42843    ) -> Result<(), fidl::Error> {
42844        let _result = self.send_raw(result);
42845        if _result.is_err() {
42846            self.control_handle.shutdown();
42847        }
42848        self.drop_without_shutdown();
42849        _result
42850    }
42851
42852    /// Similar to "send" but does not shutdown the channel if an error occurs.
42853    pub fn send_no_shutdown_on_err(
42854        self,
42855        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42856    ) -> Result<(), fidl::Error> {
42857        let _result = self.send_raw(result);
42858        self.drop_without_shutdown();
42859        _result
42860    }
42861
42862    fn send_raw(
42863        &self,
42864        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42865    ) -> Result<(), fidl::Error> {
42866        self.control_handle.inner.send::<fidl::encoding::ResultType<
42867            fidl::encoding::EmptyStruct,
42868            fidl_fuchsia_posix::Errno,
42869        >>(
42870            result,
42871            self.tx_id,
42872            0x45386351246e998e,
42873            fidl::encoding::DynamicFlags::empty(),
42874        )
42875    }
42876}
42877
42878#[must_use = "FIDL methods require a response to be sent"]
42879#[derive(Debug)]
42880pub struct DatagramSocketGetLingerResponder {
42881    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42882    tx_id: u32,
42883}
42884
42885/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42886/// if the responder is dropped without sending a response, so that the client
42887/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42888impl std::ops::Drop for DatagramSocketGetLingerResponder {
42889    fn drop(&mut self) {
42890        self.control_handle.shutdown();
42891        // Safety: drops once, never accessed again
42892        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42893    }
42894}
42895
42896impl fidl::endpoints::Responder for DatagramSocketGetLingerResponder {
42897    type ControlHandle = DatagramSocketControlHandle;
42898
42899    fn control_handle(&self) -> &DatagramSocketControlHandle {
42900        &self.control_handle
42901    }
42902
42903    fn drop_without_shutdown(mut self) {
42904        // Safety: drops once, never accessed again due to mem::forget
42905        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42906        // Prevent Drop from running (which would shut down the channel)
42907        std::mem::forget(self);
42908    }
42909}
42910
42911impl DatagramSocketGetLingerResponder {
42912    /// Sends a response to the FIDL transaction.
42913    ///
42914    /// Sets the channel to shutdown if an error occurs.
42915    pub fn send(
42916        self,
42917        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
42918    ) -> Result<(), fidl::Error> {
42919        let _result = self.send_raw(result);
42920        if _result.is_err() {
42921            self.control_handle.shutdown();
42922        }
42923        self.drop_without_shutdown();
42924        _result
42925    }
42926
42927    /// Similar to "send" but does not shutdown the channel if an error occurs.
42928    pub fn send_no_shutdown_on_err(
42929        self,
42930        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
42931    ) -> Result<(), fidl::Error> {
42932        let _result = self.send_raw(result);
42933        self.drop_without_shutdown();
42934        _result
42935    }
42936
42937    fn send_raw(
42938        &self,
42939        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
42940    ) -> Result<(), fidl::Error> {
42941        self.control_handle.inner.send::<fidl::encoding::ResultType<
42942            BaseSocketGetLingerResponse,
42943            fidl_fuchsia_posix::Errno,
42944        >>(
42945            result,
42946            self.tx_id,
42947            0x48eb20fc5ccb0e45,
42948            fidl::encoding::DynamicFlags::empty(),
42949        )
42950    }
42951}
42952
42953#[must_use = "FIDL methods require a response to be sent"]
42954#[derive(Debug)]
42955pub struct DatagramSocketSetReusePortResponder {
42956    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42957    tx_id: u32,
42958}
42959
42960/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42961/// if the responder is dropped without sending a response, so that the client
42962/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42963impl std::ops::Drop for DatagramSocketSetReusePortResponder {
42964    fn drop(&mut self) {
42965        self.control_handle.shutdown();
42966        // Safety: drops once, never accessed again
42967        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42968    }
42969}
42970
42971impl fidl::endpoints::Responder for DatagramSocketSetReusePortResponder {
42972    type ControlHandle = DatagramSocketControlHandle;
42973
42974    fn control_handle(&self) -> &DatagramSocketControlHandle {
42975        &self.control_handle
42976    }
42977
42978    fn drop_without_shutdown(mut self) {
42979        // Safety: drops once, never accessed again due to mem::forget
42980        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42981        // Prevent Drop from running (which would shut down the channel)
42982        std::mem::forget(self);
42983    }
42984}
42985
42986impl DatagramSocketSetReusePortResponder {
42987    /// Sends a response to the FIDL transaction.
42988    ///
42989    /// Sets the channel to shutdown if an error occurs.
42990    pub fn send(
42991        self,
42992        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42993    ) -> Result<(), fidl::Error> {
42994        let _result = self.send_raw(result);
42995        if _result.is_err() {
42996            self.control_handle.shutdown();
42997        }
42998        self.drop_without_shutdown();
42999        _result
43000    }
43001
43002    /// Similar to "send" but does not shutdown the channel if an error occurs.
43003    pub fn send_no_shutdown_on_err(
43004        self,
43005        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43006    ) -> Result<(), fidl::Error> {
43007        let _result = self.send_raw(result);
43008        self.drop_without_shutdown();
43009        _result
43010    }
43011
43012    fn send_raw(
43013        &self,
43014        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43015    ) -> Result<(), fidl::Error> {
43016        self.control_handle.inner.send::<fidl::encoding::ResultType<
43017            fidl::encoding::EmptyStruct,
43018            fidl_fuchsia_posix::Errno,
43019        >>(
43020            result,
43021            self.tx_id,
43022            0x24dd3e5cb36d9ccb,
43023            fidl::encoding::DynamicFlags::empty(),
43024        )
43025    }
43026}
43027
43028#[must_use = "FIDL methods require a response to be sent"]
43029#[derive(Debug)]
43030pub struct DatagramSocketGetReusePortResponder {
43031    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43032    tx_id: u32,
43033}
43034
43035/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43036/// if the responder is dropped without sending a response, so that the client
43037/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43038impl std::ops::Drop for DatagramSocketGetReusePortResponder {
43039    fn drop(&mut self) {
43040        self.control_handle.shutdown();
43041        // Safety: drops once, never accessed again
43042        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43043    }
43044}
43045
43046impl fidl::endpoints::Responder for DatagramSocketGetReusePortResponder {
43047    type ControlHandle = DatagramSocketControlHandle;
43048
43049    fn control_handle(&self) -> &DatagramSocketControlHandle {
43050        &self.control_handle
43051    }
43052
43053    fn drop_without_shutdown(mut self) {
43054        // Safety: drops once, never accessed again due to mem::forget
43055        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43056        // Prevent Drop from running (which would shut down the channel)
43057        std::mem::forget(self);
43058    }
43059}
43060
43061impl DatagramSocketGetReusePortResponder {
43062    /// Sends a response to the FIDL transaction.
43063    ///
43064    /// Sets the channel to shutdown if an error occurs.
43065    pub fn send(
43066        self,
43067        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43068    ) -> Result<(), fidl::Error> {
43069        let _result = self.send_raw(result);
43070        if _result.is_err() {
43071            self.control_handle.shutdown();
43072        }
43073        self.drop_without_shutdown();
43074        _result
43075    }
43076
43077    /// Similar to "send" but does not shutdown the channel if an error occurs.
43078    pub fn send_no_shutdown_on_err(
43079        self,
43080        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43081    ) -> Result<(), fidl::Error> {
43082        let _result = self.send_raw(result);
43083        self.drop_without_shutdown();
43084        _result
43085    }
43086
43087    fn send_raw(
43088        &self,
43089        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43090    ) -> Result<(), fidl::Error> {
43091        self.control_handle.inner.send::<fidl::encoding::ResultType<
43092            BaseSocketGetReusePortResponse,
43093            fidl_fuchsia_posix::Errno,
43094        >>(
43095            result.map(|value| (value,)),
43096            self.tx_id,
43097            0x7a112c1ab54ff828,
43098            fidl::encoding::DynamicFlags::empty(),
43099        )
43100    }
43101}
43102
43103#[must_use = "FIDL methods require a response to be sent"]
43104#[derive(Debug)]
43105pub struct DatagramSocketGetAcceptConnResponder {
43106    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43107    tx_id: u32,
43108}
43109
43110/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43111/// if the responder is dropped without sending a response, so that the client
43112/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43113impl std::ops::Drop for DatagramSocketGetAcceptConnResponder {
43114    fn drop(&mut self) {
43115        self.control_handle.shutdown();
43116        // Safety: drops once, never accessed again
43117        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43118    }
43119}
43120
43121impl fidl::endpoints::Responder for DatagramSocketGetAcceptConnResponder {
43122    type ControlHandle = DatagramSocketControlHandle;
43123
43124    fn control_handle(&self) -> &DatagramSocketControlHandle {
43125        &self.control_handle
43126    }
43127
43128    fn drop_without_shutdown(mut self) {
43129        // Safety: drops once, never accessed again due to mem::forget
43130        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43131        // Prevent Drop from running (which would shut down the channel)
43132        std::mem::forget(self);
43133    }
43134}
43135
43136impl DatagramSocketGetAcceptConnResponder {
43137    /// Sends a response to the FIDL transaction.
43138    ///
43139    /// Sets the channel to shutdown if an error occurs.
43140    pub fn send(
43141        self,
43142        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43143    ) -> Result<(), fidl::Error> {
43144        let _result = self.send_raw(result);
43145        if _result.is_err() {
43146            self.control_handle.shutdown();
43147        }
43148        self.drop_without_shutdown();
43149        _result
43150    }
43151
43152    /// Similar to "send" but does not shutdown the channel if an error occurs.
43153    pub fn send_no_shutdown_on_err(
43154        self,
43155        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43156    ) -> Result<(), fidl::Error> {
43157        let _result = self.send_raw(result);
43158        self.drop_without_shutdown();
43159        _result
43160    }
43161
43162    fn send_raw(
43163        &self,
43164        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43165    ) -> Result<(), fidl::Error> {
43166        self.control_handle.inner.send::<fidl::encoding::ResultType<
43167            BaseSocketGetAcceptConnResponse,
43168            fidl_fuchsia_posix::Errno,
43169        >>(
43170            result.map(|value| (value,)),
43171            self.tx_id,
43172            0x67ce6db6c2ec8966,
43173            fidl::encoding::DynamicFlags::empty(),
43174        )
43175    }
43176}
43177
43178#[must_use = "FIDL methods require a response to be sent"]
43179#[derive(Debug)]
43180pub struct DatagramSocketSetBindToDeviceResponder {
43181    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43182    tx_id: u32,
43183}
43184
43185/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43186/// if the responder is dropped without sending a response, so that the client
43187/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43188impl std::ops::Drop for DatagramSocketSetBindToDeviceResponder {
43189    fn drop(&mut self) {
43190        self.control_handle.shutdown();
43191        // Safety: drops once, never accessed again
43192        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43193    }
43194}
43195
43196impl fidl::endpoints::Responder for DatagramSocketSetBindToDeviceResponder {
43197    type ControlHandle = DatagramSocketControlHandle;
43198
43199    fn control_handle(&self) -> &DatagramSocketControlHandle {
43200        &self.control_handle
43201    }
43202
43203    fn drop_without_shutdown(mut self) {
43204        // Safety: drops once, never accessed again due to mem::forget
43205        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43206        // Prevent Drop from running (which would shut down the channel)
43207        std::mem::forget(self);
43208    }
43209}
43210
43211impl DatagramSocketSetBindToDeviceResponder {
43212    /// Sends a response to the FIDL transaction.
43213    ///
43214    /// Sets the channel to shutdown if an error occurs.
43215    pub fn send(
43216        self,
43217        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43218    ) -> Result<(), fidl::Error> {
43219        let _result = self.send_raw(result);
43220        if _result.is_err() {
43221            self.control_handle.shutdown();
43222        }
43223        self.drop_without_shutdown();
43224        _result
43225    }
43226
43227    /// Similar to "send" but does not shutdown the channel if an error occurs.
43228    pub fn send_no_shutdown_on_err(
43229        self,
43230        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43231    ) -> Result<(), fidl::Error> {
43232        let _result = self.send_raw(result);
43233        self.drop_without_shutdown();
43234        _result
43235    }
43236
43237    fn send_raw(
43238        &self,
43239        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43240    ) -> Result<(), fidl::Error> {
43241        self.control_handle.inner.send::<fidl::encoding::ResultType<
43242            fidl::encoding::EmptyStruct,
43243            fidl_fuchsia_posix::Errno,
43244        >>(
43245            result,
43246            self.tx_id,
43247            0x2118b483f28aafc4,
43248            fidl::encoding::DynamicFlags::empty(),
43249        )
43250    }
43251}
43252
43253#[must_use = "FIDL methods require a response to be sent"]
43254#[derive(Debug)]
43255pub struct DatagramSocketGetBindToDeviceResponder {
43256    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43257    tx_id: u32,
43258}
43259
43260/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43261/// if the responder is dropped without sending a response, so that the client
43262/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43263impl std::ops::Drop for DatagramSocketGetBindToDeviceResponder {
43264    fn drop(&mut self) {
43265        self.control_handle.shutdown();
43266        // Safety: drops once, never accessed again
43267        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43268    }
43269}
43270
43271impl fidl::endpoints::Responder for DatagramSocketGetBindToDeviceResponder {
43272    type ControlHandle = DatagramSocketControlHandle;
43273
43274    fn control_handle(&self) -> &DatagramSocketControlHandle {
43275        &self.control_handle
43276    }
43277
43278    fn drop_without_shutdown(mut self) {
43279        // Safety: drops once, never accessed again due to mem::forget
43280        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43281        // Prevent Drop from running (which would shut down the channel)
43282        std::mem::forget(self);
43283    }
43284}
43285
43286impl DatagramSocketGetBindToDeviceResponder {
43287    /// Sends a response to the FIDL transaction.
43288    ///
43289    /// Sets the channel to shutdown if an error occurs.
43290    pub fn send(
43291        self,
43292        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
43293    ) -> Result<(), fidl::Error> {
43294        let _result = self.send_raw(result);
43295        if _result.is_err() {
43296            self.control_handle.shutdown();
43297        }
43298        self.drop_without_shutdown();
43299        _result
43300    }
43301
43302    /// Similar to "send" but does not shutdown the channel if an error occurs.
43303    pub fn send_no_shutdown_on_err(
43304        self,
43305        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
43306    ) -> Result<(), fidl::Error> {
43307        let _result = self.send_raw(result);
43308        self.drop_without_shutdown();
43309        _result
43310    }
43311
43312    fn send_raw(
43313        &self,
43314        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
43315    ) -> Result<(), fidl::Error> {
43316        self.control_handle.inner.send::<fidl::encoding::ResultType<
43317            BaseSocketGetBindToDeviceResponse,
43318            fidl_fuchsia_posix::Errno,
43319        >>(
43320            result.map(|value| (value,)),
43321            self.tx_id,
43322            0x1ab1fbf0ef7906c8,
43323            fidl::encoding::DynamicFlags::empty(),
43324        )
43325    }
43326}
43327
43328#[must_use = "FIDL methods require a response to be sent"]
43329#[derive(Debug)]
43330pub struct DatagramSocketSetBindToInterfaceIndexResponder {
43331    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43332    tx_id: u32,
43333}
43334
43335/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43336/// if the responder is dropped without sending a response, so that the client
43337/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43338impl std::ops::Drop for DatagramSocketSetBindToInterfaceIndexResponder {
43339    fn drop(&mut self) {
43340        self.control_handle.shutdown();
43341        // Safety: drops once, never accessed again
43342        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43343    }
43344}
43345
43346impl fidl::endpoints::Responder for DatagramSocketSetBindToInterfaceIndexResponder {
43347    type ControlHandle = DatagramSocketControlHandle;
43348
43349    fn control_handle(&self) -> &DatagramSocketControlHandle {
43350        &self.control_handle
43351    }
43352
43353    fn drop_without_shutdown(mut self) {
43354        // Safety: drops once, never accessed again due to mem::forget
43355        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43356        // Prevent Drop from running (which would shut down the channel)
43357        std::mem::forget(self);
43358    }
43359}
43360
43361impl DatagramSocketSetBindToInterfaceIndexResponder {
43362    /// Sends a response to the FIDL transaction.
43363    ///
43364    /// Sets the channel to shutdown if an error occurs.
43365    pub fn send(
43366        self,
43367        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43368    ) -> Result<(), fidl::Error> {
43369        let _result = self.send_raw(result);
43370        if _result.is_err() {
43371            self.control_handle.shutdown();
43372        }
43373        self.drop_without_shutdown();
43374        _result
43375    }
43376
43377    /// Similar to "send" but does not shutdown the channel if an error occurs.
43378    pub fn send_no_shutdown_on_err(
43379        self,
43380        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43381    ) -> Result<(), fidl::Error> {
43382        let _result = self.send_raw(result);
43383        self.drop_without_shutdown();
43384        _result
43385    }
43386
43387    fn send_raw(
43388        &self,
43389        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43390    ) -> Result<(), fidl::Error> {
43391        self.control_handle.inner.send::<fidl::encoding::ResultType<
43392            fidl::encoding::EmptyStruct,
43393            fidl_fuchsia_posix::Errno,
43394        >>(
43395            result,
43396            self.tx_id,
43397            0x6e387a0def00821,
43398            fidl::encoding::DynamicFlags::empty(),
43399        )
43400    }
43401}
43402
43403#[must_use = "FIDL methods require a response to be sent"]
43404#[derive(Debug)]
43405pub struct DatagramSocketGetBindToInterfaceIndexResponder {
43406    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43407    tx_id: u32,
43408}
43409
43410/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43411/// if the responder is dropped without sending a response, so that the client
43412/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43413impl std::ops::Drop for DatagramSocketGetBindToInterfaceIndexResponder {
43414    fn drop(&mut self) {
43415        self.control_handle.shutdown();
43416        // Safety: drops once, never accessed again
43417        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43418    }
43419}
43420
43421impl fidl::endpoints::Responder for DatagramSocketGetBindToInterfaceIndexResponder {
43422    type ControlHandle = DatagramSocketControlHandle;
43423
43424    fn control_handle(&self) -> &DatagramSocketControlHandle {
43425        &self.control_handle
43426    }
43427
43428    fn drop_without_shutdown(mut self) {
43429        // Safety: drops once, never accessed again due to mem::forget
43430        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43431        // Prevent Drop from running (which would shut down the channel)
43432        std::mem::forget(self);
43433    }
43434}
43435
43436impl DatagramSocketGetBindToInterfaceIndexResponder {
43437    /// Sends a response to the FIDL transaction.
43438    ///
43439    /// Sets the channel to shutdown if an error occurs.
43440    pub fn send(
43441        self,
43442        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43443    ) -> Result<(), fidl::Error> {
43444        let _result = self.send_raw(result);
43445        if _result.is_err() {
43446            self.control_handle.shutdown();
43447        }
43448        self.drop_without_shutdown();
43449        _result
43450    }
43451
43452    /// Similar to "send" but does not shutdown the channel if an error occurs.
43453    pub fn send_no_shutdown_on_err(
43454        self,
43455        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43456    ) -> Result<(), fidl::Error> {
43457        let _result = self.send_raw(result);
43458        self.drop_without_shutdown();
43459        _result
43460    }
43461
43462    fn send_raw(
43463        &self,
43464        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43465    ) -> Result<(), fidl::Error> {
43466        self.control_handle.inner.send::<fidl::encoding::ResultType<
43467            BaseSocketGetBindToInterfaceIndexResponse,
43468            fidl_fuchsia_posix::Errno,
43469        >>(
43470            result.map(|value| (value,)),
43471            self.tx_id,
43472            0x59c31dd3e3078295,
43473            fidl::encoding::DynamicFlags::empty(),
43474        )
43475    }
43476}
43477
43478#[must_use = "FIDL methods require a response to be sent"]
43479#[derive(Debug)]
43480pub struct DatagramSocketSetTimestampResponder {
43481    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43482    tx_id: u32,
43483}
43484
43485/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43486/// if the responder is dropped without sending a response, so that the client
43487/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43488impl std::ops::Drop for DatagramSocketSetTimestampResponder {
43489    fn drop(&mut self) {
43490        self.control_handle.shutdown();
43491        // Safety: drops once, never accessed again
43492        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43493    }
43494}
43495
43496impl fidl::endpoints::Responder for DatagramSocketSetTimestampResponder {
43497    type ControlHandle = DatagramSocketControlHandle;
43498
43499    fn control_handle(&self) -> &DatagramSocketControlHandle {
43500        &self.control_handle
43501    }
43502
43503    fn drop_without_shutdown(mut self) {
43504        // Safety: drops once, never accessed again due to mem::forget
43505        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43506        // Prevent Drop from running (which would shut down the channel)
43507        std::mem::forget(self);
43508    }
43509}
43510
43511impl DatagramSocketSetTimestampResponder {
43512    /// Sends a response to the FIDL transaction.
43513    ///
43514    /// Sets the channel to shutdown if an error occurs.
43515    pub fn send(
43516        self,
43517        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43518    ) -> Result<(), fidl::Error> {
43519        let _result = self.send_raw(result);
43520        if _result.is_err() {
43521            self.control_handle.shutdown();
43522        }
43523        self.drop_without_shutdown();
43524        _result
43525    }
43526
43527    /// Similar to "send" but does not shutdown the channel if an error occurs.
43528    pub fn send_no_shutdown_on_err(
43529        self,
43530        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43531    ) -> Result<(), fidl::Error> {
43532        let _result = self.send_raw(result);
43533        self.drop_without_shutdown();
43534        _result
43535    }
43536
43537    fn send_raw(
43538        &self,
43539        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43540    ) -> Result<(), fidl::Error> {
43541        self.control_handle.inner.send::<fidl::encoding::ResultType<
43542            fidl::encoding::EmptyStruct,
43543            fidl_fuchsia_posix::Errno,
43544        >>(
43545            result,
43546            self.tx_id,
43547            0x285d6516c263d839,
43548            fidl::encoding::DynamicFlags::empty(),
43549        )
43550    }
43551}
43552
43553#[must_use = "FIDL methods require a response to be sent"]
43554#[derive(Debug)]
43555pub struct DatagramSocketGetTimestampResponder {
43556    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43557    tx_id: u32,
43558}
43559
43560/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43561/// if the responder is dropped without sending a response, so that the client
43562/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43563impl std::ops::Drop for DatagramSocketGetTimestampResponder {
43564    fn drop(&mut self) {
43565        self.control_handle.shutdown();
43566        // Safety: drops once, never accessed again
43567        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43568    }
43569}
43570
43571impl fidl::endpoints::Responder for DatagramSocketGetTimestampResponder {
43572    type ControlHandle = DatagramSocketControlHandle;
43573
43574    fn control_handle(&self) -> &DatagramSocketControlHandle {
43575        &self.control_handle
43576    }
43577
43578    fn drop_without_shutdown(mut self) {
43579        // Safety: drops once, never accessed again due to mem::forget
43580        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43581        // Prevent Drop from running (which would shut down the channel)
43582        std::mem::forget(self);
43583    }
43584}
43585
43586impl DatagramSocketGetTimestampResponder {
43587    /// Sends a response to the FIDL transaction.
43588    ///
43589    /// Sets the channel to shutdown if an error occurs.
43590    pub fn send(
43591        self,
43592        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
43593    ) -> Result<(), fidl::Error> {
43594        let _result = self.send_raw(result);
43595        if _result.is_err() {
43596            self.control_handle.shutdown();
43597        }
43598        self.drop_without_shutdown();
43599        _result
43600    }
43601
43602    /// Similar to "send" but does not shutdown the channel if an error occurs.
43603    pub fn send_no_shutdown_on_err(
43604        self,
43605        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
43606    ) -> Result<(), fidl::Error> {
43607        let _result = self.send_raw(result);
43608        self.drop_without_shutdown();
43609        _result
43610    }
43611
43612    fn send_raw(
43613        &self,
43614        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
43615    ) -> Result<(), fidl::Error> {
43616        self.control_handle.inner.send::<fidl::encoding::ResultType<
43617            BaseSocketGetTimestampResponse,
43618            fidl_fuchsia_posix::Errno,
43619        >>(
43620            result.map(|value| (value,)),
43621            self.tx_id,
43622            0x49f2fffbbcc2bd27,
43623            fidl::encoding::DynamicFlags::empty(),
43624        )
43625    }
43626}
43627
43628#[must_use = "FIDL methods require a response to be sent"]
43629#[derive(Debug)]
43630pub struct DatagramSocketSetMarkResponder {
43631    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43632    tx_id: u32,
43633}
43634
43635/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43636/// if the responder is dropped without sending a response, so that the client
43637/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43638impl std::ops::Drop for DatagramSocketSetMarkResponder {
43639    fn drop(&mut self) {
43640        self.control_handle.shutdown();
43641        // Safety: drops once, never accessed again
43642        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43643    }
43644}
43645
43646impl fidl::endpoints::Responder for DatagramSocketSetMarkResponder {
43647    type ControlHandle = DatagramSocketControlHandle;
43648
43649    fn control_handle(&self) -> &DatagramSocketControlHandle {
43650        &self.control_handle
43651    }
43652
43653    fn drop_without_shutdown(mut self) {
43654        // Safety: drops once, never accessed again due to mem::forget
43655        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43656        // Prevent Drop from running (which would shut down the channel)
43657        std::mem::forget(self);
43658    }
43659}
43660
43661impl DatagramSocketSetMarkResponder {
43662    /// Sends a response to the FIDL transaction.
43663    ///
43664    /// Sets the channel to shutdown if an error occurs.
43665    pub fn send(
43666        self,
43667        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43668    ) -> Result<(), fidl::Error> {
43669        let _result = self.send_raw(result);
43670        if _result.is_err() {
43671            self.control_handle.shutdown();
43672        }
43673        self.drop_without_shutdown();
43674        _result
43675    }
43676
43677    /// Similar to "send" but does not shutdown the channel if an error occurs.
43678    pub fn send_no_shutdown_on_err(
43679        self,
43680        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43681    ) -> Result<(), fidl::Error> {
43682        let _result = self.send_raw(result);
43683        self.drop_without_shutdown();
43684        _result
43685    }
43686
43687    fn send_raw(
43688        &self,
43689        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43690    ) -> Result<(), fidl::Error> {
43691        self.control_handle.inner.send::<fidl::encoding::ResultType<
43692            fidl::encoding::EmptyStruct,
43693            fidl_fuchsia_posix::Errno,
43694        >>(
43695            result,
43696            self.tx_id,
43697            0x6ead6de09f653236,
43698            fidl::encoding::DynamicFlags::empty(),
43699        )
43700    }
43701}
43702
43703#[must_use = "FIDL methods require a response to be sent"]
43704#[derive(Debug)]
43705pub struct DatagramSocketGetMarkResponder {
43706    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43707    tx_id: u32,
43708}
43709
43710/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43711/// if the responder is dropped without sending a response, so that the client
43712/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43713impl std::ops::Drop for DatagramSocketGetMarkResponder {
43714    fn drop(&mut self) {
43715        self.control_handle.shutdown();
43716        // Safety: drops once, never accessed again
43717        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43718    }
43719}
43720
43721impl fidl::endpoints::Responder for DatagramSocketGetMarkResponder {
43722    type ControlHandle = DatagramSocketControlHandle;
43723
43724    fn control_handle(&self) -> &DatagramSocketControlHandle {
43725        &self.control_handle
43726    }
43727
43728    fn drop_without_shutdown(mut self) {
43729        // Safety: drops once, never accessed again due to mem::forget
43730        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43731        // Prevent Drop from running (which would shut down the channel)
43732        std::mem::forget(self);
43733    }
43734}
43735
43736impl DatagramSocketGetMarkResponder {
43737    /// Sends a response to the FIDL transaction.
43738    ///
43739    /// Sets the channel to shutdown if an error occurs.
43740    pub fn send(
43741        self,
43742        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
43743    ) -> Result<(), fidl::Error> {
43744        let _result = self.send_raw(result);
43745        if _result.is_err() {
43746            self.control_handle.shutdown();
43747        }
43748        self.drop_without_shutdown();
43749        _result
43750    }
43751
43752    /// Similar to "send" but does not shutdown the channel if an error occurs.
43753    pub fn send_no_shutdown_on_err(
43754        self,
43755        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
43756    ) -> Result<(), fidl::Error> {
43757        let _result = self.send_raw(result);
43758        self.drop_without_shutdown();
43759        _result
43760    }
43761
43762    fn send_raw(
43763        &self,
43764        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
43765    ) -> Result<(), fidl::Error> {
43766        self.control_handle.inner.send::<fidl::encoding::ResultType<
43767            BaseSocketGetMarkResponse,
43768            fidl_fuchsia_posix::Errno,
43769        >>(
43770            result.map(|mark| (mark,)),
43771            self.tx_id,
43772            0x57a2752c61d93d47,
43773            fidl::encoding::DynamicFlags::empty(),
43774        )
43775    }
43776}
43777
43778#[must_use = "FIDL methods require a response to be sent"]
43779#[derive(Debug)]
43780pub struct DatagramSocketGetCookieResponder {
43781    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43782    tx_id: u32,
43783}
43784
43785/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43786/// if the responder is dropped without sending a response, so that the client
43787/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43788impl std::ops::Drop for DatagramSocketGetCookieResponder {
43789    fn drop(&mut self) {
43790        self.control_handle.shutdown();
43791        // Safety: drops once, never accessed again
43792        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43793    }
43794}
43795
43796impl fidl::endpoints::Responder for DatagramSocketGetCookieResponder {
43797    type ControlHandle = DatagramSocketControlHandle;
43798
43799    fn control_handle(&self) -> &DatagramSocketControlHandle {
43800        &self.control_handle
43801    }
43802
43803    fn drop_without_shutdown(mut self) {
43804        // Safety: drops once, never accessed again due to mem::forget
43805        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43806        // Prevent Drop from running (which would shut down the channel)
43807        std::mem::forget(self);
43808    }
43809}
43810
43811impl DatagramSocketGetCookieResponder {
43812    /// Sends a response to the FIDL transaction.
43813    ///
43814    /// Sets the channel to shutdown if an error occurs.
43815    pub fn send(
43816        self,
43817        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43818    ) -> Result<(), fidl::Error> {
43819        let _result = self.send_raw(result);
43820        if _result.is_err() {
43821            self.control_handle.shutdown();
43822        }
43823        self.drop_without_shutdown();
43824        _result
43825    }
43826
43827    /// Similar to "send" but does not shutdown the channel if an error occurs.
43828    pub fn send_no_shutdown_on_err(
43829        self,
43830        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43831    ) -> Result<(), fidl::Error> {
43832        let _result = self.send_raw(result);
43833        self.drop_without_shutdown();
43834        _result
43835    }
43836
43837    fn send_raw(
43838        &self,
43839        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43840    ) -> Result<(), fidl::Error> {
43841        self.control_handle.inner.send::<fidl::encoding::ResultType<
43842            BaseSocketGetCookieResponse,
43843            fidl_fuchsia_posix::Errno,
43844        >>(
43845            result.map(|value| (value,)),
43846            self.tx_id,
43847            0x2c2f47fd8f924e52,
43848            fidl::encoding::DynamicFlags::empty(),
43849        )
43850    }
43851}
43852
43853#[must_use = "FIDL methods require a response to be sent"]
43854#[derive(Debug)]
43855pub struct DatagramSocketBindResponder {
43856    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43857    tx_id: u32,
43858}
43859
43860/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43861/// if the responder is dropped without sending a response, so that the client
43862/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43863impl std::ops::Drop for DatagramSocketBindResponder {
43864    fn drop(&mut self) {
43865        self.control_handle.shutdown();
43866        // Safety: drops once, never accessed again
43867        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43868    }
43869}
43870
43871impl fidl::endpoints::Responder for DatagramSocketBindResponder {
43872    type ControlHandle = DatagramSocketControlHandle;
43873
43874    fn control_handle(&self) -> &DatagramSocketControlHandle {
43875        &self.control_handle
43876    }
43877
43878    fn drop_without_shutdown(mut self) {
43879        // Safety: drops once, never accessed again due to mem::forget
43880        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43881        // Prevent Drop from running (which would shut down the channel)
43882        std::mem::forget(self);
43883    }
43884}
43885
43886impl DatagramSocketBindResponder {
43887    /// Sends a response to the FIDL transaction.
43888    ///
43889    /// Sets the channel to shutdown if an error occurs.
43890    pub fn send(
43891        self,
43892        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43893    ) -> Result<(), fidl::Error> {
43894        let _result = self.send_raw(result);
43895        if _result.is_err() {
43896            self.control_handle.shutdown();
43897        }
43898        self.drop_without_shutdown();
43899        _result
43900    }
43901
43902    /// Similar to "send" but does not shutdown the channel if an error occurs.
43903    pub fn send_no_shutdown_on_err(
43904        self,
43905        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43906    ) -> Result<(), fidl::Error> {
43907        let _result = self.send_raw(result);
43908        self.drop_without_shutdown();
43909        _result
43910    }
43911
43912    fn send_raw(
43913        &self,
43914        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43915    ) -> Result<(), fidl::Error> {
43916        self.control_handle.inner.send::<fidl::encoding::ResultType<
43917            fidl::encoding::EmptyStruct,
43918            fidl_fuchsia_posix::Errno,
43919        >>(
43920            result,
43921            self.tx_id,
43922            0x4bc6400ae92125d,
43923            fidl::encoding::DynamicFlags::empty(),
43924        )
43925    }
43926}
43927
43928#[must_use = "FIDL methods require a response to be sent"]
43929#[derive(Debug)]
43930pub struct DatagramSocketConnectResponder {
43931    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43932    tx_id: u32,
43933}
43934
43935/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43936/// if the responder is dropped without sending a response, so that the client
43937/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43938impl std::ops::Drop for DatagramSocketConnectResponder {
43939    fn drop(&mut self) {
43940        self.control_handle.shutdown();
43941        // Safety: drops once, never accessed again
43942        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43943    }
43944}
43945
43946impl fidl::endpoints::Responder for DatagramSocketConnectResponder {
43947    type ControlHandle = DatagramSocketControlHandle;
43948
43949    fn control_handle(&self) -> &DatagramSocketControlHandle {
43950        &self.control_handle
43951    }
43952
43953    fn drop_without_shutdown(mut self) {
43954        // Safety: drops once, never accessed again due to mem::forget
43955        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43956        // Prevent Drop from running (which would shut down the channel)
43957        std::mem::forget(self);
43958    }
43959}
43960
43961impl DatagramSocketConnectResponder {
43962    /// Sends a response to the FIDL transaction.
43963    ///
43964    /// Sets the channel to shutdown if an error occurs.
43965    pub fn send(
43966        self,
43967        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43968    ) -> Result<(), fidl::Error> {
43969        let _result = self.send_raw(result);
43970        if _result.is_err() {
43971            self.control_handle.shutdown();
43972        }
43973        self.drop_without_shutdown();
43974        _result
43975    }
43976
43977    /// Similar to "send" but does not shutdown the channel if an error occurs.
43978    pub fn send_no_shutdown_on_err(
43979        self,
43980        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43981    ) -> Result<(), fidl::Error> {
43982        let _result = self.send_raw(result);
43983        self.drop_without_shutdown();
43984        _result
43985    }
43986
43987    fn send_raw(
43988        &self,
43989        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43990    ) -> Result<(), fidl::Error> {
43991        self.control_handle.inner.send::<fidl::encoding::ResultType<
43992            fidl::encoding::EmptyStruct,
43993            fidl_fuchsia_posix::Errno,
43994        >>(
43995            result,
43996            self.tx_id,
43997            0x5f05f19bfdd38871,
43998            fidl::encoding::DynamicFlags::empty(),
43999        )
44000    }
44001}
44002
44003#[must_use = "FIDL methods require a response to be sent"]
44004#[derive(Debug)]
44005pub struct DatagramSocketDisconnectResponder {
44006    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44007    tx_id: u32,
44008}
44009
44010/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44011/// if the responder is dropped without sending a response, so that the client
44012/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44013impl std::ops::Drop for DatagramSocketDisconnectResponder {
44014    fn drop(&mut self) {
44015        self.control_handle.shutdown();
44016        // Safety: drops once, never accessed again
44017        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44018    }
44019}
44020
44021impl fidl::endpoints::Responder for DatagramSocketDisconnectResponder {
44022    type ControlHandle = DatagramSocketControlHandle;
44023
44024    fn control_handle(&self) -> &DatagramSocketControlHandle {
44025        &self.control_handle
44026    }
44027
44028    fn drop_without_shutdown(mut self) {
44029        // Safety: drops once, never accessed again due to mem::forget
44030        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44031        // Prevent Drop from running (which would shut down the channel)
44032        std::mem::forget(self);
44033    }
44034}
44035
44036impl DatagramSocketDisconnectResponder {
44037    /// Sends a response to the FIDL transaction.
44038    ///
44039    /// Sets the channel to shutdown if an error occurs.
44040    pub fn send(
44041        self,
44042        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44043    ) -> Result<(), fidl::Error> {
44044        let _result = self.send_raw(result);
44045        if _result.is_err() {
44046            self.control_handle.shutdown();
44047        }
44048        self.drop_without_shutdown();
44049        _result
44050    }
44051
44052    /// Similar to "send" but does not shutdown the channel if an error occurs.
44053    pub fn send_no_shutdown_on_err(
44054        self,
44055        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44056    ) -> Result<(), fidl::Error> {
44057        let _result = self.send_raw(result);
44058        self.drop_without_shutdown();
44059        _result
44060    }
44061
44062    fn send_raw(
44063        &self,
44064        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44065    ) -> Result<(), fidl::Error> {
44066        self.control_handle.inner.send::<fidl::encoding::ResultType<
44067            fidl::encoding::EmptyStruct,
44068            fidl_fuchsia_posix::Errno,
44069        >>(
44070            result,
44071            self.tx_id,
44072            0x74e63b91f7b29b2,
44073            fidl::encoding::DynamicFlags::empty(),
44074        )
44075    }
44076}
44077
44078#[must_use = "FIDL methods require a response to be sent"]
44079#[derive(Debug)]
44080pub struct DatagramSocketGetSockNameResponder {
44081    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44082    tx_id: u32,
44083}
44084
44085/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44086/// if the responder is dropped without sending a response, so that the client
44087/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44088impl std::ops::Drop for DatagramSocketGetSockNameResponder {
44089    fn drop(&mut self) {
44090        self.control_handle.shutdown();
44091        // Safety: drops once, never accessed again
44092        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44093    }
44094}
44095
44096impl fidl::endpoints::Responder for DatagramSocketGetSockNameResponder {
44097    type ControlHandle = DatagramSocketControlHandle;
44098
44099    fn control_handle(&self) -> &DatagramSocketControlHandle {
44100        &self.control_handle
44101    }
44102
44103    fn drop_without_shutdown(mut self) {
44104        // Safety: drops once, never accessed again due to mem::forget
44105        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44106        // Prevent Drop from running (which would shut down the channel)
44107        std::mem::forget(self);
44108    }
44109}
44110
44111impl DatagramSocketGetSockNameResponder {
44112    /// Sends a response to the FIDL transaction.
44113    ///
44114    /// Sets the channel to shutdown if an error occurs.
44115    pub fn send(
44116        self,
44117        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44118    ) -> Result<(), fidl::Error> {
44119        let _result = self.send_raw(result);
44120        if _result.is_err() {
44121            self.control_handle.shutdown();
44122        }
44123        self.drop_without_shutdown();
44124        _result
44125    }
44126
44127    /// Similar to "send" but does not shutdown the channel if an error occurs.
44128    pub fn send_no_shutdown_on_err(
44129        self,
44130        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44131    ) -> Result<(), fidl::Error> {
44132        let _result = self.send_raw(result);
44133        self.drop_without_shutdown();
44134        _result
44135    }
44136
44137    fn send_raw(
44138        &self,
44139        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44140    ) -> Result<(), fidl::Error> {
44141        self.control_handle.inner.send::<fidl::encoding::ResultType<
44142            BaseNetworkSocketGetSockNameResponse,
44143            fidl_fuchsia_posix::Errno,
44144        >>(
44145            result.map(|addr| (addr,)),
44146            self.tx_id,
44147            0x475f23f84a1a4f85,
44148            fidl::encoding::DynamicFlags::empty(),
44149        )
44150    }
44151}
44152
44153#[must_use = "FIDL methods require a response to be sent"]
44154#[derive(Debug)]
44155pub struct DatagramSocketGetPeerNameResponder {
44156    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44157    tx_id: u32,
44158}
44159
44160/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44161/// if the responder is dropped without sending a response, so that the client
44162/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44163impl std::ops::Drop for DatagramSocketGetPeerNameResponder {
44164    fn drop(&mut self) {
44165        self.control_handle.shutdown();
44166        // Safety: drops once, never accessed again
44167        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44168    }
44169}
44170
44171impl fidl::endpoints::Responder for DatagramSocketGetPeerNameResponder {
44172    type ControlHandle = DatagramSocketControlHandle;
44173
44174    fn control_handle(&self) -> &DatagramSocketControlHandle {
44175        &self.control_handle
44176    }
44177
44178    fn drop_without_shutdown(mut self) {
44179        // Safety: drops once, never accessed again due to mem::forget
44180        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44181        // Prevent Drop from running (which would shut down the channel)
44182        std::mem::forget(self);
44183    }
44184}
44185
44186impl DatagramSocketGetPeerNameResponder {
44187    /// Sends a response to the FIDL transaction.
44188    ///
44189    /// Sets the channel to shutdown if an error occurs.
44190    pub fn send(
44191        self,
44192        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44193    ) -> Result<(), fidl::Error> {
44194        let _result = self.send_raw(result);
44195        if _result.is_err() {
44196            self.control_handle.shutdown();
44197        }
44198        self.drop_without_shutdown();
44199        _result
44200    }
44201
44202    /// Similar to "send" but does not shutdown the channel if an error occurs.
44203    pub fn send_no_shutdown_on_err(
44204        self,
44205        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44206    ) -> Result<(), fidl::Error> {
44207        let _result = self.send_raw(result);
44208        self.drop_without_shutdown();
44209        _result
44210    }
44211
44212    fn send_raw(
44213        &self,
44214        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44215    ) -> Result<(), fidl::Error> {
44216        self.control_handle.inner.send::<fidl::encoding::ResultType<
44217            BaseNetworkSocketGetPeerNameResponse,
44218            fidl_fuchsia_posix::Errno,
44219        >>(
44220            result.map(|addr| (addr,)),
44221            self.tx_id,
44222            0x1ffecf4bd5b6432e,
44223            fidl::encoding::DynamicFlags::empty(),
44224        )
44225    }
44226}
44227
44228#[must_use = "FIDL methods require a response to be sent"]
44229#[derive(Debug)]
44230pub struct DatagramSocketShutdownResponder {
44231    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44232    tx_id: u32,
44233}
44234
44235/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44236/// if the responder is dropped without sending a response, so that the client
44237/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44238impl std::ops::Drop for DatagramSocketShutdownResponder {
44239    fn drop(&mut self) {
44240        self.control_handle.shutdown();
44241        // Safety: drops once, never accessed again
44242        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44243    }
44244}
44245
44246impl fidl::endpoints::Responder for DatagramSocketShutdownResponder {
44247    type ControlHandle = DatagramSocketControlHandle;
44248
44249    fn control_handle(&self) -> &DatagramSocketControlHandle {
44250        &self.control_handle
44251    }
44252
44253    fn drop_without_shutdown(mut self) {
44254        // Safety: drops once, never accessed again due to mem::forget
44255        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44256        // Prevent Drop from running (which would shut down the channel)
44257        std::mem::forget(self);
44258    }
44259}
44260
44261impl DatagramSocketShutdownResponder {
44262    /// Sends a response to the FIDL transaction.
44263    ///
44264    /// Sets the channel to shutdown if an error occurs.
44265    pub fn send(
44266        self,
44267        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44268    ) -> Result<(), fidl::Error> {
44269        let _result = self.send_raw(result);
44270        if _result.is_err() {
44271            self.control_handle.shutdown();
44272        }
44273        self.drop_without_shutdown();
44274        _result
44275    }
44276
44277    /// Similar to "send" but does not shutdown the channel if an error occurs.
44278    pub fn send_no_shutdown_on_err(
44279        self,
44280        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44281    ) -> Result<(), fidl::Error> {
44282        let _result = self.send_raw(result);
44283        self.drop_without_shutdown();
44284        _result
44285    }
44286
44287    fn send_raw(
44288        &self,
44289        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44290    ) -> Result<(), fidl::Error> {
44291        self.control_handle.inner.send::<fidl::encoding::ResultType<
44292            fidl::encoding::EmptyStruct,
44293            fidl_fuchsia_posix::Errno,
44294        >>(
44295            result,
44296            self.tx_id,
44297            0x247f38b6db68c336,
44298            fidl::encoding::DynamicFlags::empty(),
44299        )
44300    }
44301}
44302
44303#[must_use = "FIDL methods require a response to be sent"]
44304#[derive(Debug)]
44305pub struct DatagramSocketSetIpTypeOfServiceResponder {
44306    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44307    tx_id: u32,
44308}
44309
44310/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44311/// if the responder is dropped without sending a response, so that the client
44312/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44313impl std::ops::Drop for DatagramSocketSetIpTypeOfServiceResponder {
44314    fn drop(&mut self) {
44315        self.control_handle.shutdown();
44316        // Safety: drops once, never accessed again
44317        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44318    }
44319}
44320
44321impl fidl::endpoints::Responder for DatagramSocketSetIpTypeOfServiceResponder {
44322    type ControlHandle = DatagramSocketControlHandle;
44323
44324    fn control_handle(&self) -> &DatagramSocketControlHandle {
44325        &self.control_handle
44326    }
44327
44328    fn drop_without_shutdown(mut self) {
44329        // Safety: drops once, never accessed again due to mem::forget
44330        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44331        // Prevent Drop from running (which would shut down the channel)
44332        std::mem::forget(self);
44333    }
44334}
44335
44336impl DatagramSocketSetIpTypeOfServiceResponder {
44337    /// Sends a response to the FIDL transaction.
44338    ///
44339    /// Sets the channel to shutdown if an error occurs.
44340    pub fn send(
44341        self,
44342        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44343    ) -> Result<(), fidl::Error> {
44344        let _result = self.send_raw(result);
44345        if _result.is_err() {
44346            self.control_handle.shutdown();
44347        }
44348        self.drop_without_shutdown();
44349        _result
44350    }
44351
44352    /// Similar to "send" but does not shutdown the channel if an error occurs.
44353    pub fn send_no_shutdown_on_err(
44354        self,
44355        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44356    ) -> Result<(), fidl::Error> {
44357        let _result = self.send_raw(result);
44358        self.drop_without_shutdown();
44359        _result
44360    }
44361
44362    fn send_raw(
44363        &self,
44364        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44365    ) -> Result<(), fidl::Error> {
44366        self.control_handle.inner.send::<fidl::encoding::ResultType<
44367            fidl::encoding::EmptyStruct,
44368            fidl_fuchsia_posix::Errno,
44369        >>(
44370            result,
44371            self.tx_id,
44372            0x995c600475b6d46,
44373            fidl::encoding::DynamicFlags::empty(),
44374        )
44375    }
44376}
44377
44378#[must_use = "FIDL methods require a response to be sent"]
44379#[derive(Debug)]
44380pub struct DatagramSocketGetIpTypeOfServiceResponder {
44381    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44382    tx_id: u32,
44383}
44384
44385/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44386/// if the responder is dropped without sending a response, so that the client
44387/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44388impl std::ops::Drop for DatagramSocketGetIpTypeOfServiceResponder {
44389    fn drop(&mut self) {
44390        self.control_handle.shutdown();
44391        // Safety: drops once, never accessed again
44392        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44393    }
44394}
44395
44396impl fidl::endpoints::Responder for DatagramSocketGetIpTypeOfServiceResponder {
44397    type ControlHandle = DatagramSocketControlHandle;
44398
44399    fn control_handle(&self) -> &DatagramSocketControlHandle {
44400        &self.control_handle
44401    }
44402
44403    fn drop_without_shutdown(mut self) {
44404        // Safety: drops once, never accessed again due to mem::forget
44405        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44406        // Prevent Drop from running (which would shut down the channel)
44407        std::mem::forget(self);
44408    }
44409}
44410
44411impl DatagramSocketGetIpTypeOfServiceResponder {
44412    /// Sends a response to the FIDL transaction.
44413    ///
44414    /// Sets the channel to shutdown if an error occurs.
44415    pub fn send(
44416        self,
44417        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44418    ) -> Result<(), fidl::Error> {
44419        let _result = self.send_raw(result);
44420        if _result.is_err() {
44421            self.control_handle.shutdown();
44422        }
44423        self.drop_without_shutdown();
44424        _result
44425    }
44426
44427    /// Similar to "send" but does not shutdown the channel if an error occurs.
44428    pub fn send_no_shutdown_on_err(
44429        self,
44430        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44431    ) -> Result<(), fidl::Error> {
44432        let _result = self.send_raw(result);
44433        self.drop_without_shutdown();
44434        _result
44435    }
44436
44437    fn send_raw(
44438        &self,
44439        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44440    ) -> Result<(), fidl::Error> {
44441        self.control_handle.inner.send::<fidl::encoding::ResultType<
44442            BaseNetworkSocketGetIpTypeOfServiceResponse,
44443            fidl_fuchsia_posix::Errno,
44444        >>(
44445            result.map(|value| (value,)),
44446            self.tx_id,
44447            0x3814a04259f75fcb,
44448            fidl::encoding::DynamicFlags::empty(),
44449        )
44450    }
44451}
44452
44453#[must_use = "FIDL methods require a response to be sent"]
44454#[derive(Debug)]
44455pub struct DatagramSocketSetIpTtlResponder {
44456    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44457    tx_id: u32,
44458}
44459
44460/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44461/// if the responder is dropped without sending a response, so that the client
44462/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44463impl std::ops::Drop for DatagramSocketSetIpTtlResponder {
44464    fn drop(&mut self) {
44465        self.control_handle.shutdown();
44466        // Safety: drops once, never accessed again
44467        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44468    }
44469}
44470
44471impl fidl::endpoints::Responder for DatagramSocketSetIpTtlResponder {
44472    type ControlHandle = DatagramSocketControlHandle;
44473
44474    fn control_handle(&self) -> &DatagramSocketControlHandle {
44475        &self.control_handle
44476    }
44477
44478    fn drop_without_shutdown(mut self) {
44479        // Safety: drops once, never accessed again due to mem::forget
44480        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44481        // Prevent Drop from running (which would shut down the channel)
44482        std::mem::forget(self);
44483    }
44484}
44485
44486impl DatagramSocketSetIpTtlResponder {
44487    /// Sends a response to the FIDL transaction.
44488    ///
44489    /// Sets the channel to shutdown if an error occurs.
44490    pub fn send(
44491        self,
44492        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44493    ) -> Result<(), fidl::Error> {
44494        let _result = self.send_raw(result);
44495        if _result.is_err() {
44496            self.control_handle.shutdown();
44497        }
44498        self.drop_without_shutdown();
44499        _result
44500    }
44501
44502    /// Similar to "send" but does not shutdown the channel if an error occurs.
44503    pub fn send_no_shutdown_on_err(
44504        self,
44505        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44506    ) -> Result<(), fidl::Error> {
44507        let _result = self.send_raw(result);
44508        self.drop_without_shutdown();
44509        _result
44510    }
44511
44512    fn send_raw(
44513        &self,
44514        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44515    ) -> Result<(), fidl::Error> {
44516        self.control_handle.inner.send::<fidl::encoding::ResultType<
44517            fidl::encoding::EmptyStruct,
44518            fidl_fuchsia_posix::Errno,
44519        >>(
44520            result,
44521            self.tx_id,
44522            0x29e2424b433ae1ef,
44523            fidl::encoding::DynamicFlags::empty(),
44524        )
44525    }
44526}
44527
44528#[must_use = "FIDL methods require a response to be sent"]
44529#[derive(Debug)]
44530pub struct DatagramSocketGetIpTtlResponder {
44531    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44532    tx_id: u32,
44533}
44534
44535/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44536/// if the responder is dropped without sending a response, so that the client
44537/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44538impl std::ops::Drop for DatagramSocketGetIpTtlResponder {
44539    fn drop(&mut self) {
44540        self.control_handle.shutdown();
44541        // Safety: drops once, never accessed again
44542        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44543    }
44544}
44545
44546impl fidl::endpoints::Responder for DatagramSocketGetIpTtlResponder {
44547    type ControlHandle = DatagramSocketControlHandle;
44548
44549    fn control_handle(&self) -> &DatagramSocketControlHandle {
44550        &self.control_handle
44551    }
44552
44553    fn drop_without_shutdown(mut self) {
44554        // Safety: drops once, never accessed again due to mem::forget
44555        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44556        // Prevent Drop from running (which would shut down the channel)
44557        std::mem::forget(self);
44558    }
44559}
44560
44561impl DatagramSocketGetIpTtlResponder {
44562    /// Sends a response to the FIDL transaction.
44563    ///
44564    /// Sets the channel to shutdown if an error occurs.
44565    pub fn send(
44566        self,
44567        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44568    ) -> Result<(), fidl::Error> {
44569        let _result = self.send_raw(result);
44570        if _result.is_err() {
44571            self.control_handle.shutdown();
44572        }
44573        self.drop_without_shutdown();
44574        _result
44575    }
44576
44577    /// Similar to "send" but does not shutdown the channel if an error occurs.
44578    pub fn send_no_shutdown_on_err(
44579        self,
44580        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44581    ) -> Result<(), fidl::Error> {
44582        let _result = self.send_raw(result);
44583        self.drop_without_shutdown();
44584        _result
44585    }
44586
44587    fn send_raw(
44588        &self,
44589        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44590    ) -> Result<(), fidl::Error> {
44591        self.control_handle.inner.send::<fidl::encoding::ResultType<
44592            BaseNetworkSocketGetIpTtlResponse,
44593            fidl_fuchsia_posix::Errno,
44594        >>(
44595            result.map(|value| (value,)),
44596            self.tx_id,
44597            0x47e47fa1f24da471,
44598            fidl::encoding::DynamicFlags::empty(),
44599        )
44600    }
44601}
44602
44603#[must_use = "FIDL methods require a response to be sent"]
44604#[derive(Debug)]
44605pub struct DatagramSocketSetIpPacketInfoResponder {
44606    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44607    tx_id: u32,
44608}
44609
44610/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44611/// if the responder is dropped without sending a response, so that the client
44612/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44613impl std::ops::Drop for DatagramSocketSetIpPacketInfoResponder {
44614    fn drop(&mut self) {
44615        self.control_handle.shutdown();
44616        // Safety: drops once, never accessed again
44617        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44618    }
44619}
44620
44621impl fidl::endpoints::Responder for DatagramSocketSetIpPacketInfoResponder {
44622    type ControlHandle = DatagramSocketControlHandle;
44623
44624    fn control_handle(&self) -> &DatagramSocketControlHandle {
44625        &self.control_handle
44626    }
44627
44628    fn drop_without_shutdown(mut self) {
44629        // Safety: drops once, never accessed again due to mem::forget
44630        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44631        // Prevent Drop from running (which would shut down the channel)
44632        std::mem::forget(self);
44633    }
44634}
44635
44636impl DatagramSocketSetIpPacketInfoResponder {
44637    /// Sends a response to the FIDL transaction.
44638    ///
44639    /// Sets the channel to shutdown if an error occurs.
44640    pub fn send(
44641        self,
44642        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44643    ) -> Result<(), fidl::Error> {
44644        let _result = self.send_raw(result);
44645        if _result.is_err() {
44646            self.control_handle.shutdown();
44647        }
44648        self.drop_without_shutdown();
44649        _result
44650    }
44651
44652    /// Similar to "send" but does not shutdown the channel if an error occurs.
44653    pub fn send_no_shutdown_on_err(
44654        self,
44655        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44656    ) -> Result<(), fidl::Error> {
44657        let _result = self.send_raw(result);
44658        self.drop_without_shutdown();
44659        _result
44660    }
44661
44662    fn send_raw(
44663        &self,
44664        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44665    ) -> Result<(), fidl::Error> {
44666        self.control_handle.inner.send::<fidl::encoding::ResultType<
44667            fidl::encoding::EmptyStruct,
44668            fidl_fuchsia_posix::Errno,
44669        >>(
44670            result,
44671            self.tx_id,
44672            0x392d16bee20c0e16,
44673            fidl::encoding::DynamicFlags::empty(),
44674        )
44675    }
44676}
44677
44678#[must_use = "FIDL methods require a response to be sent"]
44679#[derive(Debug)]
44680pub struct DatagramSocketGetIpPacketInfoResponder {
44681    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44682    tx_id: u32,
44683}
44684
44685/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44686/// if the responder is dropped without sending a response, so that the client
44687/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44688impl std::ops::Drop for DatagramSocketGetIpPacketInfoResponder {
44689    fn drop(&mut self) {
44690        self.control_handle.shutdown();
44691        // Safety: drops once, never accessed again
44692        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44693    }
44694}
44695
44696impl fidl::endpoints::Responder for DatagramSocketGetIpPacketInfoResponder {
44697    type ControlHandle = DatagramSocketControlHandle;
44698
44699    fn control_handle(&self) -> &DatagramSocketControlHandle {
44700        &self.control_handle
44701    }
44702
44703    fn drop_without_shutdown(mut self) {
44704        // Safety: drops once, never accessed again due to mem::forget
44705        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44706        // Prevent Drop from running (which would shut down the channel)
44707        std::mem::forget(self);
44708    }
44709}
44710
44711impl DatagramSocketGetIpPacketInfoResponder {
44712    /// Sends a response to the FIDL transaction.
44713    ///
44714    /// Sets the channel to shutdown if an error occurs.
44715    pub fn send(
44716        self,
44717        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44718    ) -> Result<(), fidl::Error> {
44719        let _result = self.send_raw(result);
44720        if _result.is_err() {
44721            self.control_handle.shutdown();
44722        }
44723        self.drop_without_shutdown();
44724        _result
44725    }
44726
44727    /// Similar to "send" but does not shutdown the channel if an error occurs.
44728    pub fn send_no_shutdown_on_err(
44729        self,
44730        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44731    ) -> Result<(), fidl::Error> {
44732        let _result = self.send_raw(result);
44733        self.drop_without_shutdown();
44734        _result
44735    }
44736
44737    fn send_raw(
44738        &self,
44739        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44740    ) -> Result<(), fidl::Error> {
44741        self.control_handle.inner.send::<fidl::encoding::ResultType<
44742            BaseNetworkSocketGetIpPacketInfoResponse,
44743            fidl_fuchsia_posix::Errno,
44744        >>(
44745            result.map(|value| (value,)),
44746            self.tx_id,
44747            0x54b505f242280740,
44748            fidl::encoding::DynamicFlags::empty(),
44749        )
44750    }
44751}
44752
44753#[must_use = "FIDL methods require a response to be sent"]
44754#[derive(Debug)]
44755pub struct DatagramSocketSetIpReceiveTypeOfServiceResponder {
44756    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44757    tx_id: u32,
44758}
44759
44760/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44761/// if the responder is dropped without sending a response, so that the client
44762/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44763impl std::ops::Drop for DatagramSocketSetIpReceiveTypeOfServiceResponder {
44764    fn drop(&mut self) {
44765        self.control_handle.shutdown();
44766        // Safety: drops once, never accessed again
44767        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44768    }
44769}
44770
44771impl fidl::endpoints::Responder for DatagramSocketSetIpReceiveTypeOfServiceResponder {
44772    type ControlHandle = DatagramSocketControlHandle;
44773
44774    fn control_handle(&self) -> &DatagramSocketControlHandle {
44775        &self.control_handle
44776    }
44777
44778    fn drop_without_shutdown(mut self) {
44779        // Safety: drops once, never accessed again due to mem::forget
44780        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44781        // Prevent Drop from running (which would shut down the channel)
44782        std::mem::forget(self);
44783    }
44784}
44785
44786impl DatagramSocketSetIpReceiveTypeOfServiceResponder {
44787    /// Sends a response to the FIDL transaction.
44788    ///
44789    /// Sets the channel to shutdown if an error occurs.
44790    pub fn send(
44791        self,
44792        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44793    ) -> Result<(), fidl::Error> {
44794        let _result = self.send_raw(result);
44795        if _result.is_err() {
44796            self.control_handle.shutdown();
44797        }
44798        self.drop_without_shutdown();
44799        _result
44800    }
44801
44802    /// Similar to "send" but does not shutdown the channel if an error occurs.
44803    pub fn send_no_shutdown_on_err(
44804        self,
44805        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44806    ) -> Result<(), fidl::Error> {
44807        let _result = self.send_raw(result);
44808        self.drop_without_shutdown();
44809        _result
44810    }
44811
44812    fn send_raw(
44813        &self,
44814        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44815    ) -> Result<(), fidl::Error> {
44816        self.control_handle.inner.send::<fidl::encoding::ResultType<
44817            fidl::encoding::EmptyStruct,
44818            fidl_fuchsia_posix::Errno,
44819        >>(
44820            result,
44821            self.tx_id,
44822            0x6c4f6714995f84ef,
44823            fidl::encoding::DynamicFlags::empty(),
44824        )
44825    }
44826}
44827
44828#[must_use = "FIDL methods require a response to be sent"]
44829#[derive(Debug)]
44830pub struct DatagramSocketGetIpReceiveTypeOfServiceResponder {
44831    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44832    tx_id: u32,
44833}
44834
44835/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44836/// if the responder is dropped without sending a response, so that the client
44837/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44838impl std::ops::Drop for DatagramSocketGetIpReceiveTypeOfServiceResponder {
44839    fn drop(&mut self) {
44840        self.control_handle.shutdown();
44841        // Safety: drops once, never accessed again
44842        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44843    }
44844}
44845
44846impl fidl::endpoints::Responder for DatagramSocketGetIpReceiveTypeOfServiceResponder {
44847    type ControlHandle = DatagramSocketControlHandle;
44848
44849    fn control_handle(&self) -> &DatagramSocketControlHandle {
44850        &self.control_handle
44851    }
44852
44853    fn drop_without_shutdown(mut self) {
44854        // Safety: drops once, never accessed again due to mem::forget
44855        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44856        // Prevent Drop from running (which would shut down the channel)
44857        std::mem::forget(self);
44858    }
44859}
44860
44861impl DatagramSocketGetIpReceiveTypeOfServiceResponder {
44862    /// Sends a response to the FIDL transaction.
44863    ///
44864    /// Sets the channel to shutdown if an error occurs.
44865    pub fn send(
44866        self,
44867        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44868    ) -> Result<(), fidl::Error> {
44869        let _result = self.send_raw(result);
44870        if _result.is_err() {
44871            self.control_handle.shutdown();
44872        }
44873        self.drop_without_shutdown();
44874        _result
44875    }
44876
44877    /// Similar to "send" but does not shutdown the channel if an error occurs.
44878    pub fn send_no_shutdown_on_err(
44879        self,
44880        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44881    ) -> Result<(), fidl::Error> {
44882        let _result = self.send_raw(result);
44883        self.drop_without_shutdown();
44884        _result
44885    }
44886
44887    fn send_raw(
44888        &self,
44889        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44890    ) -> Result<(), fidl::Error> {
44891        self.control_handle.inner.send::<fidl::encoding::ResultType<
44892            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
44893            fidl_fuchsia_posix::Errno,
44894        >>(
44895            result.map(|value| (value,)),
44896            self.tx_id,
44897            0x4158ba7dc2795960,
44898            fidl::encoding::DynamicFlags::empty(),
44899        )
44900    }
44901}
44902
44903#[must_use = "FIDL methods require a response to be sent"]
44904#[derive(Debug)]
44905pub struct DatagramSocketSetIpReceiveTtlResponder {
44906    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44907    tx_id: u32,
44908}
44909
44910/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44911/// if the responder is dropped without sending a response, so that the client
44912/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44913impl std::ops::Drop for DatagramSocketSetIpReceiveTtlResponder {
44914    fn drop(&mut self) {
44915        self.control_handle.shutdown();
44916        // Safety: drops once, never accessed again
44917        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44918    }
44919}
44920
44921impl fidl::endpoints::Responder for DatagramSocketSetIpReceiveTtlResponder {
44922    type ControlHandle = DatagramSocketControlHandle;
44923
44924    fn control_handle(&self) -> &DatagramSocketControlHandle {
44925        &self.control_handle
44926    }
44927
44928    fn drop_without_shutdown(mut self) {
44929        // Safety: drops once, never accessed again due to mem::forget
44930        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44931        // Prevent Drop from running (which would shut down the channel)
44932        std::mem::forget(self);
44933    }
44934}
44935
44936impl DatagramSocketSetIpReceiveTtlResponder {
44937    /// Sends a response to the FIDL transaction.
44938    ///
44939    /// Sets the channel to shutdown if an error occurs.
44940    pub fn send(
44941        self,
44942        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44943    ) -> Result<(), fidl::Error> {
44944        let _result = self.send_raw(result);
44945        if _result.is_err() {
44946            self.control_handle.shutdown();
44947        }
44948        self.drop_without_shutdown();
44949        _result
44950    }
44951
44952    /// Similar to "send" but does not shutdown the channel if an error occurs.
44953    pub fn send_no_shutdown_on_err(
44954        self,
44955        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44956    ) -> Result<(), fidl::Error> {
44957        let _result = self.send_raw(result);
44958        self.drop_without_shutdown();
44959        _result
44960    }
44961
44962    fn send_raw(
44963        &self,
44964        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44965    ) -> Result<(), fidl::Error> {
44966        self.control_handle.inner.send::<fidl::encoding::ResultType<
44967            fidl::encoding::EmptyStruct,
44968            fidl_fuchsia_posix::Errno,
44969        >>(
44970            result,
44971            self.tx_id,
44972            0x46f15be0ce0ab82b,
44973            fidl::encoding::DynamicFlags::empty(),
44974        )
44975    }
44976}
44977
44978#[must_use = "FIDL methods require a response to be sent"]
44979#[derive(Debug)]
44980pub struct DatagramSocketGetIpReceiveTtlResponder {
44981    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44982    tx_id: u32,
44983}
44984
44985/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44986/// if the responder is dropped without sending a response, so that the client
44987/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44988impl std::ops::Drop for DatagramSocketGetIpReceiveTtlResponder {
44989    fn drop(&mut self) {
44990        self.control_handle.shutdown();
44991        // Safety: drops once, never accessed again
44992        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44993    }
44994}
44995
44996impl fidl::endpoints::Responder for DatagramSocketGetIpReceiveTtlResponder {
44997    type ControlHandle = DatagramSocketControlHandle;
44998
44999    fn control_handle(&self) -> &DatagramSocketControlHandle {
45000        &self.control_handle
45001    }
45002
45003    fn drop_without_shutdown(mut self) {
45004        // Safety: drops once, never accessed again due to mem::forget
45005        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45006        // Prevent Drop from running (which would shut down the channel)
45007        std::mem::forget(self);
45008    }
45009}
45010
45011impl DatagramSocketGetIpReceiveTtlResponder {
45012    /// Sends a response to the FIDL transaction.
45013    ///
45014    /// Sets the channel to shutdown if an error occurs.
45015    pub fn send(
45016        self,
45017        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45018    ) -> Result<(), fidl::Error> {
45019        let _result = self.send_raw(result);
45020        if _result.is_err() {
45021            self.control_handle.shutdown();
45022        }
45023        self.drop_without_shutdown();
45024        _result
45025    }
45026
45027    /// Similar to "send" but does not shutdown the channel if an error occurs.
45028    pub fn send_no_shutdown_on_err(
45029        self,
45030        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45031    ) -> Result<(), fidl::Error> {
45032        let _result = self.send_raw(result);
45033        self.drop_without_shutdown();
45034        _result
45035    }
45036
45037    fn send_raw(
45038        &self,
45039        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45040    ) -> Result<(), fidl::Error> {
45041        self.control_handle.inner.send::<fidl::encoding::ResultType<
45042            BaseNetworkSocketGetIpReceiveTtlResponse,
45043            fidl_fuchsia_posix::Errno,
45044        >>(
45045            result.map(|value| (value,)),
45046            self.tx_id,
45047            0x678ddd5a5dfa2eb5,
45048            fidl::encoding::DynamicFlags::empty(),
45049        )
45050    }
45051}
45052
45053#[must_use = "FIDL methods require a response to be sent"]
45054#[derive(Debug)]
45055pub struct DatagramSocketSetIpMulticastInterfaceResponder {
45056    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45057    tx_id: u32,
45058}
45059
45060/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45061/// if the responder is dropped without sending a response, so that the client
45062/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45063impl std::ops::Drop for DatagramSocketSetIpMulticastInterfaceResponder {
45064    fn drop(&mut self) {
45065        self.control_handle.shutdown();
45066        // Safety: drops once, never accessed again
45067        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45068    }
45069}
45070
45071impl fidl::endpoints::Responder for DatagramSocketSetIpMulticastInterfaceResponder {
45072    type ControlHandle = DatagramSocketControlHandle;
45073
45074    fn control_handle(&self) -> &DatagramSocketControlHandle {
45075        &self.control_handle
45076    }
45077
45078    fn drop_without_shutdown(mut self) {
45079        // Safety: drops once, never accessed again due to mem::forget
45080        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45081        // Prevent Drop from running (which would shut down the channel)
45082        std::mem::forget(self);
45083    }
45084}
45085
45086impl DatagramSocketSetIpMulticastInterfaceResponder {
45087    /// Sends a response to the FIDL transaction.
45088    ///
45089    /// Sets the channel to shutdown if an error occurs.
45090    pub fn send(
45091        self,
45092        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45093    ) -> Result<(), fidl::Error> {
45094        let _result = self.send_raw(result);
45095        if _result.is_err() {
45096            self.control_handle.shutdown();
45097        }
45098        self.drop_without_shutdown();
45099        _result
45100    }
45101
45102    /// Similar to "send" but does not shutdown the channel if an error occurs.
45103    pub fn send_no_shutdown_on_err(
45104        self,
45105        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45106    ) -> Result<(), fidl::Error> {
45107        let _result = self.send_raw(result);
45108        self.drop_without_shutdown();
45109        _result
45110    }
45111
45112    fn send_raw(
45113        &self,
45114        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45115    ) -> Result<(), fidl::Error> {
45116        self.control_handle.inner.send::<fidl::encoding::ResultType<
45117            fidl::encoding::EmptyStruct,
45118            fidl_fuchsia_posix::Errno,
45119        >>(
45120            result,
45121            self.tx_id,
45122            0x752fbfa9b12befe,
45123            fidl::encoding::DynamicFlags::empty(),
45124        )
45125    }
45126}
45127
45128#[must_use = "FIDL methods require a response to be sent"]
45129#[derive(Debug)]
45130pub struct DatagramSocketGetIpMulticastInterfaceResponder {
45131    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45132    tx_id: u32,
45133}
45134
45135/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45136/// if the responder is dropped without sending a response, so that the client
45137/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45138impl std::ops::Drop for DatagramSocketGetIpMulticastInterfaceResponder {
45139    fn drop(&mut self) {
45140        self.control_handle.shutdown();
45141        // Safety: drops once, never accessed again
45142        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45143    }
45144}
45145
45146impl fidl::endpoints::Responder for DatagramSocketGetIpMulticastInterfaceResponder {
45147    type ControlHandle = DatagramSocketControlHandle;
45148
45149    fn control_handle(&self) -> &DatagramSocketControlHandle {
45150        &self.control_handle
45151    }
45152
45153    fn drop_without_shutdown(mut self) {
45154        // Safety: drops once, never accessed again due to mem::forget
45155        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45156        // Prevent Drop from running (which would shut down the channel)
45157        std::mem::forget(self);
45158    }
45159}
45160
45161impl DatagramSocketGetIpMulticastInterfaceResponder {
45162    /// Sends a response to the FIDL transaction.
45163    ///
45164    /// Sets the channel to shutdown if an error occurs.
45165    pub fn send(
45166        self,
45167        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
45168    ) -> Result<(), fidl::Error> {
45169        let _result = self.send_raw(result);
45170        if _result.is_err() {
45171            self.control_handle.shutdown();
45172        }
45173        self.drop_without_shutdown();
45174        _result
45175    }
45176
45177    /// Similar to "send" but does not shutdown the channel if an error occurs.
45178    pub fn send_no_shutdown_on_err(
45179        self,
45180        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
45181    ) -> Result<(), fidl::Error> {
45182        let _result = self.send_raw(result);
45183        self.drop_without_shutdown();
45184        _result
45185    }
45186
45187    fn send_raw(
45188        &self,
45189        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
45190    ) -> Result<(), fidl::Error> {
45191        self.control_handle.inner.send::<fidl::encoding::ResultType<
45192            BaseNetworkSocketGetIpMulticastInterfaceResponse,
45193            fidl_fuchsia_posix::Errno,
45194        >>(
45195            result.map(|value| (value,)),
45196            self.tx_id,
45197            0x320bd14c4df046c4,
45198            fidl::encoding::DynamicFlags::empty(),
45199        )
45200    }
45201}
45202
45203#[must_use = "FIDL methods require a response to be sent"]
45204#[derive(Debug)]
45205pub struct DatagramSocketSetIpMulticastTtlResponder {
45206    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45207    tx_id: u32,
45208}
45209
45210/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45211/// if the responder is dropped without sending a response, so that the client
45212/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45213impl std::ops::Drop for DatagramSocketSetIpMulticastTtlResponder {
45214    fn drop(&mut self) {
45215        self.control_handle.shutdown();
45216        // Safety: drops once, never accessed again
45217        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45218    }
45219}
45220
45221impl fidl::endpoints::Responder for DatagramSocketSetIpMulticastTtlResponder {
45222    type ControlHandle = DatagramSocketControlHandle;
45223
45224    fn control_handle(&self) -> &DatagramSocketControlHandle {
45225        &self.control_handle
45226    }
45227
45228    fn drop_without_shutdown(mut self) {
45229        // Safety: drops once, never accessed again due to mem::forget
45230        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45231        // Prevent Drop from running (which would shut down the channel)
45232        std::mem::forget(self);
45233    }
45234}
45235
45236impl DatagramSocketSetIpMulticastTtlResponder {
45237    /// Sends a response to the FIDL transaction.
45238    ///
45239    /// Sets the channel to shutdown if an error occurs.
45240    pub fn send(
45241        self,
45242        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45243    ) -> Result<(), fidl::Error> {
45244        let _result = self.send_raw(result);
45245        if _result.is_err() {
45246            self.control_handle.shutdown();
45247        }
45248        self.drop_without_shutdown();
45249        _result
45250    }
45251
45252    /// Similar to "send" but does not shutdown the channel if an error occurs.
45253    pub fn send_no_shutdown_on_err(
45254        self,
45255        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45256    ) -> Result<(), fidl::Error> {
45257        let _result = self.send_raw(result);
45258        self.drop_without_shutdown();
45259        _result
45260    }
45261
45262    fn send_raw(
45263        &self,
45264        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45265    ) -> Result<(), fidl::Error> {
45266        self.control_handle.inner.send::<fidl::encoding::ResultType<
45267            fidl::encoding::EmptyStruct,
45268            fidl_fuchsia_posix::Errno,
45269        >>(
45270            result,
45271            self.tx_id,
45272            0x63134d53772916a1,
45273            fidl::encoding::DynamicFlags::empty(),
45274        )
45275    }
45276}
45277
45278#[must_use = "FIDL methods require a response to be sent"]
45279#[derive(Debug)]
45280pub struct DatagramSocketGetIpMulticastTtlResponder {
45281    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45282    tx_id: u32,
45283}
45284
45285/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45286/// if the responder is dropped without sending a response, so that the client
45287/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45288impl std::ops::Drop for DatagramSocketGetIpMulticastTtlResponder {
45289    fn drop(&mut self) {
45290        self.control_handle.shutdown();
45291        // Safety: drops once, never accessed again
45292        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45293    }
45294}
45295
45296impl fidl::endpoints::Responder for DatagramSocketGetIpMulticastTtlResponder {
45297    type ControlHandle = DatagramSocketControlHandle;
45298
45299    fn control_handle(&self) -> &DatagramSocketControlHandle {
45300        &self.control_handle
45301    }
45302
45303    fn drop_without_shutdown(mut self) {
45304        // Safety: drops once, never accessed again due to mem::forget
45305        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45306        // Prevent Drop from running (which would shut down the channel)
45307        std::mem::forget(self);
45308    }
45309}
45310
45311impl DatagramSocketGetIpMulticastTtlResponder {
45312    /// Sends a response to the FIDL transaction.
45313    ///
45314    /// Sets the channel to shutdown if an error occurs.
45315    pub fn send(
45316        self,
45317        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45318    ) -> Result<(), fidl::Error> {
45319        let _result = self.send_raw(result);
45320        if _result.is_err() {
45321            self.control_handle.shutdown();
45322        }
45323        self.drop_without_shutdown();
45324        _result
45325    }
45326
45327    /// Similar to "send" but does not shutdown the channel if an error occurs.
45328    pub fn send_no_shutdown_on_err(
45329        self,
45330        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45331    ) -> Result<(), fidl::Error> {
45332        let _result = self.send_raw(result);
45333        self.drop_without_shutdown();
45334        _result
45335    }
45336
45337    fn send_raw(
45338        &self,
45339        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45340    ) -> Result<(), fidl::Error> {
45341        self.control_handle.inner.send::<fidl::encoding::ResultType<
45342            BaseNetworkSocketGetIpMulticastTtlResponse,
45343            fidl_fuchsia_posix::Errno,
45344        >>(
45345            result.map(|value| (value,)),
45346            self.tx_id,
45347            0x4665cd378f39e1a,
45348            fidl::encoding::DynamicFlags::empty(),
45349        )
45350    }
45351}
45352
45353#[must_use = "FIDL methods require a response to be sent"]
45354#[derive(Debug)]
45355pub struct DatagramSocketSetIpMulticastLoopbackResponder {
45356    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45357    tx_id: u32,
45358}
45359
45360/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45361/// if the responder is dropped without sending a response, so that the client
45362/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45363impl std::ops::Drop for DatagramSocketSetIpMulticastLoopbackResponder {
45364    fn drop(&mut self) {
45365        self.control_handle.shutdown();
45366        // Safety: drops once, never accessed again
45367        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45368    }
45369}
45370
45371impl fidl::endpoints::Responder for DatagramSocketSetIpMulticastLoopbackResponder {
45372    type ControlHandle = DatagramSocketControlHandle;
45373
45374    fn control_handle(&self) -> &DatagramSocketControlHandle {
45375        &self.control_handle
45376    }
45377
45378    fn drop_without_shutdown(mut self) {
45379        // Safety: drops once, never accessed again due to mem::forget
45380        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45381        // Prevent Drop from running (which would shut down the channel)
45382        std::mem::forget(self);
45383    }
45384}
45385
45386impl DatagramSocketSetIpMulticastLoopbackResponder {
45387    /// Sends a response to the FIDL transaction.
45388    ///
45389    /// Sets the channel to shutdown if an error occurs.
45390    pub fn send(
45391        self,
45392        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45393    ) -> Result<(), fidl::Error> {
45394        let _result = self.send_raw(result);
45395        if _result.is_err() {
45396            self.control_handle.shutdown();
45397        }
45398        self.drop_without_shutdown();
45399        _result
45400    }
45401
45402    /// Similar to "send" but does not shutdown the channel if an error occurs.
45403    pub fn send_no_shutdown_on_err(
45404        self,
45405        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45406    ) -> Result<(), fidl::Error> {
45407        let _result = self.send_raw(result);
45408        self.drop_without_shutdown();
45409        _result
45410    }
45411
45412    fn send_raw(
45413        &self,
45414        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45415    ) -> Result<(), fidl::Error> {
45416        self.control_handle.inner.send::<fidl::encoding::ResultType<
45417            fidl::encoding::EmptyStruct,
45418            fidl_fuchsia_posix::Errno,
45419        >>(
45420            result,
45421            self.tx_id,
45422            0x20c55c11f00943ea,
45423            fidl::encoding::DynamicFlags::empty(),
45424        )
45425    }
45426}
45427
45428#[must_use = "FIDL methods require a response to be sent"]
45429#[derive(Debug)]
45430pub struct DatagramSocketGetIpMulticastLoopbackResponder {
45431    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45432    tx_id: u32,
45433}
45434
45435/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45436/// if the responder is dropped without sending a response, so that the client
45437/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45438impl std::ops::Drop for DatagramSocketGetIpMulticastLoopbackResponder {
45439    fn drop(&mut self) {
45440        self.control_handle.shutdown();
45441        // Safety: drops once, never accessed again
45442        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45443    }
45444}
45445
45446impl fidl::endpoints::Responder for DatagramSocketGetIpMulticastLoopbackResponder {
45447    type ControlHandle = DatagramSocketControlHandle;
45448
45449    fn control_handle(&self) -> &DatagramSocketControlHandle {
45450        &self.control_handle
45451    }
45452
45453    fn drop_without_shutdown(mut self) {
45454        // Safety: drops once, never accessed again due to mem::forget
45455        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45456        // Prevent Drop from running (which would shut down the channel)
45457        std::mem::forget(self);
45458    }
45459}
45460
45461impl DatagramSocketGetIpMulticastLoopbackResponder {
45462    /// Sends a response to the FIDL transaction.
45463    ///
45464    /// Sets the channel to shutdown if an error occurs.
45465    pub fn send(
45466        self,
45467        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45468    ) -> Result<(), fidl::Error> {
45469        let _result = self.send_raw(result);
45470        if _result.is_err() {
45471            self.control_handle.shutdown();
45472        }
45473        self.drop_without_shutdown();
45474        _result
45475    }
45476
45477    /// Similar to "send" but does not shutdown the channel if an error occurs.
45478    pub fn send_no_shutdown_on_err(
45479        self,
45480        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45481    ) -> Result<(), fidl::Error> {
45482        let _result = self.send_raw(result);
45483        self.drop_without_shutdown();
45484        _result
45485    }
45486
45487    fn send_raw(
45488        &self,
45489        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45490    ) -> Result<(), fidl::Error> {
45491        self.control_handle.inner.send::<fidl::encoding::ResultType<
45492            BaseNetworkSocketGetIpMulticastLoopbackResponse,
45493            fidl_fuchsia_posix::Errno,
45494        >>(
45495            result.map(|value| (value,)),
45496            self.tx_id,
45497            0x3b6b26ff558298f2,
45498            fidl::encoding::DynamicFlags::empty(),
45499        )
45500    }
45501}
45502
45503#[must_use = "FIDL methods require a response to be sent"]
45504#[derive(Debug)]
45505pub struct DatagramSocketAddIpMembershipResponder {
45506    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45507    tx_id: u32,
45508}
45509
45510/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45511/// if the responder is dropped without sending a response, so that the client
45512/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45513impl std::ops::Drop for DatagramSocketAddIpMembershipResponder {
45514    fn drop(&mut self) {
45515        self.control_handle.shutdown();
45516        // Safety: drops once, never accessed again
45517        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45518    }
45519}
45520
45521impl fidl::endpoints::Responder for DatagramSocketAddIpMembershipResponder {
45522    type ControlHandle = DatagramSocketControlHandle;
45523
45524    fn control_handle(&self) -> &DatagramSocketControlHandle {
45525        &self.control_handle
45526    }
45527
45528    fn drop_without_shutdown(mut self) {
45529        // Safety: drops once, never accessed again due to mem::forget
45530        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45531        // Prevent Drop from running (which would shut down the channel)
45532        std::mem::forget(self);
45533    }
45534}
45535
45536impl DatagramSocketAddIpMembershipResponder {
45537    /// Sends a response to the FIDL transaction.
45538    ///
45539    /// Sets the channel to shutdown if an error occurs.
45540    pub fn send(
45541        self,
45542        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45543    ) -> Result<(), fidl::Error> {
45544        let _result = self.send_raw(result);
45545        if _result.is_err() {
45546            self.control_handle.shutdown();
45547        }
45548        self.drop_without_shutdown();
45549        _result
45550    }
45551
45552    /// Similar to "send" but does not shutdown the channel if an error occurs.
45553    pub fn send_no_shutdown_on_err(
45554        self,
45555        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45556    ) -> Result<(), fidl::Error> {
45557        let _result = self.send_raw(result);
45558        self.drop_without_shutdown();
45559        _result
45560    }
45561
45562    fn send_raw(
45563        &self,
45564        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45565    ) -> Result<(), fidl::Error> {
45566        self.control_handle.inner.send::<fidl::encoding::ResultType<
45567            fidl::encoding::EmptyStruct,
45568            fidl_fuchsia_posix::Errno,
45569        >>(
45570            result,
45571            self.tx_id,
45572            0x76bc7df115a3b4d0,
45573            fidl::encoding::DynamicFlags::empty(),
45574        )
45575    }
45576}
45577
45578#[must_use = "FIDL methods require a response to be sent"]
45579#[derive(Debug)]
45580pub struct DatagramSocketDropIpMembershipResponder {
45581    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45582    tx_id: u32,
45583}
45584
45585/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45586/// if the responder is dropped without sending a response, so that the client
45587/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45588impl std::ops::Drop for DatagramSocketDropIpMembershipResponder {
45589    fn drop(&mut self) {
45590        self.control_handle.shutdown();
45591        // Safety: drops once, never accessed again
45592        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45593    }
45594}
45595
45596impl fidl::endpoints::Responder for DatagramSocketDropIpMembershipResponder {
45597    type ControlHandle = DatagramSocketControlHandle;
45598
45599    fn control_handle(&self) -> &DatagramSocketControlHandle {
45600        &self.control_handle
45601    }
45602
45603    fn drop_without_shutdown(mut self) {
45604        // Safety: drops once, never accessed again due to mem::forget
45605        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45606        // Prevent Drop from running (which would shut down the channel)
45607        std::mem::forget(self);
45608    }
45609}
45610
45611impl DatagramSocketDropIpMembershipResponder {
45612    /// Sends a response to the FIDL transaction.
45613    ///
45614    /// Sets the channel to shutdown if an error occurs.
45615    pub fn send(
45616        self,
45617        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45618    ) -> Result<(), fidl::Error> {
45619        let _result = self.send_raw(result);
45620        if _result.is_err() {
45621            self.control_handle.shutdown();
45622        }
45623        self.drop_without_shutdown();
45624        _result
45625    }
45626
45627    /// Similar to "send" but does not shutdown the channel if an error occurs.
45628    pub fn send_no_shutdown_on_err(
45629        self,
45630        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45631    ) -> Result<(), fidl::Error> {
45632        let _result = self.send_raw(result);
45633        self.drop_without_shutdown();
45634        _result
45635    }
45636
45637    fn send_raw(
45638        &self,
45639        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45640    ) -> Result<(), fidl::Error> {
45641        self.control_handle.inner.send::<fidl::encoding::ResultType<
45642            fidl::encoding::EmptyStruct,
45643            fidl_fuchsia_posix::Errno,
45644        >>(
45645            result,
45646            self.tx_id,
45647            0x2888f3099188d03,
45648            fidl::encoding::DynamicFlags::empty(),
45649        )
45650    }
45651}
45652
45653#[must_use = "FIDL methods require a response to be sent"]
45654#[derive(Debug)]
45655pub struct DatagramSocketSetIpTransparentResponder {
45656    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45657    tx_id: u32,
45658}
45659
45660/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45661/// if the responder is dropped without sending a response, so that the client
45662/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45663impl std::ops::Drop for DatagramSocketSetIpTransparentResponder {
45664    fn drop(&mut self) {
45665        self.control_handle.shutdown();
45666        // Safety: drops once, never accessed again
45667        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45668    }
45669}
45670
45671impl fidl::endpoints::Responder for DatagramSocketSetIpTransparentResponder {
45672    type ControlHandle = DatagramSocketControlHandle;
45673
45674    fn control_handle(&self) -> &DatagramSocketControlHandle {
45675        &self.control_handle
45676    }
45677
45678    fn drop_without_shutdown(mut self) {
45679        // Safety: drops once, never accessed again due to mem::forget
45680        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45681        // Prevent Drop from running (which would shut down the channel)
45682        std::mem::forget(self);
45683    }
45684}
45685
45686impl DatagramSocketSetIpTransparentResponder {
45687    /// Sends a response to the FIDL transaction.
45688    ///
45689    /// Sets the channel to shutdown if an error occurs.
45690    pub fn send(
45691        self,
45692        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45693    ) -> Result<(), fidl::Error> {
45694        let _result = self.send_raw(result);
45695        if _result.is_err() {
45696            self.control_handle.shutdown();
45697        }
45698        self.drop_without_shutdown();
45699        _result
45700    }
45701
45702    /// Similar to "send" but does not shutdown the channel if an error occurs.
45703    pub fn send_no_shutdown_on_err(
45704        self,
45705        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45706    ) -> Result<(), fidl::Error> {
45707        let _result = self.send_raw(result);
45708        self.drop_without_shutdown();
45709        _result
45710    }
45711
45712    fn send_raw(
45713        &self,
45714        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45715    ) -> Result<(), fidl::Error> {
45716        self.control_handle.inner.send::<fidl::encoding::ResultType<
45717            fidl::encoding::EmptyStruct,
45718            fidl_fuchsia_posix::Errno,
45719        >>(
45720            result,
45721            self.tx_id,
45722            0x1ae532b0c066e3a0,
45723            fidl::encoding::DynamicFlags::empty(),
45724        )
45725    }
45726}
45727
45728#[must_use = "FIDL methods require a response to be sent"]
45729#[derive(Debug)]
45730pub struct DatagramSocketGetIpTransparentResponder {
45731    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45732    tx_id: u32,
45733}
45734
45735/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45736/// if the responder is dropped without sending a response, so that the client
45737/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45738impl std::ops::Drop for DatagramSocketGetIpTransparentResponder {
45739    fn drop(&mut self) {
45740        self.control_handle.shutdown();
45741        // Safety: drops once, never accessed again
45742        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45743    }
45744}
45745
45746impl fidl::endpoints::Responder for DatagramSocketGetIpTransparentResponder {
45747    type ControlHandle = DatagramSocketControlHandle;
45748
45749    fn control_handle(&self) -> &DatagramSocketControlHandle {
45750        &self.control_handle
45751    }
45752
45753    fn drop_without_shutdown(mut self) {
45754        // Safety: drops once, never accessed again due to mem::forget
45755        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45756        // Prevent Drop from running (which would shut down the channel)
45757        std::mem::forget(self);
45758    }
45759}
45760
45761impl DatagramSocketGetIpTransparentResponder {
45762    /// Sends a response to the FIDL transaction.
45763    ///
45764    /// Sets the channel to shutdown if an error occurs.
45765    pub fn send(
45766        self,
45767        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45768    ) -> Result<(), fidl::Error> {
45769        let _result = self.send_raw(result);
45770        if _result.is_err() {
45771            self.control_handle.shutdown();
45772        }
45773        self.drop_without_shutdown();
45774        _result
45775    }
45776
45777    /// Similar to "send" but does not shutdown the channel if an error occurs.
45778    pub fn send_no_shutdown_on_err(
45779        self,
45780        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45781    ) -> Result<(), fidl::Error> {
45782        let _result = self.send_raw(result);
45783        self.drop_without_shutdown();
45784        _result
45785    }
45786
45787    fn send_raw(
45788        &self,
45789        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45790    ) -> Result<(), fidl::Error> {
45791        self.control_handle.inner.send::<fidl::encoding::ResultType<
45792            BaseNetworkSocketGetIpTransparentResponse,
45793            fidl_fuchsia_posix::Errno,
45794        >>(
45795            result.map(|value| (value,)),
45796            self.tx_id,
45797            0x51d43695962ebfb5,
45798            fidl::encoding::DynamicFlags::empty(),
45799        )
45800    }
45801}
45802
45803#[must_use = "FIDL methods require a response to be sent"]
45804#[derive(Debug)]
45805pub struct DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
45806    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45807    tx_id: u32,
45808}
45809
45810/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45811/// if the responder is dropped without sending a response, so that the client
45812/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45813impl std::ops::Drop for DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
45814    fn drop(&mut self) {
45815        self.control_handle.shutdown();
45816        // Safety: drops once, never accessed again
45817        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45818    }
45819}
45820
45821impl fidl::endpoints::Responder for DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
45822    type ControlHandle = DatagramSocketControlHandle;
45823
45824    fn control_handle(&self) -> &DatagramSocketControlHandle {
45825        &self.control_handle
45826    }
45827
45828    fn drop_without_shutdown(mut self) {
45829        // Safety: drops once, never accessed again due to mem::forget
45830        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45831        // Prevent Drop from running (which would shut down the channel)
45832        std::mem::forget(self);
45833    }
45834}
45835
45836impl DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
45837    /// Sends a response to the FIDL transaction.
45838    ///
45839    /// Sets the channel to shutdown if an error occurs.
45840    pub fn send(
45841        self,
45842        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45843    ) -> Result<(), fidl::Error> {
45844        let _result = self.send_raw(result);
45845        if _result.is_err() {
45846            self.control_handle.shutdown();
45847        }
45848        self.drop_without_shutdown();
45849        _result
45850    }
45851
45852    /// Similar to "send" but does not shutdown the channel if an error occurs.
45853    pub fn send_no_shutdown_on_err(
45854        self,
45855        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45856    ) -> Result<(), fidl::Error> {
45857        let _result = self.send_raw(result);
45858        self.drop_without_shutdown();
45859        _result
45860    }
45861
45862    fn send_raw(
45863        &self,
45864        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45865    ) -> Result<(), fidl::Error> {
45866        self.control_handle.inner.send::<fidl::encoding::ResultType<
45867            fidl::encoding::EmptyStruct,
45868            fidl_fuchsia_posix::Errno,
45869        >>(
45870            result,
45871            self.tx_id,
45872            0x4722b4ce52f7840,
45873            fidl::encoding::DynamicFlags::empty(),
45874        )
45875    }
45876}
45877
45878#[must_use = "FIDL methods require a response to be sent"]
45879#[derive(Debug)]
45880pub struct DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
45881    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45882    tx_id: u32,
45883}
45884
45885/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45886/// if the responder is dropped without sending a response, so that the client
45887/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45888impl std::ops::Drop for DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
45889    fn drop(&mut self) {
45890        self.control_handle.shutdown();
45891        // Safety: drops once, never accessed again
45892        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45893    }
45894}
45895
45896impl fidl::endpoints::Responder for DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
45897    type ControlHandle = DatagramSocketControlHandle;
45898
45899    fn control_handle(&self) -> &DatagramSocketControlHandle {
45900        &self.control_handle
45901    }
45902
45903    fn drop_without_shutdown(mut self) {
45904        // Safety: drops once, never accessed again due to mem::forget
45905        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45906        // Prevent Drop from running (which would shut down the channel)
45907        std::mem::forget(self);
45908    }
45909}
45910
45911impl DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
45912    /// Sends a response to the FIDL transaction.
45913    ///
45914    /// Sets the channel to shutdown if an error occurs.
45915    pub fn send(
45916        self,
45917        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45918    ) -> Result<(), fidl::Error> {
45919        let _result = self.send_raw(result);
45920        if _result.is_err() {
45921            self.control_handle.shutdown();
45922        }
45923        self.drop_without_shutdown();
45924        _result
45925    }
45926
45927    /// Similar to "send" but does not shutdown the channel if an error occurs.
45928    pub fn send_no_shutdown_on_err(
45929        self,
45930        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45931    ) -> Result<(), fidl::Error> {
45932        let _result = self.send_raw(result);
45933        self.drop_without_shutdown();
45934        _result
45935    }
45936
45937    fn send_raw(
45938        &self,
45939        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45940    ) -> Result<(), fidl::Error> {
45941        self.control_handle.inner.send::<fidl::encoding::ResultType<
45942            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
45943            fidl_fuchsia_posix::Errno,
45944        >>(
45945            result.map(|value| (value,)),
45946            self.tx_id,
45947            0x2a0e7dc5d6bfdfe9,
45948            fidl::encoding::DynamicFlags::empty(),
45949        )
45950    }
45951}
45952
45953#[must_use = "FIDL methods require a response to be sent"]
45954#[derive(Debug)]
45955pub struct DatagramSocketAddIpv6MembershipResponder {
45956    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45957    tx_id: u32,
45958}
45959
45960/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45961/// if the responder is dropped without sending a response, so that the client
45962/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45963impl std::ops::Drop for DatagramSocketAddIpv6MembershipResponder {
45964    fn drop(&mut self) {
45965        self.control_handle.shutdown();
45966        // Safety: drops once, never accessed again
45967        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45968    }
45969}
45970
45971impl fidl::endpoints::Responder for DatagramSocketAddIpv6MembershipResponder {
45972    type ControlHandle = DatagramSocketControlHandle;
45973
45974    fn control_handle(&self) -> &DatagramSocketControlHandle {
45975        &self.control_handle
45976    }
45977
45978    fn drop_without_shutdown(mut self) {
45979        // Safety: drops once, never accessed again due to mem::forget
45980        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45981        // Prevent Drop from running (which would shut down the channel)
45982        std::mem::forget(self);
45983    }
45984}
45985
45986impl DatagramSocketAddIpv6MembershipResponder {
45987    /// Sends a response to the FIDL transaction.
45988    ///
45989    /// Sets the channel to shutdown if an error occurs.
45990    pub fn send(
45991        self,
45992        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45993    ) -> Result<(), fidl::Error> {
45994        let _result = self.send_raw(result);
45995        if _result.is_err() {
45996            self.control_handle.shutdown();
45997        }
45998        self.drop_without_shutdown();
45999        _result
46000    }
46001
46002    /// Similar to "send" but does not shutdown the channel if an error occurs.
46003    pub fn send_no_shutdown_on_err(
46004        self,
46005        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46006    ) -> Result<(), fidl::Error> {
46007        let _result = self.send_raw(result);
46008        self.drop_without_shutdown();
46009        _result
46010    }
46011
46012    fn send_raw(
46013        &self,
46014        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46015    ) -> Result<(), fidl::Error> {
46016        self.control_handle.inner.send::<fidl::encoding::ResultType<
46017            fidl::encoding::EmptyStruct,
46018            fidl_fuchsia_posix::Errno,
46019        >>(
46020            result,
46021            self.tx_id,
46022            0x7c94727acb4ea4b3,
46023            fidl::encoding::DynamicFlags::empty(),
46024        )
46025    }
46026}
46027
46028#[must_use = "FIDL methods require a response to be sent"]
46029#[derive(Debug)]
46030pub struct DatagramSocketDropIpv6MembershipResponder {
46031    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46032    tx_id: u32,
46033}
46034
46035/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46036/// if the responder is dropped without sending a response, so that the client
46037/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46038impl std::ops::Drop for DatagramSocketDropIpv6MembershipResponder {
46039    fn drop(&mut self) {
46040        self.control_handle.shutdown();
46041        // Safety: drops once, never accessed again
46042        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46043    }
46044}
46045
46046impl fidl::endpoints::Responder for DatagramSocketDropIpv6MembershipResponder {
46047    type ControlHandle = DatagramSocketControlHandle;
46048
46049    fn control_handle(&self) -> &DatagramSocketControlHandle {
46050        &self.control_handle
46051    }
46052
46053    fn drop_without_shutdown(mut self) {
46054        // Safety: drops once, never accessed again due to mem::forget
46055        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46056        // Prevent Drop from running (which would shut down the channel)
46057        std::mem::forget(self);
46058    }
46059}
46060
46061impl DatagramSocketDropIpv6MembershipResponder {
46062    /// Sends a response to the FIDL transaction.
46063    ///
46064    /// Sets the channel to shutdown if an error occurs.
46065    pub fn send(
46066        self,
46067        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46068    ) -> Result<(), fidl::Error> {
46069        let _result = self.send_raw(result);
46070        if _result.is_err() {
46071            self.control_handle.shutdown();
46072        }
46073        self.drop_without_shutdown();
46074        _result
46075    }
46076
46077    /// Similar to "send" but does not shutdown the channel if an error occurs.
46078    pub fn send_no_shutdown_on_err(
46079        self,
46080        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46081    ) -> Result<(), fidl::Error> {
46082        let _result = self.send_raw(result);
46083        self.drop_without_shutdown();
46084        _result
46085    }
46086
46087    fn send_raw(
46088        &self,
46089        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46090    ) -> Result<(), fidl::Error> {
46091        self.control_handle.inner.send::<fidl::encoding::ResultType<
46092            fidl::encoding::EmptyStruct,
46093            fidl_fuchsia_posix::Errno,
46094        >>(
46095            result,
46096            self.tx_id,
46097            0x42104c70ccaba304,
46098            fidl::encoding::DynamicFlags::empty(),
46099        )
46100    }
46101}
46102
46103#[must_use = "FIDL methods require a response to be sent"]
46104#[derive(Debug)]
46105pub struct DatagramSocketSetIpv6MulticastInterfaceResponder {
46106    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46107    tx_id: u32,
46108}
46109
46110/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46111/// if the responder is dropped without sending a response, so that the client
46112/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46113impl std::ops::Drop for DatagramSocketSetIpv6MulticastInterfaceResponder {
46114    fn drop(&mut self) {
46115        self.control_handle.shutdown();
46116        // Safety: drops once, never accessed again
46117        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46118    }
46119}
46120
46121impl fidl::endpoints::Responder for DatagramSocketSetIpv6MulticastInterfaceResponder {
46122    type ControlHandle = DatagramSocketControlHandle;
46123
46124    fn control_handle(&self) -> &DatagramSocketControlHandle {
46125        &self.control_handle
46126    }
46127
46128    fn drop_without_shutdown(mut self) {
46129        // Safety: drops once, never accessed again due to mem::forget
46130        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46131        // Prevent Drop from running (which would shut down the channel)
46132        std::mem::forget(self);
46133    }
46134}
46135
46136impl DatagramSocketSetIpv6MulticastInterfaceResponder {
46137    /// Sends a response to the FIDL transaction.
46138    ///
46139    /// Sets the channel to shutdown if an error occurs.
46140    pub fn send(
46141        self,
46142        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46143    ) -> Result<(), fidl::Error> {
46144        let _result = self.send_raw(result);
46145        if _result.is_err() {
46146            self.control_handle.shutdown();
46147        }
46148        self.drop_without_shutdown();
46149        _result
46150    }
46151
46152    /// Similar to "send" but does not shutdown the channel if an error occurs.
46153    pub fn send_no_shutdown_on_err(
46154        self,
46155        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46156    ) -> Result<(), fidl::Error> {
46157        let _result = self.send_raw(result);
46158        self.drop_without_shutdown();
46159        _result
46160    }
46161
46162    fn send_raw(
46163        &self,
46164        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46165    ) -> Result<(), fidl::Error> {
46166        self.control_handle.inner.send::<fidl::encoding::ResultType<
46167            fidl::encoding::EmptyStruct,
46168            fidl_fuchsia_posix::Errno,
46169        >>(
46170            result,
46171            self.tx_id,
46172            0x135f76db3774ab3b,
46173            fidl::encoding::DynamicFlags::empty(),
46174        )
46175    }
46176}
46177
46178#[must_use = "FIDL methods require a response to be sent"]
46179#[derive(Debug)]
46180pub struct DatagramSocketGetIpv6MulticastInterfaceResponder {
46181    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46182    tx_id: u32,
46183}
46184
46185/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46186/// if the responder is dropped without sending a response, so that the client
46187/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46188impl std::ops::Drop for DatagramSocketGetIpv6MulticastInterfaceResponder {
46189    fn drop(&mut self) {
46190        self.control_handle.shutdown();
46191        // Safety: drops once, never accessed again
46192        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46193    }
46194}
46195
46196impl fidl::endpoints::Responder for DatagramSocketGetIpv6MulticastInterfaceResponder {
46197    type ControlHandle = DatagramSocketControlHandle;
46198
46199    fn control_handle(&self) -> &DatagramSocketControlHandle {
46200        &self.control_handle
46201    }
46202
46203    fn drop_without_shutdown(mut self) {
46204        // Safety: drops once, never accessed again due to mem::forget
46205        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46206        // Prevent Drop from running (which would shut down the channel)
46207        std::mem::forget(self);
46208    }
46209}
46210
46211impl DatagramSocketGetIpv6MulticastInterfaceResponder {
46212    /// Sends a response to the FIDL transaction.
46213    ///
46214    /// Sets the channel to shutdown if an error occurs.
46215    pub fn send(
46216        self,
46217        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
46218    ) -> Result<(), fidl::Error> {
46219        let _result = self.send_raw(result);
46220        if _result.is_err() {
46221            self.control_handle.shutdown();
46222        }
46223        self.drop_without_shutdown();
46224        _result
46225    }
46226
46227    /// Similar to "send" but does not shutdown the channel if an error occurs.
46228    pub fn send_no_shutdown_on_err(
46229        self,
46230        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
46231    ) -> Result<(), fidl::Error> {
46232        let _result = self.send_raw(result);
46233        self.drop_without_shutdown();
46234        _result
46235    }
46236
46237    fn send_raw(
46238        &self,
46239        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
46240    ) -> Result<(), fidl::Error> {
46241        self.control_handle.inner.send::<fidl::encoding::ResultType<
46242            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
46243            fidl_fuchsia_posix::Errno,
46244        >>(
46245            result.map(|value| (value,)),
46246            self.tx_id,
46247            0x1f26fcdd348f1882,
46248            fidl::encoding::DynamicFlags::empty(),
46249        )
46250    }
46251}
46252
46253#[must_use = "FIDL methods require a response to be sent"]
46254#[derive(Debug)]
46255pub struct DatagramSocketSetIpv6UnicastHopsResponder {
46256    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46257    tx_id: u32,
46258}
46259
46260/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46261/// if the responder is dropped without sending a response, so that the client
46262/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46263impl std::ops::Drop for DatagramSocketSetIpv6UnicastHopsResponder {
46264    fn drop(&mut self) {
46265        self.control_handle.shutdown();
46266        // Safety: drops once, never accessed again
46267        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46268    }
46269}
46270
46271impl fidl::endpoints::Responder for DatagramSocketSetIpv6UnicastHopsResponder {
46272    type ControlHandle = DatagramSocketControlHandle;
46273
46274    fn control_handle(&self) -> &DatagramSocketControlHandle {
46275        &self.control_handle
46276    }
46277
46278    fn drop_without_shutdown(mut self) {
46279        // Safety: drops once, never accessed again due to mem::forget
46280        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46281        // Prevent Drop from running (which would shut down the channel)
46282        std::mem::forget(self);
46283    }
46284}
46285
46286impl DatagramSocketSetIpv6UnicastHopsResponder {
46287    /// Sends a response to the FIDL transaction.
46288    ///
46289    /// Sets the channel to shutdown if an error occurs.
46290    pub fn send(
46291        self,
46292        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46293    ) -> Result<(), fidl::Error> {
46294        let _result = self.send_raw(result);
46295        if _result.is_err() {
46296            self.control_handle.shutdown();
46297        }
46298        self.drop_without_shutdown();
46299        _result
46300    }
46301
46302    /// Similar to "send" but does not shutdown the channel if an error occurs.
46303    pub fn send_no_shutdown_on_err(
46304        self,
46305        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46306    ) -> Result<(), fidl::Error> {
46307        let _result = self.send_raw(result);
46308        self.drop_without_shutdown();
46309        _result
46310    }
46311
46312    fn send_raw(
46313        &self,
46314        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46315    ) -> Result<(), fidl::Error> {
46316        self.control_handle.inner.send::<fidl::encoding::ResultType<
46317            fidl::encoding::EmptyStruct,
46318            fidl_fuchsia_posix::Errno,
46319        >>(
46320            result,
46321            self.tx_id,
46322            0x157d51e98f462859,
46323            fidl::encoding::DynamicFlags::empty(),
46324        )
46325    }
46326}
46327
46328#[must_use = "FIDL methods require a response to be sent"]
46329#[derive(Debug)]
46330pub struct DatagramSocketGetIpv6UnicastHopsResponder {
46331    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46332    tx_id: u32,
46333}
46334
46335/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46336/// if the responder is dropped without sending a response, so that the client
46337/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46338impl std::ops::Drop for DatagramSocketGetIpv6UnicastHopsResponder {
46339    fn drop(&mut self) {
46340        self.control_handle.shutdown();
46341        // Safety: drops once, never accessed again
46342        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46343    }
46344}
46345
46346impl fidl::endpoints::Responder for DatagramSocketGetIpv6UnicastHopsResponder {
46347    type ControlHandle = DatagramSocketControlHandle;
46348
46349    fn control_handle(&self) -> &DatagramSocketControlHandle {
46350        &self.control_handle
46351    }
46352
46353    fn drop_without_shutdown(mut self) {
46354        // Safety: drops once, never accessed again due to mem::forget
46355        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46356        // Prevent Drop from running (which would shut down the channel)
46357        std::mem::forget(self);
46358    }
46359}
46360
46361impl DatagramSocketGetIpv6UnicastHopsResponder {
46362    /// Sends a response to the FIDL transaction.
46363    ///
46364    /// Sets the channel to shutdown if an error occurs.
46365    pub fn send(
46366        self,
46367        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46368    ) -> Result<(), fidl::Error> {
46369        let _result = self.send_raw(result);
46370        if _result.is_err() {
46371            self.control_handle.shutdown();
46372        }
46373        self.drop_without_shutdown();
46374        _result
46375    }
46376
46377    /// Similar to "send" but does not shutdown the channel if an error occurs.
46378    pub fn send_no_shutdown_on_err(
46379        self,
46380        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46381    ) -> Result<(), fidl::Error> {
46382        let _result = self.send_raw(result);
46383        self.drop_without_shutdown();
46384        _result
46385    }
46386
46387    fn send_raw(
46388        &self,
46389        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46390    ) -> Result<(), fidl::Error> {
46391        self.control_handle.inner.send::<fidl::encoding::ResultType<
46392            BaseNetworkSocketGetIpv6UnicastHopsResponse,
46393            fidl_fuchsia_posix::Errno,
46394        >>(
46395            result.map(|value| (value,)),
46396            self.tx_id,
46397            0x21f4641cad8bd8d2,
46398            fidl::encoding::DynamicFlags::empty(),
46399        )
46400    }
46401}
46402
46403#[must_use = "FIDL methods require a response to be sent"]
46404#[derive(Debug)]
46405pub struct DatagramSocketSetIpv6ReceiveHopLimitResponder {
46406    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46407    tx_id: u32,
46408}
46409
46410/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46411/// if the responder is dropped without sending a response, so that the client
46412/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46413impl std::ops::Drop for DatagramSocketSetIpv6ReceiveHopLimitResponder {
46414    fn drop(&mut self) {
46415        self.control_handle.shutdown();
46416        // Safety: drops once, never accessed again
46417        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46418    }
46419}
46420
46421impl fidl::endpoints::Responder for DatagramSocketSetIpv6ReceiveHopLimitResponder {
46422    type ControlHandle = DatagramSocketControlHandle;
46423
46424    fn control_handle(&self) -> &DatagramSocketControlHandle {
46425        &self.control_handle
46426    }
46427
46428    fn drop_without_shutdown(mut self) {
46429        // Safety: drops once, never accessed again due to mem::forget
46430        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46431        // Prevent Drop from running (which would shut down the channel)
46432        std::mem::forget(self);
46433    }
46434}
46435
46436impl DatagramSocketSetIpv6ReceiveHopLimitResponder {
46437    /// Sends a response to the FIDL transaction.
46438    ///
46439    /// Sets the channel to shutdown if an error occurs.
46440    pub fn send(
46441        self,
46442        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46443    ) -> Result<(), fidl::Error> {
46444        let _result = self.send_raw(result);
46445        if _result.is_err() {
46446            self.control_handle.shutdown();
46447        }
46448        self.drop_without_shutdown();
46449        _result
46450    }
46451
46452    /// Similar to "send" but does not shutdown the channel if an error occurs.
46453    pub fn send_no_shutdown_on_err(
46454        self,
46455        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46456    ) -> Result<(), fidl::Error> {
46457        let _result = self.send_raw(result);
46458        self.drop_without_shutdown();
46459        _result
46460    }
46461
46462    fn send_raw(
46463        &self,
46464        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46465    ) -> Result<(), fidl::Error> {
46466        self.control_handle.inner.send::<fidl::encoding::ResultType<
46467            fidl::encoding::EmptyStruct,
46468            fidl_fuchsia_posix::Errno,
46469        >>(
46470            result,
46471            self.tx_id,
46472            0x5c24808ed2e84a1e,
46473            fidl::encoding::DynamicFlags::empty(),
46474        )
46475    }
46476}
46477
46478#[must_use = "FIDL methods require a response to be sent"]
46479#[derive(Debug)]
46480pub struct DatagramSocketGetIpv6ReceiveHopLimitResponder {
46481    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46482    tx_id: u32,
46483}
46484
46485/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46486/// if the responder is dropped without sending a response, so that the client
46487/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46488impl std::ops::Drop for DatagramSocketGetIpv6ReceiveHopLimitResponder {
46489    fn drop(&mut self) {
46490        self.control_handle.shutdown();
46491        // Safety: drops once, never accessed again
46492        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46493    }
46494}
46495
46496impl fidl::endpoints::Responder for DatagramSocketGetIpv6ReceiveHopLimitResponder {
46497    type ControlHandle = DatagramSocketControlHandle;
46498
46499    fn control_handle(&self) -> &DatagramSocketControlHandle {
46500        &self.control_handle
46501    }
46502
46503    fn drop_without_shutdown(mut self) {
46504        // Safety: drops once, never accessed again due to mem::forget
46505        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46506        // Prevent Drop from running (which would shut down the channel)
46507        std::mem::forget(self);
46508    }
46509}
46510
46511impl DatagramSocketGetIpv6ReceiveHopLimitResponder {
46512    /// Sends a response to the FIDL transaction.
46513    ///
46514    /// Sets the channel to shutdown if an error occurs.
46515    pub fn send(
46516        self,
46517        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46518    ) -> Result<(), fidl::Error> {
46519        let _result = self.send_raw(result);
46520        if _result.is_err() {
46521            self.control_handle.shutdown();
46522        }
46523        self.drop_without_shutdown();
46524        _result
46525    }
46526
46527    /// Similar to "send" but does not shutdown the channel if an error occurs.
46528    pub fn send_no_shutdown_on_err(
46529        self,
46530        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46531    ) -> Result<(), fidl::Error> {
46532        let _result = self.send_raw(result);
46533        self.drop_without_shutdown();
46534        _result
46535    }
46536
46537    fn send_raw(
46538        &self,
46539        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46540    ) -> Result<(), fidl::Error> {
46541        self.control_handle.inner.send::<fidl::encoding::ResultType<
46542            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
46543            fidl_fuchsia_posix::Errno,
46544        >>(
46545            result.map(|value| (value,)),
46546            self.tx_id,
46547            0x341e06689885b4c0,
46548            fidl::encoding::DynamicFlags::empty(),
46549        )
46550    }
46551}
46552
46553#[must_use = "FIDL methods require a response to be sent"]
46554#[derive(Debug)]
46555pub struct DatagramSocketSetIpv6MulticastHopsResponder {
46556    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46557    tx_id: u32,
46558}
46559
46560/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46561/// if the responder is dropped without sending a response, so that the client
46562/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46563impl std::ops::Drop for DatagramSocketSetIpv6MulticastHopsResponder {
46564    fn drop(&mut self) {
46565        self.control_handle.shutdown();
46566        // Safety: drops once, never accessed again
46567        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46568    }
46569}
46570
46571impl fidl::endpoints::Responder for DatagramSocketSetIpv6MulticastHopsResponder {
46572    type ControlHandle = DatagramSocketControlHandle;
46573
46574    fn control_handle(&self) -> &DatagramSocketControlHandle {
46575        &self.control_handle
46576    }
46577
46578    fn drop_without_shutdown(mut self) {
46579        // Safety: drops once, never accessed again due to mem::forget
46580        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46581        // Prevent Drop from running (which would shut down the channel)
46582        std::mem::forget(self);
46583    }
46584}
46585
46586impl DatagramSocketSetIpv6MulticastHopsResponder {
46587    /// Sends a response to the FIDL transaction.
46588    ///
46589    /// Sets the channel to shutdown if an error occurs.
46590    pub fn send(
46591        self,
46592        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46593    ) -> Result<(), fidl::Error> {
46594        let _result = self.send_raw(result);
46595        if _result.is_err() {
46596            self.control_handle.shutdown();
46597        }
46598        self.drop_without_shutdown();
46599        _result
46600    }
46601
46602    /// Similar to "send" but does not shutdown the channel if an error occurs.
46603    pub fn send_no_shutdown_on_err(
46604        self,
46605        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46606    ) -> Result<(), fidl::Error> {
46607        let _result = self.send_raw(result);
46608        self.drop_without_shutdown();
46609        _result
46610    }
46611
46612    fn send_raw(
46613        &self,
46614        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46615    ) -> Result<(), fidl::Error> {
46616        self.control_handle.inner.send::<fidl::encoding::ResultType<
46617            fidl::encoding::EmptyStruct,
46618            fidl_fuchsia_posix::Errno,
46619        >>(
46620            result,
46621            self.tx_id,
46622            0x25b9cd4d181f82c1,
46623            fidl::encoding::DynamicFlags::empty(),
46624        )
46625    }
46626}
46627
46628#[must_use = "FIDL methods require a response to be sent"]
46629#[derive(Debug)]
46630pub struct DatagramSocketGetIpv6MulticastHopsResponder {
46631    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46632    tx_id: u32,
46633}
46634
46635/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46636/// if the responder is dropped without sending a response, so that the client
46637/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46638impl std::ops::Drop for DatagramSocketGetIpv6MulticastHopsResponder {
46639    fn drop(&mut self) {
46640        self.control_handle.shutdown();
46641        // Safety: drops once, never accessed again
46642        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46643    }
46644}
46645
46646impl fidl::endpoints::Responder for DatagramSocketGetIpv6MulticastHopsResponder {
46647    type ControlHandle = DatagramSocketControlHandle;
46648
46649    fn control_handle(&self) -> &DatagramSocketControlHandle {
46650        &self.control_handle
46651    }
46652
46653    fn drop_without_shutdown(mut self) {
46654        // Safety: drops once, never accessed again due to mem::forget
46655        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46656        // Prevent Drop from running (which would shut down the channel)
46657        std::mem::forget(self);
46658    }
46659}
46660
46661impl DatagramSocketGetIpv6MulticastHopsResponder {
46662    /// Sends a response to the FIDL transaction.
46663    ///
46664    /// Sets the channel to shutdown if an error occurs.
46665    pub fn send(
46666        self,
46667        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46668    ) -> Result<(), fidl::Error> {
46669        let _result = self.send_raw(result);
46670        if _result.is_err() {
46671            self.control_handle.shutdown();
46672        }
46673        self.drop_without_shutdown();
46674        _result
46675    }
46676
46677    /// Similar to "send" but does not shutdown the channel if an error occurs.
46678    pub fn send_no_shutdown_on_err(
46679        self,
46680        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46681    ) -> Result<(), fidl::Error> {
46682        let _result = self.send_raw(result);
46683        self.drop_without_shutdown();
46684        _result
46685    }
46686
46687    fn send_raw(
46688        &self,
46689        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46690    ) -> Result<(), fidl::Error> {
46691        self.control_handle.inner.send::<fidl::encoding::ResultType<
46692            BaseNetworkSocketGetIpv6MulticastHopsResponse,
46693            fidl_fuchsia_posix::Errno,
46694        >>(
46695            result.map(|value| (value,)),
46696            self.tx_id,
46697            0x52916948a365012a,
46698            fidl::encoding::DynamicFlags::empty(),
46699        )
46700    }
46701}
46702
46703#[must_use = "FIDL methods require a response to be sent"]
46704#[derive(Debug)]
46705pub struct DatagramSocketSetIpv6MulticastLoopbackResponder {
46706    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46707    tx_id: u32,
46708}
46709
46710/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46711/// if the responder is dropped without sending a response, so that the client
46712/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46713impl std::ops::Drop for DatagramSocketSetIpv6MulticastLoopbackResponder {
46714    fn drop(&mut self) {
46715        self.control_handle.shutdown();
46716        // Safety: drops once, never accessed again
46717        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46718    }
46719}
46720
46721impl fidl::endpoints::Responder for DatagramSocketSetIpv6MulticastLoopbackResponder {
46722    type ControlHandle = DatagramSocketControlHandle;
46723
46724    fn control_handle(&self) -> &DatagramSocketControlHandle {
46725        &self.control_handle
46726    }
46727
46728    fn drop_without_shutdown(mut self) {
46729        // Safety: drops once, never accessed again due to mem::forget
46730        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46731        // Prevent Drop from running (which would shut down the channel)
46732        std::mem::forget(self);
46733    }
46734}
46735
46736impl DatagramSocketSetIpv6MulticastLoopbackResponder {
46737    /// Sends a response to the FIDL transaction.
46738    ///
46739    /// Sets the channel to shutdown if an error occurs.
46740    pub fn send(
46741        self,
46742        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46743    ) -> Result<(), fidl::Error> {
46744        let _result = self.send_raw(result);
46745        if _result.is_err() {
46746            self.control_handle.shutdown();
46747        }
46748        self.drop_without_shutdown();
46749        _result
46750    }
46751
46752    /// Similar to "send" but does not shutdown the channel if an error occurs.
46753    pub fn send_no_shutdown_on_err(
46754        self,
46755        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46756    ) -> Result<(), fidl::Error> {
46757        let _result = self.send_raw(result);
46758        self.drop_without_shutdown();
46759        _result
46760    }
46761
46762    fn send_raw(
46763        &self,
46764        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46765    ) -> Result<(), fidl::Error> {
46766        self.control_handle.inner.send::<fidl::encoding::ResultType<
46767            fidl::encoding::EmptyStruct,
46768            fidl_fuchsia_posix::Errno,
46769        >>(
46770            result,
46771            self.tx_id,
46772            0x55701c409ff41b40,
46773            fidl::encoding::DynamicFlags::empty(),
46774        )
46775    }
46776}
46777
46778#[must_use = "FIDL methods require a response to be sent"]
46779#[derive(Debug)]
46780pub struct DatagramSocketGetIpv6MulticastLoopbackResponder {
46781    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46782    tx_id: u32,
46783}
46784
46785/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46786/// if the responder is dropped without sending a response, so that the client
46787/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46788impl std::ops::Drop for DatagramSocketGetIpv6MulticastLoopbackResponder {
46789    fn drop(&mut self) {
46790        self.control_handle.shutdown();
46791        // Safety: drops once, never accessed again
46792        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46793    }
46794}
46795
46796impl fidl::endpoints::Responder for DatagramSocketGetIpv6MulticastLoopbackResponder {
46797    type ControlHandle = DatagramSocketControlHandle;
46798
46799    fn control_handle(&self) -> &DatagramSocketControlHandle {
46800        &self.control_handle
46801    }
46802
46803    fn drop_without_shutdown(mut self) {
46804        // Safety: drops once, never accessed again due to mem::forget
46805        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46806        // Prevent Drop from running (which would shut down the channel)
46807        std::mem::forget(self);
46808    }
46809}
46810
46811impl DatagramSocketGetIpv6MulticastLoopbackResponder {
46812    /// Sends a response to the FIDL transaction.
46813    ///
46814    /// Sets the channel to shutdown if an error occurs.
46815    pub fn send(
46816        self,
46817        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46818    ) -> Result<(), fidl::Error> {
46819        let _result = self.send_raw(result);
46820        if _result.is_err() {
46821            self.control_handle.shutdown();
46822        }
46823        self.drop_without_shutdown();
46824        _result
46825    }
46826
46827    /// Similar to "send" but does not shutdown the channel if an error occurs.
46828    pub fn send_no_shutdown_on_err(
46829        self,
46830        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46831    ) -> Result<(), fidl::Error> {
46832        let _result = self.send_raw(result);
46833        self.drop_without_shutdown();
46834        _result
46835    }
46836
46837    fn send_raw(
46838        &self,
46839        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46840    ) -> Result<(), fidl::Error> {
46841        self.control_handle.inner.send::<fidl::encoding::ResultType<
46842            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
46843            fidl_fuchsia_posix::Errno,
46844        >>(
46845            result.map(|value| (value,)),
46846            self.tx_id,
46847            0x4415b701fde319c3,
46848            fidl::encoding::DynamicFlags::empty(),
46849        )
46850    }
46851}
46852
46853#[must_use = "FIDL methods require a response to be sent"]
46854#[derive(Debug)]
46855pub struct DatagramSocketSetIpv6OnlyResponder {
46856    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46857    tx_id: u32,
46858}
46859
46860/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46861/// if the responder is dropped without sending a response, so that the client
46862/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46863impl std::ops::Drop for DatagramSocketSetIpv6OnlyResponder {
46864    fn drop(&mut self) {
46865        self.control_handle.shutdown();
46866        // Safety: drops once, never accessed again
46867        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46868    }
46869}
46870
46871impl fidl::endpoints::Responder for DatagramSocketSetIpv6OnlyResponder {
46872    type ControlHandle = DatagramSocketControlHandle;
46873
46874    fn control_handle(&self) -> &DatagramSocketControlHandle {
46875        &self.control_handle
46876    }
46877
46878    fn drop_without_shutdown(mut self) {
46879        // Safety: drops once, never accessed again due to mem::forget
46880        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46881        // Prevent Drop from running (which would shut down the channel)
46882        std::mem::forget(self);
46883    }
46884}
46885
46886impl DatagramSocketSetIpv6OnlyResponder {
46887    /// Sends a response to the FIDL transaction.
46888    ///
46889    /// Sets the channel to shutdown if an error occurs.
46890    pub fn send(
46891        self,
46892        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46893    ) -> Result<(), fidl::Error> {
46894        let _result = self.send_raw(result);
46895        if _result.is_err() {
46896            self.control_handle.shutdown();
46897        }
46898        self.drop_without_shutdown();
46899        _result
46900    }
46901
46902    /// Similar to "send" but does not shutdown the channel if an error occurs.
46903    pub fn send_no_shutdown_on_err(
46904        self,
46905        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46906    ) -> Result<(), fidl::Error> {
46907        let _result = self.send_raw(result);
46908        self.drop_without_shutdown();
46909        _result
46910    }
46911
46912    fn send_raw(
46913        &self,
46914        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46915    ) -> Result<(), fidl::Error> {
46916        self.control_handle.inner.send::<fidl::encoding::ResultType<
46917            fidl::encoding::EmptyStruct,
46918            fidl_fuchsia_posix::Errno,
46919        >>(
46920            result,
46921            self.tx_id,
46922            0x4873f1364758cbba,
46923            fidl::encoding::DynamicFlags::empty(),
46924        )
46925    }
46926}
46927
46928#[must_use = "FIDL methods require a response to be sent"]
46929#[derive(Debug)]
46930pub struct DatagramSocketGetIpv6OnlyResponder {
46931    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46932    tx_id: u32,
46933}
46934
46935/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46936/// if the responder is dropped without sending a response, so that the client
46937/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46938impl std::ops::Drop for DatagramSocketGetIpv6OnlyResponder {
46939    fn drop(&mut self) {
46940        self.control_handle.shutdown();
46941        // Safety: drops once, never accessed again
46942        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46943    }
46944}
46945
46946impl fidl::endpoints::Responder for DatagramSocketGetIpv6OnlyResponder {
46947    type ControlHandle = DatagramSocketControlHandle;
46948
46949    fn control_handle(&self) -> &DatagramSocketControlHandle {
46950        &self.control_handle
46951    }
46952
46953    fn drop_without_shutdown(mut self) {
46954        // Safety: drops once, never accessed again due to mem::forget
46955        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46956        // Prevent Drop from running (which would shut down the channel)
46957        std::mem::forget(self);
46958    }
46959}
46960
46961impl DatagramSocketGetIpv6OnlyResponder {
46962    /// Sends a response to the FIDL transaction.
46963    ///
46964    /// Sets the channel to shutdown if an error occurs.
46965    pub fn send(
46966        self,
46967        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46968    ) -> Result<(), fidl::Error> {
46969        let _result = self.send_raw(result);
46970        if _result.is_err() {
46971            self.control_handle.shutdown();
46972        }
46973        self.drop_without_shutdown();
46974        _result
46975    }
46976
46977    /// Similar to "send" but does not shutdown the channel if an error occurs.
46978    pub fn send_no_shutdown_on_err(
46979        self,
46980        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46981    ) -> Result<(), fidl::Error> {
46982        let _result = self.send_raw(result);
46983        self.drop_without_shutdown();
46984        _result
46985    }
46986
46987    fn send_raw(
46988        &self,
46989        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46990    ) -> Result<(), fidl::Error> {
46991        self.control_handle.inner.send::<fidl::encoding::ResultType<
46992            BaseNetworkSocketGetIpv6OnlyResponse,
46993            fidl_fuchsia_posix::Errno,
46994        >>(
46995            result.map(|value| (value,)),
46996            self.tx_id,
46997            0x4aa3340a1a26b89c,
46998            fidl::encoding::DynamicFlags::empty(),
46999        )
47000    }
47001}
47002
47003#[must_use = "FIDL methods require a response to be sent"]
47004#[derive(Debug)]
47005pub struct DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47006    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47007    tx_id: u32,
47008}
47009
47010/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47011/// if the responder is dropped without sending a response, so that the client
47012/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47013impl std::ops::Drop for DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47014    fn drop(&mut self) {
47015        self.control_handle.shutdown();
47016        // Safety: drops once, never accessed again
47017        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47018    }
47019}
47020
47021impl fidl::endpoints::Responder for DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47022    type ControlHandle = DatagramSocketControlHandle;
47023
47024    fn control_handle(&self) -> &DatagramSocketControlHandle {
47025        &self.control_handle
47026    }
47027
47028    fn drop_without_shutdown(mut self) {
47029        // Safety: drops once, never accessed again due to mem::forget
47030        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47031        // Prevent Drop from running (which would shut down the channel)
47032        std::mem::forget(self);
47033    }
47034}
47035
47036impl DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47037    /// Sends a response to the FIDL transaction.
47038    ///
47039    /// Sets the channel to shutdown if an error occurs.
47040    pub fn send(
47041        self,
47042        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47043    ) -> Result<(), fidl::Error> {
47044        let _result = self.send_raw(result);
47045        if _result.is_err() {
47046            self.control_handle.shutdown();
47047        }
47048        self.drop_without_shutdown();
47049        _result
47050    }
47051
47052    /// Similar to "send" but does not shutdown the channel if an error occurs.
47053    pub fn send_no_shutdown_on_err(
47054        self,
47055        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47056    ) -> Result<(), fidl::Error> {
47057        let _result = self.send_raw(result);
47058        self.drop_without_shutdown();
47059        _result
47060    }
47061
47062    fn send_raw(
47063        &self,
47064        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47065    ) -> Result<(), fidl::Error> {
47066        self.control_handle.inner.send::<fidl::encoding::ResultType<
47067            fidl::encoding::EmptyStruct,
47068            fidl_fuchsia_posix::Errno,
47069        >>(
47070            result,
47071            self.tx_id,
47072            0x58f07c8788d099a0,
47073            fidl::encoding::DynamicFlags::empty(),
47074        )
47075    }
47076}
47077
47078#[must_use = "FIDL methods require a response to be sent"]
47079#[derive(Debug)]
47080pub struct DatagramSocketGetIpv6ReceiveTrafficClassResponder {
47081    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47082    tx_id: u32,
47083}
47084
47085/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47086/// if the responder is dropped without sending a response, so that the client
47087/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47088impl std::ops::Drop for DatagramSocketGetIpv6ReceiveTrafficClassResponder {
47089    fn drop(&mut self) {
47090        self.control_handle.shutdown();
47091        // Safety: drops once, never accessed again
47092        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47093    }
47094}
47095
47096impl fidl::endpoints::Responder for DatagramSocketGetIpv6ReceiveTrafficClassResponder {
47097    type ControlHandle = DatagramSocketControlHandle;
47098
47099    fn control_handle(&self) -> &DatagramSocketControlHandle {
47100        &self.control_handle
47101    }
47102
47103    fn drop_without_shutdown(mut self) {
47104        // Safety: drops once, never accessed again due to mem::forget
47105        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47106        // Prevent Drop from running (which would shut down the channel)
47107        std::mem::forget(self);
47108    }
47109}
47110
47111impl DatagramSocketGetIpv6ReceiveTrafficClassResponder {
47112    /// Sends a response to the FIDL transaction.
47113    ///
47114    /// Sets the channel to shutdown if an error occurs.
47115    pub fn send(
47116        self,
47117        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47118    ) -> Result<(), fidl::Error> {
47119        let _result = self.send_raw(result);
47120        if _result.is_err() {
47121            self.control_handle.shutdown();
47122        }
47123        self.drop_without_shutdown();
47124        _result
47125    }
47126
47127    /// Similar to "send" but does not shutdown the channel if an error occurs.
47128    pub fn send_no_shutdown_on_err(
47129        self,
47130        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47131    ) -> Result<(), fidl::Error> {
47132        let _result = self.send_raw(result);
47133        self.drop_without_shutdown();
47134        _result
47135    }
47136
47137    fn send_raw(
47138        &self,
47139        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47140    ) -> Result<(), fidl::Error> {
47141        self.control_handle.inner.send::<fidl::encoding::ResultType<
47142            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
47143            fidl_fuchsia_posix::Errno,
47144        >>(
47145            result.map(|value| (value,)),
47146            self.tx_id,
47147            0x2e334df1da553ffa,
47148            fidl::encoding::DynamicFlags::empty(),
47149        )
47150    }
47151}
47152
47153#[must_use = "FIDL methods require a response to be sent"]
47154#[derive(Debug)]
47155pub struct DatagramSocketSetIpv6TrafficClassResponder {
47156    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47157    tx_id: u32,
47158}
47159
47160/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47161/// if the responder is dropped without sending a response, so that the client
47162/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47163impl std::ops::Drop for DatagramSocketSetIpv6TrafficClassResponder {
47164    fn drop(&mut self) {
47165        self.control_handle.shutdown();
47166        // Safety: drops once, never accessed again
47167        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47168    }
47169}
47170
47171impl fidl::endpoints::Responder for DatagramSocketSetIpv6TrafficClassResponder {
47172    type ControlHandle = DatagramSocketControlHandle;
47173
47174    fn control_handle(&self) -> &DatagramSocketControlHandle {
47175        &self.control_handle
47176    }
47177
47178    fn drop_without_shutdown(mut self) {
47179        // Safety: drops once, never accessed again due to mem::forget
47180        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47181        // Prevent Drop from running (which would shut down the channel)
47182        std::mem::forget(self);
47183    }
47184}
47185
47186impl DatagramSocketSetIpv6TrafficClassResponder {
47187    /// Sends a response to the FIDL transaction.
47188    ///
47189    /// Sets the channel to shutdown if an error occurs.
47190    pub fn send(
47191        self,
47192        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47193    ) -> Result<(), fidl::Error> {
47194        let _result = self.send_raw(result);
47195        if _result.is_err() {
47196            self.control_handle.shutdown();
47197        }
47198        self.drop_without_shutdown();
47199        _result
47200    }
47201
47202    /// Similar to "send" but does not shutdown the channel if an error occurs.
47203    pub fn send_no_shutdown_on_err(
47204        self,
47205        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47206    ) -> Result<(), fidl::Error> {
47207        let _result = self.send_raw(result);
47208        self.drop_without_shutdown();
47209        _result
47210    }
47211
47212    fn send_raw(
47213        &self,
47214        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47215    ) -> Result<(), fidl::Error> {
47216        self.control_handle.inner.send::<fidl::encoding::ResultType<
47217            fidl::encoding::EmptyStruct,
47218            fidl_fuchsia_posix::Errno,
47219        >>(
47220            result,
47221            self.tx_id,
47222            0x6af077800c5a0b4f,
47223            fidl::encoding::DynamicFlags::empty(),
47224        )
47225    }
47226}
47227
47228#[must_use = "FIDL methods require a response to be sent"]
47229#[derive(Debug)]
47230pub struct DatagramSocketGetIpv6TrafficClassResponder {
47231    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47232    tx_id: u32,
47233}
47234
47235/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47236/// if the responder is dropped without sending a response, so that the client
47237/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47238impl std::ops::Drop for DatagramSocketGetIpv6TrafficClassResponder {
47239    fn drop(&mut self) {
47240        self.control_handle.shutdown();
47241        // Safety: drops once, never accessed again
47242        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47243    }
47244}
47245
47246impl fidl::endpoints::Responder for DatagramSocketGetIpv6TrafficClassResponder {
47247    type ControlHandle = DatagramSocketControlHandle;
47248
47249    fn control_handle(&self) -> &DatagramSocketControlHandle {
47250        &self.control_handle
47251    }
47252
47253    fn drop_without_shutdown(mut self) {
47254        // Safety: drops once, never accessed again due to mem::forget
47255        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47256        // Prevent Drop from running (which would shut down the channel)
47257        std::mem::forget(self);
47258    }
47259}
47260
47261impl DatagramSocketGetIpv6TrafficClassResponder {
47262    /// Sends a response to the FIDL transaction.
47263    ///
47264    /// Sets the channel to shutdown if an error occurs.
47265    pub fn send(
47266        self,
47267        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47268    ) -> Result<(), fidl::Error> {
47269        let _result = self.send_raw(result);
47270        if _result.is_err() {
47271            self.control_handle.shutdown();
47272        }
47273        self.drop_without_shutdown();
47274        _result
47275    }
47276
47277    /// Similar to "send" but does not shutdown the channel if an error occurs.
47278    pub fn send_no_shutdown_on_err(
47279        self,
47280        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47281    ) -> Result<(), fidl::Error> {
47282        let _result = self.send_raw(result);
47283        self.drop_without_shutdown();
47284        _result
47285    }
47286
47287    fn send_raw(
47288        &self,
47289        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47290    ) -> Result<(), fidl::Error> {
47291        self.control_handle.inner.send::<fidl::encoding::ResultType<
47292            BaseNetworkSocketGetIpv6TrafficClassResponse,
47293            fidl_fuchsia_posix::Errno,
47294        >>(
47295            result.map(|value| (value,)),
47296            self.tx_id,
47297            0x6baf6eed8fc2f04,
47298            fidl::encoding::DynamicFlags::empty(),
47299        )
47300    }
47301}
47302
47303#[must_use = "FIDL methods require a response to be sent"]
47304#[derive(Debug)]
47305pub struct DatagramSocketSetIpv6ReceivePacketInfoResponder {
47306    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47307    tx_id: u32,
47308}
47309
47310/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47311/// if the responder is dropped without sending a response, so that the client
47312/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47313impl std::ops::Drop for DatagramSocketSetIpv6ReceivePacketInfoResponder {
47314    fn drop(&mut self) {
47315        self.control_handle.shutdown();
47316        // Safety: drops once, never accessed again
47317        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47318    }
47319}
47320
47321impl fidl::endpoints::Responder for DatagramSocketSetIpv6ReceivePacketInfoResponder {
47322    type ControlHandle = DatagramSocketControlHandle;
47323
47324    fn control_handle(&self) -> &DatagramSocketControlHandle {
47325        &self.control_handle
47326    }
47327
47328    fn drop_without_shutdown(mut self) {
47329        // Safety: drops once, never accessed again due to mem::forget
47330        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47331        // Prevent Drop from running (which would shut down the channel)
47332        std::mem::forget(self);
47333    }
47334}
47335
47336impl DatagramSocketSetIpv6ReceivePacketInfoResponder {
47337    /// Sends a response to the FIDL transaction.
47338    ///
47339    /// Sets the channel to shutdown if an error occurs.
47340    pub fn send(
47341        self,
47342        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47343    ) -> Result<(), fidl::Error> {
47344        let _result = self.send_raw(result);
47345        if _result.is_err() {
47346            self.control_handle.shutdown();
47347        }
47348        self.drop_without_shutdown();
47349        _result
47350    }
47351
47352    /// Similar to "send" but does not shutdown the channel if an error occurs.
47353    pub fn send_no_shutdown_on_err(
47354        self,
47355        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47356    ) -> Result<(), fidl::Error> {
47357        let _result = self.send_raw(result);
47358        self.drop_without_shutdown();
47359        _result
47360    }
47361
47362    fn send_raw(
47363        &self,
47364        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47365    ) -> Result<(), fidl::Error> {
47366        self.control_handle.inner.send::<fidl::encoding::ResultType<
47367            fidl::encoding::EmptyStruct,
47368            fidl_fuchsia_posix::Errno,
47369        >>(
47370            result,
47371            self.tx_id,
47372            0x19259775b1a92768,
47373            fidl::encoding::DynamicFlags::empty(),
47374        )
47375    }
47376}
47377
47378#[must_use = "FIDL methods require a response to be sent"]
47379#[derive(Debug)]
47380pub struct DatagramSocketGetIpv6ReceivePacketInfoResponder {
47381    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47382    tx_id: u32,
47383}
47384
47385/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47386/// if the responder is dropped without sending a response, so that the client
47387/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47388impl std::ops::Drop for DatagramSocketGetIpv6ReceivePacketInfoResponder {
47389    fn drop(&mut self) {
47390        self.control_handle.shutdown();
47391        // Safety: drops once, never accessed again
47392        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47393    }
47394}
47395
47396impl fidl::endpoints::Responder for DatagramSocketGetIpv6ReceivePacketInfoResponder {
47397    type ControlHandle = DatagramSocketControlHandle;
47398
47399    fn control_handle(&self) -> &DatagramSocketControlHandle {
47400        &self.control_handle
47401    }
47402
47403    fn drop_without_shutdown(mut self) {
47404        // Safety: drops once, never accessed again due to mem::forget
47405        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47406        // Prevent Drop from running (which would shut down the channel)
47407        std::mem::forget(self);
47408    }
47409}
47410
47411impl DatagramSocketGetIpv6ReceivePacketInfoResponder {
47412    /// Sends a response to the FIDL transaction.
47413    ///
47414    /// Sets the channel to shutdown if an error occurs.
47415    pub fn send(
47416        self,
47417        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47418    ) -> Result<(), fidl::Error> {
47419        let _result = self.send_raw(result);
47420        if _result.is_err() {
47421            self.control_handle.shutdown();
47422        }
47423        self.drop_without_shutdown();
47424        _result
47425    }
47426
47427    /// Similar to "send" but does not shutdown the channel if an error occurs.
47428    pub fn send_no_shutdown_on_err(
47429        self,
47430        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47431    ) -> Result<(), fidl::Error> {
47432        let _result = self.send_raw(result);
47433        self.drop_without_shutdown();
47434        _result
47435    }
47436
47437    fn send_raw(
47438        &self,
47439        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47440    ) -> Result<(), fidl::Error> {
47441        self.control_handle.inner.send::<fidl::encoding::ResultType<
47442            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
47443            fidl_fuchsia_posix::Errno,
47444        >>(
47445            result.map(|value| (value,)),
47446            self.tx_id,
47447            0x7acd4a2775baec75,
47448            fidl::encoding::DynamicFlags::empty(),
47449        )
47450    }
47451}
47452
47453#[must_use = "FIDL methods require a response to be sent"]
47454#[derive(Debug)]
47455pub struct DatagramSocketGetOriginalDestinationResponder {
47456    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47457    tx_id: u32,
47458}
47459
47460/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47461/// if the responder is dropped without sending a response, so that the client
47462/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47463impl std::ops::Drop for DatagramSocketGetOriginalDestinationResponder {
47464    fn drop(&mut self) {
47465        self.control_handle.shutdown();
47466        // Safety: drops once, never accessed again
47467        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47468    }
47469}
47470
47471impl fidl::endpoints::Responder for DatagramSocketGetOriginalDestinationResponder {
47472    type ControlHandle = DatagramSocketControlHandle;
47473
47474    fn control_handle(&self) -> &DatagramSocketControlHandle {
47475        &self.control_handle
47476    }
47477
47478    fn drop_without_shutdown(mut self) {
47479        // Safety: drops once, never accessed again due to mem::forget
47480        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47481        // Prevent Drop from running (which would shut down the channel)
47482        std::mem::forget(self);
47483    }
47484}
47485
47486impl DatagramSocketGetOriginalDestinationResponder {
47487    /// Sends a response to the FIDL transaction.
47488    ///
47489    /// Sets the channel to shutdown if an error occurs.
47490    pub fn send(
47491        self,
47492        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
47493    ) -> Result<(), fidl::Error> {
47494        let _result = self.send_raw(result);
47495        if _result.is_err() {
47496            self.control_handle.shutdown();
47497        }
47498        self.drop_without_shutdown();
47499        _result
47500    }
47501
47502    /// Similar to "send" but does not shutdown the channel if an error occurs.
47503    pub fn send_no_shutdown_on_err(
47504        self,
47505        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
47506    ) -> Result<(), fidl::Error> {
47507        let _result = self.send_raw(result);
47508        self.drop_without_shutdown();
47509        _result
47510    }
47511
47512    fn send_raw(
47513        &self,
47514        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
47515    ) -> Result<(), fidl::Error> {
47516        self.control_handle.inner.send::<fidl::encoding::ResultType<
47517            BaseNetworkSocketGetOriginalDestinationResponse,
47518            fidl_fuchsia_posix::Errno,
47519        >>(
47520            result.map(|value| (value,)),
47521            self.tx_id,
47522            0x38bf28f0dafdbac0,
47523            fidl::encoding::DynamicFlags::empty(),
47524        )
47525    }
47526}
47527
47528#[must_use = "FIDL methods require a response to be sent"]
47529#[derive(Debug)]
47530pub struct DatagramSocketGetInfoResponder {
47531    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47532    tx_id: u32,
47533}
47534
47535/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47536/// if the responder is dropped without sending a response, so that the client
47537/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47538impl std::ops::Drop for DatagramSocketGetInfoResponder {
47539    fn drop(&mut self) {
47540        self.control_handle.shutdown();
47541        // Safety: drops once, never accessed again
47542        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47543    }
47544}
47545
47546impl fidl::endpoints::Responder for DatagramSocketGetInfoResponder {
47547    type ControlHandle = DatagramSocketControlHandle;
47548
47549    fn control_handle(&self) -> &DatagramSocketControlHandle {
47550        &self.control_handle
47551    }
47552
47553    fn drop_without_shutdown(mut self) {
47554        // Safety: drops once, never accessed again due to mem::forget
47555        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47556        // Prevent Drop from running (which would shut down the channel)
47557        std::mem::forget(self);
47558    }
47559}
47560
47561impl DatagramSocketGetInfoResponder {
47562    /// Sends a response to the FIDL transaction.
47563    ///
47564    /// Sets the channel to shutdown if an error occurs.
47565    pub fn send(
47566        self,
47567        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
47568    ) -> Result<(), fidl::Error> {
47569        let _result = self.send_raw(result);
47570        if _result.is_err() {
47571            self.control_handle.shutdown();
47572        }
47573        self.drop_without_shutdown();
47574        _result
47575    }
47576
47577    /// Similar to "send" but does not shutdown the channel if an error occurs.
47578    pub fn send_no_shutdown_on_err(
47579        self,
47580        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
47581    ) -> Result<(), fidl::Error> {
47582        let _result = self.send_raw(result);
47583        self.drop_without_shutdown();
47584        _result
47585    }
47586
47587    fn send_raw(
47588        &self,
47589        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
47590    ) -> Result<(), fidl::Error> {
47591        self.control_handle.inner.send::<fidl::encoding::ResultType<
47592            BaseDatagramSocketGetInfoResponse,
47593            fidl_fuchsia_posix::Errno,
47594        >>(
47595            result,
47596            self.tx_id,
47597            0x48aa0a1f6a32d2ed,
47598            fidl::encoding::DynamicFlags::empty(),
47599        )
47600    }
47601}
47602
47603#[must_use = "FIDL methods require a response to be sent"]
47604#[derive(Debug)]
47605pub struct DatagramSocketDescribeResponder {
47606    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47607    tx_id: u32,
47608}
47609
47610/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47611/// if the responder is dropped without sending a response, so that the client
47612/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47613impl std::ops::Drop for DatagramSocketDescribeResponder {
47614    fn drop(&mut self) {
47615        self.control_handle.shutdown();
47616        // Safety: drops once, never accessed again
47617        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47618    }
47619}
47620
47621impl fidl::endpoints::Responder for DatagramSocketDescribeResponder {
47622    type ControlHandle = DatagramSocketControlHandle;
47623
47624    fn control_handle(&self) -> &DatagramSocketControlHandle {
47625        &self.control_handle
47626    }
47627
47628    fn drop_without_shutdown(mut self) {
47629        // Safety: drops once, never accessed again due to mem::forget
47630        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47631        // Prevent Drop from running (which would shut down the channel)
47632        std::mem::forget(self);
47633    }
47634}
47635
47636impl DatagramSocketDescribeResponder {
47637    /// Sends a response to the FIDL transaction.
47638    ///
47639    /// Sets the channel to shutdown if an error occurs.
47640    pub fn send(self, mut payload: DatagramSocketDescribeResponse) -> Result<(), fidl::Error> {
47641        let _result = self.send_raw(payload);
47642        if _result.is_err() {
47643            self.control_handle.shutdown();
47644        }
47645        self.drop_without_shutdown();
47646        _result
47647    }
47648
47649    /// Similar to "send" but does not shutdown the channel if an error occurs.
47650    pub fn send_no_shutdown_on_err(
47651        self,
47652        mut payload: DatagramSocketDescribeResponse,
47653    ) -> Result<(), fidl::Error> {
47654        let _result = self.send_raw(payload);
47655        self.drop_without_shutdown();
47656        _result
47657    }
47658
47659    fn send_raw(&self, mut payload: DatagramSocketDescribeResponse) -> Result<(), fidl::Error> {
47660        self.control_handle.inner.send::<DatagramSocketDescribeResponse>(
47661            &mut payload,
47662            self.tx_id,
47663            0xbf1e2f0a86601f3,
47664            fidl::encoding::DynamicFlags::empty(),
47665        )
47666    }
47667}
47668
47669#[must_use = "FIDL methods require a response to be sent"]
47670#[derive(Debug)]
47671pub struct DatagramSocketSendMsgPreflightResponder {
47672    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47673    tx_id: u32,
47674}
47675
47676/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47677/// if the responder is dropped without sending a response, so that the client
47678/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47679impl std::ops::Drop for DatagramSocketSendMsgPreflightResponder {
47680    fn drop(&mut self) {
47681        self.control_handle.shutdown();
47682        // Safety: drops once, never accessed again
47683        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47684    }
47685}
47686
47687impl fidl::endpoints::Responder for DatagramSocketSendMsgPreflightResponder {
47688    type ControlHandle = DatagramSocketControlHandle;
47689
47690    fn control_handle(&self) -> &DatagramSocketControlHandle {
47691        &self.control_handle
47692    }
47693
47694    fn drop_without_shutdown(mut self) {
47695        // Safety: drops once, never accessed again due to mem::forget
47696        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47697        // Prevent Drop from running (which would shut down the channel)
47698        std::mem::forget(self);
47699    }
47700}
47701
47702impl DatagramSocketSendMsgPreflightResponder {
47703    /// Sends a response to the FIDL transaction.
47704    ///
47705    /// Sets the channel to shutdown if an error occurs.
47706    pub fn send(
47707        self,
47708        mut result: Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>,
47709    ) -> Result<(), fidl::Error> {
47710        let _result = self.send_raw(result);
47711        if _result.is_err() {
47712            self.control_handle.shutdown();
47713        }
47714        self.drop_without_shutdown();
47715        _result
47716    }
47717
47718    /// Similar to "send" but does not shutdown the channel if an error occurs.
47719    pub fn send_no_shutdown_on_err(
47720        self,
47721        mut result: Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>,
47722    ) -> Result<(), fidl::Error> {
47723        let _result = self.send_raw(result);
47724        self.drop_without_shutdown();
47725        _result
47726    }
47727
47728    fn send_raw(
47729        &self,
47730        mut result: Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>,
47731    ) -> Result<(), fidl::Error> {
47732        self.control_handle.inner.send::<fidl::encoding::ResultType<
47733            DatagramSocketSendMsgPreflightResponse,
47734            fidl_fuchsia_posix::Errno,
47735        >>(
47736            result.as_mut().map_err(|e| *e),
47737            self.tx_id,
47738            0x5362e668e777248a,
47739            fidl::encoding::DynamicFlags::empty(),
47740        )
47741    }
47742}
47743
47744#[must_use = "FIDL methods require a response to be sent"]
47745#[derive(Debug)]
47746pub struct DatagramSocketRecvMsgPostflightResponder {
47747    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47748    tx_id: u32,
47749}
47750
47751/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47752/// if the responder is dropped without sending a response, so that the client
47753/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47754impl std::ops::Drop for DatagramSocketRecvMsgPostflightResponder {
47755    fn drop(&mut self) {
47756        self.control_handle.shutdown();
47757        // Safety: drops once, never accessed again
47758        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47759    }
47760}
47761
47762impl fidl::endpoints::Responder for DatagramSocketRecvMsgPostflightResponder {
47763    type ControlHandle = DatagramSocketControlHandle;
47764
47765    fn control_handle(&self) -> &DatagramSocketControlHandle {
47766        &self.control_handle
47767    }
47768
47769    fn drop_without_shutdown(mut self) {
47770        // Safety: drops once, never accessed again due to mem::forget
47771        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47772        // Prevent Drop from running (which would shut down the channel)
47773        std::mem::forget(self);
47774    }
47775}
47776
47777impl DatagramSocketRecvMsgPostflightResponder {
47778    /// Sends a response to the FIDL transaction.
47779    ///
47780    /// Sets the channel to shutdown if an error occurs.
47781    pub fn send(
47782        self,
47783        mut result: Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>,
47784    ) -> Result<(), fidl::Error> {
47785        let _result = self.send_raw(result);
47786        if _result.is_err() {
47787            self.control_handle.shutdown();
47788        }
47789        self.drop_without_shutdown();
47790        _result
47791    }
47792
47793    /// Similar to "send" but does not shutdown the channel if an error occurs.
47794    pub fn send_no_shutdown_on_err(
47795        self,
47796        mut result: Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>,
47797    ) -> Result<(), fidl::Error> {
47798        let _result = self.send_raw(result);
47799        self.drop_without_shutdown();
47800        _result
47801    }
47802
47803    fn send_raw(
47804        &self,
47805        mut result: Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>,
47806    ) -> Result<(), fidl::Error> {
47807        self.control_handle.inner.send::<fidl::encoding::ResultType<
47808            DatagramSocketRecvMsgPostflightResponse,
47809            fidl_fuchsia_posix::Errno,
47810        >>(
47811            result.as_mut().map_err(|e| *e),
47812            self.tx_id,
47813            0x1a7cdeca5f3eb8e2,
47814            fidl::encoding::DynamicFlags::empty(),
47815        )
47816    }
47817}
47818
47819#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
47820pub struct ProviderMarker;
47821
47822impl fidl::endpoints::ProtocolMarker for ProviderMarker {
47823    type Proxy = ProviderProxy;
47824    type RequestStream = ProviderRequestStream;
47825    #[cfg(target_os = "fuchsia")]
47826    type SynchronousProxy = ProviderSynchronousProxy;
47827
47828    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.Provider";
47829}
47830impl fidl::endpoints::DiscoverableProtocolMarker for ProviderMarker {}
47831pub type ProviderStreamSocketWithOptionsResult =
47832    Result<fidl::endpoints::ClientEnd<StreamSocketMarker>, fidl_fuchsia_posix::Errno>;
47833pub type ProviderStreamSocketResult =
47834    Result<fidl::endpoints::ClientEnd<StreamSocketMarker>, fidl_fuchsia_posix::Errno>;
47835pub type ProviderDatagramSocketDeprecatedResult =
47836    Result<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>, fidl_fuchsia_posix::Errno>;
47837pub type ProviderDatagramSocketResult =
47838    Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>;
47839pub type ProviderDatagramSocketWithOptionsResult =
47840    Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>;
47841pub type ProviderInterfaceIndexToNameResult = Result<String, i32>;
47842pub type ProviderInterfaceNameToIndexResult = Result<u64, i32>;
47843pub type ProviderInterfaceNameToFlagsResult = Result<InterfaceFlags, i32>;
47844
47845pub trait ProviderProxyInterface: Send + Sync {
47846    type StreamSocketWithOptionsResponseFut: std::future::Future<Output = Result<ProviderStreamSocketWithOptionsResult, fidl::Error>>
47847        + Send;
47848    fn r#stream_socket_with_options(
47849        &self,
47850        domain: Domain,
47851        proto: StreamSocketProtocol,
47852        opts: SocketCreationOptions,
47853    ) -> Self::StreamSocketWithOptionsResponseFut;
47854    type StreamSocketResponseFut: std::future::Future<Output = Result<ProviderStreamSocketResult, fidl::Error>>
47855        + Send;
47856    fn r#stream_socket(
47857        &self,
47858        domain: Domain,
47859        proto: StreamSocketProtocol,
47860    ) -> Self::StreamSocketResponseFut;
47861    type DatagramSocketDeprecatedResponseFut: std::future::Future<Output = Result<ProviderDatagramSocketDeprecatedResult, fidl::Error>>
47862        + Send;
47863    fn r#datagram_socket_deprecated(
47864        &self,
47865        domain: Domain,
47866        proto: DatagramSocketProtocol,
47867    ) -> Self::DatagramSocketDeprecatedResponseFut;
47868    type DatagramSocketResponseFut: std::future::Future<Output = Result<ProviderDatagramSocketResult, fidl::Error>>
47869        + Send;
47870    fn r#datagram_socket(
47871        &self,
47872        domain: Domain,
47873        proto: DatagramSocketProtocol,
47874    ) -> Self::DatagramSocketResponseFut;
47875    type DatagramSocketWithOptionsResponseFut: std::future::Future<Output = Result<ProviderDatagramSocketWithOptionsResult, fidl::Error>>
47876        + Send;
47877    fn r#datagram_socket_with_options(
47878        &self,
47879        domain: Domain,
47880        proto: DatagramSocketProtocol,
47881        opts: SocketCreationOptions,
47882    ) -> Self::DatagramSocketWithOptionsResponseFut;
47883    type InterfaceIndexToNameResponseFut: std::future::Future<Output = Result<ProviderInterfaceIndexToNameResult, fidl::Error>>
47884        + Send;
47885    fn r#interface_index_to_name(&self, index: u64) -> Self::InterfaceIndexToNameResponseFut;
47886    type InterfaceNameToIndexResponseFut: std::future::Future<Output = Result<ProviderInterfaceNameToIndexResult, fidl::Error>>
47887        + Send;
47888    fn r#interface_name_to_index(&self, name: &str) -> Self::InterfaceNameToIndexResponseFut;
47889    type InterfaceNameToFlagsResponseFut: std::future::Future<Output = Result<ProviderInterfaceNameToFlagsResult, fidl::Error>>
47890        + Send;
47891    fn r#interface_name_to_flags(&self, name: &str) -> Self::InterfaceNameToFlagsResponseFut;
47892    type GetInterfaceAddressesResponseFut: std::future::Future<Output = Result<Vec<InterfaceAddresses>, fidl::Error>>
47893        + Send;
47894    fn r#get_interface_addresses(&self) -> Self::GetInterfaceAddressesResponseFut;
47895}
47896#[derive(Debug)]
47897#[cfg(target_os = "fuchsia")]
47898pub struct ProviderSynchronousProxy {
47899    client: fidl::client::sync::Client,
47900}
47901
47902#[cfg(target_os = "fuchsia")]
47903impl fidl::endpoints::SynchronousProxy for ProviderSynchronousProxy {
47904    type Proxy = ProviderProxy;
47905    type Protocol = ProviderMarker;
47906
47907    fn from_channel(inner: fidl::Channel) -> Self {
47908        Self::new(inner)
47909    }
47910
47911    fn into_channel(self) -> fidl::Channel {
47912        self.client.into_channel()
47913    }
47914
47915    fn as_channel(&self) -> &fidl::Channel {
47916        self.client.as_channel()
47917    }
47918}
47919
47920#[cfg(target_os = "fuchsia")]
47921impl ProviderSynchronousProxy {
47922    pub fn new(channel: fidl::Channel) -> Self {
47923        let protocol_name = <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
47924        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
47925    }
47926
47927    pub fn into_channel(self) -> fidl::Channel {
47928        self.client.into_channel()
47929    }
47930
47931    /// Waits until an event arrives and returns it. It is safe for other
47932    /// threads to make concurrent requests while waiting for an event.
47933    pub fn wait_for_event(
47934        &self,
47935        deadline: zx::MonotonicInstant,
47936    ) -> Result<ProviderEvent, fidl::Error> {
47937        ProviderEvent::decode(self.client.wait_for_event(deadline)?)
47938    }
47939
47940    /// Requests a stream socket with the specified parameters and the creation
47941    /// options.
47942    pub fn r#stream_socket_with_options(
47943        &self,
47944        mut domain: Domain,
47945        mut proto: StreamSocketProtocol,
47946        mut opts: SocketCreationOptions,
47947        ___deadline: zx::MonotonicInstant,
47948    ) -> Result<ProviderStreamSocketWithOptionsResult, fidl::Error> {
47949        let _response = self
47950            .client
47951            .send_query::<ProviderStreamSocketWithOptionsRequest, fidl::encoding::ResultType<
47952                ProviderStreamSocketWithOptionsResponse,
47953                fidl_fuchsia_posix::Errno,
47954            >>(
47955                (domain, proto, &mut opts),
47956                0x3969bf7eb78386e0,
47957                fidl::encoding::DynamicFlags::empty(),
47958                ___deadline,
47959            )?;
47960        Ok(_response.map(|x| x.s))
47961    }
47962
47963    /// Requests a stream socket with the specified parameters.
47964    pub fn r#stream_socket(
47965        &self,
47966        mut domain: Domain,
47967        mut proto: StreamSocketProtocol,
47968        ___deadline: zx::MonotonicInstant,
47969    ) -> Result<ProviderStreamSocketResult, fidl::Error> {
47970        let _response =
47971            self.client.send_query::<ProviderStreamSocketRequest, fidl::encoding::ResultType<
47972                ProviderStreamSocketResponse,
47973                fidl_fuchsia_posix::Errno,
47974            >>(
47975                (domain, proto),
47976                0x27c3581da2155545,
47977                fidl::encoding::DynamicFlags::empty(),
47978                ___deadline,
47979            )?;
47980        Ok(_response.map(|x| x.s))
47981    }
47982
47983    /// Requests a datagram socket with the specified parameters.
47984    /// TODO(https://fxbug.dev/42165881): Remove this method once no more callers rely on it.
47985    pub fn r#datagram_socket_deprecated(
47986        &self,
47987        mut domain: Domain,
47988        mut proto: DatagramSocketProtocol,
47989        ___deadline: zx::MonotonicInstant,
47990    ) -> Result<ProviderDatagramSocketDeprecatedResult, fidl::Error> {
47991        let _response = self
47992            .client
47993            .send_query::<ProviderDatagramSocketDeprecatedRequest, fidl::encoding::ResultType<
47994                ProviderDatagramSocketDeprecatedResponse,
47995                fidl_fuchsia_posix::Errno,
47996            >>(
47997                (domain, proto),
47998                0x38876c87cf031cb1,
47999                fidl::encoding::DynamicFlags::empty(),
48000                ___deadline,
48001            )?;
48002        Ok(_response.map(|x| x.s))
48003    }
48004
48005    /// Requests a datagram socket with the specified parameters.
48006    pub fn r#datagram_socket(
48007        &self,
48008        mut domain: Domain,
48009        mut proto: DatagramSocketProtocol,
48010        ___deadline: zx::MonotonicInstant,
48011    ) -> Result<ProviderDatagramSocketResult, fidl::Error> {
48012        let _response =
48013            self.client.send_query::<ProviderDatagramSocketRequest, fidl::encoding::ResultType<
48014                ProviderDatagramSocketResponse,
48015                fidl_fuchsia_posix::Errno,
48016            >>(
48017                (domain, proto),
48018                0x4021b4fa1b6452f2,
48019                fidl::encoding::DynamicFlags::empty(),
48020                ___deadline,
48021            )?;
48022        Ok(_response.map(|x| x))
48023    }
48024
48025    /// Requests a datagram socket with the specified parameters and the creation
48026    /// options.
48027    pub fn r#datagram_socket_with_options(
48028        &self,
48029        mut domain: Domain,
48030        mut proto: DatagramSocketProtocol,
48031        mut opts: SocketCreationOptions,
48032        ___deadline: zx::MonotonicInstant,
48033    ) -> Result<ProviderDatagramSocketWithOptionsResult, fidl::Error> {
48034        let _response = self
48035            .client
48036            .send_query::<ProviderDatagramSocketWithOptionsRequest, fidl::encoding::ResultType<
48037                ProviderDatagramSocketWithOptionsResponse,
48038                fidl_fuchsia_posix::Errno,
48039            >>(
48040                (domain, proto, &mut opts),
48041                0x4cd0cffbffa39eb1,
48042                fidl::encoding::DynamicFlags::empty(),
48043                ___deadline,
48044            )?;
48045        Ok(_response.map(|x| x))
48046    }
48047
48048    /// Looks up an interface by its index and returns its name. Returns
48049    /// `ZX_ERR_NOT_FOUND` if the specified index doesn't exist.
48050    pub fn r#interface_index_to_name(
48051        &self,
48052        mut index: u64,
48053        ___deadline: zx::MonotonicInstant,
48054    ) -> Result<ProviderInterfaceIndexToNameResult, fidl::Error> {
48055        let _response = self.client.send_query::<
48056            ProviderInterfaceIndexToNameRequest,
48057            fidl::encoding::ResultType<ProviderInterfaceIndexToNameResponse, i32>,
48058        >(
48059            (index,),
48060            0x4d59a64fce98272f,
48061            fidl::encoding::DynamicFlags::empty(),
48062            ___deadline,
48063        )?;
48064        Ok(_response.map(|x| x.name))
48065    }
48066
48067    /// Looks up an interface by its name and returns its index. Returns
48068    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48069    pub fn r#interface_name_to_index(
48070        &self,
48071        mut name: &str,
48072        ___deadline: zx::MonotonicInstant,
48073    ) -> Result<ProviderInterfaceNameToIndexResult, fidl::Error> {
48074        let _response = self.client.send_query::<
48075            ProviderInterfaceNameToIndexRequest,
48076            fidl::encoding::ResultType<ProviderInterfaceNameToIndexResponse, i32>,
48077        >(
48078            (name,),
48079            0x690cd8d2f2d650f8,
48080            fidl::encoding::DynamicFlags::empty(),
48081            ___deadline,
48082        )?;
48083        Ok(_response.map(|x| x.index))
48084    }
48085
48086    /// Looks up an interface by its name and returns its flags. Returns
48087    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48088    pub fn r#interface_name_to_flags(
48089        &self,
48090        mut name: &str,
48091        ___deadline: zx::MonotonicInstant,
48092    ) -> Result<ProviderInterfaceNameToFlagsResult, fidl::Error> {
48093        let _response = self.client.send_query::<
48094            ProviderInterfaceNameToFlagsRequest,
48095            fidl::encoding::ResultType<ProviderInterfaceNameToFlagsResponse, i32>,
48096        >(
48097            (name,),
48098            0x25d0efcdb6671a0b,
48099            fidl::encoding::DynamicFlags::empty(),
48100            ___deadline,
48101        )?;
48102        Ok(_response.map(|x| x.flags))
48103    }
48104
48105    /// Requests a list of [`fuchsia.posix.socket.InterfaceAddresses`]
48106    /// describing the network interfaces on the system.
48107    pub fn r#get_interface_addresses(
48108        &self,
48109        ___deadline: zx::MonotonicInstant,
48110    ) -> Result<Vec<InterfaceAddresses>, fidl::Error> {
48111        let _response = self
48112            .client
48113            .send_query::<fidl::encoding::EmptyPayload, ProviderGetInterfaceAddressesResponse>(
48114                (),
48115                0x2e7b9aaf327c870,
48116                fidl::encoding::DynamicFlags::empty(),
48117                ___deadline,
48118            )?;
48119        Ok(_response.interfaces)
48120    }
48121}
48122
48123#[cfg(target_os = "fuchsia")]
48124impl From<ProviderSynchronousProxy> for zx::Handle {
48125    fn from(value: ProviderSynchronousProxy) -> Self {
48126        value.into_channel().into()
48127    }
48128}
48129
48130#[cfg(target_os = "fuchsia")]
48131impl From<fidl::Channel> for ProviderSynchronousProxy {
48132    fn from(value: fidl::Channel) -> Self {
48133        Self::new(value)
48134    }
48135}
48136
48137#[cfg(target_os = "fuchsia")]
48138impl fidl::endpoints::FromClient for ProviderSynchronousProxy {
48139    type Protocol = ProviderMarker;
48140
48141    fn from_client(value: fidl::endpoints::ClientEnd<ProviderMarker>) -> Self {
48142        Self::new(value.into_channel())
48143    }
48144}
48145
48146#[derive(Debug, Clone)]
48147pub struct ProviderProxy {
48148    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
48149}
48150
48151impl fidl::endpoints::Proxy for ProviderProxy {
48152    type Protocol = ProviderMarker;
48153
48154    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
48155        Self::new(inner)
48156    }
48157
48158    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
48159        self.client.into_channel().map_err(|client| Self { client })
48160    }
48161
48162    fn as_channel(&self) -> &::fidl::AsyncChannel {
48163        self.client.as_channel()
48164    }
48165}
48166
48167impl ProviderProxy {
48168    /// Create a new Proxy for fuchsia.posix.socket/Provider.
48169    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
48170        let protocol_name = <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
48171        Self { client: fidl::client::Client::new(channel, protocol_name) }
48172    }
48173
48174    /// Get a Stream of events from the remote end of the protocol.
48175    ///
48176    /// # Panics
48177    ///
48178    /// Panics if the event stream was already taken.
48179    pub fn take_event_stream(&self) -> ProviderEventStream {
48180        ProviderEventStream { event_receiver: self.client.take_event_receiver() }
48181    }
48182
48183    /// Requests a stream socket with the specified parameters and the creation
48184    /// options.
48185    pub fn r#stream_socket_with_options(
48186        &self,
48187        mut domain: Domain,
48188        mut proto: StreamSocketProtocol,
48189        mut opts: SocketCreationOptions,
48190    ) -> fidl::client::QueryResponseFut<
48191        ProviderStreamSocketWithOptionsResult,
48192        fidl::encoding::DefaultFuchsiaResourceDialect,
48193    > {
48194        ProviderProxyInterface::r#stream_socket_with_options(self, domain, proto, opts)
48195    }
48196
48197    /// Requests a stream socket with the specified parameters.
48198    pub fn r#stream_socket(
48199        &self,
48200        mut domain: Domain,
48201        mut proto: StreamSocketProtocol,
48202    ) -> fidl::client::QueryResponseFut<
48203        ProviderStreamSocketResult,
48204        fidl::encoding::DefaultFuchsiaResourceDialect,
48205    > {
48206        ProviderProxyInterface::r#stream_socket(self, domain, proto)
48207    }
48208
48209    /// Requests a datagram socket with the specified parameters.
48210    /// TODO(https://fxbug.dev/42165881): Remove this method once no more callers rely on it.
48211    pub fn r#datagram_socket_deprecated(
48212        &self,
48213        mut domain: Domain,
48214        mut proto: DatagramSocketProtocol,
48215    ) -> fidl::client::QueryResponseFut<
48216        ProviderDatagramSocketDeprecatedResult,
48217        fidl::encoding::DefaultFuchsiaResourceDialect,
48218    > {
48219        ProviderProxyInterface::r#datagram_socket_deprecated(self, domain, proto)
48220    }
48221
48222    /// Requests a datagram socket with the specified parameters.
48223    pub fn r#datagram_socket(
48224        &self,
48225        mut domain: Domain,
48226        mut proto: DatagramSocketProtocol,
48227    ) -> fidl::client::QueryResponseFut<
48228        ProviderDatagramSocketResult,
48229        fidl::encoding::DefaultFuchsiaResourceDialect,
48230    > {
48231        ProviderProxyInterface::r#datagram_socket(self, domain, proto)
48232    }
48233
48234    /// Requests a datagram socket with the specified parameters and the creation
48235    /// options.
48236    pub fn r#datagram_socket_with_options(
48237        &self,
48238        mut domain: Domain,
48239        mut proto: DatagramSocketProtocol,
48240        mut opts: SocketCreationOptions,
48241    ) -> fidl::client::QueryResponseFut<
48242        ProviderDatagramSocketWithOptionsResult,
48243        fidl::encoding::DefaultFuchsiaResourceDialect,
48244    > {
48245        ProviderProxyInterface::r#datagram_socket_with_options(self, domain, proto, opts)
48246    }
48247
48248    /// Looks up an interface by its index and returns its name. Returns
48249    /// `ZX_ERR_NOT_FOUND` if the specified index doesn't exist.
48250    pub fn r#interface_index_to_name(
48251        &self,
48252        mut index: u64,
48253    ) -> fidl::client::QueryResponseFut<
48254        ProviderInterfaceIndexToNameResult,
48255        fidl::encoding::DefaultFuchsiaResourceDialect,
48256    > {
48257        ProviderProxyInterface::r#interface_index_to_name(self, index)
48258    }
48259
48260    /// Looks up an interface by its name and returns its index. Returns
48261    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48262    pub fn r#interface_name_to_index(
48263        &self,
48264        mut name: &str,
48265    ) -> fidl::client::QueryResponseFut<
48266        ProviderInterfaceNameToIndexResult,
48267        fidl::encoding::DefaultFuchsiaResourceDialect,
48268    > {
48269        ProviderProxyInterface::r#interface_name_to_index(self, name)
48270    }
48271
48272    /// Looks up an interface by its name and returns its flags. Returns
48273    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48274    pub fn r#interface_name_to_flags(
48275        &self,
48276        mut name: &str,
48277    ) -> fidl::client::QueryResponseFut<
48278        ProviderInterfaceNameToFlagsResult,
48279        fidl::encoding::DefaultFuchsiaResourceDialect,
48280    > {
48281        ProviderProxyInterface::r#interface_name_to_flags(self, name)
48282    }
48283
48284    /// Requests a list of [`fuchsia.posix.socket.InterfaceAddresses`]
48285    /// describing the network interfaces on the system.
48286    pub fn r#get_interface_addresses(
48287        &self,
48288    ) -> fidl::client::QueryResponseFut<
48289        Vec<InterfaceAddresses>,
48290        fidl::encoding::DefaultFuchsiaResourceDialect,
48291    > {
48292        ProviderProxyInterface::r#get_interface_addresses(self)
48293    }
48294}
48295
48296impl ProviderProxyInterface for ProviderProxy {
48297    type StreamSocketWithOptionsResponseFut = fidl::client::QueryResponseFut<
48298        ProviderStreamSocketWithOptionsResult,
48299        fidl::encoding::DefaultFuchsiaResourceDialect,
48300    >;
48301    fn r#stream_socket_with_options(
48302        &self,
48303        mut domain: Domain,
48304        mut proto: StreamSocketProtocol,
48305        mut opts: SocketCreationOptions,
48306    ) -> Self::StreamSocketWithOptionsResponseFut {
48307        fn _decode(
48308            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48309        ) -> Result<ProviderStreamSocketWithOptionsResult, fidl::Error> {
48310            let _response = fidl::client::decode_transaction_body::<
48311                fidl::encoding::ResultType<
48312                    ProviderStreamSocketWithOptionsResponse,
48313                    fidl_fuchsia_posix::Errno,
48314                >,
48315                fidl::encoding::DefaultFuchsiaResourceDialect,
48316                0x3969bf7eb78386e0,
48317            >(_buf?)?;
48318            Ok(_response.map(|x| x.s))
48319        }
48320        self.client.send_query_and_decode::<
48321            ProviderStreamSocketWithOptionsRequest,
48322            ProviderStreamSocketWithOptionsResult,
48323        >(
48324            (domain, proto, &mut opts,),
48325            0x3969bf7eb78386e0,
48326            fidl::encoding::DynamicFlags::empty(),
48327            _decode,
48328        )
48329    }
48330
48331    type StreamSocketResponseFut = fidl::client::QueryResponseFut<
48332        ProviderStreamSocketResult,
48333        fidl::encoding::DefaultFuchsiaResourceDialect,
48334    >;
48335    fn r#stream_socket(
48336        &self,
48337        mut domain: Domain,
48338        mut proto: StreamSocketProtocol,
48339    ) -> Self::StreamSocketResponseFut {
48340        fn _decode(
48341            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48342        ) -> Result<ProviderStreamSocketResult, fidl::Error> {
48343            let _response = fidl::client::decode_transaction_body::<
48344                fidl::encoding::ResultType<ProviderStreamSocketResponse, fidl_fuchsia_posix::Errno>,
48345                fidl::encoding::DefaultFuchsiaResourceDialect,
48346                0x27c3581da2155545,
48347            >(_buf?)?;
48348            Ok(_response.map(|x| x.s))
48349        }
48350        self.client
48351            .send_query_and_decode::<ProviderStreamSocketRequest, ProviderStreamSocketResult>(
48352                (domain, proto),
48353                0x27c3581da2155545,
48354                fidl::encoding::DynamicFlags::empty(),
48355                _decode,
48356            )
48357    }
48358
48359    type DatagramSocketDeprecatedResponseFut = fidl::client::QueryResponseFut<
48360        ProviderDatagramSocketDeprecatedResult,
48361        fidl::encoding::DefaultFuchsiaResourceDialect,
48362    >;
48363    fn r#datagram_socket_deprecated(
48364        &self,
48365        mut domain: Domain,
48366        mut proto: DatagramSocketProtocol,
48367    ) -> Self::DatagramSocketDeprecatedResponseFut {
48368        fn _decode(
48369            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48370        ) -> Result<ProviderDatagramSocketDeprecatedResult, fidl::Error> {
48371            let _response = fidl::client::decode_transaction_body::<
48372                fidl::encoding::ResultType<
48373                    ProviderDatagramSocketDeprecatedResponse,
48374                    fidl_fuchsia_posix::Errno,
48375                >,
48376                fidl::encoding::DefaultFuchsiaResourceDialect,
48377                0x38876c87cf031cb1,
48378            >(_buf?)?;
48379            Ok(_response.map(|x| x.s))
48380        }
48381        self.client.send_query_and_decode::<
48382            ProviderDatagramSocketDeprecatedRequest,
48383            ProviderDatagramSocketDeprecatedResult,
48384        >(
48385            (domain, proto,),
48386            0x38876c87cf031cb1,
48387            fidl::encoding::DynamicFlags::empty(),
48388            _decode,
48389        )
48390    }
48391
48392    type DatagramSocketResponseFut = fidl::client::QueryResponseFut<
48393        ProviderDatagramSocketResult,
48394        fidl::encoding::DefaultFuchsiaResourceDialect,
48395    >;
48396    fn r#datagram_socket(
48397        &self,
48398        mut domain: Domain,
48399        mut proto: DatagramSocketProtocol,
48400    ) -> Self::DatagramSocketResponseFut {
48401        fn _decode(
48402            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48403        ) -> Result<ProviderDatagramSocketResult, fidl::Error> {
48404            let _response = fidl::client::decode_transaction_body::<
48405                fidl::encoding::ResultType<
48406                    ProviderDatagramSocketResponse,
48407                    fidl_fuchsia_posix::Errno,
48408                >,
48409                fidl::encoding::DefaultFuchsiaResourceDialect,
48410                0x4021b4fa1b6452f2,
48411            >(_buf?)?;
48412            Ok(_response.map(|x| x))
48413        }
48414        self.client
48415            .send_query_and_decode::<ProviderDatagramSocketRequest, ProviderDatagramSocketResult>(
48416                (domain, proto),
48417                0x4021b4fa1b6452f2,
48418                fidl::encoding::DynamicFlags::empty(),
48419                _decode,
48420            )
48421    }
48422
48423    type DatagramSocketWithOptionsResponseFut = fidl::client::QueryResponseFut<
48424        ProviderDatagramSocketWithOptionsResult,
48425        fidl::encoding::DefaultFuchsiaResourceDialect,
48426    >;
48427    fn r#datagram_socket_with_options(
48428        &self,
48429        mut domain: Domain,
48430        mut proto: DatagramSocketProtocol,
48431        mut opts: SocketCreationOptions,
48432    ) -> Self::DatagramSocketWithOptionsResponseFut {
48433        fn _decode(
48434            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48435        ) -> Result<ProviderDatagramSocketWithOptionsResult, fidl::Error> {
48436            let _response = fidl::client::decode_transaction_body::<
48437                fidl::encoding::ResultType<
48438                    ProviderDatagramSocketWithOptionsResponse,
48439                    fidl_fuchsia_posix::Errno,
48440                >,
48441                fidl::encoding::DefaultFuchsiaResourceDialect,
48442                0x4cd0cffbffa39eb1,
48443            >(_buf?)?;
48444            Ok(_response.map(|x| x))
48445        }
48446        self.client.send_query_and_decode::<
48447            ProviderDatagramSocketWithOptionsRequest,
48448            ProviderDatagramSocketWithOptionsResult,
48449        >(
48450            (domain, proto, &mut opts,),
48451            0x4cd0cffbffa39eb1,
48452            fidl::encoding::DynamicFlags::empty(),
48453            _decode,
48454        )
48455    }
48456
48457    type InterfaceIndexToNameResponseFut = fidl::client::QueryResponseFut<
48458        ProviderInterfaceIndexToNameResult,
48459        fidl::encoding::DefaultFuchsiaResourceDialect,
48460    >;
48461    fn r#interface_index_to_name(&self, mut index: u64) -> Self::InterfaceIndexToNameResponseFut {
48462        fn _decode(
48463            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48464        ) -> Result<ProviderInterfaceIndexToNameResult, fidl::Error> {
48465            let _response = fidl::client::decode_transaction_body::<
48466                fidl::encoding::ResultType<ProviderInterfaceIndexToNameResponse, i32>,
48467                fidl::encoding::DefaultFuchsiaResourceDialect,
48468                0x4d59a64fce98272f,
48469            >(_buf?)?;
48470            Ok(_response.map(|x| x.name))
48471        }
48472        self.client.send_query_and_decode::<
48473            ProviderInterfaceIndexToNameRequest,
48474            ProviderInterfaceIndexToNameResult,
48475        >(
48476            (index,),
48477            0x4d59a64fce98272f,
48478            fidl::encoding::DynamicFlags::empty(),
48479            _decode,
48480        )
48481    }
48482
48483    type InterfaceNameToIndexResponseFut = fidl::client::QueryResponseFut<
48484        ProviderInterfaceNameToIndexResult,
48485        fidl::encoding::DefaultFuchsiaResourceDialect,
48486    >;
48487    fn r#interface_name_to_index(&self, mut name: &str) -> Self::InterfaceNameToIndexResponseFut {
48488        fn _decode(
48489            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48490        ) -> Result<ProviderInterfaceNameToIndexResult, fidl::Error> {
48491            let _response = fidl::client::decode_transaction_body::<
48492                fidl::encoding::ResultType<ProviderInterfaceNameToIndexResponse, i32>,
48493                fidl::encoding::DefaultFuchsiaResourceDialect,
48494                0x690cd8d2f2d650f8,
48495            >(_buf?)?;
48496            Ok(_response.map(|x| x.index))
48497        }
48498        self.client.send_query_and_decode::<
48499            ProviderInterfaceNameToIndexRequest,
48500            ProviderInterfaceNameToIndexResult,
48501        >(
48502            (name,),
48503            0x690cd8d2f2d650f8,
48504            fidl::encoding::DynamicFlags::empty(),
48505            _decode,
48506        )
48507    }
48508
48509    type InterfaceNameToFlagsResponseFut = fidl::client::QueryResponseFut<
48510        ProviderInterfaceNameToFlagsResult,
48511        fidl::encoding::DefaultFuchsiaResourceDialect,
48512    >;
48513    fn r#interface_name_to_flags(&self, mut name: &str) -> Self::InterfaceNameToFlagsResponseFut {
48514        fn _decode(
48515            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48516        ) -> Result<ProviderInterfaceNameToFlagsResult, fidl::Error> {
48517            let _response = fidl::client::decode_transaction_body::<
48518                fidl::encoding::ResultType<ProviderInterfaceNameToFlagsResponse, i32>,
48519                fidl::encoding::DefaultFuchsiaResourceDialect,
48520                0x25d0efcdb6671a0b,
48521            >(_buf?)?;
48522            Ok(_response.map(|x| x.flags))
48523        }
48524        self.client.send_query_and_decode::<
48525            ProviderInterfaceNameToFlagsRequest,
48526            ProviderInterfaceNameToFlagsResult,
48527        >(
48528            (name,),
48529            0x25d0efcdb6671a0b,
48530            fidl::encoding::DynamicFlags::empty(),
48531            _decode,
48532        )
48533    }
48534
48535    type GetInterfaceAddressesResponseFut = fidl::client::QueryResponseFut<
48536        Vec<InterfaceAddresses>,
48537        fidl::encoding::DefaultFuchsiaResourceDialect,
48538    >;
48539    fn r#get_interface_addresses(&self) -> Self::GetInterfaceAddressesResponseFut {
48540        fn _decode(
48541            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48542        ) -> Result<Vec<InterfaceAddresses>, fidl::Error> {
48543            let _response = fidl::client::decode_transaction_body::<
48544                ProviderGetInterfaceAddressesResponse,
48545                fidl::encoding::DefaultFuchsiaResourceDialect,
48546                0x2e7b9aaf327c870,
48547            >(_buf?)?;
48548            Ok(_response.interfaces)
48549        }
48550        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<InterfaceAddresses>>(
48551            (),
48552            0x2e7b9aaf327c870,
48553            fidl::encoding::DynamicFlags::empty(),
48554            _decode,
48555        )
48556    }
48557}
48558
48559pub struct ProviderEventStream {
48560    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
48561}
48562
48563impl std::marker::Unpin for ProviderEventStream {}
48564
48565impl futures::stream::FusedStream for ProviderEventStream {
48566    fn is_terminated(&self) -> bool {
48567        self.event_receiver.is_terminated()
48568    }
48569}
48570
48571impl futures::Stream for ProviderEventStream {
48572    type Item = Result<ProviderEvent, fidl::Error>;
48573
48574    fn poll_next(
48575        mut self: std::pin::Pin<&mut Self>,
48576        cx: &mut std::task::Context<'_>,
48577    ) -> std::task::Poll<Option<Self::Item>> {
48578        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
48579            &mut self.event_receiver,
48580            cx
48581        )?) {
48582            Some(buf) => std::task::Poll::Ready(Some(ProviderEvent::decode(buf))),
48583            None => std::task::Poll::Ready(None),
48584        }
48585    }
48586}
48587
48588#[derive(Debug)]
48589pub enum ProviderEvent {}
48590
48591impl ProviderEvent {
48592    /// Decodes a message buffer as a [`ProviderEvent`].
48593    fn decode(
48594        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
48595    ) -> Result<ProviderEvent, fidl::Error> {
48596        let (bytes, _handles) = buf.split_mut();
48597        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
48598        debug_assert_eq!(tx_header.tx_id, 0);
48599        match tx_header.ordinal {
48600            _ => Err(fidl::Error::UnknownOrdinal {
48601                ordinal: tx_header.ordinal,
48602                protocol_name: <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
48603            }),
48604        }
48605    }
48606}
48607
48608/// A Stream of incoming requests for fuchsia.posix.socket/Provider.
48609pub struct ProviderRequestStream {
48610    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
48611    is_terminated: bool,
48612}
48613
48614impl std::marker::Unpin for ProviderRequestStream {}
48615
48616impl futures::stream::FusedStream for ProviderRequestStream {
48617    fn is_terminated(&self) -> bool {
48618        self.is_terminated
48619    }
48620}
48621
48622impl fidl::endpoints::RequestStream for ProviderRequestStream {
48623    type Protocol = ProviderMarker;
48624    type ControlHandle = ProviderControlHandle;
48625
48626    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
48627        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
48628    }
48629
48630    fn control_handle(&self) -> Self::ControlHandle {
48631        ProviderControlHandle { inner: self.inner.clone() }
48632    }
48633
48634    fn into_inner(
48635        self,
48636    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
48637    {
48638        (self.inner, self.is_terminated)
48639    }
48640
48641    fn from_inner(
48642        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
48643        is_terminated: bool,
48644    ) -> Self {
48645        Self { inner, is_terminated }
48646    }
48647}
48648
48649impl futures::Stream for ProviderRequestStream {
48650    type Item = Result<ProviderRequest, fidl::Error>;
48651
48652    fn poll_next(
48653        mut self: std::pin::Pin<&mut Self>,
48654        cx: &mut std::task::Context<'_>,
48655    ) -> std::task::Poll<Option<Self::Item>> {
48656        let this = &mut *self;
48657        if this.inner.check_shutdown(cx) {
48658            this.is_terminated = true;
48659            return std::task::Poll::Ready(None);
48660        }
48661        if this.is_terminated {
48662            panic!("polled ProviderRequestStream after completion");
48663        }
48664        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
48665            |bytes, handles| {
48666                match this.inner.channel().read_etc(cx, bytes, handles) {
48667                    std::task::Poll::Ready(Ok(())) => {}
48668                    std::task::Poll::Pending => return std::task::Poll::Pending,
48669                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
48670                        this.is_terminated = true;
48671                        return std::task::Poll::Ready(None);
48672                    }
48673                    std::task::Poll::Ready(Err(e)) => {
48674                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
48675                            e.into(),
48676                        ))));
48677                    }
48678                }
48679
48680                // A message has been received from the channel
48681                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
48682
48683                std::task::Poll::Ready(Some(match header.ordinal {
48684                    0x3969bf7eb78386e0 => {
48685                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48686                        let mut req = fidl::new_empty!(
48687                            ProviderStreamSocketWithOptionsRequest,
48688                            fidl::encoding::DefaultFuchsiaResourceDialect
48689                        );
48690                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderStreamSocketWithOptionsRequest>(&header, _body_bytes, handles, &mut req)?;
48691                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48692                        Ok(ProviderRequest::StreamSocketWithOptions {
48693                            domain: req.domain,
48694                            proto: req.proto,
48695                            opts: req.opts,
48696
48697                            responder: ProviderStreamSocketWithOptionsResponder {
48698                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48699                                tx_id: header.tx_id,
48700                            },
48701                        })
48702                    }
48703                    0x27c3581da2155545 => {
48704                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48705                        let mut req = fidl::new_empty!(
48706                            ProviderStreamSocketRequest,
48707                            fidl::encoding::DefaultFuchsiaResourceDialect
48708                        );
48709                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderStreamSocketRequest>(&header, _body_bytes, handles, &mut req)?;
48710                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48711                        Ok(ProviderRequest::StreamSocket {
48712                            domain: req.domain,
48713                            proto: req.proto,
48714
48715                            responder: ProviderStreamSocketResponder {
48716                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48717                                tx_id: header.tx_id,
48718                            },
48719                        })
48720                    }
48721                    0x38876c87cf031cb1 => {
48722                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48723                        let mut req = fidl::new_empty!(
48724                            ProviderDatagramSocketDeprecatedRequest,
48725                            fidl::encoding::DefaultFuchsiaResourceDialect
48726                        );
48727                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderDatagramSocketDeprecatedRequest>(&header, _body_bytes, handles, &mut req)?;
48728                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48729                        Ok(ProviderRequest::DatagramSocketDeprecated {
48730                            domain: req.domain,
48731                            proto: req.proto,
48732
48733                            responder: ProviderDatagramSocketDeprecatedResponder {
48734                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48735                                tx_id: header.tx_id,
48736                            },
48737                        })
48738                    }
48739                    0x4021b4fa1b6452f2 => {
48740                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48741                        let mut req = fidl::new_empty!(
48742                            ProviderDatagramSocketRequest,
48743                            fidl::encoding::DefaultFuchsiaResourceDialect
48744                        );
48745                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderDatagramSocketRequest>(&header, _body_bytes, handles, &mut req)?;
48746                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48747                        Ok(ProviderRequest::DatagramSocket {
48748                            domain: req.domain,
48749                            proto: req.proto,
48750
48751                            responder: ProviderDatagramSocketResponder {
48752                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48753                                tx_id: header.tx_id,
48754                            },
48755                        })
48756                    }
48757                    0x4cd0cffbffa39eb1 => {
48758                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48759                        let mut req = fidl::new_empty!(
48760                            ProviderDatagramSocketWithOptionsRequest,
48761                            fidl::encoding::DefaultFuchsiaResourceDialect
48762                        );
48763                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderDatagramSocketWithOptionsRequest>(&header, _body_bytes, handles, &mut req)?;
48764                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48765                        Ok(ProviderRequest::DatagramSocketWithOptions {
48766                            domain: req.domain,
48767                            proto: req.proto,
48768                            opts: req.opts,
48769
48770                            responder: ProviderDatagramSocketWithOptionsResponder {
48771                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48772                                tx_id: header.tx_id,
48773                            },
48774                        })
48775                    }
48776                    0x4d59a64fce98272f => {
48777                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48778                        let mut req = fidl::new_empty!(
48779                            ProviderInterfaceIndexToNameRequest,
48780                            fidl::encoding::DefaultFuchsiaResourceDialect
48781                        );
48782                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderInterfaceIndexToNameRequest>(&header, _body_bytes, handles, &mut req)?;
48783                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48784                        Ok(ProviderRequest::InterfaceIndexToName {
48785                            index: req.index,
48786
48787                            responder: ProviderInterfaceIndexToNameResponder {
48788                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48789                                tx_id: header.tx_id,
48790                            },
48791                        })
48792                    }
48793                    0x690cd8d2f2d650f8 => {
48794                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48795                        let mut req = fidl::new_empty!(
48796                            ProviderInterfaceNameToIndexRequest,
48797                            fidl::encoding::DefaultFuchsiaResourceDialect
48798                        );
48799                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderInterfaceNameToIndexRequest>(&header, _body_bytes, handles, &mut req)?;
48800                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48801                        Ok(ProviderRequest::InterfaceNameToIndex {
48802                            name: req.name,
48803
48804                            responder: ProviderInterfaceNameToIndexResponder {
48805                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48806                                tx_id: header.tx_id,
48807                            },
48808                        })
48809                    }
48810                    0x25d0efcdb6671a0b => {
48811                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48812                        let mut req = fidl::new_empty!(
48813                            ProviderInterfaceNameToFlagsRequest,
48814                            fidl::encoding::DefaultFuchsiaResourceDialect
48815                        );
48816                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderInterfaceNameToFlagsRequest>(&header, _body_bytes, handles, &mut req)?;
48817                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48818                        Ok(ProviderRequest::InterfaceNameToFlags {
48819                            name: req.name,
48820
48821                            responder: ProviderInterfaceNameToFlagsResponder {
48822                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48823                                tx_id: header.tx_id,
48824                            },
48825                        })
48826                    }
48827                    0x2e7b9aaf327c870 => {
48828                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48829                        let mut req = fidl::new_empty!(
48830                            fidl::encoding::EmptyPayload,
48831                            fidl::encoding::DefaultFuchsiaResourceDialect
48832                        );
48833                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
48834                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48835                        Ok(ProviderRequest::GetInterfaceAddresses {
48836                            responder: ProviderGetInterfaceAddressesResponder {
48837                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48838                                tx_id: header.tx_id,
48839                            },
48840                        })
48841                    }
48842                    _ => Err(fidl::Error::UnknownOrdinal {
48843                        ordinal: header.ordinal,
48844                        protocol_name:
48845                            <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
48846                    }),
48847                }))
48848            },
48849        )
48850    }
48851}
48852
48853/// Provider implements the POSIX sockets API.
48854///
48855/// *Warning:* This protocol is not yet ready for direct use by clients.
48856/// Instead, clients should use the BSD sockets API to interact with sockets.
48857/// We plan to change this protocol substantially and clients that couple
48858/// directly to this protocol will make those changes more difficult.
48859#[derive(Debug)]
48860pub enum ProviderRequest {
48861    /// Requests a stream socket with the specified parameters and the creation
48862    /// options.
48863    StreamSocketWithOptions {
48864        domain: Domain,
48865        proto: StreamSocketProtocol,
48866        opts: SocketCreationOptions,
48867        responder: ProviderStreamSocketWithOptionsResponder,
48868    },
48869    /// Requests a stream socket with the specified parameters.
48870    StreamSocket {
48871        domain: Domain,
48872        proto: StreamSocketProtocol,
48873        responder: ProviderStreamSocketResponder,
48874    },
48875    /// Requests a datagram socket with the specified parameters.
48876    /// TODO(https://fxbug.dev/42165881): Remove this method once no more callers rely on it.
48877    DatagramSocketDeprecated {
48878        domain: Domain,
48879        proto: DatagramSocketProtocol,
48880        responder: ProviderDatagramSocketDeprecatedResponder,
48881    },
48882    /// Requests a datagram socket with the specified parameters.
48883    DatagramSocket {
48884        domain: Domain,
48885        proto: DatagramSocketProtocol,
48886        responder: ProviderDatagramSocketResponder,
48887    },
48888    /// Requests a datagram socket with the specified parameters and the creation
48889    /// options.
48890    DatagramSocketWithOptions {
48891        domain: Domain,
48892        proto: DatagramSocketProtocol,
48893        opts: SocketCreationOptions,
48894        responder: ProviderDatagramSocketWithOptionsResponder,
48895    },
48896    /// Looks up an interface by its index and returns its name. Returns
48897    /// `ZX_ERR_NOT_FOUND` if the specified index doesn't exist.
48898    InterfaceIndexToName { index: u64, responder: ProviderInterfaceIndexToNameResponder },
48899    /// Looks up an interface by its name and returns its index. Returns
48900    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48901    InterfaceNameToIndex { name: String, responder: ProviderInterfaceNameToIndexResponder },
48902    /// Looks up an interface by its name and returns its flags. Returns
48903    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48904    InterfaceNameToFlags { name: String, responder: ProviderInterfaceNameToFlagsResponder },
48905    /// Requests a list of [`fuchsia.posix.socket.InterfaceAddresses`]
48906    /// describing the network interfaces on the system.
48907    GetInterfaceAddresses { responder: ProviderGetInterfaceAddressesResponder },
48908}
48909
48910impl ProviderRequest {
48911    #[allow(irrefutable_let_patterns)]
48912    pub fn into_stream_socket_with_options(
48913        self,
48914    ) -> Option<(
48915        Domain,
48916        StreamSocketProtocol,
48917        SocketCreationOptions,
48918        ProviderStreamSocketWithOptionsResponder,
48919    )> {
48920        if let ProviderRequest::StreamSocketWithOptions { domain, proto, opts, responder } = self {
48921            Some((domain, proto, opts, responder))
48922        } else {
48923            None
48924        }
48925    }
48926
48927    #[allow(irrefutable_let_patterns)]
48928    pub fn into_stream_socket(
48929        self,
48930    ) -> Option<(Domain, StreamSocketProtocol, ProviderStreamSocketResponder)> {
48931        if let ProviderRequest::StreamSocket { domain, proto, responder } = self {
48932            Some((domain, proto, responder))
48933        } else {
48934            None
48935        }
48936    }
48937
48938    #[allow(irrefutable_let_patterns)]
48939    pub fn into_datagram_socket_deprecated(
48940        self,
48941    ) -> Option<(Domain, DatagramSocketProtocol, ProviderDatagramSocketDeprecatedResponder)> {
48942        if let ProviderRequest::DatagramSocketDeprecated { domain, proto, responder } = self {
48943            Some((domain, proto, responder))
48944        } else {
48945            None
48946        }
48947    }
48948
48949    #[allow(irrefutable_let_patterns)]
48950    pub fn into_datagram_socket(
48951        self,
48952    ) -> Option<(Domain, DatagramSocketProtocol, ProviderDatagramSocketResponder)> {
48953        if let ProviderRequest::DatagramSocket { domain, proto, responder } = self {
48954            Some((domain, proto, responder))
48955        } else {
48956            None
48957        }
48958    }
48959
48960    #[allow(irrefutable_let_patterns)]
48961    pub fn into_datagram_socket_with_options(
48962        self,
48963    ) -> Option<(
48964        Domain,
48965        DatagramSocketProtocol,
48966        SocketCreationOptions,
48967        ProviderDatagramSocketWithOptionsResponder,
48968    )> {
48969        if let ProviderRequest::DatagramSocketWithOptions { domain, proto, opts, responder } = self
48970        {
48971            Some((domain, proto, opts, responder))
48972        } else {
48973            None
48974        }
48975    }
48976
48977    #[allow(irrefutable_let_patterns)]
48978    pub fn into_interface_index_to_name(
48979        self,
48980    ) -> Option<(u64, ProviderInterfaceIndexToNameResponder)> {
48981        if let ProviderRequest::InterfaceIndexToName { index, responder } = self {
48982            Some((index, responder))
48983        } else {
48984            None
48985        }
48986    }
48987
48988    #[allow(irrefutable_let_patterns)]
48989    pub fn into_interface_name_to_index(
48990        self,
48991    ) -> Option<(String, ProviderInterfaceNameToIndexResponder)> {
48992        if let ProviderRequest::InterfaceNameToIndex { name, responder } = self {
48993            Some((name, responder))
48994        } else {
48995            None
48996        }
48997    }
48998
48999    #[allow(irrefutable_let_patterns)]
49000    pub fn into_interface_name_to_flags(
49001        self,
49002    ) -> Option<(String, ProviderInterfaceNameToFlagsResponder)> {
49003        if let ProviderRequest::InterfaceNameToFlags { name, responder } = self {
49004            Some((name, responder))
49005        } else {
49006            None
49007        }
49008    }
49009
49010    #[allow(irrefutable_let_patterns)]
49011    pub fn into_get_interface_addresses(self) -> Option<(ProviderGetInterfaceAddressesResponder)> {
49012        if let ProviderRequest::GetInterfaceAddresses { responder } = self {
49013            Some((responder))
49014        } else {
49015            None
49016        }
49017    }
49018
49019    /// Name of the method defined in FIDL
49020    pub fn method_name(&self) -> &'static str {
49021        match *self {
49022            ProviderRequest::StreamSocketWithOptions { .. } => "stream_socket_with_options",
49023            ProviderRequest::StreamSocket { .. } => "stream_socket",
49024            ProviderRequest::DatagramSocketDeprecated { .. } => "datagram_socket_deprecated",
49025            ProviderRequest::DatagramSocket { .. } => "datagram_socket",
49026            ProviderRequest::DatagramSocketWithOptions { .. } => "datagram_socket_with_options",
49027            ProviderRequest::InterfaceIndexToName { .. } => "interface_index_to_name",
49028            ProviderRequest::InterfaceNameToIndex { .. } => "interface_name_to_index",
49029            ProviderRequest::InterfaceNameToFlags { .. } => "interface_name_to_flags",
49030            ProviderRequest::GetInterfaceAddresses { .. } => "get_interface_addresses",
49031        }
49032    }
49033}
49034
49035#[derive(Debug, Clone)]
49036pub struct ProviderControlHandle {
49037    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
49038}
49039
49040impl fidl::endpoints::ControlHandle for ProviderControlHandle {
49041    fn shutdown(&self) {
49042        self.inner.shutdown()
49043    }
49044    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
49045        self.inner.shutdown_with_epitaph(status)
49046    }
49047
49048    fn is_closed(&self) -> bool {
49049        self.inner.channel().is_closed()
49050    }
49051    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
49052        self.inner.channel().on_closed()
49053    }
49054
49055    #[cfg(target_os = "fuchsia")]
49056    fn signal_peer(
49057        &self,
49058        clear_mask: zx::Signals,
49059        set_mask: zx::Signals,
49060    ) -> Result<(), zx_status::Status> {
49061        use fidl::Peered;
49062        self.inner.channel().signal_peer(clear_mask, set_mask)
49063    }
49064}
49065
49066impl ProviderControlHandle {}
49067
49068#[must_use = "FIDL methods require a response to be sent"]
49069#[derive(Debug)]
49070pub struct ProviderStreamSocketWithOptionsResponder {
49071    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49072    tx_id: u32,
49073}
49074
49075/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49076/// if the responder is dropped without sending a response, so that the client
49077/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49078impl std::ops::Drop for ProviderStreamSocketWithOptionsResponder {
49079    fn drop(&mut self) {
49080        self.control_handle.shutdown();
49081        // Safety: drops once, never accessed again
49082        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49083    }
49084}
49085
49086impl fidl::endpoints::Responder for ProviderStreamSocketWithOptionsResponder {
49087    type ControlHandle = ProviderControlHandle;
49088
49089    fn control_handle(&self) -> &ProviderControlHandle {
49090        &self.control_handle
49091    }
49092
49093    fn drop_without_shutdown(mut self) {
49094        // Safety: drops once, never accessed again due to mem::forget
49095        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49096        // Prevent Drop from running (which would shut down the channel)
49097        std::mem::forget(self);
49098    }
49099}
49100
49101impl ProviderStreamSocketWithOptionsResponder {
49102    /// Sends a response to the FIDL transaction.
49103    ///
49104    /// Sets the channel to shutdown if an error occurs.
49105    pub fn send(
49106        self,
49107        mut result: Result<
49108            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49109            fidl_fuchsia_posix::Errno,
49110        >,
49111    ) -> Result<(), fidl::Error> {
49112        let _result = self.send_raw(result);
49113        if _result.is_err() {
49114            self.control_handle.shutdown();
49115        }
49116        self.drop_without_shutdown();
49117        _result
49118    }
49119
49120    /// Similar to "send" but does not shutdown the channel if an error occurs.
49121    pub fn send_no_shutdown_on_err(
49122        self,
49123        mut result: Result<
49124            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49125            fidl_fuchsia_posix::Errno,
49126        >,
49127    ) -> Result<(), fidl::Error> {
49128        let _result = self.send_raw(result);
49129        self.drop_without_shutdown();
49130        _result
49131    }
49132
49133    fn send_raw(
49134        &self,
49135        mut result: Result<
49136            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49137            fidl_fuchsia_posix::Errno,
49138        >,
49139    ) -> Result<(), fidl::Error> {
49140        self.control_handle.inner.send::<fidl::encoding::ResultType<
49141            ProviderStreamSocketWithOptionsResponse,
49142            fidl_fuchsia_posix::Errno,
49143        >>(
49144            result.map(|s| (s,)),
49145            self.tx_id,
49146            0x3969bf7eb78386e0,
49147            fidl::encoding::DynamicFlags::empty(),
49148        )
49149    }
49150}
49151
49152#[must_use = "FIDL methods require a response to be sent"]
49153#[derive(Debug)]
49154pub struct ProviderStreamSocketResponder {
49155    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49156    tx_id: u32,
49157}
49158
49159/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49160/// if the responder is dropped without sending a response, so that the client
49161/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49162impl std::ops::Drop for ProviderStreamSocketResponder {
49163    fn drop(&mut self) {
49164        self.control_handle.shutdown();
49165        // Safety: drops once, never accessed again
49166        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49167    }
49168}
49169
49170impl fidl::endpoints::Responder for ProviderStreamSocketResponder {
49171    type ControlHandle = ProviderControlHandle;
49172
49173    fn control_handle(&self) -> &ProviderControlHandle {
49174        &self.control_handle
49175    }
49176
49177    fn drop_without_shutdown(mut self) {
49178        // Safety: drops once, never accessed again due to mem::forget
49179        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49180        // Prevent Drop from running (which would shut down the channel)
49181        std::mem::forget(self);
49182    }
49183}
49184
49185impl ProviderStreamSocketResponder {
49186    /// Sends a response to the FIDL transaction.
49187    ///
49188    /// Sets the channel to shutdown if an error occurs.
49189    pub fn send(
49190        self,
49191        mut result: Result<
49192            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49193            fidl_fuchsia_posix::Errno,
49194        >,
49195    ) -> Result<(), fidl::Error> {
49196        let _result = self.send_raw(result);
49197        if _result.is_err() {
49198            self.control_handle.shutdown();
49199        }
49200        self.drop_without_shutdown();
49201        _result
49202    }
49203
49204    /// Similar to "send" but does not shutdown the channel if an error occurs.
49205    pub fn send_no_shutdown_on_err(
49206        self,
49207        mut result: Result<
49208            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49209            fidl_fuchsia_posix::Errno,
49210        >,
49211    ) -> Result<(), fidl::Error> {
49212        let _result = self.send_raw(result);
49213        self.drop_without_shutdown();
49214        _result
49215    }
49216
49217    fn send_raw(
49218        &self,
49219        mut result: Result<
49220            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49221            fidl_fuchsia_posix::Errno,
49222        >,
49223    ) -> Result<(), fidl::Error> {
49224        self.control_handle.inner.send::<fidl::encoding::ResultType<
49225            ProviderStreamSocketResponse,
49226            fidl_fuchsia_posix::Errno,
49227        >>(
49228            result.map(|s| (s,)),
49229            self.tx_id,
49230            0x27c3581da2155545,
49231            fidl::encoding::DynamicFlags::empty(),
49232        )
49233    }
49234}
49235
49236#[must_use = "FIDL methods require a response to be sent"]
49237#[derive(Debug)]
49238pub struct ProviderDatagramSocketDeprecatedResponder {
49239    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49240    tx_id: u32,
49241}
49242
49243/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49244/// if the responder is dropped without sending a response, so that the client
49245/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49246impl std::ops::Drop for ProviderDatagramSocketDeprecatedResponder {
49247    fn drop(&mut self) {
49248        self.control_handle.shutdown();
49249        // Safety: drops once, never accessed again
49250        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49251    }
49252}
49253
49254impl fidl::endpoints::Responder for ProviderDatagramSocketDeprecatedResponder {
49255    type ControlHandle = ProviderControlHandle;
49256
49257    fn control_handle(&self) -> &ProviderControlHandle {
49258        &self.control_handle
49259    }
49260
49261    fn drop_without_shutdown(mut self) {
49262        // Safety: drops once, never accessed again due to mem::forget
49263        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49264        // Prevent Drop from running (which would shut down the channel)
49265        std::mem::forget(self);
49266    }
49267}
49268
49269impl ProviderDatagramSocketDeprecatedResponder {
49270    /// Sends a response to the FIDL transaction.
49271    ///
49272    /// Sets the channel to shutdown if an error occurs.
49273    pub fn send(
49274        self,
49275        mut result: Result<
49276            fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
49277            fidl_fuchsia_posix::Errno,
49278        >,
49279    ) -> Result<(), fidl::Error> {
49280        let _result = self.send_raw(result);
49281        if _result.is_err() {
49282            self.control_handle.shutdown();
49283        }
49284        self.drop_without_shutdown();
49285        _result
49286    }
49287
49288    /// Similar to "send" but does not shutdown the channel if an error occurs.
49289    pub fn send_no_shutdown_on_err(
49290        self,
49291        mut result: Result<
49292            fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
49293            fidl_fuchsia_posix::Errno,
49294        >,
49295    ) -> Result<(), fidl::Error> {
49296        let _result = self.send_raw(result);
49297        self.drop_without_shutdown();
49298        _result
49299    }
49300
49301    fn send_raw(
49302        &self,
49303        mut result: Result<
49304            fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
49305            fidl_fuchsia_posix::Errno,
49306        >,
49307    ) -> Result<(), fidl::Error> {
49308        self.control_handle.inner.send::<fidl::encoding::ResultType<
49309            ProviderDatagramSocketDeprecatedResponse,
49310            fidl_fuchsia_posix::Errno,
49311        >>(
49312            result.map(|s| (s,)),
49313            self.tx_id,
49314            0x38876c87cf031cb1,
49315            fidl::encoding::DynamicFlags::empty(),
49316        )
49317    }
49318}
49319
49320#[must_use = "FIDL methods require a response to be sent"]
49321#[derive(Debug)]
49322pub struct ProviderDatagramSocketResponder {
49323    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49324    tx_id: u32,
49325}
49326
49327/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49328/// if the responder is dropped without sending a response, so that the client
49329/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49330impl std::ops::Drop for ProviderDatagramSocketResponder {
49331    fn drop(&mut self) {
49332        self.control_handle.shutdown();
49333        // Safety: drops once, never accessed again
49334        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49335    }
49336}
49337
49338impl fidl::endpoints::Responder for ProviderDatagramSocketResponder {
49339    type ControlHandle = ProviderControlHandle;
49340
49341    fn control_handle(&self) -> &ProviderControlHandle {
49342        &self.control_handle
49343    }
49344
49345    fn drop_without_shutdown(mut self) {
49346        // Safety: drops once, never accessed again due to mem::forget
49347        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49348        // Prevent Drop from running (which would shut down the channel)
49349        std::mem::forget(self);
49350    }
49351}
49352
49353impl ProviderDatagramSocketResponder {
49354    /// Sends a response to the FIDL transaction.
49355    ///
49356    /// Sets the channel to shutdown if an error occurs.
49357    pub fn send(
49358        self,
49359        mut result: Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>,
49360    ) -> Result<(), fidl::Error> {
49361        let _result = self.send_raw(result);
49362        if _result.is_err() {
49363            self.control_handle.shutdown();
49364        }
49365        self.drop_without_shutdown();
49366        _result
49367    }
49368
49369    /// Similar to "send" but does not shutdown the channel if an error occurs.
49370    pub fn send_no_shutdown_on_err(
49371        self,
49372        mut result: Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>,
49373    ) -> Result<(), fidl::Error> {
49374        let _result = self.send_raw(result);
49375        self.drop_without_shutdown();
49376        _result
49377    }
49378
49379    fn send_raw(
49380        &self,
49381        mut result: Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>,
49382    ) -> Result<(), fidl::Error> {
49383        self.control_handle.inner.send::<fidl::encoding::ResultType<
49384            ProviderDatagramSocketResponse,
49385            fidl_fuchsia_posix::Errno,
49386        >>(
49387            result.as_mut().map_err(|e| *e),
49388            self.tx_id,
49389            0x4021b4fa1b6452f2,
49390            fidl::encoding::DynamicFlags::empty(),
49391        )
49392    }
49393}
49394
49395#[must_use = "FIDL methods require a response to be sent"]
49396#[derive(Debug)]
49397pub struct ProviderDatagramSocketWithOptionsResponder {
49398    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49399    tx_id: u32,
49400}
49401
49402/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49403/// if the responder is dropped without sending a response, so that the client
49404/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49405impl std::ops::Drop for ProviderDatagramSocketWithOptionsResponder {
49406    fn drop(&mut self) {
49407        self.control_handle.shutdown();
49408        // Safety: drops once, never accessed again
49409        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49410    }
49411}
49412
49413impl fidl::endpoints::Responder for ProviderDatagramSocketWithOptionsResponder {
49414    type ControlHandle = ProviderControlHandle;
49415
49416    fn control_handle(&self) -> &ProviderControlHandle {
49417        &self.control_handle
49418    }
49419
49420    fn drop_without_shutdown(mut self) {
49421        // Safety: drops once, never accessed again due to mem::forget
49422        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49423        // Prevent Drop from running (which would shut down the channel)
49424        std::mem::forget(self);
49425    }
49426}
49427
49428impl ProviderDatagramSocketWithOptionsResponder {
49429    /// Sends a response to the FIDL transaction.
49430    ///
49431    /// Sets the channel to shutdown if an error occurs.
49432    pub fn send(
49433        self,
49434        mut result: Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>,
49435    ) -> Result<(), fidl::Error> {
49436        let _result = self.send_raw(result);
49437        if _result.is_err() {
49438            self.control_handle.shutdown();
49439        }
49440        self.drop_without_shutdown();
49441        _result
49442    }
49443
49444    /// Similar to "send" but does not shutdown the channel if an error occurs.
49445    pub fn send_no_shutdown_on_err(
49446        self,
49447        mut result: Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>,
49448    ) -> Result<(), fidl::Error> {
49449        let _result = self.send_raw(result);
49450        self.drop_without_shutdown();
49451        _result
49452    }
49453
49454    fn send_raw(
49455        &self,
49456        mut result: Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>,
49457    ) -> Result<(), fidl::Error> {
49458        self.control_handle.inner.send::<fidl::encoding::ResultType<
49459            ProviderDatagramSocketWithOptionsResponse,
49460            fidl_fuchsia_posix::Errno,
49461        >>(
49462            result.as_mut().map_err(|e| *e),
49463            self.tx_id,
49464            0x4cd0cffbffa39eb1,
49465            fidl::encoding::DynamicFlags::empty(),
49466        )
49467    }
49468}
49469
49470#[must_use = "FIDL methods require a response to be sent"]
49471#[derive(Debug)]
49472pub struct ProviderInterfaceIndexToNameResponder {
49473    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49474    tx_id: u32,
49475}
49476
49477/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49478/// if the responder is dropped without sending a response, so that the client
49479/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49480impl std::ops::Drop for ProviderInterfaceIndexToNameResponder {
49481    fn drop(&mut self) {
49482        self.control_handle.shutdown();
49483        // Safety: drops once, never accessed again
49484        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49485    }
49486}
49487
49488impl fidl::endpoints::Responder for ProviderInterfaceIndexToNameResponder {
49489    type ControlHandle = ProviderControlHandle;
49490
49491    fn control_handle(&self) -> &ProviderControlHandle {
49492        &self.control_handle
49493    }
49494
49495    fn drop_without_shutdown(mut self) {
49496        // Safety: drops once, never accessed again due to mem::forget
49497        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49498        // Prevent Drop from running (which would shut down the channel)
49499        std::mem::forget(self);
49500    }
49501}
49502
49503impl ProviderInterfaceIndexToNameResponder {
49504    /// Sends a response to the FIDL transaction.
49505    ///
49506    /// Sets the channel to shutdown if an error occurs.
49507    pub fn send(self, mut result: Result<&str, i32>) -> Result<(), fidl::Error> {
49508        let _result = self.send_raw(result);
49509        if _result.is_err() {
49510            self.control_handle.shutdown();
49511        }
49512        self.drop_without_shutdown();
49513        _result
49514    }
49515
49516    /// Similar to "send" but does not shutdown the channel if an error occurs.
49517    pub fn send_no_shutdown_on_err(self, mut result: Result<&str, i32>) -> Result<(), fidl::Error> {
49518        let _result = self.send_raw(result);
49519        self.drop_without_shutdown();
49520        _result
49521    }
49522
49523    fn send_raw(&self, mut result: Result<&str, i32>) -> Result<(), fidl::Error> {
49524        self.control_handle.inner.send::<fidl::encoding::ResultType<
49525            ProviderInterfaceIndexToNameResponse,
49526            i32,
49527        >>(
49528            result.map(|name| (name,)),
49529            self.tx_id,
49530            0x4d59a64fce98272f,
49531            fidl::encoding::DynamicFlags::empty(),
49532        )
49533    }
49534}
49535
49536#[must_use = "FIDL methods require a response to be sent"]
49537#[derive(Debug)]
49538pub struct ProviderInterfaceNameToIndexResponder {
49539    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49540    tx_id: u32,
49541}
49542
49543/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49544/// if the responder is dropped without sending a response, so that the client
49545/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49546impl std::ops::Drop for ProviderInterfaceNameToIndexResponder {
49547    fn drop(&mut self) {
49548        self.control_handle.shutdown();
49549        // Safety: drops once, never accessed again
49550        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49551    }
49552}
49553
49554impl fidl::endpoints::Responder for ProviderInterfaceNameToIndexResponder {
49555    type ControlHandle = ProviderControlHandle;
49556
49557    fn control_handle(&self) -> &ProviderControlHandle {
49558        &self.control_handle
49559    }
49560
49561    fn drop_without_shutdown(mut self) {
49562        // Safety: drops once, never accessed again due to mem::forget
49563        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49564        // Prevent Drop from running (which would shut down the channel)
49565        std::mem::forget(self);
49566    }
49567}
49568
49569impl ProviderInterfaceNameToIndexResponder {
49570    /// Sends a response to the FIDL transaction.
49571    ///
49572    /// Sets the channel to shutdown if an error occurs.
49573    pub fn send(self, mut result: Result<u64, i32>) -> Result<(), fidl::Error> {
49574        let _result = self.send_raw(result);
49575        if _result.is_err() {
49576            self.control_handle.shutdown();
49577        }
49578        self.drop_without_shutdown();
49579        _result
49580    }
49581
49582    /// Similar to "send" but does not shutdown the channel if an error occurs.
49583    pub fn send_no_shutdown_on_err(self, mut result: Result<u64, i32>) -> Result<(), fidl::Error> {
49584        let _result = self.send_raw(result);
49585        self.drop_without_shutdown();
49586        _result
49587    }
49588
49589    fn send_raw(&self, mut result: Result<u64, i32>) -> Result<(), fidl::Error> {
49590        self.control_handle.inner.send::<fidl::encoding::ResultType<
49591            ProviderInterfaceNameToIndexResponse,
49592            i32,
49593        >>(
49594            result.map(|index| (index,)),
49595            self.tx_id,
49596            0x690cd8d2f2d650f8,
49597            fidl::encoding::DynamicFlags::empty(),
49598        )
49599    }
49600}
49601
49602#[must_use = "FIDL methods require a response to be sent"]
49603#[derive(Debug)]
49604pub struct ProviderInterfaceNameToFlagsResponder {
49605    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49606    tx_id: u32,
49607}
49608
49609/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49610/// if the responder is dropped without sending a response, so that the client
49611/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49612impl std::ops::Drop for ProviderInterfaceNameToFlagsResponder {
49613    fn drop(&mut self) {
49614        self.control_handle.shutdown();
49615        // Safety: drops once, never accessed again
49616        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49617    }
49618}
49619
49620impl fidl::endpoints::Responder for ProviderInterfaceNameToFlagsResponder {
49621    type ControlHandle = ProviderControlHandle;
49622
49623    fn control_handle(&self) -> &ProviderControlHandle {
49624        &self.control_handle
49625    }
49626
49627    fn drop_without_shutdown(mut self) {
49628        // Safety: drops once, never accessed again due to mem::forget
49629        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49630        // Prevent Drop from running (which would shut down the channel)
49631        std::mem::forget(self);
49632    }
49633}
49634
49635impl ProviderInterfaceNameToFlagsResponder {
49636    /// Sends a response to the FIDL transaction.
49637    ///
49638    /// Sets the channel to shutdown if an error occurs.
49639    pub fn send(self, mut result: Result<InterfaceFlags, i32>) -> Result<(), fidl::Error> {
49640        let _result = self.send_raw(result);
49641        if _result.is_err() {
49642            self.control_handle.shutdown();
49643        }
49644        self.drop_without_shutdown();
49645        _result
49646    }
49647
49648    /// Similar to "send" but does not shutdown the channel if an error occurs.
49649    pub fn send_no_shutdown_on_err(
49650        self,
49651        mut result: Result<InterfaceFlags, i32>,
49652    ) -> Result<(), fidl::Error> {
49653        let _result = self.send_raw(result);
49654        self.drop_without_shutdown();
49655        _result
49656    }
49657
49658    fn send_raw(&self, mut result: Result<InterfaceFlags, i32>) -> Result<(), fidl::Error> {
49659        self.control_handle.inner.send::<fidl::encoding::ResultType<
49660            ProviderInterfaceNameToFlagsResponse,
49661            i32,
49662        >>(
49663            result.map(|flags| (flags,)),
49664            self.tx_id,
49665            0x25d0efcdb6671a0b,
49666            fidl::encoding::DynamicFlags::empty(),
49667        )
49668    }
49669}
49670
49671#[must_use = "FIDL methods require a response to be sent"]
49672#[derive(Debug)]
49673pub struct ProviderGetInterfaceAddressesResponder {
49674    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49675    tx_id: u32,
49676}
49677
49678/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49679/// if the responder is dropped without sending a response, so that the client
49680/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49681impl std::ops::Drop for ProviderGetInterfaceAddressesResponder {
49682    fn drop(&mut self) {
49683        self.control_handle.shutdown();
49684        // Safety: drops once, never accessed again
49685        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49686    }
49687}
49688
49689impl fidl::endpoints::Responder for ProviderGetInterfaceAddressesResponder {
49690    type ControlHandle = ProviderControlHandle;
49691
49692    fn control_handle(&self) -> &ProviderControlHandle {
49693        &self.control_handle
49694    }
49695
49696    fn drop_without_shutdown(mut self) {
49697        // Safety: drops once, never accessed again due to mem::forget
49698        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49699        // Prevent Drop from running (which would shut down the channel)
49700        std::mem::forget(self);
49701    }
49702}
49703
49704impl ProviderGetInterfaceAddressesResponder {
49705    /// Sends a response to the FIDL transaction.
49706    ///
49707    /// Sets the channel to shutdown if an error occurs.
49708    pub fn send(self, mut interfaces: &[InterfaceAddresses]) -> Result<(), fidl::Error> {
49709        let _result = self.send_raw(interfaces);
49710        if _result.is_err() {
49711            self.control_handle.shutdown();
49712        }
49713        self.drop_without_shutdown();
49714        _result
49715    }
49716
49717    /// Similar to "send" but does not shutdown the channel if an error occurs.
49718    pub fn send_no_shutdown_on_err(
49719        self,
49720        mut interfaces: &[InterfaceAddresses],
49721    ) -> Result<(), fidl::Error> {
49722        let _result = self.send_raw(interfaces);
49723        self.drop_without_shutdown();
49724        _result
49725    }
49726
49727    fn send_raw(&self, mut interfaces: &[InterfaceAddresses]) -> Result<(), fidl::Error> {
49728        self.control_handle.inner.send::<ProviderGetInterfaceAddressesResponse>(
49729            (interfaces,),
49730            self.tx_id,
49731            0x2e7b9aaf327c870,
49732            fidl::encoding::DynamicFlags::empty(),
49733        )
49734    }
49735}
49736
49737#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
49738pub struct StreamSocketMarker;
49739
49740impl fidl::endpoints::ProtocolMarker for StreamSocketMarker {
49741    type Proxy = StreamSocketProxy;
49742    type RequestStream = StreamSocketRequestStream;
49743    #[cfg(target_os = "fuchsia")]
49744    type SynchronousProxy = StreamSocketSynchronousProxy;
49745
49746    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.StreamSocket";
49747}
49748impl fidl::endpoints::DiscoverableProtocolMarker for StreamSocketMarker {}
49749pub type StreamSocketListenResult = Result<(), fidl_fuchsia_posix::Errno>;
49750pub type StreamSocketAcceptResult = Result<
49751    (Option<Box<fidl_fuchsia_net::SocketAddress>>, fidl::endpoints::ClientEnd<StreamSocketMarker>),
49752    fidl_fuchsia_posix::Errno,
49753>;
49754pub type StreamSocketGetInfoResult =
49755    Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>;
49756pub type StreamSocketSetTcpNoDelayResult = Result<(), fidl_fuchsia_posix::Errno>;
49757pub type StreamSocketGetTcpNoDelayResult = Result<bool, fidl_fuchsia_posix::Errno>;
49758pub type StreamSocketSetTcpMaxSegmentResult = Result<(), fidl_fuchsia_posix::Errno>;
49759pub type StreamSocketGetTcpMaxSegmentResult = Result<u32, fidl_fuchsia_posix::Errno>;
49760pub type StreamSocketSetTcpCorkResult = Result<(), fidl_fuchsia_posix::Errno>;
49761pub type StreamSocketGetTcpCorkResult = Result<bool, fidl_fuchsia_posix::Errno>;
49762pub type StreamSocketSetTcpKeepAliveIdleResult = Result<(), fidl_fuchsia_posix::Errno>;
49763pub type StreamSocketGetTcpKeepAliveIdleResult = Result<u32, fidl_fuchsia_posix::Errno>;
49764pub type StreamSocketSetTcpKeepAliveIntervalResult = Result<(), fidl_fuchsia_posix::Errno>;
49765pub type StreamSocketGetTcpKeepAliveIntervalResult = Result<u32, fidl_fuchsia_posix::Errno>;
49766pub type StreamSocketSetTcpKeepAliveCountResult = Result<(), fidl_fuchsia_posix::Errno>;
49767pub type StreamSocketGetTcpKeepAliveCountResult = Result<u32, fidl_fuchsia_posix::Errno>;
49768pub type StreamSocketSetTcpSynCountResult = Result<(), fidl_fuchsia_posix::Errno>;
49769pub type StreamSocketGetTcpSynCountResult = Result<u32, fidl_fuchsia_posix::Errno>;
49770pub type StreamSocketSetTcpLingerResult = Result<(), fidl_fuchsia_posix::Errno>;
49771pub type StreamSocketGetTcpLingerResult = Result<OptionalUint32, fidl_fuchsia_posix::Errno>;
49772pub type StreamSocketSetTcpDeferAcceptResult = Result<(), fidl_fuchsia_posix::Errno>;
49773pub type StreamSocketGetTcpDeferAcceptResult = Result<u32, fidl_fuchsia_posix::Errno>;
49774pub type StreamSocketSetTcpWindowClampResult = Result<(), fidl_fuchsia_posix::Errno>;
49775pub type StreamSocketGetTcpWindowClampResult = Result<u32, fidl_fuchsia_posix::Errno>;
49776pub type StreamSocketGetTcpInfoResult = Result<TcpInfo, fidl_fuchsia_posix::Errno>;
49777pub type StreamSocketSetTcpQuickAckResult = Result<(), fidl_fuchsia_posix::Errno>;
49778pub type StreamSocketGetTcpQuickAckResult = Result<bool, fidl_fuchsia_posix::Errno>;
49779pub type StreamSocketSetTcpCongestionResult = Result<(), fidl_fuchsia_posix::Errno>;
49780pub type StreamSocketGetTcpCongestionResult =
49781    Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>;
49782pub type StreamSocketSetTcpUserTimeoutResult = Result<(), fidl_fuchsia_posix::Errno>;
49783pub type StreamSocketGetTcpUserTimeoutResult = Result<u32, fidl_fuchsia_posix::Errno>;
49784
49785pub trait StreamSocketProxyInterface: Send + Sync {
49786    fn r#clone(
49787        &self,
49788        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
49789    ) -> Result<(), fidl::Error>;
49790    type CloseResponseFut: std::future::Future<
49791            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
49792        > + Send;
49793    fn r#close(&self) -> Self::CloseResponseFut;
49794    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
49795    fn r#query(&self) -> Self::QueryResponseFut;
49796    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
49797        + Send;
49798    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
49799    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
49800        + Send;
49801    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
49802    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
49803        + Send;
49804    fn r#get_error(&self) -> Self::GetErrorResponseFut;
49805    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
49806        + Send;
49807    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
49808    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
49809        + Send;
49810    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
49811    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
49812        + Send;
49813    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
49814    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
49815        + Send;
49816    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
49817    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
49818        + Send;
49819    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
49820    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
49821        + Send;
49822    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
49823    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
49824        + Send;
49825    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
49826    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
49827        + Send;
49828    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
49829    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
49830        + Send;
49831    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
49832    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
49833        + Send;
49834    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
49835    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
49836        + Send;
49837    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
49838    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
49839        + Send;
49840    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
49841    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
49842        + Send;
49843    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
49844    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
49845        + Send;
49846    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
49847    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
49848        + Send;
49849    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
49850    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
49851        + Send;
49852    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
49853    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
49854        + Send;
49855    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
49856    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
49857        + Send;
49858    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
49859    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
49860        + Send;
49861    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
49862    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
49863        + Send;
49864    fn r#set_bind_to_interface_index(&self, value: u64)
49865    -> Self::SetBindToInterfaceIndexResponseFut;
49866    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
49867        + Send;
49868    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
49869    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
49870        + Send;
49871    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
49872    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
49873        + Send;
49874    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
49875    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
49876        + Send;
49877    fn r#set_mark(
49878        &self,
49879        domain: fidl_fuchsia_net::MarkDomain,
49880        mark: &OptionalUint32,
49881    ) -> Self::SetMarkResponseFut;
49882    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
49883        + Send;
49884    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
49885    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
49886        + Send;
49887    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
49888    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
49889        + Send;
49890    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
49891    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
49892        + Send;
49893    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
49894    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
49895        + Send;
49896    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
49897    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
49898        + Send;
49899    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
49900    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
49901        + Send;
49902    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
49903    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
49904        + Send;
49905    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
49906    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
49907        + Send;
49908    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
49909    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
49910        + Send;
49911    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
49912    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
49913        + Send;
49914    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
49915    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
49916        + Send;
49917    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
49918    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
49919        + Send;
49920    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
49921    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
49922        + Send;
49923    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
49924    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
49925            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
49926        > + Send;
49927    fn r#set_ip_receive_type_of_service(
49928        &self,
49929        value: bool,
49930    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
49931    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
49932            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
49933        > + Send;
49934    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
49935    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
49936        + Send;
49937    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
49938    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
49939        + Send;
49940    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
49941    type SetIpMulticastInterfaceResponseFut: std::future::Future<
49942            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
49943        > + Send;
49944    fn r#set_ip_multicast_interface(
49945        &self,
49946        iface: u64,
49947        address: &fidl_fuchsia_net::Ipv4Address,
49948    ) -> Self::SetIpMulticastInterfaceResponseFut;
49949    type GetIpMulticastInterfaceResponseFut: std::future::Future<
49950            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
49951        > + Send;
49952    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
49953    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
49954        + Send;
49955    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
49956    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
49957        + Send;
49958    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
49959    type SetIpMulticastLoopbackResponseFut: std::future::Future<
49960            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
49961        > + Send;
49962    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
49963    type GetIpMulticastLoopbackResponseFut: std::future::Future<
49964            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
49965        > + Send;
49966    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
49967    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
49968        + Send;
49969    fn r#add_ip_membership(
49970        &self,
49971        membership: &IpMulticastMembership,
49972    ) -> Self::AddIpMembershipResponseFut;
49973    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
49974        + Send;
49975    fn r#drop_ip_membership(
49976        &self,
49977        membership: &IpMulticastMembership,
49978    ) -> Self::DropIpMembershipResponseFut;
49979    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
49980        + Send;
49981    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
49982    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
49983        + Send;
49984    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
49985    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
49986            Output = Result<
49987                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
49988                fidl::Error,
49989            >,
49990        > + Send;
49991    fn r#set_ip_receive_original_destination_address(
49992        &self,
49993        value: bool,
49994    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
49995    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
49996            Output = Result<
49997                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
49998                fidl::Error,
49999            >,
50000        > + Send;
50001    fn r#get_ip_receive_original_destination_address(
50002        &self,
50003    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
50004    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
50005        + Send;
50006    fn r#add_ipv6_membership(
50007        &self,
50008        membership: &Ipv6MulticastMembership,
50009    ) -> Self::AddIpv6MembershipResponseFut;
50010    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
50011        + Send;
50012    fn r#drop_ipv6_membership(
50013        &self,
50014        membership: &Ipv6MulticastMembership,
50015    ) -> Self::DropIpv6MembershipResponseFut;
50016    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
50017            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
50018        > + Send;
50019    fn r#set_ipv6_multicast_interface(
50020        &self,
50021        value: u64,
50022    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
50023    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
50024            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
50025        > + Send;
50026    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
50027    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
50028        + Send;
50029    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
50030    -> Self::SetIpv6UnicastHopsResponseFut;
50031    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
50032        + Send;
50033    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
50034    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
50035            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
50036        > + Send;
50037    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
50038    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
50039            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
50040        > + Send;
50041    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
50042    type SetIpv6MulticastHopsResponseFut: std::future::Future<
50043            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
50044        > + Send;
50045    fn r#set_ipv6_multicast_hops(
50046        &self,
50047        value: &OptionalUint8,
50048    ) -> Self::SetIpv6MulticastHopsResponseFut;
50049    type GetIpv6MulticastHopsResponseFut: std::future::Future<
50050            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
50051        > + Send;
50052    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
50053    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
50054            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
50055        > + Send;
50056    fn r#set_ipv6_multicast_loopback(
50057        &self,
50058        value: bool,
50059    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
50060    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
50061            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
50062        > + Send;
50063    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
50064    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
50065        + Send;
50066    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
50067    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
50068        + Send;
50069    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
50070    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
50071            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
50072        > + Send;
50073    fn r#set_ipv6_receive_traffic_class(
50074        &self,
50075        value: bool,
50076    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
50077    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
50078            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
50079        > + Send;
50080    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
50081    type SetIpv6TrafficClassResponseFut: std::future::Future<
50082            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
50083        > + Send;
50084    fn r#set_ipv6_traffic_class(
50085        &self,
50086        value: &OptionalUint8,
50087    ) -> Self::SetIpv6TrafficClassResponseFut;
50088    type GetIpv6TrafficClassResponseFut: std::future::Future<
50089            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
50090        > + Send;
50091    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
50092    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
50093            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
50094        > + Send;
50095    fn r#set_ipv6_receive_packet_info(
50096        &self,
50097        value: bool,
50098    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
50099    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
50100            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
50101        > + Send;
50102    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
50103    type GetOriginalDestinationResponseFut: std::future::Future<
50104            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
50105        > + Send;
50106    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
50107    type DescribeResponseFut: std::future::Future<Output = Result<StreamSocketDescribeResponse, fidl::Error>>
50108        + Send;
50109    fn r#describe(&self) -> Self::DescribeResponseFut;
50110    type ListenResponseFut: std::future::Future<Output = Result<StreamSocketListenResult, fidl::Error>>
50111        + Send;
50112    fn r#listen(&self, backlog: i16) -> Self::ListenResponseFut;
50113    type AcceptResponseFut: std::future::Future<Output = Result<StreamSocketAcceptResult, fidl::Error>>
50114        + Send;
50115    fn r#accept(&self, want_addr: bool) -> Self::AcceptResponseFut;
50116    type GetInfoResponseFut: std::future::Future<Output = Result<StreamSocketGetInfoResult, fidl::Error>>
50117        + Send;
50118    fn r#get_info(&self) -> Self::GetInfoResponseFut;
50119    type SetTcpNoDelayResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpNoDelayResult, fidl::Error>>
50120        + Send;
50121    fn r#set_tcp_no_delay(&self, value: bool) -> Self::SetTcpNoDelayResponseFut;
50122    type GetTcpNoDelayResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpNoDelayResult, fidl::Error>>
50123        + Send;
50124    fn r#get_tcp_no_delay(&self) -> Self::GetTcpNoDelayResponseFut;
50125    type SetTcpMaxSegmentResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpMaxSegmentResult, fidl::Error>>
50126        + Send;
50127    fn r#set_tcp_max_segment(&self, value_bytes: u32) -> Self::SetTcpMaxSegmentResponseFut;
50128    type GetTcpMaxSegmentResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpMaxSegmentResult, fidl::Error>>
50129        + Send;
50130    fn r#get_tcp_max_segment(&self) -> Self::GetTcpMaxSegmentResponseFut;
50131    type SetTcpCorkResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpCorkResult, fidl::Error>>
50132        + Send;
50133    fn r#set_tcp_cork(&self, value: bool) -> Self::SetTcpCorkResponseFut;
50134    type GetTcpCorkResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpCorkResult, fidl::Error>>
50135        + Send;
50136    fn r#get_tcp_cork(&self) -> Self::GetTcpCorkResponseFut;
50137    type SetTcpKeepAliveIdleResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpKeepAliveIdleResult, fidl::Error>>
50138        + Send;
50139    fn r#set_tcp_keep_alive_idle(&self, value_secs: u32) -> Self::SetTcpKeepAliveIdleResponseFut;
50140    type GetTcpKeepAliveIdleResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpKeepAliveIdleResult, fidl::Error>>
50141        + Send;
50142    fn r#get_tcp_keep_alive_idle(&self) -> Self::GetTcpKeepAliveIdleResponseFut;
50143    type SetTcpKeepAliveIntervalResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpKeepAliveIntervalResult, fidl::Error>>
50144        + Send;
50145    fn r#set_tcp_keep_alive_interval(
50146        &self,
50147        value_secs: u32,
50148    ) -> Self::SetTcpKeepAliveIntervalResponseFut;
50149    type GetTcpKeepAliveIntervalResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpKeepAliveIntervalResult, fidl::Error>>
50150        + Send;
50151    fn r#get_tcp_keep_alive_interval(&self) -> Self::GetTcpKeepAliveIntervalResponseFut;
50152    type SetTcpKeepAliveCountResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpKeepAliveCountResult, fidl::Error>>
50153        + Send;
50154    fn r#set_tcp_keep_alive_count(&self, value: u32) -> Self::SetTcpKeepAliveCountResponseFut;
50155    type GetTcpKeepAliveCountResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpKeepAliveCountResult, fidl::Error>>
50156        + Send;
50157    fn r#get_tcp_keep_alive_count(&self) -> Self::GetTcpKeepAliveCountResponseFut;
50158    type SetTcpSynCountResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpSynCountResult, fidl::Error>>
50159        + Send;
50160    fn r#set_tcp_syn_count(&self, value: u32) -> Self::SetTcpSynCountResponseFut;
50161    type GetTcpSynCountResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpSynCountResult, fidl::Error>>
50162        + Send;
50163    fn r#get_tcp_syn_count(&self) -> Self::GetTcpSynCountResponseFut;
50164    type SetTcpLingerResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpLingerResult, fidl::Error>>
50165        + Send;
50166    fn r#set_tcp_linger(&self, value_secs: &OptionalUint32) -> Self::SetTcpLingerResponseFut;
50167    type GetTcpLingerResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpLingerResult, fidl::Error>>
50168        + Send;
50169    fn r#get_tcp_linger(&self) -> Self::GetTcpLingerResponseFut;
50170    type SetTcpDeferAcceptResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpDeferAcceptResult, fidl::Error>>
50171        + Send;
50172    fn r#set_tcp_defer_accept(&self, value_secs: u32) -> Self::SetTcpDeferAcceptResponseFut;
50173    type GetTcpDeferAcceptResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpDeferAcceptResult, fidl::Error>>
50174        + Send;
50175    fn r#get_tcp_defer_accept(&self) -> Self::GetTcpDeferAcceptResponseFut;
50176    type SetTcpWindowClampResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpWindowClampResult, fidl::Error>>
50177        + Send;
50178    fn r#set_tcp_window_clamp(&self, value: u32) -> Self::SetTcpWindowClampResponseFut;
50179    type GetTcpWindowClampResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpWindowClampResult, fidl::Error>>
50180        + Send;
50181    fn r#get_tcp_window_clamp(&self) -> Self::GetTcpWindowClampResponseFut;
50182    type GetTcpInfoResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpInfoResult, fidl::Error>>
50183        + Send;
50184    fn r#get_tcp_info(&self) -> Self::GetTcpInfoResponseFut;
50185    type SetTcpQuickAckResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpQuickAckResult, fidl::Error>>
50186        + Send;
50187    fn r#set_tcp_quick_ack(&self, value: bool) -> Self::SetTcpQuickAckResponseFut;
50188    type GetTcpQuickAckResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpQuickAckResult, fidl::Error>>
50189        + Send;
50190    fn r#get_tcp_quick_ack(&self) -> Self::GetTcpQuickAckResponseFut;
50191    type SetTcpCongestionResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpCongestionResult, fidl::Error>>
50192        + Send;
50193    fn r#set_tcp_congestion(
50194        &self,
50195        value: TcpCongestionControl,
50196    ) -> Self::SetTcpCongestionResponseFut;
50197    type GetTcpCongestionResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpCongestionResult, fidl::Error>>
50198        + Send;
50199    fn r#get_tcp_congestion(&self) -> Self::GetTcpCongestionResponseFut;
50200    type SetTcpUserTimeoutResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpUserTimeoutResult, fidl::Error>>
50201        + Send;
50202    fn r#set_tcp_user_timeout(&self, value_millis: u32) -> Self::SetTcpUserTimeoutResponseFut;
50203    type GetTcpUserTimeoutResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpUserTimeoutResult, fidl::Error>>
50204        + Send;
50205    fn r#get_tcp_user_timeout(&self) -> Self::GetTcpUserTimeoutResponseFut;
50206}
50207#[derive(Debug)]
50208#[cfg(target_os = "fuchsia")]
50209pub struct StreamSocketSynchronousProxy {
50210    client: fidl::client::sync::Client,
50211}
50212
50213#[cfg(target_os = "fuchsia")]
50214impl fidl::endpoints::SynchronousProxy for StreamSocketSynchronousProxy {
50215    type Proxy = StreamSocketProxy;
50216    type Protocol = StreamSocketMarker;
50217
50218    fn from_channel(inner: fidl::Channel) -> Self {
50219        Self::new(inner)
50220    }
50221
50222    fn into_channel(self) -> fidl::Channel {
50223        self.client.into_channel()
50224    }
50225
50226    fn as_channel(&self) -> &fidl::Channel {
50227        self.client.as_channel()
50228    }
50229}
50230
50231#[cfg(target_os = "fuchsia")]
50232impl StreamSocketSynchronousProxy {
50233    pub fn new(channel: fidl::Channel) -> Self {
50234        let protocol_name = <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
50235        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
50236    }
50237
50238    pub fn into_channel(self) -> fidl::Channel {
50239        self.client.into_channel()
50240    }
50241
50242    /// Waits until an event arrives and returns it. It is safe for other
50243    /// threads to make concurrent requests while waiting for an event.
50244    pub fn wait_for_event(
50245        &self,
50246        deadline: zx::MonotonicInstant,
50247    ) -> Result<StreamSocketEvent, fidl::Error> {
50248        StreamSocketEvent::decode(self.client.wait_for_event(deadline)?)
50249    }
50250
50251    pub fn r#clone(
50252        &self,
50253        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
50254    ) -> Result<(), fidl::Error> {
50255        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
50256            (request,),
50257            0x20d8a7aba2168a79,
50258            fidl::encoding::DynamicFlags::empty(),
50259        )
50260    }
50261
50262    /// Terminates the connection.
50263    ///
50264    /// After calling `Close`, the client must not send any other requests.
50265    ///
50266    /// Servers, after sending the status response, should close the connection
50267    /// regardless of status and without sending an epitaph.
50268    ///
50269    /// Closing the client end of the channel should be semantically equivalent
50270    /// to calling `Close` without knowing when the close has completed or its
50271    /// status.
50272    pub fn r#close(
50273        &self,
50274        ___deadline: zx::MonotonicInstant,
50275    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
50276        let _response = self.client.send_query::<
50277            fidl::encoding::EmptyPayload,
50278            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
50279        >(
50280            (),
50281            0x5ac5d459ad7f657e,
50282            fidl::encoding::DynamicFlags::empty(),
50283            ___deadline,
50284        )?;
50285        Ok(_response.map(|x| x))
50286    }
50287
50288    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
50289        let _response = self.client.send_query::<
50290            fidl::encoding::EmptyPayload,
50291            fidl_fuchsia_unknown::QueryableQueryResponse,
50292        >(
50293            (),
50294            0x2658edee9decfc06,
50295            fidl::encoding::DynamicFlags::empty(),
50296            ___deadline,
50297        )?;
50298        Ok(_response.protocol)
50299    }
50300
50301    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
50302    pub fn r#set_reuse_address(
50303        &self,
50304        mut value: bool,
50305        ___deadline: zx::MonotonicInstant,
50306    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
50307        let _response =
50308            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
50309                fidl::encoding::EmptyStruct,
50310                fidl_fuchsia_posix::Errno,
50311            >>(
50312                (value,),
50313                0x1fd74ee8b9a4a876,
50314                fidl::encoding::DynamicFlags::empty(),
50315                ___deadline,
50316            )?;
50317        Ok(_response.map(|x| x))
50318    }
50319
50320    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
50321    pub fn r#get_reuse_address(
50322        &self,
50323        ___deadline: zx::MonotonicInstant,
50324    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
50325        let _response = self
50326            .client
50327            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50328                BaseSocketGetReuseAddressResponse,
50329                fidl_fuchsia_posix::Errno,
50330            >>(
50331                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
50332            )?;
50333        Ok(_response.map(|x| x.value))
50334    }
50335
50336    /// Get `SOL_SOCKET` -> `SO_ERROR`.
50337    /// Returns the last error if there is an error set on the socket.
50338    pub fn r#get_error(
50339        &self,
50340        ___deadline: zx::MonotonicInstant,
50341    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
50342        let _response =
50343            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50344                fidl::encoding::EmptyStruct,
50345                fidl_fuchsia_posix::Errno,
50346            >>(
50347                (),
50348                0x5aad39b33e5f6ebb,
50349                fidl::encoding::DynamicFlags::empty(),
50350                ___deadline,
50351            )?;
50352        Ok(_response.map(|x| x))
50353    }
50354
50355    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
50356    pub fn r#set_broadcast(
50357        &self,
50358        mut value: bool,
50359        ___deadline: zx::MonotonicInstant,
50360    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
50361        let _response =
50362            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
50363                fidl::encoding::EmptyStruct,
50364                fidl_fuchsia_posix::Errno,
50365            >>(
50366                (value,),
50367                0x6023e081ce3cd947,
50368                fidl::encoding::DynamicFlags::empty(),
50369                ___deadline,
50370            )?;
50371        Ok(_response.map(|x| x))
50372    }
50373
50374    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
50375    pub fn r#get_broadcast(
50376        &self,
50377        ___deadline: zx::MonotonicInstant,
50378    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
50379        let _response =
50380            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50381                BaseSocketGetBroadcastResponse,
50382                fidl_fuchsia_posix::Errno,
50383            >>(
50384                (),
50385                0x68796fc556f9780d,
50386                fidl::encoding::DynamicFlags::empty(),
50387                ___deadline,
50388            )?;
50389        Ok(_response.map(|x| x.value))
50390    }
50391
50392    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
50393    pub fn r#set_send_buffer(
50394        &self,
50395        mut value_bytes: u64,
50396        ___deadline: zx::MonotonicInstant,
50397    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
50398        let _response =
50399            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
50400                fidl::encoding::EmptyStruct,
50401                fidl_fuchsia_posix::Errno,
50402            >>(
50403                (value_bytes,),
50404                0x756eac32d73a7a70,
50405                fidl::encoding::DynamicFlags::empty(),
50406                ___deadline,
50407            )?;
50408        Ok(_response.map(|x| x))
50409    }
50410
50411    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
50412    pub fn r#get_send_buffer(
50413        &self,
50414        ___deadline: zx::MonotonicInstant,
50415    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
50416        let _response = self
50417            .client
50418            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50419                BaseSocketGetSendBufferResponse,
50420                fidl_fuchsia_posix::Errno,
50421            >>(
50422                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
50423            )?;
50424        Ok(_response.map(|x| x.value_bytes))
50425    }
50426
50427    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
50428    pub fn r#set_receive_buffer(
50429        &self,
50430        mut value_bytes: u64,
50431        ___deadline: zx::MonotonicInstant,
50432    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
50433        let _response =
50434            self.client
50435                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
50436                    fidl::encoding::EmptyStruct,
50437                    fidl_fuchsia_posix::Errno,
50438                >>(
50439                    (value_bytes,),
50440                    0x6b0cf2f1919c7001,
50441                    fidl::encoding::DynamicFlags::empty(),
50442                    ___deadline,
50443                )?;
50444        Ok(_response.map(|x| x))
50445    }
50446
50447    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
50448    pub fn r#get_receive_buffer(
50449        &self,
50450        ___deadline: zx::MonotonicInstant,
50451    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
50452        let _response = self
50453            .client
50454            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50455                BaseSocketGetReceiveBufferResponse,
50456                fidl_fuchsia_posix::Errno,
50457            >>(
50458                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
50459            )?;
50460        Ok(_response.map(|x| x.value_bytes))
50461    }
50462
50463    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
50464    pub fn r#set_keep_alive(
50465        &self,
50466        mut value: bool,
50467        ___deadline: zx::MonotonicInstant,
50468    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
50469        let _response =
50470            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
50471                fidl::encoding::EmptyStruct,
50472                fidl_fuchsia_posix::Errno,
50473            >>(
50474                (value,),
50475                0x572df8f0b920d2c7,
50476                fidl::encoding::DynamicFlags::empty(),
50477                ___deadline,
50478            )?;
50479        Ok(_response.map(|x| x))
50480    }
50481
50482    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
50483    pub fn r#get_keep_alive(
50484        &self,
50485        ___deadline: zx::MonotonicInstant,
50486    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
50487        let _response =
50488            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50489                BaseSocketGetKeepAliveResponse,
50490                fidl_fuchsia_posix::Errno,
50491            >>(
50492                (),
50493                0x2dd29d3215f2c9d2,
50494                fidl::encoding::DynamicFlags::empty(),
50495                ___deadline,
50496            )?;
50497        Ok(_response.map(|x| x.value))
50498    }
50499
50500    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
50501    pub fn r#set_out_of_band_inline(
50502        &self,
50503        mut value: bool,
50504        ___deadline: zx::MonotonicInstant,
50505    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
50506        let _response =
50507            self.client
50508                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
50509                    fidl::encoding::EmptyStruct,
50510                    fidl_fuchsia_posix::Errno,
50511                >>(
50512                    (value,),
50513                    0x3ecb49968bee439,
50514                    fidl::encoding::DynamicFlags::empty(),
50515                    ___deadline,
50516                )?;
50517        Ok(_response.map(|x| x))
50518    }
50519
50520    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
50521    pub fn r#get_out_of_band_inline(
50522        &self,
50523        ___deadline: zx::MonotonicInstant,
50524    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
50525        let _response = self
50526            .client
50527            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50528                BaseSocketGetOutOfBandInlineResponse,
50529                fidl_fuchsia_posix::Errno,
50530            >>(
50531                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
50532            )?;
50533        Ok(_response.map(|x| x.value))
50534    }
50535
50536    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
50537    pub fn r#set_no_check(
50538        &self,
50539        mut value: bool,
50540        ___deadline: zx::MonotonicInstant,
50541    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
50542        let _response =
50543            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
50544                fidl::encoding::EmptyStruct,
50545                fidl_fuchsia_posix::Errno,
50546            >>(
50547                (value,),
50548                0x6bbf00c53a4c78c2,
50549                fidl::encoding::DynamicFlags::empty(),
50550                ___deadline,
50551            )?;
50552        Ok(_response.map(|x| x))
50553    }
50554
50555    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
50556    pub fn r#get_no_check(
50557        &self,
50558        ___deadline: zx::MonotonicInstant,
50559    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
50560        let _response =
50561            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50562                BaseSocketGetNoCheckResponse,
50563                fidl_fuchsia_posix::Errno,
50564            >>(
50565                (),
50566                0x2cd4249286417694,
50567                fidl::encoding::DynamicFlags::empty(),
50568                ___deadline,
50569            )?;
50570        Ok(_response.map(|x| x.value))
50571    }
50572
50573    /// Set `SOL_SOCKET` -> `SO_LINGER`.
50574    pub fn r#set_linger(
50575        &self,
50576        mut linger: bool,
50577        mut length_secs: u32,
50578        ___deadline: zx::MonotonicInstant,
50579    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
50580        let _response =
50581            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
50582                fidl::encoding::EmptyStruct,
50583                fidl_fuchsia_posix::Errno,
50584            >>(
50585                (linger, length_secs),
50586                0x45386351246e998e,
50587                fidl::encoding::DynamicFlags::empty(),
50588                ___deadline,
50589            )?;
50590        Ok(_response.map(|x| x))
50591    }
50592
50593    /// Get `SOL_SOCKET` -> `SO_LINGER`.
50594    pub fn r#get_linger(
50595        &self,
50596        ___deadline: zx::MonotonicInstant,
50597    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
50598        let _response =
50599            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50600                BaseSocketGetLingerResponse,
50601                fidl_fuchsia_posix::Errno,
50602            >>(
50603                (),
50604                0x48eb20fc5ccb0e45,
50605                fidl::encoding::DynamicFlags::empty(),
50606                ___deadline,
50607            )?;
50608        Ok(_response.map(|x| (x.linger, x.length_secs)))
50609    }
50610
50611    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
50612    pub fn r#set_reuse_port(
50613        &self,
50614        mut value: bool,
50615        ___deadline: zx::MonotonicInstant,
50616    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
50617        let _response =
50618            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
50619                fidl::encoding::EmptyStruct,
50620                fidl_fuchsia_posix::Errno,
50621            >>(
50622                (value,),
50623                0x24dd3e5cb36d9ccb,
50624                fidl::encoding::DynamicFlags::empty(),
50625                ___deadline,
50626            )?;
50627        Ok(_response.map(|x| x))
50628    }
50629
50630    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
50631    pub fn r#get_reuse_port(
50632        &self,
50633        ___deadline: zx::MonotonicInstant,
50634    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
50635        let _response =
50636            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50637                BaseSocketGetReusePortResponse,
50638                fidl_fuchsia_posix::Errno,
50639            >>(
50640                (),
50641                0x7a112c1ab54ff828,
50642                fidl::encoding::DynamicFlags::empty(),
50643                ___deadline,
50644            )?;
50645        Ok(_response.map(|x| x.value))
50646    }
50647
50648    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
50649    pub fn r#get_accept_conn(
50650        &self,
50651        ___deadline: zx::MonotonicInstant,
50652    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
50653        let _response = self
50654            .client
50655            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50656                BaseSocketGetAcceptConnResponse,
50657                fidl_fuchsia_posix::Errno,
50658            >>(
50659                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
50660            )?;
50661        Ok(_response.map(|x| x.value))
50662    }
50663
50664    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
50665    pub fn r#set_bind_to_device(
50666        &self,
50667        mut value: &str,
50668        ___deadline: zx::MonotonicInstant,
50669    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
50670        let _response =
50671            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
50672                fidl::encoding::EmptyStruct,
50673                fidl_fuchsia_posix::Errno,
50674            >>(
50675                (value,),
50676                0x2118b483f28aafc4,
50677                fidl::encoding::DynamicFlags::empty(),
50678                ___deadline,
50679            )?;
50680        Ok(_response.map(|x| x))
50681    }
50682
50683    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
50684    pub fn r#get_bind_to_device(
50685        &self,
50686        ___deadline: zx::MonotonicInstant,
50687    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
50688        let _response = self
50689            .client
50690            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50691                BaseSocketGetBindToDeviceResponse,
50692                fidl_fuchsia_posix::Errno,
50693            >>(
50694                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
50695            )?;
50696        Ok(_response.map(|x| x.value))
50697    }
50698
50699    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
50700    /// If `value` is 0, this clears the bound interface.
50701    pub fn r#set_bind_to_interface_index(
50702        &self,
50703        mut value: u64,
50704        ___deadline: zx::MonotonicInstant,
50705    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
50706        let _response =
50707            self.client
50708                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
50709                    fidl::encoding::EmptyStruct,
50710                    fidl_fuchsia_posix::Errno,
50711                >>(
50712                    (value,),
50713                    0x6e387a0def00821,
50714                    fidl::encoding::DynamicFlags::empty(),
50715                    ___deadline,
50716                )?;
50717        Ok(_response.map(|x| x))
50718    }
50719
50720    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
50721    pub fn r#get_bind_to_interface_index(
50722        &self,
50723        ___deadline: zx::MonotonicInstant,
50724    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
50725        let _response = self
50726            .client
50727            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50728                BaseSocketGetBindToInterfaceIndexResponse,
50729                fidl_fuchsia_posix::Errno,
50730            >>(
50731                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
50732            )?;
50733        Ok(_response.map(|x| x.value))
50734    }
50735
50736    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
50737    pub fn r#set_timestamp(
50738        &self,
50739        mut value: TimestampOption,
50740        ___deadline: zx::MonotonicInstant,
50741    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
50742        let _response =
50743            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
50744                fidl::encoding::EmptyStruct,
50745                fidl_fuchsia_posix::Errno,
50746            >>(
50747                (value,),
50748                0x285d6516c263d839,
50749                fidl::encoding::DynamicFlags::empty(),
50750                ___deadline,
50751            )?;
50752        Ok(_response.map(|x| x))
50753    }
50754
50755    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
50756    pub fn r#get_timestamp(
50757        &self,
50758        ___deadline: zx::MonotonicInstant,
50759    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
50760        let _response =
50761            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50762                BaseSocketGetTimestampResponse,
50763                fidl_fuchsia_posix::Errno,
50764            >>(
50765                (),
50766                0x49f2fffbbcc2bd27,
50767                fidl::encoding::DynamicFlags::empty(),
50768                ___deadline,
50769            )?;
50770        Ok(_response.map(|x| x.value))
50771    }
50772
50773    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
50774    /// unlike the standard SO_MARK, this API has multiple mark domains and each
50775    /// mark can be set independently in each domain.
50776    pub fn r#set_mark(
50777        &self,
50778        mut domain: fidl_fuchsia_net::MarkDomain,
50779        mut mark: &OptionalUint32,
50780        ___deadline: zx::MonotonicInstant,
50781    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
50782        let _response =
50783            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
50784                fidl::encoding::EmptyStruct,
50785                fidl_fuchsia_posix::Errno,
50786            >>(
50787                (domain, mark),
50788                0x6ead6de09f653236,
50789                fidl::encoding::DynamicFlags::empty(),
50790                ___deadline,
50791            )?;
50792        Ok(_response.map(|x| x))
50793    }
50794
50795    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
50796    /// unlike the standard SO_MARK, this API has multiple mark domains and each
50797    /// mark can be retrieved independently in each domain.
50798    pub fn r#get_mark(
50799        &self,
50800        mut domain: fidl_fuchsia_net::MarkDomain,
50801        ___deadline: zx::MonotonicInstant,
50802    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
50803        let _response =
50804            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
50805                BaseSocketGetMarkResponse,
50806                fidl_fuchsia_posix::Errno,
50807            >>(
50808                (domain,),
50809                0x57a2752c61d93d47,
50810                fidl::encoding::DynamicFlags::empty(),
50811                ___deadline,
50812            )?;
50813        Ok(_response.map(|x| x.mark))
50814    }
50815
50816    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
50817    pub fn r#get_cookie(
50818        &self,
50819        ___deadline: zx::MonotonicInstant,
50820    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
50821        let _response =
50822            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50823                BaseSocketGetCookieResponse,
50824                fidl_fuchsia_posix::Errno,
50825            >>(
50826                (),
50827                0x2c2f47fd8f924e52,
50828                fidl::encoding::DynamicFlags::empty(),
50829                ___deadline,
50830            )?;
50831        Ok(_response.map(|x| x.value))
50832    }
50833
50834    /// Sets the local address used for the socket.
50835    pub fn r#bind(
50836        &self,
50837        mut addr: &fidl_fuchsia_net::SocketAddress,
50838        ___deadline: zx::MonotonicInstant,
50839    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
50840        let _response =
50841            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
50842                fidl::encoding::EmptyStruct,
50843                fidl_fuchsia_posix::Errno,
50844            >>(
50845                (addr,),
50846                0x4bc6400ae92125d,
50847                fidl::encoding::DynamicFlags::empty(),
50848                ___deadline,
50849            )?;
50850        Ok(_response.map(|x| x))
50851    }
50852
50853    /// Initiates a connection to a remote address.
50854    pub fn r#connect(
50855        &self,
50856        mut addr: &fidl_fuchsia_net::SocketAddress,
50857        ___deadline: zx::MonotonicInstant,
50858    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
50859        let _response =
50860            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
50861                fidl::encoding::EmptyStruct,
50862                fidl_fuchsia_posix::Errno,
50863            >>(
50864                (addr,),
50865                0x5f05f19bfdd38871,
50866                fidl::encoding::DynamicFlags::empty(),
50867                ___deadline,
50868            )?;
50869        Ok(_response.map(|x| x))
50870    }
50871
50872    /// Clears connection information from this socket.
50873    pub fn r#disconnect(
50874        &self,
50875        ___deadline: zx::MonotonicInstant,
50876    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
50877        let _response =
50878            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50879                fidl::encoding::EmptyStruct,
50880                fidl_fuchsia_posix::Errno,
50881            >>(
50882                (),
50883                0x74e63b91f7b29b2,
50884                fidl::encoding::DynamicFlags::empty(),
50885                ___deadline,
50886            )?;
50887        Ok(_response.map(|x| x))
50888    }
50889
50890    /// Retrieves the local socket address.
50891    pub fn r#get_sock_name(
50892        &self,
50893        ___deadline: zx::MonotonicInstant,
50894    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
50895        let _response = self
50896            .client
50897            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50898                BaseNetworkSocketGetSockNameResponse,
50899                fidl_fuchsia_posix::Errno,
50900            >>(
50901                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
50902            )?;
50903        Ok(_response.map(|x| x.addr))
50904    }
50905
50906    /// Retrieves the remote socket address.
50907    pub fn r#get_peer_name(
50908        &self,
50909        ___deadline: zx::MonotonicInstant,
50910    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
50911        let _response = self
50912            .client
50913            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50914                BaseNetworkSocketGetPeerNameResponse,
50915                fidl_fuchsia_posix::Errno,
50916            >>(
50917                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
50918            )?;
50919        Ok(_response.map(|x| x.addr))
50920    }
50921
50922    /// Shuts down part of the socket.
50923    pub fn r#shutdown(
50924        &self,
50925        mut mode: ShutdownMode,
50926        ___deadline: zx::MonotonicInstant,
50927    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
50928        let _response =
50929            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
50930                fidl::encoding::EmptyStruct,
50931                fidl_fuchsia_posix::Errno,
50932            >>(
50933                (mode,),
50934                0x247f38b6db68c336,
50935                fidl::encoding::DynamicFlags::empty(),
50936                ___deadline,
50937            )?;
50938        Ok(_response.map(|x| x))
50939    }
50940
50941    /// Set `SOL_IP` -> `IP_TOS`.
50942    pub fn r#set_ip_type_of_service(
50943        &self,
50944        mut value: u8,
50945        ___deadline: zx::MonotonicInstant,
50946    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
50947        let _response = self.client.send_query::<
50948            BaseNetworkSocketSetIpTypeOfServiceRequest,
50949            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
50950        >(
50951            (value,),
50952            0x995c600475b6d46,
50953            fidl::encoding::DynamicFlags::empty(),
50954            ___deadline,
50955        )?;
50956        Ok(_response.map(|x| x))
50957    }
50958
50959    /// Get `SOL_IP` -> `IP_TOS`.
50960    pub fn r#get_ip_type_of_service(
50961        &self,
50962        ___deadline: zx::MonotonicInstant,
50963    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
50964        let _response = self
50965            .client
50966            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50967                BaseNetworkSocketGetIpTypeOfServiceResponse,
50968                fidl_fuchsia_posix::Errno,
50969            >>(
50970                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
50971            )?;
50972        Ok(_response.map(|x| x.value))
50973    }
50974
50975    /// Set `SOL_IP` -> `IP_TTL`.
50976    pub fn r#set_ip_ttl(
50977        &self,
50978        mut value: &OptionalUint8,
50979        ___deadline: zx::MonotonicInstant,
50980    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
50981        let _response =
50982            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
50983                fidl::encoding::EmptyStruct,
50984                fidl_fuchsia_posix::Errno,
50985            >>(
50986                (value,),
50987                0x29e2424b433ae1ef,
50988                fidl::encoding::DynamicFlags::empty(),
50989                ___deadline,
50990            )?;
50991        Ok(_response.map(|x| x))
50992    }
50993
50994    /// Get `SOL_IP` -> `IP_TTL`.
50995    pub fn r#get_ip_ttl(
50996        &self,
50997        ___deadline: zx::MonotonicInstant,
50998    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
50999        let _response = self
51000            .client
51001            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51002                BaseNetworkSocketGetIpTtlResponse,
51003                fidl_fuchsia_posix::Errno,
51004            >>(
51005                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
51006            )?;
51007        Ok(_response.map(|x| x.value))
51008    }
51009
51010    /// Set `SOL_IP` -> `IP_PKTINFO`.
51011    pub fn r#set_ip_packet_info(
51012        &self,
51013        mut value: bool,
51014        ___deadline: zx::MonotonicInstant,
51015    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
51016        let _response =
51017            self.client
51018                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
51019                    fidl::encoding::EmptyStruct,
51020                    fidl_fuchsia_posix::Errno,
51021                >>(
51022                    (value,),
51023                    0x392d16bee20c0e16,
51024                    fidl::encoding::DynamicFlags::empty(),
51025                    ___deadline,
51026                )?;
51027        Ok(_response.map(|x| x))
51028    }
51029
51030    /// Get `SOL_IP` -> `IP_PKTINFO`.
51031    pub fn r#get_ip_packet_info(
51032        &self,
51033        ___deadline: zx::MonotonicInstant,
51034    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
51035        let _response = self
51036            .client
51037            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51038                BaseNetworkSocketGetIpPacketInfoResponse,
51039                fidl_fuchsia_posix::Errno,
51040            >>(
51041                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
51042            )?;
51043        Ok(_response.map(|x| x.value))
51044    }
51045
51046    /// Set `SOL_IP` -> `IP_RECVTOS`.
51047    pub fn r#set_ip_receive_type_of_service(
51048        &self,
51049        mut value: bool,
51050        ___deadline: zx::MonotonicInstant,
51051    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
51052        let _response = self.client.send_query::<
51053            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
51054            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51055        >(
51056            (value,),
51057            0x6c4f6714995f84ef,
51058            fidl::encoding::DynamicFlags::empty(),
51059            ___deadline,
51060        )?;
51061        Ok(_response.map(|x| x))
51062    }
51063
51064    /// Get `SOL_IP` -> `IP_RECVTOS`.
51065    pub fn r#get_ip_receive_type_of_service(
51066        &self,
51067        ___deadline: zx::MonotonicInstant,
51068    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
51069        let _response = self
51070            .client
51071            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51072                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
51073                fidl_fuchsia_posix::Errno,
51074            >>(
51075                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
51076            )?;
51077        Ok(_response.map(|x| x.value))
51078    }
51079
51080    /// Set `SOL_IP` -> `IP_RECVTTL`.
51081    pub fn r#set_ip_receive_ttl(
51082        &self,
51083        mut value: bool,
51084        ___deadline: zx::MonotonicInstant,
51085    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
51086        let _response =
51087            self.client
51088                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
51089                    fidl::encoding::EmptyStruct,
51090                    fidl_fuchsia_posix::Errno,
51091                >>(
51092                    (value,),
51093                    0x46f15be0ce0ab82b,
51094                    fidl::encoding::DynamicFlags::empty(),
51095                    ___deadline,
51096                )?;
51097        Ok(_response.map(|x| x))
51098    }
51099
51100    /// Get `SOL_IP` -> `IP_RECVTTL`.
51101    pub fn r#get_ip_receive_ttl(
51102        &self,
51103        ___deadline: zx::MonotonicInstant,
51104    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
51105        let _response = self
51106            .client
51107            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51108                BaseNetworkSocketGetIpReceiveTtlResponse,
51109                fidl_fuchsia_posix::Errno,
51110            >>(
51111                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
51112            )?;
51113        Ok(_response.map(|x| x.value))
51114    }
51115
51116    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
51117    pub fn r#set_ip_multicast_interface(
51118        &self,
51119        mut iface: u64,
51120        mut address: &fidl_fuchsia_net::Ipv4Address,
51121        ___deadline: zx::MonotonicInstant,
51122    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
51123        let _response = self.client.send_query::<
51124            BaseNetworkSocketSetIpMulticastInterfaceRequest,
51125            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51126        >(
51127            (iface, address,),
51128            0x752fbfa9b12befe,
51129            fidl::encoding::DynamicFlags::empty(),
51130            ___deadline,
51131        )?;
51132        Ok(_response.map(|x| x))
51133    }
51134
51135    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
51136    pub fn r#get_ip_multicast_interface(
51137        &self,
51138        ___deadline: zx::MonotonicInstant,
51139    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
51140        let _response = self
51141            .client
51142            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51143                BaseNetworkSocketGetIpMulticastInterfaceResponse,
51144                fidl_fuchsia_posix::Errno,
51145            >>(
51146                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
51147            )?;
51148        Ok(_response.map(|x| x.value))
51149    }
51150
51151    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
51152    pub fn r#set_ip_multicast_ttl(
51153        &self,
51154        mut value: &OptionalUint8,
51155        ___deadline: zx::MonotonicInstant,
51156    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
51157        let _response =
51158            self.client
51159                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
51160                    fidl::encoding::EmptyStruct,
51161                    fidl_fuchsia_posix::Errno,
51162                >>(
51163                    (value,),
51164                    0x63134d53772916a1,
51165                    fidl::encoding::DynamicFlags::empty(),
51166                    ___deadline,
51167                )?;
51168        Ok(_response.map(|x| x))
51169    }
51170
51171    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
51172    pub fn r#get_ip_multicast_ttl(
51173        &self,
51174        ___deadline: zx::MonotonicInstant,
51175    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
51176        let _response = self
51177            .client
51178            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51179                BaseNetworkSocketGetIpMulticastTtlResponse,
51180                fidl_fuchsia_posix::Errno,
51181            >>(
51182                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
51183            )?;
51184        Ok(_response.map(|x| x.value))
51185    }
51186
51187    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
51188    pub fn r#set_ip_multicast_loopback(
51189        &self,
51190        mut value: bool,
51191        ___deadline: zx::MonotonicInstant,
51192    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
51193        let _response = self.client.send_query::<
51194            BaseNetworkSocketSetIpMulticastLoopbackRequest,
51195            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51196        >(
51197            (value,),
51198            0x20c55c11f00943ea,
51199            fidl::encoding::DynamicFlags::empty(),
51200            ___deadline,
51201        )?;
51202        Ok(_response.map(|x| x))
51203    }
51204
51205    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
51206    pub fn r#get_ip_multicast_loopback(
51207        &self,
51208        ___deadline: zx::MonotonicInstant,
51209    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
51210        let _response = self
51211            .client
51212            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51213                BaseNetworkSocketGetIpMulticastLoopbackResponse,
51214                fidl_fuchsia_posix::Errno,
51215            >>(
51216                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
51217            )?;
51218        Ok(_response.map(|x| x.value))
51219    }
51220
51221    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
51222    pub fn r#add_ip_membership(
51223        &self,
51224        mut membership: &IpMulticastMembership,
51225        ___deadline: zx::MonotonicInstant,
51226    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
51227        let _response =
51228            self.client
51229                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
51230                    fidl::encoding::EmptyStruct,
51231                    fidl_fuchsia_posix::Errno,
51232                >>(
51233                    (membership,),
51234                    0x76bc7df115a3b4d0,
51235                    fidl::encoding::DynamicFlags::empty(),
51236                    ___deadline,
51237                )?;
51238        Ok(_response.map(|x| x))
51239    }
51240
51241    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
51242    pub fn r#drop_ip_membership(
51243        &self,
51244        mut membership: &IpMulticastMembership,
51245        ___deadline: zx::MonotonicInstant,
51246    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
51247        let _response =
51248            self.client
51249                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
51250                    fidl::encoding::EmptyStruct,
51251                    fidl_fuchsia_posix::Errno,
51252                >>(
51253                    (membership,),
51254                    0x2888f3099188d03,
51255                    fidl::encoding::DynamicFlags::empty(),
51256                    ___deadline,
51257                )?;
51258        Ok(_response.map(|x| x))
51259    }
51260
51261    /// Set `SOL_IP` -> `IP_TRANSPARENT`
51262    pub fn r#set_ip_transparent(
51263        &self,
51264        mut value: bool,
51265        ___deadline: zx::MonotonicInstant,
51266    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
51267        let _response =
51268            self.client
51269                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
51270                    fidl::encoding::EmptyStruct,
51271                    fidl_fuchsia_posix::Errno,
51272                >>(
51273                    (value,),
51274                    0x1ae532b0c066e3a0,
51275                    fidl::encoding::DynamicFlags::empty(),
51276                    ___deadline,
51277                )?;
51278        Ok(_response.map(|x| x))
51279    }
51280
51281    /// Get `SOL_IP` -> `IP_TRANSPARENT`
51282    pub fn r#get_ip_transparent(
51283        &self,
51284        ___deadline: zx::MonotonicInstant,
51285    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
51286        let _response = self
51287            .client
51288            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51289                BaseNetworkSocketGetIpTransparentResponse,
51290                fidl_fuchsia_posix::Errno,
51291            >>(
51292                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
51293            )?;
51294        Ok(_response.map(|x| x.value))
51295    }
51296
51297    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
51298    pub fn r#set_ip_receive_original_destination_address(
51299        &self,
51300        mut value: bool,
51301        ___deadline: zx::MonotonicInstant,
51302    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
51303        let _response = self.client.send_query::<
51304            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
51305            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51306        >(
51307            (value,),
51308            0x4722b4ce52f7840,
51309            fidl::encoding::DynamicFlags::empty(),
51310            ___deadline,
51311        )?;
51312        Ok(_response.map(|x| x))
51313    }
51314
51315    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
51316    pub fn r#get_ip_receive_original_destination_address(
51317        &self,
51318        ___deadline: zx::MonotonicInstant,
51319    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
51320        let _response = self
51321            .client
51322            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51323                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
51324                fidl_fuchsia_posix::Errno,
51325            >>(
51326                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
51327            )?;
51328        Ok(_response.map(|x| x.value))
51329    }
51330
51331    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
51332    pub fn r#add_ipv6_membership(
51333        &self,
51334        mut membership: &Ipv6MulticastMembership,
51335        ___deadline: zx::MonotonicInstant,
51336    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
51337        let _response =
51338            self.client
51339                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
51340                    fidl::encoding::EmptyStruct,
51341                    fidl_fuchsia_posix::Errno,
51342                >>(
51343                    (membership,),
51344                    0x7c94727acb4ea4b3,
51345                    fidl::encoding::DynamicFlags::empty(),
51346                    ___deadline,
51347                )?;
51348        Ok(_response.map(|x| x))
51349    }
51350
51351    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
51352    pub fn r#drop_ipv6_membership(
51353        &self,
51354        mut membership: &Ipv6MulticastMembership,
51355        ___deadline: zx::MonotonicInstant,
51356    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
51357        let _response = self.client.send_query::<
51358            BaseNetworkSocketDropIpv6MembershipRequest,
51359            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51360        >(
51361            (membership,),
51362            0x42104c70ccaba304,
51363            fidl::encoding::DynamicFlags::empty(),
51364            ___deadline,
51365        )?;
51366        Ok(_response.map(|x| x))
51367    }
51368
51369    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
51370    pub fn r#set_ipv6_multicast_interface(
51371        &self,
51372        mut value: u64,
51373        ___deadline: zx::MonotonicInstant,
51374    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
51375        let _response = self.client.send_query::<
51376            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
51377            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51378        >(
51379            (value,),
51380            0x135f76db3774ab3b,
51381            fidl::encoding::DynamicFlags::empty(),
51382            ___deadline,
51383        )?;
51384        Ok(_response.map(|x| x))
51385    }
51386
51387    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
51388    pub fn r#get_ipv6_multicast_interface(
51389        &self,
51390        ___deadline: zx::MonotonicInstant,
51391    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
51392        let _response = self
51393            .client
51394            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51395                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
51396                fidl_fuchsia_posix::Errno,
51397            >>(
51398                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
51399            )?;
51400        Ok(_response.map(|x| x.value))
51401    }
51402
51403    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
51404    pub fn r#set_ipv6_unicast_hops(
51405        &self,
51406        mut value: &OptionalUint8,
51407        ___deadline: zx::MonotonicInstant,
51408    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
51409        let _response = self.client.send_query::<
51410            BaseNetworkSocketSetIpv6UnicastHopsRequest,
51411            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51412        >(
51413            (value,),
51414            0x157d51e98f462859,
51415            fidl::encoding::DynamicFlags::empty(),
51416            ___deadline,
51417        )?;
51418        Ok(_response.map(|x| x))
51419    }
51420
51421    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
51422    pub fn r#get_ipv6_unicast_hops(
51423        &self,
51424        ___deadline: zx::MonotonicInstant,
51425    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
51426        let _response = self
51427            .client
51428            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51429                BaseNetworkSocketGetIpv6UnicastHopsResponse,
51430                fidl_fuchsia_posix::Errno,
51431            >>(
51432                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
51433            )?;
51434        Ok(_response.map(|x| x.value))
51435    }
51436
51437    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
51438    pub fn r#set_ipv6_receive_hop_limit(
51439        &self,
51440        mut value: bool,
51441        ___deadline: zx::MonotonicInstant,
51442    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
51443        let _response = self.client.send_query::<
51444            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
51445            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51446        >(
51447            (value,),
51448            0x5c24808ed2e84a1e,
51449            fidl::encoding::DynamicFlags::empty(),
51450            ___deadline,
51451        )?;
51452        Ok(_response.map(|x| x))
51453    }
51454
51455    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
51456    pub fn r#get_ipv6_receive_hop_limit(
51457        &self,
51458        ___deadline: zx::MonotonicInstant,
51459    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
51460        let _response = self
51461            .client
51462            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51463                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
51464                fidl_fuchsia_posix::Errno,
51465            >>(
51466                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
51467            )?;
51468        Ok(_response.map(|x| x.value))
51469    }
51470
51471    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
51472    pub fn r#set_ipv6_multicast_hops(
51473        &self,
51474        mut value: &OptionalUint8,
51475        ___deadline: zx::MonotonicInstant,
51476    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
51477        let _response = self.client.send_query::<
51478            BaseNetworkSocketSetIpv6MulticastHopsRequest,
51479            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51480        >(
51481            (value,),
51482            0x25b9cd4d181f82c1,
51483            fidl::encoding::DynamicFlags::empty(),
51484            ___deadline,
51485        )?;
51486        Ok(_response.map(|x| x))
51487    }
51488
51489    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
51490    pub fn r#get_ipv6_multicast_hops(
51491        &self,
51492        ___deadline: zx::MonotonicInstant,
51493    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
51494        let _response = self
51495            .client
51496            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51497                BaseNetworkSocketGetIpv6MulticastHopsResponse,
51498                fidl_fuchsia_posix::Errno,
51499            >>(
51500                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
51501            )?;
51502        Ok(_response.map(|x| x.value))
51503    }
51504
51505    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
51506    pub fn r#set_ipv6_multicast_loopback(
51507        &self,
51508        mut value: bool,
51509        ___deadline: zx::MonotonicInstant,
51510    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
51511        let _response = self.client.send_query::<
51512            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
51513            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51514        >(
51515            (value,),
51516            0x55701c409ff41b40,
51517            fidl::encoding::DynamicFlags::empty(),
51518            ___deadline,
51519        )?;
51520        Ok(_response.map(|x| x))
51521    }
51522
51523    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
51524    pub fn r#get_ipv6_multicast_loopback(
51525        &self,
51526        ___deadline: zx::MonotonicInstant,
51527    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
51528        let _response = self
51529            .client
51530            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51531                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
51532                fidl_fuchsia_posix::Errno,
51533            >>(
51534                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
51535            )?;
51536        Ok(_response.map(|x| x.value))
51537    }
51538
51539    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
51540    pub fn r#set_ipv6_only(
51541        &self,
51542        mut value: bool,
51543        ___deadline: zx::MonotonicInstant,
51544    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
51545        let _response =
51546            self.client
51547                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
51548                    fidl::encoding::EmptyStruct,
51549                    fidl_fuchsia_posix::Errno,
51550                >>(
51551                    (value,),
51552                    0x4873f1364758cbba,
51553                    fidl::encoding::DynamicFlags::empty(),
51554                    ___deadline,
51555                )?;
51556        Ok(_response.map(|x| x))
51557    }
51558
51559    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
51560    pub fn r#get_ipv6_only(
51561        &self,
51562        ___deadline: zx::MonotonicInstant,
51563    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
51564        let _response = self
51565            .client
51566            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51567                BaseNetworkSocketGetIpv6OnlyResponse,
51568                fidl_fuchsia_posix::Errno,
51569            >>(
51570                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
51571            )?;
51572        Ok(_response.map(|x| x.value))
51573    }
51574
51575    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
51576    pub fn r#set_ipv6_receive_traffic_class(
51577        &self,
51578        mut value: bool,
51579        ___deadline: zx::MonotonicInstant,
51580    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
51581        let _response = self.client.send_query::<
51582            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
51583            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51584        >(
51585            (value,),
51586            0x58f07c8788d099a0,
51587            fidl::encoding::DynamicFlags::empty(),
51588            ___deadline,
51589        )?;
51590        Ok(_response.map(|x| x))
51591    }
51592
51593    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
51594    pub fn r#get_ipv6_receive_traffic_class(
51595        &self,
51596        ___deadline: zx::MonotonicInstant,
51597    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
51598        let _response = self
51599            .client
51600            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51601                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
51602                fidl_fuchsia_posix::Errno,
51603            >>(
51604                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
51605            )?;
51606        Ok(_response.map(|x| x.value))
51607    }
51608
51609    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
51610    pub fn r#set_ipv6_traffic_class(
51611        &self,
51612        mut value: &OptionalUint8,
51613        ___deadline: zx::MonotonicInstant,
51614    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
51615        let _response = self.client.send_query::<
51616            BaseNetworkSocketSetIpv6TrafficClassRequest,
51617            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51618        >(
51619            (value,),
51620            0x6af077800c5a0b4f,
51621            fidl::encoding::DynamicFlags::empty(),
51622            ___deadline,
51623        )?;
51624        Ok(_response.map(|x| x))
51625    }
51626
51627    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
51628    pub fn r#get_ipv6_traffic_class(
51629        &self,
51630        ___deadline: zx::MonotonicInstant,
51631    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
51632        let _response = self
51633            .client
51634            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51635                BaseNetworkSocketGetIpv6TrafficClassResponse,
51636                fidl_fuchsia_posix::Errno,
51637            >>(
51638                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
51639            )?;
51640        Ok(_response.map(|x| x.value))
51641    }
51642
51643    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
51644    pub fn r#set_ipv6_receive_packet_info(
51645        &self,
51646        mut value: bool,
51647        ___deadline: zx::MonotonicInstant,
51648    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
51649        let _response = self.client.send_query::<
51650            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
51651            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51652        >(
51653            (value,),
51654            0x19259775b1a92768,
51655            fidl::encoding::DynamicFlags::empty(),
51656            ___deadline,
51657        )?;
51658        Ok(_response.map(|x| x))
51659    }
51660
51661    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
51662    pub fn r#get_ipv6_receive_packet_info(
51663        &self,
51664        ___deadline: zx::MonotonicInstant,
51665    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
51666        let _response = self
51667            .client
51668            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51669                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
51670                fidl_fuchsia_posix::Errno,
51671            >>(
51672                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
51673            )?;
51674        Ok(_response.map(|x| x.value))
51675    }
51676
51677    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
51678    pub fn r#get_original_destination(
51679        &self,
51680        ___deadline: zx::MonotonicInstant,
51681    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
51682        let _response = self
51683            .client
51684            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51685                BaseNetworkSocketGetOriginalDestinationResponse,
51686                fidl_fuchsia_posix::Errno,
51687            >>(
51688                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
51689            )?;
51690        Ok(_response.map(|x| x.value))
51691    }
51692
51693    pub fn r#describe(
51694        &self,
51695        ___deadline: zx::MonotonicInstant,
51696    ) -> Result<StreamSocketDescribeResponse, fidl::Error> {
51697        let _response =
51698            self.client.send_query::<fidl::encoding::EmptyPayload, StreamSocketDescribeResponse>(
51699                (),
51700                0x29e22969a7dadc32,
51701                fidl::encoding::DynamicFlags::empty(),
51702                ___deadline,
51703            )?;
51704        Ok(_response)
51705    }
51706
51707    /// Begins listening for new incoming connections. At most `backlog`
51708    /// connections will be buffered.
51709    pub fn r#listen(
51710        &self,
51711        mut backlog: i16,
51712        ___deadline: zx::MonotonicInstant,
51713    ) -> Result<StreamSocketListenResult, fidl::Error> {
51714        let _response =
51715            self.client.send_query::<StreamSocketListenRequest, fidl::encoding::ResultType<
51716                fidl::encoding::EmptyStruct,
51717                fidl_fuchsia_posix::Errno,
51718            >>(
51719                (backlog,),
51720                0x3d0a65ced3d10108,
51721                fidl::encoding::DynamicFlags::empty(),
51722                ___deadline,
51723            )?;
51724        Ok(_response.map(|x| x))
51725    }
51726
51727    /// Accepts a buffered incoming connection.
51728    pub fn r#accept(
51729        &self,
51730        mut want_addr: bool,
51731        ___deadline: zx::MonotonicInstant,
51732    ) -> Result<StreamSocketAcceptResult, fidl::Error> {
51733        let _response =
51734            self.client.send_query::<StreamSocketAcceptRequest, fidl::encoding::ResultType<
51735                StreamSocketAcceptResponse,
51736                fidl_fuchsia_posix::Errno,
51737            >>(
51738                (want_addr,),
51739                0x5ab7ad620424c163,
51740                fidl::encoding::DynamicFlags::empty(),
51741                ___deadline,
51742            )?;
51743        Ok(_response.map(|x| (x.addr, x.s)))
51744    }
51745
51746    /// Retrieves creation information from the socket.
51747    pub fn r#get_info(
51748        &self,
51749        ___deadline: zx::MonotonicInstant,
51750    ) -> Result<StreamSocketGetInfoResult, fidl::Error> {
51751        let _response =
51752            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51753                StreamSocketGetInfoResponse,
51754                fidl_fuchsia_posix::Errno,
51755            >>(
51756                (),
51757                0x87cfa55d19f878f,
51758                fidl::encoding::DynamicFlags::empty(),
51759                ___deadline,
51760            )?;
51761        Ok(_response.map(|x| (x.domain, x.proto)))
51762    }
51763
51764    /// Set `SOL_TCP` -> `TCP_NODELAY`.
51765    pub fn r#set_tcp_no_delay(
51766        &self,
51767        mut value: bool,
51768        ___deadline: zx::MonotonicInstant,
51769    ) -> Result<StreamSocketSetTcpNoDelayResult, fidl::Error> {
51770        let _response =
51771            self.client.send_query::<StreamSocketSetTcpNoDelayRequest, fidl::encoding::ResultType<
51772                fidl::encoding::EmptyStruct,
51773                fidl_fuchsia_posix::Errno,
51774            >>(
51775                (value,),
51776                0x5a59b778f7333ada,
51777                fidl::encoding::DynamicFlags::empty(),
51778                ___deadline,
51779            )?;
51780        Ok(_response.map(|x| x))
51781    }
51782
51783    /// Get `SOL_TCP` -> `TCP_NODELAY`.
51784    pub fn r#get_tcp_no_delay(
51785        &self,
51786        ___deadline: zx::MonotonicInstant,
51787    ) -> Result<StreamSocketGetTcpNoDelayResult, fidl::Error> {
51788        let _response = self
51789            .client
51790            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51791                StreamSocketGetTcpNoDelayResponse,
51792                fidl_fuchsia_posix::Errno,
51793            >>(
51794                (), 0xac219a3218b0799, fidl::encoding::DynamicFlags::empty(), ___deadline
51795            )?;
51796        Ok(_response.map(|x| x.value))
51797    }
51798
51799    /// Set `SOL_TCP` -> `TCP_MAXSEG`.
51800    pub fn r#set_tcp_max_segment(
51801        &self,
51802        mut value_bytes: u32,
51803        ___deadline: zx::MonotonicInstant,
51804    ) -> Result<StreamSocketSetTcpMaxSegmentResult, fidl::Error> {
51805        let _response =
51806            self.client
51807                .send_query::<StreamSocketSetTcpMaxSegmentRequest, fidl::encoding::ResultType<
51808                    fidl::encoding::EmptyStruct,
51809                    fidl_fuchsia_posix::Errno,
51810                >>(
51811                    (value_bytes,),
51812                    0xb3d30c498266d18,
51813                    fidl::encoding::DynamicFlags::empty(),
51814                    ___deadline,
51815                )?;
51816        Ok(_response.map(|x| x))
51817    }
51818
51819    /// Get `SOL_TCP` -> `TCP_MAXSEG`.
51820    pub fn r#get_tcp_max_segment(
51821        &self,
51822        ___deadline: zx::MonotonicInstant,
51823    ) -> Result<StreamSocketGetTcpMaxSegmentResult, fidl::Error> {
51824        let _response = self
51825            .client
51826            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51827                StreamSocketGetTcpMaxSegmentResponse,
51828                fidl_fuchsia_posix::Errno,
51829            >>(
51830                (), 0x637404d1b4b9982c, fidl::encoding::DynamicFlags::empty(), ___deadline
51831            )?;
51832        Ok(_response.map(|x| x.value_bytes))
51833    }
51834
51835    /// Set `SOL_TCP` -> `TCP_CORK`.
51836    pub fn r#set_tcp_cork(
51837        &self,
51838        mut value: bool,
51839        ___deadline: zx::MonotonicInstant,
51840    ) -> Result<StreamSocketSetTcpCorkResult, fidl::Error> {
51841        let _response =
51842            self.client.send_query::<StreamSocketSetTcpCorkRequest, fidl::encoding::ResultType<
51843                fidl::encoding::EmptyStruct,
51844                fidl_fuchsia_posix::Errno,
51845            >>(
51846                (value,),
51847                0x62e26891541143a0,
51848                fidl::encoding::DynamicFlags::empty(),
51849                ___deadline,
51850            )?;
51851        Ok(_response.map(|x| x))
51852    }
51853
51854    /// Get `SOL_TCP` -> `TCP_CORK`.
51855    pub fn r#get_tcp_cork(
51856        &self,
51857        ___deadline: zx::MonotonicInstant,
51858    ) -> Result<StreamSocketGetTcpCorkResult, fidl::Error> {
51859        let _response =
51860            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51861                StreamSocketGetTcpCorkResponse,
51862                fidl_fuchsia_posix::Errno,
51863            >>(
51864                (),
51865                0x435bb232e0e74f32,
51866                fidl::encoding::DynamicFlags::empty(),
51867                ___deadline,
51868            )?;
51869        Ok(_response.map(|x| x.value))
51870    }
51871
51872    /// Set `SOL_TCP` -> `TCP_KEEPIDLE`.
51873    pub fn r#set_tcp_keep_alive_idle(
51874        &self,
51875        mut value_secs: u32,
51876        ___deadline: zx::MonotonicInstant,
51877    ) -> Result<StreamSocketSetTcpKeepAliveIdleResult, fidl::Error> {
51878        let _response =
51879            self.client
51880                .send_query::<StreamSocketSetTcpKeepAliveIdleRequest, fidl::encoding::ResultType<
51881                    fidl::encoding::EmptyStruct,
51882                    fidl_fuchsia_posix::Errno,
51883                >>(
51884                    (value_secs,),
51885                    0x196d053d8363c42,
51886                    fidl::encoding::DynamicFlags::empty(),
51887                    ___deadline,
51888                )?;
51889        Ok(_response.map(|x| x))
51890    }
51891
51892    /// Get `SOL_TCP` -> `TCP_KEEPIDLE`.
51893    pub fn r#get_tcp_keep_alive_idle(
51894        &self,
51895        ___deadline: zx::MonotonicInstant,
51896    ) -> Result<StreamSocketGetTcpKeepAliveIdleResult, fidl::Error> {
51897        let _response = self
51898            .client
51899            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51900                StreamSocketGetTcpKeepAliveIdleResponse,
51901                fidl_fuchsia_posix::Errno,
51902            >>(
51903                (), 0x35ec58564879dac, fidl::encoding::DynamicFlags::empty(), ___deadline
51904            )?;
51905        Ok(_response.map(|x| x.value_secs))
51906    }
51907
51908    /// Set `SOL_TCP` -> `TCP_KEEPINTVL`.
51909    pub fn r#set_tcp_keep_alive_interval(
51910        &self,
51911        mut value_secs: u32,
51912        ___deadline: zx::MonotonicInstant,
51913    ) -> Result<StreamSocketSetTcpKeepAliveIntervalResult, fidl::Error> {
51914        let _response = self.client.send_query::<
51915            StreamSocketSetTcpKeepAliveIntervalRequest,
51916            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51917        >(
51918            (value_secs,),
51919            0x485ffbc2da1243f2,
51920            fidl::encoding::DynamicFlags::empty(),
51921            ___deadline,
51922        )?;
51923        Ok(_response.map(|x| x))
51924    }
51925
51926    /// Get `SOL_TCP` -> `TCP_KEEPINTVL`.
51927    pub fn r#get_tcp_keep_alive_interval(
51928        &self,
51929        ___deadline: zx::MonotonicInstant,
51930    ) -> Result<StreamSocketGetTcpKeepAliveIntervalResult, fidl::Error> {
51931        let _response = self
51932            .client
51933            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51934                StreamSocketGetTcpKeepAliveIntervalResponse,
51935                fidl_fuchsia_posix::Errno,
51936            >>(
51937                (), 0x264eaf46306b284, fidl::encoding::DynamicFlags::empty(), ___deadline
51938            )?;
51939        Ok(_response.map(|x| x.value_secs))
51940    }
51941
51942    /// Set `SOL_TCP` -> `TCP_KEEPCNT`.
51943    pub fn r#set_tcp_keep_alive_count(
51944        &self,
51945        mut value: u32,
51946        ___deadline: zx::MonotonicInstant,
51947    ) -> Result<StreamSocketSetTcpKeepAliveCountResult, fidl::Error> {
51948        let _response =
51949            self.client
51950                .send_query::<StreamSocketSetTcpKeepAliveCountRequest, fidl::encoding::ResultType<
51951                    fidl::encoding::EmptyStruct,
51952                    fidl_fuchsia_posix::Errno,
51953                >>(
51954                    (value,),
51955                    0x2ab2e8c111708421,
51956                    fidl::encoding::DynamicFlags::empty(),
51957                    ___deadline,
51958                )?;
51959        Ok(_response.map(|x| x))
51960    }
51961
51962    /// Get `SOL_TCP` -> `TCP_KEEPCNT`.
51963    pub fn r#get_tcp_keep_alive_count(
51964        &self,
51965        ___deadline: zx::MonotonicInstant,
51966    ) -> Result<StreamSocketGetTcpKeepAliveCountResult, fidl::Error> {
51967        let _response = self
51968            .client
51969            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51970                StreamSocketGetTcpKeepAliveCountResponse,
51971                fidl_fuchsia_posix::Errno,
51972            >>(
51973                (), 0x2f176ae271fe7a09, fidl::encoding::DynamicFlags::empty(), ___deadline
51974            )?;
51975        Ok(_response.map(|x| x.value))
51976    }
51977
51978    /// Set `SOL_TCP` -> `TCP_SYNCNT`.
51979    pub fn r#set_tcp_syn_count(
51980        &self,
51981        mut value: u32,
51982        ___deadline: zx::MonotonicInstant,
51983    ) -> Result<StreamSocketSetTcpSynCountResult, fidl::Error> {
51984        let _response =
51985            self.client
51986                .send_query::<StreamSocketSetTcpSynCountRequest, fidl::encoding::ResultType<
51987                    fidl::encoding::EmptyStruct,
51988                    fidl_fuchsia_posix::Errno,
51989                >>(
51990                    (value,),
51991                    0x4dcd6ab5573c1eb3,
51992                    fidl::encoding::DynamicFlags::empty(),
51993                    ___deadline,
51994                )?;
51995        Ok(_response.map(|x| x))
51996    }
51997
51998    /// Get `SOL_TCP` -> `TCP_SYNCNT`.
51999    pub fn r#get_tcp_syn_count(
52000        &self,
52001        ___deadline: zx::MonotonicInstant,
52002    ) -> Result<StreamSocketGetTcpSynCountResult, fidl::Error> {
52003        let _response = self
52004            .client
52005            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52006                StreamSocketGetTcpSynCountResponse,
52007                fidl_fuchsia_posix::Errno,
52008            >>(
52009                (), 0x7d457cba8f5f3ee6, fidl::encoding::DynamicFlags::empty(), ___deadline
52010            )?;
52011        Ok(_response.map(|x| x.value))
52012    }
52013
52014    /// Set `SOL_TCP` -> `TCP_LINGER2`.
52015    pub fn r#set_tcp_linger(
52016        &self,
52017        mut value_secs: &OptionalUint32,
52018        ___deadline: zx::MonotonicInstant,
52019    ) -> Result<StreamSocketSetTcpLingerResult, fidl::Error> {
52020        let _response =
52021            self.client.send_query::<StreamSocketSetTcpLingerRequest, fidl::encoding::ResultType<
52022                fidl::encoding::EmptyStruct,
52023                fidl_fuchsia_posix::Errno,
52024            >>(
52025                (value_secs,),
52026                0xd5cc1e8654d36e4,
52027                fidl::encoding::DynamicFlags::empty(),
52028                ___deadline,
52029            )?;
52030        Ok(_response.map(|x| x))
52031    }
52032
52033    /// Get `SOL_TCP` -> `TCP_LINGER2`.
52034    pub fn r#get_tcp_linger(
52035        &self,
52036        ___deadline: zx::MonotonicInstant,
52037    ) -> Result<StreamSocketGetTcpLingerResult, fidl::Error> {
52038        let _response = self
52039            .client
52040            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52041                StreamSocketGetTcpLingerResponse,
52042                fidl_fuchsia_posix::Errno,
52043            >>(
52044                (), 0xad870d311cf30eb, fidl::encoding::DynamicFlags::empty(), ___deadline
52045            )?;
52046        Ok(_response.map(|x| x.value_secs))
52047    }
52048
52049    /// Set `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
52050    pub fn r#set_tcp_defer_accept(
52051        &self,
52052        mut value_secs: u32,
52053        ___deadline: zx::MonotonicInstant,
52054    ) -> Result<StreamSocketSetTcpDeferAcceptResult, fidl::Error> {
52055        let _response =
52056            self.client
52057                .send_query::<StreamSocketSetTcpDeferAcceptRequest, fidl::encoding::ResultType<
52058                    fidl::encoding::EmptyStruct,
52059                    fidl_fuchsia_posix::Errno,
52060                >>(
52061                    (value_secs,),
52062                    0x15092f181e57c404,
52063                    fidl::encoding::DynamicFlags::empty(),
52064                    ___deadline,
52065                )?;
52066        Ok(_response.map(|x| x))
52067    }
52068
52069    /// Get `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
52070    pub fn r#get_tcp_defer_accept(
52071        &self,
52072        ___deadline: zx::MonotonicInstant,
52073    ) -> Result<StreamSocketGetTcpDeferAcceptResult, fidl::Error> {
52074        let _response = self
52075            .client
52076            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52077                StreamSocketGetTcpDeferAcceptResponse,
52078                fidl_fuchsia_posix::Errno,
52079            >>(
52080                (), 0x64589790842cb7c6, fidl::encoding::DynamicFlags::empty(), ___deadline
52081            )?;
52082        Ok(_response.map(|x| x.value_secs))
52083    }
52084
52085    /// Set `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
52086    pub fn r#set_tcp_window_clamp(
52087        &self,
52088        mut value: u32,
52089        ___deadline: zx::MonotonicInstant,
52090    ) -> Result<StreamSocketSetTcpWindowClampResult, fidl::Error> {
52091        let _response =
52092            self.client
52093                .send_query::<StreamSocketSetTcpWindowClampRequest, fidl::encoding::ResultType<
52094                    fidl::encoding::EmptyStruct,
52095                    fidl_fuchsia_posix::Errno,
52096                >>(
52097                    (value,),
52098                    0x4a26ce07d847f1c6,
52099                    fidl::encoding::DynamicFlags::empty(),
52100                    ___deadline,
52101                )?;
52102        Ok(_response.map(|x| x))
52103    }
52104
52105    /// Get `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
52106    pub fn r#get_tcp_window_clamp(
52107        &self,
52108        ___deadline: zx::MonotonicInstant,
52109    ) -> Result<StreamSocketGetTcpWindowClampResult, fidl::Error> {
52110        let _response = self
52111            .client
52112            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52113                StreamSocketGetTcpWindowClampResponse,
52114                fidl_fuchsia_posix::Errno,
52115            >>(
52116                (), 0x2df6b636bf0a6a4e, fidl::encoding::DynamicFlags::empty(), ___deadline
52117            )?;
52118        Ok(_response.map(|x| x.value))
52119    }
52120
52121    /// Get `SOL_TCP` -> `TCP_INFO`.
52122    pub fn r#get_tcp_info(
52123        &self,
52124        ___deadline: zx::MonotonicInstant,
52125    ) -> Result<StreamSocketGetTcpInfoResult, fidl::Error> {
52126        let _response =
52127            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52128                StreamSocketGetTcpInfoResponse,
52129                fidl_fuchsia_posix::Errno,
52130            >>(
52131                (),
52132                0x1ffb123d9f03ead2,
52133                fidl::encoding::DynamicFlags::empty(),
52134                ___deadline,
52135            )?;
52136        Ok(_response.map(|x| x.info))
52137    }
52138
52139    /// Set `SOL_TCP` -> `TCP_QUICKACK`.
52140    pub fn r#set_tcp_quick_ack(
52141        &self,
52142        mut value: bool,
52143        ___deadline: zx::MonotonicInstant,
52144    ) -> Result<StreamSocketSetTcpQuickAckResult, fidl::Error> {
52145        let _response =
52146            self.client
52147                .send_query::<StreamSocketSetTcpQuickAckRequest, fidl::encoding::ResultType<
52148                    fidl::encoding::EmptyStruct,
52149                    fidl_fuchsia_posix::Errno,
52150                >>(
52151                    (value,),
52152                    0x6fa811be8fde7457,
52153                    fidl::encoding::DynamicFlags::empty(),
52154                    ___deadline,
52155                )?;
52156        Ok(_response.map(|x| x))
52157    }
52158
52159    /// Get `SOL_TCP` -> `TCP_QUICKACK`.
52160    pub fn r#get_tcp_quick_ack(
52161        &self,
52162        ___deadline: zx::MonotonicInstant,
52163    ) -> Result<StreamSocketGetTcpQuickAckResult, fidl::Error> {
52164        let _response = self
52165            .client
52166            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52167                StreamSocketGetTcpQuickAckResponse,
52168                fidl_fuchsia_posix::Errno,
52169            >>(
52170                (), 0x7356a949bef2df32, fidl::encoding::DynamicFlags::empty(), ___deadline
52171            )?;
52172        Ok(_response.map(|x| x.value))
52173    }
52174
52175    /// Set `SOL_TCP` -> `TCP_CONGESTION`.
52176    pub fn r#set_tcp_congestion(
52177        &self,
52178        mut value: TcpCongestionControl,
52179        ___deadline: zx::MonotonicInstant,
52180    ) -> Result<StreamSocketSetTcpCongestionResult, fidl::Error> {
52181        let _response =
52182            self.client
52183                .send_query::<StreamSocketSetTcpCongestionRequest, fidl::encoding::ResultType<
52184                    fidl::encoding::EmptyStruct,
52185                    fidl_fuchsia_posix::Errno,
52186                >>(
52187                    (value,),
52188                    0x7924c6eabde7819e,
52189                    fidl::encoding::DynamicFlags::empty(),
52190                    ___deadline,
52191                )?;
52192        Ok(_response.map(|x| x))
52193    }
52194
52195    /// Get `SOL_TCP` -> `TCP_CONGESTION`.
52196    pub fn r#get_tcp_congestion(
52197        &self,
52198        ___deadline: zx::MonotonicInstant,
52199    ) -> Result<StreamSocketGetTcpCongestionResult, fidl::Error> {
52200        let _response = self
52201            .client
52202            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52203                StreamSocketGetTcpCongestionResponse,
52204                fidl_fuchsia_posix::Errno,
52205            >>(
52206                (), 0x11e16397e1b72a47, fidl::encoding::DynamicFlags::empty(), ___deadline
52207            )?;
52208        Ok(_response.map(|x| x.value))
52209    }
52210
52211    /// Set `SOL_TCP` -> `TCP_USER_TIMEOUT`.
52212    pub fn r#set_tcp_user_timeout(
52213        &self,
52214        mut value_millis: u32,
52215        ___deadline: zx::MonotonicInstant,
52216    ) -> Result<StreamSocketSetTcpUserTimeoutResult, fidl::Error> {
52217        let _response =
52218            self.client
52219                .send_query::<StreamSocketSetTcpUserTimeoutRequest, fidl::encoding::ResultType<
52220                    fidl::encoding::EmptyStruct,
52221                    fidl_fuchsia_posix::Errno,
52222                >>(
52223                    (value_millis,),
52224                    0x6b459e81c3741a60,
52225                    fidl::encoding::DynamicFlags::empty(),
52226                    ___deadline,
52227                )?;
52228        Ok(_response.map(|x| x))
52229    }
52230
52231    /// Get `SOL_TCP` -> `TCP_USER_TIMEOUT`.
52232    pub fn r#get_tcp_user_timeout(
52233        &self,
52234        ___deadline: zx::MonotonicInstant,
52235    ) -> Result<StreamSocketGetTcpUserTimeoutResult, fidl::Error> {
52236        let _response = self
52237            .client
52238            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52239                StreamSocketGetTcpUserTimeoutResponse,
52240                fidl_fuchsia_posix::Errno,
52241            >>(
52242                (), 0x24bbd5858ad8c380, fidl::encoding::DynamicFlags::empty(), ___deadline
52243            )?;
52244        Ok(_response.map(|x| x.value_millis))
52245    }
52246}
52247
52248#[cfg(target_os = "fuchsia")]
52249impl From<StreamSocketSynchronousProxy> for zx::Handle {
52250    fn from(value: StreamSocketSynchronousProxy) -> Self {
52251        value.into_channel().into()
52252    }
52253}
52254
52255#[cfg(target_os = "fuchsia")]
52256impl From<fidl::Channel> for StreamSocketSynchronousProxy {
52257    fn from(value: fidl::Channel) -> Self {
52258        Self::new(value)
52259    }
52260}
52261
52262#[cfg(target_os = "fuchsia")]
52263impl fidl::endpoints::FromClient for StreamSocketSynchronousProxy {
52264    type Protocol = StreamSocketMarker;
52265
52266    fn from_client(value: fidl::endpoints::ClientEnd<StreamSocketMarker>) -> Self {
52267        Self::new(value.into_channel())
52268    }
52269}
52270
52271#[derive(Debug, Clone)]
52272pub struct StreamSocketProxy {
52273    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
52274}
52275
52276impl fidl::endpoints::Proxy for StreamSocketProxy {
52277    type Protocol = StreamSocketMarker;
52278
52279    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
52280        Self::new(inner)
52281    }
52282
52283    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
52284        self.client.into_channel().map_err(|client| Self { client })
52285    }
52286
52287    fn as_channel(&self) -> &::fidl::AsyncChannel {
52288        self.client.as_channel()
52289    }
52290}
52291
52292impl StreamSocketProxy {
52293    /// Create a new Proxy for fuchsia.posix.socket/StreamSocket.
52294    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
52295        let protocol_name = <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
52296        Self { client: fidl::client::Client::new(channel, protocol_name) }
52297    }
52298
52299    /// Get a Stream of events from the remote end of the protocol.
52300    ///
52301    /// # Panics
52302    ///
52303    /// Panics if the event stream was already taken.
52304    pub fn take_event_stream(&self) -> StreamSocketEventStream {
52305        StreamSocketEventStream { event_receiver: self.client.take_event_receiver() }
52306    }
52307
52308    pub fn r#clone(
52309        &self,
52310        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
52311    ) -> Result<(), fidl::Error> {
52312        StreamSocketProxyInterface::r#clone(self, request)
52313    }
52314
52315    /// Terminates the connection.
52316    ///
52317    /// After calling `Close`, the client must not send any other requests.
52318    ///
52319    /// Servers, after sending the status response, should close the connection
52320    /// regardless of status and without sending an epitaph.
52321    ///
52322    /// Closing the client end of the channel should be semantically equivalent
52323    /// to calling `Close` without knowing when the close has completed or its
52324    /// status.
52325    pub fn r#close(
52326        &self,
52327    ) -> fidl::client::QueryResponseFut<
52328        fidl_fuchsia_unknown::CloseableCloseResult,
52329        fidl::encoding::DefaultFuchsiaResourceDialect,
52330    > {
52331        StreamSocketProxyInterface::r#close(self)
52332    }
52333
52334    pub fn r#query(
52335        &self,
52336    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
52337    {
52338        StreamSocketProxyInterface::r#query(self)
52339    }
52340
52341    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
52342    pub fn r#set_reuse_address(
52343        &self,
52344        mut value: bool,
52345    ) -> fidl::client::QueryResponseFut<
52346        BaseSocketSetReuseAddressResult,
52347        fidl::encoding::DefaultFuchsiaResourceDialect,
52348    > {
52349        StreamSocketProxyInterface::r#set_reuse_address(self, value)
52350    }
52351
52352    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
52353    pub fn r#get_reuse_address(
52354        &self,
52355    ) -> fidl::client::QueryResponseFut<
52356        BaseSocketGetReuseAddressResult,
52357        fidl::encoding::DefaultFuchsiaResourceDialect,
52358    > {
52359        StreamSocketProxyInterface::r#get_reuse_address(self)
52360    }
52361
52362    /// Get `SOL_SOCKET` -> `SO_ERROR`.
52363    /// Returns the last error if there is an error set on the socket.
52364    pub fn r#get_error(
52365        &self,
52366    ) -> fidl::client::QueryResponseFut<
52367        BaseSocketGetErrorResult,
52368        fidl::encoding::DefaultFuchsiaResourceDialect,
52369    > {
52370        StreamSocketProxyInterface::r#get_error(self)
52371    }
52372
52373    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
52374    pub fn r#set_broadcast(
52375        &self,
52376        mut value: bool,
52377    ) -> fidl::client::QueryResponseFut<
52378        BaseSocketSetBroadcastResult,
52379        fidl::encoding::DefaultFuchsiaResourceDialect,
52380    > {
52381        StreamSocketProxyInterface::r#set_broadcast(self, value)
52382    }
52383
52384    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
52385    pub fn r#get_broadcast(
52386        &self,
52387    ) -> fidl::client::QueryResponseFut<
52388        BaseSocketGetBroadcastResult,
52389        fidl::encoding::DefaultFuchsiaResourceDialect,
52390    > {
52391        StreamSocketProxyInterface::r#get_broadcast(self)
52392    }
52393
52394    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
52395    pub fn r#set_send_buffer(
52396        &self,
52397        mut value_bytes: u64,
52398    ) -> fidl::client::QueryResponseFut<
52399        BaseSocketSetSendBufferResult,
52400        fidl::encoding::DefaultFuchsiaResourceDialect,
52401    > {
52402        StreamSocketProxyInterface::r#set_send_buffer(self, value_bytes)
52403    }
52404
52405    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
52406    pub fn r#get_send_buffer(
52407        &self,
52408    ) -> fidl::client::QueryResponseFut<
52409        BaseSocketGetSendBufferResult,
52410        fidl::encoding::DefaultFuchsiaResourceDialect,
52411    > {
52412        StreamSocketProxyInterface::r#get_send_buffer(self)
52413    }
52414
52415    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
52416    pub fn r#set_receive_buffer(
52417        &self,
52418        mut value_bytes: u64,
52419    ) -> fidl::client::QueryResponseFut<
52420        BaseSocketSetReceiveBufferResult,
52421        fidl::encoding::DefaultFuchsiaResourceDialect,
52422    > {
52423        StreamSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
52424    }
52425
52426    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
52427    pub fn r#get_receive_buffer(
52428        &self,
52429    ) -> fidl::client::QueryResponseFut<
52430        BaseSocketGetReceiveBufferResult,
52431        fidl::encoding::DefaultFuchsiaResourceDialect,
52432    > {
52433        StreamSocketProxyInterface::r#get_receive_buffer(self)
52434    }
52435
52436    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
52437    pub fn r#set_keep_alive(
52438        &self,
52439        mut value: bool,
52440    ) -> fidl::client::QueryResponseFut<
52441        BaseSocketSetKeepAliveResult,
52442        fidl::encoding::DefaultFuchsiaResourceDialect,
52443    > {
52444        StreamSocketProxyInterface::r#set_keep_alive(self, value)
52445    }
52446
52447    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
52448    pub fn r#get_keep_alive(
52449        &self,
52450    ) -> fidl::client::QueryResponseFut<
52451        BaseSocketGetKeepAliveResult,
52452        fidl::encoding::DefaultFuchsiaResourceDialect,
52453    > {
52454        StreamSocketProxyInterface::r#get_keep_alive(self)
52455    }
52456
52457    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
52458    pub fn r#set_out_of_band_inline(
52459        &self,
52460        mut value: bool,
52461    ) -> fidl::client::QueryResponseFut<
52462        BaseSocketSetOutOfBandInlineResult,
52463        fidl::encoding::DefaultFuchsiaResourceDialect,
52464    > {
52465        StreamSocketProxyInterface::r#set_out_of_band_inline(self, value)
52466    }
52467
52468    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
52469    pub fn r#get_out_of_band_inline(
52470        &self,
52471    ) -> fidl::client::QueryResponseFut<
52472        BaseSocketGetOutOfBandInlineResult,
52473        fidl::encoding::DefaultFuchsiaResourceDialect,
52474    > {
52475        StreamSocketProxyInterface::r#get_out_of_band_inline(self)
52476    }
52477
52478    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
52479    pub fn r#set_no_check(
52480        &self,
52481        mut value: bool,
52482    ) -> fidl::client::QueryResponseFut<
52483        BaseSocketSetNoCheckResult,
52484        fidl::encoding::DefaultFuchsiaResourceDialect,
52485    > {
52486        StreamSocketProxyInterface::r#set_no_check(self, value)
52487    }
52488
52489    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
52490    pub fn r#get_no_check(
52491        &self,
52492    ) -> fidl::client::QueryResponseFut<
52493        BaseSocketGetNoCheckResult,
52494        fidl::encoding::DefaultFuchsiaResourceDialect,
52495    > {
52496        StreamSocketProxyInterface::r#get_no_check(self)
52497    }
52498
52499    /// Set `SOL_SOCKET` -> `SO_LINGER`.
52500    pub fn r#set_linger(
52501        &self,
52502        mut linger: bool,
52503        mut length_secs: u32,
52504    ) -> fidl::client::QueryResponseFut<
52505        BaseSocketSetLingerResult,
52506        fidl::encoding::DefaultFuchsiaResourceDialect,
52507    > {
52508        StreamSocketProxyInterface::r#set_linger(self, linger, length_secs)
52509    }
52510
52511    /// Get `SOL_SOCKET` -> `SO_LINGER`.
52512    pub fn r#get_linger(
52513        &self,
52514    ) -> fidl::client::QueryResponseFut<
52515        BaseSocketGetLingerResult,
52516        fidl::encoding::DefaultFuchsiaResourceDialect,
52517    > {
52518        StreamSocketProxyInterface::r#get_linger(self)
52519    }
52520
52521    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
52522    pub fn r#set_reuse_port(
52523        &self,
52524        mut value: bool,
52525    ) -> fidl::client::QueryResponseFut<
52526        BaseSocketSetReusePortResult,
52527        fidl::encoding::DefaultFuchsiaResourceDialect,
52528    > {
52529        StreamSocketProxyInterface::r#set_reuse_port(self, value)
52530    }
52531
52532    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
52533    pub fn r#get_reuse_port(
52534        &self,
52535    ) -> fidl::client::QueryResponseFut<
52536        BaseSocketGetReusePortResult,
52537        fidl::encoding::DefaultFuchsiaResourceDialect,
52538    > {
52539        StreamSocketProxyInterface::r#get_reuse_port(self)
52540    }
52541
52542    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
52543    pub fn r#get_accept_conn(
52544        &self,
52545    ) -> fidl::client::QueryResponseFut<
52546        BaseSocketGetAcceptConnResult,
52547        fidl::encoding::DefaultFuchsiaResourceDialect,
52548    > {
52549        StreamSocketProxyInterface::r#get_accept_conn(self)
52550    }
52551
52552    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
52553    pub fn r#set_bind_to_device(
52554        &self,
52555        mut value: &str,
52556    ) -> fidl::client::QueryResponseFut<
52557        BaseSocketSetBindToDeviceResult,
52558        fidl::encoding::DefaultFuchsiaResourceDialect,
52559    > {
52560        StreamSocketProxyInterface::r#set_bind_to_device(self, value)
52561    }
52562
52563    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
52564    pub fn r#get_bind_to_device(
52565        &self,
52566    ) -> fidl::client::QueryResponseFut<
52567        BaseSocketGetBindToDeviceResult,
52568        fidl::encoding::DefaultFuchsiaResourceDialect,
52569    > {
52570        StreamSocketProxyInterface::r#get_bind_to_device(self)
52571    }
52572
52573    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
52574    /// If `value` is 0, this clears the bound interface.
52575    pub fn r#set_bind_to_interface_index(
52576        &self,
52577        mut value: u64,
52578    ) -> fidl::client::QueryResponseFut<
52579        BaseSocketSetBindToInterfaceIndexResult,
52580        fidl::encoding::DefaultFuchsiaResourceDialect,
52581    > {
52582        StreamSocketProxyInterface::r#set_bind_to_interface_index(self, value)
52583    }
52584
52585    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
52586    pub fn r#get_bind_to_interface_index(
52587        &self,
52588    ) -> fidl::client::QueryResponseFut<
52589        BaseSocketGetBindToInterfaceIndexResult,
52590        fidl::encoding::DefaultFuchsiaResourceDialect,
52591    > {
52592        StreamSocketProxyInterface::r#get_bind_to_interface_index(self)
52593    }
52594
52595    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
52596    pub fn r#set_timestamp(
52597        &self,
52598        mut value: TimestampOption,
52599    ) -> fidl::client::QueryResponseFut<
52600        BaseSocketSetTimestampResult,
52601        fidl::encoding::DefaultFuchsiaResourceDialect,
52602    > {
52603        StreamSocketProxyInterface::r#set_timestamp(self, value)
52604    }
52605
52606    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
52607    pub fn r#get_timestamp(
52608        &self,
52609    ) -> fidl::client::QueryResponseFut<
52610        BaseSocketGetTimestampResult,
52611        fidl::encoding::DefaultFuchsiaResourceDialect,
52612    > {
52613        StreamSocketProxyInterface::r#get_timestamp(self)
52614    }
52615
52616    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
52617    /// unlike the standard SO_MARK, this API has multiple mark domains and each
52618    /// mark can be set independently in each domain.
52619    pub fn r#set_mark(
52620        &self,
52621        mut domain: fidl_fuchsia_net::MarkDomain,
52622        mut mark: &OptionalUint32,
52623    ) -> fidl::client::QueryResponseFut<
52624        BaseSocketSetMarkResult,
52625        fidl::encoding::DefaultFuchsiaResourceDialect,
52626    > {
52627        StreamSocketProxyInterface::r#set_mark(self, domain, mark)
52628    }
52629
52630    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
52631    /// unlike the standard SO_MARK, this API has multiple mark domains and each
52632    /// mark can be retrieved independently in each domain.
52633    pub fn r#get_mark(
52634        &self,
52635        mut domain: fidl_fuchsia_net::MarkDomain,
52636    ) -> fidl::client::QueryResponseFut<
52637        BaseSocketGetMarkResult,
52638        fidl::encoding::DefaultFuchsiaResourceDialect,
52639    > {
52640        StreamSocketProxyInterface::r#get_mark(self, domain)
52641    }
52642
52643    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
52644    pub fn r#get_cookie(
52645        &self,
52646    ) -> fidl::client::QueryResponseFut<
52647        BaseSocketGetCookieResult,
52648        fidl::encoding::DefaultFuchsiaResourceDialect,
52649    > {
52650        StreamSocketProxyInterface::r#get_cookie(self)
52651    }
52652
52653    /// Sets the local address used for the socket.
52654    pub fn r#bind(
52655        &self,
52656        mut addr: &fidl_fuchsia_net::SocketAddress,
52657    ) -> fidl::client::QueryResponseFut<
52658        BaseNetworkSocketBindResult,
52659        fidl::encoding::DefaultFuchsiaResourceDialect,
52660    > {
52661        StreamSocketProxyInterface::r#bind(self, addr)
52662    }
52663
52664    /// Initiates a connection to a remote address.
52665    pub fn r#connect(
52666        &self,
52667        mut addr: &fidl_fuchsia_net::SocketAddress,
52668    ) -> fidl::client::QueryResponseFut<
52669        BaseNetworkSocketConnectResult,
52670        fidl::encoding::DefaultFuchsiaResourceDialect,
52671    > {
52672        StreamSocketProxyInterface::r#connect(self, addr)
52673    }
52674
52675    /// Clears connection information from this socket.
52676    pub fn r#disconnect(
52677        &self,
52678    ) -> fidl::client::QueryResponseFut<
52679        BaseNetworkSocketDisconnectResult,
52680        fidl::encoding::DefaultFuchsiaResourceDialect,
52681    > {
52682        StreamSocketProxyInterface::r#disconnect(self)
52683    }
52684
52685    /// Retrieves the local socket address.
52686    pub fn r#get_sock_name(
52687        &self,
52688    ) -> fidl::client::QueryResponseFut<
52689        BaseNetworkSocketGetSockNameResult,
52690        fidl::encoding::DefaultFuchsiaResourceDialect,
52691    > {
52692        StreamSocketProxyInterface::r#get_sock_name(self)
52693    }
52694
52695    /// Retrieves the remote socket address.
52696    pub fn r#get_peer_name(
52697        &self,
52698    ) -> fidl::client::QueryResponseFut<
52699        BaseNetworkSocketGetPeerNameResult,
52700        fidl::encoding::DefaultFuchsiaResourceDialect,
52701    > {
52702        StreamSocketProxyInterface::r#get_peer_name(self)
52703    }
52704
52705    /// Shuts down part of the socket.
52706    pub fn r#shutdown(
52707        &self,
52708        mut mode: ShutdownMode,
52709    ) -> fidl::client::QueryResponseFut<
52710        BaseNetworkSocketShutdownResult,
52711        fidl::encoding::DefaultFuchsiaResourceDialect,
52712    > {
52713        StreamSocketProxyInterface::r#shutdown(self, mode)
52714    }
52715
52716    /// Set `SOL_IP` -> `IP_TOS`.
52717    pub fn r#set_ip_type_of_service(
52718        &self,
52719        mut value: u8,
52720    ) -> fidl::client::QueryResponseFut<
52721        BaseNetworkSocketSetIpTypeOfServiceResult,
52722        fidl::encoding::DefaultFuchsiaResourceDialect,
52723    > {
52724        StreamSocketProxyInterface::r#set_ip_type_of_service(self, value)
52725    }
52726
52727    /// Get `SOL_IP` -> `IP_TOS`.
52728    pub fn r#get_ip_type_of_service(
52729        &self,
52730    ) -> fidl::client::QueryResponseFut<
52731        BaseNetworkSocketGetIpTypeOfServiceResult,
52732        fidl::encoding::DefaultFuchsiaResourceDialect,
52733    > {
52734        StreamSocketProxyInterface::r#get_ip_type_of_service(self)
52735    }
52736
52737    /// Set `SOL_IP` -> `IP_TTL`.
52738    pub fn r#set_ip_ttl(
52739        &self,
52740        mut value: &OptionalUint8,
52741    ) -> fidl::client::QueryResponseFut<
52742        BaseNetworkSocketSetIpTtlResult,
52743        fidl::encoding::DefaultFuchsiaResourceDialect,
52744    > {
52745        StreamSocketProxyInterface::r#set_ip_ttl(self, value)
52746    }
52747
52748    /// Get `SOL_IP` -> `IP_TTL`.
52749    pub fn r#get_ip_ttl(
52750        &self,
52751    ) -> fidl::client::QueryResponseFut<
52752        BaseNetworkSocketGetIpTtlResult,
52753        fidl::encoding::DefaultFuchsiaResourceDialect,
52754    > {
52755        StreamSocketProxyInterface::r#get_ip_ttl(self)
52756    }
52757
52758    /// Set `SOL_IP` -> `IP_PKTINFO`.
52759    pub fn r#set_ip_packet_info(
52760        &self,
52761        mut value: bool,
52762    ) -> fidl::client::QueryResponseFut<
52763        BaseNetworkSocketSetIpPacketInfoResult,
52764        fidl::encoding::DefaultFuchsiaResourceDialect,
52765    > {
52766        StreamSocketProxyInterface::r#set_ip_packet_info(self, value)
52767    }
52768
52769    /// Get `SOL_IP` -> `IP_PKTINFO`.
52770    pub fn r#get_ip_packet_info(
52771        &self,
52772    ) -> fidl::client::QueryResponseFut<
52773        BaseNetworkSocketGetIpPacketInfoResult,
52774        fidl::encoding::DefaultFuchsiaResourceDialect,
52775    > {
52776        StreamSocketProxyInterface::r#get_ip_packet_info(self)
52777    }
52778
52779    /// Set `SOL_IP` -> `IP_RECVTOS`.
52780    pub fn r#set_ip_receive_type_of_service(
52781        &self,
52782        mut value: bool,
52783    ) -> fidl::client::QueryResponseFut<
52784        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
52785        fidl::encoding::DefaultFuchsiaResourceDialect,
52786    > {
52787        StreamSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
52788    }
52789
52790    /// Get `SOL_IP` -> `IP_RECVTOS`.
52791    pub fn r#get_ip_receive_type_of_service(
52792        &self,
52793    ) -> fidl::client::QueryResponseFut<
52794        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
52795        fidl::encoding::DefaultFuchsiaResourceDialect,
52796    > {
52797        StreamSocketProxyInterface::r#get_ip_receive_type_of_service(self)
52798    }
52799
52800    /// Set `SOL_IP` -> `IP_RECVTTL`.
52801    pub fn r#set_ip_receive_ttl(
52802        &self,
52803        mut value: bool,
52804    ) -> fidl::client::QueryResponseFut<
52805        BaseNetworkSocketSetIpReceiveTtlResult,
52806        fidl::encoding::DefaultFuchsiaResourceDialect,
52807    > {
52808        StreamSocketProxyInterface::r#set_ip_receive_ttl(self, value)
52809    }
52810
52811    /// Get `SOL_IP` -> `IP_RECVTTL`.
52812    pub fn r#get_ip_receive_ttl(
52813        &self,
52814    ) -> fidl::client::QueryResponseFut<
52815        BaseNetworkSocketGetIpReceiveTtlResult,
52816        fidl::encoding::DefaultFuchsiaResourceDialect,
52817    > {
52818        StreamSocketProxyInterface::r#get_ip_receive_ttl(self)
52819    }
52820
52821    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
52822    pub fn r#set_ip_multicast_interface(
52823        &self,
52824        mut iface: u64,
52825        mut address: &fidl_fuchsia_net::Ipv4Address,
52826    ) -> fidl::client::QueryResponseFut<
52827        BaseNetworkSocketSetIpMulticastInterfaceResult,
52828        fidl::encoding::DefaultFuchsiaResourceDialect,
52829    > {
52830        StreamSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
52831    }
52832
52833    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
52834    pub fn r#get_ip_multicast_interface(
52835        &self,
52836    ) -> fidl::client::QueryResponseFut<
52837        BaseNetworkSocketGetIpMulticastInterfaceResult,
52838        fidl::encoding::DefaultFuchsiaResourceDialect,
52839    > {
52840        StreamSocketProxyInterface::r#get_ip_multicast_interface(self)
52841    }
52842
52843    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
52844    pub fn r#set_ip_multicast_ttl(
52845        &self,
52846        mut value: &OptionalUint8,
52847    ) -> fidl::client::QueryResponseFut<
52848        BaseNetworkSocketSetIpMulticastTtlResult,
52849        fidl::encoding::DefaultFuchsiaResourceDialect,
52850    > {
52851        StreamSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
52852    }
52853
52854    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
52855    pub fn r#get_ip_multicast_ttl(
52856        &self,
52857    ) -> fidl::client::QueryResponseFut<
52858        BaseNetworkSocketGetIpMulticastTtlResult,
52859        fidl::encoding::DefaultFuchsiaResourceDialect,
52860    > {
52861        StreamSocketProxyInterface::r#get_ip_multicast_ttl(self)
52862    }
52863
52864    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
52865    pub fn r#set_ip_multicast_loopback(
52866        &self,
52867        mut value: bool,
52868    ) -> fidl::client::QueryResponseFut<
52869        BaseNetworkSocketSetIpMulticastLoopbackResult,
52870        fidl::encoding::DefaultFuchsiaResourceDialect,
52871    > {
52872        StreamSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
52873    }
52874
52875    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
52876    pub fn r#get_ip_multicast_loopback(
52877        &self,
52878    ) -> fidl::client::QueryResponseFut<
52879        BaseNetworkSocketGetIpMulticastLoopbackResult,
52880        fidl::encoding::DefaultFuchsiaResourceDialect,
52881    > {
52882        StreamSocketProxyInterface::r#get_ip_multicast_loopback(self)
52883    }
52884
52885    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
52886    pub fn r#add_ip_membership(
52887        &self,
52888        mut membership: &IpMulticastMembership,
52889    ) -> fidl::client::QueryResponseFut<
52890        BaseNetworkSocketAddIpMembershipResult,
52891        fidl::encoding::DefaultFuchsiaResourceDialect,
52892    > {
52893        StreamSocketProxyInterface::r#add_ip_membership(self, membership)
52894    }
52895
52896    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
52897    pub fn r#drop_ip_membership(
52898        &self,
52899        mut membership: &IpMulticastMembership,
52900    ) -> fidl::client::QueryResponseFut<
52901        BaseNetworkSocketDropIpMembershipResult,
52902        fidl::encoding::DefaultFuchsiaResourceDialect,
52903    > {
52904        StreamSocketProxyInterface::r#drop_ip_membership(self, membership)
52905    }
52906
52907    /// Set `SOL_IP` -> `IP_TRANSPARENT`
52908    pub fn r#set_ip_transparent(
52909        &self,
52910        mut value: bool,
52911    ) -> fidl::client::QueryResponseFut<
52912        BaseNetworkSocketSetIpTransparentResult,
52913        fidl::encoding::DefaultFuchsiaResourceDialect,
52914    > {
52915        StreamSocketProxyInterface::r#set_ip_transparent(self, value)
52916    }
52917
52918    /// Get `SOL_IP` -> `IP_TRANSPARENT`
52919    pub fn r#get_ip_transparent(
52920        &self,
52921    ) -> fidl::client::QueryResponseFut<
52922        BaseNetworkSocketGetIpTransparentResult,
52923        fidl::encoding::DefaultFuchsiaResourceDialect,
52924    > {
52925        StreamSocketProxyInterface::r#get_ip_transparent(self)
52926    }
52927
52928    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
52929    pub fn r#set_ip_receive_original_destination_address(
52930        &self,
52931        mut value: bool,
52932    ) -> fidl::client::QueryResponseFut<
52933        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
52934        fidl::encoding::DefaultFuchsiaResourceDialect,
52935    > {
52936        StreamSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
52937    }
52938
52939    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
52940    pub fn r#get_ip_receive_original_destination_address(
52941        &self,
52942    ) -> fidl::client::QueryResponseFut<
52943        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
52944        fidl::encoding::DefaultFuchsiaResourceDialect,
52945    > {
52946        StreamSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
52947    }
52948
52949    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
52950    pub fn r#add_ipv6_membership(
52951        &self,
52952        mut membership: &Ipv6MulticastMembership,
52953    ) -> fidl::client::QueryResponseFut<
52954        BaseNetworkSocketAddIpv6MembershipResult,
52955        fidl::encoding::DefaultFuchsiaResourceDialect,
52956    > {
52957        StreamSocketProxyInterface::r#add_ipv6_membership(self, membership)
52958    }
52959
52960    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
52961    pub fn r#drop_ipv6_membership(
52962        &self,
52963        mut membership: &Ipv6MulticastMembership,
52964    ) -> fidl::client::QueryResponseFut<
52965        BaseNetworkSocketDropIpv6MembershipResult,
52966        fidl::encoding::DefaultFuchsiaResourceDialect,
52967    > {
52968        StreamSocketProxyInterface::r#drop_ipv6_membership(self, membership)
52969    }
52970
52971    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
52972    pub fn r#set_ipv6_multicast_interface(
52973        &self,
52974        mut value: u64,
52975    ) -> fidl::client::QueryResponseFut<
52976        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
52977        fidl::encoding::DefaultFuchsiaResourceDialect,
52978    > {
52979        StreamSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
52980    }
52981
52982    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
52983    pub fn r#get_ipv6_multicast_interface(
52984        &self,
52985    ) -> fidl::client::QueryResponseFut<
52986        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
52987        fidl::encoding::DefaultFuchsiaResourceDialect,
52988    > {
52989        StreamSocketProxyInterface::r#get_ipv6_multicast_interface(self)
52990    }
52991
52992    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
52993    pub fn r#set_ipv6_unicast_hops(
52994        &self,
52995        mut value: &OptionalUint8,
52996    ) -> fidl::client::QueryResponseFut<
52997        BaseNetworkSocketSetIpv6UnicastHopsResult,
52998        fidl::encoding::DefaultFuchsiaResourceDialect,
52999    > {
53000        StreamSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
53001    }
53002
53003    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
53004    pub fn r#get_ipv6_unicast_hops(
53005        &self,
53006    ) -> fidl::client::QueryResponseFut<
53007        BaseNetworkSocketGetIpv6UnicastHopsResult,
53008        fidl::encoding::DefaultFuchsiaResourceDialect,
53009    > {
53010        StreamSocketProxyInterface::r#get_ipv6_unicast_hops(self)
53011    }
53012
53013    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
53014    pub fn r#set_ipv6_receive_hop_limit(
53015        &self,
53016        mut value: bool,
53017    ) -> fidl::client::QueryResponseFut<
53018        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
53019        fidl::encoding::DefaultFuchsiaResourceDialect,
53020    > {
53021        StreamSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
53022    }
53023
53024    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
53025    pub fn r#get_ipv6_receive_hop_limit(
53026        &self,
53027    ) -> fidl::client::QueryResponseFut<
53028        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
53029        fidl::encoding::DefaultFuchsiaResourceDialect,
53030    > {
53031        StreamSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
53032    }
53033
53034    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
53035    pub fn r#set_ipv6_multicast_hops(
53036        &self,
53037        mut value: &OptionalUint8,
53038    ) -> fidl::client::QueryResponseFut<
53039        BaseNetworkSocketSetIpv6MulticastHopsResult,
53040        fidl::encoding::DefaultFuchsiaResourceDialect,
53041    > {
53042        StreamSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
53043    }
53044
53045    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
53046    pub fn r#get_ipv6_multicast_hops(
53047        &self,
53048    ) -> fidl::client::QueryResponseFut<
53049        BaseNetworkSocketGetIpv6MulticastHopsResult,
53050        fidl::encoding::DefaultFuchsiaResourceDialect,
53051    > {
53052        StreamSocketProxyInterface::r#get_ipv6_multicast_hops(self)
53053    }
53054
53055    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
53056    pub fn r#set_ipv6_multicast_loopback(
53057        &self,
53058        mut value: bool,
53059    ) -> fidl::client::QueryResponseFut<
53060        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
53061        fidl::encoding::DefaultFuchsiaResourceDialect,
53062    > {
53063        StreamSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
53064    }
53065
53066    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
53067    pub fn r#get_ipv6_multicast_loopback(
53068        &self,
53069    ) -> fidl::client::QueryResponseFut<
53070        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
53071        fidl::encoding::DefaultFuchsiaResourceDialect,
53072    > {
53073        StreamSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
53074    }
53075
53076    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
53077    pub fn r#set_ipv6_only(
53078        &self,
53079        mut value: bool,
53080    ) -> fidl::client::QueryResponseFut<
53081        BaseNetworkSocketSetIpv6OnlyResult,
53082        fidl::encoding::DefaultFuchsiaResourceDialect,
53083    > {
53084        StreamSocketProxyInterface::r#set_ipv6_only(self, value)
53085    }
53086
53087    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
53088    pub fn r#get_ipv6_only(
53089        &self,
53090    ) -> fidl::client::QueryResponseFut<
53091        BaseNetworkSocketGetIpv6OnlyResult,
53092        fidl::encoding::DefaultFuchsiaResourceDialect,
53093    > {
53094        StreamSocketProxyInterface::r#get_ipv6_only(self)
53095    }
53096
53097    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
53098    pub fn r#set_ipv6_receive_traffic_class(
53099        &self,
53100        mut value: bool,
53101    ) -> fidl::client::QueryResponseFut<
53102        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
53103        fidl::encoding::DefaultFuchsiaResourceDialect,
53104    > {
53105        StreamSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
53106    }
53107
53108    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
53109    pub fn r#get_ipv6_receive_traffic_class(
53110        &self,
53111    ) -> fidl::client::QueryResponseFut<
53112        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
53113        fidl::encoding::DefaultFuchsiaResourceDialect,
53114    > {
53115        StreamSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
53116    }
53117
53118    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
53119    pub fn r#set_ipv6_traffic_class(
53120        &self,
53121        mut value: &OptionalUint8,
53122    ) -> fidl::client::QueryResponseFut<
53123        BaseNetworkSocketSetIpv6TrafficClassResult,
53124        fidl::encoding::DefaultFuchsiaResourceDialect,
53125    > {
53126        StreamSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
53127    }
53128
53129    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
53130    pub fn r#get_ipv6_traffic_class(
53131        &self,
53132    ) -> fidl::client::QueryResponseFut<
53133        BaseNetworkSocketGetIpv6TrafficClassResult,
53134        fidl::encoding::DefaultFuchsiaResourceDialect,
53135    > {
53136        StreamSocketProxyInterface::r#get_ipv6_traffic_class(self)
53137    }
53138
53139    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
53140    pub fn r#set_ipv6_receive_packet_info(
53141        &self,
53142        mut value: bool,
53143    ) -> fidl::client::QueryResponseFut<
53144        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
53145        fidl::encoding::DefaultFuchsiaResourceDialect,
53146    > {
53147        StreamSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
53148    }
53149
53150    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
53151    pub fn r#get_ipv6_receive_packet_info(
53152        &self,
53153    ) -> fidl::client::QueryResponseFut<
53154        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
53155        fidl::encoding::DefaultFuchsiaResourceDialect,
53156    > {
53157        StreamSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
53158    }
53159
53160    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
53161    pub fn r#get_original_destination(
53162        &self,
53163    ) -> fidl::client::QueryResponseFut<
53164        BaseNetworkSocketGetOriginalDestinationResult,
53165        fidl::encoding::DefaultFuchsiaResourceDialect,
53166    > {
53167        StreamSocketProxyInterface::r#get_original_destination(self)
53168    }
53169
53170    pub fn r#describe(
53171        &self,
53172    ) -> fidl::client::QueryResponseFut<
53173        StreamSocketDescribeResponse,
53174        fidl::encoding::DefaultFuchsiaResourceDialect,
53175    > {
53176        StreamSocketProxyInterface::r#describe(self)
53177    }
53178
53179    /// Begins listening for new incoming connections. At most `backlog`
53180    /// connections will be buffered.
53181    pub fn r#listen(
53182        &self,
53183        mut backlog: i16,
53184    ) -> fidl::client::QueryResponseFut<
53185        StreamSocketListenResult,
53186        fidl::encoding::DefaultFuchsiaResourceDialect,
53187    > {
53188        StreamSocketProxyInterface::r#listen(self, backlog)
53189    }
53190
53191    /// Accepts a buffered incoming connection.
53192    pub fn r#accept(
53193        &self,
53194        mut want_addr: bool,
53195    ) -> fidl::client::QueryResponseFut<
53196        StreamSocketAcceptResult,
53197        fidl::encoding::DefaultFuchsiaResourceDialect,
53198    > {
53199        StreamSocketProxyInterface::r#accept(self, want_addr)
53200    }
53201
53202    /// Retrieves creation information from the socket.
53203    pub fn r#get_info(
53204        &self,
53205    ) -> fidl::client::QueryResponseFut<
53206        StreamSocketGetInfoResult,
53207        fidl::encoding::DefaultFuchsiaResourceDialect,
53208    > {
53209        StreamSocketProxyInterface::r#get_info(self)
53210    }
53211
53212    /// Set `SOL_TCP` -> `TCP_NODELAY`.
53213    pub fn r#set_tcp_no_delay(
53214        &self,
53215        mut value: bool,
53216    ) -> fidl::client::QueryResponseFut<
53217        StreamSocketSetTcpNoDelayResult,
53218        fidl::encoding::DefaultFuchsiaResourceDialect,
53219    > {
53220        StreamSocketProxyInterface::r#set_tcp_no_delay(self, value)
53221    }
53222
53223    /// Get `SOL_TCP` -> `TCP_NODELAY`.
53224    pub fn r#get_tcp_no_delay(
53225        &self,
53226    ) -> fidl::client::QueryResponseFut<
53227        StreamSocketGetTcpNoDelayResult,
53228        fidl::encoding::DefaultFuchsiaResourceDialect,
53229    > {
53230        StreamSocketProxyInterface::r#get_tcp_no_delay(self)
53231    }
53232
53233    /// Set `SOL_TCP` -> `TCP_MAXSEG`.
53234    pub fn r#set_tcp_max_segment(
53235        &self,
53236        mut value_bytes: u32,
53237    ) -> fidl::client::QueryResponseFut<
53238        StreamSocketSetTcpMaxSegmentResult,
53239        fidl::encoding::DefaultFuchsiaResourceDialect,
53240    > {
53241        StreamSocketProxyInterface::r#set_tcp_max_segment(self, value_bytes)
53242    }
53243
53244    /// Get `SOL_TCP` -> `TCP_MAXSEG`.
53245    pub fn r#get_tcp_max_segment(
53246        &self,
53247    ) -> fidl::client::QueryResponseFut<
53248        StreamSocketGetTcpMaxSegmentResult,
53249        fidl::encoding::DefaultFuchsiaResourceDialect,
53250    > {
53251        StreamSocketProxyInterface::r#get_tcp_max_segment(self)
53252    }
53253
53254    /// Set `SOL_TCP` -> `TCP_CORK`.
53255    pub fn r#set_tcp_cork(
53256        &self,
53257        mut value: bool,
53258    ) -> fidl::client::QueryResponseFut<
53259        StreamSocketSetTcpCorkResult,
53260        fidl::encoding::DefaultFuchsiaResourceDialect,
53261    > {
53262        StreamSocketProxyInterface::r#set_tcp_cork(self, value)
53263    }
53264
53265    /// Get `SOL_TCP` -> `TCP_CORK`.
53266    pub fn r#get_tcp_cork(
53267        &self,
53268    ) -> fidl::client::QueryResponseFut<
53269        StreamSocketGetTcpCorkResult,
53270        fidl::encoding::DefaultFuchsiaResourceDialect,
53271    > {
53272        StreamSocketProxyInterface::r#get_tcp_cork(self)
53273    }
53274
53275    /// Set `SOL_TCP` -> `TCP_KEEPIDLE`.
53276    pub fn r#set_tcp_keep_alive_idle(
53277        &self,
53278        mut value_secs: u32,
53279    ) -> fidl::client::QueryResponseFut<
53280        StreamSocketSetTcpKeepAliveIdleResult,
53281        fidl::encoding::DefaultFuchsiaResourceDialect,
53282    > {
53283        StreamSocketProxyInterface::r#set_tcp_keep_alive_idle(self, value_secs)
53284    }
53285
53286    /// Get `SOL_TCP` -> `TCP_KEEPIDLE`.
53287    pub fn r#get_tcp_keep_alive_idle(
53288        &self,
53289    ) -> fidl::client::QueryResponseFut<
53290        StreamSocketGetTcpKeepAliveIdleResult,
53291        fidl::encoding::DefaultFuchsiaResourceDialect,
53292    > {
53293        StreamSocketProxyInterface::r#get_tcp_keep_alive_idle(self)
53294    }
53295
53296    /// Set `SOL_TCP` -> `TCP_KEEPINTVL`.
53297    pub fn r#set_tcp_keep_alive_interval(
53298        &self,
53299        mut value_secs: u32,
53300    ) -> fidl::client::QueryResponseFut<
53301        StreamSocketSetTcpKeepAliveIntervalResult,
53302        fidl::encoding::DefaultFuchsiaResourceDialect,
53303    > {
53304        StreamSocketProxyInterface::r#set_tcp_keep_alive_interval(self, value_secs)
53305    }
53306
53307    /// Get `SOL_TCP` -> `TCP_KEEPINTVL`.
53308    pub fn r#get_tcp_keep_alive_interval(
53309        &self,
53310    ) -> fidl::client::QueryResponseFut<
53311        StreamSocketGetTcpKeepAliveIntervalResult,
53312        fidl::encoding::DefaultFuchsiaResourceDialect,
53313    > {
53314        StreamSocketProxyInterface::r#get_tcp_keep_alive_interval(self)
53315    }
53316
53317    /// Set `SOL_TCP` -> `TCP_KEEPCNT`.
53318    pub fn r#set_tcp_keep_alive_count(
53319        &self,
53320        mut value: u32,
53321    ) -> fidl::client::QueryResponseFut<
53322        StreamSocketSetTcpKeepAliveCountResult,
53323        fidl::encoding::DefaultFuchsiaResourceDialect,
53324    > {
53325        StreamSocketProxyInterface::r#set_tcp_keep_alive_count(self, value)
53326    }
53327
53328    /// Get `SOL_TCP` -> `TCP_KEEPCNT`.
53329    pub fn r#get_tcp_keep_alive_count(
53330        &self,
53331    ) -> fidl::client::QueryResponseFut<
53332        StreamSocketGetTcpKeepAliveCountResult,
53333        fidl::encoding::DefaultFuchsiaResourceDialect,
53334    > {
53335        StreamSocketProxyInterface::r#get_tcp_keep_alive_count(self)
53336    }
53337
53338    /// Set `SOL_TCP` -> `TCP_SYNCNT`.
53339    pub fn r#set_tcp_syn_count(
53340        &self,
53341        mut value: u32,
53342    ) -> fidl::client::QueryResponseFut<
53343        StreamSocketSetTcpSynCountResult,
53344        fidl::encoding::DefaultFuchsiaResourceDialect,
53345    > {
53346        StreamSocketProxyInterface::r#set_tcp_syn_count(self, value)
53347    }
53348
53349    /// Get `SOL_TCP` -> `TCP_SYNCNT`.
53350    pub fn r#get_tcp_syn_count(
53351        &self,
53352    ) -> fidl::client::QueryResponseFut<
53353        StreamSocketGetTcpSynCountResult,
53354        fidl::encoding::DefaultFuchsiaResourceDialect,
53355    > {
53356        StreamSocketProxyInterface::r#get_tcp_syn_count(self)
53357    }
53358
53359    /// Set `SOL_TCP` -> `TCP_LINGER2`.
53360    pub fn r#set_tcp_linger(
53361        &self,
53362        mut value_secs: &OptionalUint32,
53363    ) -> fidl::client::QueryResponseFut<
53364        StreamSocketSetTcpLingerResult,
53365        fidl::encoding::DefaultFuchsiaResourceDialect,
53366    > {
53367        StreamSocketProxyInterface::r#set_tcp_linger(self, value_secs)
53368    }
53369
53370    /// Get `SOL_TCP` -> `TCP_LINGER2`.
53371    pub fn r#get_tcp_linger(
53372        &self,
53373    ) -> fidl::client::QueryResponseFut<
53374        StreamSocketGetTcpLingerResult,
53375        fidl::encoding::DefaultFuchsiaResourceDialect,
53376    > {
53377        StreamSocketProxyInterface::r#get_tcp_linger(self)
53378    }
53379
53380    /// Set `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
53381    pub fn r#set_tcp_defer_accept(
53382        &self,
53383        mut value_secs: u32,
53384    ) -> fidl::client::QueryResponseFut<
53385        StreamSocketSetTcpDeferAcceptResult,
53386        fidl::encoding::DefaultFuchsiaResourceDialect,
53387    > {
53388        StreamSocketProxyInterface::r#set_tcp_defer_accept(self, value_secs)
53389    }
53390
53391    /// Get `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
53392    pub fn r#get_tcp_defer_accept(
53393        &self,
53394    ) -> fidl::client::QueryResponseFut<
53395        StreamSocketGetTcpDeferAcceptResult,
53396        fidl::encoding::DefaultFuchsiaResourceDialect,
53397    > {
53398        StreamSocketProxyInterface::r#get_tcp_defer_accept(self)
53399    }
53400
53401    /// Set `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
53402    pub fn r#set_tcp_window_clamp(
53403        &self,
53404        mut value: u32,
53405    ) -> fidl::client::QueryResponseFut<
53406        StreamSocketSetTcpWindowClampResult,
53407        fidl::encoding::DefaultFuchsiaResourceDialect,
53408    > {
53409        StreamSocketProxyInterface::r#set_tcp_window_clamp(self, value)
53410    }
53411
53412    /// Get `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
53413    pub fn r#get_tcp_window_clamp(
53414        &self,
53415    ) -> fidl::client::QueryResponseFut<
53416        StreamSocketGetTcpWindowClampResult,
53417        fidl::encoding::DefaultFuchsiaResourceDialect,
53418    > {
53419        StreamSocketProxyInterface::r#get_tcp_window_clamp(self)
53420    }
53421
53422    /// Get `SOL_TCP` -> `TCP_INFO`.
53423    pub fn r#get_tcp_info(
53424        &self,
53425    ) -> fidl::client::QueryResponseFut<
53426        StreamSocketGetTcpInfoResult,
53427        fidl::encoding::DefaultFuchsiaResourceDialect,
53428    > {
53429        StreamSocketProxyInterface::r#get_tcp_info(self)
53430    }
53431
53432    /// Set `SOL_TCP` -> `TCP_QUICKACK`.
53433    pub fn r#set_tcp_quick_ack(
53434        &self,
53435        mut value: bool,
53436    ) -> fidl::client::QueryResponseFut<
53437        StreamSocketSetTcpQuickAckResult,
53438        fidl::encoding::DefaultFuchsiaResourceDialect,
53439    > {
53440        StreamSocketProxyInterface::r#set_tcp_quick_ack(self, value)
53441    }
53442
53443    /// Get `SOL_TCP` -> `TCP_QUICKACK`.
53444    pub fn r#get_tcp_quick_ack(
53445        &self,
53446    ) -> fidl::client::QueryResponseFut<
53447        StreamSocketGetTcpQuickAckResult,
53448        fidl::encoding::DefaultFuchsiaResourceDialect,
53449    > {
53450        StreamSocketProxyInterface::r#get_tcp_quick_ack(self)
53451    }
53452
53453    /// Set `SOL_TCP` -> `TCP_CONGESTION`.
53454    pub fn r#set_tcp_congestion(
53455        &self,
53456        mut value: TcpCongestionControl,
53457    ) -> fidl::client::QueryResponseFut<
53458        StreamSocketSetTcpCongestionResult,
53459        fidl::encoding::DefaultFuchsiaResourceDialect,
53460    > {
53461        StreamSocketProxyInterface::r#set_tcp_congestion(self, value)
53462    }
53463
53464    /// Get `SOL_TCP` -> `TCP_CONGESTION`.
53465    pub fn r#get_tcp_congestion(
53466        &self,
53467    ) -> fidl::client::QueryResponseFut<
53468        StreamSocketGetTcpCongestionResult,
53469        fidl::encoding::DefaultFuchsiaResourceDialect,
53470    > {
53471        StreamSocketProxyInterface::r#get_tcp_congestion(self)
53472    }
53473
53474    /// Set `SOL_TCP` -> `TCP_USER_TIMEOUT`.
53475    pub fn r#set_tcp_user_timeout(
53476        &self,
53477        mut value_millis: u32,
53478    ) -> fidl::client::QueryResponseFut<
53479        StreamSocketSetTcpUserTimeoutResult,
53480        fidl::encoding::DefaultFuchsiaResourceDialect,
53481    > {
53482        StreamSocketProxyInterface::r#set_tcp_user_timeout(self, value_millis)
53483    }
53484
53485    /// Get `SOL_TCP` -> `TCP_USER_TIMEOUT`.
53486    pub fn r#get_tcp_user_timeout(
53487        &self,
53488    ) -> fidl::client::QueryResponseFut<
53489        StreamSocketGetTcpUserTimeoutResult,
53490        fidl::encoding::DefaultFuchsiaResourceDialect,
53491    > {
53492        StreamSocketProxyInterface::r#get_tcp_user_timeout(self)
53493    }
53494}
53495
53496impl StreamSocketProxyInterface for StreamSocketProxy {
53497    fn r#clone(
53498        &self,
53499        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
53500    ) -> Result<(), fidl::Error> {
53501        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
53502            (request,),
53503            0x20d8a7aba2168a79,
53504            fidl::encoding::DynamicFlags::empty(),
53505        )
53506    }
53507
53508    type CloseResponseFut = fidl::client::QueryResponseFut<
53509        fidl_fuchsia_unknown::CloseableCloseResult,
53510        fidl::encoding::DefaultFuchsiaResourceDialect,
53511    >;
53512    fn r#close(&self) -> Self::CloseResponseFut {
53513        fn _decode(
53514            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53515        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
53516            let _response = fidl::client::decode_transaction_body::<
53517                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
53518                fidl::encoding::DefaultFuchsiaResourceDialect,
53519                0x5ac5d459ad7f657e,
53520            >(_buf?)?;
53521            Ok(_response.map(|x| x))
53522        }
53523        self.client.send_query_and_decode::<
53524            fidl::encoding::EmptyPayload,
53525            fidl_fuchsia_unknown::CloseableCloseResult,
53526        >(
53527            (),
53528            0x5ac5d459ad7f657e,
53529            fidl::encoding::DynamicFlags::empty(),
53530            _decode,
53531        )
53532    }
53533
53534    type QueryResponseFut =
53535        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
53536    fn r#query(&self) -> Self::QueryResponseFut {
53537        fn _decode(
53538            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53539        ) -> Result<Vec<u8>, fidl::Error> {
53540            let _response = fidl::client::decode_transaction_body::<
53541                fidl_fuchsia_unknown::QueryableQueryResponse,
53542                fidl::encoding::DefaultFuchsiaResourceDialect,
53543                0x2658edee9decfc06,
53544            >(_buf?)?;
53545            Ok(_response.protocol)
53546        }
53547        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
53548            (),
53549            0x2658edee9decfc06,
53550            fidl::encoding::DynamicFlags::empty(),
53551            _decode,
53552        )
53553    }
53554
53555    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
53556        BaseSocketSetReuseAddressResult,
53557        fidl::encoding::DefaultFuchsiaResourceDialect,
53558    >;
53559    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
53560        fn _decode(
53561            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53562        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
53563            let _response = fidl::client::decode_transaction_body::<
53564                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53565                fidl::encoding::DefaultFuchsiaResourceDialect,
53566                0x1fd74ee8b9a4a876,
53567            >(_buf?)?;
53568            Ok(_response.map(|x| x))
53569        }
53570        self.client.send_query_and_decode::<
53571            BaseSocketSetReuseAddressRequest,
53572            BaseSocketSetReuseAddressResult,
53573        >(
53574            (value,),
53575            0x1fd74ee8b9a4a876,
53576            fidl::encoding::DynamicFlags::empty(),
53577            _decode,
53578        )
53579    }
53580
53581    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
53582        BaseSocketGetReuseAddressResult,
53583        fidl::encoding::DefaultFuchsiaResourceDialect,
53584    >;
53585    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
53586        fn _decode(
53587            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53588        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
53589            let _response = fidl::client::decode_transaction_body::<
53590                fidl::encoding::ResultType<
53591                    BaseSocketGetReuseAddressResponse,
53592                    fidl_fuchsia_posix::Errno,
53593                >,
53594                fidl::encoding::DefaultFuchsiaResourceDialect,
53595                0x67b7206b8d1bc0a5,
53596            >(_buf?)?;
53597            Ok(_response.map(|x| x.value))
53598        }
53599        self.client
53600            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
53601                (),
53602                0x67b7206b8d1bc0a5,
53603                fidl::encoding::DynamicFlags::empty(),
53604                _decode,
53605            )
53606    }
53607
53608    type GetErrorResponseFut = fidl::client::QueryResponseFut<
53609        BaseSocketGetErrorResult,
53610        fidl::encoding::DefaultFuchsiaResourceDialect,
53611    >;
53612    fn r#get_error(&self) -> Self::GetErrorResponseFut {
53613        fn _decode(
53614            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53615        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
53616            let _response = fidl::client::decode_transaction_body::<
53617                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53618                fidl::encoding::DefaultFuchsiaResourceDialect,
53619                0x5aad39b33e5f6ebb,
53620            >(_buf?)?;
53621            Ok(_response.map(|x| x))
53622        }
53623        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
53624            (),
53625            0x5aad39b33e5f6ebb,
53626            fidl::encoding::DynamicFlags::empty(),
53627            _decode,
53628        )
53629    }
53630
53631    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
53632        BaseSocketSetBroadcastResult,
53633        fidl::encoding::DefaultFuchsiaResourceDialect,
53634    >;
53635    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
53636        fn _decode(
53637            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53638        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
53639            let _response = fidl::client::decode_transaction_body::<
53640                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53641                fidl::encoding::DefaultFuchsiaResourceDialect,
53642                0x6023e081ce3cd947,
53643            >(_buf?)?;
53644            Ok(_response.map(|x| x))
53645        }
53646        self.client
53647            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
53648                (value,),
53649                0x6023e081ce3cd947,
53650                fidl::encoding::DynamicFlags::empty(),
53651                _decode,
53652            )
53653    }
53654
53655    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
53656        BaseSocketGetBroadcastResult,
53657        fidl::encoding::DefaultFuchsiaResourceDialect,
53658    >;
53659    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
53660        fn _decode(
53661            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53662        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
53663            let _response = fidl::client::decode_transaction_body::<
53664                fidl::encoding::ResultType<
53665                    BaseSocketGetBroadcastResponse,
53666                    fidl_fuchsia_posix::Errno,
53667                >,
53668                fidl::encoding::DefaultFuchsiaResourceDialect,
53669                0x68796fc556f9780d,
53670            >(_buf?)?;
53671            Ok(_response.map(|x| x.value))
53672        }
53673        self.client
53674            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
53675                (),
53676                0x68796fc556f9780d,
53677                fidl::encoding::DynamicFlags::empty(),
53678                _decode,
53679            )
53680    }
53681
53682    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
53683        BaseSocketSetSendBufferResult,
53684        fidl::encoding::DefaultFuchsiaResourceDialect,
53685    >;
53686    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
53687        fn _decode(
53688            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53689        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
53690            let _response = fidl::client::decode_transaction_body::<
53691                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53692                fidl::encoding::DefaultFuchsiaResourceDialect,
53693                0x756eac32d73a7a70,
53694            >(_buf?)?;
53695            Ok(_response.map(|x| x))
53696        }
53697        self.client
53698            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
53699                (value_bytes,),
53700                0x756eac32d73a7a70,
53701                fidl::encoding::DynamicFlags::empty(),
53702                _decode,
53703            )
53704    }
53705
53706    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
53707        BaseSocketGetSendBufferResult,
53708        fidl::encoding::DefaultFuchsiaResourceDialect,
53709    >;
53710    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
53711        fn _decode(
53712            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53713        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
53714            let _response = fidl::client::decode_transaction_body::<
53715                fidl::encoding::ResultType<
53716                    BaseSocketGetSendBufferResponse,
53717                    fidl_fuchsia_posix::Errno,
53718                >,
53719                fidl::encoding::DefaultFuchsiaResourceDialect,
53720                0x78a52fd9c7b2410b,
53721            >(_buf?)?;
53722            Ok(_response.map(|x| x.value_bytes))
53723        }
53724        self.client
53725            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
53726                (),
53727                0x78a52fd9c7b2410b,
53728                fidl::encoding::DynamicFlags::empty(),
53729                _decode,
53730            )
53731    }
53732
53733    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
53734        BaseSocketSetReceiveBufferResult,
53735        fidl::encoding::DefaultFuchsiaResourceDialect,
53736    >;
53737    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
53738        fn _decode(
53739            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53740        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
53741            let _response = fidl::client::decode_transaction_body::<
53742                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53743                fidl::encoding::DefaultFuchsiaResourceDialect,
53744                0x6b0cf2f1919c7001,
53745            >(_buf?)?;
53746            Ok(_response.map(|x| x))
53747        }
53748        self.client.send_query_and_decode::<
53749            BaseSocketSetReceiveBufferRequest,
53750            BaseSocketSetReceiveBufferResult,
53751        >(
53752            (value_bytes,),
53753            0x6b0cf2f1919c7001,
53754            fidl::encoding::DynamicFlags::empty(),
53755            _decode,
53756        )
53757    }
53758
53759    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
53760        BaseSocketGetReceiveBufferResult,
53761        fidl::encoding::DefaultFuchsiaResourceDialect,
53762    >;
53763    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
53764        fn _decode(
53765            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53766        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
53767            let _response = fidl::client::decode_transaction_body::<
53768                fidl::encoding::ResultType<
53769                    BaseSocketGetReceiveBufferResponse,
53770                    fidl_fuchsia_posix::Errno,
53771                >,
53772                fidl::encoding::DefaultFuchsiaResourceDialect,
53773                0x14c1a4b64f709e5c,
53774            >(_buf?)?;
53775            Ok(_response.map(|x| x.value_bytes))
53776        }
53777        self.client.send_query_and_decode::<
53778            fidl::encoding::EmptyPayload,
53779            BaseSocketGetReceiveBufferResult,
53780        >(
53781            (),
53782            0x14c1a4b64f709e5c,
53783            fidl::encoding::DynamicFlags::empty(),
53784            _decode,
53785        )
53786    }
53787
53788    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
53789        BaseSocketSetKeepAliveResult,
53790        fidl::encoding::DefaultFuchsiaResourceDialect,
53791    >;
53792    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
53793        fn _decode(
53794            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53795        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
53796            let _response = fidl::client::decode_transaction_body::<
53797                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53798                fidl::encoding::DefaultFuchsiaResourceDialect,
53799                0x572df8f0b920d2c7,
53800            >(_buf?)?;
53801            Ok(_response.map(|x| x))
53802        }
53803        self.client
53804            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
53805                (value,),
53806                0x572df8f0b920d2c7,
53807                fidl::encoding::DynamicFlags::empty(),
53808                _decode,
53809            )
53810    }
53811
53812    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
53813        BaseSocketGetKeepAliveResult,
53814        fidl::encoding::DefaultFuchsiaResourceDialect,
53815    >;
53816    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
53817        fn _decode(
53818            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53819        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
53820            let _response = fidl::client::decode_transaction_body::<
53821                fidl::encoding::ResultType<
53822                    BaseSocketGetKeepAliveResponse,
53823                    fidl_fuchsia_posix::Errno,
53824                >,
53825                fidl::encoding::DefaultFuchsiaResourceDialect,
53826                0x2dd29d3215f2c9d2,
53827            >(_buf?)?;
53828            Ok(_response.map(|x| x.value))
53829        }
53830        self.client
53831            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
53832                (),
53833                0x2dd29d3215f2c9d2,
53834                fidl::encoding::DynamicFlags::empty(),
53835                _decode,
53836            )
53837    }
53838
53839    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
53840        BaseSocketSetOutOfBandInlineResult,
53841        fidl::encoding::DefaultFuchsiaResourceDialect,
53842    >;
53843    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
53844        fn _decode(
53845            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53846        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
53847            let _response = fidl::client::decode_transaction_body::<
53848                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53849                fidl::encoding::DefaultFuchsiaResourceDialect,
53850                0x3ecb49968bee439,
53851            >(_buf?)?;
53852            Ok(_response.map(|x| x))
53853        }
53854        self.client.send_query_and_decode::<
53855            BaseSocketSetOutOfBandInlineRequest,
53856            BaseSocketSetOutOfBandInlineResult,
53857        >(
53858            (value,),
53859            0x3ecb49968bee439,
53860            fidl::encoding::DynamicFlags::empty(),
53861            _decode,
53862        )
53863    }
53864
53865    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
53866        BaseSocketGetOutOfBandInlineResult,
53867        fidl::encoding::DefaultFuchsiaResourceDialect,
53868    >;
53869    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
53870        fn _decode(
53871            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53872        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
53873            let _response = fidl::client::decode_transaction_body::<
53874                fidl::encoding::ResultType<
53875                    BaseSocketGetOutOfBandInlineResponse,
53876                    fidl_fuchsia_posix::Errno,
53877                >,
53878                fidl::encoding::DefaultFuchsiaResourceDialect,
53879                0x348c1ab3aeca1745,
53880            >(_buf?)?;
53881            Ok(_response.map(|x| x.value))
53882        }
53883        self.client.send_query_and_decode::<
53884            fidl::encoding::EmptyPayload,
53885            BaseSocketGetOutOfBandInlineResult,
53886        >(
53887            (),
53888            0x348c1ab3aeca1745,
53889            fidl::encoding::DynamicFlags::empty(),
53890            _decode,
53891        )
53892    }
53893
53894    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
53895        BaseSocketSetNoCheckResult,
53896        fidl::encoding::DefaultFuchsiaResourceDialect,
53897    >;
53898    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
53899        fn _decode(
53900            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53901        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
53902            let _response = fidl::client::decode_transaction_body::<
53903                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53904                fidl::encoding::DefaultFuchsiaResourceDialect,
53905                0x6bbf00c53a4c78c2,
53906            >(_buf?)?;
53907            Ok(_response.map(|x| x))
53908        }
53909        self.client
53910            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
53911                (value,),
53912                0x6bbf00c53a4c78c2,
53913                fidl::encoding::DynamicFlags::empty(),
53914                _decode,
53915            )
53916    }
53917
53918    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
53919        BaseSocketGetNoCheckResult,
53920        fidl::encoding::DefaultFuchsiaResourceDialect,
53921    >;
53922    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
53923        fn _decode(
53924            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53925        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
53926            let _response = fidl::client::decode_transaction_body::<
53927                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
53928                fidl::encoding::DefaultFuchsiaResourceDialect,
53929                0x2cd4249286417694,
53930            >(_buf?)?;
53931            Ok(_response.map(|x| x.value))
53932        }
53933        self.client
53934            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
53935                (),
53936                0x2cd4249286417694,
53937                fidl::encoding::DynamicFlags::empty(),
53938                _decode,
53939            )
53940    }
53941
53942    type SetLingerResponseFut = fidl::client::QueryResponseFut<
53943        BaseSocketSetLingerResult,
53944        fidl::encoding::DefaultFuchsiaResourceDialect,
53945    >;
53946    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
53947        fn _decode(
53948            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53949        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
53950            let _response = fidl::client::decode_transaction_body::<
53951                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53952                fidl::encoding::DefaultFuchsiaResourceDialect,
53953                0x45386351246e998e,
53954            >(_buf?)?;
53955            Ok(_response.map(|x| x))
53956        }
53957        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
53958            (linger, length_secs),
53959            0x45386351246e998e,
53960            fidl::encoding::DynamicFlags::empty(),
53961            _decode,
53962        )
53963    }
53964
53965    type GetLingerResponseFut = fidl::client::QueryResponseFut<
53966        BaseSocketGetLingerResult,
53967        fidl::encoding::DefaultFuchsiaResourceDialect,
53968    >;
53969    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
53970        fn _decode(
53971            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53972        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
53973            let _response = fidl::client::decode_transaction_body::<
53974                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
53975                fidl::encoding::DefaultFuchsiaResourceDialect,
53976                0x48eb20fc5ccb0e45,
53977            >(_buf?)?;
53978            Ok(_response.map(|x| (x.linger, x.length_secs)))
53979        }
53980        self.client
53981            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
53982                (),
53983                0x48eb20fc5ccb0e45,
53984                fidl::encoding::DynamicFlags::empty(),
53985                _decode,
53986            )
53987    }
53988
53989    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
53990        BaseSocketSetReusePortResult,
53991        fidl::encoding::DefaultFuchsiaResourceDialect,
53992    >;
53993    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
53994        fn _decode(
53995            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53996        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
53997            let _response = fidl::client::decode_transaction_body::<
53998                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53999                fidl::encoding::DefaultFuchsiaResourceDialect,
54000                0x24dd3e5cb36d9ccb,
54001            >(_buf?)?;
54002            Ok(_response.map(|x| x))
54003        }
54004        self.client
54005            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
54006                (value,),
54007                0x24dd3e5cb36d9ccb,
54008                fidl::encoding::DynamicFlags::empty(),
54009                _decode,
54010            )
54011    }
54012
54013    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
54014        BaseSocketGetReusePortResult,
54015        fidl::encoding::DefaultFuchsiaResourceDialect,
54016    >;
54017    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
54018        fn _decode(
54019            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54020        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
54021            let _response = fidl::client::decode_transaction_body::<
54022                fidl::encoding::ResultType<
54023                    BaseSocketGetReusePortResponse,
54024                    fidl_fuchsia_posix::Errno,
54025                >,
54026                fidl::encoding::DefaultFuchsiaResourceDialect,
54027                0x7a112c1ab54ff828,
54028            >(_buf?)?;
54029            Ok(_response.map(|x| x.value))
54030        }
54031        self.client
54032            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
54033                (),
54034                0x7a112c1ab54ff828,
54035                fidl::encoding::DynamicFlags::empty(),
54036                _decode,
54037            )
54038    }
54039
54040    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
54041        BaseSocketGetAcceptConnResult,
54042        fidl::encoding::DefaultFuchsiaResourceDialect,
54043    >;
54044    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
54045        fn _decode(
54046            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54047        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
54048            let _response = fidl::client::decode_transaction_body::<
54049                fidl::encoding::ResultType<
54050                    BaseSocketGetAcceptConnResponse,
54051                    fidl_fuchsia_posix::Errno,
54052                >,
54053                fidl::encoding::DefaultFuchsiaResourceDialect,
54054                0x67ce6db6c2ec8966,
54055            >(_buf?)?;
54056            Ok(_response.map(|x| x.value))
54057        }
54058        self.client
54059            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
54060                (),
54061                0x67ce6db6c2ec8966,
54062                fidl::encoding::DynamicFlags::empty(),
54063                _decode,
54064            )
54065    }
54066
54067    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
54068        BaseSocketSetBindToDeviceResult,
54069        fidl::encoding::DefaultFuchsiaResourceDialect,
54070    >;
54071    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
54072        fn _decode(
54073            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54074        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
54075            let _response = fidl::client::decode_transaction_body::<
54076                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54077                fidl::encoding::DefaultFuchsiaResourceDialect,
54078                0x2118b483f28aafc4,
54079            >(_buf?)?;
54080            Ok(_response.map(|x| x))
54081        }
54082        self.client.send_query_and_decode::<
54083            BaseSocketSetBindToDeviceRequest,
54084            BaseSocketSetBindToDeviceResult,
54085        >(
54086            (value,),
54087            0x2118b483f28aafc4,
54088            fidl::encoding::DynamicFlags::empty(),
54089            _decode,
54090        )
54091    }
54092
54093    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
54094        BaseSocketGetBindToDeviceResult,
54095        fidl::encoding::DefaultFuchsiaResourceDialect,
54096    >;
54097    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
54098        fn _decode(
54099            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54100        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
54101            let _response = fidl::client::decode_transaction_body::<
54102                fidl::encoding::ResultType<
54103                    BaseSocketGetBindToDeviceResponse,
54104                    fidl_fuchsia_posix::Errno,
54105                >,
54106                fidl::encoding::DefaultFuchsiaResourceDialect,
54107                0x1ab1fbf0ef7906c8,
54108            >(_buf?)?;
54109            Ok(_response.map(|x| x.value))
54110        }
54111        self.client
54112            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
54113                (),
54114                0x1ab1fbf0ef7906c8,
54115                fidl::encoding::DynamicFlags::empty(),
54116                _decode,
54117            )
54118    }
54119
54120    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
54121        BaseSocketSetBindToInterfaceIndexResult,
54122        fidl::encoding::DefaultFuchsiaResourceDialect,
54123    >;
54124    fn r#set_bind_to_interface_index(
54125        &self,
54126        mut value: u64,
54127    ) -> Self::SetBindToInterfaceIndexResponseFut {
54128        fn _decode(
54129            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54130        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
54131            let _response = fidl::client::decode_transaction_body::<
54132                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54133                fidl::encoding::DefaultFuchsiaResourceDialect,
54134                0x6e387a0def00821,
54135            >(_buf?)?;
54136            Ok(_response.map(|x| x))
54137        }
54138        self.client.send_query_and_decode::<
54139            BaseSocketSetBindToInterfaceIndexRequest,
54140            BaseSocketSetBindToInterfaceIndexResult,
54141        >(
54142            (value,),
54143            0x6e387a0def00821,
54144            fidl::encoding::DynamicFlags::empty(),
54145            _decode,
54146        )
54147    }
54148
54149    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
54150        BaseSocketGetBindToInterfaceIndexResult,
54151        fidl::encoding::DefaultFuchsiaResourceDialect,
54152    >;
54153    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
54154        fn _decode(
54155            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54156        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
54157            let _response = fidl::client::decode_transaction_body::<
54158                fidl::encoding::ResultType<
54159                    BaseSocketGetBindToInterfaceIndexResponse,
54160                    fidl_fuchsia_posix::Errno,
54161                >,
54162                fidl::encoding::DefaultFuchsiaResourceDialect,
54163                0x59c31dd3e3078295,
54164            >(_buf?)?;
54165            Ok(_response.map(|x| x.value))
54166        }
54167        self.client.send_query_and_decode::<
54168            fidl::encoding::EmptyPayload,
54169            BaseSocketGetBindToInterfaceIndexResult,
54170        >(
54171            (),
54172            0x59c31dd3e3078295,
54173            fidl::encoding::DynamicFlags::empty(),
54174            _decode,
54175        )
54176    }
54177
54178    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
54179        BaseSocketSetTimestampResult,
54180        fidl::encoding::DefaultFuchsiaResourceDialect,
54181    >;
54182    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
54183        fn _decode(
54184            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54185        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
54186            let _response = fidl::client::decode_transaction_body::<
54187                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54188                fidl::encoding::DefaultFuchsiaResourceDialect,
54189                0x285d6516c263d839,
54190            >(_buf?)?;
54191            Ok(_response.map(|x| x))
54192        }
54193        self.client
54194            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
54195                (value,),
54196                0x285d6516c263d839,
54197                fidl::encoding::DynamicFlags::empty(),
54198                _decode,
54199            )
54200    }
54201
54202    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
54203        BaseSocketGetTimestampResult,
54204        fidl::encoding::DefaultFuchsiaResourceDialect,
54205    >;
54206    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
54207        fn _decode(
54208            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54209        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
54210            let _response = fidl::client::decode_transaction_body::<
54211                fidl::encoding::ResultType<
54212                    BaseSocketGetTimestampResponse,
54213                    fidl_fuchsia_posix::Errno,
54214                >,
54215                fidl::encoding::DefaultFuchsiaResourceDialect,
54216                0x49f2fffbbcc2bd27,
54217            >(_buf?)?;
54218            Ok(_response.map(|x| x.value))
54219        }
54220        self.client
54221            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
54222                (),
54223                0x49f2fffbbcc2bd27,
54224                fidl::encoding::DynamicFlags::empty(),
54225                _decode,
54226            )
54227    }
54228
54229    type SetMarkResponseFut = fidl::client::QueryResponseFut<
54230        BaseSocketSetMarkResult,
54231        fidl::encoding::DefaultFuchsiaResourceDialect,
54232    >;
54233    fn r#set_mark(
54234        &self,
54235        mut domain: fidl_fuchsia_net::MarkDomain,
54236        mut mark: &OptionalUint32,
54237    ) -> Self::SetMarkResponseFut {
54238        fn _decode(
54239            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54240        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
54241            let _response = fidl::client::decode_transaction_body::<
54242                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54243                fidl::encoding::DefaultFuchsiaResourceDialect,
54244                0x6ead6de09f653236,
54245            >(_buf?)?;
54246            Ok(_response.map(|x| x))
54247        }
54248        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
54249            (domain, mark),
54250            0x6ead6de09f653236,
54251            fidl::encoding::DynamicFlags::empty(),
54252            _decode,
54253        )
54254    }
54255
54256    type GetMarkResponseFut = fidl::client::QueryResponseFut<
54257        BaseSocketGetMarkResult,
54258        fidl::encoding::DefaultFuchsiaResourceDialect,
54259    >;
54260    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
54261        fn _decode(
54262            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54263        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
54264            let _response = fidl::client::decode_transaction_body::<
54265                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
54266                fidl::encoding::DefaultFuchsiaResourceDialect,
54267                0x57a2752c61d93d47,
54268            >(_buf?)?;
54269            Ok(_response.map(|x| x.mark))
54270        }
54271        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
54272            (domain,),
54273            0x57a2752c61d93d47,
54274            fidl::encoding::DynamicFlags::empty(),
54275            _decode,
54276        )
54277    }
54278
54279    type GetCookieResponseFut = fidl::client::QueryResponseFut<
54280        BaseSocketGetCookieResult,
54281        fidl::encoding::DefaultFuchsiaResourceDialect,
54282    >;
54283    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
54284        fn _decode(
54285            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54286        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
54287            let _response = fidl::client::decode_transaction_body::<
54288                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
54289                fidl::encoding::DefaultFuchsiaResourceDialect,
54290                0x2c2f47fd8f924e52,
54291            >(_buf?)?;
54292            Ok(_response.map(|x| x.value))
54293        }
54294        self.client
54295            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
54296                (),
54297                0x2c2f47fd8f924e52,
54298                fidl::encoding::DynamicFlags::empty(),
54299                _decode,
54300            )
54301    }
54302
54303    type BindResponseFut = fidl::client::QueryResponseFut<
54304        BaseNetworkSocketBindResult,
54305        fidl::encoding::DefaultFuchsiaResourceDialect,
54306    >;
54307    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
54308        fn _decode(
54309            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54310        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
54311            let _response = fidl::client::decode_transaction_body::<
54312                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54313                fidl::encoding::DefaultFuchsiaResourceDialect,
54314                0x4bc6400ae92125d,
54315            >(_buf?)?;
54316            Ok(_response.map(|x| x))
54317        }
54318        self.client
54319            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
54320                (addr,),
54321                0x4bc6400ae92125d,
54322                fidl::encoding::DynamicFlags::empty(),
54323                _decode,
54324            )
54325    }
54326
54327    type ConnectResponseFut = fidl::client::QueryResponseFut<
54328        BaseNetworkSocketConnectResult,
54329        fidl::encoding::DefaultFuchsiaResourceDialect,
54330    >;
54331    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
54332        fn _decode(
54333            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54334        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
54335            let _response = fidl::client::decode_transaction_body::<
54336                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54337                fidl::encoding::DefaultFuchsiaResourceDialect,
54338                0x5f05f19bfdd38871,
54339            >(_buf?)?;
54340            Ok(_response.map(|x| x))
54341        }
54342        self.client.send_query_and_decode::<
54343            BaseNetworkSocketConnectRequest,
54344            BaseNetworkSocketConnectResult,
54345        >(
54346            (addr,),
54347            0x5f05f19bfdd38871,
54348            fidl::encoding::DynamicFlags::empty(),
54349            _decode,
54350        )
54351    }
54352
54353    type DisconnectResponseFut = fidl::client::QueryResponseFut<
54354        BaseNetworkSocketDisconnectResult,
54355        fidl::encoding::DefaultFuchsiaResourceDialect,
54356    >;
54357    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
54358        fn _decode(
54359            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54360        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
54361            let _response = fidl::client::decode_transaction_body::<
54362                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54363                fidl::encoding::DefaultFuchsiaResourceDialect,
54364                0x74e63b91f7b29b2,
54365            >(_buf?)?;
54366            Ok(_response.map(|x| x))
54367        }
54368        self.client.send_query_and_decode::<
54369            fidl::encoding::EmptyPayload,
54370            BaseNetworkSocketDisconnectResult,
54371        >(
54372            (),
54373            0x74e63b91f7b29b2,
54374            fidl::encoding::DynamicFlags::empty(),
54375            _decode,
54376        )
54377    }
54378
54379    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
54380        BaseNetworkSocketGetSockNameResult,
54381        fidl::encoding::DefaultFuchsiaResourceDialect,
54382    >;
54383    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
54384        fn _decode(
54385            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54386        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
54387            let _response = fidl::client::decode_transaction_body::<
54388                fidl::encoding::ResultType<
54389                    BaseNetworkSocketGetSockNameResponse,
54390                    fidl_fuchsia_posix::Errno,
54391                >,
54392                fidl::encoding::DefaultFuchsiaResourceDialect,
54393                0x475f23f84a1a4f85,
54394            >(_buf?)?;
54395            Ok(_response.map(|x| x.addr))
54396        }
54397        self.client.send_query_and_decode::<
54398            fidl::encoding::EmptyPayload,
54399            BaseNetworkSocketGetSockNameResult,
54400        >(
54401            (),
54402            0x475f23f84a1a4f85,
54403            fidl::encoding::DynamicFlags::empty(),
54404            _decode,
54405        )
54406    }
54407
54408    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
54409        BaseNetworkSocketGetPeerNameResult,
54410        fidl::encoding::DefaultFuchsiaResourceDialect,
54411    >;
54412    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
54413        fn _decode(
54414            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54415        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
54416            let _response = fidl::client::decode_transaction_body::<
54417                fidl::encoding::ResultType<
54418                    BaseNetworkSocketGetPeerNameResponse,
54419                    fidl_fuchsia_posix::Errno,
54420                >,
54421                fidl::encoding::DefaultFuchsiaResourceDialect,
54422                0x1ffecf4bd5b6432e,
54423            >(_buf?)?;
54424            Ok(_response.map(|x| x.addr))
54425        }
54426        self.client.send_query_and_decode::<
54427            fidl::encoding::EmptyPayload,
54428            BaseNetworkSocketGetPeerNameResult,
54429        >(
54430            (),
54431            0x1ffecf4bd5b6432e,
54432            fidl::encoding::DynamicFlags::empty(),
54433            _decode,
54434        )
54435    }
54436
54437    type ShutdownResponseFut = fidl::client::QueryResponseFut<
54438        BaseNetworkSocketShutdownResult,
54439        fidl::encoding::DefaultFuchsiaResourceDialect,
54440    >;
54441    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
54442        fn _decode(
54443            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54444        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
54445            let _response = fidl::client::decode_transaction_body::<
54446                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54447                fidl::encoding::DefaultFuchsiaResourceDialect,
54448                0x247f38b6db68c336,
54449            >(_buf?)?;
54450            Ok(_response.map(|x| x))
54451        }
54452        self.client.send_query_and_decode::<
54453            BaseNetworkSocketShutdownRequest,
54454            BaseNetworkSocketShutdownResult,
54455        >(
54456            (mode,),
54457            0x247f38b6db68c336,
54458            fidl::encoding::DynamicFlags::empty(),
54459            _decode,
54460        )
54461    }
54462
54463    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
54464        BaseNetworkSocketSetIpTypeOfServiceResult,
54465        fidl::encoding::DefaultFuchsiaResourceDialect,
54466    >;
54467    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
54468        fn _decode(
54469            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54470        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
54471            let _response = fidl::client::decode_transaction_body::<
54472                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54473                fidl::encoding::DefaultFuchsiaResourceDialect,
54474                0x995c600475b6d46,
54475            >(_buf?)?;
54476            Ok(_response.map(|x| x))
54477        }
54478        self.client.send_query_and_decode::<
54479            BaseNetworkSocketSetIpTypeOfServiceRequest,
54480            BaseNetworkSocketSetIpTypeOfServiceResult,
54481        >(
54482            (value,),
54483            0x995c600475b6d46,
54484            fidl::encoding::DynamicFlags::empty(),
54485            _decode,
54486        )
54487    }
54488
54489    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
54490        BaseNetworkSocketGetIpTypeOfServiceResult,
54491        fidl::encoding::DefaultFuchsiaResourceDialect,
54492    >;
54493    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
54494        fn _decode(
54495            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54496        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
54497            let _response = fidl::client::decode_transaction_body::<
54498                fidl::encoding::ResultType<
54499                    BaseNetworkSocketGetIpTypeOfServiceResponse,
54500                    fidl_fuchsia_posix::Errno,
54501                >,
54502                fidl::encoding::DefaultFuchsiaResourceDialect,
54503                0x3814a04259f75fcb,
54504            >(_buf?)?;
54505            Ok(_response.map(|x| x.value))
54506        }
54507        self.client.send_query_and_decode::<
54508            fidl::encoding::EmptyPayload,
54509            BaseNetworkSocketGetIpTypeOfServiceResult,
54510        >(
54511            (),
54512            0x3814a04259f75fcb,
54513            fidl::encoding::DynamicFlags::empty(),
54514            _decode,
54515        )
54516    }
54517
54518    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
54519        BaseNetworkSocketSetIpTtlResult,
54520        fidl::encoding::DefaultFuchsiaResourceDialect,
54521    >;
54522    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
54523        fn _decode(
54524            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54525        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
54526            let _response = fidl::client::decode_transaction_body::<
54527                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54528                fidl::encoding::DefaultFuchsiaResourceDialect,
54529                0x29e2424b433ae1ef,
54530            >(_buf?)?;
54531            Ok(_response.map(|x| x))
54532        }
54533        self.client.send_query_and_decode::<
54534            BaseNetworkSocketSetIpTtlRequest,
54535            BaseNetworkSocketSetIpTtlResult,
54536        >(
54537            (value,),
54538            0x29e2424b433ae1ef,
54539            fidl::encoding::DynamicFlags::empty(),
54540            _decode,
54541        )
54542    }
54543
54544    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
54545        BaseNetworkSocketGetIpTtlResult,
54546        fidl::encoding::DefaultFuchsiaResourceDialect,
54547    >;
54548    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
54549        fn _decode(
54550            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54551        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
54552            let _response = fidl::client::decode_transaction_body::<
54553                fidl::encoding::ResultType<
54554                    BaseNetworkSocketGetIpTtlResponse,
54555                    fidl_fuchsia_posix::Errno,
54556                >,
54557                fidl::encoding::DefaultFuchsiaResourceDialect,
54558                0x47e47fa1f24da471,
54559            >(_buf?)?;
54560            Ok(_response.map(|x| x.value))
54561        }
54562        self.client
54563            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
54564                (),
54565                0x47e47fa1f24da471,
54566                fidl::encoding::DynamicFlags::empty(),
54567                _decode,
54568            )
54569    }
54570
54571    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
54572        BaseNetworkSocketSetIpPacketInfoResult,
54573        fidl::encoding::DefaultFuchsiaResourceDialect,
54574    >;
54575    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
54576        fn _decode(
54577            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54578        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
54579            let _response = fidl::client::decode_transaction_body::<
54580                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54581                fidl::encoding::DefaultFuchsiaResourceDialect,
54582                0x392d16bee20c0e16,
54583            >(_buf?)?;
54584            Ok(_response.map(|x| x))
54585        }
54586        self.client.send_query_and_decode::<
54587            BaseNetworkSocketSetIpPacketInfoRequest,
54588            BaseNetworkSocketSetIpPacketInfoResult,
54589        >(
54590            (value,),
54591            0x392d16bee20c0e16,
54592            fidl::encoding::DynamicFlags::empty(),
54593            _decode,
54594        )
54595    }
54596
54597    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
54598        BaseNetworkSocketGetIpPacketInfoResult,
54599        fidl::encoding::DefaultFuchsiaResourceDialect,
54600    >;
54601    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
54602        fn _decode(
54603            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54604        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
54605            let _response = fidl::client::decode_transaction_body::<
54606                fidl::encoding::ResultType<
54607                    BaseNetworkSocketGetIpPacketInfoResponse,
54608                    fidl_fuchsia_posix::Errno,
54609                >,
54610                fidl::encoding::DefaultFuchsiaResourceDialect,
54611                0x54b505f242280740,
54612            >(_buf?)?;
54613            Ok(_response.map(|x| x.value))
54614        }
54615        self.client.send_query_and_decode::<
54616            fidl::encoding::EmptyPayload,
54617            BaseNetworkSocketGetIpPacketInfoResult,
54618        >(
54619            (),
54620            0x54b505f242280740,
54621            fidl::encoding::DynamicFlags::empty(),
54622            _decode,
54623        )
54624    }
54625
54626    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
54627        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
54628        fidl::encoding::DefaultFuchsiaResourceDialect,
54629    >;
54630    fn r#set_ip_receive_type_of_service(
54631        &self,
54632        mut value: bool,
54633    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
54634        fn _decode(
54635            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54636        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
54637            let _response = fidl::client::decode_transaction_body::<
54638                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54639                fidl::encoding::DefaultFuchsiaResourceDialect,
54640                0x6c4f6714995f84ef,
54641            >(_buf?)?;
54642            Ok(_response.map(|x| x))
54643        }
54644        self.client.send_query_and_decode::<
54645            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
54646            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
54647        >(
54648            (value,),
54649            0x6c4f6714995f84ef,
54650            fidl::encoding::DynamicFlags::empty(),
54651            _decode,
54652        )
54653    }
54654
54655    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
54656        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
54657        fidl::encoding::DefaultFuchsiaResourceDialect,
54658    >;
54659    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
54660        fn _decode(
54661            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54662        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
54663            let _response = fidl::client::decode_transaction_body::<
54664                fidl::encoding::ResultType<
54665                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
54666                    fidl_fuchsia_posix::Errno,
54667                >,
54668                fidl::encoding::DefaultFuchsiaResourceDialect,
54669                0x4158ba7dc2795960,
54670            >(_buf?)?;
54671            Ok(_response.map(|x| x.value))
54672        }
54673        self.client.send_query_and_decode::<
54674            fidl::encoding::EmptyPayload,
54675            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
54676        >(
54677            (),
54678            0x4158ba7dc2795960,
54679            fidl::encoding::DynamicFlags::empty(),
54680            _decode,
54681        )
54682    }
54683
54684    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
54685        BaseNetworkSocketSetIpReceiveTtlResult,
54686        fidl::encoding::DefaultFuchsiaResourceDialect,
54687    >;
54688    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
54689        fn _decode(
54690            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54691        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
54692            let _response = fidl::client::decode_transaction_body::<
54693                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54694                fidl::encoding::DefaultFuchsiaResourceDialect,
54695                0x46f15be0ce0ab82b,
54696            >(_buf?)?;
54697            Ok(_response.map(|x| x))
54698        }
54699        self.client.send_query_and_decode::<
54700            BaseNetworkSocketSetIpReceiveTtlRequest,
54701            BaseNetworkSocketSetIpReceiveTtlResult,
54702        >(
54703            (value,),
54704            0x46f15be0ce0ab82b,
54705            fidl::encoding::DynamicFlags::empty(),
54706            _decode,
54707        )
54708    }
54709
54710    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
54711        BaseNetworkSocketGetIpReceiveTtlResult,
54712        fidl::encoding::DefaultFuchsiaResourceDialect,
54713    >;
54714    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
54715        fn _decode(
54716            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54717        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
54718            let _response = fidl::client::decode_transaction_body::<
54719                fidl::encoding::ResultType<
54720                    BaseNetworkSocketGetIpReceiveTtlResponse,
54721                    fidl_fuchsia_posix::Errno,
54722                >,
54723                fidl::encoding::DefaultFuchsiaResourceDialect,
54724                0x678ddd5a5dfa2eb5,
54725            >(_buf?)?;
54726            Ok(_response.map(|x| x.value))
54727        }
54728        self.client.send_query_and_decode::<
54729            fidl::encoding::EmptyPayload,
54730            BaseNetworkSocketGetIpReceiveTtlResult,
54731        >(
54732            (),
54733            0x678ddd5a5dfa2eb5,
54734            fidl::encoding::DynamicFlags::empty(),
54735            _decode,
54736        )
54737    }
54738
54739    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
54740        BaseNetworkSocketSetIpMulticastInterfaceResult,
54741        fidl::encoding::DefaultFuchsiaResourceDialect,
54742    >;
54743    fn r#set_ip_multicast_interface(
54744        &self,
54745        mut iface: u64,
54746        mut address: &fidl_fuchsia_net::Ipv4Address,
54747    ) -> Self::SetIpMulticastInterfaceResponseFut {
54748        fn _decode(
54749            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54750        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
54751            let _response = fidl::client::decode_transaction_body::<
54752                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54753                fidl::encoding::DefaultFuchsiaResourceDialect,
54754                0x752fbfa9b12befe,
54755            >(_buf?)?;
54756            Ok(_response.map(|x| x))
54757        }
54758        self.client.send_query_and_decode::<
54759            BaseNetworkSocketSetIpMulticastInterfaceRequest,
54760            BaseNetworkSocketSetIpMulticastInterfaceResult,
54761        >(
54762            (iface, address,),
54763            0x752fbfa9b12befe,
54764            fidl::encoding::DynamicFlags::empty(),
54765            _decode,
54766        )
54767    }
54768
54769    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
54770        BaseNetworkSocketGetIpMulticastInterfaceResult,
54771        fidl::encoding::DefaultFuchsiaResourceDialect,
54772    >;
54773    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
54774        fn _decode(
54775            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54776        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
54777            let _response = fidl::client::decode_transaction_body::<
54778                fidl::encoding::ResultType<
54779                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
54780                    fidl_fuchsia_posix::Errno,
54781                >,
54782                fidl::encoding::DefaultFuchsiaResourceDialect,
54783                0x320bd14c4df046c4,
54784            >(_buf?)?;
54785            Ok(_response.map(|x| x.value))
54786        }
54787        self.client.send_query_and_decode::<
54788            fidl::encoding::EmptyPayload,
54789            BaseNetworkSocketGetIpMulticastInterfaceResult,
54790        >(
54791            (),
54792            0x320bd14c4df046c4,
54793            fidl::encoding::DynamicFlags::empty(),
54794            _decode,
54795        )
54796    }
54797
54798    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
54799        BaseNetworkSocketSetIpMulticastTtlResult,
54800        fidl::encoding::DefaultFuchsiaResourceDialect,
54801    >;
54802    fn r#set_ip_multicast_ttl(
54803        &self,
54804        mut value: &OptionalUint8,
54805    ) -> Self::SetIpMulticastTtlResponseFut {
54806        fn _decode(
54807            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54808        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
54809            let _response = fidl::client::decode_transaction_body::<
54810                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54811                fidl::encoding::DefaultFuchsiaResourceDialect,
54812                0x63134d53772916a1,
54813            >(_buf?)?;
54814            Ok(_response.map(|x| x))
54815        }
54816        self.client.send_query_and_decode::<
54817            BaseNetworkSocketSetIpMulticastTtlRequest,
54818            BaseNetworkSocketSetIpMulticastTtlResult,
54819        >(
54820            (value,),
54821            0x63134d53772916a1,
54822            fidl::encoding::DynamicFlags::empty(),
54823            _decode,
54824        )
54825    }
54826
54827    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
54828        BaseNetworkSocketGetIpMulticastTtlResult,
54829        fidl::encoding::DefaultFuchsiaResourceDialect,
54830    >;
54831    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
54832        fn _decode(
54833            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54834        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
54835            let _response = fidl::client::decode_transaction_body::<
54836                fidl::encoding::ResultType<
54837                    BaseNetworkSocketGetIpMulticastTtlResponse,
54838                    fidl_fuchsia_posix::Errno,
54839                >,
54840                fidl::encoding::DefaultFuchsiaResourceDialect,
54841                0x4665cd378f39e1a,
54842            >(_buf?)?;
54843            Ok(_response.map(|x| x.value))
54844        }
54845        self.client.send_query_and_decode::<
54846            fidl::encoding::EmptyPayload,
54847            BaseNetworkSocketGetIpMulticastTtlResult,
54848        >(
54849            (),
54850            0x4665cd378f39e1a,
54851            fidl::encoding::DynamicFlags::empty(),
54852            _decode,
54853        )
54854    }
54855
54856    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
54857        BaseNetworkSocketSetIpMulticastLoopbackResult,
54858        fidl::encoding::DefaultFuchsiaResourceDialect,
54859    >;
54860    fn r#set_ip_multicast_loopback(
54861        &self,
54862        mut value: bool,
54863    ) -> Self::SetIpMulticastLoopbackResponseFut {
54864        fn _decode(
54865            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54866        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
54867            let _response = fidl::client::decode_transaction_body::<
54868                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54869                fidl::encoding::DefaultFuchsiaResourceDialect,
54870                0x20c55c11f00943ea,
54871            >(_buf?)?;
54872            Ok(_response.map(|x| x))
54873        }
54874        self.client.send_query_and_decode::<
54875            BaseNetworkSocketSetIpMulticastLoopbackRequest,
54876            BaseNetworkSocketSetIpMulticastLoopbackResult,
54877        >(
54878            (value,),
54879            0x20c55c11f00943ea,
54880            fidl::encoding::DynamicFlags::empty(),
54881            _decode,
54882        )
54883    }
54884
54885    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
54886        BaseNetworkSocketGetIpMulticastLoopbackResult,
54887        fidl::encoding::DefaultFuchsiaResourceDialect,
54888    >;
54889    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
54890        fn _decode(
54891            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54892        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
54893            let _response = fidl::client::decode_transaction_body::<
54894                fidl::encoding::ResultType<
54895                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
54896                    fidl_fuchsia_posix::Errno,
54897                >,
54898                fidl::encoding::DefaultFuchsiaResourceDialect,
54899                0x3b6b26ff558298f2,
54900            >(_buf?)?;
54901            Ok(_response.map(|x| x.value))
54902        }
54903        self.client.send_query_and_decode::<
54904            fidl::encoding::EmptyPayload,
54905            BaseNetworkSocketGetIpMulticastLoopbackResult,
54906        >(
54907            (),
54908            0x3b6b26ff558298f2,
54909            fidl::encoding::DynamicFlags::empty(),
54910            _decode,
54911        )
54912    }
54913
54914    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
54915        BaseNetworkSocketAddIpMembershipResult,
54916        fidl::encoding::DefaultFuchsiaResourceDialect,
54917    >;
54918    fn r#add_ip_membership(
54919        &self,
54920        mut membership: &IpMulticastMembership,
54921    ) -> Self::AddIpMembershipResponseFut {
54922        fn _decode(
54923            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54924        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
54925            let _response = fidl::client::decode_transaction_body::<
54926                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54927                fidl::encoding::DefaultFuchsiaResourceDialect,
54928                0x76bc7df115a3b4d0,
54929            >(_buf?)?;
54930            Ok(_response.map(|x| x))
54931        }
54932        self.client.send_query_and_decode::<
54933            BaseNetworkSocketAddIpMembershipRequest,
54934            BaseNetworkSocketAddIpMembershipResult,
54935        >(
54936            (membership,),
54937            0x76bc7df115a3b4d0,
54938            fidl::encoding::DynamicFlags::empty(),
54939            _decode,
54940        )
54941    }
54942
54943    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
54944        BaseNetworkSocketDropIpMembershipResult,
54945        fidl::encoding::DefaultFuchsiaResourceDialect,
54946    >;
54947    fn r#drop_ip_membership(
54948        &self,
54949        mut membership: &IpMulticastMembership,
54950    ) -> Self::DropIpMembershipResponseFut {
54951        fn _decode(
54952            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54953        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
54954            let _response = fidl::client::decode_transaction_body::<
54955                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54956                fidl::encoding::DefaultFuchsiaResourceDialect,
54957                0x2888f3099188d03,
54958            >(_buf?)?;
54959            Ok(_response.map(|x| x))
54960        }
54961        self.client.send_query_and_decode::<
54962            BaseNetworkSocketDropIpMembershipRequest,
54963            BaseNetworkSocketDropIpMembershipResult,
54964        >(
54965            (membership,),
54966            0x2888f3099188d03,
54967            fidl::encoding::DynamicFlags::empty(),
54968            _decode,
54969        )
54970    }
54971
54972    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
54973        BaseNetworkSocketSetIpTransparentResult,
54974        fidl::encoding::DefaultFuchsiaResourceDialect,
54975    >;
54976    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
54977        fn _decode(
54978            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54979        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
54980            let _response = fidl::client::decode_transaction_body::<
54981                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54982                fidl::encoding::DefaultFuchsiaResourceDialect,
54983                0x1ae532b0c066e3a0,
54984            >(_buf?)?;
54985            Ok(_response.map(|x| x))
54986        }
54987        self.client.send_query_and_decode::<
54988            BaseNetworkSocketSetIpTransparentRequest,
54989            BaseNetworkSocketSetIpTransparentResult,
54990        >(
54991            (value,),
54992            0x1ae532b0c066e3a0,
54993            fidl::encoding::DynamicFlags::empty(),
54994            _decode,
54995        )
54996    }
54997
54998    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
54999        BaseNetworkSocketGetIpTransparentResult,
55000        fidl::encoding::DefaultFuchsiaResourceDialect,
55001    >;
55002    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
55003        fn _decode(
55004            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55005        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
55006            let _response = fidl::client::decode_transaction_body::<
55007                fidl::encoding::ResultType<
55008                    BaseNetworkSocketGetIpTransparentResponse,
55009                    fidl_fuchsia_posix::Errno,
55010                >,
55011                fidl::encoding::DefaultFuchsiaResourceDialect,
55012                0x51d43695962ebfb5,
55013            >(_buf?)?;
55014            Ok(_response.map(|x| x.value))
55015        }
55016        self.client.send_query_and_decode::<
55017            fidl::encoding::EmptyPayload,
55018            BaseNetworkSocketGetIpTransparentResult,
55019        >(
55020            (),
55021            0x51d43695962ebfb5,
55022            fidl::encoding::DynamicFlags::empty(),
55023            _decode,
55024        )
55025    }
55026
55027    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
55028        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
55029        fidl::encoding::DefaultFuchsiaResourceDialect,
55030    >;
55031    fn r#set_ip_receive_original_destination_address(
55032        &self,
55033        mut value: bool,
55034    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
55035        fn _decode(
55036            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55037        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
55038        {
55039            let _response = fidl::client::decode_transaction_body::<
55040                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55041                fidl::encoding::DefaultFuchsiaResourceDialect,
55042                0x4722b4ce52f7840,
55043            >(_buf?)?;
55044            Ok(_response.map(|x| x))
55045        }
55046        self.client.send_query_and_decode::<
55047            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
55048            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
55049        >(
55050            (value,),
55051            0x4722b4ce52f7840,
55052            fidl::encoding::DynamicFlags::empty(),
55053            _decode,
55054        )
55055    }
55056
55057    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
55058        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
55059        fidl::encoding::DefaultFuchsiaResourceDialect,
55060    >;
55061    fn r#get_ip_receive_original_destination_address(
55062        &self,
55063    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
55064        fn _decode(
55065            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55066        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
55067        {
55068            let _response = fidl::client::decode_transaction_body::<
55069                fidl::encoding::ResultType<
55070                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
55071                    fidl_fuchsia_posix::Errno,
55072                >,
55073                fidl::encoding::DefaultFuchsiaResourceDialect,
55074                0x2a0e7dc5d6bfdfe9,
55075            >(_buf?)?;
55076            Ok(_response.map(|x| x.value))
55077        }
55078        self.client.send_query_and_decode::<
55079            fidl::encoding::EmptyPayload,
55080            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
55081        >(
55082            (),
55083            0x2a0e7dc5d6bfdfe9,
55084            fidl::encoding::DynamicFlags::empty(),
55085            _decode,
55086        )
55087    }
55088
55089    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
55090        BaseNetworkSocketAddIpv6MembershipResult,
55091        fidl::encoding::DefaultFuchsiaResourceDialect,
55092    >;
55093    fn r#add_ipv6_membership(
55094        &self,
55095        mut membership: &Ipv6MulticastMembership,
55096    ) -> Self::AddIpv6MembershipResponseFut {
55097        fn _decode(
55098            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55099        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
55100            let _response = fidl::client::decode_transaction_body::<
55101                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55102                fidl::encoding::DefaultFuchsiaResourceDialect,
55103                0x7c94727acb4ea4b3,
55104            >(_buf?)?;
55105            Ok(_response.map(|x| x))
55106        }
55107        self.client.send_query_and_decode::<
55108            BaseNetworkSocketAddIpv6MembershipRequest,
55109            BaseNetworkSocketAddIpv6MembershipResult,
55110        >(
55111            (membership,),
55112            0x7c94727acb4ea4b3,
55113            fidl::encoding::DynamicFlags::empty(),
55114            _decode,
55115        )
55116    }
55117
55118    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
55119        BaseNetworkSocketDropIpv6MembershipResult,
55120        fidl::encoding::DefaultFuchsiaResourceDialect,
55121    >;
55122    fn r#drop_ipv6_membership(
55123        &self,
55124        mut membership: &Ipv6MulticastMembership,
55125    ) -> Self::DropIpv6MembershipResponseFut {
55126        fn _decode(
55127            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55128        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
55129            let _response = fidl::client::decode_transaction_body::<
55130                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55131                fidl::encoding::DefaultFuchsiaResourceDialect,
55132                0x42104c70ccaba304,
55133            >(_buf?)?;
55134            Ok(_response.map(|x| x))
55135        }
55136        self.client.send_query_and_decode::<
55137            BaseNetworkSocketDropIpv6MembershipRequest,
55138            BaseNetworkSocketDropIpv6MembershipResult,
55139        >(
55140            (membership,),
55141            0x42104c70ccaba304,
55142            fidl::encoding::DynamicFlags::empty(),
55143            _decode,
55144        )
55145    }
55146
55147    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
55148        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
55149        fidl::encoding::DefaultFuchsiaResourceDialect,
55150    >;
55151    fn r#set_ipv6_multicast_interface(
55152        &self,
55153        mut value: u64,
55154    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
55155        fn _decode(
55156            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55157        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
55158            let _response = fidl::client::decode_transaction_body::<
55159                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55160                fidl::encoding::DefaultFuchsiaResourceDialect,
55161                0x135f76db3774ab3b,
55162            >(_buf?)?;
55163            Ok(_response.map(|x| x))
55164        }
55165        self.client.send_query_and_decode::<
55166            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
55167            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
55168        >(
55169            (value,),
55170            0x135f76db3774ab3b,
55171            fidl::encoding::DynamicFlags::empty(),
55172            _decode,
55173        )
55174    }
55175
55176    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
55177        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
55178        fidl::encoding::DefaultFuchsiaResourceDialect,
55179    >;
55180    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
55181        fn _decode(
55182            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55183        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
55184            let _response = fidl::client::decode_transaction_body::<
55185                fidl::encoding::ResultType<
55186                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
55187                    fidl_fuchsia_posix::Errno,
55188                >,
55189                fidl::encoding::DefaultFuchsiaResourceDialect,
55190                0x1f26fcdd348f1882,
55191            >(_buf?)?;
55192            Ok(_response.map(|x| x.value))
55193        }
55194        self.client.send_query_and_decode::<
55195            fidl::encoding::EmptyPayload,
55196            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
55197        >(
55198            (),
55199            0x1f26fcdd348f1882,
55200            fidl::encoding::DynamicFlags::empty(),
55201            _decode,
55202        )
55203    }
55204
55205    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
55206        BaseNetworkSocketSetIpv6UnicastHopsResult,
55207        fidl::encoding::DefaultFuchsiaResourceDialect,
55208    >;
55209    fn r#set_ipv6_unicast_hops(
55210        &self,
55211        mut value: &OptionalUint8,
55212    ) -> Self::SetIpv6UnicastHopsResponseFut {
55213        fn _decode(
55214            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55215        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
55216            let _response = fidl::client::decode_transaction_body::<
55217                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55218                fidl::encoding::DefaultFuchsiaResourceDialect,
55219                0x157d51e98f462859,
55220            >(_buf?)?;
55221            Ok(_response.map(|x| x))
55222        }
55223        self.client.send_query_and_decode::<
55224            BaseNetworkSocketSetIpv6UnicastHopsRequest,
55225            BaseNetworkSocketSetIpv6UnicastHopsResult,
55226        >(
55227            (value,),
55228            0x157d51e98f462859,
55229            fidl::encoding::DynamicFlags::empty(),
55230            _decode,
55231        )
55232    }
55233
55234    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
55235        BaseNetworkSocketGetIpv6UnicastHopsResult,
55236        fidl::encoding::DefaultFuchsiaResourceDialect,
55237    >;
55238    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
55239        fn _decode(
55240            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55241        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
55242            let _response = fidl::client::decode_transaction_body::<
55243                fidl::encoding::ResultType<
55244                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
55245                    fidl_fuchsia_posix::Errno,
55246                >,
55247                fidl::encoding::DefaultFuchsiaResourceDialect,
55248                0x21f4641cad8bd8d2,
55249            >(_buf?)?;
55250            Ok(_response.map(|x| x.value))
55251        }
55252        self.client.send_query_and_decode::<
55253            fidl::encoding::EmptyPayload,
55254            BaseNetworkSocketGetIpv6UnicastHopsResult,
55255        >(
55256            (),
55257            0x21f4641cad8bd8d2,
55258            fidl::encoding::DynamicFlags::empty(),
55259            _decode,
55260        )
55261    }
55262
55263    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
55264        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
55265        fidl::encoding::DefaultFuchsiaResourceDialect,
55266    >;
55267    fn r#set_ipv6_receive_hop_limit(
55268        &self,
55269        mut value: bool,
55270    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
55271        fn _decode(
55272            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55273        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
55274            let _response = fidl::client::decode_transaction_body::<
55275                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55276                fidl::encoding::DefaultFuchsiaResourceDialect,
55277                0x5c24808ed2e84a1e,
55278            >(_buf?)?;
55279            Ok(_response.map(|x| x))
55280        }
55281        self.client.send_query_and_decode::<
55282            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
55283            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
55284        >(
55285            (value,),
55286            0x5c24808ed2e84a1e,
55287            fidl::encoding::DynamicFlags::empty(),
55288            _decode,
55289        )
55290    }
55291
55292    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
55293        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
55294        fidl::encoding::DefaultFuchsiaResourceDialect,
55295    >;
55296    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
55297        fn _decode(
55298            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55299        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
55300            let _response = fidl::client::decode_transaction_body::<
55301                fidl::encoding::ResultType<
55302                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
55303                    fidl_fuchsia_posix::Errno,
55304                >,
55305                fidl::encoding::DefaultFuchsiaResourceDialect,
55306                0x341e06689885b4c0,
55307            >(_buf?)?;
55308            Ok(_response.map(|x| x.value))
55309        }
55310        self.client.send_query_and_decode::<
55311            fidl::encoding::EmptyPayload,
55312            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
55313        >(
55314            (),
55315            0x341e06689885b4c0,
55316            fidl::encoding::DynamicFlags::empty(),
55317            _decode,
55318        )
55319    }
55320
55321    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
55322        BaseNetworkSocketSetIpv6MulticastHopsResult,
55323        fidl::encoding::DefaultFuchsiaResourceDialect,
55324    >;
55325    fn r#set_ipv6_multicast_hops(
55326        &self,
55327        mut value: &OptionalUint8,
55328    ) -> Self::SetIpv6MulticastHopsResponseFut {
55329        fn _decode(
55330            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55331        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
55332            let _response = fidl::client::decode_transaction_body::<
55333                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55334                fidl::encoding::DefaultFuchsiaResourceDialect,
55335                0x25b9cd4d181f82c1,
55336            >(_buf?)?;
55337            Ok(_response.map(|x| x))
55338        }
55339        self.client.send_query_and_decode::<
55340            BaseNetworkSocketSetIpv6MulticastHopsRequest,
55341            BaseNetworkSocketSetIpv6MulticastHopsResult,
55342        >(
55343            (value,),
55344            0x25b9cd4d181f82c1,
55345            fidl::encoding::DynamicFlags::empty(),
55346            _decode,
55347        )
55348    }
55349
55350    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
55351        BaseNetworkSocketGetIpv6MulticastHopsResult,
55352        fidl::encoding::DefaultFuchsiaResourceDialect,
55353    >;
55354    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
55355        fn _decode(
55356            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55357        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
55358            let _response = fidl::client::decode_transaction_body::<
55359                fidl::encoding::ResultType<
55360                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
55361                    fidl_fuchsia_posix::Errno,
55362                >,
55363                fidl::encoding::DefaultFuchsiaResourceDialect,
55364                0x52916948a365012a,
55365            >(_buf?)?;
55366            Ok(_response.map(|x| x.value))
55367        }
55368        self.client.send_query_and_decode::<
55369            fidl::encoding::EmptyPayload,
55370            BaseNetworkSocketGetIpv6MulticastHopsResult,
55371        >(
55372            (),
55373            0x52916948a365012a,
55374            fidl::encoding::DynamicFlags::empty(),
55375            _decode,
55376        )
55377    }
55378
55379    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
55380        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
55381        fidl::encoding::DefaultFuchsiaResourceDialect,
55382    >;
55383    fn r#set_ipv6_multicast_loopback(
55384        &self,
55385        mut value: bool,
55386    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
55387        fn _decode(
55388            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55389        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
55390            let _response = fidl::client::decode_transaction_body::<
55391                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55392                fidl::encoding::DefaultFuchsiaResourceDialect,
55393                0x55701c409ff41b40,
55394            >(_buf?)?;
55395            Ok(_response.map(|x| x))
55396        }
55397        self.client.send_query_and_decode::<
55398            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
55399            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
55400        >(
55401            (value,),
55402            0x55701c409ff41b40,
55403            fidl::encoding::DynamicFlags::empty(),
55404            _decode,
55405        )
55406    }
55407
55408    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
55409        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
55410        fidl::encoding::DefaultFuchsiaResourceDialect,
55411    >;
55412    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
55413        fn _decode(
55414            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55415        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
55416            let _response = fidl::client::decode_transaction_body::<
55417                fidl::encoding::ResultType<
55418                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
55419                    fidl_fuchsia_posix::Errno,
55420                >,
55421                fidl::encoding::DefaultFuchsiaResourceDialect,
55422                0x4415b701fde319c3,
55423            >(_buf?)?;
55424            Ok(_response.map(|x| x.value))
55425        }
55426        self.client.send_query_and_decode::<
55427            fidl::encoding::EmptyPayload,
55428            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
55429        >(
55430            (),
55431            0x4415b701fde319c3,
55432            fidl::encoding::DynamicFlags::empty(),
55433            _decode,
55434        )
55435    }
55436
55437    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
55438        BaseNetworkSocketSetIpv6OnlyResult,
55439        fidl::encoding::DefaultFuchsiaResourceDialect,
55440    >;
55441    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
55442        fn _decode(
55443            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55444        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
55445            let _response = fidl::client::decode_transaction_body::<
55446                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55447                fidl::encoding::DefaultFuchsiaResourceDialect,
55448                0x4873f1364758cbba,
55449            >(_buf?)?;
55450            Ok(_response.map(|x| x))
55451        }
55452        self.client.send_query_and_decode::<
55453            BaseNetworkSocketSetIpv6OnlyRequest,
55454            BaseNetworkSocketSetIpv6OnlyResult,
55455        >(
55456            (value,),
55457            0x4873f1364758cbba,
55458            fidl::encoding::DynamicFlags::empty(),
55459            _decode,
55460        )
55461    }
55462
55463    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
55464        BaseNetworkSocketGetIpv6OnlyResult,
55465        fidl::encoding::DefaultFuchsiaResourceDialect,
55466    >;
55467    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
55468        fn _decode(
55469            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55470        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
55471            let _response = fidl::client::decode_transaction_body::<
55472                fidl::encoding::ResultType<
55473                    BaseNetworkSocketGetIpv6OnlyResponse,
55474                    fidl_fuchsia_posix::Errno,
55475                >,
55476                fidl::encoding::DefaultFuchsiaResourceDialect,
55477                0x4aa3340a1a26b89c,
55478            >(_buf?)?;
55479            Ok(_response.map(|x| x.value))
55480        }
55481        self.client.send_query_and_decode::<
55482            fidl::encoding::EmptyPayload,
55483            BaseNetworkSocketGetIpv6OnlyResult,
55484        >(
55485            (),
55486            0x4aa3340a1a26b89c,
55487            fidl::encoding::DynamicFlags::empty(),
55488            _decode,
55489        )
55490    }
55491
55492    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
55493        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
55494        fidl::encoding::DefaultFuchsiaResourceDialect,
55495    >;
55496    fn r#set_ipv6_receive_traffic_class(
55497        &self,
55498        mut value: bool,
55499    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
55500        fn _decode(
55501            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55502        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
55503            let _response = fidl::client::decode_transaction_body::<
55504                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55505                fidl::encoding::DefaultFuchsiaResourceDialect,
55506                0x58f07c8788d099a0,
55507            >(_buf?)?;
55508            Ok(_response.map(|x| x))
55509        }
55510        self.client.send_query_and_decode::<
55511            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
55512            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
55513        >(
55514            (value,),
55515            0x58f07c8788d099a0,
55516            fidl::encoding::DynamicFlags::empty(),
55517            _decode,
55518        )
55519    }
55520
55521    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
55522        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
55523        fidl::encoding::DefaultFuchsiaResourceDialect,
55524    >;
55525    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
55526        fn _decode(
55527            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55528        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
55529            let _response = fidl::client::decode_transaction_body::<
55530                fidl::encoding::ResultType<
55531                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
55532                    fidl_fuchsia_posix::Errno,
55533                >,
55534                fidl::encoding::DefaultFuchsiaResourceDialect,
55535                0x2e334df1da553ffa,
55536            >(_buf?)?;
55537            Ok(_response.map(|x| x.value))
55538        }
55539        self.client.send_query_and_decode::<
55540            fidl::encoding::EmptyPayload,
55541            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
55542        >(
55543            (),
55544            0x2e334df1da553ffa,
55545            fidl::encoding::DynamicFlags::empty(),
55546            _decode,
55547        )
55548    }
55549
55550    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
55551        BaseNetworkSocketSetIpv6TrafficClassResult,
55552        fidl::encoding::DefaultFuchsiaResourceDialect,
55553    >;
55554    fn r#set_ipv6_traffic_class(
55555        &self,
55556        mut value: &OptionalUint8,
55557    ) -> Self::SetIpv6TrafficClassResponseFut {
55558        fn _decode(
55559            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55560        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
55561            let _response = fidl::client::decode_transaction_body::<
55562                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55563                fidl::encoding::DefaultFuchsiaResourceDialect,
55564                0x6af077800c5a0b4f,
55565            >(_buf?)?;
55566            Ok(_response.map(|x| x))
55567        }
55568        self.client.send_query_and_decode::<
55569            BaseNetworkSocketSetIpv6TrafficClassRequest,
55570            BaseNetworkSocketSetIpv6TrafficClassResult,
55571        >(
55572            (value,),
55573            0x6af077800c5a0b4f,
55574            fidl::encoding::DynamicFlags::empty(),
55575            _decode,
55576        )
55577    }
55578
55579    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
55580        BaseNetworkSocketGetIpv6TrafficClassResult,
55581        fidl::encoding::DefaultFuchsiaResourceDialect,
55582    >;
55583    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
55584        fn _decode(
55585            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55586        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
55587            let _response = fidl::client::decode_transaction_body::<
55588                fidl::encoding::ResultType<
55589                    BaseNetworkSocketGetIpv6TrafficClassResponse,
55590                    fidl_fuchsia_posix::Errno,
55591                >,
55592                fidl::encoding::DefaultFuchsiaResourceDialect,
55593                0x6baf6eed8fc2f04,
55594            >(_buf?)?;
55595            Ok(_response.map(|x| x.value))
55596        }
55597        self.client.send_query_and_decode::<
55598            fidl::encoding::EmptyPayload,
55599            BaseNetworkSocketGetIpv6TrafficClassResult,
55600        >(
55601            (),
55602            0x6baf6eed8fc2f04,
55603            fidl::encoding::DynamicFlags::empty(),
55604            _decode,
55605        )
55606    }
55607
55608    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
55609        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
55610        fidl::encoding::DefaultFuchsiaResourceDialect,
55611    >;
55612    fn r#set_ipv6_receive_packet_info(
55613        &self,
55614        mut value: bool,
55615    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
55616        fn _decode(
55617            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55618        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
55619            let _response = fidl::client::decode_transaction_body::<
55620                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55621                fidl::encoding::DefaultFuchsiaResourceDialect,
55622                0x19259775b1a92768,
55623            >(_buf?)?;
55624            Ok(_response.map(|x| x))
55625        }
55626        self.client.send_query_and_decode::<
55627            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
55628            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
55629        >(
55630            (value,),
55631            0x19259775b1a92768,
55632            fidl::encoding::DynamicFlags::empty(),
55633            _decode,
55634        )
55635    }
55636
55637    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
55638        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
55639        fidl::encoding::DefaultFuchsiaResourceDialect,
55640    >;
55641    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
55642        fn _decode(
55643            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55644        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
55645            let _response = fidl::client::decode_transaction_body::<
55646                fidl::encoding::ResultType<
55647                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
55648                    fidl_fuchsia_posix::Errno,
55649                >,
55650                fidl::encoding::DefaultFuchsiaResourceDialect,
55651                0x7acd4a2775baec75,
55652            >(_buf?)?;
55653            Ok(_response.map(|x| x.value))
55654        }
55655        self.client.send_query_and_decode::<
55656            fidl::encoding::EmptyPayload,
55657            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
55658        >(
55659            (),
55660            0x7acd4a2775baec75,
55661            fidl::encoding::DynamicFlags::empty(),
55662            _decode,
55663        )
55664    }
55665
55666    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
55667        BaseNetworkSocketGetOriginalDestinationResult,
55668        fidl::encoding::DefaultFuchsiaResourceDialect,
55669    >;
55670    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
55671        fn _decode(
55672            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55673        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
55674            let _response = fidl::client::decode_transaction_body::<
55675                fidl::encoding::ResultType<
55676                    BaseNetworkSocketGetOriginalDestinationResponse,
55677                    fidl_fuchsia_posix::Errno,
55678                >,
55679                fidl::encoding::DefaultFuchsiaResourceDialect,
55680                0x38bf28f0dafdbac0,
55681            >(_buf?)?;
55682            Ok(_response.map(|x| x.value))
55683        }
55684        self.client.send_query_and_decode::<
55685            fidl::encoding::EmptyPayload,
55686            BaseNetworkSocketGetOriginalDestinationResult,
55687        >(
55688            (),
55689            0x38bf28f0dafdbac0,
55690            fidl::encoding::DynamicFlags::empty(),
55691            _decode,
55692        )
55693    }
55694
55695    type DescribeResponseFut = fidl::client::QueryResponseFut<
55696        StreamSocketDescribeResponse,
55697        fidl::encoding::DefaultFuchsiaResourceDialect,
55698    >;
55699    fn r#describe(&self) -> Self::DescribeResponseFut {
55700        fn _decode(
55701            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55702        ) -> Result<StreamSocketDescribeResponse, fidl::Error> {
55703            let _response = fidl::client::decode_transaction_body::<
55704                StreamSocketDescribeResponse,
55705                fidl::encoding::DefaultFuchsiaResourceDialect,
55706                0x29e22969a7dadc32,
55707            >(_buf?)?;
55708            Ok(_response)
55709        }
55710        self.client
55711            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketDescribeResponse>(
55712                (),
55713                0x29e22969a7dadc32,
55714                fidl::encoding::DynamicFlags::empty(),
55715                _decode,
55716            )
55717    }
55718
55719    type ListenResponseFut = fidl::client::QueryResponseFut<
55720        StreamSocketListenResult,
55721        fidl::encoding::DefaultFuchsiaResourceDialect,
55722    >;
55723    fn r#listen(&self, mut backlog: i16) -> Self::ListenResponseFut {
55724        fn _decode(
55725            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55726        ) -> Result<StreamSocketListenResult, fidl::Error> {
55727            let _response = fidl::client::decode_transaction_body::<
55728                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55729                fidl::encoding::DefaultFuchsiaResourceDialect,
55730                0x3d0a65ced3d10108,
55731            >(_buf?)?;
55732            Ok(_response.map(|x| x))
55733        }
55734        self.client.send_query_and_decode::<StreamSocketListenRequest, StreamSocketListenResult>(
55735            (backlog,),
55736            0x3d0a65ced3d10108,
55737            fidl::encoding::DynamicFlags::empty(),
55738            _decode,
55739        )
55740    }
55741
55742    type AcceptResponseFut = fidl::client::QueryResponseFut<
55743        StreamSocketAcceptResult,
55744        fidl::encoding::DefaultFuchsiaResourceDialect,
55745    >;
55746    fn r#accept(&self, mut want_addr: bool) -> Self::AcceptResponseFut {
55747        fn _decode(
55748            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55749        ) -> Result<StreamSocketAcceptResult, fidl::Error> {
55750            let _response = fidl::client::decode_transaction_body::<
55751                fidl::encoding::ResultType<StreamSocketAcceptResponse, fidl_fuchsia_posix::Errno>,
55752                fidl::encoding::DefaultFuchsiaResourceDialect,
55753                0x5ab7ad620424c163,
55754            >(_buf?)?;
55755            Ok(_response.map(|x| (x.addr, x.s)))
55756        }
55757        self.client.send_query_and_decode::<StreamSocketAcceptRequest, StreamSocketAcceptResult>(
55758            (want_addr,),
55759            0x5ab7ad620424c163,
55760            fidl::encoding::DynamicFlags::empty(),
55761            _decode,
55762        )
55763    }
55764
55765    type GetInfoResponseFut = fidl::client::QueryResponseFut<
55766        StreamSocketGetInfoResult,
55767        fidl::encoding::DefaultFuchsiaResourceDialect,
55768    >;
55769    fn r#get_info(&self) -> Self::GetInfoResponseFut {
55770        fn _decode(
55771            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55772        ) -> Result<StreamSocketGetInfoResult, fidl::Error> {
55773            let _response = fidl::client::decode_transaction_body::<
55774                fidl::encoding::ResultType<StreamSocketGetInfoResponse, fidl_fuchsia_posix::Errno>,
55775                fidl::encoding::DefaultFuchsiaResourceDialect,
55776                0x87cfa55d19f878f,
55777            >(_buf?)?;
55778            Ok(_response.map(|x| (x.domain, x.proto)))
55779        }
55780        self.client
55781            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetInfoResult>(
55782                (),
55783                0x87cfa55d19f878f,
55784                fidl::encoding::DynamicFlags::empty(),
55785                _decode,
55786            )
55787    }
55788
55789    type SetTcpNoDelayResponseFut = fidl::client::QueryResponseFut<
55790        StreamSocketSetTcpNoDelayResult,
55791        fidl::encoding::DefaultFuchsiaResourceDialect,
55792    >;
55793    fn r#set_tcp_no_delay(&self, mut value: bool) -> Self::SetTcpNoDelayResponseFut {
55794        fn _decode(
55795            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55796        ) -> Result<StreamSocketSetTcpNoDelayResult, fidl::Error> {
55797            let _response = fidl::client::decode_transaction_body::<
55798                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55799                fidl::encoding::DefaultFuchsiaResourceDialect,
55800                0x5a59b778f7333ada,
55801            >(_buf?)?;
55802            Ok(_response.map(|x| x))
55803        }
55804        self.client.send_query_and_decode::<
55805            StreamSocketSetTcpNoDelayRequest,
55806            StreamSocketSetTcpNoDelayResult,
55807        >(
55808            (value,),
55809            0x5a59b778f7333ada,
55810            fidl::encoding::DynamicFlags::empty(),
55811            _decode,
55812        )
55813    }
55814
55815    type GetTcpNoDelayResponseFut = fidl::client::QueryResponseFut<
55816        StreamSocketGetTcpNoDelayResult,
55817        fidl::encoding::DefaultFuchsiaResourceDialect,
55818    >;
55819    fn r#get_tcp_no_delay(&self) -> Self::GetTcpNoDelayResponseFut {
55820        fn _decode(
55821            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55822        ) -> Result<StreamSocketGetTcpNoDelayResult, fidl::Error> {
55823            let _response = fidl::client::decode_transaction_body::<
55824                fidl::encoding::ResultType<
55825                    StreamSocketGetTcpNoDelayResponse,
55826                    fidl_fuchsia_posix::Errno,
55827                >,
55828                fidl::encoding::DefaultFuchsiaResourceDialect,
55829                0xac219a3218b0799,
55830            >(_buf?)?;
55831            Ok(_response.map(|x| x.value))
55832        }
55833        self.client
55834            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpNoDelayResult>(
55835                (),
55836                0xac219a3218b0799,
55837                fidl::encoding::DynamicFlags::empty(),
55838                _decode,
55839            )
55840    }
55841
55842    type SetTcpMaxSegmentResponseFut = fidl::client::QueryResponseFut<
55843        StreamSocketSetTcpMaxSegmentResult,
55844        fidl::encoding::DefaultFuchsiaResourceDialect,
55845    >;
55846    fn r#set_tcp_max_segment(&self, mut value_bytes: u32) -> Self::SetTcpMaxSegmentResponseFut {
55847        fn _decode(
55848            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55849        ) -> Result<StreamSocketSetTcpMaxSegmentResult, fidl::Error> {
55850            let _response = fidl::client::decode_transaction_body::<
55851                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55852                fidl::encoding::DefaultFuchsiaResourceDialect,
55853                0xb3d30c498266d18,
55854            >(_buf?)?;
55855            Ok(_response.map(|x| x))
55856        }
55857        self.client.send_query_and_decode::<
55858            StreamSocketSetTcpMaxSegmentRequest,
55859            StreamSocketSetTcpMaxSegmentResult,
55860        >(
55861            (value_bytes,),
55862            0xb3d30c498266d18,
55863            fidl::encoding::DynamicFlags::empty(),
55864            _decode,
55865        )
55866    }
55867
55868    type GetTcpMaxSegmentResponseFut = fidl::client::QueryResponseFut<
55869        StreamSocketGetTcpMaxSegmentResult,
55870        fidl::encoding::DefaultFuchsiaResourceDialect,
55871    >;
55872    fn r#get_tcp_max_segment(&self) -> Self::GetTcpMaxSegmentResponseFut {
55873        fn _decode(
55874            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55875        ) -> Result<StreamSocketGetTcpMaxSegmentResult, fidl::Error> {
55876            let _response = fidl::client::decode_transaction_body::<
55877                fidl::encoding::ResultType<
55878                    StreamSocketGetTcpMaxSegmentResponse,
55879                    fidl_fuchsia_posix::Errno,
55880                >,
55881                fidl::encoding::DefaultFuchsiaResourceDialect,
55882                0x637404d1b4b9982c,
55883            >(_buf?)?;
55884            Ok(_response.map(|x| x.value_bytes))
55885        }
55886        self.client.send_query_and_decode::<
55887            fidl::encoding::EmptyPayload,
55888            StreamSocketGetTcpMaxSegmentResult,
55889        >(
55890            (),
55891            0x637404d1b4b9982c,
55892            fidl::encoding::DynamicFlags::empty(),
55893            _decode,
55894        )
55895    }
55896
55897    type SetTcpCorkResponseFut = fidl::client::QueryResponseFut<
55898        StreamSocketSetTcpCorkResult,
55899        fidl::encoding::DefaultFuchsiaResourceDialect,
55900    >;
55901    fn r#set_tcp_cork(&self, mut value: bool) -> Self::SetTcpCorkResponseFut {
55902        fn _decode(
55903            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55904        ) -> Result<StreamSocketSetTcpCorkResult, fidl::Error> {
55905            let _response = fidl::client::decode_transaction_body::<
55906                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55907                fidl::encoding::DefaultFuchsiaResourceDialect,
55908                0x62e26891541143a0,
55909            >(_buf?)?;
55910            Ok(_response.map(|x| x))
55911        }
55912        self.client
55913            .send_query_and_decode::<StreamSocketSetTcpCorkRequest, StreamSocketSetTcpCorkResult>(
55914                (value,),
55915                0x62e26891541143a0,
55916                fidl::encoding::DynamicFlags::empty(),
55917                _decode,
55918            )
55919    }
55920
55921    type GetTcpCorkResponseFut = fidl::client::QueryResponseFut<
55922        StreamSocketGetTcpCorkResult,
55923        fidl::encoding::DefaultFuchsiaResourceDialect,
55924    >;
55925    fn r#get_tcp_cork(&self) -> Self::GetTcpCorkResponseFut {
55926        fn _decode(
55927            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55928        ) -> Result<StreamSocketGetTcpCorkResult, fidl::Error> {
55929            let _response = fidl::client::decode_transaction_body::<
55930                fidl::encoding::ResultType<
55931                    StreamSocketGetTcpCorkResponse,
55932                    fidl_fuchsia_posix::Errno,
55933                >,
55934                fidl::encoding::DefaultFuchsiaResourceDialect,
55935                0x435bb232e0e74f32,
55936            >(_buf?)?;
55937            Ok(_response.map(|x| x.value))
55938        }
55939        self.client
55940            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpCorkResult>(
55941                (),
55942                0x435bb232e0e74f32,
55943                fidl::encoding::DynamicFlags::empty(),
55944                _decode,
55945            )
55946    }
55947
55948    type SetTcpKeepAliveIdleResponseFut = fidl::client::QueryResponseFut<
55949        StreamSocketSetTcpKeepAliveIdleResult,
55950        fidl::encoding::DefaultFuchsiaResourceDialect,
55951    >;
55952    fn r#set_tcp_keep_alive_idle(
55953        &self,
55954        mut value_secs: u32,
55955    ) -> Self::SetTcpKeepAliveIdleResponseFut {
55956        fn _decode(
55957            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55958        ) -> Result<StreamSocketSetTcpKeepAliveIdleResult, fidl::Error> {
55959            let _response = fidl::client::decode_transaction_body::<
55960                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55961                fidl::encoding::DefaultFuchsiaResourceDialect,
55962                0x196d053d8363c42,
55963            >(_buf?)?;
55964            Ok(_response.map(|x| x))
55965        }
55966        self.client.send_query_and_decode::<
55967            StreamSocketSetTcpKeepAliveIdleRequest,
55968            StreamSocketSetTcpKeepAliveIdleResult,
55969        >(
55970            (value_secs,),
55971            0x196d053d8363c42,
55972            fidl::encoding::DynamicFlags::empty(),
55973            _decode,
55974        )
55975    }
55976
55977    type GetTcpKeepAliveIdleResponseFut = fidl::client::QueryResponseFut<
55978        StreamSocketGetTcpKeepAliveIdleResult,
55979        fidl::encoding::DefaultFuchsiaResourceDialect,
55980    >;
55981    fn r#get_tcp_keep_alive_idle(&self) -> Self::GetTcpKeepAliveIdleResponseFut {
55982        fn _decode(
55983            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55984        ) -> Result<StreamSocketGetTcpKeepAliveIdleResult, fidl::Error> {
55985            let _response = fidl::client::decode_transaction_body::<
55986                fidl::encoding::ResultType<
55987                    StreamSocketGetTcpKeepAliveIdleResponse,
55988                    fidl_fuchsia_posix::Errno,
55989                >,
55990                fidl::encoding::DefaultFuchsiaResourceDialect,
55991                0x35ec58564879dac,
55992            >(_buf?)?;
55993            Ok(_response.map(|x| x.value_secs))
55994        }
55995        self.client.send_query_and_decode::<
55996            fidl::encoding::EmptyPayload,
55997            StreamSocketGetTcpKeepAliveIdleResult,
55998        >(
55999            (),
56000            0x35ec58564879dac,
56001            fidl::encoding::DynamicFlags::empty(),
56002            _decode,
56003        )
56004    }
56005
56006    type SetTcpKeepAliveIntervalResponseFut = fidl::client::QueryResponseFut<
56007        StreamSocketSetTcpKeepAliveIntervalResult,
56008        fidl::encoding::DefaultFuchsiaResourceDialect,
56009    >;
56010    fn r#set_tcp_keep_alive_interval(
56011        &self,
56012        mut value_secs: u32,
56013    ) -> Self::SetTcpKeepAliveIntervalResponseFut {
56014        fn _decode(
56015            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56016        ) -> Result<StreamSocketSetTcpKeepAliveIntervalResult, fidl::Error> {
56017            let _response = fidl::client::decode_transaction_body::<
56018                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56019                fidl::encoding::DefaultFuchsiaResourceDialect,
56020                0x485ffbc2da1243f2,
56021            >(_buf?)?;
56022            Ok(_response.map(|x| x))
56023        }
56024        self.client.send_query_and_decode::<
56025            StreamSocketSetTcpKeepAliveIntervalRequest,
56026            StreamSocketSetTcpKeepAliveIntervalResult,
56027        >(
56028            (value_secs,),
56029            0x485ffbc2da1243f2,
56030            fidl::encoding::DynamicFlags::empty(),
56031            _decode,
56032        )
56033    }
56034
56035    type GetTcpKeepAliveIntervalResponseFut = fidl::client::QueryResponseFut<
56036        StreamSocketGetTcpKeepAliveIntervalResult,
56037        fidl::encoding::DefaultFuchsiaResourceDialect,
56038    >;
56039    fn r#get_tcp_keep_alive_interval(&self) -> Self::GetTcpKeepAliveIntervalResponseFut {
56040        fn _decode(
56041            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56042        ) -> Result<StreamSocketGetTcpKeepAliveIntervalResult, fidl::Error> {
56043            let _response = fidl::client::decode_transaction_body::<
56044                fidl::encoding::ResultType<
56045                    StreamSocketGetTcpKeepAliveIntervalResponse,
56046                    fidl_fuchsia_posix::Errno,
56047                >,
56048                fidl::encoding::DefaultFuchsiaResourceDialect,
56049                0x264eaf46306b284,
56050            >(_buf?)?;
56051            Ok(_response.map(|x| x.value_secs))
56052        }
56053        self.client.send_query_and_decode::<
56054            fidl::encoding::EmptyPayload,
56055            StreamSocketGetTcpKeepAliveIntervalResult,
56056        >(
56057            (),
56058            0x264eaf46306b284,
56059            fidl::encoding::DynamicFlags::empty(),
56060            _decode,
56061        )
56062    }
56063
56064    type SetTcpKeepAliveCountResponseFut = fidl::client::QueryResponseFut<
56065        StreamSocketSetTcpKeepAliveCountResult,
56066        fidl::encoding::DefaultFuchsiaResourceDialect,
56067    >;
56068    fn r#set_tcp_keep_alive_count(&self, mut value: u32) -> Self::SetTcpKeepAliveCountResponseFut {
56069        fn _decode(
56070            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56071        ) -> Result<StreamSocketSetTcpKeepAliveCountResult, fidl::Error> {
56072            let _response = fidl::client::decode_transaction_body::<
56073                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56074                fidl::encoding::DefaultFuchsiaResourceDialect,
56075                0x2ab2e8c111708421,
56076            >(_buf?)?;
56077            Ok(_response.map(|x| x))
56078        }
56079        self.client.send_query_and_decode::<
56080            StreamSocketSetTcpKeepAliveCountRequest,
56081            StreamSocketSetTcpKeepAliveCountResult,
56082        >(
56083            (value,),
56084            0x2ab2e8c111708421,
56085            fidl::encoding::DynamicFlags::empty(),
56086            _decode,
56087        )
56088    }
56089
56090    type GetTcpKeepAliveCountResponseFut = fidl::client::QueryResponseFut<
56091        StreamSocketGetTcpKeepAliveCountResult,
56092        fidl::encoding::DefaultFuchsiaResourceDialect,
56093    >;
56094    fn r#get_tcp_keep_alive_count(&self) -> Self::GetTcpKeepAliveCountResponseFut {
56095        fn _decode(
56096            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56097        ) -> Result<StreamSocketGetTcpKeepAliveCountResult, fidl::Error> {
56098            let _response = fidl::client::decode_transaction_body::<
56099                fidl::encoding::ResultType<
56100                    StreamSocketGetTcpKeepAliveCountResponse,
56101                    fidl_fuchsia_posix::Errno,
56102                >,
56103                fidl::encoding::DefaultFuchsiaResourceDialect,
56104                0x2f176ae271fe7a09,
56105            >(_buf?)?;
56106            Ok(_response.map(|x| x.value))
56107        }
56108        self.client.send_query_and_decode::<
56109            fidl::encoding::EmptyPayload,
56110            StreamSocketGetTcpKeepAliveCountResult,
56111        >(
56112            (),
56113            0x2f176ae271fe7a09,
56114            fidl::encoding::DynamicFlags::empty(),
56115            _decode,
56116        )
56117    }
56118
56119    type SetTcpSynCountResponseFut = fidl::client::QueryResponseFut<
56120        StreamSocketSetTcpSynCountResult,
56121        fidl::encoding::DefaultFuchsiaResourceDialect,
56122    >;
56123    fn r#set_tcp_syn_count(&self, mut value: u32) -> Self::SetTcpSynCountResponseFut {
56124        fn _decode(
56125            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56126        ) -> Result<StreamSocketSetTcpSynCountResult, fidl::Error> {
56127            let _response = fidl::client::decode_transaction_body::<
56128                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56129                fidl::encoding::DefaultFuchsiaResourceDialect,
56130                0x4dcd6ab5573c1eb3,
56131            >(_buf?)?;
56132            Ok(_response.map(|x| x))
56133        }
56134        self.client.send_query_and_decode::<
56135            StreamSocketSetTcpSynCountRequest,
56136            StreamSocketSetTcpSynCountResult,
56137        >(
56138            (value,),
56139            0x4dcd6ab5573c1eb3,
56140            fidl::encoding::DynamicFlags::empty(),
56141            _decode,
56142        )
56143    }
56144
56145    type GetTcpSynCountResponseFut = fidl::client::QueryResponseFut<
56146        StreamSocketGetTcpSynCountResult,
56147        fidl::encoding::DefaultFuchsiaResourceDialect,
56148    >;
56149    fn r#get_tcp_syn_count(&self) -> Self::GetTcpSynCountResponseFut {
56150        fn _decode(
56151            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56152        ) -> Result<StreamSocketGetTcpSynCountResult, fidl::Error> {
56153            let _response = fidl::client::decode_transaction_body::<
56154                fidl::encoding::ResultType<
56155                    StreamSocketGetTcpSynCountResponse,
56156                    fidl_fuchsia_posix::Errno,
56157                >,
56158                fidl::encoding::DefaultFuchsiaResourceDialect,
56159                0x7d457cba8f5f3ee6,
56160            >(_buf?)?;
56161            Ok(_response.map(|x| x.value))
56162        }
56163        self.client.send_query_and_decode::<
56164            fidl::encoding::EmptyPayload,
56165            StreamSocketGetTcpSynCountResult,
56166        >(
56167            (),
56168            0x7d457cba8f5f3ee6,
56169            fidl::encoding::DynamicFlags::empty(),
56170            _decode,
56171        )
56172    }
56173
56174    type SetTcpLingerResponseFut = fidl::client::QueryResponseFut<
56175        StreamSocketSetTcpLingerResult,
56176        fidl::encoding::DefaultFuchsiaResourceDialect,
56177    >;
56178    fn r#set_tcp_linger(&self, mut value_secs: &OptionalUint32) -> Self::SetTcpLingerResponseFut {
56179        fn _decode(
56180            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56181        ) -> Result<StreamSocketSetTcpLingerResult, fidl::Error> {
56182            let _response = fidl::client::decode_transaction_body::<
56183                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56184                fidl::encoding::DefaultFuchsiaResourceDialect,
56185                0xd5cc1e8654d36e4,
56186            >(_buf?)?;
56187            Ok(_response.map(|x| x))
56188        }
56189        self.client.send_query_and_decode::<
56190            StreamSocketSetTcpLingerRequest,
56191            StreamSocketSetTcpLingerResult,
56192        >(
56193            (value_secs,),
56194            0xd5cc1e8654d36e4,
56195            fidl::encoding::DynamicFlags::empty(),
56196            _decode,
56197        )
56198    }
56199
56200    type GetTcpLingerResponseFut = fidl::client::QueryResponseFut<
56201        StreamSocketGetTcpLingerResult,
56202        fidl::encoding::DefaultFuchsiaResourceDialect,
56203    >;
56204    fn r#get_tcp_linger(&self) -> Self::GetTcpLingerResponseFut {
56205        fn _decode(
56206            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56207        ) -> Result<StreamSocketGetTcpLingerResult, fidl::Error> {
56208            let _response = fidl::client::decode_transaction_body::<
56209                fidl::encoding::ResultType<
56210                    StreamSocketGetTcpLingerResponse,
56211                    fidl_fuchsia_posix::Errno,
56212                >,
56213                fidl::encoding::DefaultFuchsiaResourceDialect,
56214                0xad870d311cf30eb,
56215            >(_buf?)?;
56216            Ok(_response.map(|x| x.value_secs))
56217        }
56218        self.client
56219            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpLingerResult>(
56220                (),
56221                0xad870d311cf30eb,
56222                fidl::encoding::DynamicFlags::empty(),
56223                _decode,
56224            )
56225    }
56226
56227    type SetTcpDeferAcceptResponseFut = fidl::client::QueryResponseFut<
56228        StreamSocketSetTcpDeferAcceptResult,
56229        fidl::encoding::DefaultFuchsiaResourceDialect,
56230    >;
56231    fn r#set_tcp_defer_accept(&self, mut value_secs: u32) -> Self::SetTcpDeferAcceptResponseFut {
56232        fn _decode(
56233            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56234        ) -> Result<StreamSocketSetTcpDeferAcceptResult, fidl::Error> {
56235            let _response = fidl::client::decode_transaction_body::<
56236                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56237                fidl::encoding::DefaultFuchsiaResourceDialect,
56238                0x15092f181e57c404,
56239            >(_buf?)?;
56240            Ok(_response.map(|x| x))
56241        }
56242        self.client.send_query_and_decode::<
56243            StreamSocketSetTcpDeferAcceptRequest,
56244            StreamSocketSetTcpDeferAcceptResult,
56245        >(
56246            (value_secs,),
56247            0x15092f181e57c404,
56248            fidl::encoding::DynamicFlags::empty(),
56249            _decode,
56250        )
56251    }
56252
56253    type GetTcpDeferAcceptResponseFut = fidl::client::QueryResponseFut<
56254        StreamSocketGetTcpDeferAcceptResult,
56255        fidl::encoding::DefaultFuchsiaResourceDialect,
56256    >;
56257    fn r#get_tcp_defer_accept(&self) -> Self::GetTcpDeferAcceptResponseFut {
56258        fn _decode(
56259            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56260        ) -> Result<StreamSocketGetTcpDeferAcceptResult, fidl::Error> {
56261            let _response = fidl::client::decode_transaction_body::<
56262                fidl::encoding::ResultType<
56263                    StreamSocketGetTcpDeferAcceptResponse,
56264                    fidl_fuchsia_posix::Errno,
56265                >,
56266                fidl::encoding::DefaultFuchsiaResourceDialect,
56267                0x64589790842cb7c6,
56268            >(_buf?)?;
56269            Ok(_response.map(|x| x.value_secs))
56270        }
56271        self.client.send_query_and_decode::<
56272            fidl::encoding::EmptyPayload,
56273            StreamSocketGetTcpDeferAcceptResult,
56274        >(
56275            (),
56276            0x64589790842cb7c6,
56277            fidl::encoding::DynamicFlags::empty(),
56278            _decode,
56279        )
56280    }
56281
56282    type SetTcpWindowClampResponseFut = fidl::client::QueryResponseFut<
56283        StreamSocketSetTcpWindowClampResult,
56284        fidl::encoding::DefaultFuchsiaResourceDialect,
56285    >;
56286    fn r#set_tcp_window_clamp(&self, mut value: u32) -> Self::SetTcpWindowClampResponseFut {
56287        fn _decode(
56288            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56289        ) -> Result<StreamSocketSetTcpWindowClampResult, fidl::Error> {
56290            let _response = fidl::client::decode_transaction_body::<
56291                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56292                fidl::encoding::DefaultFuchsiaResourceDialect,
56293                0x4a26ce07d847f1c6,
56294            >(_buf?)?;
56295            Ok(_response.map(|x| x))
56296        }
56297        self.client.send_query_and_decode::<
56298            StreamSocketSetTcpWindowClampRequest,
56299            StreamSocketSetTcpWindowClampResult,
56300        >(
56301            (value,),
56302            0x4a26ce07d847f1c6,
56303            fidl::encoding::DynamicFlags::empty(),
56304            _decode,
56305        )
56306    }
56307
56308    type GetTcpWindowClampResponseFut = fidl::client::QueryResponseFut<
56309        StreamSocketGetTcpWindowClampResult,
56310        fidl::encoding::DefaultFuchsiaResourceDialect,
56311    >;
56312    fn r#get_tcp_window_clamp(&self) -> Self::GetTcpWindowClampResponseFut {
56313        fn _decode(
56314            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56315        ) -> Result<StreamSocketGetTcpWindowClampResult, fidl::Error> {
56316            let _response = fidl::client::decode_transaction_body::<
56317                fidl::encoding::ResultType<
56318                    StreamSocketGetTcpWindowClampResponse,
56319                    fidl_fuchsia_posix::Errno,
56320                >,
56321                fidl::encoding::DefaultFuchsiaResourceDialect,
56322                0x2df6b636bf0a6a4e,
56323            >(_buf?)?;
56324            Ok(_response.map(|x| x.value))
56325        }
56326        self.client.send_query_and_decode::<
56327            fidl::encoding::EmptyPayload,
56328            StreamSocketGetTcpWindowClampResult,
56329        >(
56330            (),
56331            0x2df6b636bf0a6a4e,
56332            fidl::encoding::DynamicFlags::empty(),
56333            _decode,
56334        )
56335    }
56336
56337    type GetTcpInfoResponseFut = fidl::client::QueryResponseFut<
56338        StreamSocketGetTcpInfoResult,
56339        fidl::encoding::DefaultFuchsiaResourceDialect,
56340    >;
56341    fn r#get_tcp_info(&self) -> Self::GetTcpInfoResponseFut {
56342        fn _decode(
56343            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56344        ) -> Result<StreamSocketGetTcpInfoResult, fidl::Error> {
56345            let _response = fidl::client::decode_transaction_body::<
56346                fidl::encoding::ResultType<
56347                    StreamSocketGetTcpInfoResponse,
56348                    fidl_fuchsia_posix::Errno,
56349                >,
56350                fidl::encoding::DefaultFuchsiaResourceDialect,
56351                0x1ffb123d9f03ead2,
56352            >(_buf?)?;
56353            Ok(_response.map(|x| x.info))
56354        }
56355        self.client
56356            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpInfoResult>(
56357                (),
56358                0x1ffb123d9f03ead2,
56359                fidl::encoding::DynamicFlags::empty(),
56360                _decode,
56361            )
56362    }
56363
56364    type SetTcpQuickAckResponseFut = fidl::client::QueryResponseFut<
56365        StreamSocketSetTcpQuickAckResult,
56366        fidl::encoding::DefaultFuchsiaResourceDialect,
56367    >;
56368    fn r#set_tcp_quick_ack(&self, mut value: bool) -> Self::SetTcpQuickAckResponseFut {
56369        fn _decode(
56370            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56371        ) -> Result<StreamSocketSetTcpQuickAckResult, fidl::Error> {
56372            let _response = fidl::client::decode_transaction_body::<
56373                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56374                fidl::encoding::DefaultFuchsiaResourceDialect,
56375                0x6fa811be8fde7457,
56376            >(_buf?)?;
56377            Ok(_response.map(|x| x))
56378        }
56379        self.client.send_query_and_decode::<
56380            StreamSocketSetTcpQuickAckRequest,
56381            StreamSocketSetTcpQuickAckResult,
56382        >(
56383            (value,),
56384            0x6fa811be8fde7457,
56385            fidl::encoding::DynamicFlags::empty(),
56386            _decode,
56387        )
56388    }
56389
56390    type GetTcpQuickAckResponseFut = fidl::client::QueryResponseFut<
56391        StreamSocketGetTcpQuickAckResult,
56392        fidl::encoding::DefaultFuchsiaResourceDialect,
56393    >;
56394    fn r#get_tcp_quick_ack(&self) -> Self::GetTcpQuickAckResponseFut {
56395        fn _decode(
56396            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56397        ) -> Result<StreamSocketGetTcpQuickAckResult, fidl::Error> {
56398            let _response = fidl::client::decode_transaction_body::<
56399                fidl::encoding::ResultType<
56400                    StreamSocketGetTcpQuickAckResponse,
56401                    fidl_fuchsia_posix::Errno,
56402                >,
56403                fidl::encoding::DefaultFuchsiaResourceDialect,
56404                0x7356a949bef2df32,
56405            >(_buf?)?;
56406            Ok(_response.map(|x| x.value))
56407        }
56408        self.client.send_query_and_decode::<
56409            fidl::encoding::EmptyPayload,
56410            StreamSocketGetTcpQuickAckResult,
56411        >(
56412            (),
56413            0x7356a949bef2df32,
56414            fidl::encoding::DynamicFlags::empty(),
56415            _decode,
56416        )
56417    }
56418
56419    type SetTcpCongestionResponseFut = fidl::client::QueryResponseFut<
56420        StreamSocketSetTcpCongestionResult,
56421        fidl::encoding::DefaultFuchsiaResourceDialect,
56422    >;
56423    fn r#set_tcp_congestion(
56424        &self,
56425        mut value: TcpCongestionControl,
56426    ) -> Self::SetTcpCongestionResponseFut {
56427        fn _decode(
56428            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56429        ) -> Result<StreamSocketSetTcpCongestionResult, fidl::Error> {
56430            let _response = fidl::client::decode_transaction_body::<
56431                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56432                fidl::encoding::DefaultFuchsiaResourceDialect,
56433                0x7924c6eabde7819e,
56434            >(_buf?)?;
56435            Ok(_response.map(|x| x))
56436        }
56437        self.client.send_query_and_decode::<
56438            StreamSocketSetTcpCongestionRequest,
56439            StreamSocketSetTcpCongestionResult,
56440        >(
56441            (value,),
56442            0x7924c6eabde7819e,
56443            fidl::encoding::DynamicFlags::empty(),
56444            _decode,
56445        )
56446    }
56447
56448    type GetTcpCongestionResponseFut = fidl::client::QueryResponseFut<
56449        StreamSocketGetTcpCongestionResult,
56450        fidl::encoding::DefaultFuchsiaResourceDialect,
56451    >;
56452    fn r#get_tcp_congestion(&self) -> Self::GetTcpCongestionResponseFut {
56453        fn _decode(
56454            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56455        ) -> Result<StreamSocketGetTcpCongestionResult, fidl::Error> {
56456            let _response = fidl::client::decode_transaction_body::<
56457                fidl::encoding::ResultType<
56458                    StreamSocketGetTcpCongestionResponse,
56459                    fidl_fuchsia_posix::Errno,
56460                >,
56461                fidl::encoding::DefaultFuchsiaResourceDialect,
56462                0x11e16397e1b72a47,
56463            >(_buf?)?;
56464            Ok(_response.map(|x| x.value))
56465        }
56466        self.client.send_query_and_decode::<
56467            fidl::encoding::EmptyPayload,
56468            StreamSocketGetTcpCongestionResult,
56469        >(
56470            (),
56471            0x11e16397e1b72a47,
56472            fidl::encoding::DynamicFlags::empty(),
56473            _decode,
56474        )
56475    }
56476
56477    type SetTcpUserTimeoutResponseFut = fidl::client::QueryResponseFut<
56478        StreamSocketSetTcpUserTimeoutResult,
56479        fidl::encoding::DefaultFuchsiaResourceDialect,
56480    >;
56481    fn r#set_tcp_user_timeout(&self, mut value_millis: u32) -> Self::SetTcpUserTimeoutResponseFut {
56482        fn _decode(
56483            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56484        ) -> Result<StreamSocketSetTcpUserTimeoutResult, fidl::Error> {
56485            let _response = fidl::client::decode_transaction_body::<
56486                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56487                fidl::encoding::DefaultFuchsiaResourceDialect,
56488                0x6b459e81c3741a60,
56489            >(_buf?)?;
56490            Ok(_response.map(|x| x))
56491        }
56492        self.client.send_query_and_decode::<
56493            StreamSocketSetTcpUserTimeoutRequest,
56494            StreamSocketSetTcpUserTimeoutResult,
56495        >(
56496            (value_millis,),
56497            0x6b459e81c3741a60,
56498            fidl::encoding::DynamicFlags::empty(),
56499            _decode,
56500        )
56501    }
56502
56503    type GetTcpUserTimeoutResponseFut = fidl::client::QueryResponseFut<
56504        StreamSocketGetTcpUserTimeoutResult,
56505        fidl::encoding::DefaultFuchsiaResourceDialect,
56506    >;
56507    fn r#get_tcp_user_timeout(&self) -> Self::GetTcpUserTimeoutResponseFut {
56508        fn _decode(
56509            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56510        ) -> Result<StreamSocketGetTcpUserTimeoutResult, fidl::Error> {
56511            let _response = fidl::client::decode_transaction_body::<
56512                fidl::encoding::ResultType<
56513                    StreamSocketGetTcpUserTimeoutResponse,
56514                    fidl_fuchsia_posix::Errno,
56515                >,
56516                fidl::encoding::DefaultFuchsiaResourceDialect,
56517                0x24bbd5858ad8c380,
56518            >(_buf?)?;
56519            Ok(_response.map(|x| x.value_millis))
56520        }
56521        self.client.send_query_and_decode::<
56522            fidl::encoding::EmptyPayload,
56523            StreamSocketGetTcpUserTimeoutResult,
56524        >(
56525            (),
56526            0x24bbd5858ad8c380,
56527            fidl::encoding::DynamicFlags::empty(),
56528            _decode,
56529        )
56530    }
56531}
56532
56533pub struct StreamSocketEventStream {
56534    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
56535}
56536
56537impl std::marker::Unpin for StreamSocketEventStream {}
56538
56539impl futures::stream::FusedStream for StreamSocketEventStream {
56540    fn is_terminated(&self) -> bool {
56541        self.event_receiver.is_terminated()
56542    }
56543}
56544
56545impl futures::Stream for StreamSocketEventStream {
56546    type Item = Result<StreamSocketEvent, fidl::Error>;
56547
56548    fn poll_next(
56549        mut self: std::pin::Pin<&mut Self>,
56550        cx: &mut std::task::Context<'_>,
56551    ) -> std::task::Poll<Option<Self::Item>> {
56552        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
56553            &mut self.event_receiver,
56554            cx
56555        )?) {
56556            Some(buf) => std::task::Poll::Ready(Some(StreamSocketEvent::decode(buf))),
56557            None => std::task::Poll::Ready(None),
56558        }
56559    }
56560}
56561
56562#[derive(Debug)]
56563pub enum StreamSocketEvent {}
56564
56565impl StreamSocketEvent {
56566    /// Decodes a message buffer as a [`StreamSocketEvent`].
56567    fn decode(
56568        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
56569    ) -> Result<StreamSocketEvent, fidl::Error> {
56570        let (bytes, _handles) = buf.split_mut();
56571        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
56572        debug_assert_eq!(tx_header.tx_id, 0);
56573        match tx_header.ordinal {
56574            _ => Err(fidl::Error::UnknownOrdinal {
56575                ordinal: tx_header.ordinal,
56576                protocol_name: <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
56577            }),
56578        }
56579    }
56580}
56581
56582/// A Stream of incoming requests for fuchsia.posix.socket/StreamSocket.
56583pub struct StreamSocketRequestStream {
56584    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
56585    is_terminated: bool,
56586}
56587
56588impl std::marker::Unpin for StreamSocketRequestStream {}
56589
56590impl futures::stream::FusedStream for StreamSocketRequestStream {
56591    fn is_terminated(&self) -> bool {
56592        self.is_terminated
56593    }
56594}
56595
56596impl fidl::endpoints::RequestStream for StreamSocketRequestStream {
56597    type Protocol = StreamSocketMarker;
56598    type ControlHandle = StreamSocketControlHandle;
56599
56600    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
56601        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
56602    }
56603
56604    fn control_handle(&self) -> Self::ControlHandle {
56605        StreamSocketControlHandle { inner: self.inner.clone() }
56606    }
56607
56608    fn into_inner(
56609        self,
56610    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
56611    {
56612        (self.inner, self.is_terminated)
56613    }
56614
56615    fn from_inner(
56616        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
56617        is_terminated: bool,
56618    ) -> Self {
56619        Self { inner, is_terminated }
56620    }
56621}
56622
56623impl futures::Stream for StreamSocketRequestStream {
56624    type Item = Result<StreamSocketRequest, fidl::Error>;
56625
56626    fn poll_next(
56627        mut self: std::pin::Pin<&mut Self>,
56628        cx: &mut std::task::Context<'_>,
56629    ) -> std::task::Poll<Option<Self::Item>> {
56630        let this = &mut *self;
56631        if this.inner.check_shutdown(cx) {
56632            this.is_terminated = true;
56633            return std::task::Poll::Ready(None);
56634        }
56635        if this.is_terminated {
56636            panic!("polled StreamSocketRequestStream after completion");
56637        }
56638        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
56639            |bytes, handles| {
56640                match this.inner.channel().read_etc(cx, bytes, handles) {
56641                    std::task::Poll::Ready(Ok(())) => {}
56642                    std::task::Poll::Pending => return std::task::Poll::Pending,
56643                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
56644                        this.is_terminated = true;
56645                        return std::task::Poll::Ready(None);
56646                    }
56647                    std::task::Poll::Ready(Err(e)) => {
56648                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
56649                            e.into(),
56650                        ))));
56651                    }
56652                }
56653
56654                // A message has been received from the channel
56655                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
56656
56657                std::task::Poll::Ready(Some(match header.ordinal {
56658                    0x20d8a7aba2168a79 => {
56659                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
56660                        let mut req = fidl::new_empty!(
56661                            fidl_fuchsia_unknown::CloneableCloneRequest,
56662                            fidl::encoding::DefaultFuchsiaResourceDialect
56663                        );
56664                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
56665                        let control_handle =
56666                            StreamSocketControlHandle { inner: this.inner.clone() };
56667                        Ok(StreamSocketRequest::Clone { request: req.request, control_handle })
56668                    }
56669                    0x5ac5d459ad7f657e => {
56670                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56671                        let mut req = fidl::new_empty!(
56672                            fidl::encoding::EmptyPayload,
56673                            fidl::encoding::DefaultFuchsiaResourceDialect
56674                        );
56675                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56676                        let control_handle =
56677                            StreamSocketControlHandle { inner: this.inner.clone() };
56678                        Ok(StreamSocketRequest::Close {
56679                            responder: StreamSocketCloseResponder {
56680                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56681                                tx_id: header.tx_id,
56682                            },
56683                        })
56684                    }
56685                    0x2658edee9decfc06 => {
56686                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56687                        let mut req = fidl::new_empty!(
56688                            fidl::encoding::EmptyPayload,
56689                            fidl::encoding::DefaultFuchsiaResourceDialect
56690                        );
56691                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56692                        let control_handle =
56693                            StreamSocketControlHandle { inner: this.inner.clone() };
56694                        Ok(StreamSocketRequest::Query {
56695                            responder: StreamSocketQueryResponder {
56696                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56697                                tx_id: header.tx_id,
56698                            },
56699                        })
56700                    }
56701                    0x1fd74ee8b9a4a876 => {
56702                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56703                        let mut req = fidl::new_empty!(
56704                            BaseSocketSetReuseAddressRequest,
56705                            fidl::encoding::DefaultFuchsiaResourceDialect
56706                        );
56707                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
56708                        let control_handle =
56709                            StreamSocketControlHandle { inner: this.inner.clone() };
56710                        Ok(StreamSocketRequest::SetReuseAddress {
56711                            value: req.value,
56712
56713                            responder: StreamSocketSetReuseAddressResponder {
56714                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56715                                tx_id: header.tx_id,
56716                            },
56717                        })
56718                    }
56719                    0x67b7206b8d1bc0a5 => {
56720                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56721                        let mut req = fidl::new_empty!(
56722                            fidl::encoding::EmptyPayload,
56723                            fidl::encoding::DefaultFuchsiaResourceDialect
56724                        );
56725                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56726                        let control_handle =
56727                            StreamSocketControlHandle { inner: this.inner.clone() };
56728                        Ok(StreamSocketRequest::GetReuseAddress {
56729                            responder: StreamSocketGetReuseAddressResponder {
56730                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56731                                tx_id: header.tx_id,
56732                            },
56733                        })
56734                    }
56735                    0x5aad39b33e5f6ebb => {
56736                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56737                        let mut req = fidl::new_empty!(
56738                            fidl::encoding::EmptyPayload,
56739                            fidl::encoding::DefaultFuchsiaResourceDialect
56740                        );
56741                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56742                        let control_handle =
56743                            StreamSocketControlHandle { inner: this.inner.clone() };
56744                        Ok(StreamSocketRequest::GetError {
56745                            responder: StreamSocketGetErrorResponder {
56746                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56747                                tx_id: header.tx_id,
56748                            },
56749                        })
56750                    }
56751                    0x6023e081ce3cd947 => {
56752                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56753                        let mut req = fidl::new_empty!(
56754                            BaseSocketSetBroadcastRequest,
56755                            fidl::encoding::DefaultFuchsiaResourceDialect
56756                        );
56757                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
56758                        let control_handle =
56759                            StreamSocketControlHandle { inner: this.inner.clone() };
56760                        Ok(StreamSocketRequest::SetBroadcast {
56761                            value: req.value,
56762
56763                            responder: StreamSocketSetBroadcastResponder {
56764                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56765                                tx_id: header.tx_id,
56766                            },
56767                        })
56768                    }
56769                    0x68796fc556f9780d => {
56770                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56771                        let mut req = fidl::new_empty!(
56772                            fidl::encoding::EmptyPayload,
56773                            fidl::encoding::DefaultFuchsiaResourceDialect
56774                        );
56775                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56776                        let control_handle =
56777                            StreamSocketControlHandle { inner: this.inner.clone() };
56778                        Ok(StreamSocketRequest::GetBroadcast {
56779                            responder: StreamSocketGetBroadcastResponder {
56780                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56781                                tx_id: header.tx_id,
56782                            },
56783                        })
56784                    }
56785                    0x756eac32d73a7a70 => {
56786                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56787                        let mut req = fidl::new_empty!(
56788                            BaseSocketSetSendBufferRequest,
56789                            fidl::encoding::DefaultFuchsiaResourceDialect
56790                        );
56791                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
56792                        let control_handle =
56793                            StreamSocketControlHandle { inner: this.inner.clone() };
56794                        Ok(StreamSocketRequest::SetSendBuffer {
56795                            value_bytes: req.value_bytes,
56796
56797                            responder: StreamSocketSetSendBufferResponder {
56798                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56799                                tx_id: header.tx_id,
56800                            },
56801                        })
56802                    }
56803                    0x78a52fd9c7b2410b => {
56804                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56805                        let mut req = fidl::new_empty!(
56806                            fidl::encoding::EmptyPayload,
56807                            fidl::encoding::DefaultFuchsiaResourceDialect
56808                        );
56809                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56810                        let control_handle =
56811                            StreamSocketControlHandle { inner: this.inner.clone() };
56812                        Ok(StreamSocketRequest::GetSendBuffer {
56813                            responder: StreamSocketGetSendBufferResponder {
56814                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56815                                tx_id: header.tx_id,
56816                            },
56817                        })
56818                    }
56819                    0x6b0cf2f1919c7001 => {
56820                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56821                        let mut req = fidl::new_empty!(
56822                            BaseSocketSetReceiveBufferRequest,
56823                            fidl::encoding::DefaultFuchsiaResourceDialect
56824                        );
56825                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
56826                        let control_handle =
56827                            StreamSocketControlHandle { inner: this.inner.clone() };
56828                        Ok(StreamSocketRequest::SetReceiveBuffer {
56829                            value_bytes: req.value_bytes,
56830
56831                            responder: StreamSocketSetReceiveBufferResponder {
56832                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56833                                tx_id: header.tx_id,
56834                            },
56835                        })
56836                    }
56837                    0x14c1a4b64f709e5c => {
56838                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56839                        let mut req = fidl::new_empty!(
56840                            fidl::encoding::EmptyPayload,
56841                            fidl::encoding::DefaultFuchsiaResourceDialect
56842                        );
56843                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56844                        let control_handle =
56845                            StreamSocketControlHandle { inner: this.inner.clone() };
56846                        Ok(StreamSocketRequest::GetReceiveBuffer {
56847                            responder: StreamSocketGetReceiveBufferResponder {
56848                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56849                                tx_id: header.tx_id,
56850                            },
56851                        })
56852                    }
56853                    0x572df8f0b920d2c7 => {
56854                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56855                        let mut req = fidl::new_empty!(
56856                            BaseSocketSetKeepAliveRequest,
56857                            fidl::encoding::DefaultFuchsiaResourceDialect
56858                        );
56859                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
56860                        let control_handle =
56861                            StreamSocketControlHandle { inner: this.inner.clone() };
56862                        Ok(StreamSocketRequest::SetKeepAlive {
56863                            value: req.value,
56864
56865                            responder: StreamSocketSetKeepAliveResponder {
56866                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56867                                tx_id: header.tx_id,
56868                            },
56869                        })
56870                    }
56871                    0x2dd29d3215f2c9d2 => {
56872                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56873                        let mut req = fidl::new_empty!(
56874                            fidl::encoding::EmptyPayload,
56875                            fidl::encoding::DefaultFuchsiaResourceDialect
56876                        );
56877                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56878                        let control_handle =
56879                            StreamSocketControlHandle { inner: this.inner.clone() };
56880                        Ok(StreamSocketRequest::GetKeepAlive {
56881                            responder: StreamSocketGetKeepAliveResponder {
56882                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56883                                tx_id: header.tx_id,
56884                            },
56885                        })
56886                    }
56887                    0x3ecb49968bee439 => {
56888                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56889                        let mut req = fidl::new_empty!(
56890                            BaseSocketSetOutOfBandInlineRequest,
56891                            fidl::encoding::DefaultFuchsiaResourceDialect
56892                        );
56893                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
56894                        let control_handle =
56895                            StreamSocketControlHandle { inner: this.inner.clone() };
56896                        Ok(StreamSocketRequest::SetOutOfBandInline {
56897                            value: req.value,
56898
56899                            responder: StreamSocketSetOutOfBandInlineResponder {
56900                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56901                                tx_id: header.tx_id,
56902                            },
56903                        })
56904                    }
56905                    0x348c1ab3aeca1745 => {
56906                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56907                        let mut req = fidl::new_empty!(
56908                            fidl::encoding::EmptyPayload,
56909                            fidl::encoding::DefaultFuchsiaResourceDialect
56910                        );
56911                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56912                        let control_handle =
56913                            StreamSocketControlHandle { inner: this.inner.clone() };
56914                        Ok(StreamSocketRequest::GetOutOfBandInline {
56915                            responder: StreamSocketGetOutOfBandInlineResponder {
56916                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56917                                tx_id: header.tx_id,
56918                            },
56919                        })
56920                    }
56921                    0x6bbf00c53a4c78c2 => {
56922                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56923                        let mut req = fidl::new_empty!(
56924                            BaseSocketSetNoCheckRequest,
56925                            fidl::encoding::DefaultFuchsiaResourceDialect
56926                        );
56927                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
56928                        let control_handle =
56929                            StreamSocketControlHandle { inner: this.inner.clone() };
56930                        Ok(StreamSocketRequest::SetNoCheck {
56931                            value: req.value,
56932
56933                            responder: StreamSocketSetNoCheckResponder {
56934                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56935                                tx_id: header.tx_id,
56936                            },
56937                        })
56938                    }
56939                    0x2cd4249286417694 => {
56940                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56941                        let mut req = fidl::new_empty!(
56942                            fidl::encoding::EmptyPayload,
56943                            fidl::encoding::DefaultFuchsiaResourceDialect
56944                        );
56945                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56946                        let control_handle =
56947                            StreamSocketControlHandle { inner: this.inner.clone() };
56948                        Ok(StreamSocketRequest::GetNoCheck {
56949                            responder: StreamSocketGetNoCheckResponder {
56950                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56951                                tx_id: header.tx_id,
56952                            },
56953                        })
56954                    }
56955                    0x45386351246e998e => {
56956                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56957                        let mut req = fidl::new_empty!(
56958                            BaseSocketSetLingerRequest,
56959                            fidl::encoding::DefaultFuchsiaResourceDialect
56960                        );
56961                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
56962                        let control_handle =
56963                            StreamSocketControlHandle { inner: this.inner.clone() };
56964                        Ok(StreamSocketRequest::SetLinger {
56965                            linger: req.linger,
56966                            length_secs: req.length_secs,
56967
56968                            responder: StreamSocketSetLingerResponder {
56969                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56970                                tx_id: header.tx_id,
56971                            },
56972                        })
56973                    }
56974                    0x48eb20fc5ccb0e45 => {
56975                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56976                        let mut req = fidl::new_empty!(
56977                            fidl::encoding::EmptyPayload,
56978                            fidl::encoding::DefaultFuchsiaResourceDialect
56979                        );
56980                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56981                        let control_handle =
56982                            StreamSocketControlHandle { inner: this.inner.clone() };
56983                        Ok(StreamSocketRequest::GetLinger {
56984                            responder: StreamSocketGetLingerResponder {
56985                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56986                                tx_id: header.tx_id,
56987                            },
56988                        })
56989                    }
56990                    0x24dd3e5cb36d9ccb => {
56991                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56992                        let mut req = fidl::new_empty!(
56993                            BaseSocketSetReusePortRequest,
56994                            fidl::encoding::DefaultFuchsiaResourceDialect
56995                        );
56996                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
56997                        let control_handle =
56998                            StreamSocketControlHandle { inner: this.inner.clone() };
56999                        Ok(StreamSocketRequest::SetReusePort {
57000                            value: req.value,
57001
57002                            responder: StreamSocketSetReusePortResponder {
57003                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57004                                tx_id: header.tx_id,
57005                            },
57006                        })
57007                    }
57008                    0x7a112c1ab54ff828 => {
57009                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57010                        let mut req = fidl::new_empty!(
57011                            fidl::encoding::EmptyPayload,
57012                            fidl::encoding::DefaultFuchsiaResourceDialect
57013                        );
57014                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57015                        let control_handle =
57016                            StreamSocketControlHandle { inner: this.inner.clone() };
57017                        Ok(StreamSocketRequest::GetReusePort {
57018                            responder: StreamSocketGetReusePortResponder {
57019                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57020                                tx_id: header.tx_id,
57021                            },
57022                        })
57023                    }
57024                    0x67ce6db6c2ec8966 => {
57025                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57026                        let mut req = fidl::new_empty!(
57027                            fidl::encoding::EmptyPayload,
57028                            fidl::encoding::DefaultFuchsiaResourceDialect
57029                        );
57030                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57031                        let control_handle =
57032                            StreamSocketControlHandle { inner: this.inner.clone() };
57033                        Ok(StreamSocketRequest::GetAcceptConn {
57034                            responder: StreamSocketGetAcceptConnResponder {
57035                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57036                                tx_id: header.tx_id,
57037                            },
57038                        })
57039                    }
57040                    0x2118b483f28aafc4 => {
57041                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57042                        let mut req = fidl::new_empty!(
57043                            BaseSocketSetBindToDeviceRequest,
57044                            fidl::encoding::DefaultFuchsiaResourceDialect
57045                        );
57046                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
57047                        let control_handle =
57048                            StreamSocketControlHandle { inner: this.inner.clone() };
57049                        Ok(StreamSocketRequest::SetBindToDevice {
57050                            value: req.value,
57051
57052                            responder: StreamSocketSetBindToDeviceResponder {
57053                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57054                                tx_id: header.tx_id,
57055                            },
57056                        })
57057                    }
57058                    0x1ab1fbf0ef7906c8 => {
57059                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57060                        let mut req = fidl::new_empty!(
57061                            fidl::encoding::EmptyPayload,
57062                            fidl::encoding::DefaultFuchsiaResourceDialect
57063                        );
57064                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57065                        let control_handle =
57066                            StreamSocketControlHandle { inner: this.inner.clone() };
57067                        Ok(StreamSocketRequest::GetBindToDevice {
57068                            responder: StreamSocketGetBindToDeviceResponder {
57069                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57070                                tx_id: header.tx_id,
57071                            },
57072                        })
57073                    }
57074                    0x6e387a0def00821 => {
57075                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57076                        let mut req = fidl::new_empty!(
57077                            BaseSocketSetBindToInterfaceIndexRequest,
57078                            fidl::encoding::DefaultFuchsiaResourceDialect
57079                        );
57080                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
57081                        let control_handle =
57082                            StreamSocketControlHandle { inner: this.inner.clone() };
57083                        Ok(StreamSocketRequest::SetBindToInterfaceIndex {
57084                            value: req.value,
57085
57086                            responder: StreamSocketSetBindToInterfaceIndexResponder {
57087                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57088                                tx_id: header.tx_id,
57089                            },
57090                        })
57091                    }
57092                    0x59c31dd3e3078295 => {
57093                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57094                        let mut req = fidl::new_empty!(
57095                            fidl::encoding::EmptyPayload,
57096                            fidl::encoding::DefaultFuchsiaResourceDialect
57097                        );
57098                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57099                        let control_handle =
57100                            StreamSocketControlHandle { inner: this.inner.clone() };
57101                        Ok(StreamSocketRequest::GetBindToInterfaceIndex {
57102                            responder: StreamSocketGetBindToInterfaceIndexResponder {
57103                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57104                                tx_id: header.tx_id,
57105                            },
57106                        })
57107                    }
57108                    0x285d6516c263d839 => {
57109                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57110                        let mut req = fidl::new_empty!(
57111                            BaseSocketSetTimestampRequest,
57112                            fidl::encoding::DefaultFuchsiaResourceDialect
57113                        );
57114                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
57115                        let control_handle =
57116                            StreamSocketControlHandle { inner: this.inner.clone() };
57117                        Ok(StreamSocketRequest::SetTimestamp {
57118                            value: req.value,
57119
57120                            responder: StreamSocketSetTimestampResponder {
57121                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57122                                tx_id: header.tx_id,
57123                            },
57124                        })
57125                    }
57126                    0x49f2fffbbcc2bd27 => {
57127                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57128                        let mut req = fidl::new_empty!(
57129                            fidl::encoding::EmptyPayload,
57130                            fidl::encoding::DefaultFuchsiaResourceDialect
57131                        );
57132                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57133                        let control_handle =
57134                            StreamSocketControlHandle { inner: this.inner.clone() };
57135                        Ok(StreamSocketRequest::GetTimestamp {
57136                            responder: StreamSocketGetTimestampResponder {
57137                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57138                                tx_id: header.tx_id,
57139                            },
57140                        })
57141                    }
57142                    0x6ead6de09f653236 => {
57143                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57144                        let mut req = fidl::new_empty!(
57145                            BaseSocketSetMarkRequest,
57146                            fidl::encoding::DefaultFuchsiaResourceDialect
57147                        );
57148                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
57149                        let control_handle =
57150                            StreamSocketControlHandle { inner: this.inner.clone() };
57151                        Ok(StreamSocketRequest::SetMark {
57152                            domain: req.domain,
57153                            mark: req.mark,
57154
57155                            responder: StreamSocketSetMarkResponder {
57156                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57157                                tx_id: header.tx_id,
57158                            },
57159                        })
57160                    }
57161                    0x57a2752c61d93d47 => {
57162                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57163                        let mut req = fidl::new_empty!(
57164                            BaseSocketGetMarkRequest,
57165                            fidl::encoding::DefaultFuchsiaResourceDialect
57166                        );
57167                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
57168                        let control_handle =
57169                            StreamSocketControlHandle { inner: this.inner.clone() };
57170                        Ok(StreamSocketRequest::GetMark {
57171                            domain: req.domain,
57172
57173                            responder: StreamSocketGetMarkResponder {
57174                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57175                                tx_id: header.tx_id,
57176                            },
57177                        })
57178                    }
57179                    0x2c2f47fd8f924e52 => {
57180                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57181                        let mut req = fidl::new_empty!(
57182                            fidl::encoding::EmptyPayload,
57183                            fidl::encoding::DefaultFuchsiaResourceDialect
57184                        );
57185                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57186                        let control_handle =
57187                            StreamSocketControlHandle { inner: this.inner.clone() };
57188                        Ok(StreamSocketRequest::GetCookie {
57189                            responder: StreamSocketGetCookieResponder {
57190                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57191                                tx_id: header.tx_id,
57192                            },
57193                        })
57194                    }
57195                    0x4bc6400ae92125d => {
57196                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57197                        let mut req = fidl::new_empty!(
57198                            BaseNetworkSocketBindRequest,
57199                            fidl::encoding::DefaultFuchsiaResourceDialect
57200                        );
57201                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
57202                        let control_handle =
57203                            StreamSocketControlHandle { inner: this.inner.clone() };
57204                        Ok(StreamSocketRequest::Bind {
57205                            addr: req.addr,
57206
57207                            responder: StreamSocketBindResponder {
57208                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57209                                tx_id: header.tx_id,
57210                            },
57211                        })
57212                    }
57213                    0x5f05f19bfdd38871 => {
57214                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57215                        let mut req = fidl::new_empty!(
57216                            BaseNetworkSocketConnectRequest,
57217                            fidl::encoding::DefaultFuchsiaResourceDialect
57218                        );
57219                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
57220                        let control_handle =
57221                            StreamSocketControlHandle { inner: this.inner.clone() };
57222                        Ok(StreamSocketRequest::Connect {
57223                            addr: req.addr,
57224
57225                            responder: StreamSocketConnectResponder {
57226                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57227                                tx_id: header.tx_id,
57228                            },
57229                        })
57230                    }
57231                    0x74e63b91f7b29b2 => {
57232                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57233                        let mut req = fidl::new_empty!(
57234                            fidl::encoding::EmptyPayload,
57235                            fidl::encoding::DefaultFuchsiaResourceDialect
57236                        );
57237                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57238                        let control_handle =
57239                            StreamSocketControlHandle { inner: this.inner.clone() };
57240                        Ok(StreamSocketRequest::Disconnect {
57241                            responder: StreamSocketDisconnectResponder {
57242                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57243                                tx_id: header.tx_id,
57244                            },
57245                        })
57246                    }
57247                    0x475f23f84a1a4f85 => {
57248                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57249                        let mut req = fidl::new_empty!(
57250                            fidl::encoding::EmptyPayload,
57251                            fidl::encoding::DefaultFuchsiaResourceDialect
57252                        );
57253                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57254                        let control_handle =
57255                            StreamSocketControlHandle { inner: this.inner.clone() };
57256                        Ok(StreamSocketRequest::GetSockName {
57257                            responder: StreamSocketGetSockNameResponder {
57258                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57259                                tx_id: header.tx_id,
57260                            },
57261                        })
57262                    }
57263                    0x1ffecf4bd5b6432e => {
57264                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57265                        let mut req = fidl::new_empty!(
57266                            fidl::encoding::EmptyPayload,
57267                            fidl::encoding::DefaultFuchsiaResourceDialect
57268                        );
57269                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57270                        let control_handle =
57271                            StreamSocketControlHandle { inner: this.inner.clone() };
57272                        Ok(StreamSocketRequest::GetPeerName {
57273                            responder: StreamSocketGetPeerNameResponder {
57274                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57275                                tx_id: header.tx_id,
57276                            },
57277                        })
57278                    }
57279                    0x247f38b6db68c336 => {
57280                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57281                        let mut req = fidl::new_empty!(
57282                            BaseNetworkSocketShutdownRequest,
57283                            fidl::encoding::DefaultFuchsiaResourceDialect
57284                        );
57285                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
57286                        let control_handle =
57287                            StreamSocketControlHandle { inner: this.inner.clone() };
57288                        Ok(StreamSocketRequest::Shutdown {
57289                            mode: req.mode,
57290
57291                            responder: StreamSocketShutdownResponder {
57292                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57293                                tx_id: header.tx_id,
57294                            },
57295                        })
57296                    }
57297                    0x995c600475b6d46 => {
57298                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57299                        let mut req = fidl::new_empty!(
57300                            BaseNetworkSocketSetIpTypeOfServiceRequest,
57301                            fidl::encoding::DefaultFuchsiaResourceDialect
57302                        );
57303                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
57304                        let control_handle =
57305                            StreamSocketControlHandle { inner: this.inner.clone() };
57306                        Ok(StreamSocketRequest::SetIpTypeOfService {
57307                            value: req.value,
57308
57309                            responder: StreamSocketSetIpTypeOfServiceResponder {
57310                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57311                                tx_id: header.tx_id,
57312                            },
57313                        })
57314                    }
57315                    0x3814a04259f75fcb => {
57316                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57317                        let mut req = fidl::new_empty!(
57318                            fidl::encoding::EmptyPayload,
57319                            fidl::encoding::DefaultFuchsiaResourceDialect
57320                        );
57321                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57322                        let control_handle =
57323                            StreamSocketControlHandle { inner: this.inner.clone() };
57324                        Ok(StreamSocketRequest::GetIpTypeOfService {
57325                            responder: StreamSocketGetIpTypeOfServiceResponder {
57326                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57327                                tx_id: header.tx_id,
57328                            },
57329                        })
57330                    }
57331                    0x29e2424b433ae1ef => {
57332                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57333                        let mut req = fidl::new_empty!(
57334                            BaseNetworkSocketSetIpTtlRequest,
57335                            fidl::encoding::DefaultFuchsiaResourceDialect
57336                        );
57337                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
57338                        let control_handle =
57339                            StreamSocketControlHandle { inner: this.inner.clone() };
57340                        Ok(StreamSocketRequest::SetIpTtl {
57341                            value: req.value,
57342
57343                            responder: StreamSocketSetIpTtlResponder {
57344                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57345                                tx_id: header.tx_id,
57346                            },
57347                        })
57348                    }
57349                    0x47e47fa1f24da471 => {
57350                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57351                        let mut req = fidl::new_empty!(
57352                            fidl::encoding::EmptyPayload,
57353                            fidl::encoding::DefaultFuchsiaResourceDialect
57354                        );
57355                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57356                        let control_handle =
57357                            StreamSocketControlHandle { inner: this.inner.clone() };
57358                        Ok(StreamSocketRequest::GetIpTtl {
57359                            responder: StreamSocketGetIpTtlResponder {
57360                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57361                                tx_id: header.tx_id,
57362                            },
57363                        })
57364                    }
57365                    0x392d16bee20c0e16 => {
57366                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57367                        let mut req = fidl::new_empty!(
57368                            BaseNetworkSocketSetIpPacketInfoRequest,
57369                            fidl::encoding::DefaultFuchsiaResourceDialect
57370                        );
57371                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
57372                        let control_handle =
57373                            StreamSocketControlHandle { inner: this.inner.clone() };
57374                        Ok(StreamSocketRequest::SetIpPacketInfo {
57375                            value: req.value,
57376
57377                            responder: StreamSocketSetIpPacketInfoResponder {
57378                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57379                                tx_id: header.tx_id,
57380                            },
57381                        })
57382                    }
57383                    0x54b505f242280740 => {
57384                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57385                        let mut req = fidl::new_empty!(
57386                            fidl::encoding::EmptyPayload,
57387                            fidl::encoding::DefaultFuchsiaResourceDialect
57388                        );
57389                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57390                        let control_handle =
57391                            StreamSocketControlHandle { inner: this.inner.clone() };
57392                        Ok(StreamSocketRequest::GetIpPacketInfo {
57393                            responder: StreamSocketGetIpPacketInfoResponder {
57394                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57395                                tx_id: header.tx_id,
57396                            },
57397                        })
57398                    }
57399                    0x6c4f6714995f84ef => {
57400                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57401                        let mut req = fidl::new_empty!(
57402                            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
57403                            fidl::encoding::DefaultFuchsiaResourceDialect
57404                        );
57405                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
57406                        let control_handle =
57407                            StreamSocketControlHandle { inner: this.inner.clone() };
57408                        Ok(StreamSocketRequest::SetIpReceiveTypeOfService {
57409                            value: req.value,
57410
57411                            responder: StreamSocketSetIpReceiveTypeOfServiceResponder {
57412                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57413                                tx_id: header.tx_id,
57414                            },
57415                        })
57416                    }
57417                    0x4158ba7dc2795960 => {
57418                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57419                        let mut req = fidl::new_empty!(
57420                            fidl::encoding::EmptyPayload,
57421                            fidl::encoding::DefaultFuchsiaResourceDialect
57422                        );
57423                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57424                        let control_handle =
57425                            StreamSocketControlHandle { inner: this.inner.clone() };
57426                        Ok(StreamSocketRequest::GetIpReceiveTypeOfService {
57427                            responder: StreamSocketGetIpReceiveTypeOfServiceResponder {
57428                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57429                                tx_id: header.tx_id,
57430                            },
57431                        })
57432                    }
57433                    0x46f15be0ce0ab82b => {
57434                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57435                        let mut req = fidl::new_empty!(
57436                            BaseNetworkSocketSetIpReceiveTtlRequest,
57437                            fidl::encoding::DefaultFuchsiaResourceDialect
57438                        );
57439                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
57440                        let control_handle =
57441                            StreamSocketControlHandle { inner: this.inner.clone() };
57442                        Ok(StreamSocketRequest::SetIpReceiveTtl {
57443                            value: req.value,
57444
57445                            responder: StreamSocketSetIpReceiveTtlResponder {
57446                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57447                                tx_id: header.tx_id,
57448                            },
57449                        })
57450                    }
57451                    0x678ddd5a5dfa2eb5 => {
57452                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57453                        let mut req = fidl::new_empty!(
57454                            fidl::encoding::EmptyPayload,
57455                            fidl::encoding::DefaultFuchsiaResourceDialect
57456                        );
57457                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57458                        let control_handle =
57459                            StreamSocketControlHandle { inner: this.inner.clone() };
57460                        Ok(StreamSocketRequest::GetIpReceiveTtl {
57461                            responder: StreamSocketGetIpReceiveTtlResponder {
57462                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57463                                tx_id: header.tx_id,
57464                            },
57465                        })
57466                    }
57467                    0x752fbfa9b12befe => {
57468                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57469                        let mut req = fidl::new_empty!(
57470                            BaseNetworkSocketSetIpMulticastInterfaceRequest,
57471                            fidl::encoding::DefaultFuchsiaResourceDialect
57472                        );
57473                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
57474                        let control_handle =
57475                            StreamSocketControlHandle { inner: this.inner.clone() };
57476                        Ok(StreamSocketRequest::SetIpMulticastInterface {
57477                            iface: req.iface,
57478                            address: req.address,
57479
57480                            responder: StreamSocketSetIpMulticastInterfaceResponder {
57481                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57482                                tx_id: header.tx_id,
57483                            },
57484                        })
57485                    }
57486                    0x320bd14c4df046c4 => {
57487                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57488                        let mut req = fidl::new_empty!(
57489                            fidl::encoding::EmptyPayload,
57490                            fidl::encoding::DefaultFuchsiaResourceDialect
57491                        );
57492                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57493                        let control_handle =
57494                            StreamSocketControlHandle { inner: this.inner.clone() };
57495                        Ok(StreamSocketRequest::GetIpMulticastInterface {
57496                            responder: StreamSocketGetIpMulticastInterfaceResponder {
57497                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57498                                tx_id: header.tx_id,
57499                            },
57500                        })
57501                    }
57502                    0x63134d53772916a1 => {
57503                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57504                        let mut req = fidl::new_empty!(
57505                            BaseNetworkSocketSetIpMulticastTtlRequest,
57506                            fidl::encoding::DefaultFuchsiaResourceDialect
57507                        );
57508                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
57509                        let control_handle =
57510                            StreamSocketControlHandle { inner: this.inner.clone() };
57511                        Ok(StreamSocketRequest::SetIpMulticastTtl {
57512                            value: req.value,
57513
57514                            responder: StreamSocketSetIpMulticastTtlResponder {
57515                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57516                                tx_id: header.tx_id,
57517                            },
57518                        })
57519                    }
57520                    0x4665cd378f39e1a => {
57521                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57522                        let mut req = fidl::new_empty!(
57523                            fidl::encoding::EmptyPayload,
57524                            fidl::encoding::DefaultFuchsiaResourceDialect
57525                        );
57526                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57527                        let control_handle =
57528                            StreamSocketControlHandle { inner: this.inner.clone() };
57529                        Ok(StreamSocketRequest::GetIpMulticastTtl {
57530                            responder: StreamSocketGetIpMulticastTtlResponder {
57531                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57532                                tx_id: header.tx_id,
57533                            },
57534                        })
57535                    }
57536                    0x20c55c11f00943ea => {
57537                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57538                        let mut req = fidl::new_empty!(
57539                            BaseNetworkSocketSetIpMulticastLoopbackRequest,
57540                            fidl::encoding::DefaultFuchsiaResourceDialect
57541                        );
57542                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
57543                        let control_handle =
57544                            StreamSocketControlHandle { inner: this.inner.clone() };
57545                        Ok(StreamSocketRequest::SetIpMulticastLoopback {
57546                            value: req.value,
57547
57548                            responder: StreamSocketSetIpMulticastLoopbackResponder {
57549                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57550                                tx_id: header.tx_id,
57551                            },
57552                        })
57553                    }
57554                    0x3b6b26ff558298f2 => {
57555                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57556                        let mut req = fidl::new_empty!(
57557                            fidl::encoding::EmptyPayload,
57558                            fidl::encoding::DefaultFuchsiaResourceDialect
57559                        );
57560                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57561                        let control_handle =
57562                            StreamSocketControlHandle { inner: this.inner.clone() };
57563                        Ok(StreamSocketRequest::GetIpMulticastLoopback {
57564                            responder: StreamSocketGetIpMulticastLoopbackResponder {
57565                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57566                                tx_id: header.tx_id,
57567                            },
57568                        })
57569                    }
57570                    0x76bc7df115a3b4d0 => {
57571                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57572                        let mut req = fidl::new_empty!(
57573                            BaseNetworkSocketAddIpMembershipRequest,
57574                            fidl::encoding::DefaultFuchsiaResourceDialect
57575                        );
57576                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
57577                        let control_handle =
57578                            StreamSocketControlHandle { inner: this.inner.clone() };
57579                        Ok(StreamSocketRequest::AddIpMembership {
57580                            membership: req.membership,
57581
57582                            responder: StreamSocketAddIpMembershipResponder {
57583                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57584                                tx_id: header.tx_id,
57585                            },
57586                        })
57587                    }
57588                    0x2888f3099188d03 => {
57589                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57590                        let mut req = fidl::new_empty!(
57591                            BaseNetworkSocketDropIpMembershipRequest,
57592                            fidl::encoding::DefaultFuchsiaResourceDialect
57593                        );
57594                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
57595                        let control_handle =
57596                            StreamSocketControlHandle { inner: this.inner.clone() };
57597                        Ok(StreamSocketRequest::DropIpMembership {
57598                            membership: req.membership,
57599
57600                            responder: StreamSocketDropIpMembershipResponder {
57601                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57602                                tx_id: header.tx_id,
57603                            },
57604                        })
57605                    }
57606                    0x1ae532b0c066e3a0 => {
57607                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57608                        let mut req = fidl::new_empty!(
57609                            BaseNetworkSocketSetIpTransparentRequest,
57610                            fidl::encoding::DefaultFuchsiaResourceDialect
57611                        );
57612                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
57613                        let control_handle =
57614                            StreamSocketControlHandle { inner: this.inner.clone() };
57615                        Ok(StreamSocketRequest::SetIpTransparent {
57616                            value: req.value,
57617
57618                            responder: StreamSocketSetIpTransparentResponder {
57619                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57620                                tx_id: header.tx_id,
57621                            },
57622                        })
57623                    }
57624                    0x51d43695962ebfb5 => {
57625                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57626                        let mut req = fidl::new_empty!(
57627                            fidl::encoding::EmptyPayload,
57628                            fidl::encoding::DefaultFuchsiaResourceDialect
57629                        );
57630                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57631                        let control_handle =
57632                            StreamSocketControlHandle { inner: this.inner.clone() };
57633                        Ok(StreamSocketRequest::GetIpTransparent {
57634                            responder: StreamSocketGetIpTransparentResponder {
57635                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57636                                tx_id: header.tx_id,
57637                            },
57638                        })
57639                    }
57640                    0x4722b4ce52f7840 => {
57641                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57642                        let mut req = fidl::new_empty!(
57643                            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
57644                            fidl::encoding::DefaultFuchsiaResourceDialect
57645                        );
57646                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
57647                        let control_handle =
57648                            StreamSocketControlHandle { inner: this.inner.clone() };
57649                        Ok(StreamSocketRequest::SetIpReceiveOriginalDestinationAddress {
57650                            value: req.value,
57651
57652                            responder:
57653                                StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
57654                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
57655                                    tx_id: header.tx_id,
57656                                },
57657                        })
57658                    }
57659                    0x2a0e7dc5d6bfdfe9 => {
57660                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57661                        let mut req = fidl::new_empty!(
57662                            fidl::encoding::EmptyPayload,
57663                            fidl::encoding::DefaultFuchsiaResourceDialect
57664                        );
57665                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57666                        let control_handle =
57667                            StreamSocketControlHandle { inner: this.inner.clone() };
57668                        Ok(StreamSocketRequest::GetIpReceiveOriginalDestinationAddress {
57669                            responder:
57670                                StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
57671                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
57672                                    tx_id: header.tx_id,
57673                                },
57674                        })
57675                    }
57676                    0x7c94727acb4ea4b3 => {
57677                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57678                        let mut req = fidl::new_empty!(
57679                            BaseNetworkSocketAddIpv6MembershipRequest,
57680                            fidl::encoding::DefaultFuchsiaResourceDialect
57681                        );
57682                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
57683                        let control_handle =
57684                            StreamSocketControlHandle { inner: this.inner.clone() };
57685                        Ok(StreamSocketRequest::AddIpv6Membership {
57686                            membership: req.membership,
57687
57688                            responder: StreamSocketAddIpv6MembershipResponder {
57689                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57690                                tx_id: header.tx_id,
57691                            },
57692                        })
57693                    }
57694                    0x42104c70ccaba304 => {
57695                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57696                        let mut req = fidl::new_empty!(
57697                            BaseNetworkSocketDropIpv6MembershipRequest,
57698                            fidl::encoding::DefaultFuchsiaResourceDialect
57699                        );
57700                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
57701                        let control_handle =
57702                            StreamSocketControlHandle { inner: this.inner.clone() };
57703                        Ok(StreamSocketRequest::DropIpv6Membership {
57704                            membership: req.membership,
57705
57706                            responder: StreamSocketDropIpv6MembershipResponder {
57707                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57708                                tx_id: header.tx_id,
57709                            },
57710                        })
57711                    }
57712                    0x135f76db3774ab3b => {
57713                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57714                        let mut req = fidl::new_empty!(
57715                            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
57716                            fidl::encoding::DefaultFuchsiaResourceDialect
57717                        );
57718                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
57719                        let control_handle =
57720                            StreamSocketControlHandle { inner: this.inner.clone() };
57721                        Ok(StreamSocketRequest::SetIpv6MulticastInterface {
57722                            value: req.value,
57723
57724                            responder: StreamSocketSetIpv6MulticastInterfaceResponder {
57725                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57726                                tx_id: header.tx_id,
57727                            },
57728                        })
57729                    }
57730                    0x1f26fcdd348f1882 => {
57731                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57732                        let mut req = fidl::new_empty!(
57733                            fidl::encoding::EmptyPayload,
57734                            fidl::encoding::DefaultFuchsiaResourceDialect
57735                        );
57736                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57737                        let control_handle =
57738                            StreamSocketControlHandle { inner: this.inner.clone() };
57739                        Ok(StreamSocketRequest::GetIpv6MulticastInterface {
57740                            responder: StreamSocketGetIpv6MulticastInterfaceResponder {
57741                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57742                                tx_id: header.tx_id,
57743                            },
57744                        })
57745                    }
57746                    0x157d51e98f462859 => {
57747                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57748                        let mut req = fidl::new_empty!(
57749                            BaseNetworkSocketSetIpv6UnicastHopsRequest,
57750                            fidl::encoding::DefaultFuchsiaResourceDialect
57751                        );
57752                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
57753                        let control_handle =
57754                            StreamSocketControlHandle { inner: this.inner.clone() };
57755                        Ok(StreamSocketRequest::SetIpv6UnicastHops {
57756                            value: req.value,
57757
57758                            responder: StreamSocketSetIpv6UnicastHopsResponder {
57759                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57760                                tx_id: header.tx_id,
57761                            },
57762                        })
57763                    }
57764                    0x21f4641cad8bd8d2 => {
57765                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57766                        let mut req = fidl::new_empty!(
57767                            fidl::encoding::EmptyPayload,
57768                            fidl::encoding::DefaultFuchsiaResourceDialect
57769                        );
57770                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57771                        let control_handle =
57772                            StreamSocketControlHandle { inner: this.inner.clone() };
57773                        Ok(StreamSocketRequest::GetIpv6UnicastHops {
57774                            responder: StreamSocketGetIpv6UnicastHopsResponder {
57775                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57776                                tx_id: header.tx_id,
57777                            },
57778                        })
57779                    }
57780                    0x5c24808ed2e84a1e => {
57781                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57782                        let mut req = fidl::new_empty!(
57783                            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
57784                            fidl::encoding::DefaultFuchsiaResourceDialect
57785                        );
57786                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
57787                        let control_handle =
57788                            StreamSocketControlHandle { inner: this.inner.clone() };
57789                        Ok(StreamSocketRequest::SetIpv6ReceiveHopLimit {
57790                            value: req.value,
57791
57792                            responder: StreamSocketSetIpv6ReceiveHopLimitResponder {
57793                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57794                                tx_id: header.tx_id,
57795                            },
57796                        })
57797                    }
57798                    0x341e06689885b4c0 => {
57799                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57800                        let mut req = fidl::new_empty!(
57801                            fidl::encoding::EmptyPayload,
57802                            fidl::encoding::DefaultFuchsiaResourceDialect
57803                        );
57804                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57805                        let control_handle =
57806                            StreamSocketControlHandle { inner: this.inner.clone() };
57807                        Ok(StreamSocketRequest::GetIpv6ReceiveHopLimit {
57808                            responder: StreamSocketGetIpv6ReceiveHopLimitResponder {
57809                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57810                                tx_id: header.tx_id,
57811                            },
57812                        })
57813                    }
57814                    0x25b9cd4d181f82c1 => {
57815                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57816                        let mut req = fidl::new_empty!(
57817                            BaseNetworkSocketSetIpv6MulticastHopsRequest,
57818                            fidl::encoding::DefaultFuchsiaResourceDialect
57819                        );
57820                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
57821                        let control_handle =
57822                            StreamSocketControlHandle { inner: this.inner.clone() };
57823                        Ok(StreamSocketRequest::SetIpv6MulticastHops {
57824                            value: req.value,
57825
57826                            responder: StreamSocketSetIpv6MulticastHopsResponder {
57827                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57828                                tx_id: header.tx_id,
57829                            },
57830                        })
57831                    }
57832                    0x52916948a365012a => {
57833                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57834                        let mut req = fidl::new_empty!(
57835                            fidl::encoding::EmptyPayload,
57836                            fidl::encoding::DefaultFuchsiaResourceDialect
57837                        );
57838                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57839                        let control_handle =
57840                            StreamSocketControlHandle { inner: this.inner.clone() };
57841                        Ok(StreamSocketRequest::GetIpv6MulticastHops {
57842                            responder: StreamSocketGetIpv6MulticastHopsResponder {
57843                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57844                                tx_id: header.tx_id,
57845                            },
57846                        })
57847                    }
57848                    0x55701c409ff41b40 => {
57849                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57850                        let mut req = fidl::new_empty!(
57851                            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
57852                            fidl::encoding::DefaultFuchsiaResourceDialect
57853                        );
57854                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
57855                        let control_handle =
57856                            StreamSocketControlHandle { inner: this.inner.clone() };
57857                        Ok(StreamSocketRequest::SetIpv6MulticastLoopback {
57858                            value: req.value,
57859
57860                            responder: StreamSocketSetIpv6MulticastLoopbackResponder {
57861                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57862                                tx_id: header.tx_id,
57863                            },
57864                        })
57865                    }
57866                    0x4415b701fde319c3 => {
57867                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57868                        let mut req = fidl::new_empty!(
57869                            fidl::encoding::EmptyPayload,
57870                            fidl::encoding::DefaultFuchsiaResourceDialect
57871                        );
57872                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57873                        let control_handle =
57874                            StreamSocketControlHandle { inner: this.inner.clone() };
57875                        Ok(StreamSocketRequest::GetIpv6MulticastLoopback {
57876                            responder: StreamSocketGetIpv6MulticastLoopbackResponder {
57877                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57878                                tx_id: header.tx_id,
57879                            },
57880                        })
57881                    }
57882                    0x4873f1364758cbba => {
57883                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57884                        let mut req = fidl::new_empty!(
57885                            BaseNetworkSocketSetIpv6OnlyRequest,
57886                            fidl::encoding::DefaultFuchsiaResourceDialect
57887                        );
57888                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
57889                        let control_handle =
57890                            StreamSocketControlHandle { inner: this.inner.clone() };
57891                        Ok(StreamSocketRequest::SetIpv6Only {
57892                            value: req.value,
57893
57894                            responder: StreamSocketSetIpv6OnlyResponder {
57895                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57896                                tx_id: header.tx_id,
57897                            },
57898                        })
57899                    }
57900                    0x4aa3340a1a26b89c => {
57901                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57902                        let mut req = fidl::new_empty!(
57903                            fidl::encoding::EmptyPayload,
57904                            fidl::encoding::DefaultFuchsiaResourceDialect
57905                        );
57906                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57907                        let control_handle =
57908                            StreamSocketControlHandle { inner: this.inner.clone() };
57909                        Ok(StreamSocketRequest::GetIpv6Only {
57910                            responder: StreamSocketGetIpv6OnlyResponder {
57911                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57912                                tx_id: header.tx_id,
57913                            },
57914                        })
57915                    }
57916                    0x58f07c8788d099a0 => {
57917                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57918                        let mut req = fidl::new_empty!(
57919                            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
57920                            fidl::encoding::DefaultFuchsiaResourceDialect
57921                        );
57922                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
57923                        let control_handle =
57924                            StreamSocketControlHandle { inner: this.inner.clone() };
57925                        Ok(StreamSocketRequest::SetIpv6ReceiveTrafficClass {
57926                            value: req.value,
57927
57928                            responder: StreamSocketSetIpv6ReceiveTrafficClassResponder {
57929                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57930                                tx_id: header.tx_id,
57931                            },
57932                        })
57933                    }
57934                    0x2e334df1da553ffa => {
57935                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57936                        let mut req = fidl::new_empty!(
57937                            fidl::encoding::EmptyPayload,
57938                            fidl::encoding::DefaultFuchsiaResourceDialect
57939                        );
57940                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57941                        let control_handle =
57942                            StreamSocketControlHandle { inner: this.inner.clone() };
57943                        Ok(StreamSocketRequest::GetIpv6ReceiveTrafficClass {
57944                            responder: StreamSocketGetIpv6ReceiveTrafficClassResponder {
57945                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57946                                tx_id: header.tx_id,
57947                            },
57948                        })
57949                    }
57950                    0x6af077800c5a0b4f => {
57951                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57952                        let mut req = fidl::new_empty!(
57953                            BaseNetworkSocketSetIpv6TrafficClassRequest,
57954                            fidl::encoding::DefaultFuchsiaResourceDialect
57955                        );
57956                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
57957                        let control_handle =
57958                            StreamSocketControlHandle { inner: this.inner.clone() };
57959                        Ok(StreamSocketRequest::SetIpv6TrafficClass {
57960                            value: req.value,
57961
57962                            responder: StreamSocketSetIpv6TrafficClassResponder {
57963                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57964                                tx_id: header.tx_id,
57965                            },
57966                        })
57967                    }
57968                    0x6baf6eed8fc2f04 => {
57969                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57970                        let mut req = fidl::new_empty!(
57971                            fidl::encoding::EmptyPayload,
57972                            fidl::encoding::DefaultFuchsiaResourceDialect
57973                        );
57974                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57975                        let control_handle =
57976                            StreamSocketControlHandle { inner: this.inner.clone() };
57977                        Ok(StreamSocketRequest::GetIpv6TrafficClass {
57978                            responder: StreamSocketGetIpv6TrafficClassResponder {
57979                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57980                                tx_id: header.tx_id,
57981                            },
57982                        })
57983                    }
57984                    0x19259775b1a92768 => {
57985                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57986                        let mut req = fidl::new_empty!(
57987                            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
57988                            fidl::encoding::DefaultFuchsiaResourceDialect
57989                        );
57990                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
57991                        let control_handle =
57992                            StreamSocketControlHandle { inner: this.inner.clone() };
57993                        Ok(StreamSocketRequest::SetIpv6ReceivePacketInfo {
57994                            value: req.value,
57995
57996                            responder: StreamSocketSetIpv6ReceivePacketInfoResponder {
57997                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57998                                tx_id: header.tx_id,
57999                            },
58000                        })
58001                    }
58002                    0x7acd4a2775baec75 => {
58003                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58004                        let mut req = fidl::new_empty!(
58005                            fidl::encoding::EmptyPayload,
58006                            fidl::encoding::DefaultFuchsiaResourceDialect
58007                        );
58008                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58009                        let control_handle =
58010                            StreamSocketControlHandle { inner: this.inner.clone() };
58011                        Ok(StreamSocketRequest::GetIpv6ReceivePacketInfo {
58012                            responder: StreamSocketGetIpv6ReceivePacketInfoResponder {
58013                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58014                                tx_id: header.tx_id,
58015                            },
58016                        })
58017                    }
58018                    0x38bf28f0dafdbac0 => {
58019                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58020                        let mut req = fidl::new_empty!(
58021                            fidl::encoding::EmptyPayload,
58022                            fidl::encoding::DefaultFuchsiaResourceDialect
58023                        );
58024                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58025                        let control_handle =
58026                            StreamSocketControlHandle { inner: this.inner.clone() };
58027                        Ok(StreamSocketRequest::GetOriginalDestination {
58028                            responder: StreamSocketGetOriginalDestinationResponder {
58029                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58030                                tx_id: header.tx_id,
58031                            },
58032                        })
58033                    }
58034                    0x29e22969a7dadc32 => {
58035                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58036                        let mut req = fidl::new_empty!(
58037                            fidl::encoding::EmptyPayload,
58038                            fidl::encoding::DefaultFuchsiaResourceDialect
58039                        );
58040                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58041                        let control_handle =
58042                            StreamSocketControlHandle { inner: this.inner.clone() };
58043                        Ok(StreamSocketRequest::Describe {
58044                            responder: StreamSocketDescribeResponder {
58045                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58046                                tx_id: header.tx_id,
58047                            },
58048                        })
58049                    }
58050                    0x3d0a65ced3d10108 => {
58051                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58052                        let mut req = fidl::new_empty!(
58053                            StreamSocketListenRequest,
58054                            fidl::encoding::DefaultFuchsiaResourceDialect
58055                        );
58056                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketListenRequest>(&header, _body_bytes, handles, &mut req)?;
58057                        let control_handle =
58058                            StreamSocketControlHandle { inner: this.inner.clone() };
58059                        Ok(StreamSocketRequest::Listen {
58060                            backlog: req.backlog,
58061
58062                            responder: StreamSocketListenResponder {
58063                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58064                                tx_id: header.tx_id,
58065                            },
58066                        })
58067                    }
58068                    0x5ab7ad620424c163 => {
58069                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58070                        let mut req = fidl::new_empty!(
58071                            StreamSocketAcceptRequest,
58072                            fidl::encoding::DefaultFuchsiaResourceDialect
58073                        );
58074                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketAcceptRequest>(&header, _body_bytes, handles, &mut req)?;
58075                        let control_handle =
58076                            StreamSocketControlHandle { inner: this.inner.clone() };
58077                        Ok(StreamSocketRequest::Accept {
58078                            want_addr: req.want_addr,
58079
58080                            responder: StreamSocketAcceptResponder {
58081                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58082                                tx_id: header.tx_id,
58083                            },
58084                        })
58085                    }
58086                    0x87cfa55d19f878f => {
58087                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58088                        let mut req = fidl::new_empty!(
58089                            fidl::encoding::EmptyPayload,
58090                            fidl::encoding::DefaultFuchsiaResourceDialect
58091                        );
58092                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58093                        let control_handle =
58094                            StreamSocketControlHandle { inner: this.inner.clone() };
58095                        Ok(StreamSocketRequest::GetInfo {
58096                            responder: StreamSocketGetInfoResponder {
58097                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58098                                tx_id: header.tx_id,
58099                            },
58100                        })
58101                    }
58102                    0x5a59b778f7333ada => {
58103                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58104                        let mut req = fidl::new_empty!(
58105                            StreamSocketSetTcpNoDelayRequest,
58106                            fidl::encoding::DefaultFuchsiaResourceDialect
58107                        );
58108                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpNoDelayRequest>(&header, _body_bytes, handles, &mut req)?;
58109                        let control_handle =
58110                            StreamSocketControlHandle { inner: this.inner.clone() };
58111                        Ok(StreamSocketRequest::SetTcpNoDelay {
58112                            value: req.value,
58113
58114                            responder: StreamSocketSetTcpNoDelayResponder {
58115                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58116                                tx_id: header.tx_id,
58117                            },
58118                        })
58119                    }
58120                    0xac219a3218b0799 => {
58121                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58122                        let mut req = fidl::new_empty!(
58123                            fidl::encoding::EmptyPayload,
58124                            fidl::encoding::DefaultFuchsiaResourceDialect
58125                        );
58126                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58127                        let control_handle =
58128                            StreamSocketControlHandle { inner: this.inner.clone() };
58129                        Ok(StreamSocketRequest::GetTcpNoDelay {
58130                            responder: StreamSocketGetTcpNoDelayResponder {
58131                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58132                                tx_id: header.tx_id,
58133                            },
58134                        })
58135                    }
58136                    0xb3d30c498266d18 => {
58137                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58138                        let mut req = fidl::new_empty!(
58139                            StreamSocketSetTcpMaxSegmentRequest,
58140                            fidl::encoding::DefaultFuchsiaResourceDialect
58141                        );
58142                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpMaxSegmentRequest>(&header, _body_bytes, handles, &mut req)?;
58143                        let control_handle =
58144                            StreamSocketControlHandle { inner: this.inner.clone() };
58145                        Ok(StreamSocketRequest::SetTcpMaxSegment {
58146                            value_bytes: req.value_bytes,
58147
58148                            responder: StreamSocketSetTcpMaxSegmentResponder {
58149                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58150                                tx_id: header.tx_id,
58151                            },
58152                        })
58153                    }
58154                    0x637404d1b4b9982c => {
58155                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58156                        let mut req = fidl::new_empty!(
58157                            fidl::encoding::EmptyPayload,
58158                            fidl::encoding::DefaultFuchsiaResourceDialect
58159                        );
58160                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58161                        let control_handle =
58162                            StreamSocketControlHandle { inner: this.inner.clone() };
58163                        Ok(StreamSocketRequest::GetTcpMaxSegment {
58164                            responder: StreamSocketGetTcpMaxSegmentResponder {
58165                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58166                                tx_id: header.tx_id,
58167                            },
58168                        })
58169                    }
58170                    0x62e26891541143a0 => {
58171                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58172                        let mut req = fidl::new_empty!(
58173                            StreamSocketSetTcpCorkRequest,
58174                            fidl::encoding::DefaultFuchsiaResourceDialect
58175                        );
58176                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpCorkRequest>(&header, _body_bytes, handles, &mut req)?;
58177                        let control_handle =
58178                            StreamSocketControlHandle { inner: this.inner.clone() };
58179                        Ok(StreamSocketRequest::SetTcpCork {
58180                            value: req.value,
58181
58182                            responder: StreamSocketSetTcpCorkResponder {
58183                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58184                                tx_id: header.tx_id,
58185                            },
58186                        })
58187                    }
58188                    0x435bb232e0e74f32 => {
58189                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58190                        let mut req = fidl::new_empty!(
58191                            fidl::encoding::EmptyPayload,
58192                            fidl::encoding::DefaultFuchsiaResourceDialect
58193                        );
58194                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58195                        let control_handle =
58196                            StreamSocketControlHandle { inner: this.inner.clone() };
58197                        Ok(StreamSocketRequest::GetTcpCork {
58198                            responder: StreamSocketGetTcpCorkResponder {
58199                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58200                                tx_id: header.tx_id,
58201                            },
58202                        })
58203                    }
58204                    0x196d053d8363c42 => {
58205                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58206                        let mut req = fidl::new_empty!(
58207                            StreamSocketSetTcpKeepAliveIdleRequest,
58208                            fidl::encoding::DefaultFuchsiaResourceDialect
58209                        );
58210                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpKeepAliveIdleRequest>(&header, _body_bytes, handles, &mut req)?;
58211                        let control_handle =
58212                            StreamSocketControlHandle { inner: this.inner.clone() };
58213                        Ok(StreamSocketRequest::SetTcpKeepAliveIdle {
58214                            value_secs: req.value_secs,
58215
58216                            responder: StreamSocketSetTcpKeepAliveIdleResponder {
58217                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58218                                tx_id: header.tx_id,
58219                            },
58220                        })
58221                    }
58222                    0x35ec58564879dac => {
58223                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58224                        let mut req = fidl::new_empty!(
58225                            fidl::encoding::EmptyPayload,
58226                            fidl::encoding::DefaultFuchsiaResourceDialect
58227                        );
58228                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58229                        let control_handle =
58230                            StreamSocketControlHandle { inner: this.inner.clone() };
58231                        Ok(StreamSocketRequest::GetTcpKeepAliveIdle {
58232                            responder: StreamSocketGetTcpKeepAliveIdleResponder {
58233                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58234                                tx_id: header.tx_id,
58235                            },
58236                        })
58237                    }
58238                    0x485ffbc2da1243f2 => {
58239                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58240                        let mut req = fidl::new_empty!(
58241                            StreamSocketSetTcpKeepAliveIntervalRequest,
58242                            fidl::encoding::DefaultFuchsiaResourceDialect
58243                        );
58244                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpKeepAliveIntervalRequest>(&header, _body_bytes, handles, &mut req)?;
58245                        let control_handle =
58246                            StreamSocketControlHandle { inner: this.inner.clone() };
58247                        Ok(StreamSocketRequest::SetTcpKeepAliveInterval {
58248                            value_secs: req.value_secs,
58249
58250                            responder: StreamSocketSetTcpKeepAliveIntervalResponder {
58251                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58252                                tx_id: header.tx_id,
58253                            },
58254                        })
58255                    }
58256                    0x264eaf46306b284 => {
58257                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58258                        let mut req = fidl::new_empty!(
58259                            fidl::encoding::EmptyPayload,
58260                            fidl::encoding::DefaultFuchsiaResourceDialect
58261                        );
58262                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58263                        let control_handle =
58264                            StreamSocketControlHandle { inner: this.inner.clone() };
58265                        Ok(StreamSocketRequest::GetTcpKeepAliveInterval {
58266                            responder: StreamSocketGetTcpKeepAliveIntervalResponder {
58267                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58268                                tx_id: header.tx_id,
58269                            },
58270                        })
58271                    }
58272                    0x2ab2e8c111708421 => {
58273                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58274                        let mut req = fidl::new_empty!(
58275                            StreamSocketSetTcpKeepAliveCountRequest,
58276                            fidl::encoding::DefaultFuchsiaResourceDialect
58277                        );
58278                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpKeepAliveCountRequest>(&header, _body_bytes, handles, &mut req)?;
58279                        let control_handle =
58280                            StreamSocketControlHandle { inner: this.inner.clone() };
58281                        Ok(StreamSocketRequest::SetTcpKeepAliveCount {
58282                            value: req.value,
58283
58284                            responder: StreamSocketSetTcpKeepAliveCountResponder {
58285                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58286                                tx_id: header.tx_id,
58287                            },
58288                        })
58289                    }
58290                    0x2f176ae271fe7a09 => {
58291                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58292                        let mut req = fidl::new_empty!(
58293                            fidl::encoding::EmptyPayload,
58294                            fidl::encoding::DefaultFuchsiaResourceDialect
58295                        );
58296                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58297                        let control_handle =
58298                            StreamSocketControlHandle { inner: this.inner.clone() };
58299                        Ok(StreamSocketRequest::GetTcpKeepAliveCount {
58300                            responder: StreamSocketGetTcpKeepAliveCountResponder {
58301                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58302                                tx_id: header.tx_id,
58303                            },
58304                        })
58305                    }
58306                    0x4dcd6ab5573c1eb3 => {
58307                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58308                        let mut req = fidl::new_empty!(
58309                            StreamSocketSetTcpSynCountRequest,
58310                            fidl::encoding::DefaultFuchsiaResourceDialect
58311                        );
58312                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpSynCountRequest>(&header, _body_bytes, handles, &mut req)?;
58313                        let control_handle =
58314                            StreamSocketControlHandle { inner: this.inner.clone() };
58315                        Ok(StreamSocketRequest::SetTcpSynCount {
58316                            value: req.value,
58317
58318                            responder: StreamSocketSetTcpSynCountResponder {
58319                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58320                                tx_id: header.tx_id,
58321                            },
58322                        })
58323                    }
58324                    0x7d457cba8f5f3ee6 => {
58325                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58326                        let mut req = fidl::new_empty!(
58327                            fidl::encoding::EmptyPayload,
58328                            fidl::encoding::DefaultFuchsiaResourceDialect
58329                        );
58330                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58331                        let control_handle =
58332                            StreamSocketControlHandle { inner: this.inner.clone() };
58333                        Ok(StreamSocketRequest::GetTcpSynCount {
58334                            responder: StreamSocketGetTcpSynCountResponder {
58335                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58336                                tx_id: header.tx_id,
58337                            },
58338                        })
58339                    }
58340                    0xd5cc1e8654d36e4 => {
58341                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58342                        let mut req = fidl::new_empty!(
58343                            StreamSocketSetTcpLingerRequest,
58344                            fidl::encoding::DefaultFuchsiaResourceDialect
58345                        );
58346                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpLingerRequest>(&header, _body_bytes, handles, &mut req)?;
58347                        let control_handle =
58348                            StreamSocketControlHandle { inner: this.inner.clone() };
58349                        Ok(StreamSocketRequest::SetTcpLinger {
58350                            value_secs: req.value_secs,
58351
58352                            responder: StreamSocketSetTcpLingerResponder {
58353                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58354                                tx_id: header.tx_id,
58355                            },
58356                        })
58357                    }
58358                    0xad870d311cf30eb => {
58359                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58360                        let mut req = fidl::new_empty!(
58361                            fidl::encoding::EmptyPayload,
58362                            fidl::encoding::DefaultFuchsiaResourceDialect
58363                        );
58364                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58365                        let control_handle =
58366                            StreamSocketControlHandle { inner: this.inner.clone() };
58367                        Ok(StreamSocketRequest::GetTcpLinger {
58368                            responder: StreamSocketGetTcpLingerResponder {
58369                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58370                                tx_id: header.tx_id,
58371                            },
58372                        })
58373                    }
58374                    0x15092f181e57c404 => {
58375                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58376                        let mut req = fidl::new_empty!(
58377                            StreamSocketSetTcpDeferAcceptRequest,
58378                            fidl::encoding::DefaultFuchsiaResourceDialect
58379                        );
58380                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpDeferAcceptRequest>(&header, _body_bytes, handles, &mut req)?;
58381                        let control_handle =
58382                            StreamSocketControlHandle { inner: this.inner.clone() };
58383                        Ok(StreamSocketRequest::SetTcpDeferAccept {
58384                            value_secs: req.value_secs,
58385
58386                            responder: StreamSocketSetTcpDeferAcceptResponder {
58387                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58388                                tx_id: header.tx_id,
58389                            },
58390                        })
58391                    }
58392                    0x64589790842cb7c6 => {
58393                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58394                        let mut req = fidl::new_empty!(
58395                            fidl::encoding::EmptyPayload,
58396                            fidl::encoding::DefaultFuchsiaResourceDialect
58397                        );
58398                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58399                        let control_handle =
58400                            StreamSocketControlHandle { inner: this.inner.clone() };
58401                        Ok(StreamSocketRequest::GetTcpDeferAccept {
58402                            responder: StreamSocketGetTcpDeferAcceptResponder {
58403                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58404                                tx_id: header.tx_id,
58405                            },
58406                        })
58407                    }
58408                    0x4a26ce07d847f1c6 => {
58409                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58410                        let mut req = fidl::new_empty!(
58411                            StreamSocketSetTcpWindowClampRequest,
58412                            fidl::encoding::DefaultFuchsiaResourceDialect
58413                        );
58414                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpWindowClampRequest>(&header, _body_bytes, handles, &mut req)?;
58415                        let control_handle =
58416                            StreamSocketControlHandle { inner: this.inner.clone() };
58417                        Ok(StreamSocketRequest::SetTcpWindowClamp {
58418                            value: req.value,
58419
58420                            responder: StreamSocketSetTcpWindowClampResponder {
58421                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58422                                tx_id: header.tx_id,
58423                            },
58424                        })
58425                    }
58426                    0x2df6b636bf0a6a4e => {
58427                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58428                        let mut req = fidl::new_empty!(
58429                            fidl::encoding::EmptyPayload,
58430                            fidl::encoding::DefaultFuchsiaResourceDialect
58431                        );
58432                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58433                        let control_handle =
58434                            StreamSocketControlHandle { inner: this.inner.clone() };
58435                        Ok(StreamSocketRequest::GetTcpWindowClamp {
58436                            responder: StreamSocketGetTcpWindowClampResponder {
58437                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58438                                tx_id: header.tx_id,
58439                            },
58440                        })
58441                    }
58442                    0x1ffb123d9f03ead2 => {
58443                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58444                        let mut req = fidl::new_empty!(
58445                            fidl::encoding::EmptyPayload,
58446                            fidl::encoding::DefaultFuchsiaResourceDialect
58447                        );
58448                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58449                        let control_handle =
58450                            StreamSocketControlHandle { inner: this.inner.clone() };
58451                        Ok(StreamSocketRequest::GetTcpInfo {
58452                            responder: StreamSocketGetTcpInfoResponder {
58453                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58454                                tx_id: header.tx_id,
58455                            },
58456                        })
58457                    }
58458                    0x6fa811be8fde7457 => {
58459                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58460                        let mut req = fidl::new_empty!(
58461                            StreamSocketSetTcpQuickAckRequest,
58462                            fidl::encoding::DefaultFuchsiaResourceDialect
58463                        );
58464                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpQuickAckRequest>(&header, _body_bytes, handles, &mut req)?;
58465                        let control_handle =
58466                            StreamSocketControlHandle { inner: this.inner.clone() };
58467                        Ok(StreamSocketRequest::SetTcpQuickAck {
58468                            value: req.value,
58469
58470                            responder: StreamSocketSetTcpQuickAckResponder {
58471                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58472                                tx_id: header.tx_id,
58473                            },
58474                        })
58475                    }
58476                    0x7356a949bef2df32 => {
58477                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58478                        let mut req = fidl::new_empty!(
58479                            fidl::encoding::EmptyPayload,
58480                            fidl::encoding::DefaultFuchsiaResourceDialect
58481                        );
58482                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58483                        let control_handle =
58484                            StreamSocketControlHandle { inner: this.inner.clone() };
58485                        Ok(StreamSocketRequest::GetTcpQuickAck {
58486                            responder: StreamSocketGetTcpQuickAckResponder {
58487                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58488                                tx_id: header.tx_id,
58489                            },
58490                        })
58491                    }
58492                    0x7924c6eabde7819e => {
58493                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58494                        let mut req = fidl::new_empty!(
58495                            StreamSocketSetTcpCongestionRequest,
58496                            fidl::encoding::DefaultFuchsiaResourceDialect
58497                        );
58498                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpCongestionRequest>(&header, _body_bytes, handles, &mut req)?;
58499                        let control_handle =
58500                            StreamSocketControlHandle { inner: this.inner.clone() };
58501                        Ok(StreamSocketRequest::SetTcpCongestion {
58502                            value: req.value,
58503
58504                            responder: StreamSocketSetTcpCongestionResponder {
58505                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58506                                tx_id: header.tx_id,
58507                            },
58508                        })
58509                    }
58510                    0x11e16397e1b72a47 => {
58511                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58512                        let mut req = fidl::new_empty!(
58513                            fidl::encoding::EmptyPayload,
58514                            fidl::encoding::DefaultFuchsiaResourceDialect
58515                        );
58516                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58517                        let control_handle =
58518                            StreamSocketControlHandle { inner: this.inner.clone() };
58519                        Ok(StreamSocketRequest::GetTcpCongestion {
58520                            responder: StreamSocketGetTcpCongestionResponder {
58521                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58522                                tx_id: header.tx_id,
58523                            },
58524                        })
58525                    }
58526                    0x6b459e81c3741a60 => {
58527                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58528                        let mut req = fidl::new_empty!(
58529                            StreamSocketSetTcpUserTimeoutRequest,
58530                            fidl::encoding::DefaultFuchsiaResourceDialect
58531                        );
58532                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpUserTimeoutRequest>(&header, _body_bytes, handles, &mut req)?;
58533                        let control_handle =
58534                            StreamSocketControlHandle { inner: this.inner.clone() };
58535                        Ok(StreamSocketRequest::SetTcpUserTimeout {
58536                            value_millis: req.value_millis,
58537
58538                            responder: StreamSocketSetTcpUserTimeoutResponder {
58539                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58540                                tx_id: header.tx_id,
58541                            },
58542                        })
58543                    }
58544                    0x24bbd5858ad8c380 => {
58545                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58546                        let mut req = fidl::new_empty!(
58547                            fidl::encoding::EmptyPayload,
58548                            fidl::encoding::DefaultFuchsiaResourceDialect
58549                        );
58550                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58551                        let control_handle =
58552                            StreamSocketControlHandle { inner: this.inner.clone() };
58553                        Ok(StreamSocketRequest::GetTcpUserTimeout {
58554                            responder: StreamSocketGetTcpUserTimeoutResponder {
58555                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58556                                tx_id: header.tx_id,
58557                            },
58558                        })
58559                    }
58560                    _ => Err(fidl::Error::UnknownOrdinal {
58561                        ordinal: header.ordinal,
58562                        protocol_name:
58563                            <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
58564                    }),
58565                }))
58566            },
58567        )
58568    }
58569}
58570
58571/// A stream socket.
58572///
58573/// All methods on this type are nonblocking; their exact behaviors match their
58574/// Linux counterparts.
58575///
58576/// *Warning:* This protocol is not yet ready for direct use by clients.
58577/// Instead, clients should use the BSD sockets API to interact with sockets.
58578/// We plan to change this protocol substantially and clients that couple
58579/// directly to this protocol will make those changes more difficult.
58580#[derive(Debug)]
58581pub enum StreamSocketRequest {
58582    Clone {
58583        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
58584        control_handle: StreamSocketControlHandle,
58585    },
58586    /// Terminates the connection.
58587    ///
58588    /// After calling `Close`, the client must not send any other requests.
58589    ///
58590    /// Servers, after sending the status response, should close the connection
58591    /// regardless of status and without sending an epitaph.
58592    ///
58593    /// Closing the client end of the channel should be semantically equivalent
58594    /// to calling `Close` without knowing when the close has completed or its
58595    /// status.
58596    Close {
58597        responder: StreamSocketCloseResponder,
58598    },
58599    Query {
58600        responder: StreamSocketQueryResponder,
58601    },
58602    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
58603    SetReuseAddress {
58604        value: bool,
58605        responder: StreamSocketSetReuseAddressResponder,
58606    },
58607    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
58608    GetReuseAddress {
58609        responder: StreamSocketGetReuseAddressResponder,
58610    },
58611    /// Get `SOL_SOCKET` -> `SO_ERROR`.
58612    /// Returns the last error if there is an error set on the socket.
58613    GetError {
58614        responder: StreamSocketGetErrorResponder,
58615    },
58616    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
58617    SetBroadcast {
58618        value: bool,
58619        responder: StreamSocketSetBroadcastResponder,
58620    },
58621    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
58622    GetBroadcast {
58623        responder: StreamSocketGetBroadcastResponder,
58624    },
58625    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
58626    SetSendBuffer {
58627        value_bytes: u64,
58628        responder: StreamSocketSetSendBufferResponder,
58629    },
58630    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
58631    GetSendBuffer {
58632        responder: StreamSocketGetSendBufferResponder,
58633    },
58634    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
58635    SetReceiveBuffer {
58636        value_bytes: u64,
58637        responder: StreamSocketSetReceiveBufferResponder,
58638    },
58639    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
58640    GetReceiveBuffer {
58641        responder: StreamSocketGetReceiveBufferResponder,
58642    },
58643    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
58644    SetKeepAlive {
58645        value: bool,
58646        responder: StreamSocketSetKeepAliveResponder,
58647    },
58648    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
58649    GetKeepAlive {
58650        responder: StreamSocketGetKeepAliveResponder,
58651    },
58652    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
58653    SetOutOfBandInline {
58654        value: bool,
58655        responder: StreamSocketSetOutOfBandInlineResponder,
58656    },
58657    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
58658    GetOutOfBandInline {
58659        responder: StreamSocketGetOutOfBandInlineResponder,
58660    },
58661    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
58662    SetNoCheck {
58663        value: bool,
58664        responder: StreamSocketSetNoCheckResponder,
58665    },
58666    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
58667    GetNoCheck {
58668        responder: StreamSocketGetNoCheckResponder,
58669    },
58670    /// Set `SOL_SOCKET` -> `SO_LINGER`.
58671    SetLinger {
58672        linger: bool,
58673        length_secs: u32,
58674        responder: StreamSocketSetLingerResponder,
58675    },
58676    /// Get `SOL_SOCKET` -> `SO_LINGER`.
58677    GetLinger {
58678        responder: StreamSocketGetLingerResponder,
58679    },
58680    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
58681    SetReusePort {
58682        value: bool,
58683        responder: StreamSocketSetReusePortResponder,
58684    },
58685    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
58686    GetReusePort {
58687        responder: StreamSocketGetReusePortResponder,
58688    },
58689    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
58690    GetAcceptConn {
58691        responder: StreamSocketGetAcceptConnResponder,
58692    },
58693    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
58694    SetBindToDevice {
58695        value: String,
58696        responder: StreamSocketSetBindToDeviceResponder,
58697    },
58698    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
58699    GetBindToDevice {
58700        responder: StreamSocketGetBindToDeviceResponder,
58701    },
58702    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
58703    /// If `value` is 0, this clears the bound interface.
58704    SetBindToInterfaceIndex {
58705        value: u64,
58706        responder: StreamSocketSetBindToInterfaceIndexResponder,
58707    },
58708    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
58709    GetBindToInterfaceIndex {
58710        responder: StreamSocketGetBindToInterfaceIndexResponder,
58711    },
58712    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
58713    SetTimestamp {
58714        value: TimestampOption,
58715        responder: StreamSocketSetTimestampResponder,
58716    },
58717    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
58718    GetTimestamp {
58719        responder: StreamSocketGetTimestampResponder,
58720    },
58721    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
58722    /// unlike the standard SO_MARK, this API has multiple mark domains and each
58723    /// mark can be set independently in each domain.
58724    SetMark {
58725        domain: fidl_fuchsia_net::MarkDomain,
58726        mark: OptionalUint32,
58727        responder: StreamSocketSetMarkResponder,
58728    },
58729    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
58730    /// unlike the standard SO_MARK, this API has multiple mark domains and each
58731    /// mark can be retrieved independently in each domain.
58732    GetMark {
58733        domain: fidl_fuchsia_net::MarkDomain,
58734        responder: StreamSocketGetMarkResponder,
58735    },
58736    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
58737    GetCookie {
58738        responder: StreamSocketGetCookieResponder,
58739    },
58740    /// Sets the local address used for the socket.
58741    Bind {
58742        addr: fidl_fuchsia_net::SocketAddress,
58743        responder: StreamSocketBindResponder,
58744    },
58745    /// Initiates a connection to a remote address.
58746    Connect {
58747        addr: fidl_fuchsia_net::SocketAddress,
58748        responder: StreamSocketConnectResponder,
58749    },
58750    /// Clears connection information from this socket.
58751    Disconnect {
58752        responder: StreamSocketDisconnectResponder,
58753    },
58754    /// Retrieves the local socket address.
58755    GetSockName {
58756        responder: StreamSocketGetSockNameResponder,
58757    },
58758    /// Retrieves the remote socket address.
58759    GetPeerName {
58760        responder: StreamSocketGetPeerNameResponder,
58761    },
58762    /// Shuts down part of the socket.
58763    Shutdown {
58764        mode: ShutdownMode,
58765        responder: StreamSocketShutdownResponder,
58766    },
58767    /// Set `SOL_IP` -> `IP_TOS`.
58768    SetIpTypeOfService {
58769        value: u8,
58770        responder: StreamSocketSetIpTypeOfServiceResponder,
58771    },
58772    /// Get `SOL_IP` -> `IP_TOS`.
58773    GetIpTypeOfService {
58774        responder: StreamSocketGetIpTypeOfServiceResponder,
58775    },
58776    /// Set `SOL_IP` -> `IP_TTL`.
58777    SetIpTtl {
58778        value: OptionalUint8,
58779        responder: StreamSocketSetIpTtlResponder,
58780    },
58781    /// Get `SOL_IP` -> `IP_TTL`.
58782    GetIpTtl {
58783        responder: StreamSocketGetIpTtlResponder,
58784    },
58785    /// Set `SOL_IP` -> `IP_PKTINFO`.
58786    SetIpPacketInfo {
58787        value: bool,
58788        responder: StreamSocketSetIpPacketInfoResponder,
58789    },
58790    /// Get `SOL_IP` -> `IP_PKTINFO`.
58791    GetIpPacketInfo {
58792        responder: StreamSocketGetIpPacketInfoResponder,
58793    },
58794    /// Set `SOL_IP` -> `IP_RECVTOS`.
58795    SetIpReceiveTypeOfService {
58796        value: bool,
58797        responder: StreamSocketSetIpReceiveTypeOfServiceResponder,
58798    },
58799    /// Get `SOL_IP` -> `IP_RECVTOS`.
58800    GetIpReceiveTypeOfService {
58801        responder: StreamSocketGetIpReceiveTypeOfServiceResponder,
58802    },
58803    /// Set `SOL_IP` -> `IP_RECVTTL`.
58804    SetIpReceiveTtl {
58805        value: bool,
58806        responder: StreamSocketSetIpReceiveTtlResponder,
58807    },
58808    /// Get `SOL_IP` -> `IP_RECVTTL`.
58809    GetIpReceiveTtl {
58810        responder: StreamSocketGetIpReceiveTtlResponder,
58811    },
58812    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
58813    SetIpMulticastInterface {
58814        iface: u64,
58815        address: fidl_fuchsia_net::Ipv4Address,
58816        responder: StreamSocketSetIpMulticastInterfaceResponder,
58817    },
58818    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
58819    GetIpMulticastInterface {
58820        responder: StreamSocketGetIpMulticastInterfaceResponder,
58821    },
58822    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
58823    SetIpMulticastTtl {
58824        value: OptionalUint8,
58825        responder: StreamSocketSetIpMulticastTtlResponder,
58826    },
58827    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
58828    GetIpMulticastTtl {
58829        responder: StreamSocketGetIpMulticastTtlResponder,
58830    },
58831    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
58832    SetIpMulticastLoopback {
58833        value: bool,
58834        responder: StreamSocketSetIpMulticastLoopbackResponder,
58835    },
58836    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
58837    GetIpMulticastLoopback {
58838        responder: StreamSocketGetIpMulticastLoopbackResponder,
58839    },
58840    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
58841    AddIpMembership {
58842        membership: IpMulticastMembership,
58843        responder: StreamSocketAddIpMembershipResponder,
58844    },
58845    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
58846    DropIpMembership {
58847        membership: IpMulticastMembership,
58848        responder: StreamSocketDropIpMembershipResponder,
58849    },
58850    /// Set `SOL_IP` -> `IP_TRANSPARENT`
58851    SetIpTransparent {
58852        value: bool,
58853        responder: StreamSocketSetIpTransparentResponder,
58854    },
58855    /// Get `SOL_IP` -> `IP_TRANSPARENT`
58856    GetIpTransparent {
58857        responder: StreamSocketGetIpTransparentResponder,
58858    },
58859    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
58860    SetIpReceiveOriginalDestinationAddress {
58861        value: bool,
58862        responder: StreamSocketSetIpReceiveOriginalDestinationAddressResponder,
58863    },
58864    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
58865    GetIpReceiveOriginalDestinationAddress {
58866        responder: StreamSocketGetIpReceiveOriginalDestinationAddressResponder,
58867    },
58868    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
58869    AddIpv6Membership {
58870        membership: Ipv6MulticastMembership,
58871        responder: StreamSocketAddIpv6MembershipResponder,
58872    },
58873    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
58874    DropIpv6Membership {
58875        membership: Ipv6MulticastMembership,
58876        responder: StreamSocketDropIpv6MembershipResponder,
58877    },
58878    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
58879    SetIpv6MulticastInterface {
58880        value: u64,
58881        responder: StreamSocketSetIpv6MulticastInterfaceResponder,
58882    },
58883    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
58884    GetIpv6MulticastInterface {
58885        responder: StreamSocketGetIpv6MulticastInterfaceResponder,
58886    },
58887    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
58888    SetIpv6UnicastHops {
58889        value: OptionalUint8,
58890        responder: StreamSocketSetIpv6UnicastHopsResponder,
58891    },
58892    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
58893    GetIpv6UnicastHops {
58894        responder: StreamSocketGetIpv6UnicastHopsResponder,
58895    },
58896    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
58897    SetIpv6ReceiveHopLimit {
58898        value: bool,
58899        responder: StreamSocketSetIpv6ReceiveHopLimitResponder,
58900    },
58901    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
58902    GetIpv6ReceiveHopLimit {
58903        responder: StreamSocketGetIpv6ReceiveHopLimitResponder,
58904    },
58905    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
58906    SetIpv6MulticastHops {
58907        value: OptionalUint8,
58908        responder: StreamSocketSetIpv6MulticastHopsResponder,
58909    },
58910    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
58911    GetIpv6MulticastHops {
58912        responder: StreamSocketGetIpv6MulticastHopsResponder,
58913    },
58914    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
58915    SetIpv6MulticastLoopback {
58916        value: bool,
58917        responder: StreamSocketSetIpv6MulticastLoopbackResponder,
58918    },
58919    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
58920    GetIpv6MulticastLoopback {
58921        responder: StreamSocketGetIpv6MulticastLoopbackResponder,
58922    },
58923    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
58924    SetIpv6Only {
58925        value: bool,
58926        responder: StreamSocketSetIpv6OnlyResponder,
58927    },
58928    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
58929    GetIpv6Only {
58930        responder: StreamSocketGetIpv6OnlyResponder,
58931    },
58932    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
58933    SetIpv6ReceiveTrafficClass {
58934        value: bool,
58935        responder: StreamSocketSetIpv6ReceiveTrafficClassResponder,
58936    },
58937    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
58938    GetIpv6ReceiveTrafficClass {
58939        responder: StreamSocketGetIpv6ReceiveTrafficClassResponder,
58940    },
58941    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
58942    SetIpv6TrafficClass {
58943        value: OptionalUint8,
58944        responder: StreamSocketSetIpv6TrafficClassResponder,
58945    },
58946    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
58947    GetIpv6TrafficClass {
58948        responder: StreamSocketGetIpv6TrafficClassResponder,
58949    },
58950    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
58951    SetIpv6ReceivePacketInfo {
58952        value: bool,
58953        responder: StreamSocketSetIpv6ReceivePacketInfoResponder,
58954    },
58955    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
58956    GetIpv6ReceivePacketInfo {
58957        responder: StreamSocketGetIpv6ReceivePacketInfoResponder,
58958    },
58959    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
58960    GetOriginalDestination {
58961        responder: StreamSocketGetOriginalDestinationResponder,
58962    },
58963    Describe {
58964        responder: StreamSocketDescribeResponder,
58965    },
58966    /// Begins listening for new incoming connections. At most `backlog`
58967    /// connections will be buffered.
58968    Listen {
58969        backlog: i16,
58970        responder: StreamSocketListenResponder,
58971    },
58972    /// Accepts a buffered incoming connection.
58973    Accept {
58974        want_addr: bool,
58975        responder: StreamSocketAcceptResponder,
58976    },
58977    /// Retrieves creation information from the socket.
58978    GetInfo {
58979        responder: StreamSocketGetInfoResponder,
58980    },
58981    /// Set `SOL_TCP` -> `TCP_NODELAY`.
58982    SetTcpNoDelay {
58983        value: bool,
58984        responder: StreamSocketSetTcpNoDelayResponder,
58985    },
58986    /// Get `SOL_TCP` -> `TCP_NODELAY`.
58987    GetTcpNoDelay {
58988        responder: StreamSocketGetTcpNoDelayResponder,
58989    },
58990    /// Set `SOL_TCP` -> `TCP_MAXSEG`.
58991    SetTcpMaxSegment {
58992        value_bytes: u32,
58993        responder: StreamSocketSetTcpMaxSegmentResponder,
58994    },
58995    /// Get `SOL_TCP` -> `TCP_MAXSEG`.
58996    GetTcpMaxSegment {
58997        responder: StreamSocketGetTcpMaxSegmentResponder,
58998    },
58999    /// Set `SOL_TCP` -> `TCP_CORK`.
59000    SetTcpCork {
59001        value: bool,
59002        responder: StreamSocketSetTcpCorkResponder,
59003    },
59004    /// Get `SOL_TCP` -> `TCP_CORK`.
59005    GetTcpCork {
59006        responder: StreamSocketGetTcpCorkResponder,
59007    },
59008    /// Set `SOL_TCP` -> `TCP_KEEPIDLE`.
59009    SetTcpKeepAliveIdle {
59010        value_secs: u32,
59011        responder: StreamSocketSetTcpKeepAliveIdleResponder,
59012    },
59013    /// Get `SOL_TCP` -> `TCP_KEEPIDLE`.
59014    GetTcpKeepAliveIdle {
59015        responder: StreamSocketGetTcpKeepAliveIdleResponder,
59016    },
59017    /// Set `SOL_TCP` -> `TCP_KEEPINTVL`.
59018    SetTcpKeepAliveInterval {
59019        value_secs: u32,
59020        responder: StreamSocketSetTcpKeepAliveIntervalResponder,
59021    },
59022    /// Get `SOL_TCP` -> `TCP_KEEPINTVL`.
59023    GetTcpKeepAliveInterval {
59024        responder: StreamSocketGetTcpKeepAliveIntervalResponder,
59025    },
59026    /// Set `SOL_TCP` -> `TCP_KEEPCNT`.
59027    SetTcpKeepAliveCount {
59028        value: u32,
59029        responder: StreamSocketSetTcpKeepAliveCountResponder,
59030    },
59031    /// Get `SOL_TCP` -> `TCP_KEEPCNT`.
59032    GetTcpKeepAliveCount {
59033        responder: StreamSocketGetTcpKeepAliveCountResponder,
59034    },
59035    /// Set `SOL_TCP` -> `TCP_SYNCNT`.
59036    SetTcpSynCount {
59037        value: u32,
59038        responder: StreamSocketSetTcpSynCountResponder,
59039    },
59040    /// Get `SOL_TCP` -> `TCP_SYNCNT`.
59041    GetTcpSynCount {
59042        responder: StreamSocketGetTcpSynCountResponder,
59043    },
59044    /// Set `SOL_TCP` -> `TCP_LINGER2`.
59045    SetTcpLinger {
59046        value_secs: OptionalUint32,
59047        responder: StreamSocketSetTcpLingerResponder,
59048    },
59049    /// Get `SOL_TCP` -> `TCP_LINGER2`.
59050    GetTcpLinger {
59051        responder: StreamSocketGetTcpLingerResponder,
59052    },
59053    /// Set `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
59054    SetTcpDeferAccept {
59055        value_secs: u32,
59056        responder: StreamSocketSetTcpDeferAcceptResponder,
59057    },
59058    /// Get `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
59059    GetTcpDeferAccept {
59060        responder: StreamSocketGetTcpDeferAcceptResponder,
59061    },
59062    /// Set `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
59063    SetTcpWindowClamp {
59064        value: u32,
59065        responder: StreamSocketSetTcpWindowClampResponder,
59066    },
59067    /// Get `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
59068    GetTcpWindowClamp {
59069        responder: StreamSocketGetTcpWindowClampResponder,
59070    },
59071    /// Get `SOL_TCP` -> `TCP_INFO`.
59072    GetTcpInfo {
59073        responder: StreamSocketGetTcpInfoResponder,
59074    },
59075    /// Set `SOL_TCP` -> `TCP_QUICKACK`.
59076    SetTcpQuickAck {
59077        value: bool,
59078        responder: StreamSocketSetTcpQuickAckResponder,
59079    },
59080    /// Get `SOL_TCP` -> `TCP_QUICKACK`.
59081    GetTcpQuickAck {
59082        responder: StreamSocketGetTcpQuickAckResponder,
59083    },
59084    /// Set `SOL_TCP` -> `TCP_CONGESTION`.
59085    SetTcpCongestion {
59086        value: TcpCongestionControl,
59087        responder: StreamSocketSetTcpCongestionResponder,
59088    },
59089    /// Get `SOL_TCP` -> `TCP_CONGESTION`.
59090    GetTcpCongestion {
59091        responder: StreamSocketGetTcpCongestionResponder,
59092    },
59093    /// Set `SOL_TCP` -> `TCP_USER_TIMEOUT`.
59094    SetTcpUserTimeout {
59095        value_millis: u32,
59096        responder: StreamSocketSetTcpUserTimeoutResponder,
59097    },
59098    /// Get `SOL_TCP` -> `TCP_USER_TIMEOUT`.
59099    GetTcpUserTimeout {
59100        responder: StreamSocketGetTcpUserTimeoutResponder,
59101    },
59102}
59103
59104impl StreamSocketRequest {
59105    #[allow(irrefutable_let_patterns)]
59106    pub fn into_clone(
59107        self,
59108    ) -> Option<(
59109        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
59110        StreamSocketControlHandle,
59111    )> {
59112        if let StreamSocketRequest::Clone { request, control_handle } = self {
59113            Some((request, control_handle))
59114        } else {
59115            None
59116        }
59117    }
59118
59119    #[allow(irrefutable_let_patterns)]
59120    pub fn into_close(self) -> Option<(StreamSocketCloseResponder)> {
59121        if let StreamSocketRequest::Close { responder } = self { Some((responder)) } else { None }
59122    }
59123
59124    #[allow(irrefutable_let_patterns)]
59125    pub fn into_query(self) -> Option<(StreamSocketQueryResponder)> {
59126        if let StreamSocketRequest::Query { responder } = self { Some((responder)) } else { None }
59127    }
59128
59129    #[allow(irrefutable_let_patterns)]
59130    pub fn into_set_reuse_address(self) -> Option<(bool, StreamSocketSetReuseAddressResponder)> {
59131        if let StreamSocketRequest::SetReuseAddress { value, responder } = self {
59132            Some((value, responder))
59133        } else {
59134            None
59135        }
59136    }
59137
59138    #[allow(irrefutable_let_patterns)]
59139    pub fn into_get_reuse_address(self) -> Option<(StreamSocketGetReuseAddressResponder)> {
59140        if let StreamSocketRequest::GetReuseAddress { responder } = self {
59141            Some((responder))
59142        } else {
59143            None
59144        }
59145    }
59146
59147    #[allow(irrefutable_let_patterns)]
59148    pub fn into_get_error(self) -> Option<(StreamSocketGetErrorResponder)> {
59149        if let StreamSocketRequest::GetError { responder } = self {
59150            Some((responder))
59151        } else {
59152            None
59153        }
59154    }
59155
59156    #[allow(irrefutable_let_patterns)]
59157    pub fn into_set_broadcast(self) -> Option<(bool, StreamSocketSetBroadcastResponder)> {
59158        if let StreamSocketRequest::SetBroadcast { value, responder } = self {
59159            Some((value, responder))
59160        } else {
59161            None
59162        }
59163    }
59164
59165    #[allow(irrefutable_let_patterns)]
59166    pub fn into_get_broadcast(self) -> Option<(StreamSocketGetBroadcastResponder)> {
59167        if let StreamSocketRequest::GetBroadcast { responder } = self {
59168            Some((responder))
59169        } else {
59170            None
59171        }
59172    }
59173
59174    #[allow(irrefutable_let_patterns)]
59175    pub fn into_set_send_buffer(self) -> Option<(u64, StreamSocketSetSendBufferResponder)> {
59176        if let StreamSocketRequest::SetSendBuffer { value_bytes, responder } = self {
59177            Some((value_bytes, responder))
59178        } else {
59179            None
59180        }
59181    }
59182
59183    #[allow(irrefutable_let_patterns)]
59184    pub fn into_get_send_buffer(self) -> Option<(StreamSocketGetSendBufferResponder)> {
59185        if let StreamSocketRequest::GetSendBuffer { responder } = self {
59186            Some((responder))
59187        } else {
59188            None
59189        }
59190    }
59191
59192    #[allow(irrefutable_let_patterns)]
59193    pub fn into_set_receive_buffer(self) -> Option<(u64, StreamSocketSetReceiveBufferResponder)> {
59194        if let StreamSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
59195            Some((value_bytes, responder))
59196        } else {
59197            None
59198        }
59199    }
59200
59201    #[allow(irrefutable_let_patterns)]
59202    pub fn into_get_receive_buffer(self) -> Option<(StreamSocketGetReceiveBufferResponder)> {
59203        if let StreamSocketRequest::GetReceiveBuffer { responder } = self {
59204            Some((responder))
59205        } else {
59206            None
59207        }
59208    }
59209
59210    #[allow(irrefutable_let_patterns)]
59211    pub fn into_set_keep_alive(self) -> Option<(bool, StreamSocketSetKeepAliveResponder)> {
59212        if let StreamSocketRequest::SetKeepAlive { value, responder } = self {
59213            Some((value, responder))
59214        } else {
59215            None
59216        }
59217    }
59218
59219    #[allow(irrefutable_let_patterns)]
59220    pub fn into_get_keep_alive(self) -> Option<(StreamSocketGetKeepAliveResponder)> {
59221        if let StreamSocketRequest::GetKeepAlive { responder } = self {
59222            Some((responder))
59223        } else {
59224            None
59225        }
59226    }
59227
59228    #[allow(irrefutable_let_patterns)]
59229    pub fn into_set_out_of_band_inline(
59230        self,
59231    ) -> Option<(bool, StreamSocketSetOutOfBandInlineResponder)> {
59232        if let StreamSocketRequest::SetOutOfBandInline { value, responder } = self {
59233            Some((value, responder))
59234        } else {
59235            None
59236        }
59237    }
59238
59239    #[allow(irrefutable_let_patterns)]
59240    pub fn into_get_out_of_band_inline(self) -> Option<(StreamSocketGetOutOfBandInlineResponder)> {
59241        if let StreamSocketRequest::GetOutOfBandInline { responder } = self {
59242            Some((responder))
59243        } else {
59244            None
59245        }
59246    }
59247
59248    #[allow(irrefutable_let_patterns)]
59249    pub fn into_set_no_check(self) -> Option<(bool, StreamSocketSetNoCheckResponder)> {
59250        if let StreamSocketRequest::SetNoCheck { value, responder } = self {
59251            Some((value, responder))
59252        } else {
59253            None
59254        }
59255    }
59256
59257    #[allow(irrefutable_let_patterns)]
59258    pub fn into_get_no_check(self) -> Option<(StreamSocketGetNoCheckResponder)> {
59259        if let StreamSocketRequest::GetNoCheck { responder } = self {
59260            Some((responder))
59261        } else {
59262            None
59263        }
59264    }
59265
59266    #[allow(irrefutable_let_patterns)]
59267    pub fn into_set_linger(self) -> Option<(bool, u32, StreamSocketSetLingerResponder)> {
59268        if let StreamSocketRequest::SetLinger { linger, length_secs, responder } = self {
59269            Some((linger, length_secs, responder))
59270        } else {
59271            None
59272        }
59273    }
59274
59275    #[allow(irrefutable_let_patterns)]
59276    pub fn into_get_linger(self) -> Option<(StreamSocketGetLingerResponder)> {
59277        if let StreamSocketRequest::GetLinger { responder } = self {
59278            Some((responder))
59279        } else {
59280            None
59281        }
59282    }
59283
59284    #[allow(irrefutable_let_patterns)]
59285    pub fn into_set_reuse_port(self) -> Option<(bool, StreamSocketSetReusePortResponder)> {
59286        if let StreamSocketRequest::SetReusePort { value, responder } = self {
59287            Some((value, responder))
59288        } else {
59289            None
59290        }
59291    }
59292
59293    #[allow(irrefutable_let_patterns)]
59294    pub fn into_get_reuse_port(self) -> Option<(StreamSocketGetReusePortResponder)> {
59295        if let StreamSocketRequest::GetReusePort { responder } = self {
59296            Some((responder))
59297        } else {
59298            None
59299        }
59300    }
59301
59302    #[allow(irrefutable_let_patterns)]
59303    pub fn into_get_accept_conn(self) -> Option<(StreamSocketGetAcceptConnResponder)> {
59304        if let StreamSocketRequest::GetAcceptConn { responder } = self {
59305            Some((responder))
59306        } else {
59307            None
59308        }
59309    }
59310
59311    #[allow(irrefutable_let_patterns)]
59312    pub fn into_set_bind_to_device(self) -> Option<(String, StreamSocketSetBindToDeviceResponder)> {
59313        if let StreamSocketRequest::SetBindToDevice { value, responder } = self {
59314            Some((value, responder))
59315        } else {
59316            None
59317        }
59318    }
59319
59320    #[allow(irrefutable_let_patterns)]
59321    pub fn into_get_bind_to_device(self) -> Option<(StreamSocketGetBindToDeviceResponder)> {
59322        if let StreamSocketRequest::GetBindToDevice { responder } = self {
59323            Some((responder))
59324        } else {
59325            None
59326        }
59327    }
59328
59329    #[allow(irrefutable_let_patterns)]
59330    pub fn into_set_bind_to_interface_index(
59331        self,
59332    ) -> Option<(u64, StreamSocketSetBindToInterfaceIndexResponder)> {
59333        if let StreamSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
59334            Some((value, responder))
59335        } else {
59336            None
59337        }
59338    }
59339
59340    #[allow(irrefutable_let_patterns)]
59341    pub fn into_get_bind_to_interface_index(
59342        self,
59343    ) -> Option<(StreamSocketGetBindToInterfaceIndexResponder)> {
59344        if let StreamSocketRequest::GetBindToInterfaceIndex { responder } = self {
59345            Some((responder))
59346        } else {
59347            None
59348        }
59349    }
59350
59351    #[allow(irrefutable_let_patterns)]
59352    pub fn into_set_timestamp(
59353        self,
59354    ) -> Option<(TimestampOption, StreamSocketSetTimestampResponder)> {
59355        if let StreamSocketRequest::SetTimestamp { value, responder } = self {
59356            Some((value, responder))
59357        } else {
59358            None
59359        }
59360    }
59361
59362    #[allow(irrefutable_let_patterns)]
59363    pub fn into_get_timestamp(self) -> Option<(StreamSocketGetTimestampResponder)> {
59364        if let StreamSocketRequest::GetTimestamp { responder } = self {
59365            Some((responder))
59366        } else {
59367            None
59368        }
59369    }
59370
59371    #[allow(irrefutable_let_patterns)]
59372    pub fn into_set_mark(
59373        self,
59374    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, StreamSocketSetMarkResponder)> {
59375        if let StreamSocketRequest::SetMark { domain, mark, responder } = self {
59376            Some((domain, mark, responder))
59377        } else {
59378            None
59379        }
59380    }
59381
59382    #[allow(irrefutable_let_patterns)]
59383    pub fn into_get_mark(
59384        self,
59385    ) -> Option<(fidl_fuchsia_net::MarkDomain, StreamSocketGetMarkResponder)> {
59386        if let StreamSocketRequest::GetMark { domain, responder } = self {
59387            Some((domain, responder))
59388        } else {
59389            None
59390        }
59391    }
59392
59393    #[allow(irrefutable_let_patterns)]
59394    pub fn into_get_cookie(self) -> Option<(StreamSocketGetCookieResponder)> {
59395        if let StreamSocketRequest::GetCookie { responder } = self {
59396            Some((responder))
59397        } else {
59398            None
59399        }
59400    }
59401
59402    #[allow(irrefutable_let_patterns)]
59403    pub fn into_bind(self) -> Option<(fidl_fuchsia_net::SocketAddress, StreamSocketBindResponder)> {
59404        if let StreamSocketRequest::Bind { addr, responder } = self {
59405            Some((addr, responder))
59406        } else {
59407            None
59408        }
59409    }
59410
59411    #[allow(irrefutable_let_patterns)]
59412    pub fn into_connect(
59413        self,
59414    ) -> Option<(fidl_fuchsia_net::SocketAddress, StreamSocketConnectResponder)> {
59415        if let StreamSocketRequest::Connect { addr, responder } = self {
59416            Some((addr, responder))
59417        } else {
59418            None
59419        }
59420    }
59421
59422    #[allow(irrefutable_let_patterns)]
59423    pub fn into_disconnect(self) -> Option<(StreamSocketDisconnectResponder)> {
59424        if let StreamSocketRequest::Disconnect { responder } = self {
59425            Some((responder))
59426        } else {
59427            None
59428        }
59429    }
59430
59431    #[allow(irrefutable_let_patterns)]
59432    pub fn into_get_sock_name(self) -> Option<(StreamSocketGetSockNameResponder)> {
59433        if let StreamSocketRequest::GetSockName { responder } = self {
59434            Some((responder))
59435        } else {
59436            None
59437        }
59438    }
59439
59440    #[allow(irrefutable_let_patterns)]
59441    pub fn into_get_peer_name(self) -> Option<(StreamSocketGetPeerNameResponder)> {
59442        if let StreamSocketRequest::GetPeerName { responder } = self {
59443            Some((responder))
59444        } else {
59445            None
59446        }
59447    }
59448
59449    #[allow(irrefutable_let_patterns)]
59450    pub fn into_shutdown(self) -> Option<(ShutdownMode, StreamSocketShutdownResponder)> {
59451        if let StreamSocketRequest::Shutdown { mode, responder } = self {
59452            Some((mode, responder))
59453        } else {
59454            None
59455        }
59456    }
59457
59458    #[allow(irrefutable_let_patterns)]
59459    pub fn into_set_ip_type_of_service(
59460        self,
59461    ) -> Option<(u8, StreamSocketSetIpTypeOfServiceResponder)> {
59462        if let StreamSocketRequest::SetIpTypeOfService { value, responder } = self {
59463            Some((value, responder))
59464        } else {
59465            None
59466        }
59467    }
59468
59469    #[allow(irrefutable_let_patterns)]
59470    pub fn into_get_ip_type_of_service(self) -> Option<(StreamSocketGetIpTypeOfServiceResponder)> {
59471        if let StreamSocketRequest::GetIpTypeOfService { responder } = self {
59472            Some((responder))
59473        } else {
59474            None
59475        }
59476    }
59477
59478    #[allow(irrefutable_let_patterns)]
59479    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, StreamSocketSetIpTtlResponder)> {
59480        if let StreamSocketRequest::SetIpTtl { value, responder } = self {
59481            Some((value, responder))
59482        } else {
59483            None
59484        }
59485    }
59486
59487    #[allow(irrefutable_let_patterns)]
59488    pub fn into_get_ip_ttl(self) -> Option<(StreamSocketGetIpTtlResponder)> {
59489        if let StreamSocketRequest::GetIpTtl { responder } = self {
59490            Some((responder))
59491        } else {
59492            None
59493        }
59494    }
59495
59496    #[allow(irrefutable_let_patterns)]
59497    pub fn into_set_ip_packet_info(self) -> Option<(bool, StreamSocketSetIpPacketInfoResponder)> {
59498        if let StreamSocketRequest::SetIpPacketInfo { value, responder } = self {
59499            Some((value, responder))
59500        } else {
59501            None
59502        }
59503    }
59504
59505    #[allow(irrefutable_let_patterns)]
59506    pub fn into_get_ip_packet_info(self) -> Option<(StreamSocketGetIpPacketInfoResponder)> {
59507        if let StreamSocketRequest::GetIpPacketInfo { responder } = self {
59508            Some((responder))
59509        } else {
59510            None
59511        }
59512    }
59513
59514    #[allow(irrefutable_let_patterns)]
59515    pub fn into_set_ip_receive_type_of_service(
59516        self,
59517    ) -> Option<(bool, StreamSocketSetIpReceiveTypeOfServiceResponder)> {
59518        if let StreamSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
59519            Some((value, responder))
59520        } else {
59521            None
59522        }
59523    }
59524
59525    #[allow(irrefutable_let_patterns)]
59526    pub fn into_get_ip_receive_type_of_service(
59527        self,
59528    ) -> Option<(StreamSocketGetIpReceiveTypeOfServiceResponder)> {
59529        if let StreamSocketRequest::GetIpReceiveTypeOfService { responder } = self {
59530            Some((responder))
59531        } else {
59532            None
59533        }
59534    }
59535
59536    #[allow(irrefutable_let_patterns)]
59537    pub fn into_set_ip_receive_ttl(self) -> Option<(bool, StreamSocketSetIpReceiveTtlResponder)> {
59538        if let StreamSocketRequest::SetIpReceiveTtl { value, responder } = self {
59539            Some((value, responder))
59540        } else {
59541            None
59542        }
59543    }
59544
59545    #[allow(irrefutable_let_patterns)]
59546    pub fn into_get_ip_receive_ttl(self) -> Option<(StreamSocketGetIpReceiveTtlResponder)> {
59547        if let StreamSocketRequest::GetIpReceiveTtl { responder } = self {
59548            Some((responder))
59549        } else {
59550            None
59551        }
59552    }
59553
59554    #[allow(irrefutable_let_patterns)]
59555    pub fn into_set_ip_multicast_interface(
59556        self,
59557    ) -> Option<(u64, fidl_fuchsia_net::Ipv4Address, StreamSocketSetIpMulticastInterfaceResponder)>
59558    {
59559        if let StreamSocketRequest::SetIpMulticastInterface { iface, address, responder } = self {
59560            Some((iface, address, responder))
59561        } else {
59562            None
59563        }
59564    }
59565
59566    #[allow(irrefutable_let_patterns)]
59567    pub fn into_get_ip_multicast_interface(
59568        self,
59569    ) -> Option<(StreamSocketGetIpMulticastInterfaceResponder)> {
59570        if let StreamSocketRequest::GetIpMulticastInterface { responder } = self {
59571            Some((responder))
59572        } else {
59573            None
59574        }
59575    }
59576
59577    #[allow(irrefutable_let_patterns)]
59578    pub fn into_set_ip_multicast_ttl(
59579        self,
59580    ) -> Option<(OptionalUint8, StreamSocketSetIpMulticastTtlResponder)> {
59581        if let StreamSocketRequest::SetIpMulticastTtl { value, responder } = self {
59582            Some((value, responder))
59583        } else {
59584            None
59585        }
59586    }
59587
59588    #[allow(irrefutable_let_patterns)]
59589    pub fn into_get_ip_multicast_ttl(self) -> Option<(StreamSocketGetIpMulticastTtlResponder)> {
59590        if let StreamSocketRequest::GetIpMulticastTtl { responder } = self {
59591            Some((responder))
59592        } else {
59593            None
59594        }
59595    }
59596
59597    #[allow(irrefutable_let_patterns)]
59598    pub fn into_set_ip_multicast_loopback(
59599        self,
59600    ) -> Option<(bool, StreamSocketSetIpMulticastLoopbackResponder)> {
59601        if let StreamSocketRequest::SetIpMulticastLoopback { value, responder } = self {
59602            Some((value, responder))
59603        } else {
59604            None
59605        }
59606    }
59607
59608    #[allow(irrefutable_let_patterns)]
59609    pub fn into_get_ip_multicast_loopback(
59610        self,
59611    ) -> Option<(StreamSocketGetIpMulticastLoopbackResponder)> {
59612        if let StreamSocketRequest::GetIpMulticastLoopback { responder } = self {
59613            Some((responder))
59614        } else {
59615            None
59616        }
59617    }
59618
59619    #[allow(irrefutable_let_patterns)]
59620    pub fn into_add_ip_membership(
59621        self,
59622    ) -> Option<(IpMulticastMembership, StreamSocketAddIpMembershipResponder)> {
59623        if let StreamSocketRequest::AddIpMembership { membership, responder } = self {
59624            Some((membership, responder))
59625        } else {
59626            None
59627        }
59628    }
59629
59630    #[allow(irrefutable_let_patterns)]
59631    pub fn into_drop_ip_membership(
59632        self,
59633    ) -> Option<(IpMulticastMembership, StreamSocketDropIpMembershipResponder)> {
59634        if let StreamSocketRequest::DropIpMembership { membership, responder } = self {
59635            Some((membership, responder))
59636        } else {
59637            None
59638        }
59639    }
59640
59641    #[allow(irrefutable_let_patterns)]
59642    pub fn into_set_ip_transparent(self) -> Option<(bool, StreamSocketSetIpTransparentResponder)> {
59643        if let StreamSocketRequest::SetIpTransparent { value, responder } = self {
59644            Some((value, responder))
59645        } else {
59646            None
59647        }
59648    }
59649
59650    #[allow(irrefutable_let_patterns)]
59651    pub fn into_get_ip_transparent(self) -> Option<(StreamSocketGetIpTransparentResponder)> {
59652        if let StreamSocketRequest::GetIpTransparent { responder } = self {
59653            Some((responder))
59654        } else {
59655            None
59656        }
59657    }
59658
59659    #[allow(irrefutable_let_patterns)]
59660    pub fn into_set_ip_receive_original_destination_address(
59661        self,
59662    ) -> Option<(bool, StreamSocketSetIpReceiveOriginalDestinationAddressResponder)> {
59663        if let StreamSocketRequest::SetIpReceiveOriginalDestinationAddress { value, responder } =
59664            self
59665        {
59666            Some((value, responder))
59667        } else {
59668            None
59669        }
59670    }
59671
59672    #[allow(irrefutable_let_patterns)]
59673    pub fn into_get_ip_receive_original_destination_address(
59674        self,
59675    ) -> Option<(StreamSocketGetIpReceiveOriginalDestinationAddressResponder)> {
59676        if let StreamSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } = self {
59677            Some((responder))
59678        } else {
59679            None
59680        }
59681    }
59682
59683    #[allow(irrefutable_let_patterns)]
59684    pub fn into_add_ipv6_membership(
59685        self,
59686    ) -> Option<(Ipv6MulticastMembership, StreamSocketAddIpv6MembershipResponder)> {
59687        if let StreamSocketRequest::AddIpv6Membership { membership, responder } = self {
59688            Some((membership, responder))
59689        } else {
59690            None
59691        }
59692    }
59693
59694    #[allow(irrefutable_let_patterns)]
59695    pub fn into_drop_ipv6_membership(
59696        self,
59697    ) -> Option<(Ipv6MulticastMembership, StreamSocketDropIpv6MembershipResponder)> {
59698        if let StreamSocketRequest::DropIpv6Membership { membership, responder } = self {
59699            Some((membership, responder))
59700        } else {
59701            None
59702        }
59703    }
59704
59705    #[allow(irrefutable_let_patterns)]
59706    pub fn into_set_ipv6_multicast_interface(
59707        self,
59708    ) -> Option<(u64, StreamSocketSetIpv6MulticastInterfaceResponder)> {
59709        if let StreamSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
59710            Some((value, responder))
59711        } else {
59712            None
59713        }
59714    }
59715
59716    #[allow(irrefutable_let_patterns)]
59717    pub fn into_get_ipv6_multicast_interface(
59718        self,
59719    ) -> Option<(StreamSocketGetIpv6MulticastInterfaceResponder)> {
59720        if let StreamSocketRequest::GetIpv6MulticastInterface { responder } = self {
59721            Some((responder))
59722        } else {
59723            None
59724        }
59725    }
59726
59727    #[allow(irrefutable_let_patterns)]
59728    pub fn into_set_ipv6_unicast_hops(
59729        self,
59730    ) -> Option<(OptionalUint8, StreamSocketSetIpv6UnicastHopsResponder)> {
59731        if let StreamSocketRequest::SetIpv6UnicastHops { value, responder } = self {
59732            Some((value, responder))
59733        } else {
59734            None
59735        }
59736    }
59737
59738    #[allow(irrefutable_let_patterns)]
59739    pub fn into_get_ipv6_unicast_hops(self) -> Option<(StreamSocketGetIpv6UnicastHopsResponder)> {
59740        if let StreamSocketRequest::GetIpv6UnicastHops { responder } = self {
59741            Some((responder))
59742        } else {
59743            None
59744        }
59745    }
59746
59747    #[allow(irrefutable_let_patterns)]
59748    pub fn into_set_ipv6_receive_hop_limit(
59749        self,
59750    ) -> Option<(bool, StreamSocketSetIpv6ReceiveHopLimitResponder)> {
59751        if let StreamSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
59752            Some((value, responder))
59753        } else {
59754            None
59755        }
59756    }
59757
59758    #[allow(irrefutable_let_patterns)]
59759    pub fn into_get_ipv6_receive_hop_limit(
59760        self,
59761    ) -> Option<(StreamSocketGetIpv6ReceiveHopLimitResponder)> {
59762        if let StreamSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
59763            Some((responder))
59764        } else {
59765            None
59766        }
59767    }
59768
59769    #[allow(irrefutable_let_patterns)]
59770    pub fn into_set_ipv6_multicast_hops(
59771        self,
59772    ) -> Option<(OptionalUint8, StreamSocketSetIpv6MulticastHopsResponder)> {
59773        if let StreamSocketRequest::SetIpv6MulticastHops { value, responder } = self {
59774            Some((value, responder))
59775        } else {
59776            None
59777        }
59778    }
59779
59780    #[allow(irrefutable_let_patterns)]
59781    pub fn into_get_ipv6_multicast_hops(
59782        self,
59783    ) -> Option<(StreamSocketGetIpv6MulticastHopsResponder)> {
59784        if let StreamSocketRequest::GetIpv6MulticastHops { responder } = self {
59785            Some((responder))
59786        } else {
59787            None
59788        }
59789    }
59790
59791    #[allow(irrefutable_let_patterns)]
59792    pub fn into_set_ipv6_multicast_loopback(
59793        self,
59794    ) -> Option<(bool, StreamSocketSetIpv6MulticastLoopbackResponder)> {
59795        if let StreamSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
59796            Some((value, responder))
59797        } else {
59798            None
59799        }
59800    }
59801
59802    #[allow(irrefutable_let_patterns)]
59803    pub fn into_get_ipv6_multicast_loopback(
59804        self,
59805    ) -> Option<(StreamSocketGetIpv6MulticastLoopbackResponder)> {
59806        if let StreamSocketRequest::GetIpv6MulticastLoopback { responder } = self {
59807            Some((responder))
59808        } else {
59809            None
59810        }
59811    }
59812
59813    #[allow(irrefutable_let_patterns)]
59814    pub fn into_set_ipv6_only(self) -> Option<(bool, StreamSocketSetIpv6OnlyResponder)> {
59815        if let StreamSocketRequest::SetIpv6Only { value, responder } = self {
59816            Some((value, responder))
59817        } else {
59818            None
59819        }
59820    }
59821
59822    #[allow(irrefutable_let_patterns)]
59823    pub fn into_get_ipv6_only(self) -> Option<(StreamSocketGetIpv6OnlyResponder)> {
59824        if let StreamSocketRequest::GetIpv6Only { responder } = self {
59825            Some((responder))
59826        } else {
59827            None
59828        }
59829    }
59830
59831    #[allow(irrefutable_let_patterns)]
59832    pub fn into_set_ipv6_receive_traffic_class(
59833        self,
59834    ) -> Option<(bool, StreamSocketSetIpv6ReceiveTrafficClassResponder)> {
59835        if let StreamSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
59836            Some((value, responder))
59837        } else {
59838            None
59839        }
59840    }
59841
59842    #[allow(irrefutable_let_patterns)]
59843    pub fn into_get_ipv6_receive_traffic_class(
59844        self,
59845    ) -> Option<(StreamSocketGetIpv6ReceiveTrafficClassResponder)> {
59846        if let StreamSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
59847            Some((responder))
59848        } else {
59849            None
59850        }
59851    }
59852
59853    #[allow(irrefutable_let_patterns)]
59854    pub fn into_set_ipv6_traffic_class(
59855        self,
59856    ) -> Option<(OptionalUint8, StreamSocketSetIpv6TrafficClassResponder)> {
59857        if let StreamSocketRequest::SetIpv6TrafficClass { value, responder } = self {
59858            Some((value, responder))
59859        } else {
59860            None
59861        }
59862    }
59863
59864    #[allow(irrefutable_let_patterns)]
59865    pub fn into_get_ipv6_traffic_class(self) -> Option<(StreamSocketGetIpv6TrafficClassResponder)> {
59866        if let StreamSocketRequest::GetIpv6TrafficClass { responder } = self {
59867            Some((responder))
59868        } else {
59869            None
59870        }
59871    }
59872
59873    #[allow(irrefutable_let_patterns)]
59874    pub fn into_set_ipv6_receive_packet_info(
59875        self,
59876    ) -> Option<(bool, StreamSocketSetIpv6ReceivePacketInfoResponder)> {
59877        if let StreamSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
59878            Some((value, responder))
59879        } else {
59880            None
59881        }
59882    }
59883
59884    #[allow(irrefutable_let_patterns)]
59885    pub fn into_get_ipv6_receive_packet_info(
59886        self,
59887    ) -> Option<(StreamSocketGetIpv6ReceivePacketInfoResponder)> {
59888        if let StreamSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
59889            Some((responder))
59890        } else {
59891            None
59892        }
59893    }
59894
59895    #[allow(irrefutable_let_patterns)]
59896    pub fn into_get_original_destination(
59897        self,
59898    ) -> Option<(StreamSocketGetOriginalDestinationResponder)> {
59899        if let StreamSocketRequest::GetOriginalDestination { responder } = self {
59900            Some((responder))
59901        } else {
59902            None
59903        }
59904    }
59905
59906    #[allow(irrefutable_let_patterns)]
59907    pub fn into_describe(self) -> Option<(StreamSocketDescribeResponder)> {
59908        if let StreamSocketRequest::Describe { responder } = self {
59909            Some((responder))
59910        } else {
59911            None
59912        }
59913    }
59914
59915    #[allow(irrefutable_let_patterns)]
59916    pub fn into_listen(self) -> Option<(i16, StreamSocketListenResponder)> {
59917        if let StreamSocketRequest::Listen { backlog, responder } = self {
59918            Some((backlog, responder))
59919        } else {
59920            None
59921        }
59922    }
59923
59924    #[allow(irrefutable_let_patterns)]
59925    pub fn into_accept(self) -> Option<(bool, StreamSocketAcceptResponder)> {
59926        if let StreamSocketRequest::Accept { want_addr, responder } = self {
59927            Some((want_addr, responder))
59928        } else {
59929            None
59930        }
59931    }
59932
59933    #[allow(irrefutable_let_patterns)]
59934    pub fn into_get_info(self) -> Option<(StreamSocketGetInfoResponder)> {
59935        if let StreamSocketRequest::GetInfo { responder } = self { Some((responder)) } else { None }
59936    }
59937
59938    #[allow(irrefutable_let_patterns)]
59939    pub fn into_set_tcp_no_delay(self) -> Option<(bool, StreamSocketSetTcpNoDelayResponder)> {
59940        if let StreamSocketRequest::SetTcpNoDelay { value, responder } = self {
59941            Some((value, responder))
59942        } else {
59943            None
59944        }
59945    }
59946
59947    #[allow(irrefutable_let_patterns)]
59948    pub fn into_get_tcp_no_delay(self) -> Option<(StreamSocketGetTcpNoDelayResponder)> {
59949        if let StreamSocketRequest::GetTcpNoDelay { responder } = self {
59950            Some((responder))
59951        } else {
59952            None
59953        }
59954    }
59955
59956    #[allow(irrefutable_let_patterns)]
59957    pub fn into_set_tcp_max_segment(self) -> Option<(u32, StreamSocketSetTcpMaxSegmentResponder)> {
59958        if let StreamSocketRequest::SetTcpMaxSegment { value_bytes, responder } = self {
59959            Some((value_bytes, responder))
59960        } else {
59961            None
59962        }
59963    }
59964
59965    #[allow(irrefutable_let_patterns)]
59966    pub fn into_get_tcp_max_segment(self) -> Option<(StreamSocketGetTcpMaxSegmentResponder)> {
59967        if let StreamSocketRequest::GetTcpMaxSegment { responder } = self {
59968            Some((responder))
59969        } else {
59970            None
59971        }
59972    }
59973
59974    #[allow(irrefutable_let_patterns)]
59975    pub fn into_set_tcp_cork(self) -> Option<(bool, StreamSocketSetTcpCorkResponder)> {
59976        if let StreamSocketRequest::SetTcpCork { value, responder } = self {
59977            Some((value, responder))
59978        } else {
59979            None
59980        }
59981    }
59982
59983    #[allow(irrefutable_let_patterns)]
59984    pub fn into_get_tcp_cork(self) -> Option<(StreamSocketGetTcpCorkResponder)> {
59985        if let StreamSocketRequest::GetTcpCork { responder } = self {
59986            Some((responder))
59987        } else {
59988            None
59989        }
59990    }
59991
59992    #[allow(irrefutable_let_patterns)]
59993    pub fn into_set_tcp_keep_alive_idle(
59994        self,
59995    ) -> Option<(u32, StreamSocketSetTcpKeepAliveIdleResponder)> {
59996        if let StreamSocketRequest::SetTcpKeepAliveIdle { value_secs, responder } = self {
59997            Some((value_secs, responder))
59998        } else {
59999            None
60000        }
60001    }
60002
60003    #[allow(irrefutable_let_patterns)]
60004    pub fn into_get_tcp_keep_alive_idle(
60005        self,
60006    ) -> Option<(StreamSocketGetTcpKeepAliveIdleResponder)> {
60007        if let StreamSocketRequest::GetTcpKeepAliveIdle { responder } = self {
60008            Some((responder))
60009        } else {
60010            None
60011        }
60012    }
60013
60014    #[allow(irrefutable_let_patterns)]
60015    pub fn into_set_tcp_keep_alive_interval(
60016        self,
60017    ) -> Option<(u32, StreamSocketSetTcpKeepAliveIntervalResponder)> {
60018        if let StreamSocketRequest::SetTcpKeepAliveInterval { value_secs, responder } = self {
60019            Some((value_secs, responder))
60020        } else {
60021            None
60022        }
60023    }
60024
60025    #[allow(irrefutable_let_patterns)]
60026    pub fn into_get_tcp_keep_alive_interval(
60027        self,
60028    ) -> Option<(StreamSocketGetTcpKeepAliveIntervalResponder)> {
60029        if let StreamSocketRequest::GetTcpKeepAliveInterval { responder } = self {
60030            Some((responder))
60031        } else {
60032            None
60033        }
60034    }
60035
60036    #[allow(irrefutable_let_patterns)]
60037    pub fn into_set_tcp_keep_alive_count(
60038        self,
60039    ) -> Option<(u32, StreamSocketSetTcpKeepAliveCountResponder)> {
60040        if let StreamSocketRequest::SetTcpKeepAliveCount { value, responder } = self {
60041            Some((value, responder))
60042        } else {
60043            None
60044        }
60045    }
60046
60047    #[allow(irrefutable_let_patterns)]
60048    pub fn into_get_tcp_keep_alive_count(
60049        self,
60050    ) -> Option<(StreamSocketGetTcpKeepAliveCountResponder)> {
60051        if let StreamSocketRequest::GetTcpKeepAliveCount { responder } = self {
60052            Some((responder))
60053        } else {
60054            None
60055        }
60056    }
60057
60058    #[allow(irrefutable_let_patterns)]
60059    pub fn into_set_tcp_syn_count(self) -> Option<(u32, StreamSocketSetTcpSynCountResponder)> {
60060        if let StreamSocketRequest::SetTcpSynCount { value, responder } = self {
60061            Some((value, responder))
60062        } else {
60063            None
60064        }
60065    }
60066
60067    #[allow(irrefutable_let_patterns)]
60068    pub fn into_get_tcp_syn_count(self) -> Option<(StreamSocketGetTcpSynCountResponder)> {
60069        if let StreamSocketRequest::GetTcpSynCount { responder } = self {
60070            Some((responder))
60071        } else {
60072            None
60073        }
60074    }
60075
60076    #[allow(irrefutable_let_patterns)]
60077    pub fn into_set_tcp_linger(
60078        self,
60079    ) -> Option<(OptionalUint32, StreamSocketSetTcpLingerResponder)> {
60080        if let StreamSocketRequest::SetTcpLinger { value_secs, responder } = self {
60081            Some((value_secs, responder))
60082        } else {
60083            None
60084        }
60085    }
60086
60087    #[allow(irrefutable_let_patterns)]
60088    pub fn into_get_tcp_linger(self) -> Option<(StreamSocketGetTcpLingerResponder)> {
60089        if let StreamSocketRequest::GetTcpLinger { responder } = self {
60090            Some((responder))
60091        } else {
60092            None
60093        }
60094    }
60095
60096    #[allow(irrefutable_let_patterns)]
60097    pub fn into_set_tcp_defer_accept(
60098        self,
60099    ) -> Option<(u32, StreamSocketSetTcpDeferAcceptResponder)> {
60100        if let StreamSocketRequest::SetTcpDeferAccept { value_secs, responder } = self {
60101            Some((value_secs, responder))
60102        } else {
60103            None
60104        }
60105    }
60106
60107    #[allow(irrefutable_let_patterns)]
60108    pub fn into_get_tcp_defer_accept(self) -> Option<(StreamSocketGetTcpDeferAcceptResponder)> {
60109        if let StreamSocketRequest::GetTcpDeferAccept { responder } = self {
60110            Some((responder))
60111        } else {
60112            None
60113        }
60114    }
60115
60116    #[allow(irrefutable_let_patterns)]
60117    pub fn into_set_tcp_window_clamp(
60118        self,
60119    ) -> Option<(u32, StreamSocketSetTcpWindowClampResponder)> {
60120        if let StreamSocketRequest::SetTcpWindowClamp { value, responder } = self {
60121            Some((value, responder))
60122        } else {
60123            None
60124        }
60125    }
60126
60127    #[allow(irrefutable_let_patterns)]
60128    pub fn into_get_tcp_window_clamp(self) -> Option<(StreamSocketGetTcpWindowClampResponder)> {
60129        if let StreamSocketRequest::GetTcpWindowClamp { responder } = self {
60130            Some((responder))
60131        } else {
60132            None
60133        }
60134    }
60135
60136    #[allow(irrefutable_let_patterns)]
60137    pub fn into_get_tcp_info(self) -> Option<(StreamSocketGetTcpInfoResponder)> {
60138        if let StreamSocketRequest::GetTcpInfo { responder } = self {
60139            Some((responder))
60140        } else {
60141            None
60142        }
60143    }
60144
60145    #[allow(irrefutable_let_patterns)]
60146    pub fn into_set_tcp_quick_ack(self) -> Option<(bool, StreamSocketSetTcpQuickAckResponder)> {
60147        if let StreamSocketRequest::SetTcpQuickAck { value, responder } = self {
60148            Some((value, responder))
60149        } else {
60150            None
60151        }
60152    }
60153
60154    #[allow(irrefutable_let_patterns)]
60155    pub fn into_get_tcp_quick_ack(self) -> Option<(StreamSocketGetTcpQuickAckResponder)> {
60156        if let StreamSocketRequest::GetTcpQuickAck { responder } = self {
60157            Some((responder))
60158        } else {
60159            None
60160        }
60161    }
60162
60163    #[allow(irrefutable_let_patterns)]
60164    pub fn into_set_tcp_congestion(
60165        self,
60166    ) -> Option<(TcpCongestionControl, StreamSocketSetTcpCongestionResponder)> {
60167        if let StreamSocketRequest::SetTcpCongestion { value, responder } = self {
60168            Some((value, responder))
60169        } else {
60170            None
60171        }
60172    }
60173
60174    #[allow(irrefutable_let_patterns)]
60175    pub fn into_get_tcp_congestion(self) -> Option<(StreamSocketGetTcpCongestionResponder)> {
60176        if let StreamSocketRequest::GetTcpCongestion { responder } = self {
60177            Some((responder))
60178        } else {
60179            None
60180        }
60181    }
60182
60183    #[allow(irrefutable_let_patterns)]
60184    pub fn into_set_tcp_user_timeout(
60185        self,
60186    ) -> Option<(u32, StreamSocketSetTcpUserTimeoutResponder)> {
60187        if let StreamSocketRequest::SetTcpUserTimeout { value_millis, responder } = self {
60188            Some((value_millis, responder))
60189        } else {
60190            None
60191        }
60192    }
60193
60194    #[allow(irrefutable_let_patterns)]
60195    pub fn into_get_tcp_user_timeout(self) -> Option<(StreamSocketGetTcpUserTimeoutResponder)> {
60196        if let StreamSocketRequest::GetTcpUserTimeout { responder } = self {
60197            Some((responder))
60198        } else {
60199            None
60200        }
60201    }
60202
60203    /// Name of the method defined in FIDL
60204    pub fn method_name(&self) -> &'static str {
60205        match *self {
60206            StreamSocketRequest::Clone { .. } => "clone",
60207            StreamSocketRequest::Close { .. } => "close",
60208            StreamSocketRequest::Query { .. } => "query",
60209            StreamSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
60210            StreamSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
60211            StreamSocketRequest::GetError { .. } => "get_error",
60212            StreamSocketRequest::SetBroadcast { .. } => "set_broadcast",
60213            StreamSocketRequest::GetBroadcast { .. } => "get_broadcast",
60214            StreamSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
60215            StreamSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
60216            StreamSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
60217            StreamSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
60218            StreamSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
60219            StreamSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
60220            StreamSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
60221            StreamSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
60222            StreamSocketRequest::SetNoCheck { .. } => "set_no_check",
60223            StreamSocketRequest::GetNoCheck { .. } => "get_no_check",
60224            StreamSocketRequest::SetLinger { .. } => "set_linger",
60225            StreamSocketRequest::GetLinger { .. } => "get_linger",
60226            StreamSocketRequest::SetReusePort { .. } => "set_reuse_port",
60227            StreamSocketRequest::GetReusePort { .. } => "get_reuse_port",
60228            StreamSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
60229            StreamSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
60230            StreamSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
60231            StreamSocketRequest::SetBindToInterfaceIndex { .. } => "set_bind_to_interface_index",
60232            StreamSocketRequest::GetBindToInterfaceIndex { .. } => "get_bind_to_interface_index",
60233            StreamSocketRequest::SetTimestamp { .. } => "set_timestamp",
60234            StreamSocketRequest::GetTimestamp { .. } => "get_timestamp",
60235            StreamSocketRequest::SetMark { .. } => "set_mark",
60236            StreamSocketRequest::GetMark { .. } => "get_mark",
60237            StreamSocketRequest::GetCookie { .. } => "get_cookie",
60238            StreamSocketRequest::Bind { .. } => "bind",
60239            StreamSocketRequest::Connect { .. } => "connect",
60240            StreamSocketRequest::Disconnect { .. } => "disconnect",
60241            StreamSocketRequest::GetSockName { .. } => "get_sock_name",
60242            StreamSocketRequest::GetPeerName { .. } => "get_peer_name",
60243            StreamSocketRequest::Shutdown { .. } => "shutdown",
60244            StreamSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
60245            StreamSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
60246            StreamSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
60247            StreamSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
60248            StreamSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
60249            StreamSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
60250            StreamSocketRequest::SetIpReceiveTypeOfService { .. } => {
60251                "set_ip_receive_type_of_service"
60252            }
60253            StreamSocketRequest::GetIpReceiveTypeOfService { .. } => {
60254                "get_ip_receive_type_of_service"
60255            }
60256            StreamSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
60257            StreamSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
60258            StreamSocketRequest::SetIpMulticastInterface { .. } => "set_ip_multicast_interface",
60259            StreamSocketRequest::GetIpMulticastInterface { .. } => "get_ip_multicast_interface",
60260            StreamSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
60261            StreamSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
60262            StreamSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
60263            StreamSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
60264            StreamSocketRequest::AddIpMembership { .. } => "add_ip_membership",
60265            StreamSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
60266            StreamSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
60267            StreamSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
60268            StreamSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
60269                "set_ip_receive_original_destination_address"
60270            }
60271            StreamSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
60272                "get_ip_receive_original_destination_address"
60273            }
60274            StreamSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
60275            StreamSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
60276            StreamSocketRequest::SetIpv6MulticastInterface { .. } => "set_ipv6_multicast_interface",
60277            StreamSocketRequest::GetIpv6MulticastInterface { .. } => "get_ipv6_multicast_interface",
60278            StreamSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
60279            StreamSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
60280            StreamSocketRequest::SetIpv6ReceiveHopLimit { .. } => "set_ipv6_receive_hop_limit",
60281            StreamSocketRequest::GetIpv6ReceiveHopLimit { .. } => "get_ipv6_receive_hop_limit",
60282            StreamSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
60283            StreamSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
60284            StreamSocketRequest::SetIpv6MulticastLoopback { .. } => "set_ipv6_multicast_loopback",
60285            StreamSocketRequest::GetIpv6MulticastLoopback { .. } => "get_ipv6_multicast_loopback",
60286            StreamSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
60287            StreamSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
60288            StreamSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
60289                "set_ipv6_receive_traffic_class"
60290            }
60291            StreamSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
60292                "get_ipv6_receive_traffic_class"
60293            }
60294            StreamSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
60295            StreamSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
60296            StreamSocketRequest::SetIpv6ReceivePacketInfo { .. } => "set_ipv6_receive_packet_info",
60297            StreamSocketRequest::GetIpv6ReceivePacketInfo { .. } => "get_ipv6_receive_packet_info",
60298            StreamSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
60299            StreamSocketRequest::Describe { .. } => "describe",
60300            StreamSocketRequest::Listen { .. } => "listen",
60301            StreamSocketRequest::Accept { .. } => "accept",
60302            StreamSocketRequest::GetInfo { .. } => "get_info",
60303            StreamSocketRequest::SetTcpNoDelay { .. } => "set_tcp_no_delay",
60304            StreamSocketRequest::GetTcpNoDelay { .. } => "get_tcp_no_delay",
60305            StreamSocketRequest::SetTcpMaxSegment { .. } => "set_tcp_max_segment",
60306            StreamSocketRequest::GetTcpMaxSegment { .. } => "get_tcp_max_segment",
60307            StreamSocketRequest::SetTcpCork { .. } => "set_tcp_cork",
60308            StreamSocketRequest::GetTcpCork { .. } => "get_tcp_cork",
60309            StreamSocketRequest::SetTcpKeepAliveIdle { .. } => "set_tcp_keep_alive_idle",
60310            StreamSocketRequest::GetTcpKeepAliveIdle { .. } => "get_tcp_keep_alive_idle",
60311            StreamSocketRequest::SetTcpKeepAliveInterval { .. } => "set_tcp_keep_alive_interval",
60312            StreamSocketRequest::GetTcpKeepAliveInterval { .. } => "get_tcp_keep_alive_interval",
60313            StreamSocketRequest::SetTcpKeepAliveCount { .. } => "set_tcp_keep_alive_count",
60314            StreamSocketRequest::GetTcpKeepAliveCount { .. } => "get_tcp_keep_alive_count",
60315            StreamSocketRequest::SetTcpSynCount { .. } => "set_tcp_syn_count",
60316            StreamSocketRequest::GetTcpSynCount { .. } => "get_tcp_syn_count",
60317            StreamSocketRequest::SetTcpLinger { .. } => "set_tcp_linger",
60318            StreamSocketRequest::GetTcpLinger { .. } => "get_tcp_linger",
60319            StreamSocketRequest::SetTcpDeferAccept { .. } => "set_tcp_defer_accept",
60320            StreamSocketRequest::GetTcpDeferAccept { .. } => "get_tcp_defer_accept",
60321            StreamSocketRequest::SetTcpWindowClamp { .. } => "set_tcp_window_clamp",
60322            StreamSocketRequest::GetTcpWindowClamp { .. } => "get_tcp_window_clamp",
60323            StreamSocketRequest::GetTcpInfo { .. } => "get_tcp_info",
60324            StreamSocketRequest::SetTcpQuickAck { .. } => "set_tcp_quick_ack",
60325            StreamSocketRequest::GetTcpQuickAck { .. } => "get_tcp_quick_ack",
60326            StreamSocketRequest::SetTcpCongestion { .. } => "set_tcp_congestion",
60327            StreamSocketRequest::GetTcpCongestion { .. } => "get_tcp_congestion",
60328            StreamSocketRequest::SetTcpUserTimeout { .. } => "set_tcp_user_timeout",
60329            StreamSocketRequest::GetTcpUserTimeout { .. } => "get_tcp_user_timeout",
60330        }
60331    }
60332}
60333
60334#[derive(Debug, Clone)]
60335pub struct StreamSocketControlHandle {
60336    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
60337}
60338
60339impl fidl::endpoints::ControlHandle for StreamSocketControlHandle {
60340    fn shutdown(&self) {
60341        self.inner.shutdown()
60342    }
60343    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
60344        self.inner.shutdown_with_epitaph(status)
60345    }
60346
60347    fn is_closed(&self) -> bool {
60348        self.inner.channel().is_closed()
60349    }
60350    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
60351        self.inner.channel().on_closed()
60352    }
60353
60354    #[cfg(target_os = "fuchsia")]
60355    fn signal_peer(
60356        &self,
60357        clear_mask: zx::Signals,
60358        set_mask: zx::Signals,
60359    ) -> Result<(), zx_status::Status> {
60360        use fidl::Peered;
60361        self.inner.channel().signal_peer(clear_mask, set_mask)
60362    }
60363}
60364
60365impl StreamSocketControlHandle {}
60366
60367#[must_use = "FIDL methods require a response to be sent"]
60368#[derive(Debug)]
60369pub struct StreamSocketCloseResponder {
60370    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60371    tx_id: u32,
60372}
60373
60374/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60375/// if the responder is dropped without sending a response, so that the client
60376/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60377impl std::ops::Drop for StreamSocketCloseResponder {
60378    fn drop(&mut self) {
60379        self.control_handle.shutdown();
60380        // Safety: drops once, never accessed again
60381        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60382    }
60383}
60384
60385impl fidl::endpoints::Responder for StreamSocketCloseResponder {
60386    type ControlHandle = StreamSocketControlHandle;
60387
60388    fn control_handle(&self) -> &StreamSocketControlHandle {
60389        &self.control_handle
60390    }
60391
60392    fn drop_without_shutdown(mut self) {
60393        // Safety: drops once, never accessed again due to mem::forget
60394        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60395        // Prevent Drop from running (which would shut down the channel)
60396        std::mem::forget(self);
60397    }
60398}
60399
60400impl StreamSocketCloseResponder {
60401    /// Sends a response to the FIDL transaction.
60402    ///
60403    /// Sets the channel to shutdown if an error occurs.
60404    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
60405        let _result = self.send_raw(result);
60406        if _result.is_err() {
60407            self.control_handle.shutdown();
60408        }
60409        self.drop_without_shutdown();
60410        _result
60411    }
60412
60413    /// Similar to "send" but does not shutdown the channel if an error occurs.
60414    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
60415        let _result = self.send_raw(result);
60416        self.drop_without_shutdown();
60417        _result
60418    }
60419
60420    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
60421        self.control_handle
60422            .inner
60423            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
60424                result,
60425                self.tx_id,
60426                0x5ac5d459ad7f657e,
60427                fidl::encoding::DynamicFlags::empty(),
60428            )
60429    }
60430}
60431
60432#[must_use = "FIDL methods require a response to be sent"]
60433#[derive(Debug)]
60434pub struct StreamSocketQueryResponder {
60435    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60436    tx_id: u32,
60437}
60438
60439/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60440/// if the responder is dropped without sending a response, so that the client
60441/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60442impl std::ops::Drop for StreamSocketQueryResponder {
60443    fn drop(&mut self) {
60444        self.control_handle.shutdown();
60445        // Safety: drops once, never accessed again
60446        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60447    }
60448}
60449
60450impl fidl::endpoints::Responder for StreamSocketQueryResponder {
60451    type ControlHandle = StreamSocketControlHandle;
60452
60453    fn control_handle(&self) -> &StreamSocketControlHandle {
60454        &self.control_handle
60455    }
60456
60457    fn drop_without_shutdown(mut self) {
60458        // Safety: drops once, never accessed again due to mem::forget
60459        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60460        // Prevent Drop from running (which would shut down the channel)
60461        std::mem::forget(self);
60462    }
60463}
60464
60465impl StreamSocketQueryResponder {
60466    /// Sends a response to the FIDL transaction.
60467    ///
60468    /// Sets the channel to shutdown if an error occurs.
60469    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
60470        let _result = self.send_raw(protocol);
60471        if _result.is_err() {
60472            self.control_handle.shutdown();
60473        }
60474        self.drop_without_shutdown();
60475        _result
60476    }
60477
60478    /// Similar to "send" but does not shutdown the channel if an error occurs.
60479    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
60480        let _result = self.send_raw(protocol);
60481        self.drop_without_shutdown();
60482        _result
60483    }
60484
60485    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
60486        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
60487            (protocol,),
60488            self.tx_id,
60489            0x2658edee9decfc06,
60490            fidl::encoding::DynamicFlags::empty(),
60491        )
60492    }
60493}
60494
60495#[must_use = "FIDL methods require a response to be sent"]
60496#[derive(Debug)]
60497pub struct StreamSocketSetReuseAddressResponder {
60498    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60499    tx_id: u32,
60500}
60501
60502/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60503/// if the responder is dropped without sending a response, so that the client
60504/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60505impl std::ops::Drop for StreamSocketSetReuseAddressResponder {
60506    fn drop(&mut self) {
60507        self.control_handle.shutdown();
60508        // Safety: drops once, never accessed again
60509        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60510    }
60511}
60512
60513impl fidl::endpoints::Responder for StreamSocketSetReuseAddressResponder {
60514    type ControlHandle = StreamSocketControlHandle;
60515
60516    fn control_handle(&self) -> &StreamSocketControlHandle {
60517        &self.control_handle
60518    }
60519
60520    fn drop_without_shutdown(mut self) {
60521        // Safety: drops once, never accessed again due to mem::forget
60522        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60523        // Prevent Drop from running (which would shut down the channel)
60524        std::mem::forget(self);
60525    }
60526}
60527
60528impl StreamSocketSetReuseAddressResponder {
60529    /// Sends a response to the FIDL transaction.
60530    ///
60531    /// Sets the channel to shutdown if an error occurs.
60532    pub fn send(
60533        self,
60534        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60535    ) -> Result<(), fidl::Error> {
60536        let _result = self.send_raw(result);
60537        if _result.is_err() {
60538            self.control_handle.shutdown();
60539        }
60540        self.drop_without_shutdown();
60541        _result
60542    }
60543
60544    /// Similar to "send" but does not shutdown the channel if an error occurs.
60545    pub fn send_no_shutdown_on_err(
60546        self,
60547        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60548    ) -> Result<(), fidl::Error> {
60549        let _result = self.send_raw(result);
60550        self.drop_without_shutdown();
60551        _result
60552    }
60553
60554    fn send_raw(
60555        &self,
60556        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60557    ) -> Result<(), fidl::Error> {
60558        self.control_handle.inner.send::<fidl::encoding::ResultType<
60559            fidl::encoding::EmptyStruct,
60560            fidl_fuchsia_posix::Errno,
60561        >>(
60562            result,
60563            self.tx_id,
60564            0x1fd74ee8b9a4a876,
60565            fidl::encoding::DynamicFlags::empty(),
60566        )
60567    }
60568}
60569
60570#[must_use = "FIDL methods require a response to be sent"]
60571#[derive(Debug)]
60572pub struct StreamSocketGetReuseAddressResponder {
60573    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60574    tx_id: u32,
60575}
60576
60577/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60578/// if the responder is dropped without sending a response, so that the client
60579/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60580impl std::ops::Drop for StreamSocketGetReuseAddressResponder {
60581    fn drop(&mut self) {
60582        self.control_handle.shutdown();
60583        // Safety: drops once, never accessed again
60584        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60585    }
60586}
60587
60588impl fidl::endpoints::Responder for StreamSocketGetReuseAddressResponder {
60589    type ControlHandle = StreamSocketControlHandle;
60590
60591    fn control_handle(&self) -> &StreamSocketControlHandle {
60592        &self.control_handle
60593    }
60594
60595    fn drop_without_shutdown(mut self) {
60596        // Safety: drops once, never accessed again due to mem::forget
60597        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60598        // Prevent Drop from running (which would shut down the channel)
60599        std::mem::forget(self);
60600    }
60601}
60602
60603impl StreamSocketGetReuseAddressResponder {
60604    /// Sends a response to the FIDL transaction.
60605    ///
60606    /// Sets the channel to shutdown if an error occurs.
60607    pub fn send(
60608        self,
60609        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60610    ) -> Result<(), fidl::Error> {
60611        let _result = self.send_raw(result);
60612        if _result.is_err() {
60613            self.control_handle.shutdown();
60614        }
60615        self.drop_without_shutdown();
60616        _result
60617    }
60618
60619    /// Similar to "send" but does not shutdown the channel if an error occurs.
60620    pub fn send_no_shutdown_on_err(
60621        self,
60622        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60623    ) -> Result<(), fidl::Error> {
60624        let _result = self.send_raw(result);
60625        self.drop_without_shutdown();
60626        _result
60627    }
60628
60629    fn send_raw(
60630        &self,
60631        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60632    ) -> Result<(), fidl::Error> {
60633        self.control_handle.inner.send::<fidl::encoding::ResultType<
60634            BaseSocketGetReuseAddressResponse,
60635            fidl_fuchsia_posix::Errno,
60636        >>(
60637            result.map(|value| (value,)),
60638            self.tx_id,
60639            0x67b7206b8d1bc0a5,
60640            fidl::encoding::DynamicFlags::empty(),
60641        )
60642    }
60643}
60644
60645#[must_use = "FIDL methods require a response to be sent"]
60646#[derive(Debug)]
60647pub struct StreamSocketGetErrorResponder {
60648    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60649    tx_id: u32,
60650}
60651
60652/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60653/// if the responder is dropped without sending a response, so that the client
60654/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60655impl std::ops::Drop for StreamSocketGetErrorResponder {
60656    fn drop(&mut self) {
60657        self.control_handle.shutdown();
60658        // Safety: drops once, never accessed again
60659        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60660    }
60661}
60662
60663impl fidl::endpoints::Responder for StreamSocketGetErrorResponder {
60664    type ControlHandle = StreamSocketControlHandle;
60665
60666    fn control_handle(&self) -> &StreamSocketControlHandle {
60667        &self.control_handle
60668    }
60669
60670    fn drop_without_shutdown(mut self) {
60671        // Safety: drops once, never accessed again due to mem::forget
60672        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60673        // Prevent Drop from running (which would shut down the channel)
60674        std::mem::forget(self);
60675    }
60676}
60677
60678impl StreamSocketGetErrorResponder {
60679    /// Sends a response to the FIDL transaction.
60680    ///
60681    /// Sets the channel to shutdown if an error occurs.
60682    pub fn send(
60683        self,
60684        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60685    ) -> Result<(), fidl::Error> {
60686        let _result = self.send_raw(result);
60687        if _result.is_err() {
60688            self.control_handle.shutdown();
60689        }
60690        self.drop_without_shutdown();
60691        _result
60692    }
60693
60694    /// Similar to "send" but does not shutdown the channel if an error occurs.
60695    pub fn send_no_shutdown_on_err(
60696        self,
60697        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60698    ) -> Result<(), fidl::Error> {
60699        let _result = self.send_raw(result);
60700        self.drop_without_shutdown();
60701        _result
60702    }
60703
60704    fn send_raw(
60705        &self,
60706        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60707    ) -> Result<(), fidl::Error> {
60708        self.control_handle.inner.send::<fidl::encoding::ResultType<
60709            fidl::encoding::EmptyStruct,
60710            fidl_fuchsia_posix::Errno,
60711        >>(
60712            result,
60713            self.tx_id,
60714            0x5aad39b33e5f6ebb,
60715            fidl::encoding::DynamicFlags::empty(),
60716        )
60717    }
60718}
60719
60720#[must_use = "FIDL methods require a response to be sent"]
60721#[derive(Debug)]
60722pub struct StreamSocketSetBroadcastResponder {
60723    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60724    tx_id: u32,
60725}
60726
60727/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60728/// if the responder is dropped without sending a response, so that the client
60729/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60730impl std::ops::Drop for StreamSocketSetBroadcastResponder {
60731    fn drop(&mut self) {
60732        self.control_handle.shutdown();
60733        // Safety: drops once, never accessed again
60734        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60735    }
60736}
60737
60738impl fidl::endpoints::Responder for StreamSocketSetBroadcastResponder {
60739    type ControlHandle = StreamSocketControlHandle;
60740
60741    fn control_handle(&self) -> &StreamSocketControlHandle {
60742        &self.control_handle
60743    }
60744
60745    fn drop_without_shutdown(mut self) {
60746        // Safety: drops once, never accessed again due to mem::forget
60747        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60748        // Prevent Drop from running (which would shut down the channel)
60749        std::mem::forget(self);
60750    }
60751}
60752
60753impl StreamSocketSetBroadcastResponder {
60754    /// Sends a response to the FIDL transaction.
60755    ///
60756    /// Sets the channel to shutdown if an error occurs.
60757    pub fn send(
60758        self,
60759        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60760    ) -> Result<(), fidl::Error> {
60761        let _result = self.send_raw(result);
60762        if _result.is_err() {
60763            self.control_handle.shutdown();
60764        }
60765        self.drop_without_shutdown();
60766        _result
60767    }
60768
60769    /// Similar to "send" but does not shutdown the channel if an error occurs.
60770    pub fn send_no_shutdown_on_err(
60771        self,
60772        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60773    ) -> Result<(), fidl::Error> {
60774        let _result = self.send_raw(result);
60775        self.drop_without_shutdown();
60776        _result
60777    }
60778
60779    fn send_raw(
60780        &self,
60781        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60782    ) -> Result<(), fidl::Error> {
60783        self.control_handle.inner.send::<fidl::encoding::ResultType<
60784            fidl::encoding::EmptyStruct,
60785            fidl_fuchsia_posix::Errno,
60786        >>(
60787            result,
60788            self.tx_id,
60789            0x6023e081ce3cd947,
60790            fidl::encoding::DynamicFlags::empty(),
60791        )
60792    }
60793}
60794
60795#[must_use = "FIDL methods require a response to be sent"]
60796#[derive(Debug)]
60797pub struct StreamSocketGetBroadcastResponder {
60798    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60799    tx_id: u32,
60800}
60801
60802/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60803/// if the responder is dropped without sending a response, so that the client
60804/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60805impl std::ops::Drop for StreamSocketGetBroadcastResponder {
60806    fn drop(&mut self) {
60807        self.control_handle.shutdown();
60808        // Safety: drops once, never accessed again
60809        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60810    }
60811}
60812
60813impl fidl::endpoints::Responder for StreamSocketGetBroadcastResponder {
60814    type ControlHandle = StreamSocketControlHandle;
60815
60816    fn control_handle(&self) -> &StreamSocketControlHandle {
60817        &self.control_handle
60818    }
60819
60820    fn drop_without_shutdown(mut self) {
60821        // Safety: drops once, never accessed again due to mem::forget
60822        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60823        // Prevent Drop from running (which would shut down the channel)
60824        std::mem::forget(self);
60825    }
60826}
60827
60828impl StreamSocketGetBroadcastResponder {
60829    /// Sends a response to the FIDL transaction.
60830    ///
60831    /// Sets the channel to shutdown if an error occurs.
60832    pub fn send(
60833        self,
60834        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60835    ) -> Result<(), fidl::Error> {
60836        let _result = self.send_raw(result);
60837        if _result.is_err() {
60838            self.control_handle.shutdown();
60839        }
60840        self.drop_without_shutdown();
60841        _result
60842    }
60843
60844    /// Similar to "send" but does not shutdown the channel if an error occurs.
60845    pub fn send_no_shutdown_on_err(
60846        self,
60847        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60848    ) -> Result<(), fidl::Error> {
60849        let _result = self.send_raw(result);
60850        self.drop_without_shutdown();
60851        _result
60852    }
60853
60854    fn send_raw(
60855        &self,
60856        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60857    ) -> Result<(), fidl::Error> {
60858        self.control_handle.inner.send::<fidl::encoding::ResultType<
60859            BaseSocketGetBroadcastResponse,
60860            fidl_fuchsia_posix::Errno,
60861        >>(
60862            result.map(|value| (value,)),
60863            self.tx_id,
60864            0x68796fc556f9780d,
60865            fidl::encoding::DynamicFlags::empty(),
60866        )
60867    }
60868}
60869
60870#[must_use = "FIDL methods require a response to be sent"]
60871#[derive(Debug)]
60872pub struct StreamSocketSetSendBufferResponder {
60873    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60874    tx_id: u32,
60875}
60876
60877/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60878/// if the responder is dropped without sending a response, so that the client
60879/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60880impl std::ops::Drop for StreamSocketSetSendBufferResponder {
60881    fn drop(&mut self) {
60882        self.control_handle.shutdown();
60883        // Safety: drops once, never accessed again
60884        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60885    }
60886}
60887
60888impl fidl::endpoints::Responder for StreamSocketSetSendBufferResponder {
60889    type ControlHandle = StreamSocketControlHandle;
60890
60891    fn control_handle(&self) -> &StreamSocketControlHandle {
60892        &self.control_handle
60893    }
60894
60895    fn drop_without_shutdown(mut self) {
60896        // Safety: drops once, never accessed again due to mem::forget
60897        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60898        // Prevent Drop from running (which would shut down the channel)
60899        std::mem::forget(self);
60900    }
60901}
60902
60903impl StreamSocketSetSendBufferResponder {
60904    /// Sends a response to the FIDL transaction.
60905    ///
60906    /// Sets the channel to shutdown if an error occurs.
60907    pub fn send(
60908        self,
60909        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60910    ) -> Result<(), fidl::Error> {
60911        let _result = self.send_raw(result);
60912        if _result.is_err() {
60913            self.control_handle.shutdown();
60914        }
60915        self.drop_without_shutdown();
60916        _result
60917    }
60918
60919    /// Similar to "send" but does not shutdown the channel if an error occurs.
60920    pub fn send_no_shutdown_on_err(
60921        self,
60922        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60923    ) -> Result<(), fidl::Error> {
60924        let _result = self.send_raw(result);
60925        self.drop_without_shutdown();
60926        _result
60927    }
60928
60929    fn send_raw(
60930        &self,
60931        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60932    ) -> Result<(), fidl::Error> {
60933        self.control_handle.inner.send::<fidl::encoding::ResultType<
60934            fidl::encoding::EmptyStruct,
60935            fidl_fuchsia_posix::Errno,
60936        >>(
60937            result,
60938            self.tx_id,
60939            0x756eac32d73a7a70,
60940            fidl::encoding::DynamicFlags::empty(),
60941        )
60942    }
60943}
60944
60945#[must_use = "FIDL methods require a response to be sent"]
60946#[derive(Debug)]
60947pub struct StreamSocketGetSendBufferResponder {
60948    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60949    tx_id: u32,
60950}
60951
60952/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60953/// if the responder is dropped without sending a response, so that the client
60954/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60955impl std::ops::Drop for StreamSocketGetSendBufferResponder {
60956    fn drop(&mut self) {
60957        self.control_handle.shutdown();
60958        // Safety: drops once, never accessed again
60959        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60960    }
60961}
60962
60963impl fidl::endpoints::Responder for StreamSocketGetSendBufferResponder {
60964    type ControlHandle = StreamSocketControlHandle;
60965
60966    fn control_handle(&self) -> &StreamSocketControlHandle {
60967        &self.control_handle
60968    }
60969
60970    fn drop_without_shutdown(mut self) {
60971        // Safety: drops once, never accessed again due to mem::forget
60972        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60973        // Prevent Drop from running (which would shut down the channel)
60974        std::mem::forget(self);
60975    }
60976}
60977
60978impl StreamSocketGetSendBufferResponder {
60979    /// Sends a response to the FIDL transaction.
60980    ///
60981    /// Sets the channel to shutdown if an error occurs.
60982    pub fn send(
60983        self,
60984        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
60985    ) -> Result<(), fidl::Error> {
60986        let _result = self.send_raw(result);
60987        if _result.is_err() {
60988            self.control_handle.shutdown();
60989        }
60990        self.drop_without_shutdown();
60991        _result
60992    }
60993
60994    /// Similar to "send" but does not shutdown the channel if an error occurs.
60995    pub fn send_no_shutdown_on_err(
60996        self,
60997        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
60998    ) -> Result<(), fidl::Error> {
60999        let _result = self.send_raw(result);
61000        self.drop_without_shutdown();
61001        _result
61002    }
61003
61004    fn send_raw(
61005        &self,
61006        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
61007    ) -> Result<(), fidl::Error> {
61008        self.control_handle.inner.send::<fidl::encoding::ResultType<
61009            BaseSocketGetSendBufferResponse,
61010            fidl_fuchsia_posix::Errno,
61011        >>(
61012            result.map(|value_bytes| (value_bytes,)),
61013            self.tx_id,
61014            0x78a52fd9c7b2410b,
61015            fidl::encoding::DynamicFlags::empty(),
61016        )
61017    }
61018}
61019
61020#[must_use = "FIDL methods require a response to be sent"]
61021#[derive(Debug)]
61022pub struct StreamSocketSetReceiveBufferResponder {
61023    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61024    tx_id: u32,
61025}
61026
61027/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61028/// if the responder is dropped without sending a response, so that the client
61029/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61030impl std::ops::Drop for StreamSocketSetReceiveBufferResponder {
61031    fn drop(&mut self) {
61032        self.control_handle.shutdown();
61033        // Safety: drops once, never accessed again
61034        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61035    }
61036}
61037
61038impl fidl::endpoints::Responder for StreamSocketSetReceiveBufferResponder {
61039    type ControlHandle = StreamSocketControlHandle;
61040
61041    fn control_handle(&self) -> &StreamSocketControlHandle {
61042        &self.control_handle
61043    }
61044
61045    fn drop_without_shutdown(mut self) {
61046        // Safety: drops once, never accessed again due to mem::forget
61047        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61048        // Prevent Drop from running (which would shut down the channel)
61049        std::mem::forget(self);
61050    }
61051}
61052
61053impl StreamSocketSetReceiveBufferResponder {
61054    /// Sends a response to the FIDL transaction.
61055    ///
61056    /// Sets the channel to shutdown if an error occurs.
61057    pub fn send(
61058        self,
61059        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61060    ) -> Result<(), fidl::Error> {
61061        let _result = self.send_raw(result);
61062        if _result.is_err() {
61063            self.control_handle.shutdown();
61064        }
61065        self.drop_without_shutdown();
61066        _result
61067    }
61068
61069    /// Similar to "send" but does not shutdown the channel if an error occurs.
61070    pub fn send_no_shutdown_on_err(
61071        self,
61072        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61073    ) -> Result<(), fidl::Error> {
61074        let _result = self.send_raw(result);
61075        self.drop_without_shutdown();
61076        _result
61077    }
61078
61079    fn send_raw(
61080        &self,
61081        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61082    ) -> Result<(), fidl::Error> {
61083        self.control_handle.inner.send::<fidl::encoding::ResultType<
61084            fidl::encoding::EmptyStruct,
61085            fidl_fuchsia_posix::Errno,
61086        >>(
61087            result,
61088            self.tx_id,
61089            0x6b0cf2f1919c7001,
61090            fidl::encoding::DynamicFlags::empty(),
61091        )
61092    }
61093}
61094
61095#[must_use = "FIDL methods require a response to be sent"]
61096#[derive(Debug)]
61097pub struct StreamSocketGetReceiveBufferResponder {
61098    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61099    tx_id: u32,
61100}
61101
61102/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61103/// if the responder is dropped without sending a response, so that the client
61104/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61105impl std::ops::Drop for StreamSocketGetReceiveBufferResponder {
61106    fn drop(&mut self) {
61107        self.control_handle.shutdown();
61108        // Safety: drops once, never accessed again
61109        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61110    }
61111}
61112
61113impl fidl::endpoints::Responder for StreamSocketGetReceiveBufferResponder {
61114    type ControlHandle = StreamSocketControlHandle;
61115
61116    fn control_handle(&self) -> &StreamSocketControlHandle {
61117        &self.control_handle
61118    }
61119
61120    fn drop_without_shutdown(mut self) {
61121        // Safety: drops once, never accessed again due to mem::forget
61122        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61123        // Prevent Drop from running (which would shut down the channel)
61124        std::mem::forget(self);
61125    }
61126}
61127
61128impl StreamSocketGetReceiveBufferResponder {
61129    /// Sends a response to the FIDL transaction.
61130    ///
61131    /// Sets the channel to shutdown if an error occurs.
61132    pub fn send(
61133        self,
61134        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
61135    ) -> Result<(), fidl::Error> {
61136        let _result = self.send_raw(result);
61137        if _result.is_err() {
61138            self.control_handle.shutdown();
61139        }
61140        self.drop_without_shutdown();
61141        _result
61142    }
61143
61144    /// Similar to "send" but does not shutdown the channel if an error occurs.
61145    pub fn send_no_shutdown_on_err(
61146        self,
61147        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
61148    ) -> Result<(), fidl::Error> {
61149        let _result = self.send_raw(result);
61150        self.drop_without_shutdown();
61151        _result
61152    }
61153
61154    fn send_raw(
61155        &self,
61156        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
61157    ) -> Result<(), fidl::Error> {
61158        self.control_handle.inner.send::<fidl::encoding::ResultType<
61159            BaseSocketGetReceiveBufferResponse,
61160            fidl_fuchsia_posix::Errno,
61161        >>(
61162            result.map(|value_bytes| (value_bytes,)),
61163            self.tx_id,
61164            0x14c1a4b64f709e5c,
61165            fidl::encoding::DynamicFlags::empty(),
61166        )
61167    }
61168}
61169
61170#[must_use = "FIDL methods require a response to be sent"]
61171#[derive(Debug)]
61172pub struct StreamSocketSetKeepAliveResponder {
61173    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61174    tx_id: u32,
61175}
61176
61177/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61178/// if the responder is dropped without sending a response, so that the client
61179/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61180impl std::ops::Drop for StreamSocketSetKeepAliveResponder {
61181    fn drop(&mut self) {
61182        self.control_handle.shutdown();
61183        // Safety: drops once, never accessed again
61184        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61185    }
61186}
61187
61188impl fidl::endpoints::Responder for StreamSocketSetKeepAliveResponder {
61189    type ControlHandle = StreamSocketControlHandle;
61190
61191    fn control_handle(&self) -> &StreamSocketControlHandle {
61192        &self.control_handle
61193    }
61194
61195    fn drop_without_shutdown(mut self) {
61196        // Safety: drops once, never accessed again due to mem::forget
61197        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61198        // Prevent Drop from running (which would shut down the channel)
61199        std::mem::forget(self);
61200    }
61201}
61202
61203impl StreamSocketSetKeepAliveResponder {
61204    /// Sends a response to the FIDL transaction.
61205    ///
61206    /// Sets the channel to shutdown if an error occurs.
61207    pub fn send(
61208        self,
61209        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61210    ) -> Result<(), fidl::Error> {
61211        let _result = self.send_raw(result);
61212        if _result.is_err() {
61213            self.control_handle.shutdown();
61214        }
61215        self.drop_without_shutdown();
61216        _result
61217    }
61218
61219    /// Similar to "send" but does not shutdown the channel if an error occurs.
61220    pub fn send_no_shutdown_on_err(
61221        self,
61222        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61223    ) -> Result<(), fidl::Error> {
61224        let _result = self.send_raw(result);
61225        self.drop_without_shutdown();
61226        _result
61227    }
61228
61229    fn send_raw(
61230        &self,
61231        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61232    ) -> Result<(), fidl::Error> {
61233        self.control_handle.inner.send::<fidl::encoding::ResultType<
61234            fidl::encoding::EmptyStruct,
61235            fidl_fuchsia_posix::Errno,
61236        >>(
61237            result,
61238            self.tx_id,
61239            0x572df8f0b920d2c7,
61240            fidl::encoding::DynamicFlags::empty(),
61241        )
61242    }
61243}
61244
61245#[must_use = "FIDL methods require a response to be sent"]
61246#[derive(Debug)]
61247pub struct StreamSocketGetKeepAliveResponder {
61248    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61249    tx_id: u32,
61250}
61251
61252/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61253/// if the responder is dropped without sending a response, so that the client
61254/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61255impl std::ops::Drop for StreamSocketGetKeepAliveResponder {
61256    fn drop(&mut self) {
61257        self.control_handle.shutdown();
61258        // Safety: drops once, never accessed again
61259        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61260    }
61261}
61262
61263impl fidl::endpoints::Responder for StreamSocketGetKeepAliveResponder {
61264    type ControlHandle = StreamSocketControlHandle;
61265
61266    fn control_handle(&self) -> &StreamSocketControlHandle {
61267        &self.control_handle
61268    }
61269
61270    fn drop_without_shutdown(mut self) {
61271        // Safety: drops once, never accessed again due to mem::forget
61272        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61273        // Prevent Drop from running (which would shut down the channel)
61274        std::mem::forget(self);
61275    }
61276}
61277
61278impl StreamSocketGetKeepAliveResponder {
61279    /// Sends a response to the FIDL transaction.
61280    ///
61281    /// Sets the channel to shutdown if an error occurs.
61282    pub fn send(
61283        self,
61284        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61285    ) -> Result<(), fidl::Error> {
61286        let _result = self.send_raw(result);
61287        if _result.is_err() {
61288            self.control_handle.shutdown();
61289        }
61290        self.drop_without_shutdown();
61291        _result
61292    }
61293
61294    /// Similar to "send" but does not shutdown the channel if an error occurs.
61295    pub fn send_no_shutdown_on_err(
61296        self,
61297        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61298    ) -> Result<(), fidl::Error> {
61299        let _result = self.send_raw(result);
61300        self.drop_without_shutdown();
61301        _result
61302    }
61303
61304    fn send_raw(
61305        &self,
61306        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61307    ) -> Result<(), fidl::Error> {
61308        self.control_handle.inner.send::<fidl::encoding::ResultType<
61309            BaseSocketGetKeepAliveResponse,
61310            fidl_fuchsia_posix::Errno,
61311        >>(
61312            result.map(|value| (value,)),
61313            self.tx_id,
61314            0x2dd29d3215f2c9d2,
61315            fidl::encoding::DynamicFlags::empty(),
61316        )
61317    }
61318}
61319
61320#[must_use = "FIDL methods require a response to be sent"]
61321#[derive(Debug)]
61322pub struct StreamSocketSetOutOfBandInlineResponder {
61323    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61324    tx_id: u32,
61325}
61326
61327/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61328/// if the responder is dropped without sending a response, so that the client
61329/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61330impl std::ops::Drop for StreamSocketSetOutOfBandInlineResponder {
61331    fn drop(&mut self) {
61332        self.control_handle.shutdown();
61333        // Safety: drops once, never accessed again
61334        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61335    }
61336}
61337
61338impl fidl::endpoints::Responder for StreamSocketSetOutOfBandInlineResponder {
61339    type ControlHandle = StreamSocketControlHandle;
61340
61341    fn control_handle(&self) -> &StreamSocketControlHandle {
61342        &self.control_handle
61343    }
61344
61345    fn drop_without_shutdown(mut self) {
61346        // Safety: drops once, never accessed again due to mem::forget
61347        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61348        // Prevent Drop from running (which would shut down the channel)
61349        std::mem::forget(self);
61350    }
61351}
61352
61353impl StreamSocketSetOutOfBandInlineResponder {
61354    /// Sends a response to the FIDL transaction.
61355    ///
61356    /// Sets the channel to shutdown if an error occurs.
61357    pub fn send(
61358        self,
61359        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61360    ) -> Result<(), fidl::Error> {
61361        let _result = self.send_raw(result);
61362        if _result.is_err() {
61363            self.control_handle.shutdown();
61364        }
61365        self.drop_without_shutdown();
61366        _result
61367    }
61368
61369    /// Similar to "send" but does not shutdown the channel if an error occurs.
61370    pub fn send_no_shutdown_on_err(
61371        self,
61372        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61373    ) -> Result<(), fidl::Error> {
61374        let _result = self.send_raw(result);
61375        self.drop_without_shutdown();
61376        _result
61377    }
61378
61379    fn send_raw(
61380        &self,
61381        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61382    ) -> Result<(), fidl::Error> {
61383        self.control_handle.inner.send::<fidl::encoding::ResultType<
61384            fidl::encoding::EmptyStruct,
61385            fidl_fuchsia_posix::Errno,
61386        >>(
61387            result,
61388            self.tx_id,
61389            0x3ecb49968bee439,
61390            fidl::encoding::DynamicFlags::empty(),
61391        )
61392    }
61393}
61394
61395#[must_use = "FIDL methods require a response to be sent"]
61396#[derive(Debug)]
61397pub struct StreamSocketGetOutOfBandInlineResponder {
61398    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61399    tx_id: u32,
61400}
61401
61402/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61403/// if the responder is dropped without sending a response, so that the client
61404/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61405impl std::ops::Drop for StreamSocketGetOutOfBandInlineResponder {
61406    fn drop(&mut self) {
61407        self.control_handle.shutdown();
61408        // Safety: drops once, never accessed again
61409        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61410    }
61411}
61412
61413impl fidl::endpoints::Responder for StreamSocketGetOutOfBandInlineResponder {
61414    type ControlHandle = StreamSocketControlHandle;
61415
61416    fn control_handle(&self) -> &StreamSocketControlHandle {
61417        &self.control_handle
61418    }
61419
61420    fn drop_without_shutdown(mut self) {
61421        // Safety: drops once, never accessed again due to mem::forget
61422        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61423        // Prevent Drop from running (which would shut down the channel)
61424        std::mem::forget(self);
61425    }
61426}
61427
61428impl StreamSocketGetOutOfBandInlineResponder {
61429    /// Sends a response to the FIDL transaction.
61430    ///
61431    /// Sets the channel to shutdown if an error occurs.
61432    pub fn send(
61433        self,
61434        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61435    ) -> Result<(), fidl::Error> {
61436        let _result = self.send_raw(result);
61437        if _result.is_err() {
61438            self.control_handle.shutdown();
61439        }
61440        self.drop_without_shutdown();
61441        _result
61442    }
61443
61444    /// Similar to "send" but does not shutdown the channel if an error occurs.
61445    pub fn send_no_shutdown_on_err(
61446        self,
61447        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61448    ) -> Result<(), fidl::Error> {
61449        let _result = self.send_raw(result);
61450        self.drop_without_shutdown();
61451        _result
61452    }
61453
61454    fn send_raw(
61455        &self,
61456        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61457    ) -> Result<(), fidl::Error> {
61458        self.control_handle.inner.send::<fidl::encoding::ResultType<
61459            BaseSocketGetOutOfBandInlineResponse,
61460            fidl_fuchsia_posix::Errno,
61461        >>(
61462            result.map(|value| (value,)),
61463            self.tx_id,
61464            0x348c1ab3aeca1745,
61465            fidl::encoding::DynamicFlags::empty(),
61466        )
61467    }
61468}
61469
61470#[must_use = "FIDL methods require a response to be sent"]
61471#[derive(Debug)]
61472pub struct StreamSocketSetNoCheckResponder {
61473    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61474    tx_id: u32,
61475}
61476
61477/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61478/// if the responder is dropped without sending a response, so that the client
61479/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61480impl std::ops::Drop for StreamSocketSetNoCheckResponder {
61481    fn drop(&mut self) {
61482        self.control_handle.shutdown();
61483        // Safety: drops once, never accessed again
61484        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61485    }
61486}
61487
61488impl fidl::endpoints::Responder for StreamSocketSetNoCheckResponder {
61489    type ControlHandle = StreamSocketControlHandle;
61490
61491    fn control_handle(&self) -> &StreamSocketControlHandle {
61492        &self.control_handle
61493    }
61494
61495    fn drop_without_shutdown(mut self) {
61496        // Safety: drops once, never accessed again due to mem::forget
61497        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61498        // Prevent Drop from running (which would shut down the channel)
61499        std::mem::forget(self);
61500    }
61501}
61502
61503impl StreamSocketSetNoCheckResponder {
61504    /// Sends a response to the FIDL transaction.
61505    ///
61506    /// Sets the channel to shutdown if an error occurs.
61507    pub fn send(
61508        self,
61509        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61510    ) -> Result<(), fidl::Error> {
61511        let _result = self.send_raw(result);
61512        if _result.is_err() {
61513            self.control_handle.shutdown();
61514        }
61515        self.drop_without_shutdown();
61516        _result
61517    }
61518
61519    /// Similar to "send" but does not shutdown the channel if an error occurs.
61520    pub fn send_no_shutdown_on_err(
61521        self,
61522        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61523    ) -> Result<(), fidl::Error> {
61524        let _result = self.send_raw(result);
61525        self.drop_without_shutdown();
61526        _result
61527    }
61528
61529    fn send_raw(
61530        &self,
61531        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61532    ) -> Result<(), fidl::Error> {
61533        self.control_handle.inner.send::<fidl::encoding::ResultType<
61534            fidl::encoding::EmptyStruct,
61535            fidl_fuchsia_posix::Errno,
61536        >>(
61537            result,
61538            self.tx_id,
61539            0x6bbf00c53a4c78c2,
61540            fidl::encoding::DynamicFlags::empty(),
61541        )
61542    }
61543}
61544
61545#[must_use = "FIDL methods require a response to be sent"]
61546#[derive(Debug)]
61547pub struct StreamSocketGetNoCheckResponder {
61548    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61549    tx_id: u32,
61550}
61551
61552/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61553/// if the responder is dropped without sending a response, so that the client
61554/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61555impl std::ops::Drop for StreamSocketGetNoCheckResponder {
61556    fn drop(&mut self) {
61557        self.control_handle.shutdown();
61558        // Safety: drops once, never accessed again
61559        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61560    }
61561}
61562
61563impl fidl::endpoints::Responder for StreamSocketGetNoCheckResponder {
61564    type ControlHandle = StreamSocketControlHandle;
61565
61566    fn control_handle(&self) -> &StreamSocketControlHandle {
61567        &self.control_handle
61568    }
61569
61570    fn drop_without_shutdown(mut self) {
61571        // Safety: drops once, never accessed again due to mem::forget
61572        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61573        // Prevent Drop from running (which would shut down the channel)
61574        std::mem::forget(self);
61575    }
61576}
61577
61578impl StreamSocketGetNoCheckResponder {
61579    /// Sends a response to the FIDL transaction.
61580    ///
61581    /// Sets the channel to shutdown if an error occurs.
61582    pub fn send(
61583        self,
61584        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61585    ) -> Result<(), fidl::Error> {
61586        let _result = self.send_raw(result);
61587        if _result.is_err() {
61588            self.control_handle.shutdown();
61589        }
61590        self.drop_without_shutdown();
61591        _result
61592    }
61593
61594    /// Similar to "send" but does not shutdown the channel if an error occurs.
61595    pub fn send_no_shutdown_on_err(
61596        self,
61597        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61598    ) -> Result<(), fidl::Error> {
61599        let _result = self.send_raw(result);
61600        self.drop_without_shutdown();
61601        _result
61602    }
61603
61604    fn send_raw(
61605        &self,
61606        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61607    ) -> Result<(), fidl::Error> {
61608        self.control_handle.inner.send::<fidl::encoding::ResultType<
61609            BaseSocketGetNoCheckResponse,
61610            fidl_fuchsia_posix::Errno,
61611        >>(
61612            result.map(|value| (value,)),
61613            self.tx_id,
61614            0x2cd4249286417694,
61615            fidl::encoding::DynamicFlags::empty(),
61616        )
61617    }
61618}
61619
61620#[must_use = "FIDL methods require a response to be sent"]
61621#[derive(Debug)]
61622pub struct StreamSocketSetLingerResponder {
61623    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61624    tx_id: u32,
61625}
61626
61627/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61628/// if the responder is dropped without sending a response, so that the client
61629/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61630impl std::ops::Drop for StreamSocketSetLingerResponder {
61631    fn drop(&mut self) {
61632        self.control_handle.shutdown();
61633        // Safety: drops once, never accessed again
61634        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61635    }
61636}
61637
61638impl fidl::endpoints::Responder for StreamSocketSetLingerResponder {
61639    type ControlHandle = StreamSocketControlHandle;
61640
61641    fn control_handle(&self) -> &StreamSocketControlHandle {
61642        &self.control_handle
61643    }
61644
61645    fn drop_without_shutdown(mut self) {
61646        // Safety: drops once, never accessed again due to mem::forget
61647        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61648        // Prevent Drop from running (which would shut down the channel)
61649        std::mem::forget(self);
61650    }
61651}
61652
61653impl StreamSocketSetLingerResponder {
61654    /// Sends a response to the FIDL transaction.
61655    ///
61656    /// Sets the channel to shutdown if an error occurs.
61657    pub fn send(
61658        self,
61659        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61660    ) -> Result<(), fidl::Error> {
61661        let _result = self.send_raw(result);
61662        if _result.is_err() {
61663            self.control_handle.shutdown();
61664        }
61665        self.drop_without_shutdown();
61666        _result
61667    }
61668
61669    /// Similar to "send" but does not shutdown the channel if an error occurs.
61670    pub fn send_no_shutdown_on_err(
61671        self,
61672        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61673    ) -> Result<(), fidl::Error> {
61674        let _result = self.send_raw(result);
61675        self.drop_without_shutdown();
61676        _result
61677    }
61678
61679    fn send_raw(
61680        &self,
61681        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61682    ) -> Result<(), fidl::Error> {
61683        self.control_handle.inner.send::<fidl::encoding::ResultType<
61684            fidl::encoding::EmptyStruct,
61685            fidl_fuchsia_posix::Errno,
61686        >>(
61687            result,
61688            self.tx_id,
61689            0x45386351246e998e,
61690            fidl::encoding::DynamicFlags::empty(),
61691        )
61692    }
61693}
61694
61695#[must_use = "FIDL methods require a response to be sent"]
61696#[derive(Debug)]
61697pub struct StreamSocketGetLingerResponder {
61698    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61699    tx_id: u32,
61700}
61701
61702/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61703/// if the responder is dropped without sending a response, so that the client
61704/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61705impl std::ops::Drop for StreamSocketGetLingerResponder {
61706    fn drop(&mut self) {
61707        self.control_handle.shutdown();
61708        // Safety: drops once, never accessed again
61709        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61710    }
61711}
61712
61713impl fidl::endpoints::Responder for StreamSocketGetLingerResponder {
61714    type ControlHandle = StreamSocketControlHandle;
61715
61716    fn control_handle(&self) -> &StreamSocketControlHandle {
61717        &self.control_handle
61718    }
61719
61720    fn drop_without_shutdown(mut self) {
61721        // Safety: drops once, never accessed again due to mem::forget
61722        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61723        // Prevent Drop from running (which would shut down the channel)
61724        std::mem::forget(self);
61725    }
61726}
61727
61728impl StreamSocketGetLingerResponder {
61729    /// Sends a response to the FIDL transaction.
61730    ///
61731    /// Sets the channel to shutdown if an error occurs.
61732    pub fn send(
61733        self,
61734        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
61735    ) -> Result<(), fidl::Error> {
61736        let _result = self.send_raw(result);
61737        if _result.is_err() {
61738            self.control_handle.shutdown();
61739        }
61740        self.drop_without_shutdown();
61741        _result
61742    }
61743
61744    /// Similar to "send" but does not shutdown the channel if an error occurs.
61745    pub fn send_no_shutdown_on_err(
61746        self,
61747        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
61748    ) -> Result<(), fidl::Error> {
61749        let _result = self.send_raw(result);
61750        self.drop_without_shutdown();
61751        _result
61752    }
61753
61754    fn send_raw(
61755        &self,
61756        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
61757    ) -> Result<(), fidl::Error> {
61758        self.control_handle.inner.send::<fidl::encoding::ResultType<
61759            BaseSocketGetLingerResponse,
61760            fidl_fuchsia_posix::Errno,
61761        >>(
61762            result,
61763            self.tx_id,
61764            0x48eb20fc5ccb0e45,
61765            fidl::encoding::DynamicFlags::empty(),
61766        )
61767    }
61768}
61769
61770#[must_use = "FIDL methods require a response to be sent"]
61771#[derive(Debug)]
61772pub struct StreamSocketSetReusePortResponder {
61773    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61774    tx_id: u32,
61775}
61776
61777/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61778/// if the responder is dropped without sending a response, so that the client
61779/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61780impl std::ops::Drop for StreamSocketSetReusePortResponder {
61781    fn drop(&mut self) {
61782        self.control_handle.shutdown();
61783        // Safety: drops once, never accessed again
61784        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61785    }
61786}
61787
61788impl fidl::endpoints::Responder for StreamSocketSetReusePortResponder {
61789    type ControlHandle = StreamSocketControlHandle;
61790
61791    fn control_handle(&self) -> &StreamSocketControlHandle {
61792        &self.control_handle
61793    }
61794
61795    fn drop_without_shutdown(mut self) {
61796        // Safety: drops once, never accessed again due to mem::forget
61797        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61798        // Prevent Drop from running (which would shut down the channel)
61799        std::mem::forget(self);
61800    }
61801}
61802
61803impl StreamSocketSetReusePortResponder {
61804    /// Sends a response to the FIDL transaction.
61805    ///
61806    /// Sets the channel to shutdown if an error occurs.
61807    pub fn send(
61808        self,
61809        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61810    ) -> Result<(), fidl::Error> {
61811        let _result = self.send_raw(result);
61812        if _result.is_err() {
61813            self.control_handle.shutdown();
61814        }
61815        self.drop_without_shutdown();
61816        _result
61817    }
61818
61819    /// Similar to "send" but does not shutdown the channel if an error occurs.
61820    pub fn send_no_shutdown_on_err(
61821        self,
61822        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61823    ) -> Result<(), fidl::Error> {
61824        let _result = self.send_raw(result);
61825        self.drop_without_shutdown();
61826        _result
61827    }
61828
61829    fn send_raw(
61830        &self,
61831        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61832    ) -> Result<(), fidl::Error> {
61833        self.control_handle.inner.send::<fidl::encoding::ResultType<
61834            fidl::encoding::EmptyStruct,
61835            fidl_fuchsia_posix::Errno,
61836        >>(
61837            result,
61838            self.tx_id,
61839            0x24dd3e5cb36d9ccb,
61840            fidl::encoding::DynamicFlags::empty(),
61841        )
61842    }
61843}
61844
61845#[must_use = "FIDL methods require a response to be sent"]
61846#[derive(Debug)]
61847pub struct StreamSocketGetReusePortResponder {
61848    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61849    tx_id: u32,
61850}
61851
61852/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61853/// if the responder is dropped without sending a response, so that the client
61854/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61855impl std::ops::Drop for StreamSocketGetReusePortResponder {
61856    fn drop(&mut self) {
61857        self.control_handle.shutdown();
61858        // Safety: drops once, never accessed again
61859        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61860    }
61861}
61862
61863impl fidl::endpoints::Responder for StreamSocketGetReusePortResponder {
61864    type ControlHandle = StreamSocketControlHandle;
61865
61866    fn control_handle(&self) -> &StreamSocketControlHandle {
61867        &self.control_handle
61868    }
61869
61870    fn drop_without_shutdown(mut self) {
61871        // Safety: drops once, never accessed again due to mem::forget
61872        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61873        // Prevent Drop from running (which would shut down the channel)
61874        std::mem::forget(self);
61875    }
61876}
61877
61878impl StreamSocketGetReusePortResponder {
61879    /// Sends a response to the FIDL transaction.
61880    ///
61881    /// Sets the channel to shutdown if an error occurs.
61882    pub fn send(
61883        self,
61884        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61885    ) -> Result<(), fidl::Error> {
61886        let _result = self.send_raw(result);
61887        if _result.is_err() {
61888            self.control_handle.shutdown();
61889        }
61890        self.drop_without_shutdown();
61891        _result
61892    }
61893
61894    /// Similar to "send" but does not shutdown the channel if an error occurs.
61895    pub fn send_no_shutdown_on_err(
61896        self,
61897        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61898    ) -> Result<(), fidl::Error> {
61899        let _result = self.send_raw(result);
61900        self.drop_without_shutdown();
61901        _result
61902    }
61903
61904    fn send_raw(
61905        &self,
61906        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61907    ) -> Result<(), fidl::Error> {
61908        self.control_handle.inner.send::<fidl::encoding::ResultType<
61909            BaseSocketGetReusePortResponse,
61910            fidl_fuchsia_posix::Errno,
61911        >>(
61912            result.map(|value| (value,)),
61913            self.tx_id,
61914            0x7a112c1ab54ff828,
61915            fidl::encoding::DynamicFlags::empty(),
61916        )
61917    }
61918}
61919
61920#[must_use = "FIDL methods require a response to be sent"]
61921#[derive(Debug)]
61922pub struct StreamSocketGetAcceptConnResponder {
61923    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61924    tx_id: u32,
61925}
61926
61927/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61928/// if the responder is dropped without sending a response, so that the client
61929/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61930impl std::ops::Drop for StreamSocketGetAcceptConnResponder {
61931    fn drop(&mut self) {
61932        self.control_handle.shutdown();
61933        // Safety: drops once, never accessed again
61934        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61935    }
61936}
61937
61938impl fidl::endpoints::Responder for StreamSocketGetAcceptConnResponder {
61939    type ControlHandle = StreamSocketControlHandle;
61940
61941    fn control_handle(&self) -> &StreamSocketControlHandle {
61942        &self.control_handle
61943    }
61944
61945    fn drop_without_shutdown(mut self) {
61946        // Safety: drops once, never accessed again due to mem::forget
61947        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61948        // Prevent Drop from running (which would shut down the channel)
61949        std::mem::forget(self);
61950    }
61951}
61952
61953impl StreamSocketGetAcceptConnResponder {
61954    /// Sends a response to the FIDL transaction.
61955    ///
61956    /// Sets the channel to shutdown if an error occurs.
61957    pub fn send(
61958        self,
61959        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61960    ) -> Result<(), fidl::Error> {
61961        let _result = self.send_raw(result);
61962        if _result.is_err() {
61963            self.control_handle.shutdown();
61964        }
61965        self.drop_without_shutdown();
61966        _result
61967    }
61968
61969    /// Similar to "send" but does not shutdown the channel if an error occurs.
61970    pub fn send_no_shutdown_on_err(
61971        self,
61972        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61973    ) -> Result<(), fidl::Error> {
61974        let _result = self.send_raw(result);
61975        self.drop_without_shutdown();
61976        _result
61977    }
61978
61979    fn send_raw(
61980        &self,
61981        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61982    ) -> Result<(), fidl::Error> {
61983        self.control_handle.inner.send::<fidl::encoding::ResultType<
61984            BaseSocketGetAcceptConnResponse,
61985            fidl_fuchsia_posix::Errno,
61986        >>(
61987            result.map(|value| (value,)),
61988            self.tx_id,
61989            0x67ce6db6c2ec8966,
61990            fidl::encoding::DynamicFlags::empty(),
61991        )
61992    }
61993}
61994
61995#[must_use = "FIDL methods require a response to be sent"]
61996#[derive(Debug)]
61997pub struct StreamSocketSetBindToDeviceResponder {
61998    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61999    tx_id: u32,
62000}
62001
62002/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62003/// if the responder is dropped without sending a response, so that the client
62004/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62005impl std::ops::Drop for StreamSocketSetBindToDeviceResponder {
62006    fn drop(&mut self) {
62007        self.control_handle.shutdown();
62008        // Safety: drops once, never accessed again
62009        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62010    }
62011}
62012
62013impl fidl::endpoints::Responder for StreamSocketSetBindToDeviceResponder {
62014    type ControlHandle = StreamSocketControlHandle;
62015
62016    fn control_handle(&self) -> &StreamSocketControlHandle {
62017        &self.control_handle
62018    }
62019
62020    fn drop_without_shutdown(mut self) {
62021        // Safety: drops once, never accessed again due to mem::forget
62022        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62023        // Prevent Drop from running (which would shut down the channel)
62024        std::mem::forget(self);
62025    }
62026}
62027
62028impl StreamSocketSetBindToDeviceResponder {
62029    /// Sends a response to the FIDL transaction.
62030    ///
62031    /// Sets the channel to shutdown if an error occurs.
62032    pub fn send(
62033        self,
62034        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62035    ) -> Result<(), fidl::Error> {
62036        let _result = self.send_raw(result);
62037        if _result.is_err() {
62038            self.control_handle.shutdown();
62039        }
62040        self.drop_without_shutdown();
62041        _result
62042    }
62043
62044    /// Similar to "send" but does not shutdown the channel if an error occurs.
62045    pub fn send_no_shutdown_on_err(
62046        self,
62047        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62048    ) -> Result<(), fidl::Error> {
62049        let _result = self.send_raw(result);
62050        self.drop_without_shutdown();
62051        _result
62052    }
62053
62054    fn send_raw(
62055        &self,
62056        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62057    ) -> Result<(), fidl::Error> {
62058        self.control_handle.inner.send::<fidl::encoding::ResultType<
62059            fidl::encoding::EmptyStruct,
62060            fidl_fuchsia_posix::Errno,
62061        >>(
62062            result,
62063            self.tx_id,
62064            0x2118b483f28aafc4,
62065            fidl::encoding::DynamicFlags::empty(),
62066        )
62067    }
62068}
62069
62070#[must_use = "FIDL methods require a response to be sent"]
62071#[derive(Debug)]
62072pub struct StreamSocketGetBindToDeviceResponder {
62073    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62074    tx_id: u32,
62075}
62076
62077/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62078/// if the responder is dropped without sending a response, so that the client
62079/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62080impl std::ops::Drop for StreamSocketGetBindToDeviceResponder {
62081    fn drop(&mut self) {
62082        self.control_handle.shutdown();
62083        // Safety: drops once, never accessed again
62084        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62085    }
62086}
62087
62088impl fidl::endpoints::Responder for StreamSocketGetBindToDeviceResponder {
62089    type ControlHandle = StreamSocketControlHandle;
62090
62091    fn control_handle(&self) -> &StreamSocketControlHandle {
62092        &self.control_handle
62093    }
62094
62095    fn drop_without_shutdown(mut self) {
62096        // Safety: drops once, never accessed again due to mem::forget
62097        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62098        // Prevent Drop from running (which would shut down the channel)
62099        std::mem::forget(self);
62100    }
62101}
62102
62103impl StreamSocketGetBindToDeviceResponder {
62104    /// Sends a response to the FIDL transaction.
62105    ///
62106    /// Sets the channel to shutdown if an error occurs.
62107    pub fn send(
62108        self,
62109        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
62110    ) -> Result<(), fidl::Error> {
62111        let _result = self.send_raw(result);
62112        if _result.is_err() {
62113            self.control_handle.shutdown();
62114        }
62115        self.drop_without_shutdown();
62116        _result
62117    }
62118
62119    /// Similar to "send" but does not shutdown the channel if an error occurs.
62120    pub fn send_no_shutdown_on_err(
62121        self,
62122        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
62123    ) -> Result<(), fidl::Error> {
62124        let _result = self.send_raw(result);
62125        self.drop_without_shutdown();
62126        _result
62127    }
62128
62129    fn send_raw(
62130        &self,
62131        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
62132    ) -> Result<(), fidl::Error> {
62133        self.control_handle.inner.send::<fidl::encoding::ResultType<
62134            BaseSocketGetBindToDeviceResponse,
62135            fidl_fuchsia_posix::Errno,
62136        >>(
62137            result.map(|value| (value,)),
62138            self.tx_id,
62139            0x1ab1fbf0ef7906c8,
62140            fidl::encoding::DynamicFlags::empty(),
62141        )
62142    }
62143}
62144
62145#[must_use = "FIDL methods require a response to be sent"]
62146#[derive(Debug)]
62147pub struct StreamSocketSetBindToInterfaceIndexResponder {
62148    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62149    tx_id: u32,
62150}
62151
62152/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62153/// if the responder is dropped without sending a response, so that the client
62154/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62155impl std::ops::Drop for StreamSocketSetBindToInterfaceIndexResponder {
62156    fn drop(&mut self) {
62157        self.control_handle.shutdown();
62158        // Safety: drops once, never accessed again
62159        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62160    }
62161}
62162
62163impl fidl::endpoints::Responder for StreamSocketSetBindToInterfaceIndexResponder {
62164    type ControlHandle = StreamSocketControlHandle;
62165
62166    fn control_handle(&self) -> &StreamSocketControlHandle {
62167        &self.control_handle
62168    }
62169
62170    fn drop_without_shutdown(mut self) {
62171        // Safety: drops once, never accessed again due to mem::forget
62172        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62173        // Prevent Drop from running (which would shut down the channel)
62174        std::mem::forget(self);
62175    }
62176}
62177
62178impl StreamSocketSetBindToInterfaceIndexResponder {
62179    /// Sends a response to the FIDL transaction.
62180    ///
62181    /// Sets the channel to shutdown if an error occurs.
62182    pub fn send(
62183        self,
62184        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62185    ) -> Result<(), fidl::Error> {
62186        let _result = self.send_raw(result);
62187        if _result.is_err() {
62188            self.control_handle.shutdown();
62189        }
62190        self.drop_without_shutdown();
62191        _result
62192    }
62193
62194    /// Similar to "send" but does not shutdown the channel if an error occurs.
62195    pub fn send_no_shutdown_on_err(
62196        self,
62197        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62198    ) -> Result<(), fidl::Error> {
62199        let _result = self.send_raw(result);
62200        self.drop_without_shutdown();
62201        _result
62202    }
62203
62204    fn send_raw(
62205        &self,
62206        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62207    ) -> Result<(), fidl::Error> {
62208        self.control_handle.inner.send::<fidl::encoding::ResultType<
62209            fidl::encoding::EmptyStruct,
62210            fidl_fuchsia_posix::Errno,
62211        >>(
62212            result,
62213            self.tx_id,
62214            0x6e387a0def00821,
62215            fidl::encoding::DynamicFlags::empty(),
62216        )
62217    }
62218}
62219
62220#[must_use = "FIDL methods require a response to be sent"]
62221#[derive(Debug)]
62222pub struct StreamSocketGetBindToInterfaceIndexResponder {
62223    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62224    tx_id: u32,
62225}
62226
62227/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62228/// if the responder is dropped without sending a response, so that the client
62229/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62230impl std::ops::Drop for StreamSocketGetBindToInterfaceIndexResponder {
62231    fn drop(&mut self) {
62232        self.control_handle.shutdown();
62233        // Safety: drops once, never accessed again
62234        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62235    }
62236}
62237
62238impl fidl::endpoints::Responder for StreamSocketGetBindToInterfaceIndexResponder {
62239    type ControlHandle = StreamSocketControlHandle;
62240
62241    fn control_handle(&self) -> &StreamSocketControlHandle {
62242        &self.control_handle
62243    }
62244
62245    fn drop_without_shutdown(mut self) {
62246        // Safety: drops once, never accessed again due to mem::forget
62247        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62248        // Prevent Drop from running (which would shut down the channel)
62249        std::mem::forget(self);
62250    }
62251}
62252
62253impl StreamSocketGetBindToInterfaceIndexResponder {
62254    /// Sends a response to the FIDL transaction.
62255    ///
62256    /// Sets the channel to shutdown if an error occurs.
62257    pub fn send(
62258        self,
62259        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62260    ) -> Result<(), fidl::Error> {
62261        let _result = self.send_raw(result);
62262        if _result.is_err() {
62263            self.control_handle.shutdown();
62264        }
62265        self.drop_without_shutdown();
62266        _result
62267    }
62268
62269    /// Similar to "send" but does not shutdown the channel if an error occurs.
62270    pub fn send_no_shutdown_on_err(
62271        self,
62272        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62273    ) -> Result<(), fidl::Error> {
62274        let _result = self.send_raw(result);
62275        self.drop_without_shutdown();
62276        _result
62277    }
62278
62279    fn send_raw(
62280        &self,
62281        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62282    ) -> Result<(), fidl::Error> {
62283        self.control_handle.inner.send::<fidl::encoding::ResultType<
62284            BaseSocketGetBindToInterfaceIndexResponse,
62285            fidl_fuchsia_posix::Errno,
62286        >>(
62287            result.map(|value| (value,)),
62288            self.tx_id,
62289            0x59c31dd3e3078295,
62290            fidl::encoding::DynamicFlags::empty(),
62291        )
62292    }
62293}
62294
62295#[must_use = "FIDL methods require a response to be sent"]
62296#[derive(Debug)]
62297pub struct StreamSocketSetTimestampResponder {
62298    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62299    tx_id: u32,
62300}
62301
62302/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62303/// if the responder is dropped without sending a response, so that the client
62304/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62305impl std::ops::Drop for StreamSocketSetTimestampResponder {
62306    fn drop(&mut self) {
62307        self.control_handle.shutdown();
62308        // Safety: drops once, never accessed again
62309        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62310    }
62311}
62312
62313impl fidl::endpoints::Responder for StreamSocketSetTimestampResponder {
62314    type ControlHandle = StreamSocketControlHandle;
62315
62316    fn control_handle(&self) -> &StreamSocketControlHandle {
62317        &self.control_handle
62318    }
62319
62320    fn drop_without_shutdown(mut self) {
62321        // Safety: drops once, never accessed again due to mem::forget
62322        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62323        // Prevent Drop from running (which would shut down the channel)
62324        std::mem::forget(self);
62325    }
62326}
62327
62328impl StreamSocketSetTimestampResponder {
62329    /// Sends a response to the FIDL transaction.
62330    ///
62331    /// Sets the channel to shutdown if an error occurs.
62332    pub fn send(
62333        self,
62334        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62335    ) -> Result<(), fidl::Error> {
62336        let _result = self.send_raw(result);
62337        if _result.is_err() {
62338            self.control_handle.shutdown();
62339        }
62340        self.drop_without_shutdown();
62341        _result
62342    }
62343
62344    /// Similar to "send" but does not shutdown the channel if an error occurs.
62345    pub fn send_no_shutdown_on_err(
62346        self,
62347        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62348    ) -> Result<(), fidl::Error> {
62349        let _result = self.send_raw(result);
62350        self.drop_without_shutdown();
62351        _result
62352    }
62353
62354    fn send_raw(
62355        &self,
62356        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62357    ) -> Result<(), fidl::Error> {
62358        self.control_handle.inner.send::<fidl::encoding::ResultType<
62359            fidl::encoding::EmptyStruct,
62360            fidl_fuchsia_posix::Errno,
62361        >>(
62362            result,
62363            self.tx_id,
62364            0x285d6516c263d839,
62365            fidl::encoding::DynamicFlags::empty(),
62366        )
62367    }
62368}
62369
62370#[must_use = "FIDL methods require a response to be sent"]
62371#[derive(Debug)]
62372pub struct StreamSocketGetTimestampResponder {
62373    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62374    tx_id: u32,
62375}
62376
62377/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62378/// if the responder is dropped without sending a response, so that the client
62379/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62380impl std::ops::Drop for StreamSocketGetTimestampResponder {
62381    fn drop(&mut self) {
62382        self.control_handle.shutdown();
62383        // Safety: drops once, never accessed again
62384        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62385    }
62386}
62387
62388impl fidl::endpoints::Responder for StreamSocketGetTimestampResponder {
62389    type ControlHandle = StreamSocketControlHandle;
62390
62391    fn control_handle(&self) -> &StreamSocketControlHandle {
62392        &self.control_handle
62393    }
62394
62395    fn drop_without_shutdown(mut self) {
62396        // Safety: drops once, never accessed again due to mem::forget
62397        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62398        // Prevent Drop from running (which would shut down the channel)
62399        std::mem::forget(self);
62400    }
62401}
62402
62403impl StreamSocketGetTimestampResponder {
62404    /// Sends a response to the FIDL transaction.
62405    ///
62406    /// Sets the channel to shutdown if an error occurs.
62407    pub fn send(
62408        self,
62409        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
62410    ) -> Result<(), fidl::Error> {
62411        let _result = self.send_raw(result);
62412        if _result.is_err() {
62413            self.control_handle.shutdown();
62414        }
62415        self.drop_without_shutdown();
62416        _result
62417    }
62418
62419    /// Similar to "send" but does not shutdown the channel if an error occurs.
62420    pub fn send_no_shutdown_on_err(
62421        self,
62422        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
62423    ) -> Result<(), fidl::Error> {
62424        let _result = self.send_raw(result);
62425        self.drop_without_shutdown();
62426        _result
62427    }
62428
62429    fn send_raw(
62430        &self,
62431        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
62432    ) -> Result<(), fidl::Error> {
62433        self.control_handle.inner.send::<fidl::encoding::ResultType<
62434            BaseSocketGetTimestampResponse,
62435            fidl_fuchsia_posix::Errno,
62436        >>(
62437            result.map(|value| (value,)),
62438            self.tx_id,
62439            0x49f2fffbbcc2bd27,
62440            fidl::encoding::DynamicFlags::empty(),
62441        )
62442    }
62443}
62444
62445#[must_use = "FIDL methods require a response to be sent"]
62446#[derive(Debug)]
62447pub struct StreamSocketSetMarkResponder {
62448    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62449    tx_id: u32,
62450}
62451
62452/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62453/// if the responder is dropped without sending a response, so that the client
62454/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62455impl std::ops::Drop for StreamSocketSetMarkResponder {
62456    fn drop(&mut self) {
62457        self.control_handle.shutdown();
62458        // Safety: drops once, never accessed again
62459        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62460    }
62461}
62462
62463impl fidl::endpoints::Responder for StreamSocketSetMarkResponder {
62464    type ControlHandle = StreamSocketControlHandle;
62465
62466    fn control_handle(&self) -> &StreamSocketControlHandle {
62467        &self.control_handle
62468    }
62469
62470    fn drop_without_shutdown(mut self) {
62471        // Safety: drops once, never accessed again due to mem::forget
62472        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62473        // Prevent Drop from running (which would shut down the channel)
62474        std::mem::forget(self);
62475    }
62476}
62477
62478impl StreamSocketSetMarkResponder {
62479    /// Sends a response to the FIDL transaction.
62480    ///
62481    /// Sets the channel to shutdown if an error occurs.
62482    pub fn send(
62483        self,
62484        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62485    ) -> Result<(), fidl::Error> {
62486        let _result = self.send_raw(result);
62487        if _result.is_err() {
62488            self.control_handle.shutdown();
62489        }
62490        self.drop_without_shutdown();
62491        _result
62492    }
62493
62494    /// Similar to "send" but does not shutdown the channel if an error occurs.
62495    pub fn send_no_shutdown_on_err(
62496        self,
62497        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62498    ) -> Result<(), fidl::Error> {
62499        let _result = self.send_raw(result);
62500        self.drop_without_shutdown();
62501        _result
62502    }
62503
62504    fn send_raw(
62505        &self,
62506        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62507    ) -> Result<(), fidl::Error> {
62508        self.control_handle.inner.send::<fidl::encoding::ResultType<
62509            fidl::encoding::EmptyStruct,
62510            fidl_fuchsia_posix::Errno,
62511        >>(
62512            result,
62513            self.tx_id,
62514            0x6ead6de09f653236,
62515            fidl::encoding::DynamicFlags::empty(),
62516        )
62517    }
62518}
62519
62520#[must_use = "FIDL methods require a response to be sent"]
62521#[derive(Debug)]
62522pub struct StreamSocketGetMarkResponder {
62523    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62524    tx_id: u32,
62525}
62526
62527/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62528/// if the responder is dropped without sending a response, so that the client
62529/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62530impl std::ops::Drop for StreamSocketGetMarkResponder {
62531    fn drop(&mut self) {
62532        self.control_handle.shutdown();
62533        // Safety: drops once, never accessed again
62534        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62535    }
62536}
62537
62538impl fidl::endpoints::Responder for StreamSocketGetMarkResponder {
62539    type ControlHandle = StreamSocketControlHandle;
62540
62541    fn control_handle(&self) -> &StreamSocketControlHandle {
62542        &self.control_handle
62543    }
62544
62545    fn drop_without_shutdown(mut self) {
62546        // Safety: drops once, never accessed again due to mem::forget
62547        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62548        // Prevent Drop from running (which would shut down the channel)
62549        std::mem::forget(self);
62550    }
62551}
62552
62553impl StreamSocketGetMarkResponder {
62554    /// Sends a response to the FIDL transaction.
62555    ///
62556    /// Sets the channel to shutdown if an error occurs.
62557    pub fn send(
62558        self,
62559        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
62560    ) -> Result<(), fidl::Error> {
62561        let _result = self.send_raw(result);
62562        if _result.is_err() {
62563            self.control_handle.shutdown();
62564        }
62565        self.drop_without_shutdown();
62566        _result
62567    }
62568
62569    /// Similar to "send" but does not shutdown the channel if an error occurs.
62570    pub fn send_no_shutdown_on_err(
62571        self,
62572        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
62573    ) -> Result<(), fidl::Error> {
62574        let _result = self.send_raw(result);
62575        self.drop_without_shutdown();
62576        _result
62577    }
62578
62579    fn send_raw(
62580        &self,
62581        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
62582    ) -> Result<(), fidl::Error> {
62583        self.control_handle.inner.send::<fidl::encoding::ResultType<
62584            BaseSocketGetMarkResponse,
62585            fidl_fuchsia_posix::Errno,
62586        >>(
62587            result.map(|mark| (mark,)),
62588            self.tx_id,
62589            0x57a2752c61d93d47,
62590            fidl::encoding::DynamicFlags::empty(),
62591        )
62592    }
62593}
62594
62595#[must_use = "FIDL methods require a response to be sent"]
62596#[derive(Debug)]
62597pub struct StreamSocketGetCookieResponder {
62598    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62599    tx_id: u32,
62600}
62601
62602/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62603/// if the responder is dropped without sending a response, so that the client
62604/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62605impl std::ops::Drop for StreamSocketGetCookieResponder {
62606    fn drop(&mut self) {
62607        self.control_handle.shutdown();
62608        // Safety: drops once, never accessed again
62609        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62610    }
62611}
62612
62613impl fidl::endpoints::Responder for StreamSocketGetCookieResponder {
62614    type ControlHandle = StreamSocketControlHandle;
62615
62616    fn control_handle(&self) -> &StreamSocketControlHandle {
62617        &self.control_handle
62618    }
62619
62620    fn drop_without_shutdown(mut self) {
62621        // Safety: drops once, never accessed again due to mem::forget
62622        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62623        // Prevent Drop from running (which would shut down the channel)
62624        std::mem::forget(self);
62625    }
62626}
62627
62628impl StreamSocketGetCookieResponder {
62629    /// Sends a response to the FIDL transaction.
62630    ///
62631    /// Sets the channel to shutdown if an error occurs.
62632    pub fn send(
62633        self,
62634        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62635    ) -> Result<(), fidl::Error> {
62636        let _result = self.send_raw(result);
62637        if _result.is_err() {
62638            self.control_handle.shutdown();
62639        }
62640        self.drop_without_shutdown();
62641        _result
62642    }
62643
62644    /// Similar to "send" but does not shutdown the channel if an error occurs.
62645    pub fn send_no_shutdown_on_err(
62646        self,
62647        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62648    ) -> Result<(), fidl::Error> {
62649        let _result = self.send_raw(result);
62650        self.drop_without_shutdown();
62651        _result
62652    }
62653
62654    fn send_raw(
62655        &self,
62656        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62657    ) -> Result<(), fidl::Error> {
62658        self.control_handle.inner.send::<fidl::encoding::ResultType<
62659            BaseSocketGetCookieResponse,
62660            fidl_fuchsia_posix::Errno,
62661        >>(
62662            result.map(|value| (value,)),
62663            self.tx_id,
62664            0x2c2f47fd8f924e52,
62665            fidl::encoding::DynamicFlags::empty(),
62666        )
62667    }
62668}
62669
62670#[must_use = "FIDL methods require a response to be sent"]
62671#[derive(Debug)]
62672pub struct StreamSocketBindResponder {
62673    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62674    tx_id: u32,
62675}
62676
62677/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62678/// if the responder is dropped without sending a response, so that the client
62679/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62680impl std::ops::Drop for StreamSocketBindResponder {
62681    fn drop(&mut self) {
62682        self.control_handle.shutdown();
62683        // Safety: drops once, never accessed again
62684        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62685    }
62686}
62687
62688impl fidl::endpoints::Responder for StreamSocketBindResponder {
62689    type ControlHandle = StreamSocketControlHandle;
62690
62691    fn control_handle(&self) -> &StreamSocketControlHandle {
62692        &self.control_handle
62693    }
62694
62695    fn drop_without_shutdown(mut self) {
62696        // Safety: drops once, never accessed again due to mem::forget
62697        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62698        // Prevent Drop from running (which would shut down the channel)
62699        std::mem::forget(self);
62700    }
62701}
62702
62703impl StreamSocketBindResponder {
62704    /// Sends a response to the FIDL transaction.
62705    ///
62706    /// Sets the channel to shutdown if an error occurs.
62707    pub fn send(
62708        self,
62709        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62710    ) -> Result<(), fidl::Error> {
62711        let _result = self.send_raw(result);
62712        if _result.is_err() {
62713            self.control_handle.shutdown();
62714        }
62715        self.drop_without_shutdown();
62716        _result
62717    }
62718
62719    /// Similar to "send" but does not shutdown the channel if an error occurs.
62720    pub fn send_no_shutdown_on_err(
62721        self,
62722        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62723    ) -> Result<(), fidl::Error> {
62724        let _result = self.send_raw(result);
62725        self.drop_without_shutdown();
62726        _result
62727    }
62728
62729    fn send_raw(
62730        &self,
62731        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62732    ) -> Result<(), fidl::Error> {
62733        self.control_handle.inner.send::<fidl::encoding::ResultType<
62734            fidl::encoding::EmptyStruct,
62735            fidl_fuchsia_posix::Errno,
62736        >>(
62737            result,
62738            self.tx_id,
62739            0x4bc6400ae92125d,
62740            fidl::encoding::DynamicFlags::empty(),
62741        )
62742    }
62743}
62744
62745#[must_use = "FIDL methods require a response to be sent"]
62746#[derive(Debug)]
62747pub struct StreamSocketConnectResponder {
62748    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62749    tx_id: u32,
62750}
62751
62752/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62753/// if the responder is dropped without sending a response, so that the client
62754/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62755impl std::ops::Drop for StreamSocketConnectResponder {
62756    fn drop(&mut self) {
62757        self.control_handle.shutdown();
62758        // Safety: drops once, never accessed again
62759        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62760    }
62761}
62762
62763impl fidl::endpoints::Responder for StreamSocketConnectResponder {
62764    type ControlHandle = StreamSocketControlHandle;
62765
62766    fn control_handle(&self) -> &StreamSocketControlHandle {
62767        &self.control_handle
62768    }
62769
62770    fn drop_without_shutdown(mut self) {
62771        // Safety: drops once, never accessed again due to mem::forget
62772        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62773        // Prevent Drop from running (which would shut down the channel)
62774        std::mem::forget(self);
62775    }
62776}
62777
62778impl StreamSocketConnectResponder {
62779    /// Sends a response to the FIDL transaction.
62780    ///
62781    /// Sets the channel to shutdown if an error occurs.
62782    pub fn send(
62783        self,
62784        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62785    ) -> Result<(), fidl::Error> {
62786        let _result = self.send_raw(result);
62787        if _result.is_err() {
62788            self.control_handle.shutdown();
62789        }
62790        self.drop_without_shutdown();
62791        _result
62792    }
62793
62794    /// Similar to "send" but does not shutdown the channel if an error occurs.
62795    pub fn send_no_shutdown_on_err(
62796        self,
62797        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62798    ) -> Result<(), fidl::Error> {
62799        let _result = self.send_raw(result);
62800        self.drop_without_shutdown();
62801        _result
62802    }
62803
62804    fn send_raw(
62805        &self,
62806        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62807    ) -> Result<(), fidl::Error> {
62808        self.control_handle.inner.send::<fidl::encoding::ResultType<
62809            fidl::encoding::EmptyStruct,
62810            fidl_fuchsia_posix::Errno,
62811        >>(
62812            result,
62813            self.tx_id,
62814            0x5f05f19bfdd38871,
62815            fidl::encoding::DynamicFlags::empty(),
62816        )
62817    }
62818}
62819
62820#[must_use = "FIDL methods require a response to be sent"]
62821#[derive(Debug)]
62822pub struct StreamSocketDisconnectResponder {
62823    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62824    tx_id: u32,
62825}
62826
62827/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62828/// if the responder is dropped without sending a response, so that the client
62829/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62830impl std::ops::Drop for StreamSocketDisconnectResponder {
62831    fn drop(&mut self) {
62832        self.control_handle.shutdown();
62833        // Safety: drops once, never accessed again
62834        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62835    }
62836}
62837
62838impl fidl::endpoints::Responder for StreamSocketDisconnectResponder {
62839    type ControlHandle = StreamSocketControlHandle;
62840
62841    fn control_handle(&self) -> &StreamSocketControlHandle {
62842        &self.control_handle
62843    }
62844
62845    fn drop_without_shutdown(mut self) {
62846        // Safety: drops once, never accessed again due to mem::forget
62847        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62848        // Prevent Drop from running (which would shut down the channel)
62849        std::mem::forget(self);
62850    }
62851}
62852
62853impl StreamSocketDisconnectResponder {
62854    /// Sends a response to the FIDL transaction.
62855    ///
62856    /// Sets the channel to shutdown if an error occurs.
62857    pub fn send(
62858        self,
62859        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62860    ) -> Result<(), fidl::Error> {
62861        let _result = self.send_raw(result);
62862        if _result.is_err() {
62863            self.control_handle.shutdown();
62864        }
62865        self.drop_without_shutdown();
62866        _result
62867    }
62868
62869    /// Similar to "send" but does not shutdown the channel if an error occurs.
62870    pub fn send_no_shutdown_on_err(
62871        self,
62872        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62873    ) -> Result<(), fidl::Error> {
62874        let _result = self.send_raw(result);
62875        self.drop_without_shutdown();
62876        _result
62877    }
62878
62879    fn send_raw(
62880        &self,
62881        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62882    ) -> Result<(), fidl::Error> {
62883        self.control_handle.inner.send::<fidl::encoding::ResultType<
62884            fidl::encoding::EmptyStruct,
62885            fidl_fuchsia_posix::Errno,
62886        >>(
62887            result,
62888            self.tx_id,
62889            0x74e63b91f7b29b2,
62890            fidl::encoding::DynamicFlags::empty(),
62891        )
62892    }
62893}
62894
62895#[must_use = "FIDL methods require a response to be sent"]
62896#[derive(Debug)]
62897pub struct StreamSocketGetSockNameResponder {
62898    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62899    tx_id: u32,
62900}
62901
62902/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62903/// if the responder is dropped without sending a response, so that the client
62904/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62905impl std::ops::Drop for StreamSocketGetSockNameResponder {
62906    fn drop(&mut self) {
62907        self.control_handle.shutdown();
62908        // Safety: drops once, never accessed again
62909        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62910    }
62911}
62912
62913impl fidl::endpoints::Responder for StreamSocketGetSockNameResponder {
62914    type ControlHandle = StreamSocketControlHandle;
62915
62916    fn control_handle(&self) -> &StreamSocketControlHandle {
62917        &self.control_handle
62918    }
62919
62920    fn drop_without_shutdown(mut self) {
62921        // Safety: drops once, never accessed again due to mem::forget
62922        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62923        // Prevent Drop from running (which would shut down the channel)
62924        std::mem::forget(self);
62925    }
62926}
62927
62928impl StreamSocketGetSockNameResponder {
62929    /// Sends a response to the FIDL transaction.
62930    ///
62931    /// Sets the channel to shutdown if an error occurs.
62932    pub fn send(
62933        self,
62934        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
62935    ) -> Result<(), fidl::Error> {
62936        let _result = self.send_raw(result);
62937        if _result.is_err() {
62938            self.control_handle.shutdown();
62939        }
62940        self.drop_without_shutdown();
62941        _result
62942    }
62943
62944    /// Similar to "send" but does not shutdown the channel if an error occurs.
62945    pub fn send_no_shutdown_on_err(
62946        self,
62947        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
62948    ) -> Result<(), fidl::Error> {
62949        let _result = self.send_raw(result);
62950        self.drop_without_shutdown();
62951        _result
62952    }
62953
62954    fn send_raw(
62955        &self,
62956        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
62957    ) -> Result<(), fidl::Error> {
62958        self.control_handle.inner.send::<fidl::encoding::ResultType<
62959            BaseNetworkSocketGetSockNameResponse,
62960            fidl_fuchsia_posix::Errno,
62961        >>(
62962            result.map(|addr| (addr,)),
62963            self.tx_id,
62964            0x475f23f84a1a4f85,
62965            fidl::encoding::DynamicFlags::empty(),
62966        )
62967    }
62968}
62969
62970#[must_use = "FIDL methods require a response to be sent"]
62971#[derive(Debug)]
62972pub struct StreamSocketGetPeerNameResponder {
62973    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62974    tx_id: u32,
62975}
62976
62977/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62978/// if the responder is dropped without sending a response, so that the client
62979/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62980impl std::ops::Drop for StreamSocketGetPeerNameResponder {
62981    fn drop(&mut self) {
62982        self.control_handle.shutdown();
62983        // Safety: drops once, never accessed again
62984        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62985    }
62986}
62987
62988impl fidl::endpoints::Responder for StreamSocketGetPeerNameResponder {
62989    type ControlHandle = StreamSocketControlHandle;
62990
62991    fn control_handle(&self) -> &StreamSocketControlHandle {
62992        &self.control_handle
62993    }
62994
62995    fn drop_without_shutdown(mut self) {
62996        // Safety: drops once, never accessed again due to mem::forget
62997        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62998        // Prevent Drop from running (which would shut down the channel)
62999        std::mem::forget(self);
63000    }
63001}
63002
63003impl StreamSocketGetPeerNameResponder {
63004    /// Sends a response to the FIDL transaction.
63005    ///
63006    /// Sets the channel to shutdown if an error occurs.
63007    pub fn send(
63008        self,
63009        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
63010    ) -> Result<(), fidl::Error> {
63011        let _result = self.send_raw(result);
63012        if _result.is_err() {
63013            self.control_handle.shutdown();
63014        }
63015        self.drop_without_shutdown();
63016        _result
63017    }
63018
63019    /// Similar to "send" but does not shutdown the channel if an error occurs.
63020    pub fn send_no_shutdown_on_err(
63021        self,
63022        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
63023    ) -> Result<(), fidl::Error> {
63024        let _result = self.send_raw(result);
63025        self.drop_without_shutdown();
63026        _result
63027    }
63028
63029    fn send_raw(
63030        &self,
63031        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
63032    ) -> Result<(), fidl::Error> {
63033        self.control_handle.inner.send::<fidl::encoding::ResultType<
63034            BaseNetworkSocketGetPeerNameResponse,
63035            fidl_fuchsia_posix::Errno,
63036        >>(
63037            result.map(|addr| (addr,)),
63038            self.tx_id,
63039            0x1ffecf4bd5b6432e,
63040            fidl::encoding::DynamicFlags::empty(),
63041        )
63042    }
63043}
63044
63045#[must_use = "FIDL methods require a response to be sent"]
63046#[derive(Debug)]
63047pub struct StreamSocketShutdownResponder {
63048    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63049    tx_id: u32,
63050}
63051
63052/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63053/// if the responder is dropped without sending a response, so that the client
63054/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63055impl std::ops::Drop for StreamSocketShutdownResponder {
63056    fn drop(&mut self) {
63057        self.control_handle.shutdown();
63058        // Safety: drops once, never accessed again
63059        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63060    }
63061}
63062
63063impl fidl::endpoints::Responder for StreamSocketShutdownResponder {
63064    type ControlHandle = StreamSocketControlHandle;
63065
63066    fn control_handle(&self) -> &StreamSocketControlHandle {
63067        &self.control_handle
63068    }
63069
63070    fn drop_without_shutdown(mut self) {
63071        // Safety: drops once, never accessed again due to mem::forget
63072        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63073        // Prevent Drop from running (which would shut down the channel)
63074        std::mem::forget(self);
63075    }
63076}
63077
63078impl StreamSocketShutdownResponder {
63079    /// Sends a response to the FIDL transaction.
63080    ///
63081    /// Sets the channel to shutdown if an error occurs.
63082    pub fn send(
63083        self,
63084        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63085    ) -> Result<(), fidl::Error> {
63086        let _result = self.send_raw(result);
63087        if _result.is_err() {
63088            self.control_handle.shutdown();
63089        }
63090        self.drop_without_shutdown();
63091        _result
63092    }
63093
63094    /// Similar to "send" but does not shutdown the channel if an error occurs.
63095    pub fn send_no_shutdown_on_err(
63096        self,
63097        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63098    ) -> Result<(), fidl::Error> {
63099        let _result = self.send_raw(result);
63100        self.drop_without_shutdown();
63101        _result
63102    }
63103
63104    fn send_raw(
63105        &self,
63106        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63107    ) -> Result<(), fidl::Error> {
63108        self.control_handle.inner.send::<fidl::encoding::ResultType<
63109            fidl::encoding::EmptyStruct,
63110            fidl_fuchsia_posix::Errno,
63111        >>(
63112            result,
63113            self.tx_id,
63114            0x247f38b6db68c336,
63115            fidl::encoding::DynamicFlags::empty(),
63116        )
63117    }
63118}
63119
63120#[must_use = "FIDL methods require a response to be sent"]
63121#[derive(Debug)]
63122pub struct StreamSocketSetIpTypeOfServiceResponder {
63123    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63124    tx_id: u32,
63125}
63126
63127/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63128/// if the responder is dropped without sending a response, so that the client
63129/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63130impl std::ops::Drop for StreamSocketSetIpTypeOfServiceResponder {
63131    fn drop(&mut self) {
63132        self.control_handle.shutdown();
63133        // Safety: drops once, never accessed again
63134        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63135    }
63136}
63137
63138impl fidl::endpoints::Responder for StreamSocketSetIpTypeOfServiceResponder {
63139    type ControlHandle = StreamSocketControlHandle;
63140
63141    fn control_handle(&self) -> &StreamSocketControlHandle {
63142        &self.control_handle
63143    }
63144
63145    fn drop_without_shutdown(mut self) {
63146        // Safety: drops once, never accessed again due to mem::forget
63147        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63148        // Prevent Drop from running (which would shut down the channel)
63149        std::mem::forget(self);
63150    }
63151}
63152
63153impl StreamSocketSetIpTypeOfServiceResponder {
63154    /// Sends a response to the FIDL transaction.
63155    ///
63156    /// Sets the channel to shutdown if an error occurs.
63157    pub fn send(
63158        self,
63159        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63160    ) -> Result<(), fidl::Error> {
63161        let _result = self.send_raw(result);
63162        if _result.is_err() {
63163            self.control_handle.shutdown();
63164        }
63165        self.drop_without_shutdown();
63166        _result
63167    }
63168
63169    /// Similar to "send" but does not shutdown the channel if an error occurs.
63170    pub fn send_no_shutdown_on_err(
63171        self,
63172        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63173    ) -> Result<(), fidl::Error> {
63174        let _result = self.send_raw(result);
63175        self.drop_without_shutdown();
63176        _result
63177    }
63178
63179    fn send_raw(
63180        &self,
63181        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63182    ) -> Result<(), fidl::Error> {
63183        self.control_handle.inner.send::<fidl::encoding::ResultType<
63184            fidl::encoding::EmptyStruct,
63185            fidl_fuchsia_posix::Errno,
63186        >>(
63187            result,
63188            self.tx_id,
63189            0x995c600475b6d46,
63190            fidl::encoding::DynamicFlags::empty(),
63191        )
63192    }
63193}
63194
63195#[must_use = "FIDL methods require a response to be sent"]
63196#[derive(Debug)]
63197pub struct StreamSocketGetIpTypeOfServiceResponder {
63198    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63199    tx_id: u32,
63200}
63201
63202/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63203/// if the responder is dropped without sending a response, so that the client
63204/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63205impl std::ops::Drop for StreamSocketGetIpTypeOfServiceResponder {
63206    fn drop(&mut self) {
63207        self.control_handle.shutdown();
63208        // Safety: drops once, never accessed again
63209        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63210    }
63211}
63212
63213impl fidl::endpoints::Responder for StreamSocketGetIpTypeOfServiceResponder {
63214    type ControlHandle = StreamSocketControlHandle;
63215
63216    fn control_handle(&self) -> &StreamSocketControlHandle {
63217        &self.control_handle
63218    }
63219
63220    fn drop_without_shutdown(mut self) {
63221        // Safety: drops once, never accessed again due to mem::forget
63222        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63223        // Prevent Drop from running (which would shut down the channel)
63224        std::mem::forget(self);
63225    }
63226}
63227
63228impl StreamSocketGetIpTypeOfServiceResponder {
63229    /// Sends a response to the FIDL transaction.
63230    ///
63231    /// Sets the channel to shutdown if an error occurs.
63232    pub fn send(
63233        self,
63234        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63235    ) -> Result<(), fidl::Error> {
63236        let _result = self.send_raw(result);
63237        if _result.is_err() {
63238            self.control_handle.shutdown();
63239        }
63240        self.drop_without_shutdown();
63241        _result
63242    }
63243
63244    /// Similar to "send" but does not shutdown the channel if an error occurs.
63245    pub fn send_no_shutdown_on_err(
63246        self,
63247        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63248    ) -> Result<(), fidl::Error> {
63249        let _result = self.send_raw(result);
63250        self.drop_without_shutdown();
63251        _result
63252    }
63253
63254    fn send_raw(
63255        &self,
63256        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63257    ) -> Result<(), fidl::Error> {
63258        self.control_handle.inner.send::<fidl::encoding::ResultType<
63259            BaseNetworkSocketGetIpTypeOfServiceResponse,
63260            fidl_fuchsia_posix::Errno,
63261        >>(
63262            result.map(|value| (value,)),
63263            self.tx_id,
63264            0x3814a04259f75fcb,
63265            fidl::encoding::DynamicFlags::empty(),
63266        )
63267    }
63268}
63269
63270#[must_use = "FIDL methods require a response to be sent"]
63271#[derive(Debug)]
63272pub struct StreamSocketSetIpTtlResponder {
63273    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63274    tx_id: u32,
63275}
63276
63277/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63278/// if the responder is dropped without sending a response, so that the client
63279/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63280impl std::ops::Drop for StreamSocketSetIpTtlResponder {
63281    fn drop(&mut self) {
63282        self.control_handle.shutdown();
63283        // Safety: drops once, never accessed again
63284        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63285    }
63286}
63287
63288impl fidl::endpoints::Responder for StreamSocketSetIpTtlResponder {
63289    type ControlHandle = StreamSocketControlHandle;
63290
63291    fn control_handle(&self) -> &StreamSocketControlHandle {
63292        &self.control_handle
63293    }
63294
63295    fn drop_without_shutdown(mut self) {
63296        // Safety: drops once, never accessed again due to mem::forget
63297        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63298        // Prevent Drop from running (which would shut down the channel)
63299        std::mem::forget(self);
63300    }
63301}
63302
63303impl StreamSocketSetIpTtlResponder {
63304    /// Sends a response to the FIDL transaction.
63305    ///
63306    /// Sets the channel to shutdown if an error occurs.
63307    pub fn send(
63308        self,
63309        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63310    ) -> Result<(), fidl::Error> {
63311        let _result = self.send_raw(result);
63312        if _result.is_err() {
63313            self.control_handle.shutdown();
63314        }
63315        self.drop_without_shutdown();
63316        _result
63317    }
63318
63319    /// Similar to "send" but does not shutdown the channel if an error occurs.
63320    pub fn send_no_shutdown_on_err(
63321        self,
63322        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63323    ) -> Result<(), fidl::Error> {
63324        let _result = self.send_raw(result);
63325        self.drop_without_shutdown();
63326        _result
63327    }
63328
63329    fn send_raw(
63330        &self,
63331        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63332    ) -> Result<(), fidl::Error> {
63333        self.control_handle.inner.send::<fidl::encoding::ResultType<
63334            fidl::encoding::EmptyStruct,
63335            fidl_fuchsia_posix::Errno,
63336        >>(
63337            result,
63338            self.tx_id,
63339            0x29e2424b433ae1ef,
63340            fidl::encoding::DynamicFlags::empty(),
63341        )
63342    }
63343}
63344
63345#[must_use = "FIDL methods require a response to be sent"]
63346#[derive(Debug)]
63347pub struct StreamSocketGetIpTtlResponder {
63348    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63349    tx_id: u32,
63350}
63351
63352/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63353/// if the responder is dropped without sending a response, so that the client
63354/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63355impl std::ops::Drop for StreamSocketGetIpTtlResponder {
63356    fn drop(&mut self) {
63357        self.control_handle.shutdown();
63358        // Safety: drops once, never accessed again
63359        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63360    }
63361}
63362
63363impl fidl::endpoints::Responder for StreamSocketGetIpTtlResponder {
63364    type ControlHandle = StreamSocketControlHandle;
63365
63366    fn control_handle(&self) -> &StreamSocketControlHandle {
63367        &self.control_handle
63368    }
63369
63370    fn drop_without_shutdown(mut self) {
63371        // Safety: drops once, never accessed again due to mem::forget
63372        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63373        // Prevent Drop from running (which would shut down the channel)
63374        std::mem::forget(self);
63375    }
63376}
63377
63378impl StreamSocketGetIpTtlResponder {
63379    /// Sends a response to the FIDL transaction.
63380    ///
63381    /// Sets the channel to shutdown if an error occurs.
63382    pub fn send(
63383        self,
63384        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63385    ) -> Result<(), fidl::Error> {
63386        let _result = self.send_raw(result);
63387        if _result.is_err() {
63388            self.control_handle.shutdown();
63389        }
63390        self.drop_without_shutdown();
63391        _result
63392    }
63393
63394    /// Similar to "send" but does not shutdown the channel if an error occurs.
63395    pub fn send_no_shutdown_on_err(
63396        self,
63397        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63398    ) -> Result<(), fidl::Error> {
63399        let _result = self.send_raw(result);
63400        self.drop_without_shutdown();
63401        _result
63402    }
63403
63404    fn send_raw(
63405        &self,
63406        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63407    ) -> Result<(), fidl::Error> {
63408        self.control_handle.inner.send::<fidl::encoding::ResultType<
63409            BaseNetworkSocketGetIpTtlResponse,
63410            fidl_fuchsia_posix::Errno,
63411        >>(
63412            result.map(|value| (value,)),
63413            self.tx_id,
63414            0x47e47fa1f24da471,
63415            fidl::encoding::DynamicFlags::empty(),
63416        )
63417    }
63418}
63419
63420#[must_use = "FIDL methods require a response to be sent"]
63421#[derive(Debug)]
63422pub struct StreamSocketSetIpPacketInfoResponder {
63423    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63424    tx_id: u32,
63425}
63426
63427/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63428/// if the responder is dropped without sending a response, so that the client
63429/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63430impl std::ops::Drop for StreamSocketSetIpPacketInfoResponder {
63431    fn drop(&mut self) {
63432        self.control_handle.shutdown();
63433        // Safety: drops once, never accessed again
63434        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63435    }
63436}
63437
63438impl fidl::endpoints::Responder for StreamSocketSetIpPacketInfoResponder {
63439    type ControlHandle = StreamSocketControlHandle;
63440
63441    fn control_handle(&self) -> &StreamSocketControlHandle {
63442        &self.control_handle
63443    }
63444
63445    fn drop_without_shutdown(mut self) {
63446        // Safety: drops once, never accessed again due to mem::forget
63447        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63448        // Prevent Drop from running (which would shut down the channel)
63449        std::mem::forget(self);
63450    }
63451}
63452
63453impl StreamSocketSetIpPacketInfoResponder {
63454    /// Sends a response to the FIDL transaction.
63455    ///
63456    /// Sets the channel to shutdown if an error occurs.
63457    pub fn send(
63458        self,
63459        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63460    ) -> Result<(), fidl::Error> {
63461        let _result = self.send_raw(result);
63462        if _result.is_err() {
63463            self.control_handle.shutdown();
63464        }
63465        self.drop_without_shutdown();
63466        _result
63467    }
63468
63469    /// Similar to "send" but does not shutdown the channel if an error occurs.
63470    pub fn send_no_shutdown_on_err(
63471        self,
63472        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63473    ) -> Result<(), fidl::Error> {
63474        let _result = self.send_raw(result);
63475        self.drop_without_shutdown();
63476        _result
63477    }
63478
63479    fn send_raw(
63480        &self,
63481        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63482    ) -> Result<(), fidl::Error> {
63483        self.control_handle.inner.send::<fidl::encoding::ResultType<
63484            fidl::encoding::EmptyStruct,
63485            fidl_fuchsia_posix::Errno,
63486        >>(
63487            result,
63488            self.tx_id,
63489            0x392d16bee20c0e16,
63490            fidl::encoding::DynamicFlags::empty(),
63491        )
63492    }
63493}
63494
63495#[must_use = "FIDL methods require a response to be sent"]
63496#[derive(Debug)]
63497pub struct StreamSocketGetIpPacketInfoResponder {
63498    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63499    tx_id: u32,
63500}
63501
63502/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63503/// if the responder is dropped without sending a response, so that the client
63504/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63505impl std::ops::Drop for StreamSocketGetIpPacketInfoResponder {
63506    fn drop(&mut self) {
63507        self.control_handle.shutdown();
63508        // Safety: drops once, never accessed again
63509        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63510    }
63511}
63512
63513impl fidl::endpoints::Responder for StreamSocketGetIpPacketInfoResponder {
63514    type ControlHandle = StreamSocketControlHandle;
63515
63516    fn control_handle(&self) -> &StreamSocketControlHandle {
63517        &self.control_handle
63518    }
63519
63520    fn drop_without_shutdown(mut self) {
63521        // Safety: drops once, never accessed again due to mem::forget
63522        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63523        // Prevent Drop from running (which would shut down the channel)
63524        std::mem::forget(self);
63525    }
63526}
63527
63528impl StreamSocketGetIpPacketInfoResponder {
63529    /// Sends a response to the FIDL transaction.
63530    ///
63531    /// Sets the channel to shutdown if an error occurs.
63532    pub fn send(
63533        self,
63534        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63535    ) -> Result<(), fidl::Error> {
63536        let _result = self.send_raw(result);
63537        if _result.is_err() {
63538            self.control_handle.shutdown();
63539        }
63540        self.drop_without_shutdown();
63541        _result
63542    }
63543
63544    /// Similar to "send" but does not shutdown the channel if an error occurs.
63545    pub fn send_no_shutdown_on_err(
63546        self,
63547        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63548    ) -> Result<(), fidl::Error> {
63549        let _result = self.send_raw(result);
63550        self.drop_without_shutdown();
63551        _result
63552    }
63553
63554    fn send_raw(
63555        &self,
63556        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63557    ) -> Result<(), fidl::Error> {
63558        self.control_handle.inner.send::<fidl::encoding::ResultType<
63559            BaseNetworkSocketGetIpPacketInfoResponse,
63560            fidl_fuchsia_posix::Errno,
63561        >>(
63562            result.map(|value| (value,)),
63563            self.tx_id,
63564            0x54b505f242280740,
63565            fidl::encoding::DynamicFlags::empty(),
63566        )
63567    }
63568}
63569
63570#[must_use = "FIDL methods require a response to be sent"]
63571#[derive(Debug)]
63572pub struct StreamSocketSetIpReceiveTypeOfServiceResponder {
63573    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63574    tx_id: u32,
63575}
63576
63577/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63578/// if the responder is dropped without sending a response, so that the client
63579/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63580impl std::ops::Drop for StreamSocketSetIpReceiveTypeOfServiceResponder {
63581    fn drop(&mut self) {
63582        self.control_handle.shutdown();
63583        // Safety: drops once, never accessed again
63584        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63585    }
63586}
63587
63588impl fidl::endpoints::Responder for StreamSocketSetIpReceiveTypeOfServiceResponder {
63589    type ControlHandle = StreamSocketControlHandle;
63590
63591    fn control_handle(&self) -> &StreamSocketControlHandle {
63592        &self.control_handle
63593    }
63594
63595    fn drop_without_shutdown(mut self) {
63596        // Safety: drops once, never accessed again due to mem::forget
63597        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63598        // Prevent Drop from running (which would shut down the channel)
63599        std::mem::forget(self);
63600    }
63601}
63602
63603impl StreamSocketSetIpReceiveTypeOfServiceResponder {
63604    /// Sends a response to the FIDL transaction.
63605    ///
63606    /// Sets the channel to shutdown if an error occurs.
63607    pub fn send(
63608        self,
63609        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63610    ) -> Result<(), fidl::Error> {
63611        let _result = self.send_raw(result);
63612        if _result.is_err() {
63613            self.control_handle.shutdown();
63614        }
63615        self.drop_without_shutdown();
63616        _result
63617    }
63618
63619    /// Similar to "send" but does not shutdown the channel if an error occurs.
63620    pub fn send_no_shutdown_on_err(
63621        self,
63622        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63623    ) -> Result<(), fidl::Error> {
63624        let _result = self.send_raw(result);
63625        self.drop_without_shutdown();
63626        _result
63627    }
63628
63629    fn send_raw(
63630        &self,
63631        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63632    ) -> Result<(), fidl::Error> {
63633        self.control_handle.inner.send::<fidl::encoding::ResultType<
63634            fidl::encoding::EmptyStruct,
63635            fidl_fuchsia_posix::Errno,
63636        >>(
63637            result,
63638            self.tx_id,
63639            0x6c4f6714995f84ef,
63640            fidl::encoding::DynamicFlags::empty(),
63641        )
63642    }
63643}
63644
63645#[must_use = "FIDL methods require a response to be sent"]
63646#[derive(Debug)]
63647pub struct StreamSocketGetIpReceiveTypeOfServiceResponder {
63648    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63649    tx_id: u32,
63650}
63651
63652/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63653/// if the responder is dropped without sending a response, so that the client
63654/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63655impl std::ops::Drop for StreamSocketGetIpReceiveTypeOfServiceResponder {
63656    fn drop(&mut self) {
63657        self.control_handle.shutdown();
63658        // Safety: drops once, never accessed again
63659        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63660    }
63661}
63662
63663impl fidl::endpoints::Responder for StreamSocketGetIpReceiveTypeOfServiceResponder {
63664    type ControlHandle = StreamSocketControlHandle;
63665
63666    fn control_handle(&self) -> &StreamSocketControlHandle {
63667        &self.control_handle
63668    }
63669
63670    fn drop_without_shutdown(mut self) {
63671        // Safety: drops once, never accessed again due to mem::forget
63672        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63673        // Prevent Drop from running (which would shut down the channel)
63674        std::mem::forget(self);
63675    }
63676}
63677
63678impl StreamSocketGetIpReceiveTypeOfServiceResponder {
63679    /// Sends a response to the FIDL transaction.
63680    ///
63681    /// Sets the channel to shutdown if an error occurs.
63682    pub fn send(
63683        self,
63684        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63685    ) -> Result<(), fidl::Error> {
63686        let _result = self.send_raw(result);
63687        if _result.is_err() {
63688            self.control_handle.shutdown();
63689        }
63690        self.drop_without_shutdown();
63691        _result
63692    }
63693
63694    /// Similar to "send" but does not shutdown the channel if an error occurs.
63695    pub fn send_no_shutdown_on_err(
63696        self,
63697        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63698    ) -> Result<(), fidl::Error> {
63699        let _result = self.send_raw(result);
63700        self.drop_without_shutdown();
63701        _result
63702    }
63703
63704    fn send_raw(
63705        &self,
63706        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63707    ) -> Result<(), fidl::Error> {
63708        self.control_handle.inner.send::<fidl::encoding::ResultType<
63709            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
63710            fidl_fuchsia_posix::Errno,
63711        >>(
63712            result.map(|value| (value,)),
63713            self.tx_id,
63714            0x4158ba7dc2795960,
63715            fidl::encoding::DynamicFlags::empty(),
63716        )
63717    }
63718}
63719
63720#[must_use = "FIDL methods require a response to be sent"]
63721#[derive(Debug)]
63722pub struct StreamSocketSetIpReceiveTtlResponder {
63723    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63724    tx_id: u32,
63725}
63726
63727/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63728/// if the responder is dropped without sending a response, so that the client
63729/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63730impl std::ops::Drop for StreamSocketSetIpReceiveTtlResponder {
63731    fn drop(&mut self) {
63732        self.control_handle.shutdown();
63733        // Safety: drops once, never accessed again
63734        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63735    }
63736}
63737
63738impl fidl::endpoints::Responder for StreamSocketSetIpReceiveTtlResponder {
63739    type ControlHandle = StreamSocketControlHandle;
63740
63741    fn control_handle(&self) -> &StreamSocketControlHandle {
63742        &self.control_handle
63743    }
63744
63745    fn drop_without_shutdown(mut self) {
63746        // Safety: drops once, never accessed again due to mem::forget
63747        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63748        // Prevent Drop from running (which would shut down the channel)
63749        std::mem::forget(self);
63750    }
63751}
63752
63753impl StreamSocketSetIpReceiveTtlResponder {
63754    /// Sends a response to the FIDL transaction.
63755    ///
63756    /// Sets the channel to shutdown if an error occurs.
63757    pub fn send(
63758        self,
63759        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63760    ) -> Result<(), fidl::Error> {
63761        let _result = self.send_raw(result);
63762        if _result.is_err() {
63763            self.control_handle.shutdown();
63764        }
63765        self.drop_without_shutdown();
63766        _result
63767    }
63768
63769    /// Similar to "send" but does not shutdown the channel if an error occurs.
63770    pub fn send_no_shutdown_on_err(
63771        self,
63772        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63773    ) -> Result<(), fidl::Error> {
63774        let _result = self.send_raw(result);
63775        self.drop_without_shutdown();
63776        _result
63777    }
63778
63779    fn send_raw(
63780        &self,
63781        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63782    ) -> Result<(), fidl::Error> {
63783        self.control_handle.inner.send::<fidl::encoding::ResultType<
63784            fidl::encoding::EmptyStruct,
63785            fidl_fuchsia_posix::Errno,
63786        >>(
63787            result,
63788            self.tx_id,
63789            0x46f15be0ce0ab82b,
63790            fidl::encoding::DynamicFlags::empty(),
63791        )
63792    }
63793}
63794
63795#[must_use = "FIDL methods require a response to be sent"]
63796#[derive(Debug)]
63797pub struct StreamSocketGetIpReceiveTtlResponder {
63798    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63799    tx_id: u32,
63800}
63801
63802/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63803/// if the responder is dropped without sending a response, so that the client
63804/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63805impl std::ops::Drop for StreamSocketGetIpReceiveTtlResponder {
63806    fn drop(&mut self) {
63807        self.control_handle.shutdown();
63808        // Safety: drops once, never accessed again
63809        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63810    }
63811}
63812
63813impl fidl::endpoints::Responder for StreamSocketGetIpReceiveTtlResponder {
63814    type ControlHandle = StreamSocketControlHandle;
63815
63816    fn control_handle(&self) -> &StreamSocketControlHandle {
63817        &self.control_handle
63818    }
63819
63820    fn drop_without_shutdown(mut self) {
63821        // Safety: drops once, never accessed again due to mem::forget
63822        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63823        // Prevent Drop from running (which would shut down the channel)
63824        std::mem::forget(self);
63825    }
63826}
63827
63828impl StreamSocketGetIpReceiveTtlResponder {
63829    /// Sends a response to the FIDL transaction.
63830    ///
63831    /// Sets the channel to shutdown if an error occurs.
63832    pub fn send(
63833        self,
63834        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63835    ) -> Result<(), fidl::Error> {
63836        let _result = self.send_raw(result);
63837        if _result.is_err() {
63838            self.control_handle.shutdown();
63839        }
63840        self.drop_without_shutdown();
63841        _result
63842    }
63843
63844    /// Similar to "send" but does not shutdown the channel if an error occurs.
63845    pub fn send_no_shutdown_on_err(
63846        self,
63847        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63848    ) -> Result<(), fidl::Error> {
63849        let _result = self.send_raw(result);
63850        self.drop_without_shutdown();
63851        _result
63852    }
63853
63854    fn send_raw(
63855        &self,
63856        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63857    ) -> Result<(), fidl::Error> {
63858        self.control_handle.inner.send::<fidl::encoding::ResultType<
63859            BaseNetworkSocketGetIpReceiveTtlResponse,
63860            fidl_fuchsia_posix::Errno,
63861        >>(
63862            result.map(|value| (value,)),
63863            self.tx_id,
63864            0x678ddd5a5dfa2eb5,
63865            fidl::encoding::DynamicFlags::empty(),
63866        )
63867    }
63868}
63869
63870#[must_use = "FIDL methods require a response to be sent"]
63871#[derive(Debug)]
63872pub struct StreamSocketSetIpMulticastInterfaceResponder {
63873    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63874    tx_id: u32,
63875}
63876
63877/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63878/// if the responder is dropped without sending a response, so that the client
63879/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63880impl std::ops::Drop for StreamSocketSetIpMulticastInterfaceResponder {
63881    fn drop(&mut self) {
63882        self.control_handle.shutdown();
63883        // Safety: drops once, never accessed again
63884        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63885    }
63886}
63887
63888impl fidl::endpoints::Responder for StreamSocketSetIpMulticastInterfaceResponder {
63889    type ControlHandle = StreamSocketControlHandle;
63890
63891    fn control_handle(&self) -> &StreamSocketControlHandle {
63892        &self.control_handle
63893    }
63894
63895    fn drop_without_shutdown(mut self) {
63896        // Safety: drops once, never accessed again due to mem::forget
63897        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63898        // Prevent Drop from running (which would shut down the channel)
63899        std::mem::forget(self);
63900    }
63901}
63902
63903impl StreamSocketSetIpMulticastInterfaceResponder {
63904    /// Sends a response to the FIDL transaction.
63905    ///
63906    /// Sets the channel to shutdown if an error occurs.
63907    pub fn send(
63908        self,
63909        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63910    ) -> Result<(), fidl::Error> {
63911        let _result = self.send_raw(result);
63912        if _result.is_err() {
63913            self.control_handle.shutdown();
63914        }
63915        self.drop_without_shutdown();
63916        _result
63917    }
63918
63919    /// Similar to "send" but does not shutdown the channel if an error occurs.
63920    pub fn send_no_shutdown_on_err(
63921        self,
63922        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63923    ) -> Result<(), fidl::Error> {
63924        let _result = self.send_raw(result);
63925        self.drop_without_shutdown();
63926        _result
63927    }
63928
63929    fn send_raw(
63930        &self,
63931        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63932    ) -> Result<(), fidl::Error> {
63933        self.control_handle.inner.send::<fidl::encoding::ResultType<
63934            fidl::encoding::EmptyStruct,
63935            fidl_fuchsia_posix::Errno,
63936        >>(
63937            result,
63938            self.tx_id,
63939            0x752fbfa9b12befe,
63940            fidl::encoding::DynamicFlags::empty(),
63941        )
63942    }
63943}
63944
63945#[must_use = "FIDL methods require a response to be sent"]
63946#[derive(Debug)]
63947pub struct StreamSocketGetIpMulticastInterfaceResponder {
63948    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63949    tx_id: u32,
63950}
63951
63952/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63953/// if the responder is dropped without sending a response, so that the client
63954/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63955impl std::ops::Drop for StreamSocketGetIpMulticastInterfaceResponder {
63956    fn drop(&mut self) {
63957        self.control_handle.shutdown();
63958        // Safety: drops once, never accessed again
63959        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63960    }
63961}
63962
63963impl fidl::endpoints::Responder for StreamSocketGetIpMulticastInterfaceResponder {
63964    type ControlHandle = StreamSocketControlHandle;
63965
63966    fn control_handle(&self) -> &StreamSocketControlHandle {
63967        &self.control_handle
63968    }
63969
63970    fn drop_without_shutdown(mut self) {
63971        // Safety: drops once, never accessed again due to mem::forget
63972        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63973        // Prevent Drop from running (which would shut down the channel)
63974        std::mem::forget(self);
63975    }
63976}
63977
63978impl StreamSocketGetIpMulticastInterfaceResponder {
63979    /// Sends a response to the FIDL transaction.
63980    ///
63981    /// Sets the channel to shutdown if an error occurs.
63982    pub fn send(
63983        self,
63984        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
63985    ) -> Result<(), fidl::Error> {
63986        let _result = self.send_raw(result);
63987        if _result.is_err() {
63988            self.control_handle.shutdown();
63989        }
63990        self.drop_without_shutdown();
63991        _result
63992    }
63993
63994    /// Similar to "send" but does not shutdown the channel if an error occurs.
63995    pub fn send_no_shutdown_on_err(
63996        self,
63997        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
63998    ) -> Result<(), fidl::Error> {
63999        let _result = self.send_raw(result);
64000        self.drop_without_shutdown();
64001        _result
64002    }
64003
64004    fn send_raw(
64005        &self,
64006        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
64007    ) -> Result<(), fidl::Error> {
64008        self.control_handle.inner.send::<fidl::encoding::ResultType<
64009            BaseNetworkSocketGetIpMulticastInterfaceResponse,
64010            fidl_fuchsia_posix::Errno,
64011        >>(
64012            result.map(|value| (value,)),
64013            self.tx_id,
64014            0x320bd14c4df046c4,
64015            fidl::encoding::DynamicFlags::empty(),
64016        )
64017    }
64018}
64019
64020#[must_use = "FIDL methods require a response to be sent"]
64021#[derive(Debug)]
64022pub struct StreamSocketSetIpMulticastTtlResponder {
64023    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64024    tx_id: u32,
64025}
64026
64027/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64028/// if the responder is dropped without sending a response, so that the client
64029/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64030impl std::ops::Drop for StreamSocketSetIpMulticastTtlResponder {
64031    fn drop(&mut self) {
64032        self.control_handle.shutdown();
64033        // Safety: drops once, never accessed again
64034        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64035    }
64036}
64037
64038impl fidl::endpoints::Responder for StreamSocketSetIpMulticastTtlResponder {
64039    type ControlHandle = StreamSocketControlHandle;
64040
64041    fn control_handle(&self) -> &StreamSocketControlHandle {
64042        &self.control_handle
64043    }
64044
64045    fn drop_without_shutdown(mut self) {
64046        // Safety: drops once, never accessed again due to mem::forget
64047        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64048        // Prevent Drop from running (which would shut down the channel)
64049        std::mem::forget(self);
64050    }
64051}
64052
64053impl StreamSocketSetIpMulticastTtlResponder {
64054    /// Sends a response to the FIDL transaction.
64055    ///
64056    /// Sets the channel to shutdown if an error occurs.
64057    pub fn send(
64058        self,
64059        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64060    ) -> Result<(), fidl::Error> {
64061        let _result = self.send_raw(result);
64062        if _result.is_err() {
64063            self.control_handle.shutdown();
64064        }
64065        self.drop_without_shutdown();
64066        _result
64067    }
64068
64069    /// Similar to "send" but does not shutdown the channel if an error occurs.
64070    pub fn send_no_shutdown_on_err(
64071        self,
64072        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64073    ) -> Result<(), fidl::Error> {
64074        let _result = self.send_raw(result);
64075        self.drop_without_shutdown();
64076        _result
64077    }
64078
64079    fn send_raw(
64080        &self,
64081        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64082    ) -> Result<(), fidl::Error> {
64083        self.control_handle.inner.send::<fidl::encoding::ResultType<
64084            fidl::encoding::EmptyStruct,
64085            fidl_fuchsia_posix::Errno,
64086        >>(
64087            result,
64088            self.tx_id,
64089            0x63134d53772916a1,
64090            fidl::encoding::DynamicFlags::empty(),
64091        )
64092    }
64093}
64094
64095#[must_use = "FIDL methods require a response to be sent"]
64096#[derive(Debug)]
64097pub struct StreamSocketGetIpMulticastTtlResponder {
64098    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64099    tx_id: u32,
64100}
64101
64102/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64103/// if the responder is dropped without sending a response, so that the client
64104/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64105impl std::ops::Drop for StreamSocketGetIpMulticastTtlResponder {
64106    fn drop(&mut self) {
64107        self.control_handle.shutdown();
64108        // Safety: drops once, never accessed again
64109        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64110    }
64111}
64112
64113impl fidl::endpoints::Responder for StreamSocketGetIpMulticastTtlResponder {
64114    type ControlHandle = StreamSocketControlHandle;
64115
64116    fn control_handle(&self) -> &StreamSocketControlHandle {
64117        &self.control_handle
64118    }
64119
64120    fn drop_without_shutdown(mut self) {
64121        // Safety: drops once, never accessed again due to mem::forget
64122        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64123        // Prevent Drop from running (which would shut down the channel)
64124        std::mem::forget(self);
64125    }
64126}
64127
64128impl StreamSocketGetIpMulticastTtlResponder {
64129    /// Sends a response to the FIDL transaction.
64130    ///
64131    /// Sets the channel to shutdown if an error occurs.
64132    pub fn send(
64133        self,
64134        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64135    ) -> Result<(), fidl::Error> {
64136        let _result = self.send_raw(result);
64137        if _result.is_err() {
64138            self.control_handle.shutdown();
64139        }
64140        self.drop_without_shutdown();
64141        _result
64142    }
64143
64144    /// Similar to "send" but does not shutdown the channel if an error occurs.
64145    pub fn send_no_shutdown_on_err(
64146        self,
64147        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64148    ) -> Result<(), fidl::Error> {
64149        let _result = self.send_raw(result);
64150        self.drop_without_shutdown();
64151        _result
64152    }
64153
64154    fn send_raw(
64155        &self,
64156        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64157    ) -> Result<(), fidl::Error> {
64158        self.control_handle.inner.send::<fidl::encoding::ResultType<
64159            BaseNetworkSocketGetIpMulticastTtlResponse,
64160            fidl_fuchsia_posix::Errno,
64161        >>(
64162            result.map(|value| (value,)),
64163            self.tx_id,
64164            0x4665cd378f39e1a,
64165            fidl::encoding::DynamicFlags::empty(),
64166        )
64167    }
64168}
64169
64170#[must_use = "FIDL methods require a response to be sent"]
64171#[derive(Debug)]
64172pub struct StreamSocketSetIpMulticastLoopbackResponder {
64173    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64174    tx_id: u32,
64175}
64176
64177/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64178/// if the responder is dropped without sending a response, so that the client
64179/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64180impl std::ops::Drop for StreamSocketSetIpMulticastLoopbackResponder {
64181    fn drop(&mut self) {
64182        self.control_handle.shutdown();
64183        // Safety: drops once, never accessed again
64184        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64185    }
64186}
64187
64188impl fidl::endpoints::Responder for StreamSocketSetIpMulticastLoopbackResponder {
64189    type ControlHandle = StreamSocketControlHandle;
64190
64191    fn control_handle(&self) -> &StreamSocketControlHandle {
64192        &self.control_handle
64193    }
64194
64195    fn drop_without_shutdown(mut self) {
64196        // Safety: drops once, never accessed again due to mem::forget
64197        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64198        // Prevent Drop from running (which would shut down the channel)
64199        std::mem::forget(self);
64200    }
64201}
64202
64203impl StreamSocketSetIpMulticastLoopbackResponder {
64204    /// Sends a response to the FIDL transaction.
64205    ///
64206    /// Sets the channel to shutdown if an error occurs.
64207    pub fn send(
64208        self,
64209        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64210    ) -> Result<(), fidl::Error> {
64211        let _result = self.send_raw(result);
64212        if _result.is_err() {
64213            self.control_handle.shutdown();
64214        }
64215        self.drop_without_shutdown();
64216        _result
64217    }
64218
64219    /// Similar to "send" but does not shutdown the channel if an error occurs.
64220    pub fn send_no_shutdown_on_err(
64221        self,
64222        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64223    ) -> Result<(), fidl::Error> {
64224        let _result = self.send_raw(result);
64225        self.drop_without_shutdown();
64226        _result
64227    }
64228
64229    fn send_raw(
64230        &self,
64231        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64232    ) -> Result<(), fidl::Error> {
64233        self.control_handle.inner.send::<fidl::encoding::ResultType<
64234            fidl::encoding::EmptyStruct,
64235            fidl_fuchsia_posix::Errno,
64236        >>(
64237            result,
64238            self.tx_id,
64239            0x20c55c11f00943ea,
64240            fidl::encoding::DynamicFlags::empty(),
64241        )
64242    }
64243}
64244
64245#[must_use = "FIDL methods require a response to be sent"]
64246#[derive(Debug)]
64247pub struct StreamSocketGetIpMulticastLoopbackResponder {
64248    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64249    tx_id: u32,
64250}
64251
64252/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64253/// if the responder is dropped without sending a response, so that the client
64254/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64255impl std::ops::Drop for StreamSocketGetIpMulticastLoopbackResponder {
64256    fn drop(&mut self) {
64257        self.control_handle.shutdown();
64258        // Safety: drops once, never accessed again
64259        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64260    }
64261}
64262
64263impl fidl::endpoints::Responder for StreamSocketGetIpMulticastLoopbackResponder {
64264    type ControlHandle = StreamSocketControlHandle;
64265
64266    fn control_handle(&self) -> &StreamSocketControlHandle {
64267        &self.control_handle
64268    }
64269
64270    fn drop_without_shutdown(mut self) {
64271        // Safety: drops once, never accessed again due to mem::forget
64272        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64273        // Prevent Drop from running (which would shut down the channel)
64274        std::mem::forget(self);
64275    }
64276}
64277
64278impl StreamSocketGetIpMulticastLoopbackResponder {
64279    /// Sends a response to the FIDL transaction.
64280    ///
64281    /// Sets the channel to shutdown if an error occurs.
64282    pub fn send(
64283        self,
64284        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64285    ) -> Result<(), fidl::Error> {
64286        let _result = self.send_raw(result);
64287        if _result.is_err() {
64288            self.control_handle.shutdown();
64289        }
64290        self.drop_without_shutdown();
64291        _result
64292    }
64293
64294    /// Similar to "send" but does not shutdown the channel if an error occurs.
64295    pub fn send_no_shutdown_on_err(
64296        self,
64297        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64298    ) -> Result<(), fidl::Error> {
64299        let _result = self.send_raw(result);
64300        self.drop_without_shutdown();
64301        _result
64302    }
64303
64304    fn send_raw(
64305        &self,
64306        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64307    ) -> Result<(), fidl::Error> {
64308        self.control_handle.inner.send::<fidl::encoding::ResultType<
64309            BaseNetworkSocketGetIpMulticastLoopbackResponse,
64310            fidl_fuchsia_posix::Errno,
64311        >>(
64312            result.map(|value| (value,)),
64313            self.tx_id,
64314            0x3b6b26ff558298f2,
64315            fidl::encoding::DynamicFlags::empty(),
64316        )
64317    }
64318}
64319
64320#[must_use = "FIDL methods require a response to be sent"]
64321#[derive(Debug)]
64322pub struct StreamSocketAddIpMembershipResponder {
64323    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64324    tx_id: u32,
64325}
64326
64327/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64328/// if the responder is dropped without sending a response, so that the client
64329/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64330impl std::ops::Drop for StreamSocketAddIpMembershipResponder {
64331    fn drop(&mut self) {
64332        self.control_handle.shutdown();
64333        // Safety: drops once, never accessed again
64334        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64335    }
64336}
64337
64338impl fidl::endpoints::Responder for StreamSocketAddIpMembershipResponder {
64339    type ControlHandle = StreamSocketControlHandle;
64340
64341    fn control_handle(&self) -> &StreamSocketControlHandle {
64342        &self.control_handle
64343    }
64344
64345    fn drop_without_shutdown(mut self) {
64346        // Safety: drops once, never accessed again due to mem::forget
64347        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64348        // Prevent Drop from running (which would shut down the channel)
64349        std::mem::forget(self);
64350    }
64351}
64352
64353impl StreamSocketAddIpMembershipResponder {
64354    /// Sends a response to the FIDL transaction.
64355    ///
64356    /// Sets the channel to shutdown if an error occurs.
64357    pub fn send(
64358        self,
64359        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64360    ) -> Result<(), fidl::Error> {
64361        let _result = self.send_raw(result);
64362        if _result.is_err() {
64363            self.control_handle.shutdown();
64364        }
64365        self.drop_without_shutdown();
64366        _result
64367    }
64368
64369    /// Similar to "send" but does not shutdown the channel if an error occurs.
64370    pub fn send_no_shutdown_on_err(
64371        self,
64372        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64373    ) -> Result<(), fidl::Error> {
64374        let _result = self.send_raw(result);
64375        self.drop_without_shutdown();
64376        _result
64377    }
64378
64379    fn send_raw(
64380        &self,
64381        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64382    ) -> Result<(), fidl::Error> {
64383        self.control_handle.inner.send::<fidl::encoding::ResultType<
64384            fidl::encoding::EmptyStruct,
64385            fidl_fuchsia_posix::Errno,
64386        >>(
64387            result,
64388            self.tx_id,
64389            0x76bc7df115a3b4d0,
64390            fidl::encoding::DynamicFlags::empty(),
64391        )
64392    }
64393}
64394
64395#[must_use = "FIDL methods require a response to be sent"]
64396#[derive(Debug)]
64397pub struct StreamSocketDropIpMembershipResponder {
64398    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64399    tx_id: u32,
64400}
64401
64402/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64403/// if the responder is dropped without sending a response, so that the client
64404/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64405impl std::ops::Drop for StreamSocketDropIpMembershipResponder {
64406    fn drop(&mut self) {
64407        self.control_handle.shutdown();
64408        // Safety: drops once, never accessed again
64409        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64410    }
64411}
64412
64413impl fidl::endpoints::Responder for StreamSocketDropIpMembershipResponder {
64414    type ControlHandle = StreamSocketControlHandle;
64415
64416    fn control_handle(&self) -> &StreamSocketControlHandle {
64417        &self.control_handle
64418    }
64419
64420    fn drop_without_shutdown(mut self) {
64421        // Safety: drops once, never accessed again due to mem::forget
64422        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64423        // Prevent Drop from running (which would shut down the channel)
64424        std::mem::forget(self);
64425    }
64426}
64427
64428impl StreamSocketDropIpMembershipResponder {
64429    /// Sends a response to the FIDL transaction.
64430    ///
64431    /// Sets the channel to shutdown if an error occurs.
64432    pub fn send(
64433        self,
64434        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64435    ) -> Result<(), fidl::Error> {
64436        let _result = self.send_raw(result);
64437        if _result.is_err() {
64438            self.control_handle.shutdown();
64439        }
64440        self.drop_without_shutdown();
64441        _result
64442    }
64443
64444    /// Similar to "send" but does not shutdown the channel if an error occurs.
64445    pub fn send_no_shutdown_on_err(
64446        self,
64447        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64448    ) -> Result<(), fidl::Error> {
64449        let _result = self.send_raw(result);
64450        self.drop_without_shutdown();
64451        _result
64452    }
64453
64454    fn send_raw(
64455        &self,
64456        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64457    ) -> Result<(), fidl::Error> {
64458        self.control_handle.inner.send::<fidl::encoding::ResultType<
64459            fidl::encoding::EmptyStruct,
64460            fidl_fuchsia_posix::Errno,
64461        >>(
64462            result,
64463            self.tx_id,
64464            0x2888f3099188d03,
64465            fidl::encoding::DynamicFlags::empty(),
64466        )
64467    }
64468}
64469
64470#[must_use = "FIDL methods require a response to be sent"]
64471#[derive(Debug)]
64472pub struct StreamSocketSetIpTransparentResponder {
64473    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64474    tx_id: u32,
64475}
64476
64477/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64478/// if the responder is dropped without sending a response, so that the client
64479/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64480impl std::ops::Drop for StreamSocketSetIpTransparentResponder {
64481    fn drop(&mut self) {
64482        self.control_handle.shutdown();
64483        // Safety: drops once, never accessed again
64484        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64485    }
64486}
64487
64488impl fidl::endpoints::Responder for StreamSocketSetIpTransparentResponder {
64489    type ControlHandle = StreamSocketControlHandle;
64490
64491    fn control_handle(&self) -> &StreamSocketControlHandle {
64492        &self.control_handle
64493    }
64494
64495    fn drop_without_shutdown(mut self) {
64496        // Safety: drops once, never accessed again due to mem::forget
64497        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64498        // Prevent Drop from running (which would shut down the channel)
64499        std::mem::forget(self);
64500    }
64501}
64502
64503impl StreamSocketSetIpTransparentResponder {
64504    /// Sends a response to the FIDL transaction.
64505    ///
64506    /// Sets the channel to shutdown if an error occurs.
64507    pub fn send(
64508        self,
64509        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64510    ) -> Result<(), fidl::Error> {
64511        let _result = self.send_raw(result);
64512        if _result.is_err() {
64513            self.control_handle.shutdown();
64514        }
64515        self.drop_without_shutdown();
64516        _result
64517    }
64518
64519    /// Similar to "send" but does not shutdown the channel if an error occurs.
64520    pub fn send_no_shutdown_on_err(
64521        self,
64522        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64523    ) -> Result<(), fidl::Error> {
64524        let _result = self.send_raw(result);
64525        self.drop_without_shutdown();
64526        _result
64527    }
64528
64529    fn send_raw(
64530        &self,
64531        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64532    ) -> Result<(), fidl::Error> {
64533        self.control_handle.inner.send::<fidl::encoding::ResultType<
64534            fidl::encoding::EmptyStruct,
64535            fidl_fuchsia_posix::Errno,
64536        >>(
64537            result,
64538            self.tx_id,
64539            0x1ae532b0c066e3a0,
64540            fidl::encoding::DynamicFlags::empty(),
64541        )
64542    }
64543}
64544
64545#[must_use = "FIDL methods require a response to be sent"]
64546#[derive(Debug)]
64547pub struct StreamSocketGetIpTransparentResponder {
64548    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64549    tx_id: u32,
64550}
64551
64552/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64553/// if the responder is dropped without sending a response, so that the client
64554/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64555impl std::ops::Drop for StreamSocketGetIpTransparentResponder {
64556    fn drop(&mut self) {
64557        self.control_handle.shutdown();
64558        // Safety: drops once, never accessed again
64559        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64560    }
64561}
64562
64563impl fidl::endpoints::Responder for StreamSocketGetIpTransparentResponder {
64564    type ControlHandle = StreamSocketControlHandle;
64565
64566    fn control_handle(&self) -> &StreamSocketControlHandle {
64567        &self.control_handle
64568    }
64569
64570    fn drop_without_shutdown(mut self) {
64571        // Safety: drops once, never accessed again due to mem::forget
64572        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64573        // Prevent Drop from running (which would shut down the channel)
64574        std::mem::forget(self);
64575    }
64576}
64577
64578impl StreamSocketGetIpTransparentResponder {
64579    /// Sends a response to the FIDL transaction.
64580    ///
64581    /// Sets the channel to shutdown if an error occurs.
64582    pub fn send(
64583        self,
64584        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64585    ) -> Result<(), fidl::Error> {
64586        let _result = self.send_raw(result);
64587        if _result.is_err() {
64588            self.control_handle.shutdown();
64589        }
64590        self.drop_without_shutdown();
64591        _result
64592    }
64593
64594    /// Similar to "send" but does not shutdown the channel if an error occurs.
64595    pub fn send_no_shutdown_on_err(
64596        self,
64597        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64598    ) -> Result<(), fidl::Error> {
64599        let _result = self.send_raw(result);
64600        self.drop_without_shutdown();
64601        _result
64602    }
64603
64604    fn send_raw(
64605        &self,
64606        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64607    ) -> Result<(), fidl::Error> {
64608        self.control_handle.inner.send::<fidl::encoding::ResultType<
64609            BaseNetworkSocketGetIpTransparentResponse,
64610            fidl_fuchsia_posix::Errno,
64611        >>(
64612            result.map(|value| (value,)),
64613            self.tx_id,
64614            0x51d43695962ebfb5,
64615            fidl::encoding::DynamicFlags::empty(),
64616        )
64617    }
64618}
64619
64620#[must_use = "FIDL methods require a response to be sent"]
64621#[derive(Debug)]
64622pub struct StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
64623    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64624    tx_id: u32,
64625}
64626
64627/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64628/// if the responder is dropped without sending a response, so that the client
64629/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64630impl std::ops::Drop for StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
64631    fn drop(&mut self) {
64632        self.control_handle.shutdown();
64633        // Safety: drops once, never accessed again
64634        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64635    }
64636}
64637
64638impl fidl::endpoints::Responder for StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
64639    type ControlHandle = StreamSocketControlHandle;
64640
64641    fn control_handle(&self) -> &StreamSocketControlHandle {
64642        &self.control_handle
64643    }
64644
64645    fn drop_without_shutdown(mut self) {
64646        // Safety: drops once, never accessed again due to mem::forget
64647        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64648        // Prevent Drop from running (which would shut down the channel)
64649        std::mem::forget(self);
64650    }
64651}
64652
64653impl StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
64654    /// Sends a response to the FIDL transaction.
64655    ///
64656    /// Sets the channel to shutdown if an error occurs.
64657    pub fn send(
64658        self,
64659        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64660    ) -> Result<(), fidl::Error> {
64661        let _result = self.send_raw(result);
64662        if _result.is_err() {
64663            self.control_handle.shutdown();
64664        }
64665        self.drop_without_shutdown();
64666        _result
64667    }
64668
64669    /// Similar to "send" but does not shutdown the channel if an error occurs.
64670    pub fn send_no_shutdown_on_err(
64671        self,
64672        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64673    ) -> Result<(), fidl::Error> {
64674        let _result = self.send_raw(result);
64675        self.drop_without_shutdown();
64676        _result
64677    }
64678
64679    fn send_raw(
64680        &self,
64681        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64682    ) -> Result<(), fidl::Error> {
64683        self.control_handle.inner.send::<fidl::encoding::ResultType<
64684            fidl::encoding::EmptyStruct,
64685            fidl_fuchsia_posix::Errno,
64686        >>(
64687            result,
64688            self.tx_id,
64689            0x4722b4ce52f7840,
64690            fidl::encoding::DynamicFlags::empty(),
64691        )
64692    }
64693}
64694
64695#[must_use = "FIDL methods require a response to be sent"]
64696#[derive(Debug)]
64697pub struct StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
64698    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64699    tx_id: u32,
64700}
64701
64702/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64703/// if the responder is dropped without sending a response, so that the client
64704/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64705impl std::ops::Drop for StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
64706    fn drop(&mut self) {
64707        self.control_handle.shutdown();
64708        // Safety: drops once, never accessed again
64709        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64710    }
64711}
64712
64713impl fidl::endpoints::Responder for StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
64714    type ControlHandle = StreamSocketControlHandle;
64715
64716    fn control_handle(&self) -> &StreamSocketControlHandle {
64717        &self.control_handle
64718    }
64719
64720    fn drop_without_shutdown(mut self) {
64721        // Safety: drops once, never accessed again due to mem::forget
64722        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64723        // Prevent Drop from running (which would shut down the channel)
64724        std::mem::forget(self);
64725    }
64726}
64727
64728impl StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
64729    /// Sends a response to the FIDL transaction.
64730    ///
64731    /// Sets the channel to shutdown if an error occurs.
64732    pub fn send(
64733        self,
64734        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64735    ) -> Result<(), fidl::Error> {
64736        let _result = self.send_raw(result);
64737        if _result.is_err() {
64738            self.control_handle.shutdown();
64739        }
64740        self.drop_without_shutdown();
64741        _result
64742    }
64743
64744    /// Similar to "send" but does not shutdown the channel if an error occurs.
64745    pub fn send_no_shutdown_on_err(
64746        self,
64747        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64748    ) -> Result<(), fidl::Error> {
64749        let _result = self.send_raw(result);
64750        self.drop_without_shutdown();
64751        _result
64752    }
64753
64754    fn send_raw(
64755        &self,
64756        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64757    ) -> Result<(), fidl::Error> {
64758        self.control_handle.inner.send::<fidl::encoding::ResultType<
64759            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
64760            fidl_fuchsia_posix::Errno,
64761        >>(
64762            result.map(|value| (value,)),
64763            self.tx_id,
64764            0x2a0e7dc5d6bfdfe9,
64765            fidl::encoding::DynamicFlags::empty(),
64766        )
64767    }
64768}
64769
64770#[must_use = "FIDL methods require a response to be sent"]
64771#[derive(Debug)]
64772pub struct StreamSocketAddIpv6MembershipResponder {
64773    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64774    tx_id: u32,
64775}
64776
64777/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64778/// if the responder is dropped without sending a response, so that the client
64779/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64780impl std::ops::Drop for StreamSocketAddIpv6MembershipResponder {
64781    fn drop(&mut self) {
64782        self.control_handle.shutdown();
64783        // Safety: drops once, never accessed again
64784        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64785    }
64786}
64787
64788impl fidl::endpoints::Responder for StreamSocketAddIpv6MembershipResponder {
64789    type ControlHandle = StreamSocketControlHandle;
64790
64791    fn control_handle(&self) -> &StreamSocketControlHandle {
64792        &self.control_handle
64793    }
64794
64795    fn drop_without_shutdown(mut self) {
64796        // Safety: drops once, never accessed again due to mem::forget
64797        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64798        // Prevent Drop from running (which would shut down the channel)
64799        std::mem::forget(self);
64800    }
64801}
64802
64803impl StreamSocketAddIpv6MembershipResponder {
64804    /// Sends a response to the FIDL transaction.
64805    ///
64806    /// Sets the channel to shutdown if an error occurs.
64807    pub fn send(
64808        self,
64809        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64810    ) -> Result<(), fidl::Error> {
64811        let _result = self.send_raw(result);
64812        if _result.is_err() {
64813            self.control_handle.shutdown();
64814        }
64815        self.drop_without_shutdown();
64816        _result
64817    }
64818
64819    /// Similar to "send" but does not shutdown the channel if an error occurs.
64820    pub fn send_no_shutdown_on_err(
64821        self,
64822        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64823    ) -> Result<(), fidl::Error> {
64824        let _result = self.send_raw(result);
64825        self.drop_without_shutdown();
64826        _result
64827    }
64828
64829    fn send_raw(
64830        &self,
64831        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64832    ) -> Result<(), fidl::Error> {
64833        self.control_handle.inner.send::<fidl::encoding::ResultType<
64834            fidl::encoding::EmptyStruct,
64835            fidl_fuchsia_posix::Errno,
64836        >>(
64837            result,
64838            self.tx_id,
64839            0x7c94727acb4ea4b3,
64840            fidl::encoding::DynamicFlags::empty(),
64841        )
64842    }
64843}
64844
64845#[must_use = "FIDL methods require a response to be sent"]
64846#[derive(Debug)]
64847pub struct StreamSocketDropIpv6MembershipResponder {
64848    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64849    tx_id: u32,
64850}
64851
64852/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64853/// if the responder is dropped without sending a response, so that the client
64854/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64855impl std::ops::Drop for StreamSocketDropIpv6MembershipResponder {
64856    fn drop(&mut self) {
64857        self.control_handle.shutdown();
64858        // Safety: drops once, never accessed again
64859        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64860    }
64861}
64862
64863impl fidl::endpoints::Responder for StreamSocketDropIpv6MembershipResponder {
64864    type ControlHandle = StreamSocketControlHandle;
64865
64866    fn control_handle(&self) -> &StreamSocketControlHandle {
64867        &self.control_handle
64868    }
64869
64870    fn drop_without_shutdown(mut self) {
64871        // Safety: drops once, never accessed again due to mem::forget
64872        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64873        // Prevent Drop from running (which would shut down the channel)
64874        std::mem::forget(self);
64875    }
64876}
64877
64878impl StreamSocketDropIpv6MembershipResponder {
64879    /// Sends a response to the FIDL transaction.
64880    ///
64881    /// Sets the channel to shutdown if an error occurs.
64882    pub fn send(
64883        self,
64884        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64885    ) -> Result<(), fidl::Error> {
64886        let _result = self.send_raw(result);
64887        if _result.is_err() {
64888            self.control_handle.shutdown();
64889        }
64890        self.drop_without_shutdown();
64891        _result
64892    }
64893
64894    /// Similar to "send" but does not shutdown the channel if an error occurs.
64895    pub fn send_no_shutdown_on_err(
64896        self,
64897        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64898    ) -> Result<(), fidl::Error> {
64899        let _result = self.send_raw(result);
64900        self.drop_without_shutdown();
64901        _result
64902    }
64903
64904    fn send_raw(
64905        &self,
64906        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64907    ) -> Result<(), fidl::Error> {
64908        self.control_handle.inner.send::<fidl::encoding::ResultType<
64909            fidl::encoding::EmptyStruct,
64910            fidl_fuchsia_posix::Errno,
64911        >>(
64912            result,
64913            self.tx_id,
64914            0x42104c70ccaba304,
64915            fidl::encoding::DynamicFlags::empty(),
64916        )
64917    }
64918}
64919
64920#[must_use = "FIDL methods require a response to be sent"]
64921#[derive(Debug)]
64922pub struct StreamSocketSetIpv6MulticastInterfaceResponder {
64923    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64924    tx_id: u32,
64925}
64926
64927/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64928/// if the responder is dropped without sending a response, so that the client
64929/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64930impl std::ops::Drop for StreamSocketSetIpv6MulticastInterfaceResponder {
64931    fn drop(&mut self) {
64932        self.control_handle.shutdown();
64933        // Safety: drops once, never accessed again
64934        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64935    }
64936}
64937
64938impl fidl::endpoints::Responder for StreamSocketSetIpv6MulticastInterfaceResponder {
64939    type ControlHandle = StreamSocketControlHandle;
64940
64941    fn control_handle(&self) -> &StreamSocketControlHandle {
64942        &self.control_handle
64943    }
64944
64945    fn drop_without_shutdown(mut self) {
64946        // Safety: drops once, never accessed again due to mem::forget
64947        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64948        // Prevent Drop from running (which would shut down the channel)
64949        std::mem::forget(self);
64950    }
64951}
64952
64953impl StreamSocketSetIpv6MulticastInterfaceResponder {
64954    /// Sends a response to the FIDL transaction.
64955    ///
64956    /// Sets the channel to shutdown if an error occurs.
64957    pub fn send(
64958        self,
64959        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64960    ) -> Result<(), fidl::Error> {
64961        let _result = self.send_raw(result);
64962        if _result.is_err() {
64963            self.control_handle.shutdown();
64964        }
64965        self.drop_without_shutdown();
64966        _result
64967    }
64968
64969    /// Similar to "send" but does not shutdown the channel if an error occurs.
64970    pub fn send_no_shutdown_on_err(
64971        self,
64972        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64973    ) -> Result<(), fidl::Error> {
64974        let _result = self.send_raw(result);
64975        self.drop_without_shutdown();
64976        _result
64977    }
64978
64979    fn send_raw(
64980        &self,
64981        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64982    ) -> Result<(), fidl::Error> {
64983        self.control_handle.inner.send::<fidl::encoding::ResultType<
64984            fidl::encoding::EmptyStruct,
64985            fidl_fuchsia_posix::Errno,
64986        >>(
64987            result,
64988            self.tx_id,
64989            0x135f76db3774ab3b,
64990            fidl::encoding::DynamicFlags::empty(),
64991        )
64992    }
64993}
64994
64995#[must_use = "FIDL methods require a response to be sent"]
64996#[derive(Debug)]
64997pub struct StreamSocketGetIpv6MulticastInterfaceResponder {
64998    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64999    tx_id: u32,
65000}
65001
65002/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65003/// if the responder is dropped without sending a response, so that the client
65004/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65005impl std::ops::Drop for StreamSocketGetIpv6MulticastInterfaceResponder {
65006    fn drop(&mut self) {
65007        self.control_handle.shutdown();
65008        // Safety: drops once, never accessed again
65009        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65010    }
65011}
65012
65013impl fidl::endpoints::Responder for StreamSocketGetIpv6MulticastInterfaceResponder {
65014    type ControlHandle = StreamSocketControlHandle;
65015
65016    fn control_handle(&self) -> &StreamSocketControlHandle {
65017        &self.control_handle
65018    }
65019
65020    fn drop_without_shutdown(mut self) {
65021        // Safety: drops once, never accessed again due to mem::forget
65022        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65023        // Prevent Drop from running (which would shut down the channel)
65024        std::mem::forget(self);
65025    }
65026}
65027
65028impl StreamSocketGetIpv6MulticastInterfaceResponder {
65029    /// Sends a response to the FIDL transaction.
65030    ///
65031    /// Sets the channel to shutdown if an error occurs.
65032    pub fn send(
65033        self,
65034        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
65035    ) -> Result<(), fidl::Error> {
65036        let _result = self.send_raw(result);
65037        if _result.is_err() {
65038            self.control_handle.shutdown();
65039        }
65040        self.drop_without_shutdown();
65041        _result
65042    }
65043
65044    /// Similar to "send" but does not shutdown the channel if an error occurs.
65045    pub fn send_no_shutdown_on_err(
65046        self,
65047        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
65048    ) -> Result<(), fidl::Error> {
65049        let _result = self.send_raw(result);
65050        self.drop_without_shutdown();
65051        _result
65052    }
65053
65054    fn send_raw(
65055        &self,
65056        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
65057    ) -> Result<(), fidl::Error> {
65058        self.control_handle.inner.send::<fidl::encoding::ResultType<
65059            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
65060            fidl_fuchsia_posix::Errno,
65061        >>(
65062            result.map(|value| (value,)),
65063            self.tx_id,
65064            0x1f26fcdd348f1882,
65065            fidl::encoding::DynamicFlags::empty(),
65066        )
65067    }
65068}
65069
65070#[must_use = "FIDL methods require a response to be sent"]
65071#[derive(Debug)]
65072pub struct StreamSocketSetIpv6UnicastHopsResponder {
65073    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65074    tx_id: u32,
65075}
65076
65077/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65078/// if the responder is dropped without sending a response, so that the client
65079/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65080impl std::ops::Drop for StreamSocketSetIpv6UnicastHopsResponder {
65081    fn drop(&mut self) {
65082        self.control_handle.shutdown();
65083        // Safety: drops once, never accessed again
65084        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65085    }
65086}
65087
65088impl fidl::endpoints::Responder for StreamSocketSetIpv6UnicastHopsResponder {
65089    type ControlHandle = StreamSocketControlHandle;
65090
65091    fn control_handle(&self) -> &StreamSocketControlHandle {
65092        &self.control_handle
65093    }
65094
65095    fn drop_without_shutdown(mut self) {
65096        // Safety: drops once, never accessed again due to mem::forget
65097        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65098        // Prevent Drop from running (which would shut down the channel)
65099        std::mem::forget(self);
65100    }
65101}
65102
65103impl StreamSocketSetIpv6UnicastHopsResponder {
65104    /// Sends a response to the FIDL transaction.
65105    ///
65106    /// Sets the channel to shutdown if an error occurs.
65107    pub fn send(
65108        self,
65109        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65110    ) -> Result<(), fidl::Error> {
65111        let _result = self.send_raw(result);
65112        if _result.is_err() {
65113            self.control_handle.shutdown();
65114        }
65115        self.drop_without_shutdown();
65116        _result
65117    }
65118
65119    /// Similar to "send" but does not shutdown the channel if an error occurs.
65120    pub fn send_no_shutdown_on_err(
65121        self,
65122        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65123    ) -> Result<(), fidl::Error> {
65124        let _result = self.send_raw(result);
65125        self.drop_without_shutdown();
65126        _result
65127    }
65128
65129    fn send_raw(
65130        &self,
65131        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65132    ) -> Result<(), fidl::Error> {
65133        self.control_handle.inner.send::<fidl::encoding::ResultType<
65134            fidl::encoding::EmptyStruct,
65135            fidl_fuchsia_posix::Errno,
65136        >>(
65137            result,
65138            self.tx_id,
65139            0x157d51e98f462859,
65140            fidl::encoding::DynamicFlags::empty(),
65141        )
65142    }
65143}
65144
65145#[must_use = "FIDL methods require a response to be sent"]
65146#[derive(Debug)]
65147pub struct StreamSocketGetIpv6UnicastHopsResponder {
65148    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65149    tx_id: u32,
65150}
65151
65152/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65153/// if the responder is dropped without sending a response, so that the client
65154/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65155impl std::ops::Drop for StreamSocketGetIpv6UnicastHopsResponder {
65156    fn drop(&mut self) {
65157        self.control_handle.shutdown();
65158        // Safety: drops once, never accessed again
65159        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65160    }
65161}
65162
65163impl fidl::endpoints::Responder for StreamSocketGetIpv6UnicastHopsResponder {
65164    type ControlHandle = StreamSocketControlHandle;
65165
65166    fn control_handle(&self) -> &StreamSocketControlHandle {
65167        &self.control_handle
65168    }
65169
65170    fn drop_without_shutdown(mut self) {
65171        // Safety: drops once, never accessed again due to mem::forget
65172        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65173        // Prevent Drop from running (which would shut down the channel)
65174        std::mem::forget(self);
65175    }
65176}
65177
65178impl StreamSocketGetIpv6UnicastHopsResponder {
65179    /// Sends a response to the FIDL transaction.
65180    ///
65181    /// Sets the channel to shutdown if an error occurs.
65182    pub fn send(
65183        self,
65184        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65185    ) -> Result<(), fidl::Error> {
65186        let _result = self.send_raw(result);
65187        if _result.is_err() {
65188            self.control_handle.shutdown();
65189        }
65190        self.drop_without_shutdown();
65191        _result
65192    }
65193
65194    /// Similar to "send" but does not shutdown the channel if an error occurs.
65195    pub fn send_no_shutdown_on_err(
65196        self,
65197        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65198    ) -> Result<(), fidl::Error> {
65199        let _result = self.send_raw(result);
65200        self.drop_without_shutdown();
65201        _result
65202    }
65203
65204    fn send_raw(
65205        &self,
65206        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65207    ) -> Result<(), fidl::Error> {
65208        self.control_handle.inner.send::<fidl::encoding::ResultType<
65209            BaseNetworkSocketGetIpv6UnicastHopsResponse,
65210            fidl_fuchsia_posix::Errno,
65211        >>(
65212            result.map(|value| (value,)),
65213            self.tx_id,
65214            0x21f4641cad8bd8d2,
65215            fidl::encoding::DynamicFlags::empty(),
65216        )
65217    }
65218}
65219
65220#[must_use = "FIDL methods require a response to be sent"]
65221#[derive(Debug)]
65222pub struct StreamSocketSetIpv6ReceiveHopLimitResponder {
65223    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65224    tx_id: u32,
65225}
65226
65227/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65228/// if the responder is dropped without sending a response, so that the client
65229/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65230impl std::ops::Drop for StreamSocketSetIpv6ReceiveHopLimitResponder {
65231    fn drop(&mut self) {
65232        self.control_handle.shutdown();
65233        // Safety: drops once, never accessed again
65234        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65235    }
65236}
65237
65238impl fidl::endpoints::Responder for StreamSocketSetIpv6ReceiveHopLimitResponder {
65239    type ControlHandle = StreamSocketControlHandle;
65240
65241    fn control_handle(&self) -> &StreamSocketControlHandle {
65242        &self.control_handle
65243    }
65244
65245    fn drop_without_shutdown(mut self) {
65246        // Safety: drops once, never accessed again due to mem::forget
65247        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65248        // Prevent Drop from running (which would shut down the channel)
65249        std::mem::forget(self);
65250    }
65251}
65252
65253impl StreamSocketSetIpv6ReceiveHopLimitResponder {
65254    /// Sends a response to the FIDL transaction.
65255    ///
65256    /// Sets the channel to shutdown if an error occurs.
65257    pub fn send(
65258        self,
65259        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65260    ) -> Result<(), fidl::Error> {
65261        let _result = self.send_raw(result);
65262        if _result.is_err() {
65263            self.control_handle.shutdown();
65264        }
65265        self.drop_without_shutdown();
65266        _result
65267    }
65268
65269    /// Similar to "send" but does not shutdown the channel if an error occurs.
65270    pub fn send_no_shutdown_on_err(
65271        self,
65272        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65273    ) -> Result<(), fidl::Error> {
65274        let _result = self.send_raw(result);
65275        self.drop_without_shutdown();
65276        _result
65277    }
65278
65279    fn send_raw(
65280        &self,
65281        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65282    ) -> Result<(), fidl::Error> {
65283        self.control_handle.inner.send::<fidl::encoding::ResultType<
65284            fidl::encoding::EmptyStruct,
65285            fidl_fuchsia_posix::Errno,
65286        >>(
65287            result,
65288            self.tx_id,
65289            0x5c24808ed2e84a1e,
65290            fidl::encoding::DynamicFlags::empty(),
65291        )
65292    }
65293}
65294
65295#[must_use = "FIDL methods require a response to be sent"]
65296#[derive(Debug)]
65297pub struct StreamSocketGetIpv6ReceiveHopLimitResponder {
65298    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65299    tx_id: u32,
65300}
65301
65302/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65303/// if the responder is dropped without sending a response, so that the client
65304/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65305impl std::ops::Drop for StreamSocketGetIpv6ReceiveHopLimitResponder {
65306    fn drop(&mut self) {
65307        self.control_handle.shutdown();
65308        // Safety: drops once, never accessed again
65309        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65310    }
65311}
65312
65313impl fidl::endpoints::Responder for StreamSocketGetIpv6ReceiveHopLimitResponder {
65314    type ControlHandle = StreamSocketControlHandle;
65315
65316    fn control_handle(&self) -> &StreamSocketControlHandle {
65317        &self.control_handle
65318    }
65319
65320    fn drop_without_shutdown(mut self) {
65321        // Safety: drops once, never accessed again due to mem::forget
65322        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65323        // Prevent Drop from running (which would shut down the channel)
65324        std::mem::forget(self);
65325    }
65326}
65327
65328impl StreamSocketGetIpv6ReceiveHopLimitResponder {
65329    /// Sends a response to the FIDL transaction.
65330    ///
65331    /// Sets the channel to shutdown if an error occurs.
65332    pub fn send(
65333        self,
65334        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65335    ) -> Result<(), fidl::Error> {
65336        let _result = self.send_raw(result);
65337        if _result.is_err() {
65338            self.control_handle.shutdown();
65339        }
65340        self.drop_without_shutdown();
65341        _result
65342    }
65343
65344    /// Similar to "send" but does not shutdown the channel if an error occurs.
65345    pub fn send_no_shutdown_on_err(
65346        self,
65347        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65348    ) -> Result<(), fidl::Error> {
65349        let _result = self.send_raw(result);
65350        self.drop_without_shutdown();
65351        _result
65352    }
65353
65354    fn send_raw(
65355        &self,
65356        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65357    ) -> Result<(), fidl::Error> {
65358        self.control_handle.inner.send::<fidl::encoding::ResultType<
65359            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
65360            fidl_fuchsia_posix::Errno,
65361        >>(
65362            result.map(|value| (value,)),
65363            self.tx_id,
65364            0x341e06689885b4c0,
65365            fidl::encoding::DynamicFlags::empty(),
65366        )
65367    }
65368}
65369
65370#[must_use = "FIDL methods require a response to be sent"]
65371#[derive(Debug)]
65372pub struct StreamSocketSetIpv6MulticastHopsResponder {
65373    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65374    tx_id: u32,
65375}
65376
65377/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65378/// if the responder is dropped without sending a response, so that the client
65379/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65380impl std::ops::Drop for StreamSocketSetIpv6MulticastHopsResponder {
65381    fn drop(&mut self) {
65382        self.control_handle.shutdown();
65383        // Safety: drops once, never accessed again
65384        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65385    }
65386}
65387
65388impl fidl::endpoints::Responder for StreamSocketSetIpv6MulticastHopsResponder {
65389    type ControlHandle = StreamSocketControlHandle;
65390
65391    fn control_handle(&self) -> &StreamSocketControlHandle {
65392        &self.control_handle
65393    }
65394
65395    fn drop_without_shutdown(mut self) {
65396        // Safety: drops once, never accessed again due to mem::forget
65397        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65398        // Prevent Drop from running (which would shut down the channel)
65399        std::mem::forget(self);
65400    }
65401}
65402
65403impl StreamSocketSetIpv6MulticastHopsResponder {
65404    /// Sends a response to the FIDL transaction.
65405    ///
65406    /// Sets the channel to shutdown if an error occurs.
65407    pub fn send(
65408        self,
65409        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65410    ) -> Result<(), fidl::Error> {
65411        let _result = self.send_raw(result);
65412        if _result.is_err() {
65413            self.control_handle.shutdown();
65414        }
65415        self.drop_without_shutdown();
65416        _result
65417    }
65418
65419    /// Similar to "send" but does not shutdown the channel if an error occurs.
65420    pub fn send_no_shutdown_on_err(
65421        self,
65422        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65423    ) -> Result<(), fidl::Error> {
65424        let _result = self.send_raw(result);
65425        self.drop_without_shutdown();
65426        _result
65427    }
65428
65429    fn send_raw(
65430        &self,
65431        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65432    ) -> Result<(), fidl::Error> {
65433        self.control_handle.inner.send::<fidl::encoding::ResultType<
65434            fidl::encoding::EmptyStruct,
65435            fidl_fuchsia_posix::Errno,
65436        >>(
65437            result,
65438            self.tx_id,
65439            0x25b9cd4d181f82c1,
65440            fidl::encoding::DynamicFlags::empty(),
65441        )
65442    }
65443}
65444
65445#[must_use = "FIDL methods require a response to be sent"]
65446#[derive(Debug)]
65447pub struct StreamSocketGetIpv6MulticastHopsResponder {
65448    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65449    tx_id: u32,
65450}
65451
65452/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65453/// if the responder is dropped without sending a response, so that the client
65454/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65455impl std::ops::Drop for StreamSocketGetIpv6MulticastHopsResponder {
65456    fn drop(&mut self) {
65457        self.control_handle.shutdown();
65458        // Safety: drops once, never accessed again
65459        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65460    }
65461}
65462
65463impl fidl::endpoints::Responder for StreamSocketGetIpv6MulticastHopsResponder {
65464    type ControlHandle = StreamSocketControlHandle;
65465
65466    fn control_handle(&self) -> &StreamSocketControlHandle {
65467        &self.control_handle
65468    }
65469
65470    fn drop_without_shutdown(mut self) {
65471        // Safety: drops once, never accessed again due to mem::forget
65472        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65473        // Prevent Drop from running (which would shut down the channel)
65474        std::mem::forget(self);
65475    }
65476}
65477
65478impl StreamSocketGetIpv6MulticastHopsResponder {
65479    /// Sends a response to the FIDL transaction.
65480    ///
65481    /// Sets the channel to shutdown if an error occurs.
65482    pub fn send(
65483        self,
65484        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65485    ) -> Result<(), fidl::Error> {
65486        let _result = self.send_raw(result);
65487        if _result.is_err() {
65488            self.control_handle.shutdown();
65489        }
65490        self.drop_without_shutdown();
65491        _result
65492    }
65493
65494    /// Similar to "send" but does not shutdown the channel if an error occurs.
65495    pub fn send_no_shutdown_on_err(
65496        self,
65497        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65498    ) -> Result<(), fidl::Error> {
65499        let _result = self.send_raw(result);
65500        self.drop_without_shutdown();
65501        _result
65502    }
65503
65504    fn send_raw(
65505        &self,
65506        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65507    ) -> Result<(), fidl::Error> {
65508        self.control_handle.inner.send::<fidl::encoding::ResultType<
65509            BaseNetworkSocketGetIpv6MulticastHopsResponse,
65510            fidl_fuchsia_posix::Errno,
65511        >>(
65512            result.map(|value| (value,)),
65513            self.tx_id,
65514            0x52916948a365012a,
65515            fidl::encoding::DynamicFlags::empty(),
65516        )
65517    }
65518}
65519
65520#[must_use = "FIDL methods require a response to be sent"]
65521#[derive(Debug)]
65522pub struct StreamSocketSetIpv6MulticastLoopbackResponder {
65523    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65524    tx_id: u32,
65525}
65526
65527/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65528/// if the responder is dropped without sending a response, so that the client
65529/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65530impl std::ops::Drop for StreamSocketSetIpv6MulticastLoopbackResponder {
65531    fn drop(&mut self) {
65532        self.control_handle.shutdown();
65533        // Safety: drops once, never accessed again
65534        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65535    }
65536}
65537
65538impl fidl::endpoints::Responder for StreamSocketSetIpv6MulticastLoopbackResponder {
65539    type ControlHandle = StreamSocketControlHandle;
65540
65541    fn control_handle(&self) -> &StreamSocketControlHandle {
65542        &self.control_handle
65543    }
65544
65545    fn drop_without_shutdown(mut self) {
65546        // Safety: drops once, never accessed again due to mem::forget
65547        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65548        // Prevent Drop from running (which would shut down the channel)
65549        std::mem::forget(self);
65550    }
65551}
65552
65553impl StreamSocketSetIpv6MulticastLoopbackResponder {
65554    /// Sends a response to the FIDL transaction.
65555    ///
65556    /// Sets the channel to shutdown if an error occurs.
65557    pub fn send(
65558        self,
65559        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65560    ) -> Result<(), fidl::Error> {
65561        let _result = self.send_raw(result);
65562        if _result.is_err() {
65563            self.control_handle.shutdown();
65564        }
65565        self.drop_without_shutdown();
65566        _result
65567    }
65568
65569    /// Similar to "send" but does not shutdown the channel if an error occurs.
65570    pub fn send_no_shutdown_on_err(
65571        self,
65572        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65573    ) -> Result<(), fidl::Error> {
65574        let _result = self.send_raw(result);
65575        self.drop_without_shutdown();
65576        _result
65577    }
65578
65579    fn send_raw(
65580        &self,
65581        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65582    ) -> Result<(), fidl::Error> {
65583        self.control_handle.inner.send::<fidl::encoding::ResultType<
65584            fidl::encoding::EmptyStruct,
65585            fidl_fuchsia_posix::Errno,
65586        >>(
65587            result,
65588            self.tx_id,
65589            0x55701c409ff41b40,
65590            fidl::encoding::DynamicFlags::empty(),
65591        )
65592    }
65593}
65594
65595#[must_use = "FIDL methods require a response to be sent"]
65596#[derive(Debug)]
65597pub struct StreamSocketGetIpv6MulticastLoopbackResponder {
65598    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65599    tx_id: u32,
65600}
65601
65602/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65603/// if the responder is dropped without sending a response, so that the client
65604/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65605impl std::ops::Drop for StreamSocketGetIpv6MulticastLoopbackResponder {
65606    fn drop(&mut self) {
65607        self.control_handle.shutdown();
65608        // Safety: drops once, never accessed again
65609        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65610    }
65611}
65612
65613impl fidl::endpoints::Responder for StreamSocketGetIpv6MulticastLoopbackResponder {
65614    type ControlHandle = StreamSocketControlHandle;
65615
65616    fn control_handle(&self) -> &StreamSocketControlHandle {
65617        &self.control_handle
65618    }
65619
65620    fn drop_without_shutdown(mut self) {
65621        // Safety: drops once, never accessed again due to mem::forget
65622        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65623        // Prevent Drop from running (which would shut down the channel)
65624        std::mem::forget(self);
65625    }
65626}
65627
65628impl StreamSocketGetIpv6MulticastLoopbackResponder {
65629    /// Sends a response to the FIDL transaction.
65630    ///
65631    /// Sets the channel to shutdown if an error occurs.
65632    pub fn send(
65633        self,
65634        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65635    ) -> Result<(), fidl::Error> {
65636        let _result = self.send_raw(result);
65637        if _result.is_err() {
65638            self.control_handle.shutdown();
65639        }
65640        self.drop_without_shutdown();
65641        _result
65642    }
65643
65644    /// Similar to "send" but does not shutdown the channel if an error occurs.
65645    pub fn send_no_shutdown_on_err(
65646        self,
65647        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65648    ) -> Result<(), fidl::Error> {
65649        let _result = self.send_raw(result);
65650        self.drop_without_shutdown();
65651        _result
65652    }
65653
65654    fn send_raw(
65655        &self,
65656        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65657    ) -> Result<(), fidl::Error> {
65658        self.control_handle.inner.send::<fidl::encoding::ResultType<
65659            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
65660            fidl_fuchsia_posix::Errno,
65661        >>(
65662            result.map(|value| (value,)),
65663            self.tx_id,
65664            0x4415b701fde319c3,
65665            fidl::encoding::DynamicFlags::empty(),
65666        )
65667    }
65668}
65669
65670#[must_use = "FIDL methods require a response to be sent"]
65671#[derive(Debug)]
65672pub struct StreamSocketSetIpv6OnlyResponder {
65673    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65674    tx_id: u32,
65675}
65676
65677/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65678/// if the responder is dropped without sending a response, so that the client
65679/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65680impl std::ops::Drop for StreamSocketSetIpv6OnlyResponder {
65681    fn drop(&mut self) {
65682        self.control_handle.shutdown();
65683        // Safety: drops once, never accessed again
65684        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65685    }
65686}
65687
65688impl fidl::endpoints::Responder for StreamSocketSetIpv6OnlyResponder {
65689    type ControlHandle = StreamSocketControlHandle;
65690
65691    fn control_handle(&self) -> &StreamSocketControlHandle {
65692        &self.control_handle
65693    }
65694
65695    fn drop_without_shutdown(mut self) {
65696        // Safety: drops once, never accessed again due to mem::forget
65697        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65698        // Prevent Drop from running (which would shut down the channel)
65699        std::mem::forget(self);
65700    }
65701}
65702
65703impl StreamSocketSetIpv6OnlyResponder {
65704    /// Sends a response to the FIDL transaction.
65705    ///
65706    /// Sets the channel to shutdown if an error occurs.
65707    pub fn send(
65708        self,
65709        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65710    ) -> Result<(), fidl::Error> {
65711        let _result = self.send_raw(result);
65712        if _result.is_err() {
65713            self.control_handle.shutdown();
65714        }
65715        self.drop_without_shutdown();
65716        _result
65717    }
65718
65719    /// Similar to "send" but does not shutdown the channel if an error occurs.
65720    pub fn send_no_shutdown_on_err(
65721        self,
65722        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65723    ) -> Result<(), fidl::Error> {
65724        let _result = self.send_raw(result);
65725        self.drop_without_shutdown();
65726        _result
65727    }
65728
65729    fn send_raw(
65730        &self,
65731        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65732    ) -> Result<(), fidl::Error> {
65733        self.control_handle.inner.send::<fidl::encoding::ResultType<
65734            fidl::encoding::EmptyStruct,
65735            fidl_fuchsia_posix::Errno,
65736        >>(
65737            result,
65738            self.tx_id,
65739            0x4873f1364758cbba,
65740            fidl::encoding::DynamicFlags::empty(),
65741        )
65742    }
65743}
65744
65745#[must_use = "FIDL methods require a response to be sent"]
65746#[derive(Debug)]
65747pub struct StreamSocketGetIpv6OnlyResponder {
65748    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65749    tx_id: u32,
65750}
65751
65752/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65753/// if the responder is dropped without sending a response, so that the client
65754/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65755impl std::ops::Drop for StreamSocketGetIpv6OnlyResponder {
65756    fn drop(&mut self) {
65757        self.control_handle.shutdown();
65758        // Safety: drops once, never accessed again
65759        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65760    }
65761}
65762
65763impl fidl::endpoints::Responder for StreamSocketGetIpv6OnlyResponder {
65764    type ControlHandle = StreamSocketControlHandle;
65765
65766    fn control_handle(&self) -> &StreamSocketControlHandle {
65767        &self.control_handle
65768    }
65769
65770    fn drop_without_shutdown(mut self) {
65771        // Safety: drops once, never accessed again due to mem::forget
65772        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65773        // Prevent Drop from running (which would shut down the channel)
65774        std::mem::forget(self);
65775    }
65776}
65777
65778impl StreamSocketGetIpv6OnlyResponder {
65779    /// Sends a response to the FIDL transaction.
65780    ///
65781    /// Sets the channel to shutdown if an error occurs.
65782    pub fn send(
65783        self,
65784        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65785    ) -> Result<(), fidl::Error> {
65786        let _result = self.send_raw(result);
65787        if _result.is_err() {
65788            self.control_handle.shutdown();
65789        }
65790        self.drop_without_shutdown();
65791        _result
65792    }
65793
65794    /// Similar to "send" but does not shutdown the channel if an error occurs.
65795    pub fn send_no_shutdown_on_err(
65796        self,
65797        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65798    ) -> Result<(), fidl::Error> {
65799        let _result = self.send_raw(result);
65800        self.drop_without_shutdown();
65801        _result
65802    }
65803
65804    fn send_raw(
65805        &self,
65806        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65807    ) -> Result<(), fidl::Error> {
65808        self.control_handle.inner.send::<fidl::encoding::ResultType<
65809            BaseNetworkSocketGetIpv6OnlyResponse,
65810            fidl_fuchsia_posix::Errno,
65811        >>(
65812            result.map(|value| (value,)),
65813            self.tx_id,
65814            0x4aa3340a1a26b89c,
65815            fidl::encoding::DynamicFlags::empty(),
65816        )
65817    }
65818}
65819
65820#[must_use = "FIDL methods require a response to be sent"]
65821#[derive(Debug)]
65822pub struct StreamSocketSetIpv6ReceiveTrafficClassResponder {
65823    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65824    tx_id: u32,
65825}
65826
65827/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65828/// if the responder is dropped without sending a response, so that the client
65829/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65830impl std::ops::Drop for StreamSocketSetIpv6ReceiveTrafficClassResponder {
65831    fn drop(&mut self) {
65832        self.control_handle.shutdown();
65833        // Safety: drops once, never accessed again
65834        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65835    }
65836}
65837
65838impl fidl::endpoints::Responder for StreamSocketSetIpv6ReceiveTrafficClassResponder {
65839    type ControlHandle = StreamSocketControlHandle;
65840
65841    fn control_handle(&self) -> &StreamSocketControlHandle {
65842        &self.control_handle
65843    }
65844
65845    fn drop_without_shutdown(mut self) {
65846        // Safety: drops once, never accessed again due to mem::forget
65847        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65848        // Prevent Drop from running (which would shut down the channel)
65849        std::mem::forget(self);
65850    }
65851}
65852
65853impl StreamSocketSetIpv6ReceiveTrafficClassResponder {
65854    /// Sends a response to the FIDL transaction.
65855    ///
65856    /// Sets the channel to shutdown if an error occurs.
65857    pub fn send(
65858        self,
65859        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65860    ) -> Result<(), fidl::Error> {
65861        let _result = self.send_raw(result);
65862        if _result.is_err() {
65863            self.control_handle.shutdown();
65864        }
65865        self.drop_without_shutdown();
65866        _result
65867    }
65868
65869    /// Similar to "send" but does not shutdown the channel if an error occurs.
65870    pub fn send_no_shutdown_on_err(
65871        self,
65872        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65873    ) -> Result<(), fidl::Error> {
65874        let _result = self.send_raw(result);
65875        self.drop_without_shutdown();
65876        _result
65877    }
65878
65879    fn send_raw(
65880        &self,
65881        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65882    ) -> Result<(), fidl::Error> {
65883        self.control_handle.inner.send::<fidl::encoding::ResultType<
65884            fidl::encoding::EmptyStruct,
65885            fidl_fuchsia_posix::Errno,
65886        >>(
65887            result,
65888            self.tx_id,
65889            0x58f07c8788d099a0,
65890            fidl::encoding::DynamicFlags::empty(),
65891        )
65892    }
65893}
65894
65895#[must_use = "FIDL methods require a response to be sent"]
65896#[derive(Debug)]
65897pub struct StreamSocketGetIpv6ReceiveTrafficClassResponder {
65898    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65899    tx_id: u32,
65900}
65901
65902/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65903/// if the responder is dropped without sending a response, so that the client
65904/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65905impl std::ops::Drop for StreamSocketGetIpv6ReceiveTrafficClassResponder {
65906    fn drop(&mut self) {
65907        self.control_handle.shutdown();
65908        // Safety: drops once, never accessed again
65909        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65910    }
65911}
65912
65913impl fidl::endpoints::Responder for StreamSocketGetIpv6ReceiveTrafficClassResponder {
65914    type ControlHandle = StreamSocketControlHandle;
65915
65916    fn control_handle(&self) -> &StreamSocketControlHandle {
65917        &self.control_handle
65918    }
65919
65920    fn drop_without_shutdown(mut self) {
65921        // Safety: drops once, never accessed again due to mem::forget
65922        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65923        // Prevent Drop from running (which would shut down the channel)
65924        std::mem::forget(self);
65925    }
65926}
65927
65928impl StreamSocketGetIpv6ReceiveTrafficClassResponder {
65929    /// Sends a response to the FIDL transaction.
65930    ///
65931    /// Sets the channel to shutdown if an error occurs.
65932    pub fn send(
65933        self,
65934        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65935    ) -> Result<(), fidl::Error> {
65936        let _result = self.send_raw(result);
65937        if _result.is_err() {
65938            self.control_handle.shutdown();
65939        }
65940        self.drop_without_shutdown();
65941        _result
65942    }
65943
65944    /// Similar to "send" but does not shutdown the channel if an error occurs.
65945    pub fn send_no_shutdown_on_err(
65946        self,
65947        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65948    ) -> Result<(), fidl::Error> {
65949        let _result = self.send_raw(result);
65950        self.drop_without_shutdown();
65951        _result
65952    }
65953
65954    fn send_raw(
65955        &self,
65956        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65957    ) -> Result<(), fidl::Error> {
65958        self.control_handle.inner.send::<fidl::encoding::ResultType<
65959            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
65960            fidl_fuchsia_posix::Errno,
65961        >>(
65962            result.map(|value| (value,)),
65963            self.tx_id,
65964            0x2e334df1da553ffa,
65965            fidl::encoding::DynamicFlags::empty(),
65966        )
65967    }
65968}
65969
65970#[must_use = "FIDL methods require a response to be sent"]
65971#[derive(Debug)]
65972pub struct StreamSocketSetIpv6TrafficClassResponder {
65973    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65974    tx_id: u32,
65975}
65976
65977/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65978/// if the responder is dropped without sending a response, so that the client
65979/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65980impl std::ops::Drop for StreamSocketSetIpv6TrafficClassResponder {
65981    fn drop(&mut self) {
65982        self.control_handle.shutdown();
65983        // Safety: drops once, never accessed again
65984        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65985    }
65986}
65987
65988impl fidl::endpoints::Responder for StreamSocketSetIpv6TrafficClassResponder {
65989    type ControlHandle = StreamSocketControlHandle;
65990
65991    fn control_handle(&self) -> &StreamSocketControlHandle {
65992        &self.control_handle
65993    }
65994
65995    fn drop_without_shutdown(mut self) {
65996        // Safety: drops once, never accessed again due to mem::forget
65997        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65998        // Prevent Drop from running (which would shut down the channel)
65999        std::mem::forget(self);
66000    }
66001}
66002
66003impl StreamSocketSetIpv6TrafficClassResponder {
66004    /// Sends a response to the FIDL transaction.
66005    ///
66006    /// Sets the channel to shutdown if an error occurs.
66007    pub fn send(
66008        self,
66009        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66010    ) -> Result<(), fidl::Error> {
66011        let _result = self.send_raw(result);
66012        if _result.is_err() {
66013            self.control_handle.shutdown();
66014        }
66015        self.drop_without_shutdown();
66016        _result
66017    }
66018
66019    /// Similar to "send" but does not shutdown the channel if an error occurs.
66020    pub fn send_no_shutdown_on_err(
66021        self,
66022        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66023    ) -> Result<(), fidl::Error> {
66024        let _result = self.send_raw(result);
66025        self.drop_without_shutdown();
66026        _result
66027    }
66028
66029    fn send_raw(
66030        &self,
66031        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66032    ) -> Result<(), fidl::Error> {
66033        self.control_handle.inner.send::<fidl::encoding::ResultType<
66034            fidl::encoding::EmptyStruct,
66035            fidl_fuchsia_posix::Errno,
66036        >>(
66037            result,
66038            self.tx_id,
66039            0x6af077800c5a0b4f,
66040            fidl::encoding::DynamicFlags::empty(),
66041        )
66042    }
66043}
66044
66045#[must_use = "FIDL methods require a response to be sent"]
66046#[derive(Debug)]
66047pub struct StreamSocketGetIpv6TrafficClassResponder {
66048    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66049    tx_id: u32,
66050}
66051
66052/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66053/// if the responder is dropped without sending a response, so that the client
66054/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66055impl std::ops::Drop for StreamSocketGetIpv6TrafficClassResponder {
66056    fn drop(&mut self) {
66057        self.control_handle.shutdown();
66058        // Safety: drops once, never accessed again
66059        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66060    }
66061}
66062
66063impl fidl::endpoints::Responder for StreamSocketGetIpv6TrafficClassResponder {
66064    type ControlHandle = StreamSocketControlHandle;
66065
66066    fn control_handle(&self) -> &StreamSocketControlHandle {
66067        &self.control_handle
66068    }
66069
66070    fn drop_without_shutdown(mut self) {
66071        // Safety: drops once, never accessed again due to mem::forget
66072        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66073        // Prevent Drop from running (which would shut down the channel)
66074        std::mem::forget(self);
66075    }
66076}
66077
66078impl StreamSocketGetIpv6TrafficClassResponder {
66079    /// Sends a response to the FIDL transaction.
66080    ///
66081    /// Sets the channel to shutdown if an error occurs.
66082    pub fn send(
66083        self,
66084        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66085    ) -> Result<(), fidl::Error> {
66086        let _result = self.send_raw(result);
66087        if _result.is_err() {
66088            self.control_handle.shutdown();
66089        }
66090        self.drop_without_shutdown();
66091        _result
66092    }
66093
66094    /// Similar to "send" but does not shutdown the channel if an error occurs.
66095    pub fn send_no_shutdown_on_err(
66096        self,
66097        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66098    ) -> Result<(), fidl::Error> {
66099        let _result = self.send_raw(result);
66100        self.drop_without_shutdown();
66101        _result
66102    }
66103
66104    fn send_raw(
66105        &self,
66106        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66107    ) -> Result<(), fidl::Error> {
66108        self.control_handle.inner.send::<fidl::encoding::ResultType<
66109            BaseNetworkSocketGetIpv6TrafficClassResponse,
66110            fidl_fuchsia_posix::Errno,
66111        >>(
66112            result.map(|value| (value,)),
66113            self.tx_id,
66114            0x6baf6eed8fc2f04,
66115            fidl::encoding::DynamicFlags::empty(),
66116        )
66117    }
66118}
66119
66120#[must_use = "FIDL methods require a response to be sent"]
66121#[derive(Debug)]
66122pub struct StreamSocketSetIpv6ReceivePacketInfoResponder {
66123    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66124    tx_id: u32,
66125}
66126
66127/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66128/// if the responder is dropped without sending a response, so that the client
66129/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66130impl std::ops::Drop for StreamSocketSetIpv6ReceivePacketInfoResponder {
66131    fn drop(&mut self) {
66132        self.control_handle.shutdown();
66133        // Safety: drops once, never accessed again
66134        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66135    }
66136}
66137
66138impl fidl::endpoints::Responder for StreamSocketSetIpv6ReceivePacketInfoResponder {
66139    type ControlHandle = StreamSocketControlHandle;
66140
66141    fn control_handle(&self) -> &StreamSocketControlHandle {
66142        &self.control_handle
66143    }
66144
66145    fn drop_without_shutdown(mut self) {
66146        // Safety: drops once, never accessed again due to mem::forget
66147        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66148        // Prevent Drop from running (which would shut down the channel)
66149        std::mem::forget(self);
66150    }
66151}
66152
66153impl StreamSocketSetIpv6ReceivePacketInfoResponder {
66154    /// Sends a response to the FIDL transaction.
66155    ///
66156    /// Sets the channel to shutdown if an error occurs.
66157    pub fn send(
66158        self,
66159        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66160    ) -> Result<(), fidl::Error> {
66161        let _result = self.send_raw(result);
66162        if _result.is_err() {
66163            self.control_handle.shutdown();
66164        }
66165        self.drop_without_shutdown();
66166        _result
66167    }
66168
66169    /// Similar to "send" but does not shutdown the channel if an error occurs.
66170    pub fn send_no_shutdown_on_err(
66171        self,
66172        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66173    ) -> Result<(), fidl::Error> {
66174        let _result = self.send_raw(result);
66175        self.drop_without_shutdown();
66176        _result
66177    }
66178
66179    fn send_raw(
66180        &self,
66181        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66182    ) -> Result<(), fidl::Error> {
66183        self.control_handle.inner.send::<fidl::encoding::ResultType<
66184            fidl::encoding::EmptyStruct,
66185            fidl_fuchsia_posix::Errno,
66186        >>(
66187            result,
66188            self.tx_id,
66189            0x19259775b1a92768,
66190            fidl::encoding::DynamicFlags::empty(),
66191        )
66192    }
66193}
66194
66195#[must_use = "FIDL methods require a response to be sent"]
66196#[derive(Debug)]
66197pub struct StreamSocketGetIpv6ReceivePacketInfoResponder {
66198    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66199    tx_id: u32,
66200}
66201
66202/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66203/// if the responder is dropped without sending a response, so that the client
66204/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66205impl std::ops::Drop for StreamSocketGetIpv6ReceivePacketInfoResponder {
66206    fn drop(&mut self) {
66207        self.control_handle.shutdown();
66208        // Safety: drops once, never accessed again
66209        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66210    }
66211}
66212
66213impl fidl::endpoints::Responder for StreamSocketGetIpv6ReceivePacketInfoResponder {
66214    type ControlHandle = StreamSocketControlHandle;
66215
66216    fn control_handle(&self) -> &StreamSocketControlHandle {
66217        &self.control_handle
66218    }
66219
66220    fn drop_without_shutdown(mut self) {
66221        // Safety: drops once, never accessed again due to mem::forget
66222        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66223        // Prevent Drop from running (which would shut down the channel)
66224        std::mem::forget(self);
66225    }
66226}
66227
66228impl StreamSocketGetIpv6ReceivePacketInfoResponder {
66229    /// Sends a response to the FIDL transaction.
66230    ///
66231    /// Sets the channel to shutdown if an error occurs.
66232    pub fn send(
66233        self,
66234        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66235    ) -> Result<(), fidl::Error> {
66236        let _result = self.send_raw(result);
66237        if _result.is_err() {
66238            self.control_handle.shutdown();
66239        }
66240        self.drop_without_shutdown();
66241        _result
66242    }
66243
66244    /// Similar to "send" but does not shutdown the channel if an error occurs.
66245    pub fn send_no_shutdown_on_err(
66246        self,
66247        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66248    ) -> Result<(), fidl::Error> {
66249        let _result = self.send_raw(result);
66250        self.drop_without_shutdown();
66251        _result
66252    }
66253
66254    fn send_raw(
66255        &self,
66256        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66257    ) -> Result<(), fidl::Error> {
66258        self.control_handle.inner.send::<fidl::encoding::ResultType<
66259            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
66260            fidl_fuchsia_posix::Errno,
66261        >>(
66262            result.map(|value| (value,)),
66263            self.tx_id,
66264            0x7acd4a2775baec75,
66265            fidl::encoding::DynamicFlags::empty(),
66266        )
66267    }
66268}
66269
66270#[must_use = "FIDL methods require a response to be sent"]
66271#[derive(Debug)]
66272pub struct StreamSocketGetOriginalDestinationResponder {
66273    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66274    tx_id: u32,
66275}
66276
66277/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66278/// if the responder is dropped without sending a response, so that the client
66279/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66280impl std::ops::Drop for StreamSocketGetOriginalDestinationResponder {
66281    fn drop(&mut self) {
66282        self.control_handle.shutdown();
66283        // Safety: drops once, never accessed again
66284        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66285    }
66286}
66287
66288impl fidl::endpoints::Responder for StreamSocketGetOriginalDestinationResponder {
66289    type ControlHandle = StreamSocketControlHandle;
66290
66291    fn control_handle(&self) -> &StreamSocketControlHandle {
66292        &self.control_handle
66293    }
66294
66295    fn drop_without_shutdown(mut self) {
66296        // Safety: drops once, never accessed again due to mem::forget
66297        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66298        // Prevent Drop from running (which would shut down the channel)
66299        std::mem::forget(self);
66300    }
66301}
66302
66303impl StreamSocketGetOriginalDestinationResponder {
66304    /// Sends a response to the FIDL transaction.
66305    ///
66306    /// Sets the channel to shutdown if an error occurs.
66307    pub fn send(
66308        self,
66309        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
66310    ) -> Result<(), fidl::Error> {
66311        let _result = self.send_raw(result);
66312        if _result.is_err() {
66313            self.control_handle.shutdown();
66314        }
66315        self.drop_without_shutdown();
66316        _result
66317    }
66318
66319    /// Similar to "send" but does not shutdown the channel if an error occurs.
66320    pub fn send_no_shutdown_on_err(
66321        self,
66322        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
66323    ) -> Result<(), fidl::Error> {
66324        let _result = self.send_raw(result);
66325        self.drop_without_shutdown();
66326        _result
66327    }
66328
66329    fn send_raw(
66330        &self,
66331        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
66332    ) -> Result<(), fidl::Error> {
66333        self.control_handle.inner.send::<fidl::encoding::ResultType<
66334            BaseNetworkSocketGetOriginalDestinationResponse,
66335            fidl_fuchsia_posix::Errno,
66336        >>(
66337            result.map(|value| (value,)),
66338            self.tx_id,
66339            0x38bf28f0dafdbac0,
66340            fidl::encoding::DynamicFlags::empty(),
66341        )
66342    }
66343}
66344
66345#[must_use = "FIDL methods require a response to be sent"]
66346#[derive(Debug)]
66347pub struct StreamSocketDescribeResponder {
66348    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66349    tx_id: u32,
66350}
66351
66352/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66353/// if the responder is dropped without sending a response, so that the client
66354/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66355impl std::ops::Drop for StreamSocketDescribeResponder {
66356    fn drop(&mut self) {
66357        self.control_handle.shutdown();
66358        // Safety: drops once, never accessed again
66359        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66360    }
66361}
66362
66363impl fidl::endpoints::Responder for StreamSocketDescribeResponder {
66364    type ControlHandle = StreamSocketControlHandle;
66365
66366    fn control_handle(&self) -> &StreamSocketControlHandle {
66367        &self.control_handle
66368    }
66369
66370    fn drop_without_shutdown(mut self) {
66371        // Safety: drops once, never accessed again due to mem::forget
66372        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66373        // Prevent Drop from running (which would shut down the channel)
66374        std::mem::forget(self);
66375    }
66376}
66377
66378impl StreamSocketDescribeResponder {
66379    /// Sends a response to the FIDL transaction.
66380    ///
66381    /// Sets the channel to shutdown if an error occurs.
66382    pub fn send(self, mut payload: StreamSocketDescribeResponse) -> Result<(), fidl::Error> {
66383        let _result = self.send_raw(payload);
66384        if _result.is_err() {
66385            self.control_handle.shutdown();
66386        }
66387        self.drop_without_shutdown();
66388        _result
66389    }
66390
66391    /// Similar to "send" but does not shutdown the channel if an error occurs.
66392    pub fn send_no_shutdown_on_err(
66393        self,
66394        mut payload: StreamSocketDescribeResponse,
66395    ) -> Result<(), fidl::Error> {
66396        let _result = self.send_raw(payload);
66397        self.drop_without_shutdown();
66398        _result
66399    }
66400
66401    fn send_raw(&self, mut payload: StreamSocketDescribeResponse) -> Result<(), fidl::Error> {
66402        self.control_handle.inner.send::<StreamSocketDescribeResponse>(
66403            &mut payload,
66404            self.tx_id,
66405            0x29e22969a7dadc32,
66406            fidl::encoding::DynamicFlags::empty(),
66407        )
66408    }
66409}
66410
66411#[must_use = "FIDL methods require a response to be sent"]
66412#[derive(Debug)]
66413pub struct StreamSocketListenResponder {
66414    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66415    tx_id: u32,
66416}
66417
66418/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66419/// if the responder is dropped without sending a response, so that the client
66420/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66421impl std::ops::Drop for StreamSocketListenResponder {
66422    fn drop(&mut self) {
66423        self.control_handle.shutdown();
66424        // Safety: drops once, never accessed again
66425        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66426    }
66427}
66428
66429impl fidl::endpoints::Responder for StreamSocketListenResponder {
66430    type ControlHandle = StreamSocketControlHandle;
66431
66432    fn control_handle(&self) -> &StreamSocketControlHandle {
66433        &self.control_handle
66434    }
66435
66436    fn drop_without_shutdown(mut self) {
66437        // Safety: drops once, never accessed again due to mem::forget
66438        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66439        // Prevent Drop from running (which would shut down the channel)
66440        std::mem::forget(self);
66441    }
66442}
66443
66444impl StreamSocketListenResponder {
66445    /// Sends a response to the FIDL transaction.
66446    ///
66447    /// Sets the channel to shutdown if an error occurs.
66448    pub fn send(
66449        self,
66450        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66451    ) -> Result<(), fidl::Error> {
66452        let _result = self.send_raw(result);
66453        if _result.is_err() {
66454            self.control_handle.shutdown();
66455        }
66456        self.drop_without_shutdown();
66457        _result
66458    }
66459
66460    /// Similar to "send" but does not shutdown the channel if an error occurs.
66461    pub fn send_no_shutdown_on_err(
66462        self,
66463        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66464    ) -> Result<(), fidl::Error> {
66465        let _result = self.send_raw(result);
66466        self.drop_without_shutdown();
66467        _result
66468    }
66469
66470    fn send_raw(
66471        &self,
66472        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66473    ) -> Result<(), fidl::Error> {
66474        self.control_handle.inner.send::<fidl::encoding::ResultType<
66475            fidl::encoding::EmptyStruct,
66476            fidl_fuchsia_posix::Errno,
66477        >>(
66478            result,
66479            self.tx_id,
66480            0x3d0a65ced3d10108,
66481            fidl::encoding::DynamicFlags::empty(),
66482        )
66483    }
66484}
66485
66486#[must_use = "FIDL methods require a response to be sent"]
66487#[derive(Debug)]
66488pub struct StreamSocketAcceptResponder {
66489    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66490    tx_id: u32,
66491}
66492
66493/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66494/// if the responder is dropped without sending a response, so that the client
66495/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66496impl std::ops::Drop for StreamSocketAcceptResponder {
66497    fn drop(&mut self) {
66498        self.control_handle.shutdown();
66499        // Safety: drops once, never accessed again
66500        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66501    }
66502}
66503
66504impl fidl::endpoints::Responder for StreamSocketAcceptResponder {
66505    type ControlHandle = StreamSocketControlHandle;
66506
66507    fn control_handle(&self) -> &StreamSocketControlHandle {
66508        &self.control_handle
66509    }
66510
66511    fn drop_without_shutdown(mut self) {
66512        // Safety: drops once, never accessed again due to mem::forget
66513        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66514        // Prevent Drop from running (which would shut down the channel)
66515        std::mem::forget(self);
66516    }
66517}
66518
66519impl StreamSocketAcceptResponder {
66520    /// Sends a response to the FIDL transaction.
66521    ///
66522    /// Sets the channel to shutdown if an error occurs.
66523    pub fn send(
66524        self,
66525        mut result: Result<
66526            (
66527                Option<&fidl_fuchsia_net::SocketAddress>,
66528                fidl::endpoints::ClientEnd<StreamSocketMarker>,
66529            ),
66530            fidl_fuchsia_posix::Errno,
66531        >,
66532    ) -> Result<(), fidl::Error> {
66533        let _result = self.send_raw(result);
66534        if _result.is_err() {
66535            self.control_handle.shutdown();
66536        }
66537        self.drop_without_shutdown();
66538        _result
66539    }
66540
66541    /// Similar to "send" but does not shutdown the channel if an error occurs.
66542    pub fn send_no_shutdown_on_err(
66543        self,
66544        mut result: Result<
66545            (
66546                Option<&fidl_fuchsia_net::SocketAddress>,
66547                fidl::endpoints::ClientEnd<StreamSocketMarker>,
66548            ),
66549            fidl_fuchsia_posix::Errno,
66550        >,
66551    ) -> Result<(), fidl::Error> {
66552        let _result = self.send_raw(result);
66553        self.drop_without_shutdown();
66554        _result
66555    }
66556
66557    fn send_raw(
66558        &self,
66559        mut result: Result<
66560            (
66561                Option<&fidl_fuchsia_net::SocketAddress>,
66562                fidl::endpoints::ClientEnd<StreamSocketMarker>,
66563            ),
66564            fidl_fuchsia_posix::Errno,
66565        >,
66566    ) -> Result<(), fidl::Error> {
66567        self.control_handle.inner.send::<fidl::encoding::ResultType<
66568            StreamSocketAcceptResponse,
66569            fidl_fuchsia_posix::Errno,
66570        >>(
66571            result,
66572            self.tx_id,
66573            0x5ab7ad620424c163,
66574            fidl::encoding::DynamicFlags::empty(),
66575        )
66576    }
66577}
66578
66579#[must_use = "FIDL methods require a response to be sent"]
66580#[derive(Debug)]
66581pub struct StreamSocketGetInfoResponder {
66582    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66583    tx_id: u32,
66584}
66585
66586/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66587/// if the responder is dropped without sending a response, so that the client
66588/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66589impl std::ops::Drop for StreamSocketGetInfoResponder {
66590    fn drop(&mut self) {
66591        self.control_handle.shutdown();
66592        // Safety: drops once, never accessed again
66593        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66594    }
66595}
66596
66597impl fidl::endpoints::Responder for StreamSocketGetInfoResponder {
66598    type ControlHandle = StreamSocketControlHandle;
66599
66600    fn control_handle(&self) -> &StreamSocketControlHandle {
66601        &self.control_handle
66602    }
66603
66604    fn drop_without_shutdown(mut self) {
66605        // Safety: drops once, never accessed again due to mem::forget
66606        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66607        // Prevent Drop from running (which would shut down the channel)
66608        std::mem::forget(self);
66609    }
66610}
66611
66612impl StreamSocketGetInfoResponder {
66613    /// Sends a response to the FIDL transaction.
66614    ///
66615    /// Sets the channel to shutdown if an error occurs.
66616    pub fn send(
66617        self,
66618        mut result: Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>,
66619    ) -> Result<(), fidl::Error> {
66620        let _result = self.send_raw(result);
66621        if _result.is_err() {
66622            self.control_handle.shutdown();
66623        }
66624        self.drop_without_shutdown();
66625        _result
66626    }
66627
66628    /// Similar to "send" but does not shutdown the channel if an error occurs.
66629    pub fn send_no_shutdown_on_err(
66630        self,
66631        mut result: Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>,
66632    ) -> Result<(), fidl::Error> {
66633        let _result = self.send_raw(result);
66634        self.drop_without_shutdown();
66635        _result
66636    }
66637
66638    fn send_raw(
66639        &self,
66640        mut result: Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>,
66641    ) -> Result<(), fidl::Error> {
66642        self.control_handle.inner.send::<fidl::encoding::ResultType<
66643            StreamSocketGetInfoResponse,
66644            fidl_fuchsia_posix::Errno,
66645        >>(
66646            result,
66647            self.tx_id,
66648            0x87cfa55d19f878f,
66649            fidl::encoding::DynamicFlags::empty(),
66650        )
66651    }
66652}
66653
66654#[must_use = "FIDL methods require a response to be sent"]
66655#[derive(Debug)]
66656pub struct StreamSocketSetTcpNoDelayResponder {
66657    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66658    tx_id: u32,
66659}
66660
66661/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66662/// if the responder is dropped without sending a response, so that the client
66663/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66664impl std::ops::Drop for StreamSocketSetTcpNoDelayResponder {
66665    fn drop(&mut self) {
66666        self.control_handle.shutdown();
66667        // Safety: drops once, never accessed again
66668        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66669    }
66670}
66671
66672impl fidl::endpoints::Responder for StreamSocketSetTcpNoDelayResponder {
66673    type ControlHandle = StreamSocketControlHandle;
66674
66675    fn control_handle(&self) -> &StreamSocketControlHandle {
66676        &self.control_handle
66677    }
66678
66679    fn drop_without_shutdown(mut self) {
66680        // Safety: drops once, never accessed again due to mem::forget
66681        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66682        // Prevent Drop from running (which would shut down the channel)
66683        std::mem::forget(self);
66684    }
66685}
66686
66687impl StreamSocketSetTcpNoDelayResponder {
66688    /// Sends a response to the FIDL transaction.
66689    ///
66690    /// Sets the channel to shutdown if an error occurs.
66691    pub fn send(
66692        self,
66693        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66694    ) -> Result<(), fidl::Error> {
66695        let _result = self.send_raw(result);
66696        if _result.is_err() {
66697            self.control_handle.shutdown();
66698        }
66699        self.drop_without_shutdown();
66700        _result
66701    }
66702
66703    /// Similar to "send" but does not shutdown the channel if an error occurs.
66704    pub fn send_no_shutdown_on_err(
66705        self,
66706        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66707    ) -> Result<(), fidl::Error> {
66708        let _result = self.send_raw(result);
66709        self.drop_without_shutdown();
66710        _result
66711    }
66712
66713    fn send_raw(
66714        &self,
66715        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66716    ) -> Result<(), fidl::Error> {
66717        self.control_handle.inner.send::<fidl::encoding::ResultType<
66718            fidl::encoding::EmptyStruct,
66719            fidl_fuchsia_posix::Errno,
66720        >>(
66721            result,
66722            self.tx_id,
66723            0x5a59b778f7333ada,
66724            fidl::encoding::DynamicFlags::empty(),
66725        )
66726    }
66727}
66728
66729#[must_use = "FIDL methods require a response to be sent"]
66730#[derive(Debug)]
66731pub struct StreamSocketGetTcpNoDelayResponder {
66732    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66733    tx_id: u32,
66734}
66735
66736/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66737/// if the responder is dropped without sending a response, so that the client
66738/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66739impl std::ops::Drop for StreamSocketGetTcpNoDelayResponder {
66740    fn drop(&mut self) {
66741        self.control_handle.shutdown();
66742        // Safety: drops once, never accessed again
66743        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66744    }
66745}
66746
66747impl fidl::endpoints::Responder for StreamSocketGetTcpNoDelayResponder {
66748    type ControlHandle = StreamSocketControlHandle;
66749
66750    fn control_handle(&self) -> &StreamSocketControlHandle {
66751        &self.control_handle
66752    }
66753
66754    fn drop_without_shutdown(mut self) {
66755        // Safety: drops once, never accessed again due to mem::forget
66756        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66757        // Prevent Drop from running (which would shut down the channel)
66758        std::mem::forget(self);
66759    }
66760}
66761
66762impl StreamSocketGetTcpNoDelayResponder {
66763    /// Sends a response to the FIDL transaction.
66764    ///
66765    /// Sets the channel to shutdown if an error occurs.
66766    pub fn send(
66767        self,
66768        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66769    ) -> Result<(), fidl::Error> {
66770        let _result = self.send_raw(result);
66771        if _result.is_err() {
66772            self.control_handle.shutdown();
66773        }
66774        self.drop_without_shutdown();
66775        _result
66776    }
66777
66778    /// Similar to "send" but does not shutdown the channel if an error occurs.
66779    pub fn send_no_shutdown_on_err(
66780        self,
66781        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66782    ) -> Result<(), fidl::Error> {
66783        let _result = self.send_raw(result);
66784        self.drop_without_shutdown();
66785        _result
66786    }
66787
66788    fn send_raw(
66789        &self,
66790        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66791    ) -> Result<(), fidl::Error> {
66792        self.control_handle.inner.send::<fidl::encoding::ResultType<
66793            StreamSocketGetTcpNoDelayResponse,
66794            fidl_fuchsia_posix::Errno,
66795        >>(
66796            result.map(|value| (value,)),
66797            self.tx_id,
66798            0xac219a3218b0799,
66799            fidl::encoding::DynamicFlags::empty(),
66800        )
66801    }
66802}
66803
66804#[must_use = "FIDL methods require a response to be sent"]
66805#[derive(Debug)]
66806pub struct StreamSocketSetTcpMaxSegmentResponder {
66807    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66808    tx_id: u32,
66809}
66810
66811/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66812/// if the responder is dropped without sending a response, so that the client
66813/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66814impl std::ops::Drop for StreamSocketSetTcpMaxSegmentResponder {
66815    fn drop(&mut self) {
66816        self.control_handle.shutdown();
66817        // Safety: drops once, never accessed again
66818        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66819    }
66820}
66821
66822impl fidl::endpoints::Responder for StreamSocketSetTcpMaxSegmentResponder {
66823    type ControlHandle = StreamSocketControlHandle;
66824
66825    fn control_handle(&self) -> &StreamSocketControlHandle {
66826        &self.control_handle
66827    }
66828
66829    fn drop_without_shutdown(mut self) {
66830        // Safety: drops once, never accessed again due to mem::forget
66831        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66832        // Prevent Drop from running (which would shut down the channel)
66833        std::mem::forget(self);
66834    }
66835}
66836
66837impl StreamSocketSetTcpMaxSegmentResponder {
66838    /// Sends a response to the FIDL transaction.
66839    ///
66840    /// Sets the channel to shutdown if an error occurs.
66841    pub fn send(
66842        self,
66843        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66844    ) -> Result<(), fidl::Error> {
66845        let _result = self.send_raw(result);
66846        if _result.is_err() {
66847            self.control_handle.shutdown();
66848        }
66849        self.drop_without_shutdown();
66850        _result
66851    }
66852
66853    /// Similar to "send" but does not shutdown the channel if an error occurs.
66854    pub fn send_no_shutdown_on_err(
66855        self,
66856        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66857    ) -> Result<(), fidl::Error> {
66858        let _result = self.send_raw(result);
66859        self.drop_without_shutdown();
66860        _result
66861    }
66862
66863    fn send_raw(
66864        &self,
66865        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66866    ) -> Result<(), fidl::Error> {
66867        self.control_handle.inner.send::<fidl::encoding::ResultType<
66868            fidl::encoding::EmptyStruct,
66869            fidl_fuchsia_posix::Errno,
66870        >>(
66871            result,
66872            self.tx_id,
66873            0xb3d30c498266d18,
66874            fidl::encoding::DynamicFlags::empty(),
66875        )
66876    }
66877}
66878
66879#[must_use = "FIDL methods require a response to be sent"]
66880#[derive(Debug)]
66881pub struct StreamSocketGetTcpMaxSegmentResponder {
66882    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66883    tx_id: u32,
66884}
66885
66886/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66887/// if the responder is dropped without sending a response, so that the client
66888/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66889impl std::ops::Drop for StreamSocketGetTcpMaxSegmentResponder {
66890    fn drop(&mut self) {
66891        self.control_handle.shutdown();
66892        // Safety: drops once, never accessed again
66893        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66894    }
66895}
66896
66897impl fidl::endpoints::Responder for StreamSocketGetTcpMaxSegmentResponder {
66898    type ControlHandle = StreamSocketControlHandle;
66899
66900    fn control_handle(&self) -> &StreamSocketControlHandle {
66901        &self.control_handle
66902    }
66903
66904    fn drop_without_shutdown(mut self) {
66905        // Safety: drops once, never accessed again due to mem::forget
66906        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66907        // Prevent Drop from running (which would shut down the channel)
66908        std::mem::forget(self);
66909    }
66910}
66911
66912impl StreamSocketGetTcpMaxSegmentResponder {
66913    /// Sends a response to the FIDL transaction.
66914    ///
66915    /// Sets the channel to shutdown if an error occurs.
66916    pub fn send(
66917        self,
66918        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
66919    ) -> Result<(), fidl::Error> {
66920        let _result = self.send_raw(result);
66921        if _result.is_err() {
66922            self.control_handle.shutdown();
66923        }
66924        self.drop_without_shutdown();
66925        _result
66926    }
66927
66928    /// Similar to "send" but does not shutdown the channel if an error occurs.
66929    pub fn send_no_shutdown_on_err(
66930        self,
66931        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
66932    ) -> Result<(), fidl::Error> {
66933        let _result = self.send_raw(result);
66934        self.drop_without_shutdown();
66935        _result
66936    }
66937
66938    fn send_raw(
66939        &self,
66940        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
66941    ) -> Result<(), fidl::Error> {
66942        self.control_handle.inner.send::<fidl::encoding::ResultType<
66943            StreamSocketGetTcpMaxSegmentResponse,
66944            fidl_fuchsia_posix::Errno,
66945        >>(
66946            result.map(|value_bytes| (value_bytes,)),
66947            self.tx_id,
66948            0x637404d1b4b9982c,
66949            fidl::encoding::DynamicFlags::empty(),
66950        )
66951    }
66952}
66953
66954#[must_use = "FIDL methods require a response to be sent"]
66955#[derive(Debug)]
66956pub struct StreamSocketSetTcpCorkResponder {
66957    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66958    tx_id: u32,
66959}
66960
66961/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66962/// if the responder is dropped without sending a response, so that the client
66963/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66964impl std::ops::Drop for StreamSocketSetTcpCorkResponder {
66965    fn drop(&mut self) {
66966        self.control_handle.shutdown();
66967        // Safety: drops once, never accessed again
66968        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66969    }
66970}
66971
66972impl fidl::endpoints::Responder for StreamSocketSetTcpCorkResponder {
66973    type ControlHandle = StreamSocketControlHandle;
66974
66975    fn control_handle(&self) -> &StreamSocketControlHandle {
66976        &self.control_handle
66977    }
66978
66979    fn drop_without_shutdown(mut self) {
66980        // Safety: drops once, never accessed again due to mem::forget
66981        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66982        // Prevent Drop from running (which would shut down the channel)
66983        std::mem::forget(self);
66984    }
66985}
66986
66987impl StreamSocketSetTcpCorkResponder {
66988    /// Sends a response to the FIDL transaction.
66989    ///
66990    /// Sets the channel to shutdown if an error occurs.
66991    pub fn send(
66992        self,
66993        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66994    ) -> Result<(), fidl::Error> {
66995        let _result = self.send_raw(result);
66996        if _result.is_err() {
66997            self.control_handle.shutdown();
66998        }
66999        self.drop_without_shutdown();
67000        _result
67001    }
67002
67003    /// Similar to "send" but does not shutdown the channel if an error occurs.
67004    pub fn send_no_shutdown_on_err(
67005        self,
67006        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67007    ) -> Result<(), fidl::Error> {
67008        let _result = self.send_raw(result);
67009        self.drop_without_shutdown();
67010        _result
67011    }
67012
67013    fn send_raw(
67014        &self,
67015        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67016    ) -> Result<(), fidl::Error> {
67017        self.control_handle.inner.send::<fidl::encoding::ResultType<
67018            fidl::encoding::EmptyStruct,
67019            fidl_fuchsia_posix::Errno,
67020        >>(
67021            result,
67022            self.tx_id,
67023            0x62e26891541143a0,
67024            fidl::encoding::DynamicFlags::empty(),
67025        )
67026    }
67027}
67028
67029#[must_use = "FIDL methods require a response to be sent"]
67030#[derive(Debug)]
67031pub struct StreamSocketGetTcpCorkResponder {
67032    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67033    tx_id: u32,
67034}
67035
67036/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67037/// if the responder is dropped without sending a response, so that the client
67038/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67039impl std::ops::Drop for StreamSocketGetTcpCorkResponder {
67040    fn drop(&mut self) {
67041        self.control_handle.shutdown();
67042        // Safety: drops once, never accessed again
67043        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67044    }
67045}
67046
67047impl fidl::endpoints::Responder for StreamSocketGetTcpCorkResponder {
67048    type ControlHandle = StreamSocketControlHandle;
67049
67050    fn control_handle(&self) -> &StreamSocketControlHandle {
67051        &self.control_handle
67052    }
67053
67054    fn drop_without_shutdown(mut self) {
67055        // Safety: drops once, never accessed again due to mem::forget
67056        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67057        // Prevent Drop from running (which would shut down the channel)
67058        std::mem::forget(self);
67059    }
67060}
67061
67062impl StreamSocketGetTcpCorkResponder {
67063    /// Sends a response to the FIDL transaction.
67064    ///
67065    /// Sets the channel to shutdown if an error occurs.
67066    pub fn send(
67067        self,
67068        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67069    ) -> Result<(), fidl::Error> {
67070        let _result = self.send_raw(result);
67071        if _result.is_err() {
67072            self.control_handle.shutdown();
67073        }
67074        self.drop_without_shutdown();
67075        _result
67076    }
67077
67078    /// Similar to "send" but does not shutdown the channel if an error occurs.
67079    pub fn send_no_shutdown_on_err(
67080        self,
67081        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67082    ) -> Result<(), fidl::Error> {
67083        let _result = self.send_raw(result);
67084        self.drop_without_shutdown();
67085        _result
67086    }
67087
67088    fn send_raw(
67089        &self,
67090        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67091    ) -> Result<(), fidl::Error> {
67092        self.control_handle.inner.send::<fidl::encoding::ResultType<
67093            StreamSocketGetTcpCorkResponse,
67094            fidl_fuchsia_posix::Errno,
67095        >>(
67096            result.map(|value| (value,)),
67097            self.tx_id,
67098            0x435bb232e0e74f32,
67099            fidl::encoding::DynamicFlags::empty(),
67100        )
67101    }
67102}
67103
67104#[must_use = "FIDL methods require a response to be sent"]
67105#[derive(Debug)]
67106pub struct StreamSocketSetTcpKeepAliveIdleResponder {
67107    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67108    tx_id: u32,
67109}
67110
67111/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67112/// if the responder is dropped without sending a response, so that the client
67113/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67114impl std::ops::Drop for StreamSocketSetTcpKeepAliveIdleResponder {
67115    fn drop(&mut self) {
67116        self.control_handle.shutdown();
67117        // Safety: drops once, never accessed again
67118        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67119    }
67120}
67121
67122impl fidl::endpoints::Responder for StreamSocketSetTcpKeepAliveIdleResponder {
67123    type ControlHandle = StreamSocketControlHandle;
67124
67125    fn control_handle(&self) -> &StreamSocketControlHandle {
67126        &self.control_handle
67127    }
67128
67129    fn drop_without_shutdown(mut self) {
67130        // Safety: drops once, never accessed again due to mem::forget
67131        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67132        // Prevent Drop from running (which would shut down the channel)
67133        std::mem::forget(self);
67134    }
67135}
67136
67137impl StreamSocketSetTcpKeepAliveIdleResponder {
67138    /// Sends a response to the FIDL transaction.
67139    ///
67140    /// Sets the channel to shutdown if an error occurs.
67141    pub fn send(
67142        self,
67143        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67144    ) -> Result<(), fidl::Error> {
67145        let _result = self.send_raw(result);
67146        if _result.is_err() {
67147            self.control_handle.shutdown();
67148        }
67149        self.drop_without_shutdown();
67150        _result
67151    }
67152
67153    /// Similar to "send" but does not shutdown the channel if an error occurs.
67154    pub fn send_no_shutdown_on_err(
67155        self,
67156        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67157    ) -> Result<(), fidl::Error> {
67158        let _result = self.send_raw(result);
67159        self.drop_without_shutdown();
67160        _result
67161    }
67162
67163    fn send_raw(
67164        &self,
67165        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67166    ) -> Result<(), fidl::Error> {
67167        self.control_handle.inner.send::<fidl::encoding::ResultType<
67168            fidl::encoding::EmptyStruct,
67169            fidl_fuchsia_posix::Errno,
67170        >>(
67171            result,
67172            self.tx_id,
67173            0x196d053d8363c42,
67174            fidl::encoding::DynamicFlags::empty(),
67175        )
67176    }
67177}
67178
67179#[must_use = "FIDL methods require a response to be sent"]
67180#[derive(Debug)]
67181pub struct StreamSocketGetTcpKeepAliveIdleResponder {
67182    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67183    tx_id: u32,
67184}
67185
67186/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67187/// if the responder is dropped without sending a response, so that the client
67188/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67189impl std::ops::Drop for StreamSocketGetTcpKeepAliveIdleResponder {
67190    fn drop(&mut self) {
67191        self.control_handle.shutdown();
67192        // Safety: drops once, never accessed again
67193        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67194    }
67195}
67196
67197impl fidl::endpoints::Responder for StreamSocketGetTcpKeepAliveIdleResponder {
67198    type ControlHandle = StreamSocketControlHandle;
67199
67200    fn control_handle(&self) -> &StreamSocketControlHandle {
67201        &self.control_handle
67202    }
67203
67204    fn drop_without_shutdown(mut self) {
67205        // Safety: drops once, never accessed again due to mem::forget
67206        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67207        // Prevent Drop from running (which would shut down the channel)
67208        std::mem::forget(self);
67209    }
67210}
67211
67212impl StreamSocketGetTcpKeepAliveIdleResponder {
67213    /// Sends a response to the FIDL transaction.
67214    ///
67215    /// Sets the channel to shutdown if an error occurs.
67216    pub fn send(
67217        self,
67218        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67219    ) -> Result<(), fidl::Error> {
67220        let _result = self.send_raw(result);
67221        if _result.is_err() {
67222            self.control_handle.shutdown();
67223        }
67224        self.drop_without_shutdown();
67225        _result
67226    }
67227
67228    /// Similar to "send" but does not shutdown the channel if an error occurs.
67229    pub fn send_no_shutdown_on_err(
67230        self,
67231        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67232    ) -> Result<(), fidl::Error> {
67233        let _result = self.send_raw(result);
67234        self.drop_without_shutdown();
67235        _result
67236    }
67237
67238    fn send_raw(
67239        &self,
67240        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67241    ) -> Result<(), fidl::Error> {
67242        self.control_handle.inner.send::<fidl::encoding::ResultType<
67243            StreamSocketGetTcpKeepAliveIdleResponse,
67244            fidl_fuchsia_posix::Errno,
67245        >>(
67246            result.map(|value_secs| (value_secs,)),
67247            self.tx_id,
67248            0x35ec58564879dac,
67249            fidl::encoding::DynamicFlags::empty(),
67250        )
67251    }
67252}
67253
67254#[must_use = "FIDL methods require a response to be sent"]
67255#[derive(Debug)]
67256pub struct StreamSocketSetTcpKeepAliveIntervalResponder {
67257    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67258    tx_id: u32,
67259}
67260
67261/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67262/// if the responder is dropped without sending a response, so that the client
67263/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67264impl std::ops::Drop for StreamSocketSetTcpKeepAliveIntervalResponder {
67265    fn drop(&mut self) {
67266        self.control_handle.shutdown();
67267        // Safety: drops once, never accessed again
67268        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67269    }
67270}
67271
67272impl fidl::endpoints::Responder for StreamSocketSetTcpKeepAliveIntervalResponder {
67273    type ControlHandle = StreamSocketControlHandle;
67274
67275    fn control_handle(&self) -> &StreamSocketControlHandle {
67276        &self.control_handle
67277    }
67278
67279    fn drop_without_shutdown(mut self) {
67280        // Safety: drops once, never accessed again due to mem::forget
67281        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67282        // Prevent Drop from running (which would shut down the channel)
67283        std::mem::forget(self);
67284    }
67285}
67286
67287impl StreamSocketSetTcpKeepAliveIntervalResponder {
67288    /// Sends a response to the FIDL transaction.
67289    ///
67290    /// Sets the channel to shutdown if an error occurs.
67291    pub fn send(
67292        self,
67293        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67294    ) -> Result<(), fidl::Error> {
67295        let _result = self.send_raw(result);
67296        if _result.is_err() {
67297            self.control_handle.shutdown();
67298        }
67299        self.drop_without_shutdown();
67300        _result
67301    }
67302
67303    /// Similar to "send" but does not shutdown the channel if an error occurs.
67304    pub fn send_no_shutdown_on_err(
67305        self,
67306        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67307    ) -> Result<(), fidl::Error> {
67308        let _result = self.send_raw(result);
67309        self.drop_without_shutdown();
67310        _result
67311    }
67312
67313    fn send_raw(
67314        &self,
67315        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67316    ) -> Result<(), fidl::Error> {
67317        self.control_handle.inner.send::<fidl::encoding::ResultType<
67318            fidl::encoding::EmptyStruct,
67319            fidl_fuchsia_posix::Errno,
67320        >>(
67321            result,
67322            self.tx_id,
67323            0x485ffbc2da1243f2,
67324            fidl::encoding::DynamicFlags::empty(),
67325        )
67326    }
67327}
67328
67329#[must_use = "FIDL methods require a response to be sent"]
67330#[derive(Debug)]
67331pub struct StreamSocketGetTcpKeepAliveIntervalResponder {
67332    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67333    tx_id: u32,
67334}
67335
67336/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67337/// if the responder is dropped without sending a response, so that the client
67338/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67339impl std::ops::Drop for StreamSocketGetTcpKeepAliveIntervalResponder {
67340    fn drop(&mut self) {
67341        self.control_handle.shutdown();
67342        // Safety: drops once, never accessed again
67343        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67344    }
67345}
67346
67347impl fidl::endpoints::Responder for StreamSocketGetTcpKeepAliveIntervalResponder {
67348    type ControlHandle = StreamSocketControlHandle;
67349
67350    fn control_handle(&self) -> &StreamSocketControlHandle {
67351        &self.control_handle
67352    }
67353
67354    fn drop_without_shutdown(mut self) {
67355        // Safety: drops once, never accessed again due to mem::forget
67356        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67357        // Prevent Drop from running (which would shut down the channel)
67358        std::mem::forget(self);
67359    }
67360}
67361
67362impl StreamSocketGetTcpKeepAliveIntervalResponder {
67363    /// Sends a response to the FIDL transaction.
67364    ///
67365    /// Sets the channel to shutdown if an error occurs.
67366    pub fn send(
67367        self,
67368        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67369    ) -> Result<(), fidl::Error> {
67370        let _result = self.send_raw(result);
67371        if _result.is_err() {
67372            self.control_handle.shutdown();
67373        }
67374        self.drop_without_shutdown();
67375        _result
67376    }
67377
67378    /// Similar to "send" but does not shutdown the channel if an error occurs.
67379    pub fn send_no_shutdown_on_err(
67380        self,
67381        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67382    ) -> Result<(), fidl::Error> {
67383        let _result = self.send_raw(result);
67384        self.drop_without_shutdown();
67385        _result
67386    }
67387
67388    fn send_raw(
67389        &self,
67390        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67391    ) -> Result<(), fidl::Error> {
67392        self.control_handle.inner.send::<fidl::encoding::ResultType<
67393            StreamSocketGetTcpKeepAliveIntervalResponse,
67394            fidl_fuchsia_posix::Errno,
67395        >>(
67396            result.map(|value_secs| (value_secs,)),
67397            self.tx_id,
67398            0x264eaf46306b284,
67399            fidl::encoding::DynamicFlags::empty(),
67400        )
67401    }
67402}
67403
67404#[must_use = "FIDL methods require a response to be sent"]
67405#[derive(Debug)]
67406pub struct StreamSocketSetTcpKeepAliveCountResponder {
67407    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67408    tx_id: u32,
67409}
67410
67411/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67412/// if the responder is dropped without sending a response, so that the client
67413/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67414impl std::ops::Drop for StreamSocketSetTcpKeepAliveCountResponder {
67415    fn drop(&mut self) {
67416        self.control_handle.shutdown();
67417        // Safety: drops once, never accessed again
67418        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67419    }
67420}
67421
67422impl fidl::endpoints::Responder for StreamSocketSetTcpKeepAliveCountResponder {
67423    type ControlHandle = StreamSocketControlHandle;
67424
67425    fn control_handle(&self) -> &StreamSocketControlHandle {
67426        &self.control_handle
67427    }
67428
67429    fn drop_without_shutdown(mut self) {
67430        // Safety: drops once, never accessed again due to mem::forget
67431        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67432        // Prevent Drop from running (which would shut down the channel)
67433        std::mem::forget(self);
67434    }
67435}
67436
67437impl StreamSocketSetTcpKeepAliveCountResponder {
67438    /// Sends a response to the FIDL transaction.
67439    ///
67440    /// Sets the channel to shutdown if an error occurs.
67441    pub fn send(
67442        self,
67443        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67444    ) -> Result<(), fidl::Error> {
67445        let _result = self.send_raw(result);
67446        if _result.is_err() {
67447            self.control_handle.shutdown();
67448        }
67449        self.drop_without_shutdown();
67450        _result
67451    }
67452
67453    /// Similar to "send" but does not shutdown the channel if an error occurs.
67454    pub fn send_no_shutdown_on_err(
67455        self,
67456        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67457    ) -> Result<(), fidl::Error> {
67458        let _result = self.send_raw(result);
67459        self.drop_without_shutdown();
67460        _result
67461    }
67462
67463    fn send_raw(
67464        &self,
67465        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67466    ) -> Result<(), fidl::Error> {
67467        self.control_handle.inner.send::<fidl::encoding::ResultType<
67468            fidl::encoding::EmptyStruct,
67469            fidl_fuchsia_posix::Errno,
67470        >>(
67471            result,
67472            self.tx_id,
67473            0x2ab2e8c111708421,
67474            fidl::encoding::DynamicFlags::empty(),
67475        )
67476    }
67477}
67478
67479#[must_use = "FIDL methods require a response to be sent"]
67480#[derive(Debug)]
67481pub struct StreamSocketGetTcpKeepAliveCountResponder {
67482    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67483    tx_id: u32,
67484}
67485
67486/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67487/// if the responder is dropped without sending a response, so that the client
67488/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67489impl std::ops::Drop for StreamSocketGetTcpKeepAliveCountResponder {
67490    fn drop(&mut self) {
67491        self.control_handle.shutdown();
67492        // Safety: drops once, never accessed again
67493        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67494    }
67495}
67496
67497impl fidl::endpoints::Responder for StreamSocketGetTcpKeepAliveCountResponder {
67498    type ControlHandle = StreamSocketControlHandle;
67499
67500    fn control_handle(&self) -> &StreamSocketControlHandle {
67501        &self.control_handle
67502    }
67503
67504    fn drop_without_shutdown(mut self) {
67505        // Safety: drops once, never accessed again due to mem::forget
67506        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67507        // Prevent Drop from running (which would shut down the channel)
67508        std::mem::forget(self);
67509    }
67510}
67511
67512impl StreamSocketGetTcpKeepAliveCountResponder {
67513    /// Sends a response to the FIDL transaction.
67514    ///
67515    /// Sets the channel to shutdown if an error occurs.
67516    pub fn send(
67517        self,
67518        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67519    ) -> Result<(), fidl::Error> {
67520        let _result = self.send_raw(result);
67521        if _result.is_err() {
67522            self.control_handle.shutdown();
67523        }
67524        self.drop_without_shutdown();
67525        _result
67526    }
67527
67528    /// Similar to "send" but does not shutdown the channel if an error occurs.
67529    pub fn send_no_shutdown_on_err(
67530        self,
67531        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67532    ) -> Result<(), fidl::Error> {
67533        let _result = self.send_raw(result);
67534        self.drop_without_shutdown();
67535        _result
67536    }
67537
67538    fn send_raw(
67539        &self,
67540        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67541    ) -> Result<(), fidl::Error> {
67542        self.control_handle.inner.send::<fidl::encoding::ResultType<
67543            StreamSocketGetTcpKeepAliveCountResponse,
67544            fidl_fuchsia_posix::Errno,
67545        >>(
67546            result.map(|value| (value,)),
67547            self.tx_id,
67548            0x2f176ae271fe7a09,
67549            fidl::encoding::DynamicFlags::empty(),
67550        )
67551    }
67552}
67553
67554#[must_use = "FIDL methods require a response to be sent"]
67555#[derive(Debug)]
67556pub struct StreamSocketSetTcpSynCountResponder {
67557    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67558    tx_id: u32,
67559}
67560
67561/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67562/// if the responder is dropped without sending a response, so that the client
67563/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67564impl std::ops::Drop for StreamSocketSetTcpSynCountResponder {
67565    fn drop(&mut self) {
67566        self.control_handle.shutdown();
67567        // Safety: drops once, never accessed again
67568        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67569    }
67570}
67571
67572impl fidl::endpoints::Responder for StreamSocketSetTcpSynCountResponder {
67573    type ControlHandle = StreamSocketControlHandle;
67574
67575    fn control_handle(&self) -> &StreamSocketControlHandle {
67576        &self.control_handle
67577    }
67578
67579    fn drop_without_shutdown(mut self) {
67580        // Safety: drops once, never accessed again due to mem::forget
67581        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67582        // Prevent Drop from running (which would shut down the channel)
67583        std::mem::forget(self);
67584    }
67585}
67586
67587impl StreamSocketSetTcpSynCountResponder {
67588    /// Sends a response to the FIDL transaction.
67589    ///
67590    /// Sets the channel to shutdown if an error occurs.
67591    pub fn send(
67592        self,
67593        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67594    ) -> Result<(), fidl::Error> {
67595        let _result = self.send_raw(result);
67596        if _result.is_err() {
67597            self.control_handle.shutdown();
67598        }
67599        self.drop_without_shutdown();
67600        _result
67601    }
67602
67603    /// Similar to "send" but does not shutdown the channel if an error occurs.
67604    pub fn send_no_shutdown_on_err(
67605        self,
67606        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67607    ) -> Result<(), fidl::Error> {
67608        let _result = self.send_raw(result);
67609        self.drop_without_shutdown();
67610        _result
67611    }
67612
67613    fn send_raw(
67614        &self,
67615        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67616    ) -> Result<(), fidl::Error> {
67617        self.control_handle.inner.send::<fidl::encoding::ResultType<
67618            fidl::encoding::EmptyStruct,
67619            fidl_fuchsia_posix::Errno,
67620        >>(
67621            result,
67622            self.tx_id,
67623            0x4dcd6ab5573c1eb3,
67624            fidl::encoding::DynamicFlags::empty(),
67625        )
67626    }
67627}
67628
67629#[must_use = "FIDL methods require a response to be sent"]
67630#[derive(Debug)]
67631pub struct StreamSocketGetTcpSynCountResponder {
67632    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67633    tx_id: u32,
67634}
67635
67636/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67637/// if the responder is dropped without sending a response, so that the client
67638/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67639impl std::ops::Drop for StreamSocketGetTcpSynCountResponder {
67640    fn drop(&mut self) {
67641        self.control_handle.shutdown();
67642        // Safety: drops once, never accessed again
67643        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67644    }
67645}
67646
67647impl fidl::endpoints::Responder for StreamSocketGetTcpSynCountResponder {
67648    type ControlHandle = StreamSocketControlHandle;
67649
67650    fn control_handle(&self) -> &StreamSocketControlHandle {
67651        &self.control_handle
67652    }
67653
67654    fn drop_without_shutdown(mut self) {
67655        // Safety: drops once, never accessed again due to mem::forget
67656        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67657        // Prevent Drop from running (which would shut down the channel)
67658        std::mem::forget(self);
67659    }
67660}
67661
67662impl StreamSocketGetTcpSynCountResponder {
67663    /// Sends a response to the FIDL transaction.
67664    ///
67665    /// Sets the channel to shutdown if an error occurs.
67666    pub fn send(
67667        self,
67668        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67669    ) -> Result<(), fidl::Error> {
67670        let _result = self.send_raw(result);
67671        if _result.is_err() {
67672            self.control_handle.shutdown();
67673        }
67674        self.drop_without_shutdown();
67675        _result
67676    }
67677
67678    /// Similar to "send" but does not shutdown the channel if an error occurs.
67679    pub fn send_no_shutdown_on_err(
67680        self,
67681        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67682    ) -> Result<(), fidl::Error> {
67683        let _result = self.send_raw(result);
67684        self.drop_without_shutdown();
67685        _result
67686    }
67687
67688    fn send_raw(
67689        &self,
67690        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67691    ) -> Result<(), fidl::Error> {
67692        self.control_handle.inner.send::<fidl::encoding::ResultType<
67693            StreamSocketGetTcpSynCountResponse,
67694            fidl_fuchsia_posix::Errno,
67695        >>(
67696            result.map(|value| (value,)),
67697            self.tx_id,
67698            0x7d457cba8f5f3ee6,
67699            fidl::encoding::DynamicFlags::empty(),
67700        )
67701    }
67702}
67703
67704#[must_use = "FIDL methods require a response to be sent"]
67705#[derive(Debug)]
67706pub struct StreamSocketSetTcpLingerResponder {
67707    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67708    tx_id: u32,
67709}
67710
67711/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67712/// if the responder is dropped without sending a response, so that the client
67713/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67714impl std::ops::Drop for StreamSocketSetTcpLingerResponder {
67715    fn drop(&mut self) {
67716        self.control_handle.shutdown();
67717        // Safety: drops once, never accessed again
67718        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67719    }
67720}
67721
67722impl fidl::endpoints::Responder for StreamSocketSetTcpLingerResponder {
67723    type ControlHandle = StreamSocketControlHandle;
67724
67725    fn control_handle(&self) -> &StreamSocketControlHandle {
67726        &self.control_handle
67727    }
67728
67729    fn drop_without_shutdown(mut self) {
67730        // Safety: drops once, never accessed again due to mem::forget
67731        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67732        // Prevent Drop from running (which would shut down the channel)
67733        std::mem::forget(self);
67734    }
67735}
67736
67737impl StreamSocketSetTcpLingerResponder {
67738    /// Sends a response to the FIDL transaction.
67739    ///
67740    /// Sets the channel to shutdown if an error occurs.
67741    pub fn send(
67742        self,
67743        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67744    ) -> Result<(), fidl::Error> {
67745        let _result = self.send_raw(result);
67746        if _result.is_err() {
67747            self.control_handle.shutdown();
67748        }
67749        self.drop_without_shutdown();
67750        _result
67751    }
67752
67753    /// Similar to "send" but does not shutdown the channel if an error occurs.
67754    pub fn send_no_shutdown_on_err(
67755        self,
67756        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67757    ) -> Result<(), fidl::Error> {
67758        let _result = self.send_raw(result);
67759        self.drop_without_shutdown();
67760        _result
67761    }
67762
67763    fn send_raw(
67764        &self,
67765        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67766    ) -> Result<(), fidl::Error> {
67767        self.control_handle.inner.send::<fidl::encoding::ResultType<
67768            fidl::encoding::EmptyStruct,
67769            fidl_fuchsia_posix::Errno,
67770        >>(
67771            result,
67772            self.tx_id,
67773            0xd5cc1e8654d36e4,
67774            fidl::encoding::DynamicFlags::empty(),
67775        )
67776    }
67777}
67778
67779#[must_use = "FIDL methods require a response to be sent"]
67780#[derive(Debug)]
67781pub struct StreamSocketGetTcpLingerResponder {
67782    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67783    tx_id: u32,
67784}
67785
67786/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67787/// if the responder is dropped without sending a response, so that the client
67788/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67789impl std::ops::Drop for StreamSocketGetTcpLingerResponder {
67790    fn drop(&mut self) {
67791        self.control_handle.shutdown();
67792        // Safety: drops once, never accessed again
67793        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67794    }
67795}
67796
67797impl fidl::endpoints::Responder for StreamSocketGetTcpLingerResponder {
67798    type ControlHandle = StreamSocketControlHandle;
67799
67800    fn control_handle(&self) -> &StreamSocketControlHandle {
67801        &self.control_handle
67802    }
67803
67804    fn drop_without_shutdown(mut self) {
67805        // Safety: drops once, never accessed again due to mem::forget
67806        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67807        // Prevent Drop from running (which would shut down the channel)
67808        std::mem::forget(self);
67809    }
67810}
67811
67812impl StreamSocketGetTcpLingerResponder {
67813    /// Sends a response to the FIDL transaction.
67814    ///
67815    /// Sets the channel to shutdown if an error occurs.
67816    pub fn send(
67817        self,
67818        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
67819    ) -> Result<(), fidl::Error> {
67820        let _result = self.send_raw(result);
67821        if _result.is_err() {
67822            self.control_handle.shutdown();
67823        }
67824        self.drop_without_shutdown();
67825        _result
67826    }
67827
67828    /// Similar to "send" but does not shutdown the channel if an error occurs.
67829    pub fn send_no_shutdown_on_err(
67830        self,
67831        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
67832    ) -> Result<(), fidl::Error> {
67833        let _result = self.send_raw(result);
67834        self.drop_without_shutdown();
67835        _result
67836    }
67837
67838    fn send_raw(
67839        &self,
67840        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
67841    ) -> Result<(), fidl::Error> {
67842        self.control_handle.inner.send::<fidl::encoding::ResultType<
67843            StreamSocketGetTcpLingerResponse,
67844            fidl_fuchsia_posix::Errno,
67845        >>(
67846            result.map(|value_secs| (value_secs,)),
67847            self.tx_id,
67848            0xad870d311cf30eb,
67849            fidl::encoding::DynamicFlags::empty(),
67850        )
67851    }
67852}
67853
67854#[must_use = "FIDL methods require a response to be sent"]
67855#[derive(Debug)]
67856pub struct StreamSocketSetTcpDeferAcceptResponder {
67857    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67858    tx_id: u32,
67859}
67860
67861/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67862/// if the responder is dropped without sending a response, so that the client
67863/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67864impl std::ops::Drop for StreamSocketSetTcpDeferAcceptResponder {
67865    fn drop(&mut self) {
67866        self.control_handle.shutdown();
67867        // Safety: drops once, never accessed again
67868        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67869    }
67870}
67871
67872impl fidl::endpoints::Responder for StreamSocketSetTcpDeferAcceptResponder {
67873    type ControlHandle = StreamSocketControlHandle;
67874
67875    fn control_handle(&self) -> &StreamSocketControlHandle {
67876        &self.control_handle
67877    }
67878
67879    fn drop_without_shutdown(mut self) {
67880        // Safety: drops once, never accessed again due to mem::forget
67881        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67882        // Prevent Drop from running (which would shut down the channel)
67883        std::mem::forget(self);
67884    }
67885}
67886
67887impl StreamSocketSetTcpDeferAcceptResponder {
67888    /// Sends a response to the FIDL transaction.
67889    ///
67890    /// Sets the channel to shutdown if an error occurs.
67891    pub fn send(
67892        self,
67893        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67894    ) -> Result<(), fidl::Error> {
67895        let _result = self.send_raw(result);
67896        if _result.is_err() {
67897            self.control_handle.shutdown();
67898        }
67899        self.drop_without_shutdown();
67900        _result
67901    }
67902
67903    /// Similar to "send" but does not shutdown the channel if an error occurs.
67904    pub fn send_no_shutdown_on_err(
67905        self,
67906        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67907    ) -> Result<(), fidl::Error> {
67908        let _result = self.send_raw(result);
67909        self.drop_without_shutdown();
67910        _result
67911    }
67912
67913    fn send_raw(
67914        &self,
67915        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67916    ) -> Result<(), fidl::Error> {
67917        self.control_handle.inner.send::<fidl::encoding::ResultType<
67918            fidl::encoding::EmptyStruct,
67919            fidl_fuchsia_posix::Errno,
67920        >>(
67921            result,
67922            self.tx_id,
67923            0x15092f181e57c404,
67924            fidl::encoding::DynamicFlags::empty(),
67925        )
67926    }
67927}
67928
67929#[must_use = "FIDL methods require a response to be sent"]
67930#[derive(Debug)]
67931pub struct StreamSocketGetTcpDeferAcceptResponder {
67932    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67933    tx_id: u32,
67934}
67935
67936/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67937/// if the responder is dropped without sending a response, so that the client
67938/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67939impl std::ops::Drop for StreamSocketGetTcpDeferAcceptResponder {
67940    fn drop(&mut self) {
67941        self.control_handle.shutdown();
67942        // Safety: drops once, never accessed again
67943        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67944    }
67945}
67946
67947impl fidl::endpoints::Responder for StreamSocketGetTcpDeferAcceptResponder {
67948    type ControlHandle = StreamSocketControlHandle;
67949
67950    fn control_handle(&self) -> &StreamSocketControlHandle {
67951        &self.control_handle
67952    }
67953
67954    fn drop_without_shutdown(mut self) {
67955        // Safety: drops once, never accessed again due to mem::forget
67956        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67957        // Prevent Drop from running (which would shut down the channel)
67958        std::mem::forget(self);
67959    }
67960}
67961
67962impl StreamSocketGetTcpDeferAcceptResponder {
67963    /// Sends a response to the FIDL transaction.
67964    ///
67965    /// Sets the channel to shutdown if an error occurs.
67966    pub fn send(
67967        self,
67968        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67969    ) -> Result<(), fidl::Error> {
67970        let _result = self.send_raw(result);
67971        if _result.is_err() {
67972            self.control_handle.shutdown();
67973        }
67974        self.drop_without_shutdown();
67975        _result
67976    }
67977
67978    /// Similar to "send" but does not shutdown the channel if an error occurs.
67979    pub fn send_no_shutdown_on_err(
67980        self,
67981        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67982    ) -> Result<(), fidl::Error> {
67983        let _result = self.send_raw(result);
67984        self.drop_without_shutdown();
67985        _result
67986    }
67987
67988    fn send_raw(
67989        &self,
67990        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67991    ) -> Result<(), fidl::Error> {
67992        self.control_handle.inner.send::<fidl::encoding::ResultType<
67993            StreamSocketGetTcpDeferAcceptResponse,
67994            fidl_fuchsia_posix::Errno,
67995        >>(
67996            result.map(|value_secs| (value_secs,)),
67997            self.tx_id,
67998            0x64589790842cb7c6,
67999            fidl::encoding::DynamicFlags::empty(),
68000        )
68001    }
68002}
68003
68004#[must_use = "FIDL methods require a response to be sent"]
68005#[derive(Debug)]
68006pub struct StreamSocketSetTcpWindowClampResponder {
68007    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68008    tx_id: u32,
68009}
68010
68011/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68012/// if the responder is dropped without sending a response, so that the client
68013/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68014impl std::ops::Drop for StreamSocketSetTcpWindowClampResponder {
68015    fn drop(&mut self) {
68016        self.control_handle.shutdown();
68017        // Safety: drops once, never accessed again
68018        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68019    }
68020}
68021
68022impl fidl::endpoints::Responder for StreamSocketSetTcpWindowClampResponder {
68023    type ControlHandle = StreamSocketControlHandle;
68024
68025    fn control_handle(&self) -> &StreamSocketControlHandle {
68026        &self.control_handle
68027    }
68028
68029    fn drop_without_shutdown(mut self) {
68030        // Safety: drops once, never accessed again due to mem::forget
68031        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68032        // Prevent Drop from running (which would shut down the channel)
68033        std::mem::forget(self);
68034    }
68035}
68036
68037impl StreamSocketSetTcpWindowClampResponder {
68038    /// Sends a response to the FIDL transaction.
68039    ///
68040    /// Sets the channel to shutdown if an error occurs.
68041    pub fn send(
68042        self,
68043        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68044    ) -> Result<(), fidl::Error> {
68045        let _result = self.send_raw(result);
68046        if _result.is_err() {
68047            self.control_handle.shutdown();
68048        }
68049        self.drop_without_shutdown();
68050        _result
68051    }
68052
68053    /// Similar to "send" but does not shutdown the channel if an error occurs.
68054    pub fn send_no_shutdown_on_err(
68055        self,
68056        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68057    ) -> Result<(), fidl::Error> {
68058        let _result = self.send_raw(result);
68059        self.drop_without_shutdown();
68060        _result
68061    }
68062
68063    fn send_raw(
68064        &self,
68065        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68066    ) -> Result<(), fidl::Error> {
68067        self.control_handle.inner.send::<fidl::encoding::ResultType<
68068            fidl::encoding::EmptyStruct,
68069            fidl_fuchsia_posix::Errno,
68070        >>(
68071            result,
68072            self.tx_id,
68073            0x4a26ce07d847f1c6,
68074            fidl::encoding::DynamicFlags::empty(),
68075        )
68076    }
68077}
68078
68079#[must_use = "FIDL methods require a response to be sent"]
68080#[derive(Debug)]
68081pub struct StreamSocketGetTcpWindowClampResponder {
68082    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68083    tx_id: u32,
68084}
68085
68086/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68087/// if the responder is dropped without sending a response, so that the client
68088/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68089impl std::ops::Drop for StreamSocketGetTcpWindowClampResponder {
68090    fn drop(&mut self) {
68091        self.control_handle.shutdown();
68092        // Safety: drops once, never accessed again
68093        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68094    }
68095}
68096
68097impl fidl::endpoints::Responder for StreamSocketGetTcpWindowClampResponder {
68098    type ControlHandle = StreamSocketControlHandle;
68099
68100    fn control_handle(&self) -> &StreamSocketControlHandle {
68101        &self.control_handle
68102    }
68103
68104    fn drop_without_shutdown(mut self) {
68105        // Safety: drops once, never accessed again due to mem::forget
68106        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68107        // Prevent Drop from running (which would shut down the channel)
68108        std::mem::forget(self);
68109    }
68110}
68111
68112impl StreamSocketGetTcpWindowClampResponder {
68113    /// Sends a response to the FIDL transaction.
68114    ///
68115    /// Sets the channel to shutdown if an error occurs.
68116    pub fn send(
68117        self,
68118        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68119    ) -> Result<(), fidl::Error> {
68120        let _result = self.send_raw(result);
68121        if _result.is_err() {
68122            self.control_handle.shutdown();
68123        }
68124        self.drop_without_shutdown();
68125        _result
68126    }
68127
68128    /// Similar to "send" but does not shutdown the channel if an error occurs.
68129    pub fn send_no_shutdown_on_err(
68130        self,
68131        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68132    ) -> Result<(), fidl::Error> {
68133        let _result = self.send_raw(result);
68134        self.drop_without_shutdown();
68135        _result
68136    }
68137
68138    fn send_raw(
68139        &self,
68140        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68141    ) -> Result<(), fidl::Error> {
68142        self.control_handle.inner.send::<fidl::encoding::ResultType<
68143            StreamSocketGetTcpWindowClampResponse,
68144            fidl_fuchsia_posix::Errno,
68145        >>(
68146            result.map(|value| (value,)),
68147            self.tx_id,
68148            0x2df6b636bf0a6a4e,
68149            fidl::encoding::DynamicFlags::empty(),
68150        )
68151    }
68152}
68153
68154#[must_use = "FIDL methods require a response to be sent"]
68155#[derive(Debug)]
68156pub struct StreamSocketGetTcpInfoResponder {
68157    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68158    tx_id: u32,
68159}
68160
68161/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68162/// if the responder is dropped without sending a response, so that the client
68163/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68164impl std::ops::Drop for StreamSocketGetTcpInfoResponder {
68165    fn drop(&mut self) {
68166        self.control_handle.shutdown();
68167        // Safety: drops once, never accessed again
68168        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68169    }
68170}
68171
68172impl fidl::endpoints::Responder for StreamSocketGetTcpInfoResponder {
68173    type ControlHandle = StreamSocketControlHandle;
68174
68175    fn control_handle(&self) -> &StreamSocketControlHandle {
68176        &self.control_handle
68177    }
68178
68179    fn drop_without_shutdown(mut self) {
68180        // Safety: drops once, never accessed again due to mem::forget
68181        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68182        // Prevent Drop from running (which would shut down the channel)
68183        std::mem::forget(self);
68184    }
68185}
68186
68187impl StreamSocketGetTcpInfoResponder {
68188    /// Sends a response to the FIDL transaction.
68189    ///
68190    /// Sets the channel to shutdown if an error occurs.
68191    pub fn send(
68192        self,
68193        mut result: Result<&TcpInfo, fidl_fuchsia_posix::Errno>,
68194    ) -> Result<(), fidl::Error> {
68195        let _result = self.send_raw(result);
68196        if _result.is_err() {
68197            self.control_handle.shutdown();
68198        }
68199        self.drop_without_shutdown();
68200        _result
68201    }
68202
68203    /// Similar to "send" but does not shutdown the channel if an error occurs.
68204    pub fn send_no_shutdown_on_err(
68205        self,
68206        mut result: Result<&TcpInfo, fidl_fuchsia_posix::Errno>,
68207    ) -> Result<(), fidl::Error> {
68208        let _result = self.send_raw(result);
68209        self.drop_without_shutdown();
68210        _result
68211    }
68212
68213    fn send_raw(
68214        &self,
68215        mut result: Result<&TcpInfo, fidl_fuchsia_posix::Errno>,
68216    ) -> Result<(), fidl::Error> {
68217        self.control_handle.inner.send::<fidl::encoding::ResultType<
68218            StreamSocketGetTcpInfoResponse,
68219            fidl_fuchsia_posix::Errno,
68220        >>(
68221            result.map(|info| (info,)),
68222            self.tx_id,
68223            0x1ffb123d9f03ead2,
68224            fidl::encoding::DynamicFlags::empty(),
68225        )
68226    }
68227}
68228
68229#[must_use = "FIDL methods require a response to be sent"]
68230#[derive(Debug)]
68231pub struct StreamSocketSetTcpQuickAckResponder {
68232    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68233    tx_id: u32,
68234}
68235
68236/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68237/// if the responder is dropped without sending a response, so that the client
68238/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68239impl std::ops::Drop for StreamSocketSetTcpQuickAckResponder {
68240    fn drop(&mut self) {
68241        self.control_handle.shutdown();
68242        // Safety: drops once, never accessed again
68243        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68244    }
68245}
68246
68247impl fidl::endpoints::Responder for StreamSocketSetTcpQuickAckResponder {
68248    type ControlHandle = StreamSocketControlHandle;
68249
68250    fn control_handle(&self) -> &StreamSocketControlHandle {
68251        &self.control_handle
68252    }
68253
68254    fn drop_without_shutdown(mut self) {
68255        // Safety: drops once, never accessed again due to mem::forget
68256        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68257        // Prevent Drop from running (which would shut down the channel)
68258        std::mem::forget(self);
68259    }
68260}
68261
68262impl StreamSocketSetTcpQuickAckResponder {
68263    /// Sends a response to the FIDL transaction.
68264    ///
68265    /// Sets the channel to shutdown if an error occurs.
68266    pub fn send(
68267        self,
68268        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68269    ) -> Result<(), fidl::Error> {
68270        let _result = self.send_raw(result);
68271        if _result.is_err() {
68272            self.control_handle.shutdown();
68273        }
68274        self.drop_without_shutdown();
68275        _result
68276    }
68277
68278    /// Similar to "send" but does not shutdown the channel if an error occurs.
68279    pub fn send_no_shutdown_on_err(
68280        self,
68281        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68282    ) -> Result<(), fidl::Error> {
68283        let _result = self.send_raw(result);
68284        self.drop_without_shutdown();
68285        _result
68286    }
68287
68288    fn send_raw(
68289        &self,
68290        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68291    ) -> Result<(), fidl::Error> {
68292        self.control_handle.inner.send::<fidl::encoding::ResultType<
68293            fidl::encoding::EmptyStruct,
68294            fidl_fuchsia_posix::Errno,
68295        >>(
68296            result,
68297            self.tx_id,
68298            0x6fa811be8fde7457,
68299            fidl::encoding::DynamicFlags::empty(),
68300        )
68301    }
68302}
68303
68304#[must_use = "FIDL methods require a response to be sent"]
68305#[derive(Debug)]
68306pub struct StreamSocketGetTcpQuickAckResponder {
68307    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68308    tx_id: u32,
68309}
68310
68311/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68312/// if the responder is dropped without sending a response, so that the client
68313/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68314impl std::ops::Drop for StreamSocketGetTcpQuickAckResponder {
68315    fn drop(&mut self) {
68316        self.control_handle.shutdown();
68317        // Safety: drops once, never accessed again
68318        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68319    }
68320}
68321
68322impl fidl::endpoints::Responder for StreamSocketGetTcpQuickAckResponder {
68323    type ControlHandle = StreamSocketControlHandle;
68324
68325    fn control_handle(&self) -> &StreamSocketControlHandle {
68326        &self.control_handle
68327    }
68328
68329    fn drop_without_shutdown(mut self) {
68330        // Safety: drops once, never accessed again due to mem::forget
68331        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68332        // Prevent Drop from running (which would shut down the channel)
68333        std::mem::forget(self);
68334    }
68335}
68336
68337impl StreamSocketGetTcpQuickAckResponder {
68338    /// Sends a response to the FIDL transaction.
68339    ///
68340    /// Sets the channel to shutdown if an error occurs.
68341    pub fn send(
68342        self,
68343        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68344    ) -> Result<(), fidl::Error> {
68345        let _result = self.send_raw(result);
68346        if _result.is_err() {
68347            self.control_handle.shutdown();
68348        }
68349        self.drop_without_shutdown();
68350        _result
68351    }
68352
68353    /// Similar to "send" but does not shutdown the channel if an error occurs.
68354    pub fn send_no_shutdown_on_err(
68355        self,
68356        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68357    ) -> Result<(), fidl::Error> {
68358        let _result = self.send_raw(result);
68359        self.drop_without_shutdown();
68360        _result
68361    }
68362
68363    fn send_raw(
68364        &self,
68365        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68366    ) -> Result<(), fidl::Error> {
68367        self.control_handle.inner.send::<fidl::encoding::ResultType<
68368            StreamSocketGetTcpQuickAckResponse,
68369            fidl_fuchsia_posix::Errno,
68370        >>(
68371            result.map(|value| (value,)),
68372            self.tx_id,
68373            0x7356a949bef2df32,
68374            fidl::encoding::DynamicFlags::empty(),
68375        )
68376    }
68377}
68378
68379#[must_use = "FIDL methods require a response to be sent"]
68380#[derive(Debug)]
68381pub struct StreamSocketSetTcpCongestionResponder {
68382    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68383    tx_id: u32,
68384}
68385
68386/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68387/// if the responder is dropped without sending a response, so that the client
68388/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68389impl std::ops::Drop for StreamSocketSetTcpCongestionResponder {
68390    fn drop(&mut self) {
68391        self.control_handle.shutdown();
68392        // Safety: drops once, never accessed again
68393        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68394    }
68395}
68396
68397impl fidl::endpoints::Responder for StreamSocketSetTcpCongestionResponder {
68398    type ControlHandle = StreamSocketControlHandle;
68399
68400    fn control_handle(&self) -> &StreamSocketControlHandle {
68401        &self.control_handle
68402    }
68403
68404    fn drop_without_shutdown(mut self) {
68405        // Safety: drops once, never accessed again due to mem::forget
68406        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68407        // Prevent Drop from running (which would shut down the channel)
68408        std::mem::forget(self);
68409    }
68410}
68411
68412impl StreamSocketSetTcpCongestionResponder {
68413    /// Sends a response to the FIDL transaction.
68414    ///
68415    /// Sets the channel to shutdown if an error occurs.
68416    pub fn send(
68417        self,
68418        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68419    ) -> Result<(), fidl::Error> {
68420        let _result = self.send_raw(result);
68421        if _result.is_err() {
68422            self.control_handle.shutdown();
68423        }
68424        self.drop_without_shutdown();
68425        _result
68426    }
68427
68428    /// Similar to "send" but does not shutdown the channel if an error occurs.
68429    pub fn send_no_shutdown_on_err(
68430        self,
68431        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68432    ) -> Result<(), fidl::Error> {
68433        let _result = self.send_raw(result);
68434        self.drop_without_shutdown();
68435        _result
68436    }
68437
68438    fn send_raw(
68439        &self,
68440        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68441    ) -> Result<(), fidl::Error> {
68442        self.control_handle.inner.send::<fidl::encoding::ResultType<
68443            fidl::encoding::EmptyStruct,
68444            fidl_fuchsia_posix::Errno,
68445        >>(
68446            result,
68447            self.tx_id,
68448            0x7924c6eabde7819e,
68449            fidl::encoding::DynamicFlags::empty(),
68450        )
68451    }
68452}
68453
68454#[must_use = "FIDL methods require a response to be sent"]
68455#[derive(Debug)]
68456pub struct StreamSocketGetTcpCongestionResponder {
68457    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68458    tx_id: u32,
68459}
68460
68461/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68462/// if the responder is dropped without sending a response, so that the client
68463/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68464impl std::ops::Drop for StreamSocketGetTcpCongestionResponder {
68465    fn drop(&mut self) {
68466        self.control_handle.shutdown();
68467        // Safety: drops once, never accessed again
68468        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68469    }
68470}
68471
68472impl fidl::endpoints::Responder for StreamSocketGetTcpCongestionResponder {
68473    type ControlHandle = StreamSocketControlHandle;
68474
68475    fn control_handle(&self) -> &StreamSocketControlHandle {
68476        &self.control_handle
68477    }
68478
68479    fn drop_without_shutdown(mut self) {
68480        // Safety: drops once, never accessed again due to mem::forget
68481        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68482        // Prevent Drop from running (which would shut down the channel)
68483        std::mem::forget(self);
68484    }
68485}
68486
68487impl StreamSocketGetTcpCongestionResponder {
68488    /// Sends a response to the FIDL transaction.
68489    ///
68490    /// Sets the channel to shutdown if an error occurs.
68491    pub fn send(
68492        self,
68493        mut result: Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>,
68494    ) -> Result<(), fidl::Error> {
68495        let _result = self.send_raw(result);
68496        if _result.is_err() {
68497            self.control_handle.shutdown();
68498        }
68499        self.drop_without_shutdown();
68500        _result
68501    }
68502
68503    /// Similar to "send" but does not shutdown the channel if an error occurs.
68504    pub fn send_no_shutdown_on_err(
68505        self,
68506        mut result: Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>,
68507    ) -> Result<(), fidl::Error> {
68508        let _result = self.send_raw(result);
68509        self.drop_without_shutdown();
68510        _result
68511    }
68512
68513    fn send_raw(
68514        &self,
68515        mut result: Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>,
68516    ) -> Result<(), fidl::Error> {
68517        self.control_handle.inner.send::<fidl::encoding::ResultType<
68518            StreamSocketGetTcpCongestionResponse,
68519            fidl_fuchsia_posix::Errno,
68520        >>(
68521            result.map(|value| (value,)),
68522            self.tx_id,
68523            0x11e16397e1b72a47,
68524            fidl::encoding::DynamicFlags::empty(),
68525        )
68526    }
68527}
68528
68529#[must_use = "FIDL methods require a response to be sent"]
68530#[derive(Debug)]
68531pub struct StreamSocketSetTcpUserTimeoutResponder {
68532    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68533    tx_id: u32,
68534}
68535
68536/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68537/// if the responder is dropped without sending a response, so that the client
68538/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68539impl std::ops::Drop for StreamSocketSetTcpUserTimeoutResponder {
68540    fn drop(&mut self) {
68541        self.control_handle.shutdown();
68542        // Safety: drops once, never accessed again
68543        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68544    }
68545}
68546
68547impl fidl::endpoints::Responder for StreamSocketSetTcpUserTimeoutResponder {
68548    type ControlHandle = StreamSocketControlHandle;
68549
68550    fn control_handle(&self) -> &StreamSocketControlHandle {
68551        &self.control_handle
68552    }
68553
68554    fn drop_without_shutdown(mut self) {
68555        // Safety: drops once, never accessed again due to mem::forget
68556        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68557        // Prevent Drop from running (which would shut down the channel)
68558        std::mem::forget(self);
68559    }
68560}
68561
68562impl StreamSocketSetTcpUserTimeoutResponder {
68563    /// Sends a response to the FIDL transaction.
68564    ///
68565    /// Sets the channel to shutdown if an error occurs.
68566    pub fn send(
68567        self,
68568        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68569    ) -> Result<(), fidl::Error> {
68570        let _result = self.send_raw(result);
68571        if _result.is_err() {
68572            self.control_handle.shutdown();
68573        }
68574        self.drop_without_shutdown();
68575        _result
68576    }
68577
68578    /// Similar to "send" but does not shutdown the channel if an error occurs.
68579    pub fn send_no_shutdown_on_err(
68580        self,
68581        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68582    ) -> Result<(), fidl::Error> {
68583        let _result = self.send_raw(result);
68584        self.drop_without_shutdown();
68585        _result
68586    }
68587
68588    fn send_raw(
68589        &self,
68590        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68591    ) -> Result<(), fidl::Error> {
68592        self.control_handle.inner.send::<fidl::encoding::ResultType<
68593            fidl::encoding::EmptyStruct,
68594            fidl_fuchsia_posix::Errno,
68595        >>(
68596            result,
68597            self.tx_id,
68598            0x6b459e81c3741a60,
68599            fidl::encoding::DynamicFlags::empty(),
68600        )
68601    }
68602}
68603
68604#[must_use = "FIDL methods require a response to be sent"]
68605#[derive(Debug)]
68606pub struct StreamSocketGetTcpUserTimeoutResponder {
68607    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68608    tx_id: u32,
68609}
68610
68611/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68612/// if the responder is dropped without sending a response, so that the client
68613/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68614impl std::ops::Drop for StreamSocketGetTcpUserTimeoutResponder {
68615    fn drop(&mut self) {
68616        self.control_handle.shutdown();
68617        // Safety: drops once, never accessed again
68618        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68619    }
68620}
68621
68622impl fidl::endpoints::Responder for StreamSocketGetTcpUserTimeoutResponder {
68623    type ControlHandle = StreamSocketControlHandle;
68624
68625    fn control_handle(&self) -> &StreamSocketControlHandle {
68626        &self.control_handle
68627    }
68628
68629    fn drop_without_shutdown(mut self) {
68630        // Safety: drops once, never accessed again due to mem::forget
68631        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68632        // Prevent Drop from running (which would shut down the channel)
68633        std::mem::forget(self);
68634    }
68635}
68636
68637impl StreamSocketGetTcpUserTimeoutResponder {
68638    /// Sends a response to the FIDL transaction.
68639    ///
68640    /// Sets the channel to shutdown if an error occurs.
68641    pub fn send(
68642        self,
68643        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68644    ) -> Result<(), fidl::Error> {
68645        let _result = self.send_raw(result);
68646        if _result.is_err() {
68647            self.control_handle.shutdown();
68648        }
68649        self.drop_without_shutdown();
68650        _result
68651    }
68652
68653    /// Similar to "send" but does not shutdown the channel if an error occurs.
68654    pub fn send_no_shutdown_on_err(
68655        self,
68656        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68657    ) -> Result<(), fidl::Error> {
68658        let _result = self.send_raw(result);
68659        self.drop_without_shutdown();
68660        _result
68661    }
68662
68663    fn send_raw(
68664        &self,
68665        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68666    ) -> Result<(), fidl::Error> {
68667        self.control_handle.inner.send::<fidl::encoding::ResultType<
68668            StreamSocketGetTcpUserTimeoutResponse,
68669            fidl_fuchsia_posix::Errno,
68670        >>(
68671            result.map(|value_millis| (value_millis,)),
68672            self.tx_id,
68673            0x24bbd5858ad8c380,
68674            fidl::encoding::DynamicFlags::empty(),
68675        )
68676    }
68677}
68678
68679#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
68680pub struct SynchronousDatagramSocketMarker;
68681
68682impl fidl::endpoints::ProtocolMarker for SynchronousDatagramSocketMarker {
68683    type Proxy = SynchronousDatagramSocketProxy;
68684    type RequestStream = SynchronousDatagramSocketRequestStream;
68685    #[cfg(target_os = "fuchsia")]
68686    type SynchronousProxy = SynchronousDatagramSocketSynchronousProxy;
68687
68688    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.SynchronousDatagramSocket";
68689}
68690impl fidl::endpoints::DiscoverableProtocolMarker for SynchronousDatagramSocketMarker {}
68691pub type SynchronousDatagramSocketRecvMsgResult = Result<
68692    (Option<Box<fidl_fuchsia_net::SocketAddress>>, Vec<u8>, DatagramSocketRecvControlData, u32),
68693    fidl_fuchsia_posix::Errno,
68694>;
68695pub type SynchronousDatagramSocketSendMsgResult = Result<i64, fidl_fuchsia_posix::Errno>;
68696
68697pub trait SynchronousDatagramSocketProxyInterface: Send + Sync {
68698    fn r#clone(
68699        &self,
68700        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
68701    ) -> Result<(), fidl::Error>;
68702    type CloseResponseFut: std::future::Future<
68703            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
68704        > + Send;
68705    fn r#close(&self) -> Self::CloseResponseFut;
68706    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
68707    fn r#query(&self) -> Self::QueryResponseFut;
68708    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
68709        + Send;
68710    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
68711    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
68712        + Send;
68713    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
68714    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
68715        + Send;
68716    fn r#get_error(&self) -> Self::GetErrorResponseFut;
68717    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
68718        + Send;
68719    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
68720    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
68721        + Send;
68722    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
68723    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
68724        + Send;
68725    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
68726    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
68727        + Send;
68728    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
68729    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
68730        + Send;
68731    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
68732    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
68733        + Send;
68734    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
68735    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
68736        + Send;
68737    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
68738    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
68739        + Send;
68740    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
68741    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
68742        + Send;
68743    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
68744    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
68745        + Send;
68746    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
68747    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
68748        + Send;
68749    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
68750    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
68751        + Send;
68752    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
68753    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
68754        + Send;
68755    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
68756    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
68757        + Send;
68758    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
68759    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
68760        + Send;
68761    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
68762    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
68763        + Send;
68764    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
68765    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
68766        + Send;
68767    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
68768    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
68769        + Send;
68770    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
68771    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
68772        + Send;
68773    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
68774    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
68775        + Send;
68776    fn r#set_bind_to_interface_index(&self, value: u64)
68777    -> Self::SetBindToInterfaceIndexResponseFut;
68778    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
68779        + Send;
68780    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
68781    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
68782        + Send;
68783    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
68784    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
68785        + Send;
68786    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
68787    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
68788        + Send;
68789    fn r#set_mark(
68790        &self,
68791        domain: fidl_fuchsia_net::MarkDomain,
68792        mark: &OptionalUint32,
68793    ) -> Self::SetMarkResponseFut;
68794    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
68795        + Send;
68796    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
68797    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
68798        + Send;
68799    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
68800    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
68801        + Send;
68802    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
68803    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
68804        + Send;
68805    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
68806    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
68807        + Send;
68808    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
68809    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
68810        + Send;
68811    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
68812    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
68813        + Send;
68814    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
68815    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
68816        + Send;
68817    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
68818    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
68819        + Send;
68820    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
68821    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
68822        + Send;
68823    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
68824    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
68825        + Send;
68826    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
68827    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
68828        + Send;
68829    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
68830    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
68831        + Send;
68832    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
68833    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
68834        + Send;
68835    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
68836    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
68837            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
68838        > + Send;
68839    fn r#set_ip_receive_type_of_service(
68840        &self,
68841        value: bool,
68842    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
68843    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
68844            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
68845        > + Send;
68846    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
68847    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
68848        + Send;
68849    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
68850    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
68851        + Send;
68852    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
68853    type SetIpMulticastInterfaceResponseFut: std::future::Future<
68854            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
68855        > + Send;
68856    fn r#set_ip_multicast_interface(
68857        &self,
68858        iface: u64,
68859        address: &fidl_fuchsia_net::Ipv4Address,
68860    ) -> Self::SetIpMulticastInterfaceResponseFut;
68861    type GetIpMulticastInterfaceResponseFut: std::future::Future<
68862            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
68863        > + Send;
68864    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
68865    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
68866        + Send;
68867    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
68868    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
68869        + Send;
68870    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
68871    type SetIpMulticastLoopbackResponseFut: std::future::Future<
68872            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
68873        > + Send;
68874    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
68875    type GetIpMulticastLoopbackResponseFut: std::future::Future<
68876            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
68877        > + Send;
68878    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
68879    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
68880        + Send;
68881    fn r#add_ip_membership(
68882        &self,
68883        membership: &IpMulticastMembership,
68884    ) -> Self::AddIpMembershipResponseFut;
68885    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
68886        + Send;
68887    fn r#drop_ip_membership(
68888        &self,
68889        membership: &IpMulticastMembership,
68890    ) -> Self::DropIpMembershipResponseFut;
68891    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
68892        + Send;
68893    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
68894    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
68895        + Send;
68896    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
68897    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
68898            Output = Result<
68899                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
68900                fidl::Error,
68901            >,
68902        > + Send;
68903    fn r#set_ip_receive_original_destination_address(
68904        &self,
68905        value: bool,
68906    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
68907    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
68908            Output = Result<
68909                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
68910                fidl::Error,
68911            >,
68912        > + Send;
68913    fn r#get_ip_receive_original_destination_address(
68914        &self,
68915    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
68916    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
68917        + Send;
68918    fn r#add_ipv6_membership(
68919        &self,
68920        membership: &Ipv6MulticastMembership,
68921    ) -> Self::AddIpv6MembershipResponseFut;
68922    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
68923        + Send;
68924    fn r#drop_ipv6_membership(
68925        &self,
68926        membership: &Ipv6MulticastMembership,
68927    ) -> Self::DropIpv6MembershipResponseFut;
68928    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
68929            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
68930        > + Send;
68931    fn r#set_ipv6_multicast_interface(
68932        &self,
68933        value: u64,
68934    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
68935    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
68936            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
68937        > + Send;
68938    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
68939    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
68940        + Send;
68941    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
68942    -> Self::SetIpv6UnicastHopsResponseFut;
68943    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
68944        + Send;
68945    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
68946    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
68947            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
68948        > + Send;
68949    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
68950    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
68951            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
68952        > + Send;
68953    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
68954    type SetIpv6MulticastHopsResponseFut: std::future::Future<
68955            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
68956        > + Send;
68957    fn r#set_ipv6_multicast_hops(
68958        &self,
68959        value: &OptionalUint8,
68960    ) -> Self::SetIpv6MulticastHopsResponseFut;
68961    type GetIpv6MulticastHopsResponseFut: std::future::Future<
68962            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
68963        > + Send;
68964    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
68965    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
68966            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
68967        > + Send;
68968    fn r#set_ipv6_multicast_loopback(
68969        &self,
68970        value: bool,
68971    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
68972    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
68973            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
68974        > + Send;
68975    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
68976    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
68977        + Send;
68978    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
68979    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
68980        + Send;
68981    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
68982    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
68983            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
68984        > + Send;
68985    fn r#set_ipv6_receive_traffic_class(
68986        &self,
68987        value: bool,
68988    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
68989    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
68990            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
68991        > + Send;
68992    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
68993    type SetIpv6TrafficClassResponseFut: std::future::Future<
68994            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
68995        > + Send;
68996    fn r#set_ipv6_traffic_class(
68997        &self,
68998        value: &OptionalUint8,
68999    ) -> Self::SetIpv6TrafficClassResponseFut;
69000    type GetIpv6TrafficClassResponseFut: std::future::Future<
69001            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
69002        > + Send;
69003    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
69004    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
69005            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
69006        > + Send;
69007    fn r#set_ipv6_receive_packet_info(
69008        &self,
69009        value: bool,
69010    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
69011    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
69012            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
69013        > + Send;
69014    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
69015    type GetOriginalDestinationResponseFut: std::future::Future<
69016            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
69017        > + Send;
69018    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
69019    type GetInfoResponseFut: std::future::Future<Output = Result<BaseDatagramSocketGetInfoResult, fidl::Error>>
69020        + Send;
69021    fn r#get_info(&self) -> Self::GetInfoResponseFut;
69022    type DescribeResponseFut: std::future::Future<Output = Result<SynchronousDatagramSocketDescribeResponse, fidl::Error>>
69023        + Send;
69024    fn r#describe(&self) -> Self::DescribeResponseFut;
69025    type RecvMsgResponseFut: std::future::Future<Output = Result<SynchronousDatagramSocketRecvMsgResult, fidl::Error>>
69026        + Send;
69027    fn r#recv_msg(
69028        &self,
69029        want_addr: bool,
69030        data_len: u32,
69031        want_control: bool,
69032        flags: RecvMsgFlags,
69033    ) -> Self::RecvMsgResponseFut;
69034    type SendMsgResponseFut: std::future::Future<Output = Result<SynchronousDatagramSocketSendMsgResult, fidl::Error>>
69035        + Send;
69036    fn r#send_msg(
69037        &self,
69038        addr: Option<&fidl_fuchsia_net::SocketAddress>,
69039        data: &[u8],
69040        control: &DatagramSocketSendControlData,
69041        flags: SendMsgFlags,
69042    ) -> Self::SendMsgResponseFut;
69043}
69044#[derive(Debug)]
69045#[cfg(target_os = "fuchsia")]
69046pub struct SynchronousDatagramSocketSynchronousProxy {
69047    client: fidl::client::sync::Client,
69048}
69049
69050#[cfg(target_os = "fuchsia")]
69051impl fidl::endpoints::SynchronousProxy for SynchronousDatagramSocketSynchronousProxy {
69052    type Proxy = SynchronousDatagramSocketProxy;
69053    type Protocol = SynchronousDatagramSocketMarker;
69054
69055    fn from_channel(inner: fidl::Channel) -> Self {
69056        Self::new(inner)
69057    }
69058
69059    fn into_channel(self) -> fidl::Channel {
69060        self.client.into_channel()
69061    }
69062
69063    fn as_channel(&self) -> &fidl::Channel {
69064        self.client.as_channel()
69065    }
69066}
69067
69068#[cfg(target_os = "fuchsia")]
69069impl SynchronousDatagramSocketSynchronousProxy {
69070    pub fn new(channel: fidl::Channel) -> Self {
69071        let protocol_name =
69072            <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
69073        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
69074    }
69075
69076    pub fn into_channel(self) -> fidl::Channel {
69077        self.client.into_channel()
69078    }
69079
69080    /// Waits until an event arrives and returns it. It is safe for other
69081    /// threads to make concurrent requests while waiting for an event.
69082    pub fn wait_for_event(
69083        &self,
69084        deadline: zx::MonotonicInstant,
69085    ) -> Result<SynchronousDatagramSocketEvent, fidl::Error> {
69086        SynchronousDatagramSocketEvent::decode(self.client.wait_for_event(deadline)?)
69087    }
69088
69089    pub fn r#clone(
69090        &self,
69091        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
69092    ) -> Result<(), fidl::Error> {
69093        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
69094            (request,),
69095            0x20d8a7aba2168a79,
69096            fidl::encoding::DynamicFlags::empty(),
69097        )
69098    }
69099
69100    /// Terminates the connection.
69101    ///
69102    /// After calling `Close`, the client must not send any other requests.
69103    ///
69104    /// Servers, after sending the status response, should close the connection
69105    /// regardless of status and without sending an epitaph.
69106    ///
69107    /// Closing the client end of the channel should be semantically equivalent
69108    /// to calling `Close` without knowing when the close has completed or its
69109    /// status.
69110    pub fn r#close(
69111        &self,
69112        ___deadline: zx::MonotonicInstant,
69113    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
69114        let _response = self.client.send_query::<
69115            fidl::encoding::EmptyPayload,
69116            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
69117        >(
69118            (),
69119            0x5ac5d459ad7f657e,
69120            fidl::encoding::DynamicFlags::empty(),
69121            ___deadline,
69122        )?;
69123        Ok(_response.map(|x| x))
69124    }
69125
69126    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
69127        let _response = self.client.send_query::<
69128            fidl::encoding::EmptyPayload,
69129            fidl_fuchsia_unknown::QueryableQueryResponse,
69130        >(
69131            (),
69132            0x2658edee9decfc06,
69133            fidl::encoding::DynamicFlags::empty(),
69134            ___deadline,
69135        )?;
69136        Ok(_response.protocol)
69137    }
69138
69139    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
69140    pub fn r#set_reuse_address(
69141        &self,
69142        mut value: bool,
69143        ___deadline: zx::MonotonicInstant,
69144    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
69145        let _response =
69146            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
69147                fidl::encoding::EmptyStruct,
69148                fidl_fuchsia_posix::Errno,
69149            >>(
69150                (value,),
69151                0x1fd74ee8b9a4a876,
69152                fidl::encoding::DynamicFlags::empty(),
69153                ___deadline,
69154            )?;
69155        Ok(_response.map(|x| x))
69156    }
69157
69158    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
69159    pub fn r#get_reuse_address(
69160        &self,
69161        ___deadline: zx::MonotonicInstant,
69162    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
69163        let _response = self
69164            .client
69165            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69166                BaseSocketGetReuseAddressResponse,
69167                fidl_fuchsia_posix::Errno,
69168            >>(
69169                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
69170            )?;
69171        Ok(_response.map(|x| x.value))
69172    }
69173
69174    /// Get `SOL_SOCKET` -> `SO_ERROR`.
69175    /// Returns the last error if there is an error set on the socket.
69176    pub fn r#get_error(
69177        &self,
69178        ___deadline: zx::MonotonicInstant,
69179    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
69180        let _response =
69181            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69182                fidl::encoding::EmptyStruct,
69183                fidl_fuchsia_posix::Errno,
69184            >>(
69185                (),
69186                0x5aad39b33e5f6ebb,
69187                fidl::encoding::DynamicFlags::empty(),
69188                ___deadline,
69189            )?;
69190        Ok(_response.map(|x| x))
69191    }
69192
69193    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
69194    pub fn r#set_broadcast(
69195        &self,
69196        mut value: bool,
69197        ___deadline: zx::MonotonicInstant,
69198    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
69199        let _response =
69200            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
69201                fidl::encoding::EmptyStruct,
69202                fidl_fuchsia_posix::Errno,
69203            >>(
69204                (value,),
69205                0x6023e081ce3cd947,
69206                fidl::encoding::DynamicFlags::empty(),
69207                ___deadline,
69208            )?;
69209        Ok(_response.map(|x| x))
69210    }
69211
69212    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
69213    pub fn r#get_broadcast(
69214        &self,
69215        ___deadline: zx::MonotonicInstant,
69216    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
69217        let _response =
69218            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69219                BaseSocketGetBroadcastResponse,
69220                fidl_fuchsia_posix::Errno,
69221            >>(
69222                (),
69223                0x68796fc556f9780d,
69224                fidl::encoding::DynamicFlags::empty(),
69225                ___deadline,
69226            )?;
69227        Ok(_response.map(|x| x.value))
69228    }
69229
69230    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
69231    pub fn r#set_send_buffer(
69232        &self,
69233        mut value_bytes: u64,
69234        ___deadline: zx::MonotonicInstant,
69235    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
69236        let _response =
69237            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
69238                fidl::encoding::EmptyStruct,
69239                fidl_fuchsia_posix::Errno,
69240            >>(
69241                (value_bytes,),
69242                0x756eac32d73a7a70,
69243                fidl::encoding::DynamicFlags::empty(),
69244                ___deadline,
69245            )?;
69246        Ok(_response.map(|x| x))
69247    }
69248
69249    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
69250    pub fn r#get_send_buffer(
69251        &self,
69252        ___deadline: zx::MonotonicInstant,
69253    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
69254        let _response = self
69255            .client
69256            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69257                BaseSocketGetSendBufferResponse,
69258                fidl_fuchsia_posix::Errno,
69259            >>(
69260                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
69261            )?;
69262        Ok(_response.map(|x| x.value_bytes))
69263    }
69264
69265    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
69266    pub fn r#set_receive_buffer(
69267        &self,
69268        mut value_bytes: u64,
69269        ___deadline: zx::MonotonicInstant,
69270    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
69271        let _response =
69272            self.client
69273                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
69274                    fidl::encoding::EmptyStruct,
69275                    fidl_fuchsia_posix::Errno,
69276                >>(
69277                    (value_bytes,),
69278                    0x6b0cf2f1919c7001,
69279                    fidl::encoding::DynamicFlags::empty(),
69280                    ___deadline,
69281                )?;
69282        Ok(_response.map(|x| x))
69283    }
69284
69285    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
69286    pub fn r#get_receive_buffer(
69287        &self,
69288        ___deadline: zx::MonotonicInstant,
69289    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
69290        let _response = self
69291            .client
69292            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69293                BaseSocketGetReceiveBufferResponse,
69294                fidl_fuchsia_posix::Errno,
69295            >>(
69296                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
69297            )?;
69298        Ok(_response.map(|x| x.value_bytes))
69299    }
69300
69301    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
69302    pub fn r#set_keep_alive(
69303        &self,
69304        mut value: bool,
69305        ___deadline: zx::MonotonicInstant,
69306    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
69307        let _response =
69308            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
69309                fidl::encoding::EmptyStruct,
69310                fidl_fuchsia_posix::Errno,
69311            >>(
69312                (value,),
69313                0x572df8f0b920d2c7,
69314                fidl::encoding::DynamicFlags::empty(),
69315                ___deadline,
69316            )?;
69317        Ok(_response.map(|x| x))
69318    }
69319
69320    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
69321    pub fn r#get_keep_alive(
69322        &self,
69323        ___deadline: zx::MonotonicInstant,
69324    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
69325        let _response =
69326            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69327                BaseSocketGetKeepAliveResponse,
69328                fidl_fuchsia_posix::Errno,
69329            >>(
69330                (),
69331                0x2dd29d3215f2c9d2,
69332                fidl::encoding::DynamicFlags::empty(),
69333                ___deadline,
69334            )?;
69335        Ok(_response.map(|x| x.value))
69336    }
69337
69338    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
69339    pub fn r#set_out_of_band_inline(
69340        &self,
69341        mut value: bool,
69342        ___deadline: zx::MonotonicInstant,
69343    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
69344        let _response =
69345            self.client
69346                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
69347                    fidl::encoding::EmptyStruct,
69348                    fidl_fuchsia_posix::Errno,
69349                >>(
69350                    (value,),
69351                    0x3ecb49968bee439,
69352                    fidl::encoding::DynamicFlags::empty(),
69353                    ___deadline,
69354                )?;
69355        Ok(_response.map(|x| x))
69356    }
69357
69358    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
69359    pub fn r#get_out_of_band_inline(
69360        &self,
69361        ___deadline: zx::MonotonicInstant,
69362    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
69363        let _response = self
69364            .client
69365            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69366                BaseSocketGetOutOfBandInlineResponse,
69367                fidl_fuchsia_posix::Errno,
69368            >>(
69369                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
69370            )?;
69371        Ok(_response.map(|x| x.value))
69372    }
69373
69374    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
69375    pub fn r#set_no_check(
69376        &self,
69377        mut value: bool,
69378        ___deadline: zx::MonotonicInstant,
69379    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
69380        let _response =
69381            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
69382                fidl::encoding::EmptyStruct,
69383                fidl_fuchsia_posix::Errno,
69384            >>(
69385                (value,),
69386                0x6bbf00c53a4c78c2,
69387                fidl::encoding::DynamicFlags::empty(),
69388                ___deadline,
69389            )?;
69390        Ok(_response.map(|x| x))
69391    }
69392
69393    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
69394    pub fn r#get_no_check(
69395        &self,
69396        ___deadline: zx::MonotonicInstant,
69397    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
69398        let _response =
69399            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69400                BaseSocketGetNoCheckResponse,
69401                fidl_fuchsia_posix::Errno,
69402            >>(
69403                (),
69404                0x2cd4249286417694,
69405                fidl::encoding::DynamicFlags::empty(),
69406                ___deadline,
69407            )?;
69408        Ok(_response.map(|x| x.value))
69409    }
69410
69411    /// Set `SOL_SOCKET` -> `SO_LINGER`.
69412    pub fn r#set_linger(
69413        &self,
69414        mut linger: bool,
69415        mut length_secs: u32,
69416        ___deadline: zx::MonotonicInstant,
69417    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
69418        let _response =
69419            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
69420                fidl::encoding::EmptyStruct,
69421                fidl_fuchsia_posix::Errno,
69422            >>(
69423                (linger, length_secs),
69424                0x45386351246e998e,
69425                fidl::encoding::DynamicFlags::empty(),
69426                ___deadline,
69427            )?;
69428        Ok(_response.map(|x| x))
69429    }
69430
69431    /// Get `SOL_SOCKET` -> `SO_LINGER`.
69432    pub fn r#get_linger(
69433        &self,
69434        ___deadline: zx::MonotonicInstant,
69435    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
69436        let _response =
69437            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69438                BaseSocketGetLingerResponse,
69439                fidl_fuchsia_posix::Errno,
69440            >>(
69441                (),
69442                0x48eb20fc5ccb0e45,
69443                fidl::encoding::DynamicFlags::empty(),
69444                ___deadline,
69445            )?;
69446        Ok(_response.map(|x| (x.linger, x.length_secs)))
69447    }
69448
69449    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
69450    pub fn r#set_reuse_port(
69451        &self,
69452        mut value: bool,
69453        ___deadline: zx::MonotonicInstant,
69454    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
69455        let _response =
69456            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
69457                fidl::encoding::EmptyStruct,
69458                fidl_fuchsia_posix::Errno,
69459            >>(
69460                (value,),
69461                0x24dd3e5cb36d9ccb,
69462                fidl::encoding::DynamicFlags::empty(),
69463                ___deadline,
69464            )?;
69465        Ok(_response.map(|x| x))
69466    }
69467
69468    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
69469    pub fn r#get_reuse_port(
69470        &self,
69471        ___deadline: zx::MonotonicInstant,
69472    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
69473        let _response =
69474            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69475                BaseSocketGetReusePortResponse,
69476                fidl_fuchsia_posix::Errno,
69477            >>(
69478                (),
69479                0x7a112c1ab54ff828,
69480                fidl::encoding::DynamicFlags::empty(),
69481                ___deadline,
69482            )?;
69483        Ok(_response.map(|x| x.value))
69484    }
69485
69486    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
69487    pub fn r#get_accept_conn(
69488        &self,
69489        ___deadline: zx::MonotonicInstant,
69490    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
69491        let _response = self
69492            .client
69493            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69494                BaseSocketGetAcceptConnResponse,
69495                fidl_fuchsia_posix::Errno,
69496            >>(
69497                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
69498            )?;
69499        Ok(_response.map(|x| x.value))
69500    }
69501
69502    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
69503    pub fn r#set_bind_to_device(
69504        &self,
69505        mut value: &str,
69506        ___deadline: zx::MonotonicInstant,
69507    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
69508        let _response =
69509            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
69510                fidl::encoding::EmptyStruct,
69511                fidl_fuchsia_posix::Errno,
69512            >>(
69513                (value,),
69514                0x2118b483f28aafc4,
69515                fidl::encoding::DynamicFlags::empty(),
69516                ___deadline,
69517            )?;
69518        Ok(_response.map(|x| x))
69519    }
69520
69521    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
69522    pub fn r#get_bind_to_device(
69523        &self,
69524        ___deadline: zx::MonotonicInstant,
69525    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
69526        let _response = self
69527            .client
69528            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69529                BaseSocketGetBindToDeviceResponse,
69530                fidl_fuchsia_posix::Errno,
69531            >>(
69532                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
69533            )?;
69534        Ok(_response.map(|x| x.value))
69535    }
69536
69537    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
69538    /// If `value` is 0, this clears the bound interface.
69539    pub fn r#set_bind_to_interface_index(
69540        &self,
69541        mut value: u64,
69542        ___deadline: zx::MonotonicInstant,
69543    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
69544        let _response =
69545            self.client
69546                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
69547                    fidl::encoding::EmptyStruct,
69548                    fidl_fuchsia_posix::Errno,
69549                >>(
69550                    (value,),
69551                    0x6e387a0def00821,
69552                    fidl::encoding::DynamicFlags::empty(),
69553                    ___deadline,
69554                )?;
69555        Ok(_response.map(|x| x))
69556    }
69557
69558    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
69559    pub fn r#get_bind_to_interface_index(
69560        &self,
69561        ___deadline: zx::MonotonicInstant,
69562    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
69563        let _response = self
69564            .client
69565            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69566                BaseSocketGetBindToInterfaceIndexResponse,
69567                fidl_fuchsia_posix::Errno,
69568            >>(
69569                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
69570            )?;
69571        Ok(_response.map(|x| x.value))
69572    }
69573
69574    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
69575    pub fn r#set_timestamp(
69576        &self,
69577        mut value: TimestampOption,
69578        ___deadline: zx::MonotonicInstant,
69579    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
69580        let _response =
69581            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
69582                fidl::encoding::EmptyStruct,
69583                fidl_fuchsia_posix::Errno,
69584            >>(
69585                (value,),
69586                0x285d6516c263d839,
69587                fidl::encoding::DynamicFlags::empty(),
69588                ___deadline,
69589            )?;
69590        Ok(_response.map(|x| x))
69591    }
69592
69593    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
69594    pub fn r#get_timestamp(
69595        &self,
69596        ___deadline: zx::MonotonicInstant,
69597    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
69598        let _response =
69599            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69600                BaseSocketGetTimestampResponse,
69601                fidl_fuchsia_posix::Errno,
69602            >>(
69603                (),
69604                0x49f2fffbbcc2bd27,
69605                fidl::encoding::DynamicFlags::empty(),
69606                ___deadline,
69607            )?;
69608        Ok(_response.map(|x| x.value))
69609    }
69610
69611    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
69612    /// unlike the standard SO_MARK, this API has multiple mark domains and each
69613    /// mark can be set independently in each domain.
69614    pub fn r#set_mark(
69615        &self,
69616        mut domain: fidl_fuchsia_net::MarkDomain,
69617        mut mark: &OptionalUint32,
69618        ___deadline: zx::MonotonicInstant,
69619    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
69620        let _response =
69621            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
69622                fidl::encoding::EmptyStruct,
69623                fidl_fuchsia_posix::Errno,
69624            >>(
69625                (domain, mark),
69626                0x6ead6de09f653236,
69627                fidl::encoding::DynamicFlags::empty(),
69628                ___deadline,
69629            )?;
69630        Ok(_response.map(|x| x))
69631    }
69632
69633    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
69634    /// unlike the standard SO_MARK, this API has multiple mark domains and each
69635    /// mark can be retrieved independently in each domain.
69636    pub fn r#get_mark(
69637        &self,
69638        mut domain: fidl_fuchsia_net::MarkDomain,
69639        ___deadline: zx::MonotonicInstant,
69640    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
69641        let _response =
69642            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
69643                BaseSocketGetMarkResponse,
69644                fidl_fuchsia_posix::Errno,
69645            >>(
69646                (domain,),
69647                0x57a2752c61d93d47,
69648                fidl::encoding::DynamicFlags::empty(),
69649                ___deadline,
69650            )?;
69651        Ok(_response.map(|x| x.mark))
69652    }
69653
69654    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
69655    pub fn r#get_cookie(
69656        &self,
69657        ___deadline: zx::MonotonicInstant,
69658    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
69659        let _response =
69660            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69661                BaseSocketGetCookieResponse,
69662                fidl_fuchsia_posix::Errno,
69663            >>(
69664                (),
69665                0x2c2f47fd8f924e52,
69666                fidl::encoding::DynamicFlags::empty(),
69667                ___deadline,
69668            )?;
69669        Ok(_response.map(|x| x.value))
69670    }
69671
69672    /// Sets the local address used for the socket.
69673    pub fn r#bind(
69674        &self,
69675        mut addr: &fidl_fuchsia_net::SocketAddress,
69676        ___deadline: zx::MonotonicInstant,
69677    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
69678        let _response =
69679            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
69680                fidl::encoding::EmptyStruct,
69681                fidl_fuchsia_posix::Errno,
69682            >>(
69683                (addr,),
69684                0x4bc6400ae92125d,
69685                fidl::encoding::DynamicFlags::empty(),
69686                ___deadline,
69687            )?;
69688        Ok(_response.map(|x| x))
69689    }
69690
69691    /// Initiates a connection to a remote address.
69692    pub fn r#connect(
69693        &self,
69694        mut addr: &fidl_fuchsia_net::SocketAddress,
69695        ___deadline: zx::MonotonicInstant,
69696    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
69697        let _response =
69698            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
69699                fidl::encoding::EmptyStruct,
69700                fidl_fuchsia_posix::Errno,
69701            >>(
69702                (addr,),
69703                0x5f05f19bfdd38871,
69704                fidl::encoding::DynamicFlags::empty(),
69705                ___deadline,
69706            )?;
69707        Ok(_response.map(|x| x))
69708    }
69709
69710    /// Clears connection information from this socket.
69711    pub fn r#disconnect(
69712        &self,
69713        ___deadline: zx::MonotonicInstant,
69714    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
69715        let _response =
69716            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69717                fidl::encoding::EmptyStruct,
69718                fidl_fuchsia_posix::Errno,
69719            >>(
69720                (),
69721                0x74e63b91f7b29b2,
69722                fidl::encoding::DynamicFlags::empty(),
69723                ___deadline,
69724            )?;
69725        Ok(_response.map(|x| x))
69726    }
69727
69728    /// Retrieves the local socket address.
69729    pub fn r#get_sock_name(
69730        &self,
69731        ___deadline: zx::MonotonicInstant,
69732    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
69733        let _response = self
69734            .client
69735            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69736                BaseNetworkSocketGetSockNameResponse,
69737                fidl_fuchsia_posix::Errno,
69738            >>(
69739                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
69740            )?;
69741        Ok(_response.map(|x| x.addr))
69742    }
69743
69744    /// Retrieves the remote socket address.
69745    pub fn r#get_peer_name(
69746        &self,
69747        ___deadline: zx::MonotonicInstant,
69748    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
69749        let _response = self
69750            .client
69751            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69752                BaseNetworkSocketGetPeerNameResponse,
69753                fidl_fuchsia_posix::Errno,
69754            >>(
69755                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
69756            )?;
69757        Ok(_response.map(|x| x.addr))
69758    }
69759
69760    /// Shuts down part of the socket.
69761    pub fn r#shutdown(
69762        &self,
69763        mut mode: ShutdownMode,
69764        ___deadline: zx::MonotonicInstant,
69765    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
69766        let _response =
69767            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
69768                fidl::encoding::EmptyStruct,
69769                fidl_fuchsia_posix::Errno,
69770            >>(
69771                (mode,),
69772                0x247f38b6db68c336,
69773                fidl::encoding::DynamicFlags::empty(),
69774                ___deadline,
69775            )?;
69776        Ok(_response.map(|x| x))
69777    }
69778
69779    /// Set `SOL_IP` -> `IP_TOS`.
69780    pub fn r#set_ip_type_of_service(
69781        &self,
69782        mut value: u8,
69783        ___deadline: zx::MonotonicInstant,
69784    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
69785        let _response = self.client.send_query::<
69786            BaseNetworkSocketSetIpTypeOfServiceRequest,
69787            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
69788        >(
69789            (value,),
69790            0x995c600475b6d46,
69791            fidl::encoding::DynamicFlags::empty(),
69792            ___deadline,
69793        )?;
69794        Ok(_response.map(|x| x))
69795    }
69796
69797    /// Get `SOL_IP` -> `IP_TOS`.
69798    pub fn r#get_ip_type_of_service(
69799        &self,
69800        ___deadline: zx::MonotonicInstant,
69801    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
69802        let _response = self
69803            .client
69804            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69805                BaseNetworkSocketGetIpTypeOfServiceResponse,
69806                fidl_fuchsia_posix::Errno,
69807            >>(
69808                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
69809            )?;
69810        Ok(_response.map(|x| x.value))
69811    }
69812
69813    /// Set `SOL_IP` -> `IP_TTL`.
69814    pub fn r#set_ip_ttl(
69815        &self,
69816        mut value: &OptionalUint8,
69817        ___deadline: zx::MonotonicInstant,
69818    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
69819        let _response =
69820            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
69821                fidl::encoding::EmptyStruct,
69822                fidl_fuchsia_posix::Errno,
69823            >>(
69824                (value,),
69825                0x29e2424b433ae1ef,
69826                fidl::encoding::DynamicFlags::empty(),
69827                ___deadline,
69828            )?;
69829        Ok(_response.map(|x| x))
69830    }
69831
69832    /// Get `SOL_IP` -> `IP_TTL`.
69833    pub fn r#get_ip_ttl(
69834        &self,
69835        ___deadline: zx::MonotonicInstant,
69836    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
69837        let _response = self
69838            .client
69839            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69840                BaseNetworkSocketGetIpTtlResponse,
69841                fidl_fuchsia_posix::Errno,
69842            >>(
69843                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
69844            )?;
69845        Ok(_response.map(|x| x.value))
69846    }
69847
69848    /// Set `SOL_IP` -> `IP_PKTINFO`.
69849    pub fn r#set_ip_packet_info(
69850        &self,
69851        mut value: bool,
69852        ___deadline: zx::MonotonicInstant,
69853    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
69854        let _response =
69855            self.client
69856                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
69857                    fidl::encoding::EmptyStruct,
69858                    fidl_fuchsia_posix::Errno,
69859                >>(
69860                    (value,),
69861                    0x392d16bee20c0e16,
69862                    fidl::encoding::DynamicFlags::empty(),
69863                    ___deadline,
69864                )?;
69865        Ok(_response.map(|x| x))
69866    }
69867
69868    /// Get `SOL_IP` -> `IP_PKTINFO`.
69869    pub fn r#get_ip_packet_info(
69870        &self,
69871        ___deadline: zx::MonotonicInstant,
69872    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
69873        let _response = self
69874            .client
69875            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69876                BaseNetworkSocketGetIpPacketInfoResponse,
69877                fidl_fuchsia_posix::Errno,
69878            >>(
69879                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
69880            )?;
69881        Ok(_response.map(|x| x.value))
69882    }
69883
69884    /// Set `SOL_IP` -> `IP_RECVTOS`.
69885    pub fn r#set_ip_receive_type_of_service(
69886        &self,
69887        mut value: bool,
69888        ___deadline: zx::MonotonicInstant,
69889    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
69890        let _response = self.client.send_query::<
69891            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
69892            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
69893        >(
69894            (value,),
69895            0x6c4f6714995f84ef,
69896            fidl::encoding::DynamicFlags::empty(),
69897            ___deadline,
69898        )?;
69899        Ok(_response.map(|x| x))
69900    }
69901
69902    /// Get `SOL_IP` -> `IP_RECVTOS`.
69903    pub fn r#get_ip_receive_type_of_service(
69904        &self,
69905        ___deadline: zx::MonotonicInstant,
69906    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
69907        let _response = self
69908            .client
69909            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69910                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
69911                fidl_fuchsia_posix::Errno,
69912            >>(
69913                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
69914            )?;
69915        Ok(_response.map(|x| x.value))
69916    }
69917
69918    /// Set `SOL_IP` -> `IP_RECVTTL`.
69919    pub fn r#set_ip_receive_ttl(
69920        &self,
69921        mut value: bool,
69922        ___deadline: zx::MonotonicInstant,
69923    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
69924        let _response =
69925            self.client
69926                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
69927                    fidl::encoding::EmptyStruct,
69928                    fidl_fuchsia_posix::Errno,
69929                >>(
69930                    (value,),
69931                    0x46f15be0ce0ab82b,
69932                    fidl::encoding::DynamicFlags::empty(),
69933                    ___deadline,
69934                )?;
69935        Ok(_response.map(|x| x))
69936    }
69937
69938    /// Get `SOL_IP` -> `IP_RECVTTL`.
69939    pub fn r#get_ip_receive_ttl(
69940        &self,
69941        ___deadline: zx::MonotonicInstant,
69942    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
69943        let _response = self
69944            .client
69945            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69946                BaseNetworkSocketGetIpReceiveTtlResponse,
69947                fidl_fuchsia_posix::Errno,
69948            >>(
69949                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
69950            )?;
69951        Ok(_response.map(|x| x.value))
69952    }
69953
69954    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
69955    pub fn r#set_ip_multicast_interface(
69956        &self,
69957        mut iface: u64,
69958        mut address: &fidl_fuchsia_net::Ipv4Address,
69959        ___deadline: zx::MonotonicInstant,
69960    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
69961        let _response = self.client.send_query::<
69962            BaseNetworkSocketSetIpMulticastInterfaceRequest,
69963            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
69964        >(
69965            (iface, address,),
69966            0x752fbfa9b12befe,
69967            fidl::encoding::DynamicFlags::empty(),
69968            ___deadline,
69969        )?;
69970        Ok(_response.map(|x| x))
69971    }
69972
69973    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
69974    pub fn r#get_ip_multicast_interface(
69975        &self,
69976        ___deadline: zx::MonotonicInstant,
69977    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
69978        let _response = self
69979            .client
69980            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69981                BaseNetworkSocketGetIpMulticastInterfaceResponse,
69982                fidl_fuchsia_posix::Errno,
69983            >>(
69984                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
69985            )?;
69986        Ok(_response.map(|x| x.value))
69987    }
69988
69989    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
69990    pub fn r#set_ip_multicast_ttl(
69991        &self,
69992        mut value: &OptionalUint8,
69993        ___deadline: zx::MonotonicInstant,
69994    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
69995        let _response =
69996            self.client
69997                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
69998                    fidl::encoding::EmptyStruct,
69999                    fidl_fuchsia_posix::Errno,
70000                >>(
70001                    (value,),
70002                    0x63134d53772916a1,
70003                    fidl::encoding::DynamicFlags::empty(),
70004                    ___deadline,
70005                )?;
70006        Ok(_response.map(|x| x))
70007    }
70008
70009    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
70010    pub fn r#get_ip_multicast_ttl(
70011        &self,
70012        ___deadline: zx::MonotonicInstant,
70013    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
70014        let _response = self
70015            .client
70016            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70017                BaseNetworkSocketGetIpMulticastTtlResponse,
70018                fidl_fuchsia_posix::Errno,
70019            >>(
70020                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
70021            )?;
70022        Ok(_response.map(|x| x.value))
70023    }
70024
70025    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
70026    pub fn r#set_ip_multicast_loopback(
70027        &self,
70028        mut value: bool,
70029        ___deadline: zx::MonotonicInstant,
70030    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
70031        let _response = self.client.send_query::<
70032            BaseNetworkSocketSetIpMulticastLoopbackRequest,
70033            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70034        >(
70035            (value,),
70036            0x20c55c11f00943ea,
70037            fidl::encoding::DynamicFlags::empty(),
70038            ___deadline,
70039        )?;
70040        Ok(_response.map(|x| x))
70041    }
70042
70043    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
70044    pub fn r#get_ip_multicast_loopback(
70045        &self,
70046        ___deadline: zx::MonotonicInstant,
70047    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
70048        let _response = self
70049            .client
70050            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70051                BaseNetworkSocketGetIpMulticastLoopbackResponse,
70052                fidl_fuchsia_posix::Errno,
70053            >>(
70054                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
70055            )?;
70056        Ok(_response.map(|x| x.value))
70057    }
70058
70059    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
70060    pub fn r#add_ip_membership(
70061        &self,
70062        mut membership: &IpMulticastMembership,
70063        ___deadline: zx::MonotonicInstant,
70064    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
70065        let _response =
70066            self.client
70067                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
70068                    fidl::encoding::EmptyStruct,
70069                    fidl_fuchsia_posix::Errno,
70070                >>(
70071                    (membership,),
70072                    0x76bc7df115a3b4d0,
70073                    fidl::encoding::DynamicFlags::empty(),
70074                    ___deadline,
70075                )?;
70076        Ok(_response.map(|x| x))
70077    }
70078
70079    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
70080    pub fn r#drop_ip_membership(
70081        &self,
70082        mut membership: &IpMulticastMembership,
70083        ___deadline: zx::MonotonicInstant,
70084    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
70085        let _response =
70086            self.client
70087                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
70088                    fidl::encoding::EmptyStruct,
70089                    fidl_fuchsia_posix::Errno,
70090                >>(
70091                    (membership,),
70092                    0x2888f3099188d03,
70093                    fidl::encoding::DynamicFlags::empty(),
70094                    ___deadline,
70095                )?;
70096        Ok(_response.map(|x| x))
70097    }
70098
70099    /// Set `SOL_IP` -> `IP_TRANSPARENT`
70100    pub fn r#set_ip_transparent(
70101        &self,
70102        mut value: bool,
70103        ___deadline: zx::MonotonicInstant,
70104    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
70105        let _response =
70106            self.client
70107                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
70108                    fidl::encoding::EmptyStruct,
70109                    fidl_fuchsia_posix::Errno,
70110                >>(
70111                    (value,),
70112                    0x1ae532b0c066e3a0,
70113                    fidl::encoding::DynamicFlags::empty(),
70114                    ___deadline,
70115                )?;
70116        Ok(_response.map(|x| x))
70117    }
70118
70119    /// Get `SOL_IP` -> `IP_TRANSPARENT`
70120    pub fn r#get_ip_transparent(
70121        &self,
70122        ___deadline: zx::MonotonicInstant,
70123    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
70124        let _response = self
70125            .client
70126            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70127                BaseNetworkSocketGetIpTransparentResponse,
70128                fidl_fuchsia_posix::Errno,
70129            >>(
70130                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
70131            )?;
70132        Ok(_response.map(|x| x.value))
70133    }
70134
70135    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
70136    pub fn r#set_ip_receive_original_destination_address(
70137        &self,
70138        mut value: bool,
70139        ___deadline: zx::MonotonicInstant,
70140    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
70141        let _response = self.client.send_query::<
70142            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
70143            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70144        >(
70145            (value,),
70146            0x4722b4ce52f7840,
70147            fidl::encoding::DynamicFlags::empty(),
70148            ___deadline,
70149        )?;
70150        Ok(_response.map(|x| x))
70151    }
70152
70153    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
70154    pub fn r#get_ip_receive_original_destination_address(
70155        &self,
70156        ___deadline: zx::MonotonicInstant,
70157    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
70158        let _response = self
70159            .client
70160            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70161                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
70162                fidl_fuchsia_posix::Errno,
70163            >>(
70164                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
70165            )?;
70166        Ok(_response.map(|x| x.value))
70167    }
70168
70169    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
70170    pub fn r#add_ipv6_membership(
70171        &self,
70172        mut membership: &Ipv6MulticastMembership,
70173        ___deadline: zx::MonotonicInstant,
70174    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
70175        let _response =
70176            self.client
70177                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
70178                    fidl::encoding::EmptyStruct,
70179                    fidl_fuchsia_posix::Errno,
70180                >>(
70181                    (membership,),
70182                    0x7c94727acb4ea4b3,
70183                    fidl::encoding::DynamicFlags::empty(),
70184                    ___deadline,
70185                )?;
70186        Ok(_response.map(|x| x))
70187    }
70188
70189    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
70190    pub fn r#drop_ipv6_membership(
70191        &self,
70192        mut membership: &Ipv6MulticastMembership,
70193        ___deadline: zx::MonotonicInstant,
70194    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
70195        let _response = self.client.send_query::<
70196            BaseNetworkSocketDropIpv6MembershipRequest,
70197            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70198        >(
70199            (membership,),
70200            0x42104c70ccaba304,
70201            fidl::encoding::DynamicFlags::empty(),
70202            ___deadline,
70203        )?;
70204        Ok(_response.map(|x| x))
70205    }
70206
70207    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
70208    pub fn r#set_ipv6_multicast_interface(
70209        &self,
70210        mut value: u64,
70211        ___deadline: zx::MonotonicInstant,
70212    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
70213        let _response = self.client.send_query::<
70214            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
70215            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70216        >(
70217            (value,),
70218            0x135f76db3774ab3b,
70219            fidl::encoding::DynamicFlags::empty(),
70220            ___deadline,
70221        )?;
70222        Ok(_response.map(|x| x))
70223    }
70224
70225    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
70226    pub fn r#get_ipv6_multicast_interface(
70227        &self,
70228        ___deadline: zx::MonotonicInstant,
70229    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
70230        let _response = self
70231            .client
70232            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70233                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
70234                fidl_fuchsia_posix::Errno,
70235            >>(
70236                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
70237            )?;
70238        Ok(_response.map(|x| x.value))
70239    }
70240
70241    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
70242    pub fn r#set_ipv6_unicast_hops(
70243        &self,
70244        mut value: &OptionalUint8,
70245        ___deadline: zx::MonotonicInstant,
70246    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
70247        let _response = self.client.send_query::<
70248            BaseNetworkSocketSetIpv6UnicastHopsRequest,
70249            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70250        >(
70251            (value,),
70252            0x157d51e98f462859,
70253            fidl::encoding::DynamicFlags::empty(),
70254            ___deadline,
70255        )?;
70256        Ok(_response.map(|x| x))
70257    }
70258
70259    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
70260    pub fn r#get_ipv6_unicast_hops(
70261        &self,
70262        ___deadline: zx::MonotonicInstant,
70263    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
70264        let _response = self
70265            .client
70266            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70267                BaseNetworkSocketGetIpv6UnicastHopsResponse,
70268                fidl_fuchsia_posix::Errno,
70269            >>(
70270                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
70271            )?;
70272        Ok(_response.map(|x| x.value))
70273    }
70274
70275    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
70276    pub fn r#set_ipv6_receive_hop_limit(
70277        &self,
70278        mut value: bool,
70279        ___deadline: zx::MonotonicInstant,
70280    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
70281        let _response = self.client.send_query::<
70282            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
70283            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70284        >(
70285            (value,),
70286            0x5c24808ed2e84a1e,
70287            fidl::encoding::DynamicFlags::empty(),
70288            ___deadline,
70289        )?;
70290        Ok(_response.map(|x| x))
70291    }
70292
70293    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
70294    pub fn r#get_ipv6_receive_hop_limit(
70295        &self,
70296        ___deadline: zx::MonotonicInstant,
70297    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
70298        let _response = self
70299            .client
70300            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70301                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
70302                fidl_fuchsia_posix::Errno,
70303            >>(
70304                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
70305            )?;
70306        Ok(_response.map(|x| x.value))
70307    }
70308
70309    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
70310    pub fn r#set_ipv6_multicast_hops(
70311        &self,
70312        mut value: &OptionalUint8,
70313        ___deadline: zx::MonotonicInstant,
70314    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
70315        let _response = self.client.send_query::<
70316            BaseNetworkSocketSetIpv6MulticastHopsRequest,
70317            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70318        >(
70319            (value,),
70320            0x25b9cd4d181f82c1,
70321            fidl::encoding::DynamicFlags::empty(),
70322            ___deadline,
70323        )?;
70324        Ok(_response.map(|x| x))
70325    }
70326
70327    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
70328    pub fn r#get_ipv6_multicast_hops(
70329        &self,
70330        ___deadline: zx::MonotonicInstant,
70331    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
70332        let _response = self
70333            .client
70334            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70335                BaseNetworkSocketGetIpv6MulticastHopsResponse,
70336                fidl_fuchsia_posix::Errno,
70337            >>(
70338                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
70339            )?;
70340        Ok(_response.map(|x| x.value))
70341    }
70342
70343    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
70344    pub fn r#set_ipv6_multicast_loopback(
70345        &self,
70346        mut value: bool,
70347        ___deadline: zx::MonotonicInstant,
70348    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
70349        let _response = self.client.send_query::<
70350            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
70351            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70352        >(
70353            (value,),
70354            0x55701c409ff41b40,
70355            fidl::encoding::DynamicFlags::empty(),
70356            ___deadline,
70357        )?;
70358        Ok(_response.map(|x| x))
70359    }
70360
70361    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
70362    pub fn r#get_ipv6_multicast_loopback(
70363        &self,
70364        ___deadline: zx::MonotonicInstant,
70365    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
70366        let _response = self
70367            .client
70368            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70369                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
70370                fidl_fuchsia_posix::Errno,
70371            >>(
70372                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
70373            )?;
70374        Ok(_response.map(|x| x.value))
70375    }
70376
70377    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
70378    pub fn r#set_ipv6_only(
70379        &self,
70380        mut value: bool,
70381        ___deadline: zx::MonotonicInstant,
70382    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
70383        let _response =
70384            self.client
70385                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
70386                    fidl::encoding::EmptyStruct,
70387                    fidl_fuchsia_posix::Errno,
70388                >>(
70389                    (value,),
70390                    0x4873f1364758cbba,
70391                    fidl::encoding::DynamicFlags::empty(),
70392                    ___deadline,
70393                )?;
70394        Ok(_response.map(|x| x))
70395    }
70396
70397    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
70398    pub fn r#get_ipv6_only(
70399        &self,
70400        ___deadline: zx::MonotonicInstant,
70401    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
70402        let _response = self
70403            .client
70404            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70405                BaseNetworkSocketGetIpv6OnlyResponse,
70406                fidl_fuchsia_posix::Errno,
70407            >>(
70408                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
70409            )?;
70410        Ok(_response.map(|x| x.value))
70411    }
70412
70413    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
70414    pub fn r#set_ipv6_receive_traffic_class(
70415        &self,
70416        mut value: bool,
70417        ___deadline: zx::MonotonicInstant,
70418    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
70419        let _response = self.client.send_query::<
70420            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
70421            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70422        >(
70423            (value,),
70424            0x58f07c8788d099a0,
70425            fidl::encoding::DynamicFlags::empty(),
70426            ___deadline,
70427        )?;
70428        Ok(_response.map(|x| x))
70429    }
70430
70431    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
70432    pub fn r#get_ipv6_receive_traffic_class(
70433        &self,
70434        ___deadline: zx::MonotonicInstant,
70435    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
70436        let _response = self
70437            .client
70438            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70439                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
70440                fidl_fuchsia_posix::Errno,
70441            >>(
70442                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
70443            )?;
70444        Ok(_response.map(|x| x.value))
70445    }
70446
70447    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
70448    pub fn r#set_ipv6_traffic_class(
70449        &self,
70450        mut value: &OptionalUint8,
70451        ___deadline: zx::MonotonicInstant,
70452    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
70453        let _response = self.client.send_query::<
70454            BaseNetworkSocketSetIpv6TrafficClassRequest,
70455            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70456        >(
70457            (value,),
70458            0x6af077800c5a0b4f,
70459            fidl::encoding::DynamicFlags::empty(),
70460            ___deadline,
70461        )?;
70462        Ok(_response.map(|x| x))
70463    }
70464
70465    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
70466    pub fn r#get_ipv6_traffic_class(
70467        &self,
70468        ___deadline: zx::MonotonicInstant,
70469    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
70470        let _response = self
70471            .client
70472            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70473                BaseNetworkSocketGetIpv6TrafficClassResponse,
70474                fidl_fuchsia_posix::Errno,
70475            >>(
70476                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
70477            )?;
70478        Ok(_response.map(|x| x.value))
70479    }
70480
70481    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
70482    pub fn r#set_ipv6_receive_packet_info(
70483        &self,
70484        mut value: bool,
70485        ___deadline: zx::MonotonicInstant,
70486    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
70487        let _response = self.client.send_query::<
70488            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
70489            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70490        >(
70491            (value,),
70492            0x19259775b1a92768,
70493            fidl::encoding::DynamicFlags::empty(),
70494            ___deadline,
70495        )?;
70496        Ok(_response.map(|x| x))
70497    }
70498
70499    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
70500    pub fn r#get_ipv6_receive_packet_info(
70501        &self,
70502        ___deadline: zx::MonotonicInstant,
70503    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
70504        let _response = self
70505            .client
70506            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70507                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
70508                fidl_fuchsia_posix::Errno,
70509            >>(
70510                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
70511            )?;
70512        Ok(_response.map(|x| x.value))
70513    }
70514
70515    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
70516    pub fn r#get_original_destination(
70517        &self,
70518        ___deadline: zx::MonotonicInstant,
70519    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
70520        let _response = self
70521            .client
70522            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70523                BaseNetworkSocketGetOriginalDestinationResponse,
70524                fidl_fuchsia_posix::Errno,
70525            >>(
70526                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
70527            )?;
70528        Ok(_response.map(|x| x.value))
70529    }
70530
70531    /// Retrieves creation information from the socket.
70532    ///
70533    /// - response `domain` the socket's associated domain.
70534    /// - response `proto` the socket's associated protocol.
70535    pub fn r#get_info(
70536        &self,
70537        ___deadline: zx::MonotonicInstant,
70538    ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
70539        let _response = self
70540            .client
70541            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70542                BaseDatagramSocketGetInfoResponse,
70543                fidl_fuchsia_posix::Errno,
70544            >>(
70545                (), 0x48aa0a1f6a32d2ed, fidl::encoding::DynamicFlags::empty(), ___deadline
70546            )?;
70547        Ok(_response.map(|x| (x.domain, x.proto)))
70548    }
70549
70550    pub fn r#describe(
70551        &self,
70552        ___deadline: zx::MonotonicInstant,
70553    ) -> Result<SynchronousDatagramSocketDescribeResponse, fidl::Error> {
70554        let _response = self
70555            .client
70556            .send_query::<fidl::encoding::EmptyPayload, SynchronousDatagramSocketDescribeResponse>(
70557                (),
70558                0x585f20b73631070d,
70559                fidl::encoding::DynamicFlags::empty(),
70560                ___deadline,
70561            )?;
70562        Ok(_response)
70563    }
70564
70565    /// Receives a message from the socket.
70566    ///
70567    /// + request `want_addr` request message's source address information to
70568    ///   be returned.
70569    /// + request `data_len` the maximum allowed length of the response data
70570    ///   buffer.
70571    /// + request `want_control` request ancillary data to be returned.
70572    /// + request `flags` flags for the receive request.
70573    /// - response `addr` the message's source address information, if
70574    ///   requested.
70575    /// - response `data` the message.
70576    /// - response `control` control messages, if requested.
70577    /// - response `truncated` indicates whether or not the returned message
70578    ///   was truncated.
70579    pub fn r#recv_msg(
70580        &self,
70581        mut want_addr: bool,
70582        mut data_len: u32,
70583        mut want_control: bool,
70584        mut flags: RecvMsgFlags,
70585        ___deadline: zx::MonotonicInstant,
70586    ) -> Result<SynchronousDatagramSocketRecvMsgResult, fidl::Error> {
70587        let _response = self
70588            .client
70589            .send_query::<SynchronousDatagramSocketRecvMsgRequest, fidl::encoding::ResultType<
70590                SynchronousDatagramSocketRecvMsgResponse,
70591                fidl_fuchsia_posix::Errno,
70592            >>(
70593                (want_addr, data_len, want_control, flags),
70594                0x28e494e48fb5dbf3,
70595                fidl::encoding::DynamicFlags::empty(),
70596                ___deadline,
70597            )?;
70598        Ok(_response.map(|x| (x.addr, x.data, x.control, x.truncated)))
70599    }
70600
70601    /// Sends a message on the socket.
70602    ///
70603    /// + request `addr` the address to send the message to. If unset, will send
70604    ///   to the connected peer.
70605    /// + request `data` the message.
70606    /// + request `control` ancillary data.
70607    /// + request `flags` flags for the send request.
70608    /// - response `len` the number of bytes sent.
70609    pub fn r#send_msg(
70610        &self,
70611        mut addr: Option<&fidl_fuchsia_net::SocketAddress>,
70612        mut data: &[u8],
70613        mut control: &DatagramSocketSendControlData,
70614        mut flags: SendMsgFlags,
70615        ___deadline: zx::MonotonicInstant,
70616    ) -> Result<SynchronousDatagramSocketSendMsgResult, fidl::Error> {
70617        let _response = self
70618            .client
70619            .send_query::<SynchronousDatagramSocketSendMsgRequest, fidl::encoding::ResultType<
70620                SynchronousDatagramSocketSendMsgResponse,
70621                fidl_fuchsia_posix::Errno,
70622            >>(
70623                (addr, data, control, flags),
70624                0x12dc2fceab6cefaa,
70625                fidl::encoding::DynamicFlags::empty(),
70626                ___deadline,
70627            )?;
70628        Ok(_response.map(|x| x.len))
70629    }
70630}
70631
70632#[cfg(target_os = "fuchsia")]
70633impl From<SynchronousDatagramSocketSynchronousProxy> for zx::Handle {
70634    fn from(value: SynchronousDatagramSocketSynchronousProxy) -> Self {
70635        value.into_channel().into()
70636    }
70637}
70638
70639#[cfg(target_os = "fuchsia")]
70640impl From<fidl::Channel> for SynchronousDatagramSocketSynchronousProxy {
70641    fn from(value: fidl::Channel) -> Self {
70642        Self::new(value)
70643    }
70644}
70645
70646#[cfg(target_os = "fuchsia")]
70647impl fidl::endpoints::FromClient for SynchronousDatagramSocketSynchronousProxy {
70648    type Protocol = SynchronousDatagramSocketMarker;
70649
70650    fn from_client(value: fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>) -> Self {
70651        Self::new(value.into_channel())
70652    }
70653}
70654
70655#[derive(Debug, Clone)]
70656pub struct SynchronousDatagramSocketProxy {
70657    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
70658}
70659
70660impl fidl::endpoints::Proxy for SynchronousDatagramSocketProxy {
70661    type Protocol = SynchronousDatagramSocketMarker;
70662
70663    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
70664        Self::new(inner)
70665    }
70666
70667    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
70668        self.client.into_channel().map_err(|client| Self { client })
70669    }
70670
70671    fn as_channel(&self) -> &::fidl::AsyncChannel {
70672        self.client.as_channel()
70673    }
70674}
70675
70676impl SynchronousDatagramSocketProxy {
70677    /// Create a new Proxy for fuchsia.posix.socket/SynchronousDatagramSocket.
70678    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
70679        let protocol_name =
70680            <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
70681        Self { client: fidl::client::Client::new(channel, protocol_name) }
70682    }
70683
70684    /// Get a Stream of events from the remote end of the protocol.
70685    ///
70686    /// # Panics
70687    ///
70688    /// Panics if the event stream was already taken.
70689    pub fn take_event_stream(&self) -> SynchronousDatagramSocketEventStream {
70690        SynchronousDatagramSocketEventStream { event_receiver: self.client.take_event_receiver() }
70691    }
70692
70693    pub fn r#clone(
70694        &self,
70695        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
70696    ) -> Result<(), fidl::Error> {
70697        SynchronousDatagramSocketProxyInterface::r#clone(self, request)
70698    }
70699
70700    /// Terminates the connection.
70701    ///
70702    /// After calling `Close`, the client must not send any other requests.
70703    ///
70704    /// Servers, after sending the status response, should close the connection
70705    /// regardless of status and without sending an epitaph.
70706    ///
70707    /// Closing the client end of the channel should be semantically equivalent
70708    /// to calling `Close` without knowing when the close has completed or its
70709    /// status.
70710    pub fn r#close(
70711        &self,
70712    ) -> fidl::client::QueryResponseFut<
70713        fidl_fuchsia_unknown::CloseableCloseResult,
70714        fidl::encoding::DefaultFuchsiaResourceDialect,
70715    > {
70716        SynchronousDatagramSocketProxyInterface::r#close(self)
70717    }
70718
70719    pub fn r#query(
70720        &self,
70721    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
70722    {
70723        SynchronousDatagramSocketProxyInterface::r#query(self)
70724    }
70725
70726    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
70727    pub fn r#set_reuse_address(
70728        &self,
70729        mut value: bool,
70730    ) -> fidl::client::QueryResponseFut<
70731        BaseSocketSetReuseAddressResult,
70732        fidl::encoding::DefaultFuchsiaResourceDialect,
70733    > {
70734        SynchronousDatagramSocketProxyInterface::r#set_reuse_address(self, value)
70735    }
70736
70737    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
70738    pub fn r#get_reuse_address(
70739        &self,
70740    ) -> fidl::client::QueryResponseFut<
70741        BaseSocketGetReuseAddressResult,
70742        fidl::encoding::DefaultFuchsiaResourceDialect,
70743    > {
70744        SynchronousDatagramSocketProxyInterface::r#get_reuse_address(self)
70745    }
70746
70747    /// Get `SOL_SOCKET` -> `SO_ERROR`.
70748    /// Returns the last error if there is an error set on the socket.
70749    pub fn r#get_error(
70750        &self,
70751    ) -> fidl::client::QueryResponseFut<
70752        BaseSocketGetErrorResult,
70753        fidl::encoding::DefaultFuchsiaResourceDialect,
70754    > {
70755        SynchronousDatagramSocketProxyInterface::r#get_error(self)
70756    }
70757
70758    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
70759    pub fn r#set_broadcast(
70760        &self,
70761        mut value: bool,
70762    ) -> fidl::client::QueryResponseFut<
70763        BaseSocketSetBroadcastResult,
70764        fidl::encoding::DefaultFuchsiaResourceDialect,
70765    > {
70766        SynchronousDatagramSocketProxyInterface::r#set_broadcast(self, value)
70767    }
70768
70769    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
70770    pub fn r#get_broadcast(
70771        &self,
70772    ) -> fidl::client::QueryResponseFut<
70773        BaseSocketGetBroadcastResult,
70774        fidl::encoding::DefaultFuchsiaResourceDialect,
70775    > {
70776        SynchronousDatagramSocketProxyInterface::r#get_broadcast(self)
70777    }
70778
70779    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
70780    pub fn r#set_send_buffer(
70781        &self,
70782        mut value_bytes: u64,
70783    ) -> fidl::client::QueryResponseFut<
70784        BaseSocketSetSendBufferResult,
70785        fidl::encoding::DefaultFuchsiaResourceDialect,
70786    > {
70787        SynchronousDatagramSocketProxyInterface::r#set_send_buffer(self, value_bytes)
70788    }
70789
70790    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
70791    pub fn r#get_send_buffer(
70792        &self,
70793    ) -> fidl::client::QueryResponseFut<
70794        BaseSocketGetSendBufferResult,
70795        fidl::encoding::DefaultFuchsiaResourceDialect,
70796    > {
70797        SynchronousDatagramSocketProxyInterface::r#get_send_buffer(self)
70798    }
70799
70800    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
70801    pub fn r#set_receive_buffer(
70802        &self,
70803        mut value_bytes: u64,
70804    ) -> fidl::client::QueryResponseFut<
70805        BaseSocketSetReceiveBufferResult,
70806        fidl::encoding::DefaultFuchsiaResourceDialect,
70807    > {
70808        SynchronousDatagramSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
70809    }
70810
70811    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
70812    pub fn r#get_receive_buffer(
70813        &self,
70814    ) -> fidl::client::QueryResponseFut<
70815        BaseSocketGetReceiveBufferResult,
70816        fidl::encoding::DefaultFuchsiaResourceDialect,
70817    > {
70818        SynchronousDatagramSocketProxyInterface::r#get_receive_buffer(self)
70819    }
70820
70821    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
70822    pub fn r#set_keep_alive(
70823        &self,
70824        mut value: bool,
70825    ) -> fidl::client::QueryResponseFut<
70826        BaseSocketSetKeepAliveResult,
70827        fidl::encoding::DefaultFuchsiaResourceDialect,
70828    > {
70829        SynchronousDatagramSocketProxyInterface::r#set_keep_alive(self, value)
70830    }
70831
70832    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
70833    pub fn r#get_keep_alive(
70834        &self,
70835    ) -> fidl::client::QueryResponseFut<
70836        BaseSocketGetKeepAliveResult,
70837        fidl::encoding::DefaultFuchsiaResourceDialect,
70838    > {
70839        SynchronousDatagramSocketProxyInterface::r#get_keep_alive(self)
70840    }
70841
70842    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
70843    pub fn r#set_out_of_band_inline(
70844        &self,
70845        mut value: bool,
70846    ) -> fidl::client::QueryResponseFut<
70847        BaseSocketSetOutOfBandInlineResult,
70848        fidl::encoding::DefaultFuchsiaResourceDialect,
70849    > {
70850        SynchronousDatagramSocketProxyInterface::r#set_out_of_band_inline(self, value)
70851    }
70852
70853    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
70854    pub fn r#get_out_of_band_inline(
70855        &self,
70856    ) -> fidl::client::QueryResponseFut<
70857        BaseSocketGetOutOfBandInlineResult,
70858        fidl::encoding::DefaultFuchsiaResourceDialect,
70859    > {
70860        SynchronousDatagramSocketProxyInterface::r#get_out_of_band_inline(self)
70861    }
70862
70863    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
70864    pub fn r#set_no_check(
70865        &self,
70866        mut value: bool,
70867    ) -> fidl::client::QueryResponseFut<
70868        BaseSocketSetNoCheckResult,
70869        fidl::encoding::DefaultFuchsiaResourceDialect,
70870    > {
70871        SynchronousDatagramSocketProxyInterface::r#set_no_check(self, value)
70872    }
70873
70874    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
70875    pub fn r#get_no_check(
70876        &self,
70877    ) -> fidl::client::QueryResponseFut<
70878        BaseSocketGetNoCheckResult,
70879        fidl::encoding::DefaultFuchsiaResourceDialect,
70880    > {
70881        SynchronousDatagramSocketProxyInterface::r#get_no_check(self)
70882    }
70883
70884    /// Set `SOL_SOCKET` -> `SO_LINGER`.
70885    pub fn r#set_linger(
70886        &self,
70887        mut linger: bool,
70888        mut length_secs: u32,
70889    ) -> fidl::client::QueryResponseFut<
70890        BaseSocketSetLingerResult,
70891        fidl::encoding::DefaultFuchsiaResourceDialect,
70892    > {
70893        SynchronousDatagramSocketProxyInterface::r#set_linger(self, linger, length_secs)
70894    }
70895
70896    /// Get `SOL_SOCKET` -> `SO_LINGER`.
70897    pub fn r#get_linger(
70898        &self,
70899    ) -> fidl::client::QueryResponseFut<
70900        BaseSocketGetLingerResult,
70901        fidl::encoding::DefaultFuchsiaResourceDialect,
70902    > {
70903        SynchronousDatagramSocketProxyInterface::r#get_linger(self)
70904    }
70905
70906    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
70907    pub fn r#set_reuse_port(
70908        &self,
70909        mut value: bool,
70910    ) -> fidl::client::QueryResponseFut<
70911        BaseSocketSetReusePortResult,
70912        fidl::encoding::DefaultFuchsiaResourceDialect,
70913    > {
70914        SynchronousDatagramSocketProxyInterface::r#set_reuse_port(self, value)
70915    }
70916
70917    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
70918    pub fn r#get_reuse_port(
70919        &self,
70920    ) -> fidl::client::QueryResponseFut<
70921        BaseSocketGetReusePortResult,
70922        fidl::encoding::DefaultFuchsiaResourceDialect,
70923    > {
70924        SynchronousDatagramSocketProxyInterface::r#get_reuse_port(self)
70925    }
70926
70927    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
70928    pub fn r#get_accept_conn(
70929        &self,
70930    ) -> fidl::client::QueryResponseFut<
70931        BaseSocketGetAcceptConnResult,
70932        fidl::encoding::DefaultFuchsiaResourceDialect,
70933    > {
70934        SynchronousDatagramSocketProxyInterface::r#get_accept_conn(self)
70935    }
70936
70937    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
70938    pub fn r#set_bind_to_device(
70939        &self,
70940        mut value: &str,
70941    ) -> fidl::client::QueryResponseFut<
70942        BaseSocketSetBindToDeviceResult,
70943        fidl::encoding::DefaultFuchsiaResourceDialect,
70944    > {
70945        SynchronousDatagramSocketProxyInterface::r#set_bind_to_device(self, value)
70946    }
70947
70948    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
70949    pub fn r#get_bind_to_device(
70950        &self,
70951    ) -> fidl::client::QueryResponseFut<
70952        BaseSocketGetBindToDeviceResult,
70953        fidl::encoding::DefaultFuchsiaResourceDialect,
70954    > {
70955        SynchronousDatagramSocketProxyInterface::r#get_bind_to_device(self)
70956    }
70957
70958    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
70959    /// If `value` is 0, this clears the bound interface.
70960    pub fn r#set_bind_to_interface_index(
70961        &self,
70962        mut value: u64,
70963    ) -> fidl::client::QueryResponseFut<
70964        BaseSocketSetBindToInterfaceIndexResult,
70965        fidl::encoding::DefaultFuchsiaResourceDialect,
70966    > {
70967        SynchronousDatagramSocketProxyInterface::r#set_bind_to_interface_index(self, value)
70968    }
70969
70970    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
70971    pub fn r#get_bind_to_interface_index(
70972        &self,
70973    ) -> fidl::client::QueryResponseFut<
70974        BaseSocketGetBindToInterfaceIndexResult,
70975        fidl::encoding::DefaultFuchsiaResourceDialect,
70976    > {
70977        SynchronousDatagramSocketProxyInterface::r#get_bind_to_interface_index(self)
70978    }
70979
70980    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
70981    pub fn r#set_timestamp(
70982        &self,
70983        mut value: TimestampOption,
70984    ) -> fidl::client::QueryResponseFut<
70985        BaseSocketSetTimestampResult,
70986        fidl::encoding::DefaultFuchsiaResourceDialect,
70987    > {
70988        SynchronousDatagramSocketProxyInterface::r#set_timestamp(self, value)
70989    }
70990
70991    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
70992    pub fn r#get_timestamp(
70993        &self,
70994    ) -> fidl::client::QueryResponseFut<
70995        BaseSocketGetTimestampResult,
70996        fidl::encoding::DefaultFuchsiaResourceDialect,
70997    > {
70998        SynchronousDatagramSocketProxyInterface::r#get_timestamp(self)
70999    }
71000
71001    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
71002    /// unlike the standard SO_MARK, this API has multiple mark domains and each
71003    /// mark can be set independently in each domain.
71004    pub fn r#set_mark(
71005        &self,
71006        mut domain: fidl_fuchsia_net::MarkDomain,
71007        mut mark: &OptionalUint32,
71008    ) -> fidl::client::QueryResponseFut<
71009        BaseSocketSetMarkResult,
71010        fidl::encoding::DefaultFuchsiaResourceDialect,
71011    > {
71012        SynchronousDatagramSocketProxyInterface::r#set_mark(self, domain, mark)
71013    }
71014
71015    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
71016    /// unlike the standard SO_MARK, this API has multiple mark domains and each
71017    /// mark can be retrieved independently in each domain.
71018    pub fn r#get_mark(
71019        &self,
71020        mut domain: fidl_fuchsia_net::MarkDomain,
71021    ) -> fidl::client::QueryResponseFut<
71022        BaseSocketGetMarkResult,
71023        fidl::encoding::DefaultFuchsiaResourceDialect,
71024    > {
71025        SynchronousDatagramSocketProxyInterface::r#get_mark(self, domain)
71026    }
71027
71028    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
71029    pub fn r#get_cookie(
71030        &self,
71031    ) -> fidl::client::QueryResponseFut<
71032        BaseSocketGetCookieResult,
71033        fidl::encoding::DefaultFuchsiaResourceDialect,
71034    > {
71035        SynchronousDatagramSocketProxyInterface::r#get_cookie(self)
71036    }
71037
71038    /// Sets the local address used for the socket.
71039    pub fn r#bind(
71040        &self,
71041        mut addr: &fidl_fuchsia_net::SocketAddress,
71042    ) -> fidl::client::QueryResponseFut<
71043        BaseNetworkSocketBindResult,
71044        fidl::encoding::DefaultFuchsiaResourceDialect,
71045    > {
71046        SynchronousDatagramSocketProxyInterface::r#bind(self, addr)
71047    }
71048
71049    /// Initiates a connection to a remote address.
71050    pub fn r#connect(
71051        &self,
71052        mut addr: &fidl_fuchsia_net::SocketAddress,
71053    ) -> fidl::client::QueryResponseFut<
71054        BaseNetworkSocketConnectResult,
71055        fidl::encoding::DefaultFuchsiaResourceDialect,
71056    > {
71057        SynchronousDatagramSocketProxyInterface::r#connect(self, addr)
71058    }
71059
71060    /// Clears connection information from this socket.
71061    pub fn r#disconnect(
71062        &self,
71063    ) -> fidl::client::QueryResponseFut<
71064        BaseNetworkSocketDisconnectResult,
71065        fidl::encoding::DefaultFuchsiaResourceDialect,
71066    > {
71067        SynchronousDatagramSocketProxyInterface::r#disconnect(self)
71068    }
71069
71070    /// Retrieves the local socket address.
71071    pub fn r#get_sock_name(
71072        &self,
71073    ) -> fidl::client::QueryResponseFut<
71074        BaseNetworkSocketGetSockNameResult,
71075        fidl::encoding::DefaultFuchsiaResourceDialect,
71076    > {
71077        SynchronousDatagramSocketProxyInterface::r#get_sock_name(self)
71078    }
71079
71080    /// Retrieves the remote socket address.
71081    pub fn r#get_peer_name(
71082        &self,
71083    ) -> fidl::client::QueryResponseFut<
71084        BaseNetworkSocketGetPeerNameResult,
71085        fidl::encoding::DefaultFuchsiaResourceDialect,
71086    > {
71087        SynchronousDatagramSocketProxyInterface::r#get_peer_name(self)
71088    }
71089
71090    /// Shuts down part of the socket.
71091    pub fn r#shutdown(
71092        &self,
71093        mut mode: ShutdownMode,
71094    ) -> fidl::client::QueryResponseFut<
71095        BaseNetworkSocketShutdownResult,
71096        fidl::encoding::DefaultFuchsiaResourceDialect,
71097    > {
71098        SynchronousDatagramSocketProxyInterface::r#shutdown(self, mode)
71099    }
71100
71101    /// Set `SOL_IP` -> `IP_TOS`.
71102    pub fn r#set_ip_type_of_service(
71103        &self,
71104        mut value: u8,
71105    ) -> fidl::client::QueryResponseFut<
71106        BaseNetworkSocketSetIpTypeOfServiceResult,
71107        fidl::encoding::DefaultFuchsiaResourceDialect,
71108    > {
71109        SynchronousDatagramSocketProxyInterface::r#set_ip_type_of_service(self, value)
71110    }
71111
71112    /// Get `SOL_IP` -> `IP_TOS`.
71113    pub fn r#get_ip_type_of_service(
71114        &self,
71115    ) -> fidl::client::QueryResponseFut<
71116        BaseNetworkSocketGetIpTypeOfServiceResult,
71117        fidl::encoding::DefaultFuchsiaResourceDialect,
71118    > {
71119        SynchronousDatagramSocketProxyInterface::r#get_ip_type_of_service(self)
71120    }
71121
71122    /// Set `SOL_IP` -> `IP_TTL`.
71123    pub fn r#set_ip_ttl(
71124        &self,
71125        mut value: &OptionalUint8,
71126    ) -> fidl::client::QueryResponseFut<
71127        BaseNetworkSocketSetIpTtlResult,
71128        fidl::encoding::DefaultFuchsiaResourceDialect,
71129    > {
71130        SynchronousDatagramSocketProxyInterface::r#set_ip_ttl(self, value)
71131    }
71132
71133    /// Get `SOL_IP` -> `IP_TTL`.
71134    pub fn r#get_ip_ttl(
71135        &self,
71136    ) -> fidl::client::QueryResponseFut<
71137        BaseNetworkSocketGetIpTtlResult,
71138        fidl::encoding::DefaultFuchsiaResourceDialect,
71139    > {
71140        SynchronousDatagramSocketProxyInterface::r#get_ip_ttl(self)
71141    }
71142
71143    /// Set `SOL_IP` -> `IP_PKTINFO`.
71144    pub fn r#set_ip_packet_info(
71145        &self,
71146        mut value: bool,
71147    ) -> fidl::client::QueryResponseFut<
71148        BaseNetworkSocketSetIpPacketInfoResult,
71149        fidl::encoding::DefaultFuchsiaResourceDialect,
71150    > {
71151        SynchronousDatagramSocketProxyInterface::r#set_ip_packet_info(self, value)
71152    }
71153
71154    /// Get `SOL_IP` -> `IP_PKTINFO`.
71155    pub fn r#get_ip_packet_info(
71156        &self,
71157    ) -> fidl::client::QueryResponseFut<
71158        BaseNetworkSocketGetIpPacketInfoResult,
71159        fidl::encoding::DefaultFuchsiaResourceDialect,
71160    > {
71161        SynchronousDatagramSocketProxyInterface::r#get_ip_packet_info(self)
71162    }
71163
71164    /// Set `SOL_IP` -> `IP_RECVTOS`.
71165    pub fn r#set_ip_receive_type_of_service(
71166        &self,
71167        mut value: bool,
71168    ) -> fidl::client::QueryResponseFut<
71169        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
71170        fidl::encoding::DefaultFuchsiaResourceDialect,
71171    > {
71172        SynchronousDatagramSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
71173    }
71174
71175    /// Get `SOL_IP` -> `IP_RECVTOS`.
71176    pub fn r#get_ip_receive_type_of_service(
71177        &self,
71178    ) -> fidl::client::QueryResponseFut<
71179        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
71180        fidl::encoding::DefaultFuchsiaResourceDialect,
71181    > {
71182        SynchronousDatagramSocketProxyInterface::r#get_ip_receive_type_of_service(self)
71183    }
71184
71185    /// Set `SOL_IP` -> `IP_RECVTTL`.
71186    pub fn r#set_ip_receive_ttl(
71187        &self,
71188        mut value: bool,
71189    ) -> fidl::client::QueryResponseFut<
71190        BaseNetworkSocketSetIpReceiveTtlResult,
71191        fidl::encoding::DefaultFuchsiaResourceDialect,
71192    > {
71193        SynchronousDatagramSocketProxyInterface::r#set_ip_receive_ttl(self, value)
71194    }
71195
71196    /// Get `SOL_IP` -> `IP_RECVTTL`.
71197    pub fn r#get_ip_receive_ttl(
71198        &self,
71199    ) -> fidl::client::QueryResponseFut<
71200        BaseNetworkSocketGetIpReceiveTtlResult,
71201        fidl::encoding::DefaultFuchsiaResourceDialect,
71202    > {
71203        SynchronousDatagramSocketProxyInterface::r#get_ip_receive_ttl(self)
71204    }
71205
71206    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
71207    pub fn r#set_ip_multicast_interface(
71208        &self,
71209        mut iface: u64,
71210        mut address: &fidl_fuchsia_net::Ipv4Address,
71211    ) -> fidl::client::QueryResponseFut<
71212        BaseNetworkSocketSetIpMulticastInterfaceResult,
71213        fidl::encoding::DefaultFuchsiaResourceDialect,
71214    > {
71215        SynchronousDatagramSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
71216    }
71217
71218    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
71219    pub fn r#get_ip_multicast_interface(
71220        &self,
71221    ) -> fidl::client::QueryResponseFut<
71222        BaseNetworkSocketGetIpMulticastInterfaceResult,
71223        fidl::encoding::DefaultFuchsiaResourceDialect,
71224    > {
71225        SynchronousDatagramSocketProxyInterface::r#get_ip_multicast_interface(self)
71226    }
71227
71228    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
71229    pub fn r#set_ip_multicast_ttl(
71230        &self,
71231        mut value: &OptionalUint8,
71232    ) -> fidl::client::QueryResponseFut<
71233        BaseNetworkSocketSetIpMulticastTtlResult,
71234        fidl::encoding::DefaultFuchsiaResourceDialect,
71235    > {
71236        SynchronousDatagramSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
71237    }
71238
71239    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
71240    pub fn r#get_ip_multicast_ttl(
71241        &self,
71242    ) -> fidl::client::QueryResponseFut<
71243        BaseNetworkSocketGetIpMulticastTtlResult,
71244        fidl::encoding::DefaultFuchsiaResourceDialect,
71245    > {
71246        SynchronousDatagramSocketProxyInterface::r#get_ip_multicast_ttl(self)
71247    }
71248
71249    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
71250    pub fn r#set_ip_multicast_loopback(
71251        &self,
71252        mut value: bool,
71253    ) -> fidl::client::QueryResponseFut<
71254        BaseNetworkSocketSetIpMulticastLoopbackResult,
71255        fidl::encoding::DefaultFuchsiaResourceDialect,
71256    > {
71257        SynchronousDatagramSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
71258    }
71259
71260    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
71261    pub fn r#get_ip_multicast_loopback(
71262        &self,
71263    ) -> fidl::client::QueryResponseFut<
71264        BaseNetworkSocketGetIpMulticastLoopbackResult,
71265        fidl::encoding::DefaultFuchsiaResourceDialect,
71266    > {
71267        SynchronousDatagramSocketProxyInterface::r#get_ip_multicast_loopback(self)
71268    }
71269
71270    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
71271    pub fn r#add_ip_membership(
71272        &self,
71273        mut membership: &IpMulticastMembership,
71274    ) -> fidl::client::QueryResponseFut<
71275        BaseNetworkSocketAddIpMembershipResult,
71276        fidl::encoding::DefaultFuchsiaResourceDialect,
71277    > {
71278        SynchronousDatagramSocketProxyInterface::r#add_ip_membership(self, membership)
71279    }
71280
71281    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
71282    pub fn r#drop_ip_membership(
71283        &self,
71284        mut membership: &IpMulticastMembership,
71285    ) -> fidl::client::QueryResponseFut<
71286        BaseNetworkSocketDropIpMembershipResult,
71287        fidl::encoding::DefaultFuchsiaResourceDialect,
71288    > {
71289        SynchronousDatagramSocketProxyInterface::r#drop_ip_membership(self, membership)
71290    }
71291
71292    /// Set `SOL_IP` -> `IP_TRANSPARENT`
71293    pub fn r#set_ip_transparent(
71294        &self,
71295        mut value: bool,
71296    ) -> fidl::client::QueryResponseFut<
71297        BaseNetworkSocketSetIpTransparentResult,
71298        fidl::encoding::DefaultFuchsiaResourceDialect,
71299    > {
71300        SynchronousDatagramSocketProxyInterface::r#set_ip_transparent(self, value)
71301    }
71302
71303    /// Get `SOL_IP` -> `IP_TRANSPARENT`
71304    pub fn r#get_ip_transparent(
71305        &self,
71306    ) -> fidl::client::QueryResponseFut<
71307        BaseNetworkSocketGetIpTransparentResult,
71308        fidl::encoding::DefaultFuchsiaResourceDialect,
71309    > {
71310        SynchronousDatagramSocketProxyInterface::r#get_ip_transparent(self)
71311    }
71312
71313    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
71314    pub fn r#set_ip_receive_original_destination_address(
71315        &self,
71316        mut value: bool,
71317    ) -> fidl::client::QueryResponseFut<
71318        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
71319        fidl::encoding::DefaultFuchsiaResourceDialect,
71320    > {
71321        SynchronousDatagramSocketProxyInterface::r#set_ip_receive_original_destination_address(
71322            self, value,
71323        )
71324    }
71325
71326    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
71327    pub fn r#get_ip_receive_original_destination_address(
71328        &self,
71329    ) -> fidl::client::QueryResponseFut<
71330        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
71331        fidl::encoding::DefaultFuchsiaResourceDialect,
71332    > {
71333        SynchronousDatagramSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
71334    }
71335
71336    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
71337    pub fn r#add_ipv6_membership(
71338        &self,
71339        mut membership: &Ipv6MulticastMembership,
71340    ) -> fidl::client::QueryResponseFut<
71341        BaseNetworkSocketAddIpv6MembershipResult,
71342        fidl::encoding::DefaultFuchsiaResourceDialect,
71343    > {
71344        SynchronousDatagramSocketProxyInterface::r#add_ipv6_membership(self, membership)
71345    }
71346
71347    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
71348    pub fn r#drop_ipv6_membership(
71349        &self,
71350        mut membership: &Ipv6MulticastMembership,
71351    ) -> fidl::client::QueryResponseFut<
71352        BaseNetworkSocketDropIpv6MembershipResult,
71353        fidl::encoding::DefaultFuchsiaResourceDialect,
71354    > {
71355        SynchronousDatagramSocketProxyInterface::r#drop_ipv6_membership(self, membership)
71356    }
71357
71358    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
71359    pub fn r#set_ipv6_multicast_interface(
71360        &self,
71361        mut value: u64,
71362    ) -> fidl::client::QueryResponseFut<
71363        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
71364        fidl::encoding::DefaultFuchsiaResourceDialect,
71365    > {
71366        SynchronousDatagramSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
71367    }
71368
71369    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
71370    pub fn r#get_ipv6_multicast_interface(
71371        &self,
71372    ) -> fidl::client::QueryResponseFut<
71373        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
71374        fidl::encoding::DefaultFuchsiaResourceDialect,
71375    > {
71376        SynchronousDatagramSocketProxyInterface::r#get_ipv6_multicast_interface(self)
71377    }
71378
71379    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
71380    pub fn r#set_ipv6_unicast_hops(
71381        &self,
71382        mut value: &OptionalUint8,
71383    ) -> fidl::client::QueryResponseFut<
71384        BaseNetworkSocketSetIpv6UnicastHopsResult,
71385        fidl::encoding::DefaultFuchsiaResourceDialect,
71386    > {
71387        SynchronousDatagramSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
71388    }
71389
71390    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
71391    pub fn r#get_ipv6_unicast_hops(
71392        &self,
71393    ) -> fidl::client::QueryResponseFut<
71394        BaseNetworkSocketGetIpv6UnicastHopsResult,
71395        fidl::encoding::DefaultFuchsiaResourceDialect,
71396    > {
71397        SynchronousDatagramSocketProxyInterface::r#get_ipv6_unicast_hops(self)
71398    }
71399
71400    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
71401    pub fn r#set_ipv6_receive_hop_limit(
71402        &self,
71403        mut value: bool,
71404    ) -> fidl::client::QueryResponseFut<
71405        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
71406        fidl::encoding::DefaultFuchsiaResourceDialect,
71407    > {
71408        SynchronousDatagramSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
71409    }
71410
71411    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
71412    pub fn r#get_ipv6_receive_hop_limit(
71413        &self,
71414    ) -> fidl::client::QueryResponseFut<
71415        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
71416        fidl::encoding::DefaultFuchsiaResourceDialect,
71417    > {
71418        SynchronousDatagramSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
71419    }
71420
71421    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
71422    pub fn r#set_ipv6_multicast_hops(
71423        &self,
71424        mut value: &OptionalUint8,
71425    ) -> fidl::client::QueryResponseFut<
71426        BaseNetworkSocketSetIpv6MulticastHopsResult,
71427        fidl::encoding::DefaultFuchsiaResourceDialect,
71428    > {
71429        SynchronousDatagramSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
71430    }
71431
71432    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
71433    pub fn r#get_ipv6_multicast_hops(
71434        &self,
71435    ) -> fidl::client::QueryResponseFut<
71436        BaseNetworkSocketGetIpv6MulticastHopsResult,
71437        fidl::encoding::DefaultFuchsiaResourceDialect,
71438    > {
71439        SynchronousDatagramSocketProxyInterface::r#get_ipv6_multicast_hops(self)
71440    }
71441
71442    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
71443    pub fn r#set_ipv6_multicast_loopback(
71444        &self,
71445        mut value: bool,
71446    ) -> fidl::client::QueryResponseFut<
71447        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
71448        fidl::encoding::DefaultFuchsiaResourceDialect,
71449    > {
71450        SynchronousDatagramSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
71451    }
71452
71453    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
71454    pub fn r#get_ipv6_multicast_loopback(
71455        &self,
71456    ) -> fidl::client::QueryResponseFut<
71457        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
71458        fidl::encoding::DefaultFuchsiaResourceDialect,
71459    > {
71460        SynchronousDatagramSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
71461    }
71462
71463    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
71464    pub fn r#set_ipv6_only(
71465        &self,
71466        mut value: bool,
71467    ) -> fidl::client::QueryResponseFut<
71468        BaseNetworkSocketSetIpv6OnlyResult,
71469        fidl::encoding::DefaultFuchsiaResourceDialect,
71470    > {
71471        SynchronousDatagramSocketProxyInterface::r#set_ipv6_only(self, value)
71472    }
71473
71474    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
71475    pub fn r#get_ipv6_only(
71476        &self,
71477    ) -> fidl::client::QueryResponseFut<
71478        BaseNetworkSocketGetIpv6OnlyResult,
71479        fidl::encoding::DefaultFuchsiaResourceDialect,
71480    > {
71481        SynchronousDatagramSocketProxyInterface::r#get_ipv6_only(self)
71482    }
71483
71484    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
71485    pub fn r#set_ipv6_receive_traffic_class(
71486        &self,
71487        mut value: bool,
71488    ) -> fidl::client::QueryResponseFut<
71489        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
71490        fidl::encoding::DefaultFuchsiaResourceDialect,
71491    > {
71492        SynchronousDatagramSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
71493    }
71494
71495    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
71496    pub fn r#get_ipv6_receive_traffic_class(
71497        &self,
71498    ) -> fidl::client::QueryResponseFut<
71499        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
71500        fidl::encoding::DefaultFuchsiaResourceDialect,
71501    > {
71502        SynchronousDatagramSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
71503    }
71504
71505    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
71506    pub fn r#set_ipv6_traffic_class(
71507        &self,
71508        mut value: &OptionalUint8,
71509    ) -> fidl::client::QueryResponseFut<
71510        BaseNetworkSocketSetIpv6TrafficClassResult,
71511        fidl::encoding::DefaultFuchsiaResourceDialect,
71512    > {
71513        SynchronousDatagramSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
71514    }
71515
71516    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
71517    pub fn r#get_ipv6_traffic_class(
71518        &self,
71519    ) -> fidl::client::QueryResponseFut<
71520        BaseNetworkSocketGetIpv6TrafficClassResult,
71521        fidl::encoding::DefaultFuchsiaResourceDialect,
71522    > {
71523        SynchronousDatagramSocketProxyInterface::r#get_ipv6_traffic_class(self)
71524    }
71525
71526    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
71527    pub fn r#set_ipv6_receive_packet_info(
71528        &self,
71529        mut value: bool,
71530    ) -> fidl::client::QueryResponseFut<
71531        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
71532        fidl::encoding::DefaultFuchsiaResourceDialect,
71533    > {
71534        SynchronousDatagramSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
71535    }
71536
71537    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
71538    pub fn r#get_ipv6_receive_packet_info(
71539        &self,
71540    ) -> fidl::client::QueryResponseFut<
71541        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
71542        fidl::encoding::DefaultFuchsiaResourceDialect,
71543    > {
71544        SynchronousDatagramSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
71545    }
71546
71547    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
71548    pub fn r#get_original_destination(
71549        &self,
71550    ) -> fidl::client::QueryResponseFut<
71551        BaseNetworkSocketGetOriginalDestinationResult,
71552        fidl::encoding::DefaultFuchsiaResourceDialect,
71553    > {
71554        SynchronousDatagramSocketProxyInterface::r#get_original_destination(self)
71555    }
71556
71557    /// Retrieves creation information from the socket.
71558    ///
71559    /// - response `domain` the socket's associated domain.
71560    /// - response `proto` the socket's associated protocol.
71561    pub fn r#get_info(
71562        &self,
71563    ) -> fidl::client::QueryResponseFut<
71564        BaseDatagramSocketGetInfoResult,
71565        fidl::encoding::DefaultFuchsiaResourceDialect,
71566    > {
71567        SynchronousDatagramSocketProxyInterface::r#get_info(self)
71568    }
71569
71570    pub fn r#describe(
71571        &self,
71572    ) -> fidl::client::QueryResponseFut<
71573        SynchronousDatagramSocketDescribeResponse,
71574        fidl::encoding::DefaultFuchsiaResourceDialect,
71575    > {
71576        SynchronousDatagramSocketProxyInterface::r#describe(self)
71577    }
71578
71579    /// Receives a message from the socket.
71580    ///
71581    /// + request `want_addr` request message's source address information to
71582    ///   be returned.
71583    /// + request `data_len` the maximum allowed length of the response data
71584    ///   buffer.
71585    /// + request `want_control` request ancillary data to be returned.
71586    /// + request `flags` flags for the receive request.
71587    /// - response `addr` the message's source address information, if
71588    ///   requested.
71589    /// - response `data` the message.
71590    /// - response `control` control messages, if requested.
71591    /// - response `truncated` indicates whether or not the returned message
71592    ///   was truncated.
71593    pub fn r#recv_msg(
71594        &self,
71595        mut want_addr: bool,
71596        mut data_len: u32,
71597        mut want_control: bool,
71598        mut flags: RecvMsgFlags,
71599    ) -> fidl::client::QueryResponseFut<
71600        SynchronousDatagramSocketRecvMsgResult,
71601        fidl::encoding::DefaultFuchsiaResourceDialect,
71602    > {
71603        SynchronousDatagramSocketProxyInterface::r#recv_msg(
71604            self,
71605            want_addr,
71606            data_len,
71607            want_control,
71608            flags,
71609        )
71610    }
71611
71612    /// Sends a message on the socket.
71613    ///
71614    /// + request `addr` the address to send the message to. If unset, will send
71615    ///   to the connected peer.
71616    /// + request `data` the message.
71617    /// + request `control` ancillary data.
71618    /// + request `flags` flags for the send request.
71619    /// - response `len` the number of bytes sent.
71620    pub fn r#send_msg(
71621        &self,
71622        mut addr: Option<&fidl_fuchsia_net::SocketAddress>,
71623        mut data: &[u8],
71624        mut control: &DatagramSocketSendControlData,
71625        mut flags: SendMsgFlags,
71626    ) -> fidl::client::QueryResponseFut<
71627        SynchronousDatagramSocketSendMsgResult,
71628        fidl::encoding::DefaultFuchsiaResourceDialect,
71629    > {
71630        SynchronousDatagramSocketProxyInterface::r#send_msg(self, addr, data, control, flags)
71631    }
71632}
71633
71634impl SynchronousDatagramSocketProxyInterface for SynchronousDatagramSocketProxy {
71635    fn r#clone(
71636        &self,
71637        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
71638    ) -> Result<(), fidl::Error> {
71639        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
71640            (request,),
71641            0x20d8a7aba2168a79,
71642            fidl::encoding::DynamicFlags::empty(),
71643        )
71644    }
71645
71646    type CloseResponseFut = fidl::client::QueryResponseFut<
71647        fidl_fuchsia_unknown::CloseableCloseResult,
71648        fidl::encoding::DefaultFuchsiaResourceDialect,
71649    >;
71650    fn r#close(&self) -> Self::CloseResponseFut {
71651        fn _decode(
71652            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71653        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
71654            let _response = fidl::client::decode_transaction_body::<
71655                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
71656                fidl::encoding::DefaultFuchsiaResourceDialect,
71657                0x5ac5d459ad7f657e,
71658            >(_buf?)?;
71659            Ok(_response.map(|x| x))
71660        }
71661        self.client.send_query_and_decode::<
71662            fidl::encoding::EmptyPayload,
71663            fidl_fuchsia_unknown::CloseableCloseResult,
71664        >(
71665            (),
71666            0x5ac5d459ad7f657e,
71667            fidl::encoding::DynamicFlags::empty(),
71668            _decode,
71669        )
71670    }
71671
71672    type QueryResponseFut =
71673        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
71674    fn r#query(&self) -> Self::QueryResponseFut {
71675        fn _decode(
71676            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71677        ) -> Result<Vec<u8>, fidl::Error> {
71678            let _response = fidl::client::decode_transaction_body::<
71679                fidl_fuchsia_unknown::QueryableQueryResponse,
71680                fidl::encoding::DefaultFuchsiaResourceDialect,
71681                0x2658edee9decfc06,
71682            >(_buf?)?;
71683            Ok(_response.protocol)
71684        }
71685        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
71686            (),
71687            0x2658edee9decfc06,
71688            fidl::encoding::DynamicFlags::empty(),
71689            _decode,
71690        )
71691    }
71692
71693    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
71694        BaseSocketSetReuseAddressResult,
71695        fidl::encoding::DefaultFuchsiaResourceDialect,
71696    >;
71697    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
71698        fn _decode(
71699            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71700        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
71701            let _response = fidl::client::decode_transaction_body::<
71702                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71703                fidl::encoding::DefaultFuchsiaResourceDialect,
71704                0x1fd74ee8b9a4a876,
71705            >(_buf?)?;
71706            Ok(_response.map(|x| x))
71707        }
71708        self.client.send_query_and_decode::<
71709            BaseSocketSetReuseAddressRequest,
71710            BaseSocketSetReuseAddressResult,
71711        >(
71712            (value,),
71713            0x1fd74ee8b9a4a876,
71714            fidl::encoding::DynamicFlags::empty(),
71715            _decode,
71716        )
71717    }
71718
71719    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
71720        BaseSocketGetReuseAddressResult,
71721        fidl::encoding::DefaultFuchsiaResourceDialect,
71722    >;
71723    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
71724        fn _decode(
71725            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71726        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
71727            let _response = fidl::client::decode_transaction_body::<
71728                fidl::encoding::ResultType<
71729                    BaseSocketGetReuseAddressResponse,
71730                    fidl_fuchsia_posix::Errno,
71731                >,
71732                fidl::encoding::DefaultFuchsiaResourceDialect,
71733                0x67b7206b8d1bc0a5,
71734            >(_buf?)?;
71735            Ok(_response.map(|x| x.value))
71736        }
71737        self.client
71738            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
71739                (),
71740                0x67b7206b8d1bc0a5,
71741                fidl::encoding::DynamicFlags::empty(),
71742                _decode,
71743            )
71744    }
71745
71746    type GetErrorResponseFut = fidl::client::QueryResponseFut<
71747        BaseSocketGetErrorResult,
71748        fidl::encoding::DefaultFuchsiaResourceDialect,
71749    >;
71750    fn r#get_error(&self) -> Self::GetErrorResponseFut {
71751        fn _decode(
71752            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71753        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
71754            let _response = fidl::client::decode_transaction_body::<
71755                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71756                fidl::encoding::DefaultFuchsiaResourceDialect,
71757                0x5aad39b33e5f6ebb,
71758            >(_buf?)?;
71759            Ok(_response.map(|x| x))
71760        }
71761        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
71762            (),
71763            0x5aad39b33e5f6ebb,
71764            fidl::encoding::DynamicFlags::empty(),
71765            _decode,
71766        )
71767    }
71768
71769    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
71770        BaseSocketSetBroadcastResult,
71771        fidl::encoding::DefaultFuchsiaResourceDialect,
71772    >;
71773    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
71774        fn _decode(
71775            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71776        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
71777            let _response = fidl::client::decode_transaction_body::<
71778                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71779                fidl::encoding::DefaultFuchsiaResourceDialect,
71780                0x6023e081ce3cd947,
71781            >(_buf?)?;
71782            Ok(_response.map(|x| x))
71783        }
71784        self.client
71785            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
71786                (value,),
71787                0x6023e081ce3cd947,
71788                fidl::encoding::DynamicFlags::empty(),
71789                _decode,
71790            )
71791    }
71792
71793    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
71794        BaseSocketGetBroadcastResult,
71795        fidl::encoding::DefaultFuchsiaResourceDialect,
71796    >;
71797    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
71798        fn _decode(
71799            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71800        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
71801            let _response = fidl::client::decode_transaction_body::<
71802                fidl::encoding::ResultType<
71803                    BaseSocketGetBroadcastResponse,
71804                    fidl_fuchsia_posix::Errno,
71805                >,
71806                fidl::encoding::DefaultFuchsiaResourceDialect,
71807                0x68796fc556f9780d,
71808            >(_buf?)?;
71809            Ok(_response.map(|x| x.value))
71810        }
71811        self.client
71812            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
71813                (),
71814                0x68796fc556f9780d,
71815                fidl::encoding::DynamicFlags::empty(),
71816                _decode,
71817            )
71818    }
71819
71820    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
71821        BaseSocketSetSendBufferResult,
71822        fidl::encoding::DefaultFuchsiaResourceDialect,
71823    >;
71824    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
71825        fn _decode(
71826            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71827        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
71828            let _response = fidl::client::decode_transaction_body::<
71829                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71830                fidl::encoding::DefaultFuchsiaResourceDialect,
71831                0x756eac32d73a7a70,
71832            >(_buf?)?;
71833            Ok(_response.map(|x| x))
71834        }
71835        self.client
71836            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
71837                (value_bytes,),
71838                0x756eac32d73a7a70,
71839                fidl::encoding::DynamicFlags::empty(),
71840                _decode,
71841            )
71842    }
71843
71844    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
71845        BaseSocketGetSendBufferResult,
71846        fidl::encoding::DefaultFuchsiaResourceDialect,
71847    >;
71848    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
71849        fn _decode(
71850            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71851        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
71852            let _response = fidl::client::decode_transaction_body::<
71853                fidl::encoding::ResultType<
71854                    BaseSocketGetSendBufferResponse,
71855                    fidl_fuchsia_posix::Errno,
71856                >,
71857                fidl::encoding::DefaultFuchsiaResourceDialect,
71858                0x78a52fd9c7b2410b,
71859            >(_buf?)?;
71860            Ok(_response.map(|x| x.value_bytes))
71861        }
71862        self.client
71863            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
71864                (),
71865                0x78a52fd9c7b2410b,
71866                fidl::encoding::DynamicFlags::empty(),
71867                _decode,
71868            )
71869    }
71870
71871    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
71872        BaseSocketSetReceiveBufferResult,
71873        fidl::encoding::DefaultFuchsiaResourceDialect,
71874    >;
71875    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
71876        fn _decode(
71877            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71878        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
71879            let _response = fidl::client::decode_transaction_body::<
71880                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71881                fidl::encoding::DefaultFuchsiaResourceDialect,
71882                0x6b0cf2f1919c7001,
71883            >(_buf?)?;
71884            Ok(_response.map(|x| x))
71885        }
71886        self.client.send_query_and_decode::<
71887            BaseSocketSetReceiveBufferRequest,
71888            BaseSocketSetReceiveBufferResult,
71889        >(
71890            (value_bytes,),
71891            0x6b0cf2f1919c7001,
71892            fidl::encoding::DynamicFlags::empty(),
71893            _decode,
71894        )
71895    }
71896
71897    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
71898        BaseSocketGetReceiveBufferResult,
71899        fidl::encoding::DefaultFuchsiaResourceDialect,
71900    >;
71901    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
71902        fn _decode(
71903            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71904        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
71905            let _response = fidl::client::decode_transaction_body::<
71906                fidl::encoding::ResultType<
71907                    BaseSocketGetReceiveBufferResponse,
71908                    fidl_fuchsia_posix::Errno,
71909                >,
71910                fidl::encoding::DefaultFuchsiaResourceDialect,
71911                0x14c1a4b64f709e5c,
71912            >(_buf?)?;
71913            Ok(_response.map(|x| x.value_bytes))
71914        }
71915        self.client.send_query_and_decode::<
71916            fidl::encoding::EmptyPayload,
71917            BaseSocketGetReceiveBufferResult,
71918        >(
71919            (),
71920            0x14c1a4b64f709e5c,
71921            fidl::encoding::DynamicFlags::empty(),
71922            _decode,
71923        )
71924    }
71925
71926    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
71927        BaseSocketSetKeepAliveResult,
71928        fidl::encoding::DefaultFuchsiaResourceDialect,
71929    >;
71930    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
71931        fn _decode(
71932            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71933        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
71934            let _response = fidl::client::decode_transaction_body::<
71935                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71936                fidl::encoding::DefaultFuchsiaResourceDialect,
71937                0x572df8f0b920d2c7,
71938            >(_buf?)?;
71939            Ok(_response.map(|x| x))
71940        }
71941        self.client
71942            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
71943                (value,),
71944                0x572df8f0b920d2c7,
71945                fidl::encoding::DynamicFlags::empty(),
71946                _decode,
71947            )
71948    }
71949
71950    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
71951        BaseSocketGetKeepAliveResult,
71952        fidl::encoding::DefaultFuchsiaResourceDialect,
71953    >;
71954    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
71955        fn _decode(
71956            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71957        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
71958            let _response = fidl::client::decode_transaction_body::<
71959                fidl::encoding::ResultType<
71960                    BaseSocketGetKeepAliveResponse,
71961                    fidl_fuchsia_posix::Errno,
71962                >,
71963                fidl::encoding::DefaultFuchsiaResourceDialect,
71964                0x2dd29d3215f2c9d2,
71965            >(_buf?)?;
71966            Ok(_response.map(|x| x.value))
71967        }
71968        self.client
71969            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
71970                (),
71971                0x2dd29d3215f2c9d2,
71972                fidl::encoding::DynamicFlags::empty(),
71973                _decode,
71974            )
71975    }
71976
71977    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
71978        BaseSocketSetOutOfBandInlineResult,
71979        fidl::encoding::DefaultFuchsiaResourceDialect,
71980    >;
71981    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
71982        fn _decode(
71983            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71984        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
71985            let _response = fidl::client::decode_transaction_body::<
71986                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71987                fidl::encoding::DefaultFuchsiaResourceDialect,
71988                0x3ecb49968bee439,
71989            >(_buf?)?;
71990            Ok(_response.map(|x| x))
71991        }
71992        self.client.send_query_and_decode::<
71993            BaseSocketSetOutOfBandInlineRequest,
71994            BaseSocketSetOutOfBandInlineResult,
71995        >(
71996            (value,),
71997            0x3ecb49968bee439,
71998            fidl::encoding::DynamicFlags::empty(),
71999            _decode,
72000        )
72001    }
72002
72003    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
72004        BaseSocketGetOutOfBandInlineResult,
72005        fidl::encoding::DefaultFuchsiaResourceDialect,
72006    >;
72007    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
72008        fn _decode(
72009            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72010        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
72011            let _response = fidl::client::decode_transaction_body::<
72012                fidl::encoding::ResultType<
72013                    BaseSocketGetOutOfBandInlineResponse,
72014                    fidl_fuchsia_posix::Errno,
72015                >,
72016                fidl::encoding::DefaultFuchsiaResourceDialect,
72017                0x348c1ab3aeca1745,
72018            >(_buf?)?;
72019            Ok(_response.map(|x| x.value))
72020        }
72021        self.client.send_query_and_decode::<
72022            fidl::encoding::EmptyPayload,
72023            BaseSocketGetOutOfBandInlineResult,
72024        >(
72025            (),
72026            0x348c1ab3aeca1745,
72027            fidl::encoding::DynamicFlags::empty(),
72028            _decode,
72029        )
72030    }
72031
72032    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
72033        BaseSocketSetNoCheckResult,
72034        fidl::encoding::DefaultFuchsiaResourceDialect,
72035    >;
72036    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
72037        fn _decode(
72038            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72039        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
72040            let _response = fidl::client::decode_transaction_body::<
72041                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72042                fidl::encoding::DefaultFuchsiaResourceDialect,
72043                0x6bbf00c53a4c78c2,
72044            >(_buf?)?;
72045            Ok(_response.map(|x| x))
72046        }
72047        self.client
72048            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
72049                (value,),
72050                0x6bbf00c53a4c78c2,
72051                fidl::encoding::DynamicFlags::empty(),
72052                _decode,
72053            )
72054    }
72055
72056    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
72057        BaseSocketGetNoCheckResult,
72058        fidl::encoding::DefaultFuchsiaResourceDialect,
72059    >;
72060    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
72061        fn _decode(
72062            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72063        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
72064            let _response = fidl::client::decode_transaction_body::<
72065                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
72066                fidl::encoding::DefaultFuchsiaResourceDialect,
72067                0x2cd4249286417694,
72068            >(_buf?)?;
72069            Ok(_response.map(|x| x.value))
72070        }
72071        self.client
72072            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
72073                (),
72074                0x2cd4249286417694,
72075                fidl::encoding::DynamicFlags::empty(),
72076                _decode,
72077            )
72078    }
72079
72080    type SetLingerResponseFut = fidl::client::QueryResponseFut<
72081        BaseSocketSetLingerResult,
72082        fidl::encoding::DefaultFuchsiaResourceDialect,
72083    >;
72084    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
72085        fn _decode(
72086            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72087        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
72088            let _response = fidl::client::decode_transaction_body::<
72089                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72090                fidl::encoding::DefaultFuchsiaResourceDialect,
72091                0x45386351246e998e,
72092            >(_buf?)?;
72093            Ok(_response.map(|x| x))
72094        }
72095        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
72096            (linger, length_secs),
72097            0x45386351246e998e,
72098            fidl::encoding::DynamicFlags::empty(),
72099            _decode,
72100        )
72101    }
72102
72103    type GetLingerResponseFut = fidl::client::QueryResponseFut<
72104        BaseSocketGetLingerResult,
72105        fidl::encoding::DefaultFuchsiaResourceDialect,
72106    >;
72107    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
72108        fn _decode(
72109            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72110        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
72111            let _response = fidl::client::decode_transaction_body::<
72112                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
72113                fidl::encoding::DefaultFuchsiaResourceDialect,
72114                0x48eb20fc5ccb0e45,
72115            >(_buf?)?;
72116            Ok(_response.map(|x| (x.linger, x.length_secs)))
72117        }
72118        self.client
72119            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
72120                (),
72121                0x48eb20fc5ccb0e45,
72122                fidl::encoding::DynamicFlags::empty(),
72123                _decode,
72124            )
72125    }
72126
72127    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
72128        BaseSocketSetReusePortResult,
72129        fidl::encoding::DefaultFuchsiaResourceDialect,
72130    >;
72131    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
72132        fn _decode(
72133            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72134        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
72135            let _response = fidl::client::decode_transaction_body::<
72136                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72137                fidl::encoding::DefaultFuchsiaResourceDialect,
72138                0x24dd3e5cb36d9ccb,
72139            >(_buf?)?;
72140            Ok(_response.map(|x| x))
72141        }
72142        self.client
72143            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
72144                (value,),
72145                0x24dd3e5cb36d9ccb,
72146                fidl::encoding::DynamicFlags::empty(),
72147                _decode,
72148            )
72149    }
72150
72151    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
72152        BaseSocketGetReusePortResult,
72153        fidl::encoding::DefaultFuchsiaResourceDialect,
72154    >;
72155    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
72156        fn _decode(
72157            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72158        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
72159            let _response = fidl::client::decode_transaction_body::<
72160                fidl::encoding::ResultType<
72161                    BaseSocketGetReusePortResponse,
72162                    fidl_fuchsia_posix::Errno,
72163                >,
72164                fidl::encoding::DefaultFuchsiaResourceDialect,
72165                0x7a112c1ab54ff828,
72166            >(_buf?)?;
72167            Ok(_response.map(|x| x.value))
72168        }
72169        self.client
72170            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
72171                (),
72172                0x7a112c1ab54ff828,
72173                fidl::encoding::DynamicFlags::empty(),
72174                _decode,
72175            )
72176    }
72177
72178    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
72179        BaseSocketGetAcceptConnResult,
72180        fidl::encoding::DefaultFuchsiaResourceDialect,
72181    >;
72182    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
72183        fn _decode(
72184            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72185        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
72186            let _response = fidl::client::decode_transaction_body::<
72187                fidl::encoding::ResultType<
72188                    BaseSocketGetAcceptConnResponse,
72189                    fidl_fuchsia_posix::Errno,
72190                >,
72191                fidl::encoding::DefaultFuchsiaResourceDialect,
72192                0x67ce6db6c2ec8966,
72193            >(_buf?)?;
72194            Ok(_response.map(|x| x.value))
72195        }
72196        self.client
72197            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
72198                (),
72199                0x67ce6db6c2ec8966,
72200                fidl::encoding::DynamicFlags::empty(),
72201                _decode,
72202            )
72203    }
72204
72205    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
72206        BaseSocketSetBindToDeviceResult,
72207        fidl::encoding::DefaultFuchsiaResourceDialect,
72208    >;
72209    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
72210        fn _decode(
72211            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72212        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
72213            let _response = fidl::client::decode_transaction_body::<
72214                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72215                fidl::encoding::DefaultFuchsiaResourceDialect,
72216                0x2118b483f28aafc4,
72217            >(_buf?)?;
72218            Ok(_response.map(|x| x))
72219        }
72220        self.client.send_query_and_decode::<
72221            BaseSocketSetBindToDeviceRequest,
72222            BaseSocketSetBindToDeviceResult,
72223        >(
72224            (value,),
72225            0x2118b483f28aafc4,
72226            fidl::encoding::DynamicFlags::empty(),
72227            _decode,
72228        )
72229    }
72230
72231    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
72232        BaseSocketGetBindToDeviceResult,
72233        fidl::encoding::DefaultFuchsiaResourceDialect,
72234    >;
72235    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
72236        fn _decode(
72237            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72238        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
72239            let _response = fidl::client::decode_transaction_body::<
72240                fidl::encoding::ResultType<
72241                    BaseSocketGetBindToDeviceResponse,
72242                    fidl_fuchsia_posix::Errno,
72243                >,
72244                fidl::encoding::DefaultFuchsiaResourceDialect,
72245                0x1ab1fbf0ef7906c8,
72246            >(_buf?)?;
72247            Ok(_response.map(|x| x.value))
72248        }
72249        self.client
72250            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
72251                (),
72252                0x1ab1fbf0ef7906c8,
72253                fidl::encoding::DynamicFlags::empty(),
72254                _decode,
72255            )
72256    }
72257
72258    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
72259        BaseSocketSetBindToInterfaceIndexResult,
72260        fidl::encoding::DefaultFuchsiaResourceDialect,
72261    >;
72262    fn r#set_bind_to_interface_index(
72263        &self,
72264        mut value: u64,
72265    ) -> Self::SetBindToInterfaceIndexResponseFut {
72266        fn _decode(
72267            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72268        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
72269            let _response = fidl::client::decode_transaction_body::<
72270                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72271                fidl::encoding::DefaultFuchsiaResourceDialect,
72272                0x6e387a0def00821,
72273            >(_buf?)?;
72274            Ok(_response.map(|x| x))
72275        }
72276        self.client.send_query_and_decode::<
72277            BaseSocketSetBindToInterfaceIndexRequest,
72278            BaseSocketSetBindToInterfaceIndexResult,
72279        >(
72280            (value,),
72281            0x6e387a0def00821,
72282            fidl::encoding::DynamicFlags::empty(),
72283            _decode,
72284        )
72285    }
72286
72287    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
72288        BaseSocketGetBindToInterfaceIndexResult,
72289        fidl::encoding::DefaultFuchsiaResourceDialect,
72290    >;
72291    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
72292        fn _decode(
72293            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72294        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
72295            let _response = fidl::client::decode_transaction_body::<
72296                fidl::encoding::ResultType<
72297                    BaseSocketGetBindToInterfaceIndexResponse,
72298                    fidl_fuchsia_posix::Errno,
72299                >,
72300                fidl::encoding::DefaultFuchsiaResourceDialect,
72301                0x59c31dd3e3078295,
72302            >(_buf?)?;
72303            Ok(_response.map(|x| x.value))
72304        }
72305        self.client.send_query_and_decode::<
72306            fidl::encoding::EmptyPayload,
72307            BaseSocketGetBindToInterfaceIndexResult,
72308        >(
72309            (),
72310            0x59c31dd3e3078295,
72311            fidl::encoding::DynamicFlags::empty(),
72312            _decode,
72313        )
72314    }
72315
72316    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
72317        BaseSocketSetTimestampResult,
72318        fidl::encoding::DefaultFuchsiaResourceDialect,
72319    >;
72320    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
72321        fn _decode(
72322            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72323        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
72324            let _response = fidl::client::decode_transaction_body::<
72325                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72326                fidl::encoding::DefaultFuchsiaResourceDialect,
72327                0x285d6516c263d839,
72328            >(_buf?)?;
72329            Ok(_response.map(|x| x))
72330        }
72331        self.client
72332            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
72333                (value,),
72334                0x285d6516c263d839,
72335                fidl::encoding::DynamicFlags::empty(),
72336                _decode,
72337            )
72338    }
72339
72340    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
72341        BaseSocketGetTimestampResult,
72342        fidl::encoding::DefaultFuchsiaResourceDialect,
72343    >;
72344    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
72345        fn _decode(
72346            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72347        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
72348            let _response = fidl::client::decode_transaction_body::<
72349                fidl::encoding::ResultType<
72350                    BaseSocketGetTimestampResponse,
72351                    fidl_fuchsia_posix::Errno,
72352                >,
72353                fidl::encoding::DefaultFuchsiaResourceDialect,
72354                0x49f2fffbbcc2bd27,
72355            >(_buf?)?;
72356            Ok(_response.map(|x| x.value))
72357        }
72358        self.client
72359            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
72360                (),
72361                0x49f2fffbbcc2bd27,
72362                fidl::encoding::DynamicFlags::empty(),
72363                _decode,
72364            )
72365    }
72366
72367    type SetMarkResponseFut = fidl::client::QueryResponseFut<
72368        BaseSocketSetMarkResult,
72369        fidl::encoding::DefaultFuchsiaResourceDialect,
72370    >;
72371    fn r#set_mark(
72372        &self,
72373        mut domain: fidl_fuchsia_net::MarkDomain,
72374        mut mark: &OptionalUint32,
72375    ) -> Self::SetMarkResponseFut {
72376        fn _decode(
72377            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72378        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
72379            let _response = fidl::client::decode_transaction_body::<
72380                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72381                fidl::encoding::DefaultFuchsiaResourceDialect,
72382                0x6ead6de09f653236,
72383            >(_buf?)?;
72384            Ok(_response.map(|x| x))
72385        }
72386        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
72387            (domain, mark),
72388            0x6ead6de09f653236,
72389            fidl::encoding::DynamicFlags::empty(),
72390            _decode,
72391        )
72392    }
72393
72394    type GetMarkResponseFut = fidl::client::QueryResponseFut<
72395        BaseSocketGetMarkResult,
72396        fidl::encoding::DefaultFuchsiaResourceDialect,
72397    >;
72398    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
72399        fn _decode(
72400            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72401        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
72402            let _response = fidl::client::decode_transaction_body::<
72403                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
72404                fidl::encoding::DefaultFuchsiaResourceDialect,
72405                0x57a2752c61d93d47,
72406            >(_buf?)?;
72407            Ok(_response.map(|x| x.mark))
72408        }
72409        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
72410            (domain,),
72411            0x57a2752c61d93d47,
72412            fidl::encoding::DynamicFlags::empty(),
72413            _decode,
72414        )
72415    }
72416
72417    type GetCookieResponseFut = fidl::client::QueryResponseFut<
72418        BaseSocketGetCookieResult,
72419        fidl::encoding::DefaultFuchsiaResourceDialect,
72420    >;
72421    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
72422        fn _decode(
72423            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72424        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
72425            let _response = fidl::client::decode_transaction_body::<
72426                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
72427                fidl::encoding::DefaultFuchsiaResourceDialect,
72428                0x2c2f47fd8f924e52,
72429            >(_buf?)?;
72430            Ok(_response.map(|x| x.value))
72431        }
72432        self.client
72433            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
72434                (),
72435                0x2c2f47fd8f924e52,
72436                fidl::encoding::DynamicFlags::empty(),
72437                _decode,
72438            )
72439    }
72440
72441    type BindResponseFut = fidl::client::QueryResponseFut<
72442        BaseNetworkSocketBindResult,
72443        fidl::encoding::DefaultFuchsiaResourceDialect,
72444    >;
72445    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
72446        fn _decode(
72447            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72448        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
72449            let _response = fidl::client::decode_transaction_body::<
72450                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72451                fidl::encoding::DefaultFuchsiaResourceDialect,
72452                0x4bc6400ae92125d,
72453            >(_buf?)?;
72454            Ok(_response.map(|x| x))
72455        }
72456        self.client
72457            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
72458                (addr,),
72459                0x4bc6400ae92125d,
72460                fidl::encoding::DynamicFlags::empty(),
72461                _decode,
72462            )
72463    }
72464
72465    type ConnectResponseFut = fidl::client::QueryResponseFut<
72466        BaseNetworkSocketConnectResult,
72467        fidl::encoding::DefaultFuchsiaResourceDialect,
72468    >;
72469    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
72470        fn _decode(
72471            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72472        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
72473            let _response = fidl::client::decode_transaction_body::<
72474                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72475                fidl::encoding::DefaultFuchsiaResourceDialect,
72476                0x5f05f19bfdd38871,
72477            >(_buf?)?;
72478            Ok(_response.map(|x| x))
72479        }
72480        self.client.send_query_and_decode::<
72481            BaseNetworkSocketConnectRequest,
72482            BaseNetworkSocketConnectResult,
72483        >(
72484            (addr,),
72485            0x5f05f19bfdd38871,
72486            fidl::encoding::DynamicFlags::empty(),
72487            _decode,
72488        )
72489    }
72490
72491    type DisconnectResponseFut = fidl::client::QueryResponseFut<
72492        BaseNetworkSocketDisconnectResult,
72493        fidl::encoding::DefaultFuchsiaResourceDialect,
72494    >;
72495    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
72496        fn _decode(
72497            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72498        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
72499            let _response = fidl::client::decode_transaction_body::<
72500                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72501                fidl::encoding::DefaultFuchsiaResourceDialect,
72502                0x74e63b91f7b29b2,
72503            >(_buf?)?;
72504            Ok(_response.map(|x| x))
72505        }
72506        self.client.send_query_and_decode::<
72507            fidl::encoding::EmptyPayload,
72508            BaseNetworkSocketDisconnectResult,
72509        >(
72510            (),
72511            0x74e63b91f7b29b2,
72512            fidl::encoding::DynamicFlags::empty(),
72513            _decode,
72514        )
72515    }
72516
72517    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
72518        BaseNetworkSocketGetSockNameResult,
72519        fidl::encoding::DefaultFuchsiaResourceDialect,
72520    >;
72521    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
72522        fn _decode(
72523            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72524        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
72525            let _response = fidl::client::decode_transaction_body::<
72526                fidl::encoding::ResultType<
72527                    BaseNetworkSocketGetSockNameResponse,
72528                    fidl_fuchsia_posix::Errno,
72529                >,
72530                fidl::encoding::DefaultFuchsiaResourceDialect,
72531                0x475f23f84a1a4f85,
72532            >(_buf?)?;
72533            Ok(_response.map(|x| x.addr))
72534        }
72535        self.client.send_query_and_decode::<
72536            fidl::encoding::EmptyPayload,
72537            BaseNetworkSocketGetSockNameResult,
72538        >(
72539            (),
72540            0x475f23f84a1a4f85,
72541            fidl::encoding::DynamicFlags::empty(),
72542            _decode,
72543        )
72544    }
72545
72546    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
72547        BaseNetworkSocketGetPeerNameResult,
72548        fidl::encoding::DefaultFuchsiaResourceDialect,
72549    >;
72550    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
72551        fn _decode(
72552            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72553        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
72554            let _response = fidl::client::decode_transaction_body::<
72555                fidl::encoding::ResultType<
72556                    BaseNetworkSocketGetPeerNameResponse,
72557                    fidl_fuchsia_posix::Errno,
72558                >,
72559                fidl::encoding::DefaultFuchsiaResourceDialect,
72560                0x1ffecf4bd5b6432e,
72561            >(_buf?)?;
72562            Ok(_response.map(|x| x.addr))
72563        }
72564        self.client.send_query_and_decode::<
72565            fidl::encoding::EmptyPayload,
72566            BaseNetworkSocketGetPeerNameResult,
72567        >(
72568            (),
72569            0x1ffecf4bd5b6432e,
72570            fidl::encoding::DynamicFlags::empty(),
72571            _decode,
72572        )
72573    }
72574
72575    type ShutdownResponseFut = fidl::client::QueryResponseFut<
72576        BaseNetworkSocketShutdownResult,
72577        fidl::encoding::DefaultFuchsiaResourceDialect,
72578    >;
72579    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
72580        fn _decode(
72581            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72582        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
72583            let _response = fidl::client::decode_transaction_body::<
72584                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72585                fidl::encoding::DefaultFuchsiaResourceDialect,
72586                0x247f38b6db68c336,
72587            >(_buf?)?;
72588            Ok(_response.map(|x| x))
72589        }
72590        self.client.send_query_and_decode::<
72591            BaseNetworkSocketShutdownRequest,
72592            BaseNetworkSocketShutdownResult,
72593        >(
72594            (mode,),
72595            0x247f38b6db68c336,
72596            fidl::encoding::DynamicFlags::empty(),
72597            _decode,
72598        )
72599    }
72600
72601    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
72602        BaseNetworkSocketSetIpTypeOfServiceResult,
72603        fidl::encoding::DefaultFuchsiaResourceDialect,
72604    >;
72605    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
72606        fn _decode(
72607            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72608        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
72609            let _response = fidl::client::decode_transaction_body::<
72610                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72611                fidl::encoding::DefaultFuchsiaResourceDialect,
72612                0x995c600475b6d46,
72613            >(_buf?)?;
72614            Ok(_response.map(|x| x))
72615        }
72616        self.client.send_query_and_decode::<
72617            BaseNetworkSocketSetIpTypeOfServiceRequest,
72618            BaseNetworkSocketSetIpTypeOfServiceResult,
72619        >(
72620            (value,),
72621            0x995c600475b6d46,
72622            fidl::encoding::DynamicFlags::empty(),
72623            _decode,
72624        )
72625    }
72626
72627    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
72628        BaseNetworkSocketGetIpTypeOfServiceResult,
72629        fidl::encoding::DefaultFuchsiaResourceDialect,
72630    >;
72631    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
72632        fn _decode(
72633            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72634        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
72635            let _response = fidl::client::decode_transaction_body::<
72636                fidl::encoding::ResultType<
72637                    BaseNetworkSocketGetIpTypeOfServiceResponse,
72638                    fidl_fuchsia_posix::Errno,
72639                >,
72640                fidl::encoding::DefaultFuchsiaResourceDialect,
72641                0x3814a04259f75fcb,
72642            >(_buf?)?;
72643            Ok(_response.map(|x| x.value))
72644        }
72645        self.client.send_query_and_decode::<
72646            fidl::encoding::EmptyPayload,
72647            BaseNetworkSocketGetIpTypeOfServiceResult,
72648        >(
72649            (),
72650            0x3814a04259f75fcb,
72651            fidl::encoding::DynamicFlags::empty(),
72652            _decode,
72653        )
72654    }
72655
72656    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
72657        BaseNetworkSocketSetIpTtlResult,
72658        fidl::encoding::DefaultFuchsiaResourceDialect,
72659    >;
72660    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
72661        fn _decode(
72662            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72663        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
72664            let _response = fidl::client::decode_transaction_body::<
72665                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72666                fidl::encoding::DefaultFuchsiaResourceDialect,
72667                0x29e2424b433ae1ef,
72668            >(_buf?)?;
72669            Ok(_response.map(|x| x))
72670        }
72671        self.client.send_query_and_decode::<
72672            BaseNetworkSocketSetIpTtlRequest,
72673            BaseNetworkSocketSetIpTtlResult,
72674        >(
72675            (value,),
72676            0x29e2424b433ae1ef,
72677            fidl::encoding::DynamicFlags::empty(),
72678            _decode,
72679        )
72680    }
72681
72682    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
72683        BaseNetworkSocketGetIpTtlResult,
72684        fidl::encoding::DefaultFuchsiaResourceDialect,
72685    >;
72686    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
72687        fn _decode(
72688            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72689        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
72690            let _response = fidl::client::decode_transaction_body::<
72691                fidl::encoding::ResultType<
72692                    BaseNetworkSocketGetIpTtlResponse,
72693                    fidl_fuchsia_posix::Errno,
72694                >,
72695                fidl::encoding::DefaultFuchsiaResourceDialect,
72696                0x47e47fa1f24da471,
72697            >(_buf?)?;
72698            Ok(_response.map(|x| x.value))
72699        }
72700        self.client
72701            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
72702                (),
72703                0x47e47fa1f24da471,
72704                fidl::encoding::DynamicFlags::empty(),
72705                _decode,
72706            )
72707    }
72708
72709    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
72710        BaseNetworkSocketSetIpPacketInfoResult,
72711        fidl::encoding::DefaultFuchsiaResourceDialect,
72712    >;
72713    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
72714        fn _decode(
72715            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72716        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
72717            let _response = fidl::client::decode_transaction_body::<
72718                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72719                fidl::encoding::DefaultFuchsiaResourceDialect,
72720                0x392d16bee20c0e16,
72721            >(_buf?)?;
72722            Ok(_response.map(|x| x))
72723        }
72724        self.client.send_query_and_decode::<
72725            BaseNetworkSocketSetIpPacketInfoRequest,
72726            BaseNetworkSocketSetIpPacketInfoResult,
72727        >(
72728            (value,),
72729            0x392d16bee20c0e16,
72730            fidl::encoding::DynamicFlags::empty(),
72731            _decode,
72732        )
72733    }
72734
72735    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
72736        BaseNetworkSocketGetIpPacketInfoResult,
72737        fidl::encoding::DefaultFuchsiaResourceDialect,
72738    >;
72739    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
72740        fn _decode(
72741            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72742        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
72743            let _response = fidl::client::decode_transaction_body::<
72744                fidl::encoding::ResultType<
72745                    BaseNetworkSocketGetIpPacketInfoResponse,
72746                    fidl_fuchsia_posix::Errno,
72747                >,
72748                fidl::encoding::DefaultFuchsiaResourceDialect,
72749                0x54b505f242280740,
72750            >(_buf?)?;
72751            Ok(_response.map(|x| x.value))
72752        }
72753        self.client.send_query_and_decode::<
72754            fidl::encoding::EmptyPayload,
72755            BaseNetworkSocketGetIpPacketInfoResult,
72756        >(
72757            (),
72758            0x54b505f242280740,
72759            fidl::encoding::DynamicFlags::empty(),
72760            _decode,
72761        )
72762    }
72763
72764    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
72765        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
72766        fidl::encoding::DefaultFuchsiaResourceDialect,
72767    >;
72768    fn r#set_ip_receive_type_of_service(
72769        &self,
72770        mut value: bool,
72771    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
72772        fn _decode(
72773            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72774        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
72775            let _response = fidl::client::decode_transaction_body::<
72776                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72777                fidl::encoding::DefaultFuchsiaResourceDialect,
72778                0x6c4f6714995f84ef,
72779            >(_buf?)?;
72780            Ok(_response.map(|x| x))
72781        }
72782        self.client.send_query_and_decode::<
72783            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
72784            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
72785        >(
72786            (value,),
72787            0x6c4f6714995f84ef,
72788            fidl::encoding::DynamicFlags::empty(),
72789            _decode,
72790        )
72791    }
72792
72793    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
72794        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
72795        fidl::encoding::DefaultFuchsiaResourceDialect,
72796    >;
72797    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
72798        fn _decode(
72799            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72800        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
72801            let _response = fidl::client::decode_transaction_body::<
72802                fidl::encoding::ResultType<
72803                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
72804                    fidl_fuchsia_posix::Errno,
72805                >,
72806                fidl::encoding::DefaultFuchsiaResourceDialect,
72807                0x4158ba7dc2795960,
72808            >(_buf?)?;
72809            Ok(_response.map(|x| x.value))
72810        }
72811        self.client.send_query_and_decode::<
72812            fidl::encoding::EmptyPayload,
72813            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
72814        >(
72815            (),
72816            0x4158ba7dc2795960,
72817            fidl::encoding::DynamicFlags::empty(),
72818            _decode,
72819        )
72820    }
72821
72822    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
72823        BaseNetworkSocketSetIpReceiveTtlResult,
72824        fidl::encoding::DefaultFuchsiaResourceDialect,
72825    >;
72826    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
72827        fn _decode(
72828            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72829        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
72830            let _response = fidl::client::decode_transaction_body::<
72831                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72832                fidl::encoding::DefaultFuchsiaResourceDialect,
72833                0x46f15be0ce0ab82b,
72834            >(_buf?)?;
72835            Ok(_response.map(|x| x))
72836        }
72837        self.client.send_query_and_decode::<
72838            BaseNetworkSocketSetIpReceiveTtlRequest,
72839            BaseNetworkSocketSetIpReceiveTtlResult,
72840        >(
72841            (value,),
72842            0x46f15be0ce0ab82b,
72843            fidl::encoding::DynamicFlags::empty(),
72844            _decode,
72845        )
72846    }
72847
72848    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
72849        BaseNetworkSocketGetIpReceiveTtlResult,
72850        fidl::encoding::DefaultFuchsiaResourceDialect,
72851    >;
72852    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
72853        fn _decode(
72854            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72855        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
72856            let _response = fidl::client::decode_transaction_body::<
72857                fidl::encoding::ResultType<
72858                    BaseNetworkSocketGetIpReceiveTtlResponse,
72859                    fidl_fuchsia_posix::Errno,
72860                >,
72861                fidl::encoding::DefaultFuchsiaResourceDialect,
72862                0x678ddd5a5dfa2eb5,
72863            >(_buf?)?;
72864            Ok(_response.map(|x| x.value))
72865        }
72866        self.client.send_query_and_decode::<
72867            fidl::encoding::EmptyPayload,
72868            BaseNetworkSocketGetIpReceiveTtlResult,
72869        >(
72870            (),
72871            0x678ddd5a5dfa2eb5,
72872            fidl::encoding::DynamicFlags::empty(),
72873            _decode,
72874        )
72875    }
72876
72877    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
72878        BaseNetworkSocketSetIpMulticastInterfaceResult,
72879        fidl::encoding::DefaultFuchsiaResourceDialect,
72880    >;
72881    fn r#set_ip_multicast_interface(
72882        &self,
72883        mut iface: u64,
72884        mut address: &fidl_fuchsia_net::Ipv4Address,
72885    ) -> Self::SetIpMulticastInterfaceResponseFut {
72886        fn _decode(
72887            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72888        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
72889            let _response = fidl::client::decode_transaction_body::<
72890                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72891                fidl::encoding::DefaultFuchsiaResourceDialect,
72892                0x752fbfa9b12befe,
72893            >(_buf?)?;
72894            Ok(_response.map(|x| x))
72895        }
72896        self.client.send_query_and_decode::<
72897            BaseNetworkSocketSetIpMulticastInterfaceRequest,
72898            BaseNetworkSocketSetIpMulticastInterfaceResult,
72899        >(
72900            (iface, address,),
72901            0x752fbfa9b12befe,
72902            fidl::encoding::DynamicFlags::empty(),
72903            _decode,
72904        )
72905    }
72906
72907    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
72908        BaseNetworkSocketGetIpMulticastInterfaceResult,
72909        fidl::encoding::DefaultFuchsiaResourceDialect,
72910    >;
72911    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
72912        fn _decode(
72913            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72914        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
72915            let _response = fidl::client::decode_transaction_body::<
72916                fidl::encoding::ResultType<
72917                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
72918                    fidl_fuchsia_posix::Errno,
72919                >,
72920                fidl::encoding::DefaultFuchsiaResourceDialect,
72921                0x320bd14c4df046c4,
72922            >(_buf?)?;
72923            Ok(_response.map(|x| x.value))
72924        }
72925        self.client.send_query_and_decode::<
72926            fidl::encoding::EmptyPayload,
72927            BaseNetworkSocketGetIpMulticastInterfaceResult,
72928        >(
72929            (),
72930            0x320bd14c4df046c4,
72931            fidl::encoding::DynamicFlags::empty(),
72932            _decode,
72933        )
72934    }
72935
72936    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
72937        BaseNetworkSocketSetIpMulticastTtlResult,
72938        fidl::encoding::DefaultFuchsiaResourceDialect,
72939    >;
72940    fn r#set_ip_multicast_ttl(
72941        &self,
72942        mut value: &OptionalUint8,
72943    ) -> Self::SetIpMulticastTtlResponseFut {
72944        fn _decode(
72945            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72946        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
72947            let _response = fidl::client::decode_transaction_body::<
72948                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72949                fidl::encoding::DefaultFuchsiaResourceDialect,
72950                0x63134d53772916a1,
72951            >(_buf?)?;
72952            Ok(_response.map(|x| x))
72953        }
72954        self.client.send_query_and_decode::<
72955            BaseNetworkSocketSetIpMulticastTtlRequest,
72956            BaseNetworkSocketSetIpMulticastTtlResult,
72957        >(
72958            (value,),
72959            0x63134d53772916a1,
72960            fidl::encoding::DynamicFlags::empty(),
72961            _decode,
72962        )
72963    }
72964
72965    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
72966        BaseNetworkSocketGetIpMulticastTtlResult,
72967        fidl::encoding::DefaultFuchsiaResourceDialect,
72968    >;
72969    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
72970        fn _decode(
72971            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72972        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
72973            let _response = fidl::client::decode_transaction_body::<
72974                fidl::encoding::ResultType<
72975                    BaseNetworkSocketGetIpMulticastTtlResponse,
72976                    fidl_fuchsia_posix::Errno,
72977                >,
72978                fidl::encoding::DefaultFuchsiaResourceDialect,
72979                0x4665cd378f39e1a,
72980            >(_buf?)?;
72981            Ok(_response.map(|x| x.value))
72982        }
72983        self.client.send_query_and_decode::<
72984            fidl::encoding::EmptyPayload,
72985            BaseNetworkSocketGetIpMulticastTtlResult,
72986        >(
72987            (),
72988            0x4665cd378f39e1a,
72989            fidl::encoding::DynamicFlags::empty(),
72990            _decode,
72991        )
72992    }
72993
72994    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
72995        BaseNetworkSocketSetIpMulticastLoopbackResult,
72996        fidl::encoding::DefaultFuchsiaResourceDialect,
72997    >;
72998    fn r#set_ip_multicast_loopback(
72999        &self,
73000        mut value: bool,
73001    ) -> Self::SetIpMulticastLoopbackResponseFut {
73002        fn _decode(
73003            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73004        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
73005            let _response = fidl::client::decode_transaction_body::<
73006                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73007                fidl::encoding::DefaultFuchsiaResourceDialect,
73008                0x20c55c11f00943ea,
73009            >(_buf?)?;
73010            Ok(_response.map(|x| x))
73011        }
73012        self.client.send_query_and_decode::<
73013            BaseNetworkSocketSetIpMulticastLoopbackRequest,
73014            BaseNetworkSocketSetIpMulticastLoopbackResult,
73015        >(
73016            (value,),
73017            0x20c55c11f00943ea,
73018            fidl::encoding::DynamicFlags::empty(),
73019            _decode,
73020        )
73021    }
73022
73023    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
73024        BaseNetworkSocketGetIpMulticastLoopbackResult,
73025        fidl::encoding::DefaultFuchsiaResourceDialect,
73026    >;
73027    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
73028        fn _decode(
73029            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73030        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
73031            let _response = fidl::client::decode_transaction_body::<
73032                fidl::encoding::ResultType<
73033                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
73034                    fidl_fuchsia_posix::Errno,
73035                >,
73036                fidl::encoding::DefaultFuchsiaResourceDialect,
73037                0x3b6b26ff558298f2,
73038            >(_buf?)?;
73039            Ok(_response.map(|x| x.value))
73040        }
73041        self.client.send_query_and_decode::<
73042            fidl::encoding::EmptyPayload,
73043            BaseNetworkSocketGetIpMulticastLoopbackResult,
73044        >(
73045            (),
73046            0x3b6b26ff558298f2,
73047            fidl::encoding::DynamicFlags::empty(),
73048            _decode,
73049        )
73050    }
73051
73052    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
73053        BaseNetworkSocketAddIpMembershipResult,
73054        fidl::encoding::DefaultFuchsiaResourceDialect,
73055    >;
73056    fn r#add_ip_membership(
73057        &self,
73058        mut membership: &IpMulticastMembership,
73059    ) -> Self::AddIpMembershipResponseFut {
73060        fn _decode(
73061            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73062        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
73063            let _response = fidl::client::decode_transaction_body::<
73064                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73065                fidl::encoding::DefaultFuchsiaResourceDialect,
73066                0x76bc7df115a3b4d0,
73067            >(_buf?)?;
73068            Ok(_response.map(|x| x))
73069        }
73070        self.client.send_query_and_decode::<
73071            BaseNetworkSocketAddIpMembershipRequest,
73072            BaseNetworkSocketAddIpMembershipResult,
73073        >(
73074            (membership,),
73075            0x76bc7df115a3b4d0,
73076            fidl::encoding::DynamicFlags::empty(),
73077            _decode,
73078        )
73079    }
73080
73081    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
73082        BaseNetworkSocketDropIpMembershipResult,
73083        fidl::encoding::DefaultFuchsiaResourceDialect,
73084    >;
73085    fn r#drop_ip_membership(
73086        &self,
73087        mut membership: &IpMulticastMembership,
73088    ) -> Self::DropIpMembershipResponseFut {
73089        fn _decode(
73090            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73091        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
73092            let _response = fidl::client::decode_transaction_body::<
73093                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73094                fidl::encoding::DefaultFuchsiaResourceDialect,
73095                0x2888f3099188d03,
73096            >(_buf?)?;
73097            Ok(_response.map(|x| x))
73098        }
73099        self.client.send_query_and_decode::<
73100            BaseNetworkSocketDropIpMembershipRequest,
73101            BaseNetworkSocketDropIpMembershipResult,
73102        >(
73103            (membership,),
73104            0x2888f3099188d03,
73105            fidl::encoding::DynamicFlags::empty(),
73106            _decode,
73107        )
73108    }
73109
73110    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
73111        BaseNetworkSocketSetIpTransparentResult,
73112        fidl::encoding::DefaultFuchsiaResourceDialect,
73113    >;
73114    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
73115        fn _decode(
73116            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73117        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
73118            let _response = fidl::client::decode_transaction_body::<
73119                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73120                fidl::encoding::DefaultFuchsiaResourceDialect,
73121                0x1ae532b0c066e3a0,
73122            >(_buf?)?;
73123            Ok(_response.map(|x| x))
73124        }
73125        self.client.send_query_and_decode::<
73126            BaseNetworkSocketSetIpTransparentRequest,
73127            BaseNetworkSocketSetIpTransparentResult,
73128        >(
73129            (value,),
73130            0x1ae532b0c066e3a0,
73131            fidl::encoding::DynamicFlags::empty(),
73132            _decode,
73133        )
73134    }
73135
73136    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
73137        BaseNetworkSocketGetIpTransparentResult,
73138        fidl::encoding::DefaultFuchsiaResourceDialect,
73139    >;
73140    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
73141        fn _decode(
73142            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73143        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
73144            let _response = fidl::client::decode_transaction_body::<
73145                fidl::encoding::ResultType<
73146                    BaseNetworkSocketGetIpTransparentResponse,
73147                    fidl_fuchsia_posix::Errno,
73148                >,
73149                fidl::encoding::DefaultFuchsiaResourceDialect,
73150                0x51d43695962ebfb5,
73151            >(_buf?)?;
73152            Ok(_response.map(|x| x.value))
73153        }
73154        self.client.send_query_and_decode::<
73155            fidl::encoding::EmptyPayload,
73156            BaseNetworkSocketGetIpTransparentResult,
73157        >(
73158            (),
73159            0x51d43695962ebfb5,
73160            fidl::encoding::DynamicFlags::empty(),
73161            _decode,
73162        )
73163    }
73164
73165    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
73166        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
73167        fidl::encoding::DefaultFuchsiaResourceDialect,
73168    >;
73169    fn r#set_ip_receive_original_destination_address(
73170        &self,
73171        mut value: bool,
73172    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
73173        fn _decode(
73174            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73175        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
73176        {
73177            let _response = fidl::client::decode_transaction_body::<
73178                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73179                fidl::encoding::DefaultFuchsiaResourceDialect,
73180                0x4722b4ce52f7840,
73181            >(_buf?)?;
73182            Ok(_response.map(|x| x))
73183        }
73184        self.client.send_query_and_decode::<
73185            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
73186            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
73187        >(
73188            (value,),
73189            0x4722b4ce52f7840,
73190            fidl::encoding::DynamicFlags::empty(),
73191            _decode,
73192        )
73193    }
73194
73195    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
73196        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
73197        fidl::encoding::DefaultFuchsiaResourceDialect,
73198    >;
73199    fn r#get_ip_receive_original_destination_address(
73200        &self,
73201    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
73202        fn _decode(
73203            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73204        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
73205        {
73206            let _response = fidl::client::decode_transaction_body::<
73207                fidl::encoding::ResultType<
73208                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
73209                    fidl_fuchsia_posix::Errno,
73210                >,
73211                fidl::encoding::DefaultFuchsiaResourceDialect,
73212                0x2a0e7dc5d6bfdfe9,
73213            >(_buf?)?;
73214            Ok(_response.map(|x| x.value))
73215        }
73216        self.client.send_query_and_decode::<
73217            fidl::encoding::EmptyPayload,
73218            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
73219        >(
73220            (),
73221            0x2a0e7dc5d6bfdfe9,
73222            fidl::encoding::DynamicFlags::empty(),
73223            _decode,
73224        )
73225    }
73226
73227    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
73228        BaseNetworkSocketAddIpv6MembershipResult,
73229        fidl::encoding::DefaultFuchsiaResourceDialect,
73230    >;
73231    fn r#add_ipv6_membership(
73232        &self,
73233        mut membership: &Ipv6MulticastMembership,
73234    ) -> Self::AddIpv6MembershipResponseFut {
73235        fn _decode(
73236            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73237        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
73238            let _response = fidl::client::decode_transaction_body::<
73239                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73240                fidl::encoding::DefaultFuchsiaResourceDialect,
73241                0x7c94727acb4ea4b3,
73242            >(_buf?)?;
73243            Ok(_response.map(|x| x))
73244        }
73245        self.client.send_query_and_decode::<
73246            BaseNetworkSocketAddIpv6MembershipRequest,
73247            BaseNetworkSocketAddIpv6MembershipResult,
73248        >(
73249            (membership,),
73250            0x7c94727acb4ea4b3,
73251            fidl::encoding::DynamicFlags::empty(),
73252            _decode,
73253        )
73254    }
73255
73256    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
73257        BaseNetworkSocketDropIpv6MembershipResult,
73258        fidl::encoding::DefaultFuchsiaResourceDialect,
73259    >;
73260    fn r#drop_ipv6_membership(
73261        &self,
73262        mut membership: &Ipv6MulticastMembership,
73263    ) -> Self::DropIpv6MembershipResponseFut {
73264        fn _decode(
73265            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73266        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
73267            let _response = fidl::client::decode_transaction_body::<
73268                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73269                fidl::encoding::DefaultFuchsiaResourceDialect,
73270                0x42104c70ccaba304,
73271            >(_buf?)?;
73272            Ok(_response.map(|x| x))
73273        }
73274        self.client.send_query_and_decode::<
73275            BaseNetworkSocketDropIpv6MembershipRequest,
73276            BaseNetworkSocketDropIpv6MembershipResult,
73277        >(
73278            (membership,),
73279            0x42104c70ccaba304,
73280            fidl::encoding::DynamicFlags::empty(),
73281            _decode,
73282        )
73283    }
73284
73285    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
73286        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
73287        fidl::encoding::DefaultFuchsiaResourceDialect,
73288    >;
73289    fn r#set_ipv6_multicast_interface(
73290        &self,
73291        mut value: u64,
73292    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
73293        fn _decode(
73294            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73295        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
73296            let _response = fidl::client::decode_transaction_body::<
73297                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73298                fidl::encoding::DefaultFuchsiaResourceDialect,
73299                0x135f76db3774ab3b,
73300            >(_buf?)?;
73301            Ok(_response.map(|x| x))
73302        }
73303        self.client.send_query_and_decode::<
73304            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
73305            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
73306        >(
73307            (value,),
73308            0x135f76db3774ab3b,
73309            fidl::encoding::DynamicFlags::empty(),
73310            _decode,
73311        )
73312    }
73313
73314    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
73315        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
73316        fidl::encoding::DefaultFuchsiaResourceDialect,
73317    >;
73318    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
73319        fn _decode(
73320            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73321        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
73322            let _response = fidl::client::decode_transaction_body::<
73323                fidl::encoding::ResultType<
73324                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
73325                    fidl_fuchsia_posix::Errno,
73326                >,
73327                fidl::encoding::DefaultFuchsiaResourceDialect,
73328                0x1f26fcdd348f1882,
73329            >(_buf?)?;
73330            Ok(_response.map(|x| x.value))
73331        }
73332        self.client.send_query_and_decode::<
73333            fidl::encoding::EmptyPayload,
73334            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
73335        >(
73336            (),
73337            0x1f26fcdd348f1882,
73338            fidl::encoding::DynamicFlags::empty(),
73339            _decode,
73340        )
73341    }
73342
73343    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
73344        BaseNetworkSocketSetIpv6UnicastHopsResult,
73345        fidl::encoding::DefaultFuchsiaResourceDialect,
73346    >;
73347    fn r#set_ipv6_unicast_hops(
73348        &self,
73349        mut value: &OptionalUint8,
73350    ) -> Self::SetIpv6UnicastHopsResponseFut {
73351        fn _decode(
73352            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73353        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
73354            let _response = fidl::client::decode_transaction_body::<
73355                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73356                fidl::encoding::DefaultFuchsiaResourceDialect,
73357                0x157d51e98f462859,
73358            >(_buf?)?;
73359            Ok(_response.map(|x| x))
73360        }
73361        self.client.send_query_and_decode::<
73362            BaseNetworkSocketSetIpv6UnicastHopsRequest,
73363            BaseNetworkSocketSetIpv6UnicastHopsResult,
73364        >(
73365            (value,),
73366            0x157d51e98f462859,
73367            fidl::encoding::DynamicFlags::empty(),
73368            _decode,
73369        )
73370    }
73371
73372    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
73373        BaseNetworkSocketGetIpv6UnicastHopsResult,
73374        fidl::encoding::DefaultFuchsiaResourceDialect,
73375    >;
73376    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
73377        fn _decode(
73378            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73379        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
73380            let _response = fidl::client::decode_transaction_body::<
73381                fidl::encoding::ResultType<
73382                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
73383                    fidl_fuchsia_posix::Errno,
73384                >,
73385                fidl::encoding::DefaultFuchsiaResourceDialect,
73386                0x21f4641cad8bd8d2,
73387            >(_buf?)?;
73388            Ok(_response.map(|x| x.value))
73389        }
73390        self.client.send_query_and_decode::<
73391            fidl::encoding::EmptyPayload,
73392            BaseNetworkSocketGetIpv6UnicastHopsResult,
73393        >(
73394            (),
73395            0x21f4641cad8bd8d2,
73396            fidl::encoding::DynamicFlags::empty(),
73397            _decode,
73398        )
73399    }
73400
73401    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
73402        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
73403        fidl::encoding::DefaultFuchsiaResourceDialect,
73404    >;
73405    fn r#set_ipv6_receive_hop_limit(
73406        &self,
73407        mut value: bool,
73408    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
73409        fn _decode(
73410            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73411        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
73412            let _response = fidl::client::decode_transaction_body::<
73413                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73414                fidl::encoding::DefaultFuchsiaResourceDialect,
73415                0x5c24808ed2e84a1e,
73416            >(_buf?)?;
73417            Ok(_response.map(|x| x))
73418        }
73419        self.client.send_query_and_decode::<
73420            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
73421            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
73422        >(
73423            (value,),
73424            0x5c24808ed2e84a1e,
73425            fidl::encoding::DynamicFlags::empty(),
73426            _decode,
73427        )
73428    }
73429
73430    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
73431        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
73432        fidl::encoding::DefaultFuchsiaResourceDialect,
73433    >;
73434    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
73435        fn _decode(
73436            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73437        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
73438            let _response = fidl::client::decode_transaction_body::<
73439                fidl::encoding::ResultType<
73440                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
73441                    fidl_fuchsia_posix::Errno,
73442                >,
73443                fidl::encoding::DefaultFuchsiaResourceDialect,
73444                0x341e06689885b4c0,
73445            >(_buf?)?;
73446            Ok(_response.map(|x| x.value))
73447        }
73448        self.client.send_query_and_decode::<
73449            fidl::encoding::EmptyPayload,
73450            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
73451        >(
73452            (),
73453            0x341e06689885b4c0,
73454            fidl::encoding::DynamicFlags::empty(),
73455            _decode,
73456        )
73457    }
73458
73459    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
73460        BaseNetworkSocketSetIpv6MulticastHopsResult,
73461        fidl::encoding::DefaultFuchsiaResourceDialect,
73462    >;
73463    fn r#set_ipv6_multicast_hops(
73464        &self,
73465        mut value: &OptionalUint8,
73466    ) -> Self::SetIpv6MulticastHopsResponseFut {
73467        fn _decode(
73468            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73469        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
73470            let _response = fidl::client::decode_transaction_body::<
73471                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73472                fidl::encoding::DefaultFuchsiaResourceDialect,
73473                0x25b9cd4d181f82c1,
73474            >(_buf?)?;
73475            Ok(_response.map(|x| x))
73476        }
73477        self.client.send_query_and_decode::<
73478            BaseNetworkSocketSetIpv6MulticastHopsRequest,
73479            BaseNetworkSocketSetIpv6MulticastHopsResult,
73480        >(
73481            (value,),
73482            0x25b9cd4d181f82c1,
73483            fidl::encoding::DynamicFlags::empty(),
73484            _decode,
73485        )
73486    }
73487
73488    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
73489        BaseNetworkSocketGetIpv6MulticastHopsResult,
73490        fidl::encoding::DefaultFuchsiaResourceDialect,
73491    >;
73492    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
73493        fn _decode(
73494            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73495        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
73496            let _response = fidl::client::decode_transaction_body::<
73497                fidl::encoding::ResultType<
73498                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
73499                    fidl_fuchsia_posix::Errno,
73500                >,
73501                fidl::encoding::DefaultFuchsiaResourceDialect,
73502                0x52916948a365012a,
73503            >(_buf?)?;
73504            Ok(_response.map(|x| x.value))
73505        }
73506        self.client.send_query_and_decode::<
73507            fidl::encoding::EmptyPayload,
73508            BaseNetworkSocketGetIpv6MulticastHopsResult,
73509        >(
73510            (),
73511            0x52916948a365012a,
73512            fidl::encoding::DynamicFlags::empty(),
73513            _decode,
73514        )
73515    }
73516
73517    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
73518        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
73519        fidl::encoding::DefaultFuchsiaResourceDialect,
73520    >;
73521    fn r#set_ipv6_multicast_loopback(
73522        &self,
73523        mut value: bool,
73524    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
73525        fn _decode(
73526            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73527        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
73528            let _response = fidl::client::decode_transaction_body::<
73529                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73530                fidl::encoding::DefaultFuchsiaResourceDialect,
73531                0x55701c409ff41b40,
73532            >(_buf?)?;
73533            Ok(_response.map(|x| x))
73534        }
73535        self.client.send_query_and_decode::<
73536            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
73537            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
73538        >(
73539            (value,),
73540            0x55701c409ff41b40,
73541            fidl::encoding::DynamicFlags::empty(),
73542            _decode,
73543        )
73544    }
73545
73546    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
73547        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
73548        fidl::encoding::DefaultFuchsiaResourceDialect,
73549    >;
73550    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
73551        fn _decode(
73552            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73553        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
73554            let _response = fidl::client::decode_transaction_body::<
73555                fidl::encoding::ResultType<
73556                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
73557                    fidl_fuchsia_posix::Errno,
73558                >,
73559                fidl::encoding::DefaultFuchsiaResourceDialect,
73560                0x4415b701fde319c3,
73561            >(_buf?)?;
73562            Ok(_response.map(|x| x.value))
73563        }
73564        self.client.send_query_and_decode::<
73565            fidl::encoding::EmptyPayload,
73566            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
73567        >(
73568            (),
73569            0x4415b701fde319c3,
73570            fidl::encoding::DynamicFlags::empty(),
73571            _decode,
73572        )
73573    }
73574
73575    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
73576        BaseNetworkSocketSetIpv6OnlyResult,
73577        fidl::encoding::DefaultFuchsiaResourceDialect,
73578    >;
73579    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
73580        fn _decode(
73581            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73582        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
73583            let _response = fidl::client::decode_transaction_body::<
73584                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73585                fidl::encoding::DefaultFuchsiaResourceDialect,
73586                0x4873f1364758cbba,
73587            >(_buf?)?;
73588            Ok(_response.map(|x| x))
73589        }
73590        self.client.send_query_and_decode::<
73591            BaseNetworkSocketSetIpv6OnlyRequest,
73592            BaseNetworkSocketSetIpv6OnlyResult,
73593        >(
73594            (value,),
73595            0x4873f1364758cbba,
73596            fidl::encoding::DynamicFlags::empty(),
73597            _decode,
73598        )
73599    }
73600
73601    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
73602        BaseNetworkSocketGetIpv6OnlyResult,
73603        fidl::encoding::DefaultFuchsiaResourceDialect,
73604    >;
73605    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
73606        fn _decode(
73607            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73608        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
73609            let _response = fidl::client::decode_transaction_body::<
73610                fidl::encoding::ResultType<
73611                    BaseNetworkSocketGetIpv6OnlyResponse,
73612                    fidl_fuchsia_posix::Errno,
73613                >,
73614                fidl::encoding::DefaultFuchsiaResourceDialect,
73615                0x4aa3340a1a26b89c,
73616            >(_buf?)?;
73617            Ok(_response.map(|x| x.value))
73618        }
73619        self.client.send_query_and_decode::<
73620            fidl::encoding::EmptyPayload,
73621            BaseNetworkSocketGetIpv6OnlyResult,
73622        >(
73623            (),
73624            0x4aa3340a1a26b89c,
73625            fidl::encoding::DynamicFlags::empty(),
73626            _decode,
73627        )
73628    }
73629
73630    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
73631        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
73632        fidl::encoding::DefaultFuchsiaResourceDialect,
73633    >;
73634    fn r#set_ipv6_receive_traffic_class(
73635        &self,
73636        mut value: bool,
73637    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
73638        fn _decode(
73639            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73640        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
73641            let _response = fidl::client::decode_transaction_body::<
73642                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73643                fidl::encoding::DefaultFuchsiaResourceDialect,
73644                0x58f07c8788d099a0,
73645            >(_buf?)?;
73646            Ok(_response.map(|x| x))
73647        }
73648        self.client.send_query_and_decode::<
73649            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
73650            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
73651        >(
73652            (value,),
73653            0x58f07c8788d099a0,
73654            fidl::encoding::DynamicFlags::empty(),
73655            _decode,
73656        )
73657    }
73658
73659    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
73660        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
73661        fidl::encoding::DefaultFuchsiaResourceDialect,
73662    >;
73663    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
73664        fn _decode(
73665            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73666        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
73667            let _response = fidl::client::decode_transaction_body::<
73668                fidl::encoding::ResultType<
73669                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
73670                    fidl_fuchsia_posix::Errno,
73671                >,
73672                fidl::encoding::DefaultFuchsiaResourceDialect,
73673                0x2e334df1da553ffa,
73674            >(_buf?)?;
73675            Ok(_response.map(|x| x.value))
73676        }
73677        self.client.send_query_and_decode::<
73678            fidl::encoding::EmptyPayload,
73679            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
73680        >(
73681            (),
73682            0x2e334df1da553ffa,
73683            fidl::encoding::DynamicFlags::empty(),
73684            _decode,
73685        )
73686    }
73687
73688    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
73689        BaseNetworkSocketSetIpv6TrafficClassResult,
73690        fidl::encoding::DefaultFuchsiaResourceDialect,
73691    >;
73692    fn r#set_ipv6_traffic_class(
73693        &self,
73694        mut value: &OptionalUint8,
73695    ) -> Self::SetIpv6TrafficClassResponseFut {
73696        fn _decode(
73697            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73698        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
73699            let _response = fidl::client::decode_transaction_body::<
73700                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73701                fidl::encoding::DefaultFuchsiaResourceDialect,
73702                0x6af077800c5a0b4f,
73703            >(_buf?)?;
73704            Ok(_response.map(|x| x))
73705        }
73706        self.client.send_query_and_decode::<
73707            BaseNetworkSocketSetIpv6TrafficClassRequest,
73708            BaseNetworkSocketSetIpv6TrafficClassResult,
73709        >(
73710            (value,),
73711            0x6af077800c5a0b4f,
73712            fidl::encoding::DynamicFlags::empty(),
73713            _decode,
73714        )
73715    }
73716
73717    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
73718        BaseNetworkSocketGetIpv6TrafficClassResult,
73719        fidl::encoding::DefaultFuchsiaResourceDialect,
73720    >;
73721    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
73722        fn _decode(
73723            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73724        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
73725            let _response = fidl::client::decode_transaction_body::<
73726                fidl::encoding::ResultType<
73727                    BaseNetworkSocketGetIpv6TrafficClassResponse,
73728                    fidl_fuchsia_posix::Errno,
73729                >,
73730                fidl::encoding::DefaultFuchsiaResourceDialect,
73731                0x6baf6eed8fc2f04,
73732            >(_buf?)?;
73733            Ok(_response.map(|x| x.value))
73734        }
73735        self.client.send_query_and_decode::<
73736            fidl::encoding::EmptyPayload,
73737            BaseNetworkSocketGetIpv6TrafficClassResult,
73738        >(
73739            (),
73740            0x6baf6eed8fc2f04,
73741            fidl::encoding::DynamicFlags::empty(),
73742            _decode,
73743        )
73744    }
73745
73746    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
73747        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
73748        fidl::encoding::DefaultFuchsiaResourceDialect,
73749    >;
73750    fn r#set_ipv6_receive_packet_info(
73751        &self,
73752        mut value: bool,
73753    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
73754        fn _decode(
73755            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73756        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
73757            let _response = fidl::client::decode_transaction_body::<
73758                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73759                fidl::encoding::DefaultFuchsiaResourceDialect,
73760                0x19259775b1a92768,
73761            >(_buf?)?;
73762            Ok(_response.map(|x| x))
73763        }
73764        self.client.send_query_and_decode::<
73765            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
73766            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
73767        >(
73768            (value,),
73769            0x19259775b1a92768,
73770            fidl::encoding::DynamicFlags::empty(),
73771            _decode,
73772        )
73773    }
73774
73775    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
73776        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
73777        fidl::encoding::DefaultFuchsiaResourceDialect,
73778    >;
73779    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
73780        fn _decode(
73781            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73782        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
73783            let _response = fidl::client::decode_transaction_body::<
73784                fidl::encoding::ResultType<
73785                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
73786                    fidl_fuchsia_posix::Errno,
73787                >,
73788                fidl::encoding::DefaultFuchsiaResourceDialect,
73789                0x7acd4a2775baec75,
73790            >(_buf?)?;
73791            Ok(_response.map(|x| x.value))
73792        }
73793        self.client.send_query_and_decode::<
73794            fidl::encoding::EmptyPayload,
73795            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
73796        >(
73797            (),
73798            0x7acd4a2775baec75,
73799            fidl::encoding::DynamicFlags::empty(),
73800            _decode,
73801        )
73802    }
73803
73804    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
73805        BaseNetworkSocketGetOriginalDestinationResult,
73806        fidl::encoding::DefaultFuchsiaResourceDialect,
73807    >;
73808    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
73809        fn _decode(
73810            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73811        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
73812            let _response = fidl::client::decode_transaction_body::<
73813                fidl::encoding::ResultType<
73814                    BaseNetworkSocketGetOriginalDestinationResponse,
73815                    fidl_fuchsia_posix::Errno,
73816                >,
73817                fidl::encoding::DefaultFuchsiaResourceDialect,
73818                0x38bf28f0dafdbac0,
73819            >(_buf?)?;
73820            Ok(_response.map(|x| x.value))
73821        }
73822        self.client.send_query_and_decode::<
73823            fidl::encoding::EmptyPayload,
73824            BaseNetworkSocketGetOriginalDestinationResult,
73825        >(
73826            (),
73827            0x38bf28f0dafdbac0,
73828            fidl::encoding::DynamicFlags::empty(),
73829            _decode,
73830        )
73831    }
73832
73833    type GetInfoResponseFut = fidl::client::QueryResponseFut<
73834        BaseDatagramSocketGetInfoResult,
73835        fidl::encoding::DefaultFuchsiaResourceDialect,
73836    >;
73837    fn r#get_info(&self) -> Self::GetInfoResponseFut {
73838        fn _decode(
73839            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73840        ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
73841            let _response = fidl::client::decode_transaction_body::<
73842                fidl::encoding::ResultType<
73843                    BaseDatagramSocketGetInfoResponse,
73844                    fidl_fuchsia_posix::Errno,
73845                >,
73846                fidl::encoding::DefaultFuchsiaResourceDialect,
73847                0x48aa0a1f6a32d2ed,
73848            >(_buf?)?;
73849            Ok(_response.map(|x| (x.domain, x.proto)))
73850        }
73851        self.client
73852            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseDatagramSocketGetInfoResult>(
73853                (),
73854                0x48aa0a1f6a32d2ed,
73855                fidl::encoding::DynamicFlags::empty(),
73856                _decode,
73857            )
73858    }
73859
73860    type DescribeResponseFut = fidl::client::QueryResponseFut<
73861        SynchronousDatagramSocketDescribeResponse,
73862        fidl::encoding::DefaultFuchsiaResourceDialect,
73863    >;
73864    fn r#describe(&self) -> Self::DescribeResponseFut {
73865        fn _decode(
73866            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73867        ) -> Result<SynchronousDatagramSocketDescribeResponse, fidl::Error> {
73868            let _response = fidl::client::decode_transaction_body::<
73869                SynchronousDatagramSocketDescribeResponse,
73870                fidl::encoding::DefaultFuchsiaResourceDialect,
73871                0x585f20b73631070d,
73872            >(_buf?)?;
73873            Ok(_response)
73874        }
73875        self.client.send_query_and_decode::<
73876            fidl::encoding::EmptyPayload,
73877            SynchronousDatagramSocketDescribeResponse,
73878        >(
73879            (),
73880            0x585f20b73631070d,
73881            fidl::encoding::DynamicFlags::empty(),
73882            _decode,
73883        )
73884    }
73885
73886    type RecvMsgResponseFut = fidl::client::QueryResponseFut<
73887        SynchronousDatagramSocketRecvMsgResult,
73888        fidl::encoding::DefaultFuchsiaResourceDialect,
73889    >;
73890    fn r#recv_msg(
73891        &self,
73892        mut want_addr: bool,
73893        mut data_len: u32,
73894        mut want_control: bool,
73895        mut flags: RecvMsgFlags,
73896    ) -> Self::RecvMsgResponseFut {
73897        fn _decode(
73898            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73899        ) -> Result<SynchronousDatagramSocketRecvMsgResult, fidl::Error> {
73900            let _response = fidl::client::decode_transaction_body::<
73901                fidl::encoding::ResultType<
73902                    SynchronousDatagramSocketRecvMsgResponse,
73903                    fidl_fuchsia_posix::Errno,
73904                >,
73905                fidl::encoding::DefaultFuchsiaResourceDialect,
73906                0x28e494e48fb5dbf3,
73907            >(_buf?)?;
73908            Ok(_response.map(|x| (x.addr, x.data, x.control, x.truncated)))
73909        }
73910        self.client.send_query_and_decode::<
73911            SynchronousDatagramSocketRecvMsgRequest,
73912            SynchronousDatagramSocketRecvMsgResult,
73913        >(
73914            (want_addr, data_len, want_control, flags,),
73915            0x28e494e48fb5dbf3,
73916            fidl::encoding::DynamicFlags::empty(),
73917            _decode,
73918        )
73919    }
73920
73921    type SendMsgResponseFut = fidl::client::QueryResponseFut<
73922        SynchronousDatagramSocketSendMsgResult,
73923        fidl::encoding::DefaultFuchsiaResourceDialect,
73924    >;
73925    fn r#send_msg(
73926        &self,
73927        mut addr: Option<&fidl_fuchsia_net::SocketAddress>,
73928        mut data: &[u8],
73929        mut control: &DatagramSocketSendControlData,
73930        mut flags: SendMsgFlags,
73931    ) -> Self::SendMsgResponseFut {
73932        fn _decode(
73933            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73934        ) -> Result<SynchronousDatagramSocketSendMsgResult, fidl::Error> {
73935            let _response = fidl::client::decode_transaction_body::<
73936                fidl::encoding::ResultType<
73937                    SynchronousDatagramSocketSendMsgResponse,
73938                    fidl_fuchsia_posix::Errno,
73939                >,
73940                fidl::encoding::DefaultFuchsiaResourceDialect,
73941                0x12dc2fceab6cefaa,
73942            >(_buf?)?;
73943            Ok(_response.map(|x| x.len))
73944        }
73945        self.client.send_query_and_decode::<
73946            SynchronousDatagramSocketSendMsgRequest,
73947            SynchronousDatagramSocketSendMsgResult,
73948        >(
73949            (addr, data, control, flags,),
73950            0x12dc2fceab6cefaa,
73951            fidl::encoding::DynamicFlags::empty(),
73952            _decode,
73953        )
73954    }
73955}
73956
73957pub struct SynchronousDatagramSocketEventStream {
73958    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
73959}
73960
73961impl std::marker::Unpin for SynchronousDatagramSocketEventStream {}
73962
73963impl futures::stream::FusedStream for SynchronousDatagramSocketEventStream {
73964    fn is_terminated(&self) -> bool {
73965        self.event_receiver.is_terminated()
73966    }
73967}
73968
73969impl futures::Stream for SynchronousDatagramSocketEventStream {
73970    type Item = Result<SynchronousDatagramSocketEvent, fidl::Error>;
73971
73972    fn poll_next(
73973        mut self: std::pin::Pin<&mut Self>,
73974        cx: &mut std::task::Context<'_>,
73975    ) -> std::task::Poll<Option<Self::Item>> {
73976        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
73977            &mut self.event_receiver,
73978            cx
73979        )?) {
73980            Some(buf) => std::task::Poll::Ready(Some(SynchronousDatagramSocketEvent::decode(buf))),
73981            None => std::task::Poll::Ready(None),
73982        }
73983    }
73984}
73985
73986#[derive(Debug)]
73987pub enum SynchronousDatagramSocketEvent {}
73988
73989impl SynchronousDatagramSocketEvent {
73990    /// Decodes a message buffer as a [`SynchronousDatagramSocketEvent`].
73991    fn decode(
73992        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
73993    ) -> Result<SynchronousDatagramSocketEvent, fidl::Error> {
73994        let (bytes, _handles) = buf.split_mut();
73995        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
73996        debug_assert_eq!(tx_header.tx_id, 0);
73997        match tx_header.ordinal {
73998            _ => Err(fidl::Error::UnknownOrdinal {
73999                ordinal: tx_header.ordinal,
74000                protocol_name:
74001                    <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
74002            }),
74003        }
74004    }
74005}
74006
74007/// A Stream of incoming requests for fuchsia.posix.socket/SynchronousDatagramSocket.
74008pub struct SynchronousDatagramSocketRequestStream {
74009    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
74010    is_terminated: bool,
74011}
74012
74013impl std::marker::Unpin for SynchronousDatagramSocketRequestStream {}
74014
74015impl futures::stream::FusedStream for SynchronousDatagramSocketRequestStream {
74016    fn is_terminated(&self) -> bool {
74017        self.is_terminated
74018    }
74019}
74020
74021impl fidl::endpoints::RequestStream for SynchronousDatagramSocketRequestStream {
74022    type Protocol = SynchronousDatagramSocketMarker;
74023    type ControlHandle = SynchronousDatagramSocketControlHandle;
74024
74025    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
74026        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
74027    }
74028
74029    fn control_handle(&self) -> Self::ControlHandle {
74030        SynchronousDatagramSocketControlHandle { inner: self.inner.clone() }
74031    }
74032
74033    fn into_inner(
74034        self,
74035    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
74036    {
74037        (self.inner, self.is_terminated)
74038    }
74039
74040    fn from_inner(
74041        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
74042        is_terminated: bool,
74043    ) -> Self {
74044        Self { inner, is_terminated }
74045    }
74046}
74047
74048impl futures::Stream for SynchronousDatagramSocketRequestStream {
74049    type Item = Result<SynchronousDatagramSocketRequest, fidl::Error>;
74050
74051    fn poll_next(
74052        mut self: std::pin::Pin<&mut Self>,
74053        cx: &mut std::task::Context<'_>,
74054    ) -> std::task::Poll<Option<Self::Item>> {
74055        let this = &mut *self;
74056        if this.inner.check_shutdown(cx) {
74057            this.is_terminated = true;
74058            return std::task::Poll::Ready(None);
74059        }
74060        if this.is_terminated {
74061            panic!("polled SynchronousDatagramSocketRequestStream after completion");
74062        }
74063        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
74064            |bytes, handles| {
74065                match this.inner.channel().read_etc(cx, bytes, handles) {
74066                    std::task::Poll::Ready(Ok(())) => {}
74067                    std::task::Poll::Pending => return std::task::Poll::Pending,
74068                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
74069                        this.is_terminated = true;
74070                        return std::task::Poll::Ready(None);
74071                    }
74072                    std::task::Poll::Ready(Err(e)) => {
74073                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
74074                            e.into(),
74075                        ))));
74076                    }
74077                }
74078
74079                // A message has been received from the channel
74080                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
74081
74082                std::task::Poll::Ready(Some(match header.ordinal {
74083                0x20d8a7aba2168a79 => {
74084                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
74085                    let mut req = fidl::new_empty!(fidl_fuchsia_unknown::CloneableCloneRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74086                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
74087                    let control_handle = SynchronousDatagramSocketControlHandle {
74088                        inner: this.inner.clone(),
74089                    };
74090                    Ok(SynchronousDatagramSocketRequest::Clone {request: req.request,
74091
74092                        control_handle,
74093                    })
74094                }
74095                0x5ac5d459ad7f657e => {
74096                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74097                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74098                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74099                    let control_handle = SynchronousDatagramSocketControlHandle {
74100                        inner: this.inner.clone(),
74101                    };
74102                    Ok(SynchronousDatagramSocketRequest::Close {
74103                        responder: SynchronousDatagramSocketCloseResponder {
74104                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74105                            tx_id: header.tx_id,
74106                        },
74107                    })
74108                }
74109                0x2658edee9decfc06 => {
74110                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74111                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74112                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74113                    let control_handle = SynchronousDatagramSocketControlHandle {
74114                        inner: this.inner.clone(),
74115                    };
74116                    Ok(SynchronousDatagramSocketRequest::Query {
74117                        responder: SynchronousDatagramSocketQueryResponder {
74118                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74119                            tx_id: header.tx_id,
74120                        },
74121                    })
74122                }
74123                0x1fd74ee8b9a4a876 => {
74124                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74125                    let mut req = fidl::new_empty!(BaseSocketSetReuseAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74126                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
74127                    let control_handle = SynchronousDatagramSocketControlHandle {
74128                        inner: this.inner.clone(),
74129                    };
74130                    Ok(SynchronousDatagramSocketRequest::SetReuseAddress {value: req.value,
74131
74132                        responder: SynchronousDatagramSocketSetReuseAddressResponder {
74133                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74134                            tx_id: header.tx_id,
74135                        },
74136                    })
74137                }
74138                0x67b7206b8d1bc0a5 => {
74139                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74140                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74141                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74142                    let control_handle = SynchronousDatagramSocketControlHandle {
74143                        inner: this.inner.clone(),
74144                    };
74145                    Ok(SynchronousDatagramSocketRequest::GetReuseAddress {
74146                        responder: SynchronousDatagramSocketGetReuseAddressResponder {
74147                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74148                            tx_id: header.tx_id,
74149                        },
74150                    })
74151                }
74152                0x5aad39b33e5f6ebb => {
74153                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74154                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74155                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74156                    let control_handle = SynchronousDatagramSocketControlHandle {
74157                        inner: this.inner.clone(),
74158                    };
74159                    Ok(SynchronousDatagramSocketRequest::GetError {
74160                        responder: SynchronousDatagramSocketGetErrorResponder {
74161                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74162                            tx_id: header.tx_id,
74163                        },
74164                    })
74165                }
74166                0x6023e081ce3cd947 => {
74167                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74168                    let mut req = fidl::new_empty!(BaseSocketSetBroadcastRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74169                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
74170                    let control_handle = SynchronousDatagramSocketControlHandle {
74171                        inner: this.inner.clone(),
74172                    };
74173                    Ok(SynchronousDatagramSocketRequest::SetBroadcast {value: req.value,
74174
74175                        responder: SynchronousDatagramSocketSetBroadcastResponder {
74176                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74177                            tx_id: header.tx_id,
74178                        },
74179                    })
74180                }
74181                0x68796fc556f9780d => {
74182                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74183                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74184                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74185                    let control_handle = SynchronousDatagramSocketControlHandle {
74186                        inner: this.inner.clone(),
74187                    };
74188                    Ok(SynchronousDatagramSocketRequest::GetBroadcast {
74189                        responder: SynchronousDatagramSocketGetBroadcastResponder {
74190                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74191                            tx_id: header.tx_id,
74192                        },
74193                    })
74194                }
74195                0x756eac32d73a7a70 => {
74196                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74197                    let mut req = fidl::new_empty!(BaseSocketSetSendBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74198                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
74199                    let control_handle = SynchronousDatagramSocketControlHandle {
74200                        inner: this.inner.clone(),
74201                    };
74202                    Ok(SynchronousDatagramSocketRequest::SetSendBuffer {value_bytes: req.value_bytes,
74203
74204                        responder: SynchronousDatagramSocketSetSendBufferResponder {
74205                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74206                            tx_id: header.tx_id,
74207                        },
74208                    })
74209                }
74210                0x78a52fd9c7b2410b => {
74211                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74212                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74213                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74214                    let control_handle = SynchronousDatagramSocketControlHandle {
74215                        inner: this.inner.clone(),
74216                    };
74217                    Ok(SynchronousDatagramSocketRequest::GetSendBuffer {
74218                        responder: SynchronousDatagramSocketGetSendBufferResponder {
74219                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74220                            tx_id: header.tx_id,
74221                        },
74222                    })
74223                }
74224                0x6b0cf2f1919c7001 => {
74225                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74226                    let mut req = fidl::new_empty!(BaseSocketSetReceiveBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74227                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
74228                    let control_handle = SynchronousDatagramSocketControlHandle {
74229                        inner: this.inner.clone(),
74230                    };
74231                    Ok(SynchronousDatagramSocketRequest::SetReceiveBuffer {value_bytes: req.value_bytes,
74232
74233                        responder: SynchronousDatagramSocketSetReceiveBufferResponder {
74234                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74235                            tx_id: header.tx_id,
74236                        },
74237                    })
74238                }
74239                0x14c1a4b64f709e5c => {
74240                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74241                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74242                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74243                    let control_handle = SynchronousDatagramSocketControlHandle {
74244                        inner: this.inner.clone(),
74245                    };
74246                    Ok(SynchronousDatagramSocketRequest::GetReceiveBuffer {
74247                        responder: SynchronousDatagramSocketGetReceiveBufferResponder {
74248                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74249                            tx_id: header.tx_id,
74250                        },
74251                    })
74252                }
74253                0x572df8f0b920d2c7 => {
74254                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74255                    let mut req = fidl::new_empty!(BaseSocketSetKeepAliveRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74256                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
74257                    let control_handle = SynchronousDatagramSocketControlHandle {
74258                        inner: this.inner.clone(),
74259                    };
74260                    Ok(SynchronousDatagramSocketRequest::SetKeepAlive {value: req.value,
74261
74262                        responder: SynchronousDatagramSocketSetKeepAliveResponder {
74263                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74264                            tx_id: header.tx_id,
74265                        },
74266                    })
74267                }
74268                0x2dd29d3215f2c9d2 => {
74269                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74270                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74271                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74272                    let control_handle = SynchronousDatagramSocketControlHandle {
74273                        inner: this.inner.clone(),
74274                    };
74275                    Ok(SynchronousDatagramSocketRequest::GetKeepAlive {
74276                        responder: SynchronousDatagramSocketGetKeepAliveResponder {
74277                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74278                            tx_id: header.tx_id,
74279                        },
74280                    })
74281                }
74282                0x3ecb49968bee439 => {
74283                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74284                    let mut req = fidl::new_empty!(BaseSocketSetOutOfBandInlineRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74285                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
74286                    let control_handle = SynchronousDatagramSocketControlHandle {
74287                        inner: this.inner.clone(),
74288                    };
74289                    Ok(SynchronousDatagramSocketRequest::SetOutOfBandInline {value: req.value,
74290
74291                        responder: SynchronousDatagramSocketSetOutOfBandInlineResponder {
74292                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74293                            tx_id: header.tx_id,
74294                        },
74295                    })
74296                }
74297                0x348c1ab3aeca1745 => {
74298                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74299                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74300                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74301                    let control_handle = SynchronousDatagramSocketControlHandle {
74302                        inner: this.inner.clone(),
74303                    };
74304                    Ok(SynchronousDatagramSocketRequest::GetOutOfBandInline {
74305                        responder: SynchronousDatagramSocketGetOutOfBandInlineResponder {
74306                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74307                            tx_id: header.tx_id,
74308                        },
74309                    })
74310                }
74311                0x6bbf00c53a4c78c2 => {
74312                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74313                    let mut req = fidl::new_empty!(BaseSocketSetNoCheckRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74314                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
74315                    let control_handle = SynchronousDatagramSocketControlHandle {
74316                        inner: this.inner.clone(),
74317                    };
74318                    Ok(SynchronousDatagramSocketRequest::SetNoCheck {value: req.value,
74319
74320                        responder: SynchronousDatagramSocketSetNoCheckResponder {
74321                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74322                            tx_id: header.tx_id,
74323                        },
74324                    })
74325                }
74326                0x2cd4249286417694 => {
74327                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74328                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74329                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74330                    let control_handle = SynchronousDatagramSocketControlHandle {
74331                        inner: this.inner.clone(),
74332                    };
74333                    Ok(SynchronousDatagramSocketRequest::GetNoCheck {
74334                        responder: SynchronousDatagramSocketGetNoCheckResponder {
74335                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74336                            tx_id: header.tx_id,
74337                        },
74338                    })
74339                }
74340                0x45386351246e998e => {
74341                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74342                    let mut req = fidl::new_empty!(BaseSocketSetLingerRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74343                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
74344                    let control_handle = SynchronousDatagramSocketControlHandle {
74345                        inner: this.inner.clone(),
74346                    };
74347                    Ok(SynchronousDatagramSocketRequest::SetLinger {linger: req.linger,
74348length_secs: req.length_secs,
74349
74350                        responder: SynchronousDatagramSocketSetLingerResponder {
74351                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74352                            tx_id: header.tx_id,
74353                        },
74354                    })
74355                }
74356                0x48eb20fc5ccb0e45 => {
74357                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74358                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74359                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74360                    let control_handle = SynchronousDatagramSocketControlHandle {
74361                        inner: this.inner.clone(),
74362                    };
74363                    Ok(SynchronousDatagramSocketRequest::GetLinger {
74364                        responder: SynchronousDatagramSocketGetLingerResponder {
74365                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74366                            tx_id: header.tx_id,
74367                        },
74368                    })
74369                }
74370                0x24dd3e5cb36d9ccb => {
74371                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74372                    let mut req = fidl::new_empty!(BaseSocketSetReusePortRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74373                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
74374                    let control_handle = SynchronousDatagramSocketControlHandle {
74375                        inner: this.inner.clone(),
74376                    };
74377                    Ok(SynchronousDatagramSocketRequest::SetReusePort {value: req.value,
74378
74379                        responder: SynchronousDatagramSocketSetReusePortResponder {
74380                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74381                            tx_id: header.tx_id,
74382                        },
74383                    })
74384                }
74385                0x7a112c1ab54ff828 => {
74386                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74387                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74388                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74389                    let control_handle = SynchronousDatagramSocketControlHandle {
74390                        inner: this.inner.clone(),
74391                    };
74392                    Ok(SynchronousDatagramSocketRequest::GetReusePort {
74393                        responder: SynchronousDatagramSocketGetReusePortResponder {
74394                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74395                            tx_id: header.tx_id,
74396                        },
74397                    })
74398                }
74399                0x67ce6db6c2ec8966 => {
74400                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74401                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74402                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74403                    let control_handle = SynchronousDatagramSocketControlHandle {
74404                        inner: this.inner.clone(),
74405                    };
74406                    Ok(SynchronousDatagramSocketRequest::GetAcceptConn {
74407                        responder: SynchronousDatagramSocketGetAcceptConnResponder {
74408                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74409                            tx_id: header.tx_id,
74410                        },
74411                    })
74412                }
74413                0x2118b483f28aafc4 => {
74414                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74415                    let mut req = fidl::new_empty!(BaseSocketSetBindToDeviceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74416                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
74417                    let control_handle = SynchronousDatagramSocketControlHandle {
74418                        inner: this.inner.clone(),
74419                    };
74420                    Ok(SynchronousDatagramSocketRequest::SetBindToDevice {value: req.value,
74421
74422                        responder: SynchronousDatagramSocketSetBindToDeviceResponder {
74423                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74424                            tx_id: header.tx_id,
74425                        },
74426                    })
74427                }
74428                0x1ab1fbf0ef7906c8 => {
74429                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74430                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74431                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74432                    let control_handle = SynchronousDatagramSocketControlHandle {
74433                        inner: this.inner.clone(),
74434                    };
74435                    Ok(SynchronousDatagramSocketRequest::GetBindToDevice {
74436                        responder: SynchronousDatagramSocketGetBindToDeviceResponder {
74437                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74438                            tx_id: header.tx_id,
74439                        },
74440                    })
74441                }
74442                0x6e387a0def00821 => {
74443                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74444                    let mut req = fidl::new_empty!(BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74445                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
74446                    let control_handle = SynchronousDatagramSocketControlHandle {
74447                        inner: this.inner.clone(),
74448                    };
74449                    Ok(SynchronousDatagramSocketRequest::SetBindToInterfaceIndex {value: req.value,
74450
74451                        responder: SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
74452                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74453                            tx_id: header.tx_id,
74454                        },
74455                    })
74456                }
74457                0x59c31dd3e3078295 => {
74458                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74459                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74460                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74461                    let control_handle = SynchronousDatagramSocketControlHandle {
74462                        inner: this.inner.clone(),
74463                    };
74464                    Ok(SynchronousDatagramSocketRequest::GetBindToInterfaceIndex {
74465                        responder: SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
74466                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74467                            tx_id: header.tx_id,
74468                        },
74469                    })
74470                }
74471                0x285d6516c263d839 => {
74472                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74473                    let mut req = fidl::new_empty!(BaseSocketSetTimestampRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74474                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
74475                    let control_handle = SynchronousDatagramSocketControlHandle {
74476                        inner: this.inner.clone(),
74477                    };
74478                    Ok(SynchronousDatagramSocketRequest::SetTimestamp {value: req.value,
74479
74480                        responder: SynchronousDatagramSocketSetTimestampResponder {
74481                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74482                            tx_id: header.tx_id,
74483                        },
74484                    })
74485                }
74486                0x49f2fffbbcc2bd27 => {
74487                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74488                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74489                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74490                    let control_handle = SynchronousDatagramSocketControlHandle {
74491                        inner: this.inner.clone(),
74492                    };
74493                    Ok(SynchronousDatagramSocketRequest::GetTimestamp {
74494                        responder: SynchronousDatagramSocketGetTimestampResponder {
74495                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74496                            tx_id: header.tx_id,
74497                        },
74498                    })
74499                }
74500                0x6ead6de09f653236 => {
74501                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74502                    let mut req = fidl::new_empty!(BaseSocketSetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74503                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
74504                    let control_handle = SynchronousDatagramSocketControlHandle {
74505                        inner: this.inner.clone(),
74506                    };
74507                    Ok(SynchronousDatagramSocketRequest::SetMark {domain: req.domain,
74508mark: req.mark,
74509
74510                        responder: SynchronousDatagramSocketSetMarkResponder {
74511                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74512                            tx_id: header.tx_id,
74513                        },
74514                    })
74515                }
74516                0x57a2752c61d93d47 => {
74517                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74518                    let mut req = fidl::new_empty!(BaseSocketGetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74519                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
74520                    let control_handle = SynchronousDatagramSocketControlHandle {
74521                        inner: this.inner.clone(),
74522                    };
74523                    Ok(SynchronousDatagramSocketRequest::GetMark {domain: req.domain,
74524
74525                        responder: SynchronousDatagramSocketGetMarkResponder {
74526                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74527                            tx_id: header.tx_id,
74528                        },
74529                    })
74530                }
74531                0x2c2f47fd8f924e52 => {
74532                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74533                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74534                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74535                    let control_handle = SynchronousDatagramSocketControlHandle {
74536                        inner: this.inner.clone(),
74537                    };
74538                    Ok(SynchronousDatagramSocketRequest::GetCookie {
74539                        responder: SynchronousDatagramSocketGetCookieResponder {
74540                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74541                            tx_id: header.tx_id,
74542                        },
74543                    })
74544                }
74545                0x4bc6400ae92125d => {
74546                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74547                    let mut req = fidl::new_empty!(BaseNetworkSocketBindRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74548                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
74549                    let control_handle = SynchronousDatagramSocketControlHandle {
74550                        inner: this.inner.clone(),
74551                    };
74552                    Ok(SynchronousDatagramSocketRequest::Bind {addr: req.addr,
74553
74554                        responder: SynchronousDatagramSocketBindResponder {
74555                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74556                            tx_id: header.tx_id,
74557                        },
74558                    })
74559                }
74560                0x5f05f19bfdd38871 => {
74561                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74562                    let mut req = fidl::new_empty!(BaseNetworkSocketConnectRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74563                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
74564                    let control_handle = SynchronousDatagramSocketControlHandle {
74565                        inner: this.inner.clone(),
74566                    };
74567                    Ok(SynchronousDatagramSocketRequest::Connect {addr: req.addr,
74568
74569                        responder: SynchronousDatagramSocketConnectResponder {
74570                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74571                            tx_id: header.tx_id,
74572                        },
74573                    })
74574                }
74575                0x74e63b91f7b29b2 => {
74576                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74577                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74578                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74579                    let control_handle = SynchronousDatagramSocketControlHandle {
74580                        inner: this.inner.clone(),
74581                    };
74582                    Ok(SynchronousDatagramSocketRequest::Disconnect {
74583                        responder: SynchronousDatagramSocketDisconnectResponder {
74584                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74585                            tx_id: header.tx_id,
74586                        },
74587                    })
74588                }
74589                0x475f23f84a1a4f85 => {
74590                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74591                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74592                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74593                    let control_handle = SynchronousDatagramSocketControlHandle {
74594                        inner: this.inner.clone(),
74595                    };
74596                    Ok(SynchronousDatagramSocketRequest::GetSockName {
74597                        responder: SynchronousDatagramSocketGetSockNameResponder {
74598                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74599                            tx_id: header.tx_id,
74600                        },
74601                    })
74602                }
74603                0x1ffecf4bd5b6432e => {
74604                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74605                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74606                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74607                    let control_handle = SynchronousDatagramSocketControlHandle {
74608                        inner: this.inner.clone(),
74609                    };
74610                    Ok(SynchronousDatagramSocketRequest::GetPeerName {
74611                        responder: SynchronousDatagramSocketGetPeerNameResponder {
74612                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74613                            tx_id: header.tx_id,
74614                        },
74615                    })
74616                }
74617                0x247f38b6db68c336 => {
74618                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74619                    let mut req = fidl::new_empty!(BaseNetworkSocketShutdownRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74620                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
74621                    let control_handle = SynchronousDatagramSocketControlHandle {
74622                        inner: this.inner.clone(),
74623                    };
74624                    Ok(SynchronousDatagramSocketRequest::Shutdown {mode: req.mode,
74625
74626                        responder: SynchronousDatagramSocketShutdownResponder {
74627                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74628                            tx_id: header.tx_id,
74629                        },
74630                    })
74631                }
74632                0x995c600475b6d46 => {
74633                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74634                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74635                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
74636                    let control_handle = SynchronousDatagramSocketControlHandle {
74637                        inner: this.inner.clone(),
74638                    };
74639                    Ok(SynchronousDatagramSocketRequest::SetIpTypeOfService {value: req.value,
74640
74641                        responder: SynchronousDatagramSocketSetIpTypeOfServiceResponder {
74642                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74643                            tx_id: header.tx_id,
74644                        },
74645                    })
74646                }
74647                0x3814a04259f75fcb => {
74648                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74649                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74650                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74651                    let control_handle = SynchronousDatagramSocketControlHandle {
74652                        inner: this.inner.clone(),
74653                    };
74654                    Ok(SynchronousDatagramSocketRequest::GetIpTypeOfService {
74655                        responder: SynchronousDatagramSocketGetIpTypeOfServiceResponder {
74656                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74657                            tx_id: header.tx_id,
74658                        },
74659                    })
74660                }
74661                0x29e2424b433ae1ef => {
74662                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74663                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74664                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
74665                    let control_handle = SynchronousDatagramSocketControlHandle {
74666                        inner: this.inner.clone(),
74667                    };
74668                    Ok(SynchronousDatagramSocketRequest::SetIpTtl {value: req.value,
74669
74670                        responder: SynchronousDatagramSocketSetIpTtlResponder {
74671                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74672                            tx_id: header.tx_id,
74673                        },
74674                    })
74675                }
74676                0x47e47fa1f24da471 => {
74677                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74678                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74679                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74680                    let control_handle = SynchronousDatagramSocketControlHandle {
74681                        inner: this.inner.clone(),
74682                    };
74683                    Ok(SynchronousDatagramSocketRequest::GetIpTtl {
74684                        responder: SynchronousDatagramSocketGetIpTtlResponder {
74685                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74686                            tx_id: header.tx_id,
74687                        },
74688                    })
74689                }
74690                0x392d16bee20c0e16 => {
74691                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74692                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74693                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
74694                    let control_handle = SynchronousDatagramSocketControlHandle {
74695                        inner: this.inner.clone(),
74696                    };
74697                    Ok(SynchronousDatagramSocketRequest::SetIpPacketInfo {value: req.value,
74698
74699                        responder: SynchronousDatagramSocketSetIpPacketInfoResponder {
74700                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74701                            tx_id: header.tx_id,
74702                        },
74703                    })
74704                }
74705                0x54b505f242280740 => {
74706                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74707                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74708                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74709                    let control_handle = SynchronousDatagramSocketControlHandle {
74710                        inner: this.inner.clone(),
74711                    };
74712                    Ok(SynchronousDatagramSocketRequest::GetIpPacketInfo {
74713                        responder: SynchronousDatagramSocketGetIpPacketInfoResponder {
74714                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74715                            tx_id: header.tx_id,
74716                        },
74717                    })
74718                }
74719                0x6c4f6714995f84ef => {
74720                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74721                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74722                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
74723                    let control_handle = SynchronousDatagramSocketControlHandle {
74724                        inner: this.inner.clone(),
74725                    };
74726                    Ok(SynchronousDatagramSocketRequest::SetIpReceiveTypeOfService {value: req.value,
74727
74728                        responder: SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
74729                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74730                            tx_id: header.tx_id,
74731                        },
74732                    })
74733                }
74734                0x4158ba7dc2795960 => {
74735                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74736                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74737                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74738                    let control_handle = SynchronousDatagramSocketControlHandle {
74739                        inner: this.inner.clone(),
74740                    };
74741                    Ok(SynchronousDatagramSocketRequest::GetIpReceiveTypeOfService {
74742                        responder: SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
74743                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74744                            tx_id: header.tx_id,
74745                        },
74746                    })
74747                }
74748                0x46f15be0ce0ab82b => {
74749                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74750                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74751                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
74752                    let control_handle = SynchronousDatagramSocketControlHandle {
74753                        inner: this.inner.clone(),
74754                    };
74755                    Ok(SynchronousDatagramSocketRequest::SetIpReceiveTtl {value: req.value,
74756
74757                        responder: SynchronousDatagramSocketSetIpReceiveTtlResponder {
74758                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74759                            tx_id: header.tx_id,
74760                        },
74761                    })
74762                }
74763                0x678ddd5a5dfa2eb5 => {
74764                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74765                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74766                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74767                    let control_handle = SynchronousDatagramSocketControlHandle {
74768                        inner: this.inner.clone(),
74769                    };
74770                    Ok(SynchronousDatagramSocketRequest::GetIpReceiveTtl {
74771                        responder: SynchronousDatagramSocketGetIpReceiveTtlResponder {
74772                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74773                            tx_id: header.tx_id,
74774                        },
74775                    })
74776                }
74777                0x752fbfa9b12befe => {
74778                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74779                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74780                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
74781                    let control_handle = SynchronousDatagramSocketControlHandle {
74782                        inner: this.inner.clone(),
74783                    };
74784                    Ok(SynchronousDatagramSocketRequest::SetIpMulticastInterface {iface: req.iface,
74785address: req.address,
74786
74787                        responder: SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
74788                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74789                            tx_id: header.tx_id,
74790                        },
74791                    })
74792                }
74793                0x320bd14c4df046c4 => {
74794                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74795                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74796                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74797                    let control_handle = SynchronousDatagramSocketControlHandle {
74798                        inner: this.inner.clone(),
74799                    };
74800                    Ok(SynchronousDatagramSocketRequest::GetIpMulticastInterface {
74801                        responder: SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
74802                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74803                            tx_id: header.tx_id,
74804                        },
74805                    })
74806                }
74807                0x63134d53772916a1 => {
74808                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74809                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74810                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
74811                    let control_handle = SynchronousDatagramSocketControlHandle {
74812                        inner: this.inner.clone(),
74813                    };
74814                    Ok(SynchronousDatagramSocketRequest::SetIpMulticastTtl {value: req.value,
74815
74816                        responder: SynchronousDatagramSocketSetIpMulticastTtlResponder {
74817                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74818                            tx_id: header.tx_id,
74819                        },
74820                    })
74821                }
74822                0x4665cd378f39e1a => {
74823                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74824                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74825                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74826                    let control_handle = SynchronousDatagramSocketControlHandle {
74827                        inner: this.inner.clone(),
74828                    };
74829                    Ok(SynchronousDatagramSocketRequest::GetIpMulticastTtl {
74830                        responder: SynchronousDatagramSocketGetIpMulticastTtlResponder {
74831                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74832                            tx_id: header.tx_id,
74833                        },
74834                    })
74835                }
74836                0x20c55c11f00943ea => {
74837                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74838                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74839                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
74840                    let control_handle = SynchronousDatagramSocketControlHandle {
74841                        inner: this.inner.clone(),
74842                    };
74843                    Ok(SynchronousDatagramSocketRequest::SetIpMulticastLoopback {value: req.value,
74844
74845                        responder: SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
74846                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74847                            tx_id: header.tx_id,
74848                        },
74849                    })
74850                }
74851                0x3b6b26ff558298f2 => {
74852                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74853                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74854                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74855                    let control_handle = SynchronousDatagramSocketControlHandle {
74856                        inner: this.inner.clone(),
74857                    };
74858                    Ok(SynchronousDatagramSocketRequest::GetIpMulticastLoopback {
74859                        responder: SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
74860                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74861                            tx_id: header.tx_id,
74862                        },
74863                    })
74864                }
74865                0x76bc7df115a3b4d0 => {
74866                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74867                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74868                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
74869                    let control_handle = SynchronousDatagramSocketControlHandle {
74870                        inner: this.inner.clone(),
74871                    };
74872                    Ok(SynchronousDatagramSocketRequest::AddIpMembership {membership: req.membership,
74873
74874                        responder: SynchronousDatagramSocketAddIpMembershipResponder {
74875                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74876                            tx_id: header.tx_id,
74877                        },
74878                    })
74879                }
74880                0x2888f3099188d03 => {
74881                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74882                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74883                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
74884                    let control_handle = SynchronousDatagramSocketControlHandle {
74885                        inner: this.inner.clone(),
74886                    };
74887                    Ok(SynchronousDatagramSocketRequest::DropIpMembership {membership: req.membership,
74888
74889                        responder: SynchronousDatagramSocketDropIpMembershipResponder {
74890                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74891                            tx_id: header.tx_id,
74892                        },
74893                    })
74894                }
74895                0x1ae532b0c066e3a0 => {
74896                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74897                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74898                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
74899                    let control_handle = SynchronousDatagramSocketControlHandle {
74900                        inner: this.inner.clone(),
74901                    };
74902                    Ok(SynchronousDatagramSocketRequest::SetIpTransparent {value: req.value,
74903
74904                        responder: SynchronousDatagramSocketSetIpTransparentResponder {
74905                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74906                            tx_id: header.tx_id,
74907                        },
74908                    })
74909                }
74910                0x51d43695962ebfb5 => {
74911                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74912                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74913                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74914                    let control_handle = SynchronousDatagramSocketControlHandle {
74915                        inner: this.inner.clone(),
74916                    };
74917                    Ok(SynchronousDatagramSocketRequest::GetIpTransparent {
74918                        responder: SynchronousDatagramSocketGetIpTransparentResponder {
74919                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74920                            tx_id: header.tx_id,
74921                        },
74922                    })
74923                }
74924                0x4722b4ce52f7840 => {
74925                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74926                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74927                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
74928                    let control_handle = SynchronousDatagramSocketControlHandle {
74929                        inner: this.inner.clone(),
74930                    };
74931                    Ok(SynchronousDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {value: req.value,
74932
74933                        responder: SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
74934                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74935                            tx_id: header.tx_id,
74936                        },
74937                    })
74938                }
74939                0x2a0e7dc5d6bfdfe9 => {
74940                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74941                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74942                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74943                    let control_handle = SynchronousDatagramSocketControlHandle {
74944                        inner: this.inner.clone(),
74945                    };
74946                    Ok(SynchronousDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
74947                        responder: SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
74948                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74949                            tx_id: header.tx_id,
74950                        },
74951                    })
74952                }
74953                0x7c94727acb4ea4b3 => {
74954                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74955                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74956                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
74957                    let control_handle = SynchronousDatagramSocketControlHandle {
74958                        inner: this.inner.clone(),
74959                    };
74960                    Ok(SynchronousDatagramSocketRequest::AddIpv6Membership {membership: req.membership,
74961
74962                        responder: SynchronousDatagramSocketAddIpv6MembershipResponder {
74963                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74964                            tx_id: header.tx_id,
74965                        },
74966                    })
74967                }
74968                0x42104c70ccaba304 => {
74969                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74970                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74971                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
74972                    let control_handle = SynchronousDatagramSocketControlHandle {
74973                        inner: this.inner.clone(),
74974                    };
74975                    Ok(SynchronousDatagramSocketRequest::DropIpv6Membership {membership: req.membership,
74976
74977                        responder: SynchronousDatagramSocketDropIpv6MembershipResponder {
74978                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74979                            tx_id: header.tx_id,
74980                        },
74981                    })
74982                }
74983                0x135f76db3774ab3b => {
74984                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74985                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74986                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
74987                    let control_handle = SynchronousDatagramSocketControlHandle {
74988                        inner: this.inner.clone(),
74989                    };
74990                    Ok(SynchronousDatagramSocketRequest::SetIpv6MulticastInterface {value: req.value,
74991
74992                        responder: SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
74993                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74994                            tx_id: header.tx_id,
74995                        },
74996                    })
74997                }
74998                0x1f26fcdd348f1882 => {
74999                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75000                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75001                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75002                    let control_handle = SynchronousDatagramSocketControlHandle {
75003                        inner: this.inner.clone(),
75004                    };
75005                    Ok(SynchronousDatagramSocketRequest::GetIpv6MulticastInterface {
75006                        responder: SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
75007                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75008                            tx_id: header.tx_id,
75009                        },
75010                    })
75011                }
75012                0x157d51e98f462859 => {
75013                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75014                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6UnicastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75015                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
75016                    let control_handle = SynchronousDatagramSocketControlHandle {
75017                        inner: this.inner.clone(),
75018                    };
75019                    Ok(SynchronousDatagramSocketRequest::SetIpv6UnicastHops {value: req.value,
75020
75021                        responder: SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
75022                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75023                            tx_id: header.tx_id,
75024                        },
75025                    })
75026                }
75027                0x21f4641cad8bd8d2 => {
75028                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75029                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75030                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75031                    let control_handle = SynchronousDatagramSocketControlHandle {
75032                        inner: this.inner.clone(),
75033                    };
75034                    Ok(SynchronousDatagramSocketRequest::GetIpv6UnicastHops {
75035                        responder: SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
75036                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75037                            tx_id: header.tx_id,
75038                        },
75039                    })
75040                }
75041                0x5c24808ed2e84a1e => {
75042                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75043                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveHopLimitRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75044                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
75045                    let control_handle = SynchronousDatagramSocketControlHandle {
75046                        inner: this.inner.clone(),
75047                    };
75048                    Ok(SynchronousDatagramSocketRequest::SetIpv6ReceiveHopLimit {value: req.value,
75049
75050                        responder: SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
75051                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75052                            tx_id: header.tx_id,
75053                        },
75054                    })
75055                }
75056                0x341e06689885b4c0 => {
75057                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75058                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75059                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75060                    let control_handle = SynchronousDatagramSocketControlHandle {
75061                        inner: this.inner.clone(),
75062                    };
75063                    Ok(SynchronousDatagramSocketRequest::GetIpv6ReceiveHopLimit {
75064                        responder: SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
75065                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75066                            tx_id: header.tx_id,
75067                        },
75068                    })
75069                }
75070                0x25b9cd4d181f82c1 => {
75071                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75072                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75073                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
75074                    let control_handle = SynchronousDatagramSocketControlHandle {
75075                        inner: this.inner.clone(),
75076                    };
75077                    Ok(SynchronousDatagramSocketRequest::SetIpv6MulticastHops {value: req.value,
75078
75079                        responder: SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
75080                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75081                            tx_id: header.tx_id,
75082                        },
75083                    })
75084                }
75085                0x52916948a365012a => {
75086                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75087                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75088                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75089                    let control_handle = SynchronousDatagramSocketControlHandle {
75090                        inner: this.inner.clone(),
75091                    };
75092                    Ok(SynchronousDatagramSocketRequest::GetIpv6MulticastHops {
75093                        responder: SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
75094                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75095                            tx_id: header.tx_id,
75096                        },
75097                    })
75098                }
75099                0x55701c409ff41b40 => {
75100                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75101                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75102                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
75103                    let control_handle = SynchronousDatagramSocketControlHandle {
75104                        inner: this.inner.clone(),
75105                    };
75106                    Ok(SynchronousDatagramSocketRequest::SetIpv6MulticastLoopback {value: req.value,
75107
75108                        responder: SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
75109                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75110                            tx_id: header.tx_id,
75111                        },
75112                    })
75113                }
75114                0x4415b701fde319c3 => {
75115                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75116                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75117                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75118                    let control_handle = SynchronousDatagramSocketControlHandle {
75119                        inner: this.inner.clone(),
75120                    };
75121                    Ok(SynchronousDatagramSocketRequest::GetIpv6MulticastLoopback {
75122                        responder: SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
75123                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75124                            tx_id: header.tx_id,
75125                        },
75126                    })
75127                }
75128                0x4873f1364758cbba => {
75129                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75130                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75131                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
75132                    let control_handle = SynchronousDatagramSocketControlHandle {
75133                        inner: this.inner.clone(),
75134                    };
75135                    Ok(SynchronousDatagramSocketRequest::SetIpv6Only {value: req.value,
75136
75137                        responder: SynchronousDatagramSocketSetIpv6OnlyResponder {
75138                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75139                            tx_id: header.tx_id,
75140                        },
75141                    })
75142                }
75143                0x4aa3340a1a26b89c => {
75144                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75145                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75146                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75147                    let control_handle = SynchronousDatagramSocketControlHandle {
75148                        inner: this.inner.clone(),
75149                    };
75150                    Ok(SynchronousDatagramSocketRequest::GetIpv6Only {
75151                        responder: SynchronousDatagramSocketGetIpv6OnlyResponder {
75152                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75153                            tx_id: header.tx_id,
75154                        },
75155                    })
75156                }
75157                0x58f07c8788d099a0 => {
75158                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75159                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75160                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
75161                    let control_handle = SynchronousDatagramSocketControlHandle {
75162                        inner: this.inner.clone(),
75163                    };
75164                    Ok(SynchronousDatagramSocketRequest::SetIpv6ReceiveTrafficClass {value: req.value,
75165
75166                        responder: SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
75167                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75168                            tx_id: header.tx_id,
75169                        },
75170                    })
75171                }
75172                0x2e334df1da553ffa => {
75173                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75174                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75175                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75176                    let control_handle = SynchronousDatagramSocketControlHandle {
75177                        inner: this.inner.clone(),
75178                    };
75179                    Ok(SynchronousDatagramSocketRequest::GetIpv6ReceiveTrafficClass {
75180                        responder: SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
75181                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75182                            tx_id: header.tx_id,
75183                        },
75184                    })
75185                }
75186                0x6af077800c5a0b4f => {
75187                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75188                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6TrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75189                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
75190                    let control_handle = SynchronousDatagramSocketControlHandle {
75191                        inner: this.inner.clone(),
75192                    };
75193                    Ok(SynchronousDatagramSocketRequest::SetIpv6TrafficClass {value: req.value,
75194
75195                        responder: SynchronousDatagramSocketSetIpv6TrafficClassResponder {
75196                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75197                            tx_id: header.tx_id,
75198                        },
75199                    })
75200                }
75201                0x6baf6eed8fc2f04 => {
75202                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75203                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75204                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75205                    let control_handle = SynchronousDatagramSocketControlHandle {
75206                        inner: this.inner.clone(),
75207                    };
75208                    Ok(SynchronousDatagramSocketRequest::GetIpv6TrafficClass {
75209                        responder: SynchronousDatagramSocketGetIpv6TrafficClassResponder {
75210                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75211                            tx_id: header.tx_id,
75212                        },
75213                    })
75214                }
75215                0x19259775b1a92768 => {
75216                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75217                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceivePacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75218                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
75219                    let control_handle = SynchronousDatagramSocketControlHandle {
75220                        inner: this.inner.clone(),
75221                    };
75222                    Ok(SynchronousDatagramSocketRequest::SetIpv6ReceivePacketInfo {value: req.value,
75223
75224                        responder: SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
75225                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75226                            tx_id: header.tx_id,
75227                        },
75228                    })
75229                }
75230                0x7acd4a2775baec75 => {
75231                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75232                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75233                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75234                    let control_handle = SynchronousDatagramSocketControlHandle {
75235                        inner: this.inner.clone(),
75236                    };
75237                    Ok(SynchronousDatagramSocketRequest::GetIpv6ReceivePacketInfo {
75238                        responder: SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
75239                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75240                            tx_id: header.tx_id,
75241                        },
75242                    })
75243                }
75244                0x38bf28f0dafdbac0 => {
75245                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75246                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75247                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75248                    let control_handle = SynchronousDatagramSocketControlHandle {
75249                        inner: this.inner.clone(),
75250                    };
75251                    Ok(SynchronousDatagramSocketRequest::GetOriginalDestination {
75252                        responder: SynchronousDatagramSocketGetOriginalDestinationResponder {
75253                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75254                            tx_id: header.tx_id,
75255                        },
75256                    })
75257                }
75258                0x48aa0a1f6a32d2ed => {
75259                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75260                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75261                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75262                    let control_handle = SynchronousDatagramSocketControlHandle {
75263                        inner: this.inner.clone(),
75264                    };
75265                    Ok(SynchronousDatagramSocketRequest::GetInfo {
75266                        responder: SynchronousDatagramSocketGetInfoResponder {
75267                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75268                            tx_id: header.tx_id,
75269                        },
75270                    })
75271                }
75272                0x585f20b73631070d => {
75273                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75274                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75275                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75276                    let control_handle = SynchronousDatagramSocketControlHandle {
75277                        inner: this.inner.clone(),
75278                    };
75279                    Ok(SynchronousDatagramSocketRequest::Describe {
75280                        responder: SynchronousDatagramSocketDescribeResponder {
75281                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75282                            tx_id: header.tx_id,
75283                        },
75284                    })
75285                }
75286                0x28e494e48fb5dbf3 => {
75287                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75288                    let mut req = fidl::new_empty!(SynchronousDatagramSocketRecvMsgRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75289                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<SynchronousDatagramSocketRecvMsgRequest>(&header, _body_bytes, handles, &mut req)?;
75290                    let control_handle = SynchronousDatagramSocketControlHandle {
75291                        inner: this.inner.clone(),
75292                    };
75293                    Ok(SynchronousDatagramSocketRequest::RecvMsg {want_addr: req.want_addr,
75294data_len: req.data_len,
75295want_control: req.want_control,
75296flags: req.flags,
75297
75298                        responder: SynchronousDatagramSocketRecvMsgResponder {
75299                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75300                            tx_id: header.tx_id,
75301                        },
75302                    })
75303                }
75304                0x12dc2fceab6cefaa => {
75305                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75306                    let mut req = fidl::new_empty!(SynchronousDatagramSocketSendMsgRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75307                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<SynchronousDatagramSocketSendMsgRequest>(&header, _body_bytes, handles, &mut req)?;
75308                    let control_handle = SynchronousDatagramSocketControlHandle {
75309                        inner: this.inner.clone(),
75310                    };
75311                    Ok(SynchronousDatagramSocketRequest::SendMsg {addr: req.addr,
75312data: req.data,
75313control: req.control,
75314flags: req.flags,
75315
75316                        responder: SynchronousDatagramSocketSendMsgResponder {
75317                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75318                            tx_id: header.tx_id,
75319                        },
75320                    })
75321                }
75322                _ => Err(fidl::Error::UnknownOrdinal {
75323                    ordinal: header.ordinal,
75324                    protocol_name: <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
75325                }),
75326            }))
75327            },
75328        )
75329    }
75330}
75331
75332/// A synchronous datagram socket.
75333///
75334/// This protocol defines synchronous methods for sending and receiving datagram
75335/// payloads over a channel. All methods are nonblocking; their behavior roughly
75336/// matches their Linux counterparts.
75337///
75338/// *Warning:* This protocol is not yet ready for direct use by clients.
75339/// Instead, clients should use the BSD sockets API to interact with sockets.
75340/// We plan to change this protocol substantially and clients that couple
75341/// directly to this protocol will make those changes more difficult.
75342#[derive(Debug)]
75343pub enum SynchronousDatagramSocketRequest {
75344    Clone {
75345        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
75346        control_handle: SynchronousDatagramSocketControlHandle,
75347    },
75348    /// Terminates the connection.
75349    ///
75350    /// After calling `Close`, the client must not send any other requests.
75351    ///
75352    /// Servers, after sending the status response, should close the connection
75353    /// regardless of status and without sending an epitaph.
75354    ///
75355    /// Closing the client end of the channel should be semantically equivalent
75356    /// to calling `Close` without knowing when the close has completed or its
75357    /// status.
75358    Close {
75359        responder: SynchronousDatagramSocketCloseResponder,
75360    },
75361    Query {
75362        responder: SynchronousDatagramSocketQueryResponder,
75363    },
75364    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
75365    SetReuseAddress {
75366        value: bool,
75367        responder: SynchronousDatagramSocketSetReuseAddressResponder,
75368    },
75369    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
75370    GetReuseAddress {
75371        responder: SynchronousDatagramSocketGetReuseAddressResponder,
75372    },
75373    /// Get `SOL_SOCKET` -> `SO_ERROR`.
75374    /// Returns the last error if there is an error set on the socket.
75375    GetError {
75376        responder: SynchronousDatagramSocketGetErrorResponder,
75377    },
75378    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
75379    SetBroadcast {
75380        value: bool,
75381        responder: SynchronousDatagramSocketSetBroadcastResponder,
75382    },
75383    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
75384    GetBroadcast {
75385        responder: SynchronousDatagramSocketGetBroadcastResponder,
75386    },
75387    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
75388    SetSendBuffer {
75389        value_bytes: u64,
75390        responder: SynchronousDatagramSocketSetSendBufferResponder,
75391    },
75392    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
75393    GetSendBuffer {
75394        responder: SynchronousDatagramSocketGetSendBufferResponder,
75395    },
75396    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
75397    SetReceiveBuffer {
75398        value_bytes: u64,
75399        responder: SynchronousDatagramSocketSetReceiveBufferResponder,
75400    },
75401    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
75402    GetReceiveBuffer {
75403        responder: SynchronousDatagramSocketGetReceiveBufferResponder,
75404    },
75405    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
75406    SetKeepAlive {
75407        value: bool,
75408        responder: SynchronousDatagramSocketSetKeepAliveResponder,
75409    },
75410    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
75411    GetKeepAlive {
75412        responder: SynchronousDatagramSocketGetKeepAliveResponder,
75413    },
75414    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
75415    SetOutOfBandInline {
75416        value: bool,
75417        responder: SynchronousDatagramSocketSetOutOfBandInlineResponder,
75418    },
75419    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
75420    GetOutOfBandInline {
75421        responder: SynchronousDatagramSocketGetOutOfBandInlineResponder,
75422    },
75423    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
75424    SetNoCheck {
75425        value: bool,
75426        responder: SynchronousDatagramSocketSetNoCheckResponder,
75427    },
75428    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
75429    GetNoCheck {
75430        responder: SynchronousDatagramSocketGetNoCheckResponder,
75431    },
75432    /// Set `SOL_SOCKET` -> `SO_LINGER`.
75433    SetLinger {
75434        linger: bool,
75435        length_secs: u32,
75436        responder: SynchronousDatagramSocketSetLingerResponder,
75437    },
75438    /// Get `SOL_SOCKET` -> `SO_LINGER`.
75439    GetLinger {
75440        responder: SynchronousDatagramSocketGetLingerResponder,
75441    },
75442    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
75443    SetReusePort {
75444        value: bool,
75445        responder: SynchronousDatagramSocketSetReusePortResponder,
75446    },
75447    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
75448    GetReusePort {
75449        responder: SynchronousDatagramSocketGetReusePortResponder,
75450    },
75451    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
75452    GetAcceptConn {
75453        responder: SynchronousDatagramSocketGetAcceptConnResponder,
75454    },
75455    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
75456    SetBindToDevice {
75457        value: String,
75458        responder: SynchronousDatagramSocketSetBindToDeviceResponder,
75459    },
75460    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
75461    GetBindToDevice {
75462        responder: SynchronousDatagramSocketGetBindToDeviceResponder,
75463    },
75464    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
75465    /// If `value` is 0, this clears the bound interface.
75466    SetBindToInterfaceIndex {
75467        value: u64,
75468        responder: SynchronousDatagramSocketSetBindToInterfaceIndexResponder,
75469    },
75470    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
75471    GetBindToInterfaceIndex {
75472        responder: SynchronousDatagramSocketGetBindToInterfaceIndexResponder,
75473    },
75474    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
75475    SetTimestamp {
75476        value: TimestampOption,
75477        responder: SynchronousDatagramSocketSetTimestampResponder,
75478    },
75479    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
75480    GetTimestamp {
75481        responder: SynchronousDatagramSocketGetTimestampResponder,
75482    },
75483    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
75484    /// unlike the standard SO_MARK, this API has multiple mark domains and each
75485    /// mark can be set independently in each domain.
75486    SetMark {
75487        domain: fidl_fuchsia_net::MarkDomain,
75488        mark: OptionalUint32,
75489        responder: SynchronousDatagramSocketSetMarkResponder,
75490    },
75491    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
75492    /// unlike the standard SO_MARK, this API has multiple mark domains and each
75493    /// mark can be retrieved independently in each domain.
75494    GetMark {
75495        domain: fidl_fuchsia_net::MarkDomain,
75496        responder: SynchronousDatagramSocketGetMarkResponder,
75497    },
75498    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
75499    GetCookie {
75500        responder: SynchronousDatagramSocketGetCookieResponder,
75501    },
75502    /// Sets the local address used for the socket.
75503    Bind {
75504        addr: fidl_fuchsia_net::SocketAddress,
75505        responder: SynchronousDatagramSocketBindResponder,
75506    },
75507    /// Initiates a connection to a remote address.
75508    Connect {
75509        addr: fidl_fuchsia_net::SocketAddress,
75510        responder: SynchronousDatagramSocketConnectResponder,
75511    },
75512    /// Clears connection information from this socket.
75513    Disconnect {
75514        responder: SynchronousDatagramSocketDisconnectResponder,
75515    },
75516    /// Retrieves the local socket address.
75517    GetSockName {
75518        responder: SynchronousDatagramSocketGetSockNameResponder,
75519    },
75520    /// Retrieves the remote socket address.
75521    GetPeerName {
75522        responder: SynchronousDatagramSocketGetPeerNameResponder,
75523    },
75524    /// Shuts down part of the socket.
75525    Shutdown {
75526        mode: ShutdownMode,
75527        responder: SynchronousDatagramSocketShutdownResponder,
75528    },
75529    /// Set `SOL_IP` -> `IP_TOS`.
75530    SetIpTypeOfService {
75531        value: u8,
75532        responder: SynchronousDatagramSocketSetIpTypeOfServiceResponder,
75533    },
75534    /// Get `SOL_IP` -> `IP_TOS`.
75535    GetIpTypeOfService {
75536        responder: SynchronousDatagramSocketGetIpTypeOfServiceResponder,
75537    },
75538    /// Set `SOL_IP` -> `IP_TTL`.
75539    SetIpTtl {
75540        value: OptionalUint8,
75541        responder: SynchronousDatagramSocketSetIpTtlResponder,
75542    },
75543    /// Get `SOL_IP` -> `IP_TTL`.
75544    GetIpTtl {
75545        responder: SynchronousDatagramSocketGetIpTtlResponder,
75546    },
75547    /// Set `SOL_IP` -> `IP_PKTINFO`.
75548    SetIpPacketInfo {
75549        value: bool,
75550        responder: SynchronousDatagramSocketSetIpPacketInfoResponder,
75551    },
75552    /// Get `SOL_IP` -> `IP_PKTINFO`.
75553    GetIpPacketInfo {
75554        responder: SynchronousDatagramSocketGetIpPacketInfoResponder,
75555    },
75556    /// Set `SOL_IP` -> `IP_RECVTOS`.
75557    SetIpReceiveTypeOfService {
75558        value: bool,
75559        responder: SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder,
75560    },
75561    /// Get `SOL_IP` -> `IP_RECVTOS`.
75562    GetIpReceiveTypeOfService {
75563        responder: SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder,
75564    },
75565    /// Set `SOL_IP` -> `IP_RECVTTL`.
75566    SetIpReceiveTtl {
75567        value: bool,
75568        responder: SynchronousDatagramSocketSetIpReceiveTtlResponder,
75569    },
75570    /// Get `SOL_IP` -> `IP_RECVTTL`.
75571    GetIpReceiveTtl {
75572        responder: SynchronousDatagramSocketGetIpReceiveTtlResponder,
75573    },
75574    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
75575    SetIpMulticastInterface {
75576        iface: u64,
75577        address: fidl_fuchsia_net::Ipv4Address,
75578        responder: SynchronousDatagramSocketSetIpMulticastInterfaceResponder,
75579    },
75580    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
75581    GetIpMulticastInterface {
75582        responder: SynchronousDatagramSocketGetIpMulticastInterfaceResponder,
75583    },
75584    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
75585    SetIpMulticastTtl {
75586        value: OptionalUint8,
75587        responder: SynchronousDatagramSocketSetIpMulticastTtlResponder,
75588    },
75589    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
75590    GetIpMulticastTtl {
75591        responder: SynchronousDatagramSocketGetIpMulticastTtlResponder,
75592    },
75593    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
75594    SetIpMulticastLoopback {
75595        value: bool,
75596        responder: SynchronousDatagramSocketSetIpMulticastLoopbackResponder,
75597    },
75598    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
75599    GetIpMulticastLoopback {
75600        responder: SynchronousDatagramSocketGetIpMulticastLoopbackResponder,
75601    },
75602    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
75603    AddIpMembership {
75604        membership: IpMulticastMembership,
75605        responder: SynchronousDatagramSocketAddIpMembershipResponder,
75606    },
75607    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
75608    DropIpMembership {
75609        membership: IpMulticastMembership,
75610        responder: SynchronousDatagramSocketDropIpMembershipResponder,
75611    },
75612    /// Set `SOL_IP` -> `IP_TRANSPARENT`
75613    SetIpTransparent {
75614        value: bool,
75615        responder: SynchronousDatagramSocketSetIpTransparentResponder,
75616    },
75617    /// Get `SOL_IP` -> `IP_TRANSPARENT`
75618    GetIpTransparent {
75619        responder: SynchronousDatagramSocketGetIpTransparentResponder,
75620    },
75621    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
75622    SetIpReceiveOriginalDestinationAddress {
75623        value: bool,
75624        responder: SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder,
75625    },
75626    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
75627    GetIpReceiveOriginalDestinationAddress {
75628        responder: SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder,
75629    },
75630    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
75631    AddIpv6Membership {
75632        membership: Ipv6MulticastMembership,
75633        responder: SynchronousDatagramSocketAddIpv6MembershipResponder,
75634    },
75635    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
75636    DropIpv6Membership {
75637        membership: Ipv6MulticastMembership,
75638        responder: SynchronousDatagramSocketDropIpv6MembershipResponder,
75639    },
75640    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
75641    SetIpv6MulticastInterface {
75642        value: u64,
75643        responder: SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder,
75644    },
75645    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
75646    GetIpv6MulticastInterface {
75647        responder: SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder,
75648    },
75649    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
75650    SetIpv6UnicastHops {
75651        value: OptionalUint8,
75652        responder: SynchronousDatagramSocketSetIpv6UnicastHopsResponder,
75653    },
75654    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
75655    GetIpv6UnicastHops {
75656        responder: SynchronousDatagramSocketGetIpv6UnicastHopsResponder,
75657    },
75658    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
75659    SetIpv6ReceiveHopLimit {
75660        value: bool,
75661        responder: SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder,
75662    },
75663    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
75664    GetIpv6ReceiveHopLimit {
75665        responder: SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder,
75666    },
75667    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
75668    SetIpv6MulticastHops {
75669        value: OptionalUint8,
75670        responder: SynchronousDatagramSocketSetIpv6MulticastHopsResponder,
75671    },
75672    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
75673    GetIpv6MulticastHops {
75674        responder: SynchronousDatagramSocketGetIpv6MulticastHopsResponder,
75675    },
75676    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
75677    SetIpv6MulticastLoopback {
75678        value: bool,
75679        responder: SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder,
75680    },
75681    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
75682    GetIpv6MulticastLoopback {
75683        responder: SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder,
75684    },
75685    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
75686    SetIpv6Only {
75687        value: bool,
75688        responder: SynchronousDatagramSocketSetIpv6OnlyResponder,
75689    },
75690    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
75691    GetIpv6Only {
75692        responder: SynchronousDatagramSocketGetIpv6OnlyResponder,
75693    },
75694    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
75695    SetIpv6ReceiveTrafficClass {
75696        value: bool,
75697        responder: SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder,
75698    },
75699    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
75700    GetIpv6ReceiveTrafficClass {
75701        responder: SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder,
75702    },
75703    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
75704    SetIpv6TrafficClass {
75705        value: OptionalUint8,
75706        responder: SynchronousDatagramSocketSetIpv6TrafficClassResponder,
75707    },
75708    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
75709    GetIpv6TrafficClass {
75710        responder: SynchronousDatagramSocketGetIpv6TrafficClassResponder,
75711    },
75712    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
75713    SetIpv6ReceivePacketInfo {
75714        value: bool,
75715        responder: SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder,
75716    },
75717    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
75718    GetIpv6ReceivePacketInfo {
75719        responder: SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder,
75720    },
75721    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
75722    GetOriginalDestination {
75723        responder: SynchronousDatagramSocketGetOriginalDestinationResponder,
75724    },
75725    /// Retrieves creation information from the socket.
75726    ///
75727    /// - response `domain` the socket's associated domain.
75728    /// - response `proto` the socket's associated protocol.
75729    GetInfo {
75730        responder: SynchronousDatagramSocketGetInfoResponder,
75731    },
75732    Describe {
75733        responder: SynchronousDatagramSocketDescribeResponder,
75734    },
75735    /// Receives a message from the socket.
75736    ///
75737    /// + request `want_addr` request message's source address information to
75738    ///   be returned.
75739    /// + request `data_len` the maximum allowed length of the response data
75740    ///   buffer.
75741    /// + request `want_control` request ancillary data to be returned.
75742    /// + request `flags` flags for the receive request.
75743    /// - response `addr` the message's source address information, if
75744    ///   requested.
75745    /// - response `data` the message.
75746    /// - response `control` control messages, if requested.
75747    /// - response `truncated` indicates whether or not the returned message
75748    ///   was truncated.
75749    RecvMsg {
75750        want_addr: bool,
75751        data_len: u32,
75752        want_control: bool,
75753        flags: RecvMsgFlags,
75754        responder: SynchronousDatagramSocketRecvMsgResponder,
75755    },
75756    /// Sends a message on the socket.
75757    ///
75758    /// + request `addr` the address to send the message to. If unset, will send
75759    ///   to the connected peer.
75760    /// + request `data` the message.
75761    /// + request `control` ancillary data.
75762    /// + request `flags` flags for the send request.
75763    /// - response `len` the number of bytes sent.
75764    SendMsg {
75765        addr: Option<Box<fidl_fuchsia_net::SocketAddress>>,
75766        data: Vec<u8>,
75767        control: DatagramSocketSendControlData,
75768        flags: SendMsgFlags,
75769        responder: SynchronousDatagramSocketSendMsgResponder,
75770    },
75771}
75772
75773impl SynchronousDatagramSocketRequest {
75774    #[allow(irrefutable_let_patterns)]
75775    pub fn into_clone(
75776        self,
75777    ) -> Option<(
75778        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
75779        SynchronousDatagramSocketControlHandle,
75780    )> {
75781        if let SynchronousDatagramSocketRequest::Clone { request, control_handle } = self {
75782            Some((request, control_handle))
75783        } else {
75784            None
75785        }
75786    }
75787
75788    #[allow(irrefutable_let_patterns)]
75789    pub fn into_close(self) -> Option<(SynchronousDatagramSocketCloseResponder)> {
75790        if let SynchronousDatagramSocketRequest::Close { responder } = self {
75791            Some((responder))
75792        } else {
75793            None
75794        }
75795    }
75796
75797    #[allow(irrefutable_let_patterns)]
75798    pub fn into_query(self) -> Option<(SynchronousDatagramSocketQueryResponder)> {
75799        if let SynchronousDatagramSocketRequest::Query { responder } = self {
75800            Some((responder))
75801        } else {
75802            None
75803        }
75804    }
75805
75806    #[allow(irrefutable_let_patterns)]
75807    pub fn into_set_reuse_address(
75808        self,
75809    ) -> Option<(bool, SynchronousDatagramSocketSetReuseAddressResponder)> {
75810        if let SynchronousDatagramSocketRequest::SetReuseAddress { value, responder } = self {
75811            Some((value, responder))
75812        } else {
75813            None
75814        }
75815    }
75816
75817    #[allow(irrefutable_let_patterns)]
75818    pub fn into_get_reuse_address(
75819        self,
75820    ) -> Option<(SynchronousDatagramSocketGetReuseAddressResponder)> {
75821        if let SynchronousDatagramSocketRequest::GetReuseAddress { responder } = self {
75822            Some((responder))
75823        } else {
75824            None
75825        }
75826    }
75827
75828    #[allow(irrefutable_let_patterns)]
75829    pub fn into_get_error(self) -> Option<(SynchronousDatagramSocketGetErrorResponder)> {
75830        if let SynchronousDatagramSocketRequest::GetError { responder } = self {
75831            Some((responder))
75832        } else {
75833            None
75834        }
75835    }
75836
75837    #[allow(irrefutable_let_patterns)]
75838    pub fn into_set_broadcast(
75839        self,
75840    ) -> Option<(bool, SynchronousDatagramSocketSetBroadcastResponder)> {
75841        if let SynchronousDatagramSocketRequest::SetBroadcast { value, responder } = self {
75842            Some((value, responder))
75843        } else {
75844            None
75845        }
75846    }
75847
75848    #[allow(irrefutable_let_patterns)]
75849    pub fn into_get_broadcast(self) -> Option<(SynchronousDatagramSocketGetBroadcastResponder)> {
75850        if let SynchronousDatagramSocketRequest::GetBroadcast { responder } = self {
75851            Some((responder))
75852        } else {
75853            None
75854        }
75855    }
75856
75857    #[allow(irrefutable_let_patterns)]
75858    pub fn into_set_send_buffer(
75859        self,
75860    ) -> Option<(u64, SynchronousDatagramSocketSetSendBufferResponder)> {
75861        if let SynchronousDatagramSocketRequest::SetSendBuffer { value_bytes, responder } = self {
75862            Some((value_bytes, responder))
75863        } else {
75864            None
75865        }
75866    }
75867
75868    #[allow(irrefutable_let_patterns)]
75869    pub fn into_get_send_buffer(self) -> Option<(SynchronousDatagramSocketGetSendBufferResponder)> {
75870        if let SynchronousDatagramSocketRequest::GetSendBuffer { responder } = self {
75871            Some((responder))
75872        } else {
75873            None
75874        }
75875    }
75876
75877    #[allow(irrefutable_let_patterns)]
75878    pub fn into_set_receive_buffer(
75879        self,
75880    ) -> Option<(u64, SynchronousDatagramSocketSetReceiveBufferResponder)> {
75881        if let SynchronousDatagramSocketRequest::SetReceiveBuffer { value_bytes, responder } = self
75882        {
75883            Some((value_bytes, responder))
75884        } else {
75885            None
75886        }
75887    }
75888
75889    #[allow(irrefutable_let_patterns)]
75890    pub fn into_get_receive_buffer(
75891        self,
75892    ) -> Option<(SynchronousDatagramSocketGetReceiveBufferResponder)> {
75893        if let SynchronousDatagramSocketRequest::GetReceiveBuffer { responder } = self {
75894            Some((responder))
75895        } else {
75896            None
75897        }
75898    }
75899
75900    #[allow(irrefutable_let_patterns)]
75901    pub fn into_set_keep_alive(
75902        self,
75903    ) -> Option<(bool, SynchronousDatagramSocketSetKeepAliveResponder)> {
75904        if let SynchronousDatagramSocketRequest::SetKeepAlive { value, responder } = self {
75905            Some((value, responder))
75906        } else {
75907            None
75908        }
75909    }
75910
75911    #[allow(irrefutable_let_patterns)]
75912    pub fn into_get_keep_alive(self) -> Option<(SynchronousDatagramSocketGetKeepAliveResponder)> {
75913        if let SynchronousDatagramSocketRequest::GetKeepAlive { responder } = self {
75914            Some((responder))
75915        } else {
75916            None
75917        }
75918    }
75919
75920    #[allow(irrefutable_let_patterns)]
75921    pub fn into_set_out_of_band_inline(
75922        self,
75923    ) -> Option<(bool, SynchronousDatagramSocketSetOutOfBandInlineResponder)> {
75924        if let SynchronousDatagramSocketRequest::SetOutOfBandInline { value, responder } = self {
75925            Some((value, responder))
75926        } else {
75927            None
75928        }
75929    }
75930
75931    #[allow(irrefutable_let_patterns)]
75932    pub fn into_get_out_of_band_inline(
75933        self,
75934    ) -> Option<(SynchronousDatagramSocketGetOutOfBandInlineResponder)> {
75935        if let SynchronousDatagramSocketRequest::GetOutOfBandInline { responder } = self {
75936            Some((responder))
75937        } else {
75938            None
75939        }
75940    }
75941
75942    #[allow(irrefutable_let_patterns)]
75943    pub fn into_set_no_check(self) -> Option<(bool, SynchronousDatagramSocketSetNoCheckResponder)> {
75944        if let SynchronousDatagramSocketRequest::SetNoCheck { value, responder } = self {
75945            Some((value, responder))
75946        } else {
75947            None
75948        }
75949    }
75950
75951    #[allow(irrefutable_let_patterns)]
75952    pub fn into_get_no_check(self) -> Option<(SynchronousDatagramSocketGetNoCheckResponder)> {
75953        if let SynchronousDatagramSocketRequest::GetNoCheck { responder } = self {
75954            Some((responder))
75955        } else {
75956            None
75957        }
75958    }
75959
75960    #[allow(irrefutable_let_patterns)]
75961    pub fn into_set_linger(
75962        self,
75963    ) -> Option<(bool, u32, SynchronousDatagramSocketSetLingerResponder)> {
75964        if let SynchronousDatagramSocketRequest::SetLinger { linger, length_secs, responder } = self
75965        {
75966            Some((linger, length_secs, responder))
75967        } else {
75968            None
75969        }
75970    }
75971
75972    #[allow(irrefutable_let_patterns)]
75973    pub fn into_get_linger(self) -> Option<(SynchronousDatagramSocketGetLingerResponder)> {
75974        if let SynchronousDatagramSocketRequest::GetLinger { responder } = self {
75975            Some((responder))
75976        } else {
75977            None
75978        }
75979    }
75980
75981    #[allow(irrefutable_let_patterns)]
75982    pub fn into_set_reuse_port(
75983        self,
75984    ) -> Option<(bool, SynchronousDatagramSocketSetReusePortResponder)> {
75985        if let SynchronousDatagramSocketRequest::SetReusePort { value, responder } = self {
75986            Some((value, responder))
75987        } else {
75988            None
75989        }
75990    }
75991
75992    #[allow(irrefutable_let_patterns)]
75993    pub fn into_get_reuse_port(self) -> Option<(SynchronousDatagramSocketGetReusePortResponder)> {
75994        if let SynchronousDatagramSocketRequest::GetReusePort { responder } = self {
75995            Some((responder))
75996        } else {
75997            None
75998        }
75999    }
76000
76001    #[allow(irrefutable_let_patterns)]
76002    pub fn into_get_accept_conn(self) -> Option<(SynchronousDatagramSocketGetAcceptConnResponder)> {
76003        if let SynchronousDatagramSocketRequest::GetAcceptConn { responder } = self {
76004            Some((responder))
76005        } else {
76006            None
76007        }
76008    }
76009
76010    #[allow(irrefutable_let_patterns)]
76011    pub fn into_set_bind_to_device(
76012        self,
76013    ) -> Option<(String, SynchronousDatagramSocketSetBindToDeviceResponder)> {
76014        if let SynchronousDatagramSocketRequest::SetBindToDevice { value, responder } = self {
76015            Some((value, responder))
76016        } else {
76017            None
76018        }
76019    }
76020
76021    #[allow(irrefutable_let_patterns)]
76022    pub fn into_get_bind_to_device(
76023        self,
76024    ) -> Option<(SynchronousDatagramSocketGetBindToDeviceResponder)> {
76025        if let SynchronousDatagramSocketRequest::GetBindToDevice { responder } = self {
76026            Some((responder))
76027        } else {
76028            None
76029        }
76030    }
76031
76032    #[allow(irrefutable_let_patterns)]
76033    pub fn into_set_bind_to_interface_index(
76034        self,
76035    ) -> Option<(u64, SynchronousDatagramSocketSetBindToInterfaceIndexResponder)> {
76036        if let SynchronousDatagramSocketRequest::SetBindToInterfaceIndex { value, responder } = self
76037        {
76038            Some((value, responder))
76039        } else {
76040            None
76041        }
76042    }
76043
76044    #[allow(irrefutable_let_patterns)]
76045    pub fn into_get_bind_to_interface_index(
76046        self,
76047    ) -> Option<(SynchronousDatagramSocketGetBindToInterfaceIndexResponder)> {
76048        if let SynchronousDatagramSocketRequest::GetBindToInterfaceIndex { responder } = self {
76049            Some((responder))
76050        } else {
76051            None
76052        }
76053    }
76054
76055    #[allow(irrefutable_let_patterns)]
76056    pub fn into_set_timestamp(
76057        self,
76058    ) -> Option<(TimestampOption, SynchronousDatagramSocketSetTimestampResponder)> {
76059        if let SynchronousDatagramSocketRequest::SetTimestamp { value, responder } = self {
76060            Some((value, responder))
76061        } else {
76062            None
76063        }
76064    }
76065
76066    #[allow(irrefutable_let_patterns)]
76067    pub fn into_get_timestamp(self) -> Option<(SynchronousDatagramSocketGetTimestampResponder)> {
76068        if let SynchronousDatagramSocketRequest::GetTimestamp { responder } = self {
76069            Some((responder))
76070        } else {
76071            None
76072        }
76073    }
76074
76075    #[allow(irrefutable_let_patterns)]
76076    pub fn into_set_mark(
76077        self,
76078    ) -> Option<(
76079        fidl_fuchsia_net::MarkDomain,
76080        OptionalUint32,
76081        SynchronousDatagramSocketSetMarkResponder,
76082    )> {
76083        if let SynchronousDatagramSocketRequest::SetMark { domain, mark, responder } = self {
76084            Some((domain, mark, responder))
76085        } else {
76086            None
76087        }
76088    }
76089
76090    #[allow(irrefutable_let_patterns)]
76091    pub fn into_get_mark(
76092        self,
76093    ) -> Option<(fidl_fuchsia_net::MarkDomain, SynchronousDatagramSocketGetMarkResponder)> {
76094        if let SynchronousDatagramSocketRequest::GetMark { domain, responder } = self {
76095            Some((domain, responder))
76096        } else {
76097            None
76098        }
76099    }
76100
76101    #[allow(irrefutable_let_patterns)]
76102    pub fn into_get_cookie(self) -> Option<(SynchronousDatagramSocketGetCookieResponder)> {
76103        if let SynchronousDatagramSocketRequest::GetCookie { responder } = self {
76104            Some((responder))
76105        } else {
76106            None
76107        }
76108    }
76109
76110    #[allow(irrefutable_let_patterns)]
76111    pub fn into_bind(
76112        self,
76113    ) -> Option<(fidl_fuchsia_net::SocketAddress, SynchronousDatagramSocketBindResponder)> {
76114        if let SynchronousDatagramSocketRequest::Bind { addr, responder } = self {
76115            Some((addr, responder))
76116        } else {
76117            None
76118        }
76119    }
76120
76121    #[allow(irrefutable_let_patterns)]
76122    pub fn into_connect(
76123        self,
76124    ) -> Option<(fidl_fuchsia_net::SocketAddress, SynchronousDatagramSocketConnectResponder)> {
76125        if let SynchronousDatagramSocketRequest::Connect { addr, responder } = self {
76126            Some((addr, responder))
76127        } else {
76128            None
76129        }
76130    }
76131
76132    #[allow(irrefutable_let_patterns)]
76133    pub fn into_disconnect(self) -> Option<(SynchronousDatagramSocketDisconnectResponder)> {
76134        if let SynchronousDatagramSocketRequest::Disconnect { responder } = self {
76135            Some((responder))
76136        } else {
76137            None
76138        }
76139    }
76140
76141    #[allow(irrefutable_let_patterns)]
76142    pub fn into_get_sock_name(self) -> Option<(SynchronousDatagramSocketGetSockNameResponder)> {
76143        if let SynchronousDatagramSocketRequest::GetSockName { responder } = self {
76144            Some((responder))
76145        } else {
76146            None
76147        }
76148    }
76149
76150    #[allow(irrefutable_let_patterns)]
76151    pub fn into_get_peer_name(self) -> Option<(SynchronousDatagramSocketGetPeerNameResponder)> {
76152        if let SynchronousDatagramSocketRequest::GetPeerName { responder } = self {
76153            Some((responder))
76154        } else {
76155            None
76156        }
76157    }
76158
76159    #[allow(irrefutable_let_patterns)]
76160    pub fn into_shutdown(
76161        self,
76162    ) -> Option<(ShutdownMode, SynchronousDatagramSocketShutdownResponder)> {
76163        if let SynchronousDatagramSocketRequest::Shutdown { mode, responder } = self {
76164            Some((mode, responder))
76165        } else {
76166            None
76167        }
76168    }
76169
76170    #[allow(irrefutable_let_patterns)]
76171    pub fn into_set_ip_type_of_service(
76172        self,
76173    ) -> Option<(u8, SynchronousDatagramSocketSetIpTypeOfServiceResponder)> {
76174        if let SynchronousDatagramSocketRequest::SetIpTypeOfService { value, responder } = self {
76175            Some((value, responder))
76176        } else {
76177            None
76178        }
76179    }
76180
76181    #[allow(irrefutable_let_patterns)]
76182    pub fn into_get_ip_type_of_service(
76183        self,
76184    ) -> Option<(SynchronousDatagramSocketGetIpTypeOfServiceResponder)> {
76185        if let SynchronousDatagramSocketRequest::GetIpTypeOfService { responder } = self {
76186            Some((responder))
76187        } else {
76188            None
76189        }
76190    }
76191
76192    #[allow(irrefutable_let_patterns)]
76193    pub fn into_set_ip_ttl(
76194        self,
76195    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpTtlResponder)> {
76196        if let SynchronousDatagramSocketRequest::SetIpTtl { value, responder } = self {
76197            Some((value, responder))
76198        } else {
76199            None
76200        }
76201    }
76202
76203    #[allow(irrefutable_let_patterns)]
76204    pub fn into_get_ip_ttl(self) -> Option<(SynchronousDatagramSocketGetIpTtlResponder)> {
76205        if let SynchronousDatagramSocketRequest::GetIpTtl { responder } = self {
76206            Some((responder))
76207        } else {
76208            None
76209        }
76210    }
76211
76212    #[allow(irrefutable_let_patterns)]
76213    pub fn into_set_ip_packet_info(
76214        self,
76215    ) -> Option<(bool, SynchronousDatagramSocketSetIpPacketInfoResponder)> {
76216        if let SynchronousDatagramSocketRequest::SetIpPacketInfo { value, responder } = self {
76217            Some((value, responder))
76218        } else {
76219            None
76220        }
76221    }
76222
76223    #[allow(irrefutable_let_patterns)]
76224    pub fn into_get_ip_packet_info(
76225        self,
76226    ) -> Option<(SynchronousDatagramSocketGetIpPacketInfoResponder)> {
76227        if let SynchronousDatagramSocketRequest::GetIpPacketInfo { responder } = self {
76228            Some((responder))
76229        } else {
76230            None
76231        }
76232    }
76233
76234    #[allow(irrefutable_let_patterns)]
76235    pub fn into_set_ip_receive_type_of_service(
76236        self,
76237    ) -> Option<(bool, SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder)> {
76238        if let SynchronousDatagramSocketRequest::SetIpReceiveTypeOfService { value, responder } =
76239            self
76240        {
76241            Some((value, responder))
76242        } else {
76243            None
76244        }
76245    }
76246
76247    #[allow(irrefutable_let_patterns)]
76248    pub fn into_get_ip_receive_type_of_service(
76249        self,
76250    ) -> Option<(SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder)> {
76251        if let SynchronousDatagramSocketRequest::GetIpReceiveTypeOfService { responder } = self {
76252            Some((responder))
76253        } else {
76254            None
76255        }
76256    }
76257
76258    #[allow(irrefutable_let_patterns)]
76259    pub fn into_set_ip_receive_ttl(
76260        self,
76261    ) -> Option<(bool, SynchronousDatagramSocketSetIpReceiveTtlResponder)> {
76262        if let SynchronousDatagramSocketRequest::SetIpReceiveTtl { value, responder } = self {
76263            Some((value, responder))
76264        } else {
76265            None
76266        }
76267    }
76268
76269    #[allow(irrefutable_let_patterns)]
76270    pub fn into_get_ip_receive_ttl(
76271        self,
76272    ) -> Option<(SynchronousDatagramSocketGetIpReceiveTtlResponder)> {
76273        if let SynchronousDatagramSocketRequest::GetIpReceiveTtl { responder } = self {
76274            Some((responder))
76275        } else {
76276            None
76277        }
76278    }
76279
76280    #[allow(irrefutable_let_patterns)]
76281    pub fn into_set_ip_multicast_interface(
76282        self,
76283    ) -> Option<(
76284        u64,
76285        fidl_fuchsia_net::Ipv4Address,
76286        SynchronousDatagramSocketSetIpMulticastInterfaceResponder,
76287    )> {
76288        if let SynchronousDatagramSocketRequest::SetIpMulticastInterface {
76289            iface,
76290            address,
76291            responder,
76292        } = self
76293        {
76294            Some((iface, address, responder))
76295        } else {
76296            None
76297        }
76298    }
76299
76300    #[allow(irrefutable_let_patterns)]
76301    pub fn into_get_ip_multicast_interface(
76302        self,
76303    ) -> Option<(SynchronousDatagramSocketGetIpMulticastInterfaceResponder)> {
76304        if let SynchronousDatagramSocketRequest::GetIpMulticastInterface { responder } = self {
76305            Some((responder))
76306        } else {
76307            None
76308        }
76309    }
76310
76311    #[allow(irrefutable_let_patterns)]
76312    pub fn into_set_ip_multicast_ttl(
76313        self,
76314    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpMulticastTtlResponder)> {
76315        if let SynchronousDatagramSocketRequest::SetIpMulticastTtl { value, responder } = self {
76316            Some((value, responder))
76317        } else {
76318            None
76319        }
76320    }
76321
76322    #[allow(irrefutable_let_patterns)]
76323    pub fn into_get_ip_multicast_ttl(
76324        self,
76325    ) -> Option<(SynchronousDatagramSocketGetIpMulticastTtlResponder)> {
76326        if let SynchronousDatagramSocketRequest::GetIpMulticastTtl { responder } = self {
76327            Some((responder))
76328        } else {
76329            None
76330        }
76331    }
76332
76333    #[allow(irrefutable_let_patterns)]
76334    pub fn into_set_ip_multicast_loopback(
76335        self,
76336    ) -> Option<(bool, SynchronousDatagramSocketSetIpMulticastLoopbackResponder)> {
76337        if let SynchronousDatagramSocketRequest::SetIpMulticastLoopback { value, responder } = self
76338        {
76339            Some((value, responder))
76340        } else {
76341            None
76342        }
76343    }
76344
76345    #[allow(irrefutable_let_patterns)]
76346    pub fn into_get_ip_multicast_loopback(
76347        self,
76348    ) -> Option<(SynchronousDatagramSocketGetIpMulticastLoopbackResponder)> {
76349        if let SynchronousDatagramSocketRequest::GetIpMulticastLoopback { responder } = self {
76350            Some((responder))
76351        } else {
76352            None
76353        }
76354    }
76355
76356    #[allow(irrefutable_let_patterns)]
76357    pub fn into_add_ip_membership(
76358        self,
76359    ) -> Option<(IpMulticastMembership, SynchronousDatagramSocketAddIpMembershipResponder)> {
76360        if let SynchronousDatagramSocketRequest::AddIpMembership { membership, responder } = self {
76361            Some((membership, responder))
76362        } else {
76363            None
76364        }
76365    }
76366
76367    #[allow(irrefutable_let_patterns)]
76368    pub fn into_drop_ip_membership(
76369        self,
76370    ) -> Option<(IpMulticastMembership, SynchronousDatagramSocketDropIpMembershipResponder)> {
76371        if let SynchronousDatagramSocketRequest::DropIpMembership { membership, responder } = self {
76372            Some((membership, responder))
76373        } else {
76374            None
76375        }
76376    }
76377
76378    #[allow(irrefutable_let_patterns)]
76379    pub fn into_set_ip_transparent(
76380        self,
76381    ) -> Option<(bool, SynchronousDatagramSocketSetIpTransparentResponder)> {
76382        if let SynchronousDatagramSocketRequest::SetIpTransparent { value, responder } = self {
76383            Some((value, responder))
76384        } else {
76385            None
76386        }
76387    }
76388
76389    #[allow(irrefutable_let_patterns)]
76390    pub fn into_get_ip_transparent(
76391        self,
76392    ) -> Option<(SynchronousDatagramSocketGetIpTransparentResponder)> {
76393        if let SynchronousDatagramSocketRequest::GetIpTransparent { responder } = self {
76394            Some((responder))
76395        } else {
76396            None
76397        }
76398    }
76399
76400    #[allow(irrefutable_let_patterns)]
76401    pub fn into_set_ip_receive_original_destination_address(
76402        self,
76403    ) -> Option<(bool, SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder)>
76404    {
76405        if let SynchronousDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {
76406            value,
76407            responder,
76408        } = self
76409        {
76410            Some((value, responder))
76411        } else {
76412            None
76413        }
76414    }
76415
76416    #[allow(irrefutable_let_patterns)]
76417    pub fn into_get_ip_receive_original_destination_address(
76418        self,
76419    ) -> Option<(SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder)> {
76420        if let SynchronousDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
76421            responder,
76422        } = self
76423        {
76424            Some((responder))
76425        } else {
76426            None
76427        }
76428    }
76429
76430    #[allow(irrefutable_let_patterns)]
76431    pub fn into_add_ipv6_membership(
76432        self,
76433    ) -> Option<(Ipv6MulticastMembership, SynchronousDatagramSocketAddIpv6MembershipResponder)>
76434    {
76435        if let SynchronousDatagramSocketRequest::AddIpv6Membership { membership, responder } = self
76436        {
76437            Some((membership, responder))
76438        } else {
76439            None
76440        }
76441    }
76442
76443    #[allow(irrefutable_let_patterns)]
76444    pub fn into_drop_ipv6_membership(
76445        self,
76446    ) -> Option<(Ipv6MulticastMembership, SynchronousDatagramSocketDropIpv6MembershipResponder)>
76447    {
76448        if let SynchronousDatagramSocketRequest::DropIpv6Membership { membership, responder } = self
76449        {
76450            Some((membership, responder))
76451        } else {
76452            None
76453        }
76454    }
76455
76456    #[allow(irrefutable_let_patterns)]
76457    pub fn into_set_ipv6_multicast_interface(
76458        self,
76459    ) -> Option<(u64, SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder)> {
76460        if let SynchronousDatagramSocketRequest::SetIpv6MulticastInterface { value, responder } =
76461            self
76462        {
76463            Some((value, responder))
76464        } else {
76465            None
76466        }
76467    }
76468
76469    #[allow(irrefutable_let_patterns)]
76470    pub fn into_get_ipv6_multicast_interface(
76471        self,
76472    ) -> Option<(SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder)> {
76473        if let SynchronousDatagramSocketRequest::GetIpv6MulticastInterface { responder } = self {
76474            Some((responder))
76475        } else {
76476            None
76477        }
76478    }
76479
76480    #[allow(irrefutable_let_patterns)]
76481    pub fn into_set_ipv6_unicast_hops(
76482        self,
76483    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpv6UnicastHopsResponder)> {
76484        if let SynchronousDatagramSocketRequest::SetIpv6UnicastHops { value, responder } = self {
76485            Some((value, responder))
76486        } else {
76487            None
76488        }
76489    }
76490
76491    #[allow(irrefutable_let_patterns)]
76492    pub fn into_get_ipv6_unicast_hops(
76493        self,
76494    ) -> Option<(SynchronousDatagramSocketGetIpv6UnicastHopsResponder)> {
76495        if let SynchronousDatagramSocketRequest::GetIpv6UnicastHops { responder } = self {
76496            Some((responder))
76497        } else {
76498            None
76499        }
76500    }
76501
76502    #[allow(irrefutable_let_patterns)]
76503    pub fn into_set_ipv6_receive_hop_limit(
76504        self,
76505    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder)> {
76506        if let SynchronousDatagramSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self
76507        {
76508            Some((value, responder))
76509        } else {
76510            None
76511        }
76512    }
76513
76514    #[allow(irrefutable_let_patterns)]
76515    pub fn into_get_ipv6_receive_hop_limit(
76516        self,
76517    ) -> Option<(SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder)> {
76518        if let SynchronousDatagramSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
76519            Some((responder))
76520        } else {
76521            None
76522        }
76523    }
76524
76525    #[allow(irrefutable_let_patterns)]
76526    pub fn into_set_ipv6_multicast_hops(
76527        self,
76528    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpv6MulticastHopsResponder)> {
76529        if let SynchronousDatagramSocketRequest::SetIpv6MulticastHops { value, responder } = self {
76530            Some((value, responder))
76531        } else {
76532            None
76533        }
76534    }
76535
76536    #[allow(irrefutable_let_patterns)]
76537    pub fn into_get_ipv6_multicast_hops(
76538        self,
76539    ) -> Option<(SynchronousDatagramSocketGetIpv6MulticastHopsResponder)> {
76540        if let SynchronousDatagramSocketRequest::GetIpv6MulticastHops { responder } = self {
76541            Some((responder))
76542        } else {
76543            None
76544        }
76545    }
76546
76547    #[allow(irrefutable_let_patterns)]
76548    pub fn into_set_ipv6_multicast_loopback(
76549        self,
76550    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder)> {
76551        if let SynchronousDatagramSocketRequest::SetIpv6MulticastLoopback { value, responder } =
76552            self
76553        {
76554            Some((value, responder))
76555        } else {
76556            None
76557        }
76558    }
76559
76560    #[allow(irrefutable_let_patterns)]
76561    pub fn into_get_ipv6_multicast_loopback(
76562        self,
76563    ) -> Option<(SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder)> {
76564        if let SynchronousDatagramSocketRequest::GetIpv6MulticastLoopback { responder } = self {
76565            Some((responder))
76566        } else {
76567            None
76568        }
76569    }
76570
76571    #[allow(irrefutable_let_patterns)]
76572    pub fn into_set_ipv6_only(
76573        self,
76574    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6OnlyResponder)> {
76575        if let SynchronousDatagramSocketRequest::SetIpv6Only { value, responder } = self {
76576            Some((value, responder))
76577        } else {
76578            None
76579        }
76580    }
76581
76582    #[allow(irrefutable_let_patterns)]
76583    pub fn into_get_ipv6_only(self) -> Option<(SynchronousDatagramSocketGetIpv6OnlyResponder)> {
76584        if let SynchronousDatagramSocketRequest::GetIpv6Only { responder } = self {
76585            Some((responder))
76586        } else {
76587            None
76588        }
76589    }
76590
76591    #[allow(irrefutable_let_patterns)]
76592    pub fn into_set_ipv6_receive_traffic_class(
76593        self,
76594    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder)> {
76595        if let SynchronousDatagramSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } =
76596            self
76597        {
76598            Some((value, responder))
76599        } else {
76600            None
76601        }
76602    }
76603
76604    #[allow(irrefutable_let_patterns)]
76605    pub fn into_get_ipv6_receive_traffic_class(
76606        self,
76607    ) -> Option<(SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder)> {
76608        if let SynchronousDatagramSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
76609            Some((responder))
76610        } else {
76611            None
76612        }
76613    }
76614
76615    #[allow(irrefutable_let_patterns)]
76616    pub fn into_set_ipv6_traffic_class(
76617        self,
76618    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpv6TrafficClassResponder)> {
76619        if let SynchronousDatagramSocketRequest::SetIpv6TrafficClass { value, responder } = self {
76620            Some((value, responder))
76621        } else {
76622            None
76623        }
76624    }
76625
76626    #[allow(irrefutable_let_patterns)]
76627    pub fn into_get_ipv6_traffic_class(
76628        self,
76629    ) -> Option<(SynchronousDatagramSocketGetIpv6TrafficClassResponder)> {
76630        if let SynchronousDatagramSocketRequest::GetIpv6TrafficClass { responder } = self {
76631            Some((responder))
76632        } else {
76633            None
76634        }
76635    }
76636
76637    #[allow(irrefutable_let_patterns)]
76638    pub fn into_set_ipv6_receive_packet_info(
76639        self,
76640    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder)> {
76641        if let SynchronousDatagramSocketRequest::SetIpv6ReceivePacketInfo { value, responder } =
76642            self
76643        {
76644            Some((value, responder))
76645        } else {
76646            None
76647        }
76648    }
76649
76650    #[allow(irrefutable_let_patterns)]
76651    pub fn into_get_ipv6_receive_packet_info(
76652        self,
76653    ) -> Option<(SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder)> {
76654        if let SynchronousDatagramSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
76655            Some((responder))
76656        } else {
76657            None
76658        }
76659    }
76660
76661    #[allow(irrefutable_let_patterns)]
76662    pub fn into_get_original_destination(
76663        self,
76664    ) -> Option<(SynchronousDatagramSocketGetOriginalDestinationResponder)> {
76665        if let SynchronousDatagramSocketRequest::GetOriginalDestination { responder } = self {
76666            Some((responder))
76667        } else {
76668            None
76669        }
76670    }
76671
76672    #[allow(irrefutable_let_patterns)]
76673    pub fn into_get_info(self) -> Option<(SynchronousDatagramSocketGetInfoResponder)> {
76674        if let SynchronousDatagramSocketRequest::GetInfo { responder } = self {
76675            Some((responder))
76676        } else {
76677            None
76678        }
76679    }
76680
76681    #[allow(irrefutable_let_patterns)]
76682    pub fn into_describe(self) -> Option<(SynchronousDatagramSocketDescribeResponder)> {
76683        if let SynchronousDatagramSocketRequest::Describe { responder } = self {
76684            Some((responder))
76685        } else {
76686            None
76687        }
76688    }
76689
76690    #[allow(irrefutable_let_patterns)]
76691    pub fn into_recv_msg(
76692        self,
76693    ) -> Option<(bool, u32, bool, RecvMsgFlags, SynchronousDatagramSocketRecvMsgResponder)> {
76694        if let SynchronousDatagramSocketRequest::RecvMsg {
76695            want_addr,
76696            data_len,
76697            want_control,
76698            flags,
76699            responder,
76700        } = self
76701        {
76702            Some((want_addr, data_len, want_control, flags, responder))
76703        } else {
76704            None
76705        }
76706    }
76707
76708    #[allow(irrefutable_let_patterns)]
76709    pub fn into_send_msg(
76710        self,
76711    ) -> Option<(
76712        Option<Box<fidl_fuchsia_net::SocketAddress>>,
76713        Vec<u8>,
76714        DatagramSocketSendControlData,
76715        SendMsgFlags,
76716        SynchronousDatagramSocketSendMsgResponder,
76717    )> {
76718        if let SynchronousDatagramSocketRequest::SendMsg { addr, data, control, flags, responder } =
76719            self
76720        {
76721            Some((addr, data, control, flags, responder))
76722        } else {
76723            None
76724        }
76725    }
76726
76727    /// Name of the method defined in FIDL
76728    pub fn method_name(&self) -> &'static str {
76729        match *self {
76730            SynchronousDatagramSocketRequest::Clone { .. } => "clone",
76731            SynchronousDatagramSocketRequest::Close { .. } => "close",
76732            SynchronousDatagramSocketRequest::Query { .. } => "query",
76733            SynchronousDatagramSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
76734            SynchronousDatagramSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
76735            SynchronousDatagramSocketRequest::GetError { .. } => "get_error",
76736            SynchronousDatagramSocketRequest::SetBroadcast { .. } => "set_broadcast",
76737            SynchronousDatagramSocketRequest::GetBroadcast { .. } => "get_broadcast",
76738            SynchronousDatagramSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
76739            SynchronousDatagramSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
76740            SynchronousDatagramSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
76741            SynchronousDatagramSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
76742            SynchronousDatagramSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
76743            SynchronousDatagramSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
76744            SynchronousDatagramSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
76745            SynchronousDatagramSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
76746            SynchronousDatagramSocketRequest::SetNoCheck { .. } => "set_no_check",
76747            SynchronousDatagramSocketRequest::GetNoCheck { .. } => "get_no_check",
76748            SynchronousDatagramSocketRequest::SetLinger { .. } => "set_linger",
76749            SynchronousDatagramSocketRequest::GetLinger { .. } => "get_linger",
76750            SynchronousDatagramSocketRequest::SetReusePort { .. } => "set_reuse_port",
76751            SynchronousDatagramSocketRequest::GetReusePort { .. } => "get_reuse_port",
76752            SynchronousDatagramSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
76753            SynchronousDatagramSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
76754            SynchronousDatagramSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
76755            SynchronousDatagramSocketRequest::SetBindToInterfaceIndex { .. } => {
76756                "set_bind_to_interface_index"
76757            }
76758            SynchronousDatagramSocketRequest::GetBindToInterfaceIndex { .. } => {
76759                "get_bind_to_interface_index"
76760            }
76761            SynchronousDatagramSocketRequest::SetTimestamp { .. } => "set_timestamp",
76762            SynchronousDatagramSocketRequest::GetTimestamp { .. } => "get_timestamp",
76763            SynchronousDatagramSocketRequest::SetMark { .. } => "set_mark",
76764            SynchronousDatagramSocketRequest::GetMark { .. } => "get_mark",
76765            SynchronousDatagramSocketRequest::GetCookie { .. } => "get_cookie",
76766            SynchronousDatagramSocketRequest::Bind { .. } => "bind",
76767            SynchronousDatagramSocketRequest::Connect { .. } => "connect",
76768            SynchronousDatagramSocketRequest::Disconnect { .. } => "disconnect",
76769            SynchronousDatagramSocketRequest::GetSockName { .. } => "get_sock_name",
76770            SynchronousDatagramSocketRequest::GetPeerName { .. } => "get_peer_name",
76771            SynchronousDatagramSocketRequest::Shutdown { .. } => "shutdown",
76772            SynchronousDatagramSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
76773            SynchronousDatagramSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
76774            SynchronousDatagramSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
76775            SynchronousDatagramSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
76776            SynchronousDatagramSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
76777            SynchronousDatagramSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
76778            SynchronousDatagramSocketRequest::SetIpReceiveTypeOfService { .. } => {
76779                "set_ip_receive_type_of_service"
76780            }
76781            SynchronousDatagramSocketRequest::GetIpReceiveTypeOfService { .. } => {
76782                "get_ip_receive_type_of_service"
76783            }
76784            SynchronousDatagramSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
76785            SynchronousDatagramSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
76786            SynchronousDatagramSocketRequest::SetIpMulticastInterface { .. } => {
76787                "set_ip_multicast_interface"
76788            }
76789            SynchronousDatagramSocketRequest::GetIpMulticastInterface { .. } => {
76790                "get_ip_multicast_interface"
76791            }
76792            SynchronousDatagramSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
76793            SynchronousDatagramSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
76794            SynchronousDatagramSocketRequest::SetIpMulticastLoopback { .. } => {
76795                "set_ip_multicast_loopback"
76796            }
76797            SynchronousDatagramSocketRequest::GetIpMulticastLoopback { .. } => {
76798                "get_ip_multicast_loopback"
76799            }
76800            SynchronousDatagramSocketRequest::AddIpMembership { .. } => "add_ip_membership",
76801            SynchronousDatagramSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
76802            SynchronousDatagramSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
76803            SynchronousDatagramSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
76804            SynchronousDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
76805                "set_ip_receive_original_destination_address"
76806            }
76807            SynchronousDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
76808                "get_ip_receive_original_destination_address"
76809            }
76810            SynchronousDatagramSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
76811            SynchronousDatagramSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
76812            SynchronousDatagramSocketRequest::SetIpv6MulticastInterface { .. } => {
76813                "set_ipv6_multicast_interface"
76814            }
76815            SynchronousDatagramSocketRequest::GetIpv6MulticastInterface { .. } => {
76816                "get_ipv6_multicast_interface"
76817            }
76818            SynchronousDatagramSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
76819            SynchronousDatagramSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
76820            SynchronousDatagramSocketRequest::SetIpv6ReceiveHopLimit { .. } => {
76821                "set_ipv6_receive_hop_limit"
76822            }
76823            SynchronousDatagramSocketRequest::GetIpv6ReceiveHopLimit { .. } => {
76824                "get_ipv6_receive_hop_limit"
76825            }
76826            SynchronousDatagramSocketRequest::SetIpv6MulticastHops { .. } => {
76827                "set_ipv6_multicast_hops"
76828            }
76829            SynchronousDatagramSocketRequest::GetIpv6MulticastHops { .. } => {
76830                "get_ipv6_multicast_hops"
76831            }
76832            SynchronousDatagramSocketRequest::SetIpv6MulticastLoopback { .. } => {
76833                "set_ipv6_multicast_loopback"
76834            }
76835            SynchronousDatagramSocketRequest::GetIpv6MulticastLoopback { .. } => {
76836                "get_ipv6_multicast_loopback"
76837            }
76838            SynchronousDatagramSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
76839            SynchronousDatagramSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
76840            SynchronousDatagramSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
76841                "set_ipv6_receive_traffic_class"
76842            }
76843            SynchronousDatagramSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
76844                "get_ipv6_receive_traffic_class"
76845            }
76846            SynchronousDatagramSocketRequest::SetIpv6TrafficClass { .. } => {
76847                "set_ipv6_traffic_class"
76848            }
76849            SynchronousDatagramSocketRequest::GetIpv6TrafficClass { .. } => {
76850                "get_ipv6_traffic_class"
76851            }
76852            SynchronousDatagramSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
76853                "set_ipv6_receive_packet_info"
76854            }
76855            SynchronousDatagramSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
76856                "get_ipv6_receive_packet_info"
76857            }
76858            SynchronousDatagramSocketRequest::GetOriginalDestination { .. } => {
76859                "get_original_destination"
76860            }
76861            SynchronousDatagramSocketRequest::GetInfo { .. } => "get_info",
76862            SynchronousDatagramSocketRequest::Describe { .. } => "describe",
76863            SynchronousDatagramSocketRequest::RecvMsg { .. } => "recv_msg",
76864            SynchronousDatagramSocketRequest::SendMsg { .. } => "send_msg",
76865        }
76866    }
76867}
76868
76869#[derive(Debug, Clone)]
76870pub struct SynchronousDatagramSocketControlHandle {
76871    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
76872}
76873
76874impl fidl::endpoints::ControlHandle for SynchronousDatagramSocketControlHandle {
76875    fn shutdown(&self) {
76876        self.inner.shutdown()
76877    }
76878    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
76879        self.inner.shutdown_with_epitaph(status)
76880    }
76881
76882    fn is_closed(&self) -> bool {
76883        self.inner.channel().is_closed()
76884    }
76885    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
76886        self.inner.channel().on_closed()
76887    }
76888
76889    #[cfg(target_os = "fuchsia")]
76890    fn signal_peer(
76891        &self,
76892        clear_mask: zx::Signals,
76893        set_mask: zx::Signals,
76894    ) -> Result<(), zx_status::Status> {
76895        use fidl::Peered;
76896        self.inner.channel().signal_peer(clear_mask, set_mask)
76897    }
76898}
76899
76900impl SynchronousDatagramSocketControlHandle {}
76901
76902#[must_use = "FIDL methods require a response to be sent"]
76903#[derive(Debug)]
76904pub struct SynchronousDatagramSocketCloseResponder {
76905    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
76906    tx_id: u32,
76907}
76908
76909/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
76910/// if the responder is dropped without sending a response, so that the client
76911/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
76912impl std::ops::Drop for SynchronousDatagramSocketCloseResponder {
76913    fn drop(&mut self) {
76914        self.control_handle.shutdown();
76915        // Safety: drops once, never accessed again
76916        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
76917    }
76918}
76919
76920impl fidl::endpoints::Responder for SynchronousDatagramSocketCloseResponder {
76921    type ControlHandle = SynchronousDatagramSocketControlHandle;
76922
76923    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
76924        &self.control_handle
76925    }
76926
76927    fn drop_without_shutdown(mut self) {
76928        // Safety: drops once, never accessed again due to mem::forget
76929        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
76930        // Prevent Drop from running (which would shut down the channel)
76931        std::mem::forget(self);
76932    }
76933}
76934
76935impl SynchronousDatagramSocketCloseResponder {
76936    /// Sends a response to the FIDL transaction.
76937    ///
76938    /// Sets the channel to shutdown if an error occurs.
76939    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
76940        let _result = self.send_raw(result);
76941        if _result.is_err() {
76942            self.control_handle.shutdown();
76943        }
76944        self.drop_without_shutdown();
76945        _result
76946    }
76947
76948    /// Similar to "send" but does not shutdown the channel if an error occurs.
76949    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
76950        let _result = self.send_raw(result);
76951        self.drop_without_shutdown();
76952        _result
76953    }
76954
76955    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
76956        self.control_handle
76957            .inner
76958            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
76959                result,
76960                self.tx_id,
76961                0x5ac5d459ad7f657e,
76962                fidl::encoding::DynamicFlags::empty(),
76963            )
76964    }
76965}
76966
76967#[must_use = "FIDL methods require a response to be sent"]
76968#[derive(Debug)]
76969pub struct SynchronousDatagramSocketQueryResponder {
76970    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
76971    tx_id: u32,
76972}
76973
76974/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
76975/// if the responder is dropped without sending a response, so that the client
76976/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
76977impl std::ops::Drop for SynchronousDatagramSocketQueryResponder {
76978    fn drop(&mut self) {
76979        self.control_handle.shutdown();
76980        // Safety: drops once, never accessed again
76981        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
76982    }
76983}
76984
76985impl fidl::endpoints::Responder for SynchronousDatagramSocketQueryResponder {
76986    type ControlHandle = SynchronousDatagramSocketControlHandle;
76987
76988    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
76989        &self.control_handle
76990    }
76991
76992    fn drop_without_shutdown(mut self) {
76993        // Safety: drops once, never accessed again due to mem::forget
76994        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
76995        // Prevent Drop from running (which would shut down the channel)
76996        std::mem::forget(self);
76997    }
76998}
76999
77000impl SynchronousDatagramSocketQueryResponder {
77001    /// Sends a response to the FIDL transaction.
77002    ///
77003    /// Sets the channel to shutdown if an error occurs.
77004    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
77005        let _result = self.send_raw(protocol);
77006        if _result.is_err() {
77007            self.control_handle.shutdown();
77008        }
77009        self.drop_without_shutdown();
77010        _result
77011    }
77012
77013    /// Similar to "send" but does not shutdown the channel if an error occurs.
77014    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
77015        let _result = self.send_raw(protocol);
77016        self.drop_without_shutdown();
77017        _result
77018    }
77019
77020    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
77021        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
77022            (protocol,),
77023            self.tx_id,
77024            0x2658edee9decfc06,
77025            fidl::encoding::DynamicFlags::empty(),
77026        )
77027    }
77028}
77029
77030#[must_use = "FIDL methods require a response to be sent"]
77031#[derive(Debug)]
77032pub struct SynchronousDatagramSocketSetReuseAddressResponder {
77033    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77034    tx_id: u32,
77035}
77036
77037/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77038/// if the responder is dropped without sending a response, so that the client
77039/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77040impl std::ops::Drop for SynchronousDatagramSocketSetReuseAddressResponder {
77041    fn drop(&mut self) {
77042        self.control_handle.shutdown();
77043        // Safety: drops once, never accessed again
77044        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77045    }
77046}
77047
77048impl fidl::endpoints::Responder for SynchronousDatagramSocketSetReuseAddressResponder {
77049    type ControlHandle = SynchronousDatagramSocketControlHandle;
77050
77051    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77052        &self.control_handle
77053    }
77054
77055    fn drop_without_shutdown(mut self) {
77056        // Safety: drops once, never accessed again due to mem::forget
77057        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77058        // Prevent Drop from running (which would shut down the channel)
77059        std::mem::forget(self);
77060    }
77061}
77062
77063impl SynchronousDatagramSocketSetReuseAddressResponder {
77064    /// Sends a response to the FIDL transaction.
77065    ///
77066    /// Sets the channel to shutdown if an error occurs.
77067    pub fn send(
77068        self,
77069        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77070    ) -> Result<(), fidl::Error> {
77071        let _result = self.send_raw(result);
77072        if _result.is_err() {
77073            self.control_handle.shutdown();
77074        }
77075        self.drop_without_shutdown();
77076        _result
77077    }
77078
77079    /// Similar to "send" but does not shutdown the channel if an error occurs.
77080    pub fn send_no_shutdown_on_err(
77081        self,
77082        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77083    ) -> Result<(), fidl::Error> {
77084        let _result = self.send_raw(result);
77085        self.drop_without_shutdown();
77086        _result
77087    }
77088
77089    fn send_raw(
77090        &self,
77091        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77092    ) -> Result<(), fidl::Error> {
77093        self.control_handle.inner.send::<fidl::encoding::ResultType<
77094            fidl::encoding::EmptyStruct,
77095            fidl_fuchsia_posix::Errno,
77096        >>(
77097            result,
77098            self.tx_id,
77099            0x1fd74ee8b9a4a876,
77100            fidl::encoding::DynamicFlags::empty(),
77101        )
77102    }
77103}
77104
77105#[must_use = "FIDL methods require a response to be sent"]
77106#[derive(Debug)]
77107pub struct SynchronousDatagramSocketGetReuseAddressResponder {
77108    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77109    tx_id: u32,
77110}
77111
77112/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77113/// if the responder is dropped without sending a response, so that the client
77114/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77115impl std::ops::Drop for SynchronousDatagramSocketGetReuseAddressResponder {
77116    fn drop(&mut self) {
77117        self.control_handle.shutdown();
77118        // Safety: drops once, never accessed again
77119        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77120    }
77121}
77122
77123impl fidl::endpoints::Responder for SynchronousDatagramSocketGetReuseAddressResponder {
77124    type ControlHandle = SynchronousDatagramSocketControlHandle;
77125
77126    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77127        &self.control_handle
77128    }
77129
77130    fn drop_without_shutdown(mut self) {
77131        // Safety: drops once, never accessed again due to mem::forget
77132        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77133        // Prevent Drop from running (which would shut down the channel)
77134        std::mem::forget(self);
77135    }
77136}
77137
77138impl SynchronousDatagramSocketGetReuseAddressResponder {
77139    /// Sends a response to the FIDL transaction.
77140    ///
77141    /// Sets the channel to shutdown if an error occurs.
77142    pub fn send(
77143        self,
77144        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77145    ) -> Result<(), fidl::Error> {
77146        let _result = self.send_raw(result);
77147        if _result.is_err() {
77148            self.control_handle.shutdown();
77149        }
77150        self.drop_without_shutdown();
77151        _result
77152    }
77153
77154    /// Similar to "send" but does not shutdown the channel if an error occurs.
77155    pub fn send_no_shutdown_on_err(
77156        self,
77157        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77158    ) -> Result<(), fidl::Error> {
77159        let _result = self.send_raw(result);
77160        self.drop_without_shutdown();
77161        _result
77162    }
77163
77164    fn send_raw(
77165        &self,
77166        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77167    ) -> Result<(), fidl::Error> {
77168        self.control_handle.inner.send::<fidl::encoding::ResultType<
77169            BaseSocketGetReuseAddressResponse,
77170            fidl_fuchsia_posix::Errno,
77171        >>(
77172            result.map(|value| (value,)),
77173            self.tx_id,
77174            0x67b7206b8d1bc0a5,
77175            fidl::encoding::DynamicFlags::empty(),
77176        )
77177    }
77178}
77179
77180#[must_use = "FIDL methods require a response to be sent"]
77181#[derive(Debug)]
77182pub struct SynchronousDatagramSocketGetErrorResponder {
77183    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77184    tx_id: u32,
77185}
77186
77187/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77188/// if the responder is dropped without sending a response, so that the client
77189/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77190impl std::ops::Drop for SynchronousDatagramSocketGetErrorResponder {
77191    fn drop(&mut self) {
77192        self.control_handle.shutdown();
77193        // Safety: drops once, never accessed again
77194        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77195    }
77196}
77197
77198impl fidl::endpoints::Responder for SynchronousDatagramSocketGetErrorResponder {
77199    type ControlHandle = SynchronousDatagramSocketControlHandle;
77200
77201    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77202        &self.control_handle
77203    }
77204
77205    fn drop_without_shutdown(mut self) {
77206        // Safety: drops once, never accessed again due to mem::forget
77207        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77208        // Prevent Drop from running (which would shut down the channel)
77209        std::mem::forget(self);
77210    }
77211}
77212
77213impl SynchronousDatagramSocketGetErrorResponder {
77214    /// Sends a response to the FIDL transaction.
77215    ///
77216    /// Sets the channel to shutdown if an error occurs.
77217    pub fn send(
77218        self,
77219        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77220    ) -> Result<(), fidl::Error> {
77221        let _result = self.send_raw(result);
77222        if _result.is_err() {
77223            self.control_handle.shutdown();
77224        }
77225        self.drop_without_shutdown();
77226        _result
77227    }
77228
77229    /// Similar to "send" but does not shutdown the channel if an error occurs.
77230    pub fn send_no_shutdown_on_err(
77231        self,
77232        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77233    ) -> Result<(), fidl::Error> {
77234        let _result = self.send_raw(result);
77235        self.drop_without_shutdown();
77236        _result
77237    }
77238
77239    fn send_raw(
77240        &self,
77241        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77242    ) -> Result<(), fidl::Error> {
77243        self.control_handle.inner.send::<fidl::encoding::ResultType<
77244            fidl::encoding::EmptyStruct,
77245            fidl_fuchsia_posix::Errno,
77246        >>(
77247            result,
77248            self.tx_id,
77249            0x5aad39b33e5f6ebb,
77250            fidl::encoding::DynamicFlags::empty(),
77251        )
77252    }
77253}
77254
77255#[must_use = "FIDL methods require a response to be sent"]
77256#[derive(Debug)]
77257pub struct SynchronousDatagramSocketSetBroadcastResponder {
77258    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77259    tx_id: u32,
77260}
77261
77262/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77263/// if the responder is dropped without sending a response, so that the client
77264/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77265impl std::ops::Drop for SynchronousDatagramSocketSetBroadcastResponder {
77266    fn drop(&mut self) {
77267        self.control_handle.shutdown();
77268        // Safety: drops once, never accessed again
77269        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77270    }
77271}
77272
77273impl fidl::endpoints::Responder for SynchronousDatagramSocketSetBroadcastResponder {
77274    type ControlHandle = SynchronousDatagramSocketControlHandle;
77275
77276    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77277        &self.control_handle
77278    }
77279
77280    fn drop_without_shutdown(mut self) {
77281        // Safety: drops once, never accessed again due to mem::forget
77282        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77283        // Prevent Drop from running (which would shut down the channel)
77284        std::mem::forget(self);
77285    }
77286}
77287
77288impl SynchronousDatagramSocketSetBroadcastResponder {
77289    /// Sends a response to the FIDL transaction.
77290    ///
77291    /// Sets the channel to shutdown if an error occurs.
77292    pub fn send(
77293        self,
77294        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77295    ) -> Result<(), fidl::Error> {
77296        let _result = self.send_raw(result);
77297        if _result.is_err() {
77298            self.control_handle.shutdown();
77299        }
77300        self.drop_without_shutdown();
77301        _result
77302    }
77303
77304    /// Similar to "send" but does not shutdown the channel if an error occurs.
77305    pub fn send_no_shutdown_on_err(
77306        self,
77307        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77308    ) -> Result<(), fidl::Error> {
77309        let _result = self.send_raw(result);
77310        self.drop_without_shutdown();
77311        _result
77312    }
77313
77314    fn send_raw(
77315        &self,
77316        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77317    ) -> Result<(), fidl::Error> {
77318        self.control_handle.inner.send::<fidl::encoding::ResultType<
77319            fidl::encoding::EmptyStruct,
77320            fidl_fuchsia_posix::Errno,
77321        >>(
77322            result,
77323            self.tx_id,
77324            0x6023e081ce3cd947,
77325            fidl::encoding::DynamicFlags::empty(),
77326        )
77327    }
77328}
77329
77330#[must_use = "FIDL methods require a response to be sent"]
77331#[derive(Debug)]
77332pub struct SynchronousDatagramSocketGetBroadcastResponder {
77333    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77334    tx_id: u32,
77335}
77336
77337/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77338/// if the responder is dropped without sending a response, so that the client
77339/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77340impl std::ops::Drop for SynchronousDatagramSocketGetBroadcastResponder {
77341    fn drop(&mut self) {
77342        self.control_handle.shutdown();
77343        // Safety: drops once, never accessed again
77344        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77345    }
77346}
77347
77348impl fidl::endpoints::Responder for SynchronousDatagramSocketGetBroadcastResponder {
77349    type ControlHandle = SynchronousDatagramSocketControlHandle;
77350
77351    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77352        &self.control_handle
77353    }
77354
77355    fn drop_without_shutdown(mut self) {
77356        // Safety: drops once, never accessed again due to mem::forget
77357        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77358        // Prevent Drop from running (which would shut down the channel)
77359        std::mem::forget(self);
77360    }
77361}
77362
77363impl SynchronousDatagramSocketGetBroadcastResponder {
77364    /// Sends a response to the FIDL transaction.
77365    ///
77366    /// Sets the channel to shutdown if an error occurs.
77367    pub fn send(
77368        self,
77369        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77370    ) -> Result<(), fidl::Error> {
77371        let _result = self.send_raw(result);
77372        if _result.is_err() {
77373            self.control_handle.shutdown();
77374        }
77375        self.drop_without_shutdown();
77376        _result
77377    }
77378
77379    /// Similar to "send" but does not shutdown the channel if an error occurs.
77380    pub fn send_no_shutdown_on_err(
77381        self,
77382        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77383    ) -> Result<(), fidl::Error> {
77384        let _result = self.send_raw(result);
77385        self.drop_without_shutdown();
77386        _result
77387    }
77388
77389    fn send_raw(
77390        &self,
77391        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77392    ) -> Result<(), fidl::Error> {
77393        self.control_handle.inner.send::<fidl::encoding::ResultType<
77394            BaseSocketGetBroadcastResponse,
77395            fidl_fuchsia_posix::Errno,
77396        >>(
77397            result.map(|value| (value,)),
77398            self.tx_id,
77399            0x68796fc556f9780d,
77400            fidl::encoding::DynamicFlags::empty(),
77401        )
77402    }
77403}
77404
77405#[must_use = "FIDL methods require a response to be sent"]
77406#[derive(Debug)]
77407pub struct SynchronousDatagramSocketSetSendBufferResponder {
77408    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77409    tx_id: u32,
77410}
77411
77412/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77413/// if the responder is dropped without sending a response, so that the client
77414/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77415impl std::ops::Drop for SynchronousDatagramSocketSetSendBufferResponder {
77416    fn drop(&mut self) {
77417        self.control_handle.shutdown();
77418        // Safety: drops once, never accessed again
77419        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77420    }
77421}
77422
77423impl fidl::endpoints::Responder for SynchronousDatagramSocketSetSendBufferResponder {
77424    type ControlHandle = SynchronousDatagramSocketControlHandle;
77425
77426    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77427        &self.control_handle
77428    }
77429
77430    fn drop_without_shutdown(mut self) {
77431        // Safety: drops once, never accessed again due to mem::forget
77432        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77433        // Prevent Drop from running (which would shut down the channel)
77434        std::mem::forget(self);
77435    }
77436}
77437
77438impl SynchronousDatagramSocketSetSendBufferResponder {
77439    /// Sends a response to the FIDL transaction.
77440    ///
77441    /// Sets the channel to shutdown if an error occurs.
77442    pub fn send(
77443        self,
77444        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77445    ) -> Result<(), fidl::Error> {
77446        let _result = self.send_raw(result);
77447        if _result.is_err() {
77448            self.control_handle.shutdown();
77449        }
77450        self.drop_without_shutdown();
77451        _result
77452    }
77453
77454    /// Similar to "send" but does not shutdown the channel if an error occurs.
77455    pub fn send_no_shutdown_on_err(
77456        self,
77457        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77458    ) -> Result<(), fidl::Error> {
77459        let _result = self.send_raw(result);
77460        self.drop_without_shutdown();
77461        _result
77462    }
77463
77464    fn send_raw(
77465        &self,
77466        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77467    ) -> Result<(), fidl::Error> {
77468        self.control_handle.inner.send::<fidl::encoding::ResultType<
77469            fidl::encoding::EmptyStruct,
77470            fidl_fuchsia_posix::Errno,
77471        >>(
77472            result,
77473            self.tx_id,
77474            0x756eac32d73a7a70,
77475            fidl::encoding::DynamicFlags::empty(),
77476        )
77477    }
77478}
77479
77480#[must_use = "FIDL methods require a response to be sent"]
77481#[derive(Debug)]
77482pub struct SynchronousDatagramSocketGetSendBufferResponder {
77483    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77484    tx_id: u32,
77485}
77486
77487/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77488/// if the responder is dropped without sending a response, so that the client
77489/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77490impl std::ops::Drop for SynchronousDatagramSocketGetSendBufferResponder {
77491    fn drop(&mut self) {
77492        self.control_handle.shutdown();
77493        // Safety: drops once, never accessed again
77494        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77495    }
77496}
77497
77498impl fidl::endpoints::Responder for SynchronousDatagramSocketGetSendBufferResponder {
77499    type ControlHandle = SynchronousDatagramSocketControlHandle;
77500
77501    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77502        &self.control_handle
77503    }
77504
77505    fn drop_without_shutdown(mut self) {
77506        // Safety: drops once, never accessed again due to mem::forget
77507        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77508        // Prevent Drop from running (which would shut down the channel)
77509        std::mem::forget(self);
77510    }
77511}
77512
77513impl SynchronousDatagramSocketGetSendBufferResponder {
77514    /// Sends a response to the FIDL transaction.
77515    ///
77516    /// Sets the channel to shutdown if an error occurs.
77517    pub fn send(
77518        self,
77519        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77520    ) -> Result<(), fidl::Error> {
77521        let _result = self.send_raw(result);
77522        if _result.is_err() {
77523            self.control_handle.shutdown();
77524        }
77525        self.drop_without_shutdown();
77526        _result
77527    }
77528
77529    /// Similar to "send" but does not shutdown the channel if an error occurs.
77530    pub fn send_no_shutdown_on_err(
77531        self,
77532        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77533    ) -> Result<(), fidl::Error> {
77534        let _result = self.send_raw(result);
77535        self.drop_without_shutdown();
77536        _result
77537    }
77538
77539    fn send_raw(
77540        &self,
77541        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77542    ) -> Result<(), fidl::Error> {
77543        self.control_handle.inner.send::<fidl::encoding::ResultType<
77544            BaseSocketGetSendBufferResponse,
77545            fidl_fuchsia_posix::Errno,
77546        >>(
77547            result.map(|value_bytes| (value_bytes,)),
77548            self.tx_id,
77549            0x78a52fd9c7b2410b,
77550            fidl::encoding::DynamicFlags::empty(),
77551        )
77552    }
77553}
77554
77555#[must_use = "FIDL methods require a response to be sent"]
77556#[derive(Debug)]
77557pub struct SynchronousDatagramSocketSetReceiveBufferResponder {
77558    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77559    tx_id: u32,
77560}
77561
77562/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77563/// if the responder is dropped without sending a response, so that the client
77564/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77565impl std::ops::Drop for SynchronousDatagramSocketSetReceiveBufferResponder {
77566    fn drop(&mut self) {
77567        self.control_handle.shutdown();
77568        // Safety: drops once, never accessed again
77569        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77570    }
77571}
77572
77573impl fidl::endpoints::Responder for SynchronousDatagramSocketSetReceiveBufferResponder {
77574    type ControlHandle = SynchronousDatagramSocketControlHandle;
77575
77576    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77577        &self.control_handle
77578    }
77579
77580    fn drop_without_shutdown(mut self) {
77581        // Safety: drops once, never accessed again due to mem::forget
77582        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77583        // Prevent Drop from running (which would shut down the channel)
77584        std::mem::forget(self);
77585    }
77586}
77587
77588impl SynchronousDatagramSocketSetReceiveBufferResponder {
77589    /// Sends a response to the FIDL transaction.
77590    ///
77591    /// Sets the channel to shutdown if an error occurs.
77592    pub fn send(
77593        self,
77594        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77595    ) -> Result<(), fidl::Error> {
77596        let _result = self.send_raw(result);
77597        if _result.is_err() {
77598            self.control_handle.shutdown();
77599        }
77600        self.drop_without_shutdown();
77601        _result
77602    }
77603
77604    /// Similar to "send" but does not shutdown the channel if an error occurs.
77605    pub fn send_no_shutdown_on_err(
77606        self,
77607        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77608    ) -> Result<(), fidl::Error> {
77609        let _result = self.send_raw(result);
77610        self.drop_without_shutdown();
77611        _result
77612    }
77613
77614    fn send_raw(
77615        &self,
77616        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77617    ) -> Result<(), fidl::Error> {
77618        self.control_handle.inner.send::<fidl::encoding::ResultType<
77619            fidl::encoding::EmptyStruct,
77620            fidl_fuchsia_posix::Errno,
77621        >>(
77622            result,
77623            self.tx_id,
77624            0x6b0cf2f1919c7001,
77625            fidl::encoding::DynamicFlags::empty(),
77626        )
77627    }
77628}
77629
77630#[must_use = "FIDL methods require a response to be sent"]
77631#[derive(Debug)]
77632pub struct SynchronousDatagramSocketGetReceiveBufferResponder {
77633    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77634    tx_id: u32,
77635}
77636
77637/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77638/// if the responder is dropped without sending a response, so that the client
77639/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77640impl std::ops::Drop for SynchronousDatagramSocketGetReceiveBufferResponder {
77641    fn drop(&mut self) {
77642        self.control_handle.shutdown();
77643        // Safety: drops once, never accessed again
77644        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77645    }
77646}
77647
77648impl fidl::endpoints::Responder for SynchronousDatagramSocketGetReceiveBufferResponder {
77649    type ControlHandle = SynchronousDatagramSocketControlHandle;
77650
77651    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77652        &self.control_handle
77653    }
77654
77655    fn drop_without_shutdown(mut self) {
77656        // Safety: drops once, never accessed again due to mem::forget
77657        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77658        // Prevent Drop from running (which would shut down the channel)
77659        std::mem::forget(self);
77660    }
77661}
77662
77663impl SynchronousDatagramSocketGetReceiveBufferResponder {
77664    /// Sends a response to the FIDL transaction.
77665    ///
77666    /// Sets the channel to shutdown if an error occurs.
77667    pub fn send(
77668        self,
77669        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77670    ) -> Result<(), fidl::Error> {
77671        let _result = self.send_raw(result);
77672        if _result.is_err() {
77673            self.control_handle.shutdown();
77674        }
77675        self.drop_without_shutdown();
77676        _result
77677    }
77678
77679    /// Similar to "send" but does not shutdown the channel if an error occurs.
77680    pub fn send_no_shutdown_on_err(
77681        self,
77682        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77683    ) -> Result<(), fidl::Error> {
77684        let _result = self.send_raw(result);
77685        self.drop_without_shutdown();
77686        _result
77687    }
77688
77689    fn send_raw(
77690        &self,
77691        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77692    ) -> Result<(), fidl::Error> {
77693        self.control_handle.inner.send::<fidl::encoding::ResultType<
77694            BaseSocketGetReceiveBufferResponse,
77695            fidl_fuchsia_posix::Errno,
77696        >>(
77697            result.map(|value_bytes| (value_bytes,)),
77698            self.tx_id,
77699            0x14c1a4b64f709e5c,
77700            fidl::encoding::DynamicFlags::empty(),
77701        )
77702    }
77703}
77704
77705#[must_use = "FIDL methods require a response to be sent"]
77706#[derive(Debug)]
77707pub struct SynchronousDatagramSocketSetKeepAliveResponder {
77708    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77709    tx_id: u32,
77710}
77711
77712/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77713/// if the responder is dropped without sending a response, so that the client
77714/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77715impl std::ops::Drop for SynchronousDatagramSocketSetKeepAliveResponder {
77716    fn drop(&mut self) {
77717        self.control_handle.shutdown();
77718        // Safety: drops once, never accessed again
77719        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77720    }
77721}
77722
77723impl fidl::endpoints::Responder for SynchronousDatagramSocketSetKeepAliveResponder {
77724    type ControlHandle = SynchronousDatagramSocketControlHandle;
77725
77726    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77727        &self.control_handle
77728    }
77729
77730    fn drop_without_shutdown(mut self) {
77731        // Safety: drops once, never accessed again due to mem::forget
77732        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77733        // Prevent Drop from running (which would shut down the channel)
77734        std::mem::forget(self);
77735    }
77736}
77737
77738impl SynchronousDatagramSocketSetKeepAliveResponder {
77739    /// Sends a response to the FIDL transaction.
77740    ///
77741    /// Sets the channel to shutdown if an error occurs.
77742    pub fn send(
77743        self,
77744        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77745    ) -> Result<(), fidl::Error> {
77746        let _result = self.send_raw(result);
77747        if _result.is_err() {
77748            self.control_handle.shutdown();
77749        }
77750        self.drop_without_shutdown();
77751        _result
77752    }
77753
77754    /// Similar to "send" but does not shutdown the channel if an error occurs.
77755    pub fn send_no_shutdown_on_err(
77756        self,
77757        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77758    ) -> Result<(), fidl::Error> {
77759        let _result = self.send_raw(result);
77760        self.drop_without_shutdown();
77761        _result
77762    }
77763
77764    fn send_raw(
77765        &self,
77766        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77767    ) -> Result<(), fidl::Error> {
77768        self.control_handle.inner.send::<fidl::encoding::ResultType<
77769            fidl::encoding::EmptyStruct,
77770            fidl_fuchsia_posix::Errno,
77771        >>(
77772            result,
77773            self.tx_id,
77774            0x572df8f0b920d2c7,
77775            fidl::encoding::DynamicFlags::empty(),
77776        )
77777    }
77778}
77779
77780#[must_use = "FIDL methods require a response to be sent"]
77781#[derive(Debug)]
77782pub struct SynchronousDatagramSocketGetKeepAliveResponder {
77783    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77784    tx_id: u32,
77785}
77786
77787/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77788/// if the responder is dropped without sending a response, so that the client
77789/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77790impl std::ops::Drop for SynchronousDatagramSocketGetKeepAliveResponder {
77791    fn drop(&mut self) {
77792        self.control_handle.shutdown();
77793        // Safety: drops once, never accessed again
77794        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77795    }
77796}
77797
77798impl fidl::endpoints::Responder for SynchronousDatagramSocketGetKeepAliveResponder {
77799    type ControlHandle = SynchronousDatagramSocketControlHandle;
77800
77801    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77802        &self.control_handle
77803    }
77804
77805    fn drop_without_shutdown(mut self) {
77806        // Safety: drops once, never accessed again due to mem::forget
77807        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77808        // Prevent Drop from running (which would shut down the channel)
77809        std::mem::forget(self);
77810    }
77811}
77812
77813impl SynchronousDatagramSocketGetKeepAliveResponder {
77814    /// Sends a response to the FIDL transaction.
77815    ///
77816    /// Sets the channel to shutdown if an error occurs.
77817    pub fn send(
77818        self,
77819        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77820    ) -> Result<(), fidl::Error> {
77821        let _result = self.send_raw(result);
77822        if _result.is_err() {
77823            self.control_handle.shutdown();
77824        }
77825        self.drop_without_shutdown();
77826        _result
77827    }
77828
77829    /// Similar to "send" but does not shutdown the channel if an error occurs.
77830    pub fn send_no_shutdown_on_err(
77831        self,
77832        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77833    ) -> Result<(), fidl::Error> {
77834        let _result = self.send_raw(result);
77835        self.drop_without_shutdown();
77836        _result
77837    }
77838
77839    fn send_raw(
77840        &self,
77841        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77842    ) -> Result<(), fidl::Error> {
77843        self.control_handle.inner.send::<fidl::encoding::ResultType<
77844            BaseSocketGetKeepAliveResponse,
77845            fidl_fuchsia_posix::Errno,
77846        >>(
77847            result.map(|value| (value,)),
77848            self.tx_id,
77849            0x2dd29d3215f2c9d2,
77850            fidl::encoding::DynamicFlags::empty(),
77851        )
77852    }
77853}
77854
77855#[must_use = "FIDL methods require a response to be sent"]
77856#[derive(Debug)]
77857pub struct SynchronousDatagramSocketSetOutOfBandInlineResponder {
77858    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77859    tx_id: u32,
77860}
77861
77862/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77863/// if the responder is dropped without sending a response, so that the client
77864/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77865impl std::ops::Drop for SynchronousDatagramSocketSetOutOfBandInlineResponder {
77866    fn drop(&mut self) {
77867        self.control_handle.shutdown();
77868        // Safety: drops once, never accessed again
77869        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77870    }
77871}
77872
77873impl fidl::endpoints::Responder for SynchronousDatagramSocketSetOutOfBandInlineResponder {
77874    type ControlHandle = SynchronousDatagramSocketControlHandle;
77875
77876    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77877        &self.control_handle
77878    }
77879
77880    fn drop_without_shutdown(mut self) {
77881        // Safety: drops once, never accessed again due to mem::forget
77882        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77883        // Prevent Drop from running (which would shut down the channel)
77884        std::mem::forget(self);
77885    }
77886}
77887
77888impl SynchronousDatagramSocketSetOutOfBandInlineResponder {
77889    /// Sends a response to the FIDL transaction.
77890    ///
77891    /// Sets the channel to shutdown if an error occurs.
77892    pub fn send(
77893        self,
77894        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77895    ) -> Result<(), fidl::Error> {
77896        let _result = self.send_raw(result);
77897        if _result.is_err() {
77898            self.control_handle.shutdown();
77899        }
77900        self.drop_without_shutdown();
77901        _result
77902    }
77903
77904    /// Similar to "send" but does not shutdown the channel if an error occurs.
77905    pub fn send_no_shutdown_on_err(
77906        self,
77907        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77908    ) -> Result<(), fidl::Error> {
77909        let _result = self.send_raw(result);
77910        self.drop_without_shutdown();
77911        _result
77912    }
77913
77914    fn send_raw(
77915        &self,
77916        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77917    ) -> Result<(), fidl::Error> {
77918        self.control_handle.inner.send::<fidl::encoding::ResultType<
77919            fidl::encoding::EmptyStruct,
77920            fidl_fuchsia_posix::Errno,
77921        >>(
77922            result,
77923            self.tx_id,
77924            0x3ecb49968bee439,
77925            fidl::encoding::DynamicFlags::empty(),
77926        )
77927    }
77928}
77929
77930#[must_use = "FIDL methods require a response to be sent"]
77931#[derive(Debug)]
77932pub struct SynchronousDatagramSocketGetOutOfBandInlineResponder {
77933    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77934    tx_id: u32,
77935}
77936
77937/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77938/// if the responder is dropped without sending a response, so that the client
77939/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77940impl std::ops::Drop for SynchronousDatagramSocketGetOutOfBandInlineResponder {
77941    fn drop(&mut self) {
77942        self.control_handle.shutdown();
77943        // Safety: drops once, never accessed again
77944        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77945    }
77946}
77947
77948impl fidl::endpoints::Responder for SynchronousDatagramSocketGetOutOfBandInlineResponder {
77949    type ControlHandle = SynchronousDatagramSocketControlHandle;
77950
77951    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77952        &self.control_handle
77953    }
77954
77955    fn drop_without_shutdown(mut self) {
77956        // Safety: drops once, never accessed again due to mem::forget
77957        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77958        // Prevent Drop from running (which would shut down the channel)
77959        std::mem::forget(self);
77960    }
77961}
77962
77963impl SynchronousDatagramSocketGetOutOfBandInlineResponder {
77964    /// Sends a response to the FIDL transaction.
77965    ///
77966    /// Sets the channel to shutdown if an error occurs.
77967    pub fn send(
77968        self,
77969        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77970    ) -> Result<(), fidl::Error> {
77971        let _result = self.send_raw(result);
77972        if _result.is_err() {
77973            self.control_handle.shutdown();
77974        }
77975        self.drop_without_shutdown();
77976        _result
77977    }
77978
77979    /// Similar to "send" but does not shutdown the channel if an error occurs.
77980    pub fn send_no_shutdown_on_err(
77981        self,
77982        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77983    ) -> Result<(), fidl::Error> {
77984        let _result = self.send_raw(result);
77985        self.drop_without_shutdown();
77986        _result
77987    }
77988
77989    fn send_raw(
77990        &self,
77991        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77992    ) -> Result<(), fidl::Error> {
77993        self.control_handle.inner.send::<fidl::encoding::ResultType<
77994            BaseSocketGetOutOfBandInlineResponse,
77995            fidl_fuchsia_posix::Errno,
77996        >>(
77997            result.map(|value| (value,)),
77998            self.tx_id,
77999            0x348c1ab3aeca1745,
78000            fidl::encoding::DynamicFlags::empty(),
78001        )
78002    }
78003}
78004
78005#[must_use = "FIDL methods require a response to be sent"]
78006#[derive(Debug)]
78007pub struct SynchronousDatagramSocketSetNoCheckResponder {
78008    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78009    tx_id: u32,
78010}
78011
78012/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78013/// if the responder is dropped without sending a response, so that the client
78014/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78015impl std::ops::Drop for SynchronousDatagramSocketSetNoCheckResponder {
78016    fn drop(&mut self) {
78017        self.control_handle.shutdown();
78018        // Safety: drops once, never accessed again
78019        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78020    }
78021}
78022
78023impl fidl::endpoints::Responder for SynchronousDatagramSocketSetNoCheckResponder {
78024    type ControlHandle = SynchronousDatagramSocketControlHandle;
78025
78026    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78027        &self.control_handle
78028    }
78029
78030    fn drop_without_shutdown(mut self) {
78031        // Safety: drops once, never accessed again due to mem::forget
78032        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78033        // Prevent Drop from running (which would shut down the channel)
78034        std::mem::forget(self);
78035    }
78036}
78037
78038impl SynchronousDatagramSocketSetNoCheckResponder {
78039    /// Sends a response to the FIDL transaction.
78040    ///
78041    /// Sets the channel to shutdown if an error occurs.
78042    pub fn send(
78043        self,
78044        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78045    ) -> Result<(), fidl::Error> {
78046        let _result = self.send_raw(result);
78047        if _result.is_err() {
78048            self.control_handle.shutdown();
78049        }
78050        self.drop_without_shutdown();
78051        _result
78052    }
78053
78054    /// Similar to "send" but does not shutdown the channel if an error occurs.
78055    pub fn send_no_shutdown_on_err(
78056        self,
78057        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78058    ) -> Result<(), fidl::Error> {
78059        let _result = self.send_raw(result);
78060        self.drop_without_shutdown();
78061        _result
78062    }
78063
78064    fn send_raw(
78065        &self,
78066        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78067    ) -> Result<(), fidl::Error> {
78068        self.control_handle.inner.send::<fidl::encoding::ResultType<
78069            fidl::encoding::EmptyStruct,
78070            fidl_fuchsia_posix::Errno,
78071        >>(
78072            result,
78073            self.tx_id,
78074            0x6bbf00c53a4c78c2,
78075            fidl::encoding::DynamicFlags::empty(),
78076        )
78077    }
78078}
78079
78080#[must_use = "FIDL methods require a response to be sent"]
78081#[derive(Debug)]
78082pub struct SynchronousDatagramSocketGetNoCheckResponder {
78083    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78084    tx_id: u32,
78085}
78086
78087/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78088/// if the responder is dropped without sending a response, so that the client
78089/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78090impl std::ops::Drop for SynchronousDatagramSocketGetNoCheckResponder {
78091    fn drop(&mut self) {
78092        self.control_handle.shutdown();
78093        // Safety: drops once, never accessed again
78094        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78095    }
78096}
78097
78098impl fidl::endpoints::Responder for SynchronousDatagramSocketGetNoCheckResponder {
78099    type ControlHandle = SynchronousDatagramSocketControlHandle;
78100
78101    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78102        &self.control_handle
78103    }
78104
78105    fn drop_without_shutdown(mut self) {
78106        // Safety: drops once, never accessed again due to mem::forget
78107        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78108        // Prevent Drop from running (which would shut down the channel)
78109        std::mem::forget(self);
78110    }
78111}
78112
78113impl SynchronousDatagramSocketGetNoCheckResponder {
78114    /// Sends a response to the FIDL transaction.
78115    ///
78116    /// Sets the channel to shutdown if an error occurs.
78117    pub fn send(
78118        self,
78119        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78120    ) -> Result<(), fidl::Error> {
78121        let _result = self.send_raw(result);
78122        if _result.is_err() {
78123            self.control_handle.shutdown();
78124        }
78125        self.drop_without_shutdown();
78126        _result
78127    }
78128
78129    /// Similar to "send" but does not shutdown the channel if an error occurs.
78130    pub fn send_no_shutdown_on_err(
78131        self,
78132        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78133    ) -> Result<(), fidl::Error> {
78134        let _result = self.send_raw(result);
78135        self.drop_without_shutdown();
78136        _result
78137    }
78138
78139    fn send_raw(
78140        &self,
78141        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78142    ) -> Result<(), fidl::Error> {
78143        self.control_handle.inner.send::<fidl::encoding::ResultType<
78144            BaseSocketGetNoCheckResponse,
78145            fidl_fuchsia_posix::Errno,
78146        >>(
78147            result.map(|value| (value,)),
78148            self.tx_id,
78149            0x2cd4249286417694,
78150            fidl::encoding::DynamicFlags::empty(),
78151        )
78152    }
78153}
78154
78155#[must_use = "FIDL methods require a response to be sent"]
78156#[derive(Debug)]
78157pub struct SynchronousDatagramSocketSetLingerResponder {
78158    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78159    tx_id: u32,
78160}
78161
78162/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78163/// if the responder is dropped without sending a response, so that the client
78164/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78165impl std::ops::Drop for SynchronousDatagramSocketSetLingerResponder {
78166    fn drop(&mut self) {
78167        self.control_handle.shutdown();
78168        // Safety: drops once, never accessed again
78169        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78170    }
78171}
78172
78173impl fidl::endpoints::Responder for SynchronousDatagramSocketSetLingerResponder {
78174    type ControlHandle = SynchronousDatagramSocketControlHandle;
78175
78176    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78177        &self.control_handle
78178    }
78179
78180    fn drop_without_shutdown(mut self) {
78181        // Safety: drops once, never accessed again due to mem::forget
78182        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78183        // Prevent Drop from running (which would shut down the channel)
78184        std::mem::forget(self);
78185    }
78186}
78187
78188impl SynchronousDatagramSocketSetLingerResponder {
78189    /// Sends a response to the FIDL transaction.
78190    ///
78191    /// Sets the channel to shutdown if an error occurs.
78192    pub fn send(
78193        self,
78194        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78195    ) -> Result<(), fidl::Error> {
78196        let _result = self.send_raw(result);
78197        if _result.is_err() {
78198            self.control_handle.shutdown();
78199        }
78200        self.drop_without_shutdown();
78201        _result
78202    }
78203
78204    /// Similar to "send" but does not shutdown the channel if an error occurs.
78205    pub fn send_no_shutdown_on_err(
78206        self,
78207        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78208    ) -> Result<(), fidl::Error> {
78209        let _result = self.send_raw(result);
78210        self.drop_without_shutdown();
78211        _result
78212    }
78213
78214    fn send_raw(
78215        &self,
78216        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78217    ) -> Result<(), fidl::Error> {
78218        self.control_handle.inner.send::<fidl::encoding::ResultType<
78219            fidl::encoding::EmptyStruct,
78220            fidl_fuchsia_posix::Errno,
78221        >>(
78222            result,
78223            self.tx_id,
78224            0x45386351246e998e,
78225            fidl::encoding::DynamicFlags::empty(),
78226        )
78227    }
78228}
78229
78230#[must_use = "FIDL methods require a response to be sent"]
78231#[derive(Debug)]
78232pub struct SynchronousDatagramSocketGetLingerResponder {
78233    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78234    tx_id: u32,
78235}
78236
78237/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78238/// if the responder is dropped without sending a response, so that the client
78239/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78240impl std::ops::Drop for SynchronousDatagramSocketGetLingerResponder {
78241    fn drop(&mut self) {
78242        self.control_handle.shutdown();
78243        // Safety: drops once, never accessed again
78244        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78245    }
78246}
78247
78248impl fidl::endpoints::Responder for SynchronousDatagramSocketGetLingerResponder {
78249    type ControlHandle = SynchronousDatagramSocketControlHandle;
78250
78251    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78252        &self.control_handle
78253    }
78254
78255    fn drop_without_shutdown(mut self) {
78256        // Safety: drops once, never accessed again due to mem::forget
78257        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78258        // Prevent Drop from running (which would shut down the channel)
78259        std::mem::forget(self);
78260    }
78261}
78262
78263impl SynchronousDatagramSocketGetLingerResponder {
78264    /// Sends a response to the FIDL transaction.
78265    ///
78266    /// Sets the channel to shutdown if an error occurs.
78267    pub fn send(
78268        self,
78269        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
78270    ) -> Result<(), fidl::Error> {
78271        let _result = self.send_raw(result);
78272        if _result.is_err() {
78273            self.control_handle.shutdown();
78274        }
78275        self.drop_without_shutdown();
78276        _result
78277    }
78278
78279    /// Similar to "send" but does not shutdown the channel if an error occurs.
78280    pub fn send_no_shutdown_on_err(
78281        self,
78282        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
78283    ) -> Result<(), fidl::Error> {
78284        let _result = self.send_raw(result);
78285        self.drop_without_shutdown();
78286        _result
78287    }
78288
78289    fn send_raw(
78290        &self,
78291        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
78292    ) -> Result<(), fidl::Error> {
78293        self.control_handle.inner.send::<fidl::encoding::ResultType<
78294            BaseSocketGetLingerResponse,
78295            fidl_fuchsia_posix::Errno,
78296        >>(
78297            result,
78298            self.tx_id,
78299            0x48eb20fc5ccb0e45,
78300            fidl::encoding::DynamicFlags::empty(),
78301        )
78302    }
78303}
78304
78305#[must_use = "FIDL methods require a response to be sent"]
78306#[derive(Debug)]
78307pub struct SynchronousDatagramSocketSetReusePortResponder {
78308    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78309    tx_id: u32,
78310}
78311
78312/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78313/// if the responder is dropped without sending a response, so that the client
78314/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78315impl std::ops::Drop for SynchronousDatagramSocketSetReusePortResponder {
78316    fn drop(&mut self) {
78317        self.control_handle.shutdown();
78318        // Safety: drops once, never accessed again
78319        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78320    }
78321}
78322
78323impl fidl::endpoints::Responder for SynchronousDatagramSocketSetReusePortResponder {
78324    type ControlHandle = SynchronousDatagramSocketControlHandle;
78325
78326    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78327        &self.control_handle
78328    }
78329
78330    fn drop_without_shutdown(mut self) {
78331        // Safety: drops once, never accessed again due to mem::forget
78332        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78333        // Prevent Drop from running (which would shut down the channel)
78334        std::mem::forget(self);
78335    }
78336}
78337
78338impl SynchronousDatagramSocketSetReusePortResponder {
78339    /// Sends a response to the FIDL transaction.
78340    ///
78341    /// Sets the channel to shutdown if an error occurs.
78342    pub fn send(
78343        self,
78344        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78345    ) -> Result<(), fidl::Error> {
78346        let _result = self.send_raw(result);
78347        if _result.is_err() {
78348            self.control_handle.shutdown();
78349        }
78350        self.drop_without_shutdown();
78351        _result
78352    }
78353
78354    /// Similar to "send" but does not shutdown the channel if an error occurs.
78355    pub fn send_no_shutdown_on_err(
78356        self,
78357        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78358    ) -> Result<(), fidl::Error> {
78359        let _result = self.send_raw(result);
78360        self.drop_without_shutdown();
78361        _result
78362    }
78363
78364    fn send_raw(
78365        &self,
78366        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78367    ) -> Result<(), fidl::Error> {
78368        self.control_handle.inner.send::<fidl::encoding::ResultType<
78369            fidl::encoding::EmptyStruct,
78370            fidl_fuchsia_posix::Errno,
78371        >>(
78372            result,
78373            self.tx_id,
78374            0x24dd3e5cb36d9ccb,
78375            fidl::encoding::DynamicFlags::empty(),
78376        )
78377    }
78378}
78379
78380#[must_use = "FIDL methods require a response to be sent"]
78381#[derive(Debug)]
78382pub struct SynchronousDatagramSocketGetReusePortResponder {
78383    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78384    tx_id: u32,
78385}
78386
78387/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78388/// if the responder is dropped without sending a response, so that the client
78389/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78390impl std::ops::Drop for SynchronousDatagramSocketGetReusePortResponder {
78391    fn drop(&mut self) {
78392        self.control_handle.shutdown();
78393        // Safety: drops once, never accessed again
78394        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78395    }
78396}
78397
78398impl fidl::endpoints::Responder for SynchronousDatagramSocketGetReusePortResponder {
78399    type ControlHandle = SynchronousDatagramSocketControlHandle;
78400
78401    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78402        &self.control_handle
78403    }
78404
78405    fn drop_without_shutdown(mut self) {
78406        // Safety: drops once, never accessed again due to mem::forget
78407        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78408        // Prevent Drop from running (which would shut down the channel)
78409        std::mem::forget(self);
78410    }
78411}
78412
78413impl SynchronousDatagramSocketGetReusePortResponder {
78414    /// Sends a response to the FIDL transaction.
78415    ///
78416    /// Sets the channel to shutdown if an error occurs.
78417    pub fn send(
78418        self,
78419        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78420    ) -> Result<(), fidl::Error> {
78421        let _result = self.send_raw(result);
78422        if _result.is_err() {
78423            self.control_handle.shutdown();
78424        }
78425        self.drop_without_shutdown();
78426        _result
78427    }
78428
78429    /// Similar to "send" but does not shutdown the channel if an error occurs.
78430    pub fn send_no_shutdown_on_err(
78431        self,
78432        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78433    ) -> Result<(), fidl::Error> {
78434        let _result = self.send_raw(result);
78435        self.drop_without_shutdown();
78436        _result
78437    }
78438
78439    fn send_raw(
78440        &self,
78441        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78442    ) -> Result<(), fidl::Error> {
78443        self.control_handle.inner.send::<fidl::encoding::ResultType<
78444            BaseSocketGetReusePortResponse,
78445            fidl_fuchsia_posix::Errno,
78446        >>(
78447            result.map(|value| (value,)),
78448            self.tx_id,
78449            0x7a112c1ab54ff828,
78450            fidl::encoding::DynamicFlags::empty(),
78451        )
78452    }
78453}
78454
78455#[must_use = "FIDL methods require a response to be sent"]
78456#[derive(Debug)]
78457pub struct SynchronousDatagramSocketGetAcceptConnResponder {
78458    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78459    tx_id: u32,
78460}
78461
78462/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78463/// if the responder is dropped without sending a response, so that the client
78464/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78465impl std::ops::Drop for SynchronousDatagramSocketGetAcceptConnResponder {
78466    fn drop(&mut self) {
78467        self.control_handle.shutdown();
78468        // Safety: drops once, never accessed again
78469        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78470    }
78471}
78472
78473impl fidl::endpoints::Responder for SynchronousDatagramSocketGetAcceptConnResponder {
78474    type ControlHandle = SynchronousDatagramSocketControlHandle;
78475
78476    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78477        &self.control_handle
78478    }
78479
78480    fn drop_without_shutdown(mut self) {
78481        // Safety: drops once, never accessed again due to mem::forget
78482        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78483        // Prevent Drop from running (which would shut down the channel)
78484        std::mem::forget(self);
78485    }
78486}
78487
78488impl SynchronousDatagramSocketGetAcceptConnResponder {
78489    /// Sends a response to the FIDL transaction.
78490    ///
78491    /// Sets the channel to shutdown if an error occurs.
78492    pub fn send(
78493        self,
78494        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78495    ) -> Result<(), fidl::Error> {
78496        let _result = self.send_raw(result);
78497        if _result.is_err() {
78498            self.control_handle.shutdown();
78499        }
78500        self.drop_without_shutdown();
78501        _result
78502    }
78503
78504    /// Similar to "send" but does not shutdown the channel if an error occurs.
78505    pub fn send_no_shutdown_on_err(
78506        self,
78507        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78508    ) -> Result<(), fidl::Error> {
78509        let _result = self.send_raw(result);
78510        self.drop_without_shutdown();
78511        _result
78512    }
78513
78514    fn send_raw(
78515        &self,
78516        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78517    ) -> Result<(), fidl::Error> {
78518        self.control_handle.inner.send::<fidl::encoding::ResultType<
78519            BaseSocketGetAcceptConnResponse,
78520            fidl_fuchsia_posix::Errno,
78521        >>(
78522            result.map(|value| (value,)),
78523            self.tx_id,
78524            0x67ce6db6c2ec8966,
78525            fidl::encoding::DynamicFlags::empty(),
78526        )
78527    }
78528}
78529
78530#[must_use = "FIDL methods require a response to be sent"]
78531#[derive(Debug)]
78532pub struct SynchronousDatagramSocketSetBindToDeviceResponder {
78533    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78534    tx_id: u32,
78535}
78536
78537/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78538/// if the responder is dropped without sending a response, so that the client
78539/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78540impl std::ops::Drop for SynchronousDatagramSocketSetBindToDeviceResponder {
78541    fn drop(&mut self) {
78542        self.control_handle.shutdown();
78543        // Safety: drops once, never accessed again
78544        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78545    }
78546}
78547
78548impl fidl::endpoints::Responder for SynchronousDatagramSocketSetBindToDeviceResponder {
78549    type ControlHandle = SynchronousDatagramSocketControlHandle;
78550
78551    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78552        &self.control_handle
78553    }
78554
78555    fn drop_without_shutdown(mut self) {
78556        // Safety: drops once, never accessed again due to mem::forget
78557        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78558        // Prevent Drop from running (which would shut down the channel)
78559        std::mem::forget(self);
78560    }
78561}
78562
78563impl SynchronousDatagramSocketSetBindToDeviceResponder {
78564    /// Sends a response to the FIDL transaction.
78565    ///
78566    /// Sets the channel to shutdown if an error occurs.
78567    pub fn send(
78568        self,
78569        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78570    ) -> Result<(), fidl::Error> {
78571        let _result = self.send_raw(result);
78572        if _result.is_err() {
78573            self.control_handle.shutdown();
78574        }
78575        self.drop_without_shutdown();
78576        _result
78577    }
78578
78579    /// Similar to "send" but does not shutdown the channel if an error occurs.
78580    pub fn send_no_shutdown_on_err(
78581        self,
78582        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78583    ) -> Result<(), fidl::Error> {
78584        let _result = self.send_raw(result);
78585        self.drop_without_shutdown();
78586        _result
78587    }
78588
78589    fn send_raw(
78590        &self,
78591        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78592    ) -> Result<(), fidl::Error> {
78593        self.control_handle.inner.send::<fidl::encoding::ResultType<
78594            fidl::encoding::EmptyStruct,
78595            fidl_fuchsia_posix::Errno,
78596        >>(
78597            result,
78598            self.tx_id,
78599            0x2118b483f28aafc4,
78600            fidl::encoding::DynamicFlags::empty(),
78601        )
78602    }
78603}
78604
78605#[must_use = "FIDL methods require a response to be sent"]
78606#[derive(Debug)]
78607pub struct SynchronousDatagramSocketGetBindToDeviceResponder {
78608    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78609    tx_id: u32,
78610}
78611
78612/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78613/// if the responder is dropped without sending a response, so that the client
78614/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78615impl std::ops::Drop for SynchronousDatagramSocketGetBindToDeviceResponder {
78616    fn drop(&mut self) {
78617        self.control_handle.shutdown();
78618        // Safety: drops once, never accessed again
78619        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78620    }
78621}
78622
78623impl fidl::endpoints::Responder for SynchronousDatagramSocketGetBindToDeviceResponder {
78624    type ControlHandle = SynchronousDatagramSocketControlHandle;
78625
78626    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78627        &self.control_handle
78628    }
78629
78630    fn drop_without_shutdown(mut self) {
78631        // Safety: drops once, never accessed again due to mem::forget
78632        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78633        // Prevent Drop from running (which would shut down the channel)
78634        std::mem::forget(self);
78635    }
78636}
78637
78638impl SynchronousDatagramSocketGetBindToDeviceResponder {
78639    /// Sends a response to the FIDL transaction.
78640    ///
78641    /// Sets the channel to shutdown if an error occurs.
78642    pub fn send(
78643        self,
78644        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
78645    ) -> Result<(), fidl::Error> {
78646        let _result = self.send_raw(result);
78647        if _result.is_err() {
78648            self.control_handle.shutdown();
78649        }
78650        self.drop_without_shutdown();
78651        _result
78652    }
78653
78654    /// Similar to "send" but does not shutdown the channel if an error occurs.
78655    pub fn send_no_shutdown_on_err(
78656        self,
78657        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
78658    ) -> Result<(), fidl::Error> {
78659        let _result = self.send_raw(result);
78660        self.drop_without_shutdown();
78661        _result
78662    }
78663
78664    fn send_raw(
78665        &self,
78666        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
78667    ) -> Result<(), fidl::Error> {
78668        self.control_handle.inner.send::<fidl::encoding::ResultType<
78669            BaseSocketGetBindToDeviceResponse,
78670            fidl_fuchsia_posix::Errno,
78671        >>(
78672            result.map(|value| (value,)),
78673            self.tx_id,
78674            0x1ab1fbf0ef7906c8,
78675            fidl::encoding::DynamicFlags::empty(),
78676        )
78677    }
78678}
78679
78680#[must_use = "FIDL methods require a response to be sent"]
78681#[derive(Debug)]
78682pub struct SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
78683    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78684    tx_id: u32,
78685}
78686
78687/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78688/// if the responder is dropped without sending a response, so that the client
78689/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78690impl std::ops::Drop for SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
78691    fn drop(&mut self) {
78692        self.control_handle.shutdown();
78693        // Safety: drops once, never accessed again
78694        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78695    }
78696}
78697
78698impl fidl::endpoints::Responder for SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
78699    type ControlHandle = SynchronousDatagramSocketControlHandle;
78700
78701    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78702        &self.control_handle
78703    }
78704
78705    fn drop_without_shutdown(mut self) {
78706        // Safety: drops once, never accessed again due to mem::forget
78707        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78708        // Prevent Drop from running (which would shut down the channel)
78709        std::mem::forget(self);
78710    }
78711}
78712
78713impl SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
78714    /// Sends a response to the FIDL transaction.
78715    ///
78716    /// Sets the channel to shutdown if an error occurs.
78717    pub fn send(
78718        self,
78719        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78720    ) -> Result<(), fidl::Error> {
78721        let _result = self.send_raw(result);
78722        if _result.is_err() {
78723            self.control_handle.shutdown();
78724        }
78725        self.drop_without_shutdown();
78726        _result
78727    }
78728
78729    /// Similar to "send" but does not shutdown the channel if an error occurs.
78730    pub fn send_no_shutdown_on_err(
78731        self,
78732        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78733    ) -> Result<(), fidl::Error> {
78734        let _result = self.send_raw(result);
78735        self.drop_without_shutdown();
78736        _result
78737    }
78738
78739    fn send_raw(
78740        &self,
78741        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78742    ) -> Result<(), fidl::Error> {
78743        self.control_handle.inner.send::<fidl::encoding::ResultType<
78744            fidl::encoding::EmptyStruct,
78745            fidl_fuchsia_posix::Errno,
78746        >>(
78747            result,
78748            self.tx_id,
78749            0x6e387a0def00821,
78750            fidl::encoding::DynamicFlags::empty(),
78751        )
78752    }
78753}
78754
78755#[must_use = "FIDL methods require a response to be sent"]
78756#[derive(Debug)]
78757pub struct SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
78758    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78759    tx_id: u32,
78760}
78761
78762/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78763/// if the responder is dropped without sending a response, so that the client
78764/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78765impl std::ops::Drop for SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
78766    fn drop(&mut self) {
78767        self.control_handle.shutdown();
78768        // Safety: drops once, never accessed again
78769        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78770    }
78771}
78772
78773impl fidl::endpoints::Responder for SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
78774    type ControlHandle = SynchronousDatagramSocketControlHandle;
78775
78776    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78777        &self.control_handle
78778    }
78779
78780    fn drop_without_shutdown(mut self) {
78781        // Safety: drops once, never accessed again due to mem::forget
78782        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78783        // Prevent Drop from running (which would shut down the channel)
78784        std::mem::forget(self);
78785    }
78786}
78787
78788impl SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
78789    /// Sends a response to the FIDL transaction.
78790    ///
78791    /// Sets the channel to shutdown if an error occurs.
78792    pub fn send(
78793        self,
78794        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
78795    ) -> Result<(), fidl::Error> {
78796        let _result = self.send_raw(result);
78797        if _result.is_err() {
78798            self.control_handle.shutdown();
78799        }
78800        self.drop_without_shutdown();
78801        _result
78802    }
78803
78804    /// Similar to "send" but does not shutdown the channel if an error occurs.
78805    pub fn send_no_shutdown_on_err(
78806        self,
78807        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
78808    ) -> Result<(), fidl::Error> {
78809        let _result = self.send_raw(result);
78810        self.drop_without_shutdown();
78811        _result
78812    }
78813
78814    fn send_raw(
78815        &self,
78816        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
78817    ) -> Result<(), fidl::Error> {
78818        self.control_handle.inner.send::<fidl::encoding::ResultType<
78819            BaseSocketGetBindToInterfaceIndexResponse,
78820            fidl_fuchsia_posix::Errno,
78821        >>(
78822            result.map(|value| (value,)),
78823            self.tx_id,
78824            0x59c31dd3e3078295,
78825            fidl::encoding::DynamicFlags::empty(),
78826        )
78827    }
78828}
78829
78830#[must_use = "FIDL methods require a response to be sent"]
78831#[derive(Debug)]
78832pub struct SynchronousDatagramSocketSetTimestampResponder {
78833    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78834    tx_id: u32,
78835}
78836
78837/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78838/// if the responder is dropped without sending a response, so that the client
78839/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78840impl std::ops::Drop for SynchronousDatagramSocketSetTimestampResponder {
78841    fn drop(&mut self) {
78842        self.control_handle.shutdown();
78843        // Safety: drops once, never accessed again
78844        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78845    }
78846}
78847
78848impl fidl::endpoints::Responder for SynchronousDatagramSocketSetTimestampResponder {
78849    type ControlHandle = SynchronousDatagramSocketControlHandle;
78850
78851    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78852        &self.control_handle
78853    }
78854
78855    fn drop_without_shutdown(mut self) {
78856        // Safety: drops once, never accessed again due to mem::forget
78857        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78858        // Prevent Drop from running (which would shut down the channel)
78859        std::mem::forget(self);
78860    }
78861}
78862
78863impl SynchronousDatagramSocketSetTimestampResponder {
78864    /// Sends a response to the FIDL transaction.
78865    ///
78866    /// Sets the channel to shutdown if an error occurs.
78867    pub fn send(
78868        self,
78869        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78870    ) -> Result<(), fidl::Error> {
78871        let _result = self.send_raw(result);
78872        if _result.is_err() {
78873            self.control_handle.shutdown();
78874        }
78875        self.drop_without_shutdown();
78876        _result
78877    }
78878
78879    /// Similar to "send" but does not shutdown the channel if an error occurs.
78880    pub fn send_no_shutdown_on_err(
78881        self,
78882        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78883    ) -> Result<(), fidl::Error> {
78884        let _result = self.send_raw(result);
78885        self.drop_without_shutdown();
78886        _result
78887    }
78888
78889    fn send_raw(
78890        &self,
78891        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78892    ) -> Result<(), fidl::Error> {
78893        self.control_handle.inner.send::<fidl::encoding::ResultType<
78894            fidl::encoding::EmptyStruct,
78895            fidl_fuchsia_posix::Errno,
78896        >>(
78897            result,
78898            self.tx_id,
78899            0x285d6516c263d839,
78900            fidl::encoding::DynamicFlags::empty(),
78901        )
78902    }
78903}
78904
78905#[must_use = "FIDL methods require a response to be sent"]
78906#[derive(Debug)]
78907pub struct SynchronousDatagramSocketGetTimestampResponder {
78908    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78909    tx_id: u32,
78910}
78911
78912/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78913/// if the responder is dropped without sending a response, so that the client
78914/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78915impl std::ops::Drop for SynchronousDatagramSocketGetTimestampResponder {
78916    fn drop(&mut self) {
78917        self.control_handle.shutdown();
78918        // Safety: drops once, never accessed again
78919        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78920    }
78921}
78922
78923impl fidl::endpoints::Responder for SynchronousDatagramSocketGetTimestampResponder {
78924    type ControlHandle = SynchronousDatagramSocketControlHandle;
78925
78926    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78927        &self.control_handle
78928    }
78929
78930    fn drop_without_shutdown(mut self) {
78931        // Safety: drops once, never accessed again due to mem::forget
78932        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78933        // Prevent Drop from running (which would shut down the channel)
78934        std::mem::forget(self);
78935    }
78936}
78937
78938impl SynchronousDatagramSocketGetTimestampResponder {
78939    /// Sends a response to the FIDL transaction.
78940    ///
78941    /// Sets the channel to shutdown if an error occurs.
78942    pub fn send(
78943        self,
78944        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
78945    ) -> Result<(), fidl::Error> {
78946        let _result = self.send_raw(result);
78947        if _result.is_err() {
78948            self.control_handle.shutdown();
78949        }
78950        self.drop_without_shutdown();
78951        _result
78952    }
78953
78954    /// Similar to "send" but does not shutdown the channel if an error occurs.
78955    pub fn send_no_shutdown_on_err(
78956        self,
78957        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
78958    ) -> Result<(), fidl::Error> {
78959        let _result = self.send_raw(result);
78960        self.drop_without_shutdown();
78961        _result
78962    }
78963
78964    fn send_raw(
78965        &self,
78966        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
78967    ) -> Result<(), fidl::Error> {
78968        self.control_handle.inner.send::<fidl::encoding::ResultType<
78969            BaseSocketGetTimestampResponse,
78970            fidl_fuchsia_posix::Errno,
78971        >>(
78972            result.map(|value| (value,)),
78973            self.tx_id,
78974            0x49f2fffbbcc2bd27,
78975            fidl::encoding::DynamicFlags::empty(),
78976        )
78977    }
78978}
78979
78980#[must_use = "FIDL methods require a response to be sent"]
78981#[derive(Debug)]
78982pub struct SynchronousDatagramSocketSetMarkResponder {
78983    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78984    tx_id: u32,
78985}
78986
78987/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78988/// if the responder is dropped without sending a response, so that the client
78989/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78990impl std::ops::Drop for SynchronousDatagramSocketSetMarkResponder {
78991    fn drop(&mut self) {
78992        self.control_handle.shutdown();
78993        // Safety: drops once, never accessed again
78994        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78995    }
78996}
78997
78998impl fidl::endpoints::Responder for SynchronousDatagramSocketSetMarkResponder {
78999    type ControlHandle = SynchronousDatagramSocketControlHandle;
79000
79001    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79002        &self.control_handle
79003    }
79004
79005    fn drop_without_shutdown(mut self) {
79006        // Safety: drops once, never accessed again due to mem::forget
79007        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79008        // Prevent Drop from running (which would shut down the channel)
79009        std::mem::forget(self);
79010    }
79011}
79012
79013impl SynchronousDatagramSocketSetMarkResponder {
79014    /// Sends a response to the FIDL transaction.
79015    ///
79016    /// Sets the channel to shutdown if an error occurs.
79017    pub fn send(
79018        self,
79019        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79020    ) -> Result<(), fidl::Error> {
79021        let _result = self.send_raw(result);
79022        if _result.is_err() {
79023            self.control_handle.shutdown();
79024        }
79025        self.drop_without_shutdown();
79026        _result
79027    }
79028
79029    /// Similar to "send" but does not shutdown the channel if an error occurs.
79030    pub fn send_no_shutdown_on_err(
79031        self,
79032        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79033    ) -> Result<(), fidl::Error> {
79034        let _result = self.send_raw(result);
79035        self.drop_without_shutdown();
79036        _result
79037    }
79038
79039    fn send_raw(
79040        &self,
79041        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79042    ) -> Result<(), fidl::Error> {
79043        self.control_handle.inner.send::<fidl::encoding::ResultType<
79044            fidl::encoding::EmptyStruct,
79045            fidl_fuchsia_posix::Errno,
79046        >>(
79047            result,
79048            self.tx_id,
79049            0x6ead6de09f653236,
79050            fidl::encoding::DynamicFlags::empty(),
79051        )
79052    }
79053}
79054
79055#[must_use = "FIDL methods require a response to be sent"]
79056#[derive(Debug)]
79057pub struct SynchronousDatagramSocketGetMarkResponder {
79058    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79059    tx_id: u32,
79060}
79061
79062/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79063/// if the responder is dropped without sending a response, so that the client
79064/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79065impl std::ops::Drop for SynchronousDatagramSocketGetMarkResponder {
79066    fn drop(&mut self) {
79067        self.control_handle.shutdown();
79068        // Safety: drops once, never accessed again
79069        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79070    }
79071}
79072
79073impl fidl::endpoints::Responder for SynchronousDatagramSocketGetMarkResponder {
79074    type ControlHandle = SynchronousDatagramSocketControlHandle;
79075
79076    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79077        &self.control_handle
79078    }
79079
79080    fn drop_without_shutdown(mut self) {
79081        // Safety: drops once, never accessed again due to mem::forget
79082        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79083        // Prevent Drop from running (which would shut down the channel)
79084        std::mem::forget(self);
79085    }
79086}
79087
79088impl SynchronousDatagramSocketGetMarkResponder {
79089    /// Sends a response to the FIDL transaction.
79090    ///
79091    /// Sets the channel to shutdown if an error occurs.
79092    pub fn send(
79093        self,
79094        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
79095    ) -> Result<(), fidl::Error> {
79096        let _result = self.send_raw(result);
79097        if _result.is_err() {
79098            self.control_handle.shutdown();
79099        }
79100        self.drop_without_shutdown();
79101        _result
79102    }
79103
79104    /// Similar to "send" but does not shutdown the channel if an error occurs.
79105    pub fn send_no_shutdown_on_err(
79106        self,
79107        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
79108    ) -> Result<(), fidl::Error> {
79109        let _result = self.send_raw(result);
79110        self.drop_without_shutdown();
79111        _result
79112    }
79113
79114    fn send_raw(
79115        &self,
79116        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
79117    ) -> Result<(), fidl::Error> {
79118        self.control_handle.inner.send::<fidl::encoding::ResultType<
79119            BaseSocketGetMarkResponse,
79120            fidl_fuchsia_posix::Errno,
79121        >>(
79122            result.map(|mark| (mark,)),
79123            self.tx_id,
79124            0x57a2752c61d93d47,
79125            fidl::encoding::DynamicFlags::empty(),
79126        )
79127    }
79128}
79129
79130#[must_use = "FIDL methods require a response to be sent"]
79131#[derive(Debug)]
79132pub struct SynchronousDatagramSocketGetCookieResponder {
79133    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79134    tx_id: u32,
79135}
79136
79137/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79138/// if the responder is dropped without sending a response, so that the client
79139/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79140impl std::ops::Drop for SynchronousDatagramSocketGetCookieResponder {
79141    fn drop(&mut self) {
79142        self.control_handle.shutdown();
79143        // Safety: drops once, never accessed again
79144        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79145    }
79146}
79147
79148impl fidl::endpoints::Responder for SynchronousDatagramSocketGetCookieResponder {
79149    type ControlHandle = SynchronousDatagramSocketControlHandle;
79150
79151    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79152        &self.control_handle
79153    }
79154
79155    fn drop_without_shutdown(mut self) {
79156        // Safety: drops once, never accessed again due to mem::forget
79157        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79158        // Prevent Drop from running (which would shut down the channel)
79159        std::mem::forget(self);
79160    }
79161}
79162
79163impl SynchronousDatagramSocketGetCookieResponder {
79164    /// Sends a response to the FIDL transaction.
79165    ///
79166    /// Sets the channel to shutdown if an error occurs.
79167    pub fn send(
79168        self,
79169        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
79170    ) -> Result<(), fidl::Error> {
79171        let _result = self.send_raw(result);
79172        if _result.is_err() {
79173            self.control_handle.shutdown();
79174        }
79175        self.drop_without_shutdown();
79176        _result
79177    }
79178
79179    /// Similar to "send" but does not shutdown the channel if an error occurs.
79180    pub fn send_no_shutdown_on_err(
79181        self,
79182        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
79183    ) -> Result<(), fidl::Error> {
79184        let _result = self.send_raw(result);
79185        self.drop_without_shutdown();
79186        _result
79187    }
79188
79189    fn send_raw(
79190        &self,
79191        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
79192    ) -> Result<(), fidl::Error> {
79193        self.control_handle.inner.send::<fidl::encoding::ResultType<
79194            BaseSocketGetCookieResponse,
79195            fidl_fuchsia_posix::Errno,
79196        >>(
79197            result.map(|value| (value,)),
79198            self.tx_id,
79199            0x2c2f47fd8f924e52,
79200            fidl::encoding::DynamicFlags::empty(),
79201        )
79202    }
79203}
79204
79205#[must_use = "FIDL methods require a response to be sent"]
79206#[derive(Debug)]
79207pub struct SynchronousDatagramSocketBindResponder {
79208    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79209    tx_id: u32,
79210}
79211
79212/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79213/// if the responder is dropped without sending a response, so that the client
79214/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79215impl std::ops::Drop for SynchronousDatagramSocketBindResponder {
79216    fn drop(&mut self) {
79217        self.control_handle.shutdown();
79218        // Safety: drops once, never accessed again
79219        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79220    }
79221}
79222
79223impl fidl::endpoints::Responder for SynchronousDatagramSocketBindResponder {
79224    type ControlHandle = SynchronousDatagramSocketControlHandle;
79225
79226    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79227        &self.control_handle
79228    }
79229
79230    fn drop_without_shutdown(mut self) {
79231        // Safety: drops once, never accessed again due to mem::forget
79232        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79233        // Prevent Drop from running (which would shut down the channel)
79234        std::mem::forget(self);
79235    }
79236}
79237
79238impl SynchronousDatagramSocketBindResponder {
79239    /// Sends a response to the FIDL transaction.
79240    ///
79241    /// Sets the channel to shutdown if an error occurs.
79242    pub fn send(
79243        self,
79244        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79245    ) -> Result<(), fidl::Error> {
79246        let _result = self.send_raw(result);
79247        if _result.is_err() {
79248            self.control_handle.shutdown();
79249        }
79250        self.drop_without_shutdown();
79251        _result
79252    }
79253
79254    /// Similar to "send" but does not shutdown the channel if an error occurs.
79255    pub fn send_no_shutdown_on_err(
79256        self,
79257        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79258    ) -> Result<(), fidl::Error> {
79259        let _result = self.send_raw(result);
79260        self.drop_without_shutdown();
79261        _result
79262    }
79263
79264    fn send_raw(
79265        &self,
79266        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79267    ) -> Result<(), fidl::Error> {
79268        self.control_handle.inner.send::<fidl::encoding::ResultType<
79269            fidl::encoding::EmptyStruct,
79270            fidl_fuchsia_posix::Errno,
79271        >>(
79272            result,
79273            self.tx_id,
79274            0x4bc6400ae92125d,
79275            fidl::encoding::DynamicFlags::empty(),
79276        )
79277    }
79278}
79279
79280#[must_use = "FIDL methods require a response to be sent"]
79281#[derive(Debug)]
79282pub struct SynchronousDatagramSocketConnectResponder {
79283    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79284    tx_id: u32,
79285}
79286
79287/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79288/// if the responder is dropped without sending a response, so that the client
79289/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79290impl std::ops::Drop for SynchronousDatagramSocketConnectResponder {
79291    fn drop(&mut self) {
79292        self.control_handle.shutdown();
79293        // Safety: drops once, never accessed again
79294        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79295    }
79296}
79297
79298impl fidl::endpoints::Responder for SynchronousDatagramSocketConnectResponder {
79299    type ControlHandle = SynchronousDatagramSocketControlHandle;
79300
79301    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79302        &self.control_handle
79303    }
79304
79305    fn drop_without_shutdown(mut self) {
79306        // Safety: drops once, never accessed again due to mem::forget
79307        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79308        // Prevent Drop from running (which would shut down the channel)
79309        std::mem::forget(self);
79310    }
79311}
79312
79313impl SynchronousDatagramSocketConnectResponder {
79314    /// Sends a response to the FIDL transaction.
79315    ///
79316    /// Sets the channel to shutdown if an error occurs.
79317    pub fn send(
79318        self,
79319        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79320    ) -> Result<(), fidl::Error> {
79321        let _result = self.send_raw(result);
79322        if _result.is_err() {
79323            self.control_handle.shutdown();
79324        }
79325        self.drop_without_shutdown();
79326        _result
79327    }
79328
79329    /// Similar to "send" but does not shutdown the channel if an error occurs.
79330    pub fn send_no_shutdown_on_err(
79331        self,
79332        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79333    ) -> Result<(), fidl::Error> {
79334        let _result = self.send_raw(result);
79335        self.drop_without_shutdown();
79336        _result
79337    }
79338
79339    fn send_raw(
79340        &self,
79341        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79342    ) -> Result<(), fidl::Error> {
79343        self.control_handle.inner.send::<fidl::encoding::ResultType<
79344            fidl::encoding::EmptyStruct,
79345            fidl_fuchsia_posix::Errno,
79346        >>(
79347            result,
79348            self.tx_id,
79349            0x5f05f19bfdd38871,
79350            fidl::encoding::DynamicFlags::empty(),
79351        )
79352    }
79353}
79354
79355#[must_use = "FIDL methods require a response to be sent"]
79356#[derive(Debug)]
79357pub struct SynchronousDatagramSocketDisconnectResponder {
79358    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79359    tx_id: u32,
79360}
79361
79362/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79363/// if the responder is dropped without sending a response, so that the client
79364/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79365impl std::ops::Drop for SynchronousDatagramSocketDisconnectResponder {
79366    fn drop(&mut self) {
79367        self.control_handle.shutdown();
79368        // Safety: drops once, never accessed again
79369        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79370    }
79371}
79372
79373impl fidl::endpoints::Responder for SynchronousDatagramSocketDisconnectResponder {
79374    type ControlHandle = SynchronousDatagramSocketControlHandle;
79375
79376    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79377        &self.control_handle
79378    }
79379
79380    fn drop_without_shutdown(mut self) {
79381        // Safety: drops once, never accessed again due to mem::forget
79382        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79383        // Prevent Drop from running (which would shut down the channel)
79384        std::mem::forget(self);
79385    }
79386}
79387
79388impl SynchronousDatagramSocketDisconnectResponder {
79389    /// Sends a response to the FIDL transaction.
79390    ///
79391    /// Sets the channel to shutdown if an error occurs.
79392    pub fn send(
79393        self,
79394        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79395    ) -> Result<(), fidl::Error> {
79396        let _result = self.send_raw(result);
79397        if _result.is_err() {
79398            self.control_handle.shutdown();
79399        }
79400        self.drop_without_shutdown();
79401        _result
79402    }
79403
79404    /// Similar to "send" but does not shutdown the channel if an error occurs.
79405    pub fn send_no_shutdown_on_err(
79406        self,
79407        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79408    ) -> Result<(), fidl::Error> {
79409        let _result = self.send_raw(result);
79410        self.drop_without_shutdown();
79411        _result
79412    }
79413
79414    fn send_raw(
79415        &self,
79416        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79417    ) -> Result<(), fidl::Error> {
79418        self.control_handle.inner.send::<fidl::encoding::ResultType<
79419            fidl::encoding::EmptyStruct,
79420            fidl_fuchsia_posix::Errno,
79421        >>(
79422            result,
79423            self.tx_id,
79424            0x74e63b91f7b29b2,
79425            fidl::encoding::DynamicFlags::empty(),
79426        )
79427    }
79428}
79429
79430#[must_use = "FIDL methods require a response to be sent"]
79431#[derive(Debug)]
79432pub struct SynchronousDatagramSocketGetSockNameResponder {
79433    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79434    tx_id: u32,
79435}
79436
79437/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79438/// if the responder is dropped without sending a response, so that the client
79439/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79440impl std::ops::Drop for SynchronousDatagramSocketGetSockNameResponder {
79441    fn drop(&mut self) {
79442        self.control_handle.shutdown();
79443        // Safety: drops once, never accessed again
79444        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79445    }
79446}
79447
79448impl fidl::endpoints::Responder for SynchronousDatagramSocketGetSockNameResponder {
79449    type ControlHandle = SynchronousDatagramSocketControlHandle;
79450
79451    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79452        &self.control_handle
79453    }
79454
79455    fn drop_without_shutdown(mut self) {
79456        // Safety: drops once, never accessed again due to mem::forget
79457        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79458        // Prevent Drop from running (which would shut down the channel)
79459        std::mem::forget(self);
79460    }
79461}
79462
79463impl SynchronousDatagramSocketGetSockNameResponder {
79464    /// Sends a response to the FIDL transaction.
79465    ///
79466    /// Sets the channel to shutdown if an error occurs.
79467    pub fn send(
79468        self,
79469        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79470    ) -> Result<(), fidl::Error> {
79471        let _result = self.send_raw(result);
79472        if _result.is_err() {
79473            self.control_handle.shutdown();
79474        }
79475        self.drop_without_shutdown();
79476        _result
79477    }
79478
79479    /// Similar to "send" but does not shutdown the channel if an error occurs.
79480    pub fn send_no_shutdown_on_err(
79481        self,
79482        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79483    ) -> Result<(), fidl::Error> {
79484        let _result = self.send_raw(result);
79485        self.drop_without_shutdown();
79486        _result
79487    }
79488
79489    fn send_raw(
79490        &self,
79491        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79492    ) -> Result<(), fidl::Error> {
79493        self.control_handle.inner.send::<fidl::encoding::ResultType<
79494            BaseNetworkSocketGetSockNameResponse,
79495            fidl_fuchsia_posix::Errno,
79496        >>(
79497            result.map(|addr| (addr,)),
79498            self.tx_id,
79499            0x475f23f84a1a4f85,
79500            fidl::encoding::DynamicFlags::empty(),
79501        )
79502    }
79503}
79504
79505#[must_use = "FIDL methods require a response to be sent"]
79506#[derive(Debug)]
79507pub struct SynchronousDatagramSocketGetPeerNameResponder {
79508    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79509    tx_id: u32,
79510}
79511
79512/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79513/// if the responder is dropped without sending a response, so that the client
79514/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79515impl std::ops::Drop for SynchronousDatagramSocketGetPeerNameResponder {
79516    fn drop(&mut self) {
79517        self.control_handle.shutdown();
79518        // Safety: drops once, never accessed again
79519        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79520    }
79521}
79522
79523impl fidl::endpoints::Responder for SynchronousDatagramSocketGetPeerNameResponder {
79524    type ControlHandle = SynchronousDatagramSocketControlHandle;
79525
79526    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79527        &self.control_handle
79528    }
79529
79530    fn drop_without_shutdown(mut self) {
79531        // Safety: drops once, never accessed again due to mem::forget
79532        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79533        // Prevent Drop from running (which would shut down the channel)
79534        std::mem::forget(self);
79535    }
79536}
79537
79538impl SynchronousDatagramSocketGetPeerNameResponder {
79539    /// Sends a response to the FIDL transaction.
79540    ///
79541    /// Sets the channel to shutdown if an error occurs.
79542    pub fn send(
79543        self,
79544        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79545    ) -> Result<(), fidl::Error> {
79546        let _result = self.send_raw(result);
79547        if _result.is_err() {
79548            self.control_handle.shutdown();
79549        }
79550        self.drop_without_shutdown();
79551        _result
79552    }
79553
79554    /// Similar to "send" but does not shutdown the channel if an error occurs.
79555    pub fn send_no_shutdown_on_err(
79556        self,
79557        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79558    ) -> Result<(), fidl::Error> {
79559        let _result = self.send_raw(result);
79560        self.drop_without_shutdown();
79561        _result
79562    }
79563
79564    fn send_raw(
79565        &self,
79566        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79567    ) -> Result<(), fidl::Error> {
79568        self.control_handle.inner.send::<fidl::encoding::ResultType<
79569            BaseNetworkSocketGetPeerNameResponse,
79570            fidl_fuchsia_posix::Errno,
79571        >>(
79572            result.map(|addr| (addr,)),
79573            self.tx_id,
79574            0x1ffecf4bd5b6432e,
79575            fidl::encoding::DynamicFlags::empty(),
79576        )
79577    }
79578}
79579
79580#[must_use = "FIDL methods require a response to be sent"]
79581#[derive(Debug)]
79582pub struct SynchronousDatagramSocketShutdownResponder {
79583    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79584    tx_id: u32,
79585}
79586
79587/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79588/// if the responder is dropped without sending a response, so that the client
79589/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79590impl std::ops::Drop for SynchronousDatagramSocketShutdownResponder {
79591    fn drop(&mut self) {
79592        self.control_handle.shutdown();
79593        // Safety: drops once, never accessed again
79594        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79595    }
79596}
79597
79598impl fidl::endpoints::Responder for SynchronousDatagramSocketShutdownResponder {
79599    type ControlHandle = SynchronousDatagramSocketControlHandle;
79600
79601    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79602        &self.control_handle
79603    }
79604
79605    fn drop_without_shutdown(mut self) {
79606        // Safety: drops once, never accessed again due to mem::forget
79607        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79608        // Prevent Drop from running (which would shut down the channel)
79609        std::mem::forget(self);
79610    }
79611}
79612
79613impl SynchronousDatagramSocketShutdownResponder {
79614    /// Sends a response to the FIDL transaction.
79615    ///
79616    /// Sets the channel to shutdown if an error occurs.
79617    pub fn send(
79618        self,
79619        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79620    ) -> Result<(), fidl::Error> {
79621        let _result = self.send_raw(result);
79622        if _result.is_err() {
79623            self.control_handle.shutdown();
79624        }
79625        self.drop_without_shutdown();
79626        _result
79627    }
79628
79629    /// Similar to "send" but does not shutdown the channel if an error occurs.
79630    pub fn send_no_shutdown_on_err(
79631        self,
79632        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79633    ) -> Result<(), fidl::Error> {
79634        let _result = self.send_raw(result);
79635        self.drop_without_shutdown();
79636        _result
79637    }
79638
79639    fn send_raw(
79640        &self,
79641        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79642    ) -> Result<(), fidl::Error> {
79643        self.control_handle.inner.send::<fidl::encoding::ResultType<
79644            fidl::encoding::EmptyStruct,
79645            fidl_fuchsia_posix::Errno,
79646        >>(
79647            result,
79648            self.tx_id,
79649            0x247f38b6db68c336,
79650            fidl::encoding::DynamicFlags::empty(),
79651        )
79652    }
79653}
79654
79655#[must_use = "FIDL methods require a response to be sent"]
79656#[derive(Debug)]
79657pub struct SynchronousDatagramSocketSetIpTypeOfServiceResponder {
79658    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79659    tx_id: u32,
79660}
79661
79662/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79663/// if the responder is dropped without sending a response, so that the client
79664/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79665impl std::ops::Drop for SynchronousDatagramSocketSetIpTypeOfServiceResponder {
79666    fn drop(&mut self) {
79667        self.control_handle.shutdown();
79668        // Safety: drops once, never accessed again
79669        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79670    }
79671}
79672
79673impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpTypeOfServiceResponder {
79674    type ControlHandle = SynchronousDatagramSocketControlHandle;
79675
79676    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79677        &self.control_handle
79678    }
79679
79680    fn drop_without_shutdown(mut self) {
79681        // Safety: drops once, never accessed again due to mem::forget
79682        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79683        // Prevent Drop from running (which would shut down the channel)
79684        std::mem::forget(self);
79685    }
79686}
79687
79688impl SynchronousDatagramSocketSetIpTypeOfServiceResponder {
79689    /// Sends a response to the FIDL transaction.
79690    ///
79691    /// Sets the channel to shutdown if an error occurs.
79692    pub fn send(
79693        self,
79694        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79695    ) -> Result<(), fidl::Error> {
79696        let _result = self.send_raw(result);
79697        if _result.is_err() {
79698            self.control_handle.shutdown();
79699        }
79700        self.drop_without_shutdown();
79701        _result
79702    }
79703
79704    /// Similar to "send" but does not shutdown the channel if an error occurs.
79705    pub fn send_no_shutdown_on_err(
79706        self,
79707        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79708    ) -> Result<(), fidl::Error> {
79709        let _result = self.send_raw(result);
79710        self.drop_without_shutdown();
79711        _result
79712    }
79713
79714    fn send_raw(
79715        &self,
79716        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79717    ) -> Result<(), fidl::Error> {
79718        self.control_handle.inner.send::<fidl::encoding::ResultType<
79719            fidl::encoding::EmptyStruct,
79720            fidl_fuchsia_posix::Errno,
79721        >>(
79722            result,
79723            self.tx_id,
79724            0x995c600475b6d46,
79725            fidl::encoding::DynamicFlags::empty(),
79726        )
79727    }
79728}
79729
79730#[must_use = "FIDL methods require a response to be sent"]
79731#[derive(Debug)]
79732pub struct SynchronousDatagramSocketGetIpTypeOfServiceResponder {
79733    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79734    tx_id: u32,
79735}
79736
79737/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79738/// if the responder is dropped without sending a response, so that the client
79739/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79740impl std::ops::Drop for SynchronousDatagramSocketGetIpTypeOfServiceResponder {
79741    fn drop(&mut self) {
79742        self.control_handle.shutdown();
79743        // Safety: drops once, never accessed again
79744        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79745    }
79746}
79747
79748impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpTypeOfServiceResponder {
79749    type ControlHandle = SynchronousDatagramSocketControlHandle;
79750
79751    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79752        &self.control_handle
79753    }
79754
79755    fn drop_without_shutdown(mut self) {
79756        // Safety: drops once, never accessed again due to mem::forget
79757        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79758        // Prevent Drop from running (which would shut down the channel)
79759        std::mem::forget(self);
79760    }
79761}
79762
79763impl SynchronousDatagramSocketGetIpTypeOfServiceResponder {
79764    /// Sends a response to the FIDL transaction.
79765    ///
79766    /// Sets the channel to shutdown if an error occurs.
79767    pub fn send(
79768        self,
79769        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79770    ) -> Result<(), fidl::Error> {
79771        let _result = self.send_raw(result);
79772        if _result.is_err() {
79773            self.control_handle.shutdown();
79774        }
79775        self.drop_without_shutdown();
79776        _result
79777    }
79778
79779    /// Similar to "send" but does not shutdown the channel if an error occurs.
79780    pub fn send_no_shutdown_on_err(
79781        self,
79782        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79783    ) -> Result<(), fidl::Error> {
79784        let _result = self.send_raw(result);
79785        self.drop_without_shutdown();
79786        _result
79787    }
79788
79789    fn send_raw(
79790        &self,
79791        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79792    ) -> Result<(), fidl::Error> {
79793        self.control_handle.inner.send::<fidl::encoding::ResultType<
79794            BaseNetworkSocketGetIpTypeOfServiceResponse,
79795            fidl_fuchsia_posix::Errno,
79796        >>(
79797            result.map(|value| (value,)),
79798            self.tx_id,
79799            0x3814a04259f75fcb,
79800            fidl::encoding::DynamicFlags::empty(),
79801        )
79802    }
79803}
79804
79805#[must_use = "FIDL methods require a response to be sent"]
79806#[derive(Debug)]
79807pub struct SynchronousDatagramSocketSetIpTtlResponder {
79808    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79809    tx_id: u32,
79810}
79811
79812/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79813/// if the responder is dropped without sending a response, so that the client
79814/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79815impl std::ops::Drop for SynchronousDatagramSocketSetIpTtlResponder {
79816    fn drop(&mut self) {
79817        self.control_handle.shutdown();
79818        // Safety: drops once, never accessed again
79819        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79820    }
79821}
79822
79823impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpTtlResponder {
79824    type ControlHandle = SynchronousDatagramSocketControlHandle;
79825
79826    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79827        &self.control_handle
79828    }
79829
79830    fn drop_without_shutdown(mut self) {
79831        // Safety: drops once, never accessed again due to mem::forget
79832        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79833        // Prevent Drop from running (which would shut down the channel)
79834        std::mem::forget(self);
79835    }
79836}
79837
79838impl SynchronousDatagramSocketSetIpTtlResponder {
79839    /// Sends a response to the FIDL transaction.
79840    ///
79841    /// Sets the channel to shutdown if an error occurs.
79842    pub fn send(
79843        self,
79844        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79845    ) -> Result<(), fidl::Error> {
79846        let _result = self.send_raw(result);
79847        if _result.is_err() {
79848            self.control_handle.shutdown();
79849        }
79850        self.drop_without_shutdown();
79851        _result
79852    }
79853
79854    /// Similar to "send" but does not shutdown the channel if an error occurs.
79855    pub fn send_no_shutdown_on_err(
79856        self,
79857        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79858    ) -> Result<(), fidl::Error> {
79859        let _result = self.send_raw(result);
79860        self.drop_without_shutdown();
79861        _result
79862    }
79863
79864    fn send_raw(
79865        &self,
79866        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79867    ) -> Result<(), fidl::Error> {
79868        self.control_handle.inner.send::<fidl::encoding::ResultType<
79869            fidl::encoding::EmptyStruct,
79870            fidl_fuchsia_posix::Errno,
79871        >>(
79872            result,
79873            self.tx_id,
79874            0x29e2424b433ae1ef,
79875            fidl::encoding::DynamicFlags::empty(),
79876        )
79877    }
79878}
79879
79880#[must_use = "FIDL methods require a response to be sent"]
79881#[derive(Debug)]
79882pub struct SynchronousDatagramSocketGetIpTtlResponder {
79883    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79884    tx_id: u32,
79885}
79886
79887/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79888/// if the responder is dropped without sending a response, so that the client
79889/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79890impl std::ops::Drop for SynchronousDatagramSocketGetIpTtlResponder {
79891    fn drop(&mut self) {
79892        self.control_handle.shutdown();
79893        // Safety: drops once, never accessed again
79894        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79895    }
79896}
79897
79898impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpTtlResponder {
79899    type ControlHandle = SynchronousDatagramSocketControlHandle;
79900
79901    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79902        &self.control_handle
79903    }
79904
79905    fn drop_without_shutdown(mut self) {
79906        // Safety: drops once, never accessed again due to mem::forget
79907        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79908        // Prevent Drop from running (which would shut down the channel)
79909        std::mem::forget(self);
79910    }
79911}
79912
79913impl SynchronousDatagramSocketGetIpTtlResponder {
79914    /// Sends a response to the FIDL transaction.
79915    ///
79916    /// Sets the channel to shutdown if an error occurs.
79917    pub fn send(
79918        self,
79919        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79920    ) -> Result<(), fidl::Error> {
79921        let _result = self.send_raw(result);
79922        if _result.is_err() {
79923            self.control_handle.shutdown();
79924        }
79925        self.drop_without_shutdown();
79926        _result
79927    }
79928
79929    /// Similar to "send" but does not shutdown the channel if an error occurs.
79930    pub fn send_no_shutdown_on_err(
79931        self,
79932        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79933    ) -> Result<(), fidl::Error> {
79934        let _result = self.send_raw(result);
79935        self.drop_without_shutdown();
79936        _result
79937    }
79938
79939    fn send_raw(
79940        &self,
79941        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79942    ) -> Result<(), fidl::Error> {
79943        self.control_handle.inner.send::<fidl::encoding::ResultType<
79944            BaseNetworkSocketGetIpTtlResponse,
79945            fidl_fuchsia_posix::Errno,
79946        >>(
79947            result.map(|value| (value,)),
79948            self.tx_id,
79949            0x47e47fa1f24da471,
79950            fidl::encoding::DynamicFlags::empty(),
79951        )
79952    }
79953}
79954
79955#[must_use = "FIDL methods require a response to be sent"]
79956#[derive(Debug)]
79957pub struct SynchronousDatagramSocketSetIpPacketInfoResponder {
79958    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79959    tx_id: u32,
79960}
79961
79962/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79963/// if the responder is dropped without sending a response, so that the client
79964/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79965impl std::ops::Drop for SynchronousDatagramSocketSetIpPacketInfoResponder {
79966    fn drop(&mut self) {
79967        self.control_handle.shutdown();
79968        // Safety: drops once, never accessed again
79969        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79970    }
79971}
79972
79973impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpPacketInfoResponder {
79974    type ControlHandle = SynchronousDatagramSocketControlHandle;
79975
79976    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79977        &self.control_handle
79978    }
79979
79980    fn drop_without_shutdown(mut self) {
79981        // Safety: drops once, never accessed again due to mem::forget
79982        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79983        // Prevent Drop from running (which would shut down the channel)
79984        std::mem::forget(self);
79985    }
79986}
79987
79988impl SynchronousDatagramSocketSetIpPacketInfoResponder {
79989    /// Sends a response to the FIDL transaction.
79990    ///
79991    /// Sets the channel to shutdown if an error occurs.
79992    pub fn send(
79993        self,
79994        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79995    ) -> Result<(), fidl::Error> {
79996        let _result = self.send_raw(result);
79997        if _result.is_err() {
79998            self.control_handle.shutdown();
79999        }
80000        self.drop_without_shutdown();
80001        _result
80002    }
80003
80004    /// Similar to "send" but does not shutdown the channel if an error occurs.
80005    pub fn send_no_shutdown_on_err(
80006        self,
80007        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80008    ) -> Result<(), fidl::Error> {
80009        let _result = self.send_raw(result);
80010        self.drop_without_shutdown();
80011        _result
80012    }
80013
80014    fn send_raw(
80015        &self,
80016        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80017    ) -> Result<(), fidl::Error> {
80018        self.control_handle.inner.send::<fidl::encoding::ResultType<
80019            fidl::encoding::EmptyStruct,
80020            fidl_fuchsia_posix::Errno,
80021        >>(
80022            result,
80023            self.tx_id,
80024            0x392d16bee20c0e16,
80025            fidl::encoding::DynamicFlags::empty(),
80026        )
80027    }
80028}
80029
80030#[must_use = "FIDL methods require a response to be sent"]
80031#[derive(Debug)]
80032pub struct SynchronousDatagramSocketGetIpPacketInfoResponder {
80033    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80034    tx_id: u32,
80035}
80036
80037/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80038/// if the responder is dropped without sending a response, so that the client
80039/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80040impl std::ops::Drop for SynchronousDatagramSocketGetIpPacketInfoResponder {
80041    fn drop(&mut self) {
80042        self.control_handle.shutdown();
80043        // Safety: drops once, never accessed again
80044        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80045    }
80046}
80047
80048impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpPacketInfoResponder {
80049    type ControlHandle = SynchronousDatagramSocketControlHandle;
80050
80051    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80052        &self.control_handle
80053    }
80054
80055    fn drop_without_shutdown(mut self) {
80056        // Safety: drops once, never accessed again due to mem::forget
80057        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80058        // Prevent Drop from running (which would shut down the channel)
80059        std::mem::forget(self);
80060    }
80061}
80062
80063impl SynchronousDatagramSocketGetIpPacketInfoResponder {
80064    /// Sends a response to the FIDL transaction.
80065    ///
80066    /// Sets the channel to shutdown if an error occurs.
80067    pub fn send(
80068        self,
80069        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80070    ) -> Result<(), fidl::Error> {
80071        let _result = self.send_raw(result);
80072        if _result.is_err() {
80073            self.control_handle.shutdown();
80074        }
80075        self.drop_without_shutdown();
80076        _result
80077    }
80078
80079    /// Similar to "send" but does not shutdown the channel if an error occurs.
80080    pub fn send_no_shutdown_on_err(
80081        self,
80082        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80083    ) -> Result<(), fidl::Error> {
80084        let _result = self.send_raw(result);
80085        self.drop_without_shutdown();
80086        _result
80087    }
80088
80089    fn send_raw(
80090        &self,
80091        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80092    ) -> Result<(), fidl::Error> {
80093        self.control_handle.inner.send::<fidl::encoding::ResultType<
80094            BaseNetworkSocketGetIpPacketInfoResponse,
80095            fidl_fuchsia_posix::Errno,
80096        >>(
80097            result.map(|value| (value,)),
80098            self.tx_id,
80099            0x54b505f242280740,
80100            fidl::encoding::DynamicFlags::empty(),
80101        )
80102    }
80103}
80104
80105#[must_use = "FIDL methods require a response to be sent"]
80106#[derive(Debug)]
80107pub struct SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
80108    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80109    tx_id: u32,
80110}
80111
80112/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80113/// if the responder is dropped without sending a response, so that the client
80114/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80115impl std::ops::Drop for SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
80116    fn drop(&mut self) {
80117        self.control_handle.shutdown();
80118        // Safety: drops once, never accessed again
80119        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80120    }
80121}
80122
80123impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
80124    type ControlHandle = SynchronousDatagramSocketControlHandle;
80125
80126    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80127        &self.control_handle
80128    }
80129
80130    fn drop_without_shutdown(mut self) {
80131        // Safety: drops once, never accessed again due to mem::forget
80132        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80133        // Prevent Drop from running (which would shut down the channel)
80134        std::mem::forget(self);
80135    }
80136}
80137
80138impl SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
80139    /// Sends a response to the FIDL transaction.
80140    ///
80141    /// Sets the channel to shutdown if an error occurs.
80142    pub fn send(
80143        self,
80144        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80145    ) -> Result<(), fidl::Error> {
80146        let _result = self.send_raw(result);
80147        if _result.is_err() {
80148            self.control_handle.shutdown();
80149        }
80150        self.drop_without_shutdown();
80151        _result
80152    }
80153
80154    /// Similar to "send" but does not shutdown the channel if an error occurs.
80155    pub fn send_no_shutdown_on_err(
80156        self,
80157        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80158    ) -> Result<(), fidl::Error> {
80159        let _result = self.send_raw(result);
80160        self.drop_without_shutdown();
80161        _result
80162    }
80163
80164    fn send_raw(
80165        &self,
80166        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80167    ) -> Result<(), fidl::Error> {
80168        self.control_handle.inner.send::<fidl::encoding::ResultType<
80169            fidl::encoding::EmptyStruct,
80170            fidl_fuchsia_posix::Errno,
80171        >>(
80172            result,
80173            self.tx_id,
80174            0x6c4f6714995f84ef,
80175            fidl::encoding::DynamicFlags::empty(),
80176        )
80177    }
80178}
80179
80180#[must_use = "FIDL methods require a response to be sent"]
80181#[derive(Debug)]
80182pub struct SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
80183    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80184    tx_id: u32,
80185}
80186
80187/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80188/// if the responder is dropped without sending a response, so that the client
80189/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80190impl std::ops::Drop for SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
80191    fn drop(&mut self) {
80192        self.control_handle.shutdown();
80193        // Safety: drops once, never accessed again
80194        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80195    }
80196}
80197
80198impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
80199    type ControlHandle = SynchronousDatagramSocketControlHandle;
80200
80201    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80202        &self.control_handle
80203    }
80204
80205    fn drop_without_shutdown(mut self) {
80206        // Safety: drops once, never accessed again due to mem::forget
80207        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80208        // Prevent Drop from running (which would shut down the channel)
80209        std::mem::forget(self);
80210    }
80211}
80212
80213impl SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
80214    /// Sends a response to the FIDL transaction.
80215    ///
80216    /// Sets the channel to shutdown if an error occurs.
80217    pub fn send(
80218        self,
80219        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80220    ) -> Result<(), fidl::Error> {
80221        let _result = self.send_raw(result);
80222        if _result.is_err() {
80223            self.control_handle.shutdown();
80224        }
80225        self.drop_without_shutdown();
80226        _result
80227    }
80228
80229    /// Similar to "send" but does not shutdown the channel if an error occurs.
80230    pub fn send_no_shutdown_on_err(
80231        self,
80232        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80233    ) -> Result<(), fidl::Error> {
80234        let _result = self.send_raw(result);
80235        self.drop_without_shutdown();
80236        _result
80237    }
80238
80239    fn send_raw(
80240        &self,
80241        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80242    ) -> Result<(), fidl::Error> {
80243        self.control_handle.inner.send::<fidl::encoding::ResultType<
80244            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
80245            fidl_fuchsia_posix::Errno,
80246        >>(
80247            result.map(|value| (value,)),
80248            self.tx_id,
80249            0x4158ba7dc2795960,
80250            fidl::encoding::DynamicFlags::empty(),
80251        )
80252    }
80253}
80254
80255#[must_use = "FIDL methods require a response to be sent"]
80256#[derive(Debug)]
80257pub struct SynchronousDatagramSocketSetIpReceiveTtlResponder {
80258    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80259    tx_id: u32,
80260}
80261
80262/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80263/// if the responder is dropped without sending a response, so that the client
80264/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80265impl std::ops::Drop for SynchronousDatagramSocketSetIpReceiveTtlResponder {
80266    fn drop(&mut self) {
80267        self.control_handle.shutdown();
80268        // Safety: drops once, never accessed again
80269        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80270    }
80271}
80272
80273impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpReceiveTtlResponder {
80274    type ControlHandle = SynchronousDatagramSocketControlHandle;
80275
80276    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80277        &self.control_handle
80278    }
80279
80280    fn drop_without_shutdown(mut self) {
80281        // Safety: drops once, never accessed again due to mem::forget
80282        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80283        // Prevent Drop from running (which would shut down the channel)
80284        std::mem::forget(self);
80285    }
80286}
80287
80288impl SynchronousDatagramSocketSetIpReceiveTtlResponder {
80289    /// Sends a response to the FIDL transaction.
80290    ///
80291    /// Sets the channel to shutdown if an error occurs.
80292    pub fn send(
80293        self,
80294        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80295    ) -> Result<(), fidl::Error> {
80296        let _result = self.send_raw(result);
80297        if _result.is_err() {
80298            self.control_handle.shutdown();
80299        }
80300        self.drop_without_shutdown();
80301        _result
80302    }
80303
80304    /// Similar to "send" but does not shutdown the channel if an error occurs.
80305    pub fn send_no_shutdown_on_err(
80306        self,
80307        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80308    ) -> Result<(), fidl::Error> {
80309        let _result = self.send_raw(result);
80310        self.drop_without_shutdown();
80311        _result
80312    }
80313
80314    fn send_raw(
80315        &self,
80316        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80317    ) -> Result<(), fidl::Error> {
80318        self.control_handle.inner.send::<fidl::encoding::ResultType<
80319            fidl::encoding::EmptyStruct,
80320            fidl_fuchsia_posix::Errno,
80321        >>(
80322            result,
80323            self.tx_id,
80324            0x46f15be0ce0ab82b,
80325            fidl::encoding::DynamicFlags::empty(),
80326        )
80327    }
80328}
80329
80330#[must_use = "FIDL methods require a response to be sent"]
80331#[derive(Debug)]
80332pub struct SynchronousDatagramSocketGetIpReceiveTtlResponder {
80333    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80334    tx_id: u32,
80335}
80336
80337/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80338/// if the responder is dropped without sending a response, so that the client
80339/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80340impl std::ops::Drop for SynchronousDatagramSocketGetIpReceiveTtlResponder {
80341    fn drop(&mut self) {
80342        self.control_handle.shutdown();
80343        // Safety: drops once, never accessed again
80344        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80345    }
80346}
80347
80348impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpReceiveTtlResponder {
80349    type ControlHandle = SynchronousDatagramSocketControlHandle;
80350
80351    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80352        &self.control_handle
80353    }
80354
80355    fn drop_without_shutdown(mut self) {
80356        // Safety: drops once, never accessed again due to mem::forget
80357        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80358        // Prevent Drop from running (which would shut down the channel)
80359        std::mem::forget(self);
80360    }
80361}
80362
80363impl SynchronousDatagramSocketGetIpReceiveTtlResponder {
80364    /// Sends a response to the FIDL transaction.
80365    ///
80366    /// Sets the channel to shutdown if an error occurs.
80367    pub fn send(
80368        self,
80369        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80370    ) -> Result<(), fidl::Error> {
80371        let _result = self.send_raw(result);
80372        if _result.is_err() {
80373            self.control_handle.shutdown();
80374        }
80375        self.drop_without_shutdown();
80376        _result
80377    }
80378
80379    /// Similar to "send" but does not shutdown the channel if an error occurs.
80380    pub fn send_no_shutdown_on_err(
80381        self,
80382        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80383    ) -> Result<(), fidl::Error> {
80384        let _result = self.send_raw(result);
80385        self.drop_without_shutdown();
80386        _result
80387    }
80388
80389    fn send_raw(
80390        &self,
80391        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80392    ) -> Result<(), fidl::Error> {
80393        self.control_handle.inner.send::<fidl::encoding::ResultType<
80394            BaseNetworkSocketGetIpReceiveTtlResponse,
80395            fidl_fuchsia_posix::Errno,
80396        >>(
80397            result.map(|value| (value,)),
80398            self.tx_id,
80399            0x678ddd5a5dfa2eb5,
80400            fidl::encoding::DynamicFlags::empty(),
80401        )
80402    }
80403}
80404
80405#[must_use = "FIDL methods require a response to be sent"]
80406#[derive(Debug)]
80407pub struct SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
80408    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80409    tx_id: u32,
80410}
80411
80412/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80413/// if the responder is dropped without sending a response, so that the client
80414/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80415impl std::ops::Drop for SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
80416    fn drop(&mut self) {
80417        self.control_handle.shutdown();
80418        // Safety: drops once, never accessed again
80419        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80420    }
80421}
80422
80423impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
80424    type ControlHandle = SynchronousDatagramSocketControlHandle;
80425
80426    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80427        &self.control_handle
80428    }
80429
80430    fn drop_without_shutdown(mut self) {
80431        // Safety: drops once, never accessed again due to mem::forget
80432        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80433        // Prevent Drop from running (which would shut down the channel)
80434        std::mem::forget(self);
80435    }
80436}
80437
80438impl SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
80439    /// Sends a response to the FIDL transaction.
80440    ///
80441    /// Sets the channel to shutdown if an error occurs.
80442    pub fn send(
80443        self,
80444        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80445    ) -> Result<(), fidl::Error> {
80446        let _result = self.send_raw(result);
80447        if _result.is_err() {
80448            self.control_handle.shutdown();
80449        }
80450        self.drop_without_shutdown();
80451        _result
80452    }
80453
80454    /// Similar to "send" but does not shutdown the channel if an error occurs.
80455    pub fn send_no_shutdown_on_err(
80456        self,
80457        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80458    ) -> Result<(), fidl::Error> {
80459        let _result = self.send_raw(result);
80460        self.drop_without_shutdown();
80461        _result
80462    }
80463
80464    fn send_raw(
80465        &self,
80466        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80467    ) -> Result<(), fidl::Error> {
80468        self.control_handle.inner.send::<fidl::encoding::ResultType<
80469            fidl::encoding::EmptyStruct,
80470            fidl_fuchsia_posix::Errno,
80471        >>(
80472            result,
80473            self.tx_id,
80474            0x752fbfa9b12befe,
80475            fidl::encoding::DynamicFlags::empty(),
80476        )
80477    }
80478}
80479
80480#[must_use = "FIDL methods require a response to be sent"]
80481#[derive(Debug)]
80482pub struct SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
80483    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80484    tx_id: u32,
80485}
80486
80487/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80488/// if the responder is dropped without sending a response, so that the client
80489/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80490impl std::ops::Drop for SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
80491    fn drop(&mut self) {
80492        self.control_handle.shutdown();
80493        // Safety: drops once, never accessed again
80494        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80495    }
80496}
80497
80498impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
80499    type ControlHandle = SynchronousDatagramSocketControlHandle;
80500
80501    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80502        &self.control_handle
80503    }
80504
80505    fn drop_without_shutdown(mut self) {
80506        // Safety: drops once, never accessed again due to mem::forget
80507        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80508        // Prevent Drop from running (which would shut down the channel)
80509        std::mem::forget(self);
80510    }
80511}
80512
80513impl SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
80514    /// Sends a response to the FIDL transaction.
80515    ///
80516    /// Sets the channel to shutdown if an error occurs.
80517    pub fn send(
80518        self,
80519        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
80520    ) -> Result<(), fidl::Error> {
80521        let _result = self.send_raw(result);
80522        if _result.is_err() {
80523            self.control_handle.shutdown();
80524        }
80525        self.drop_without_shutdown();
80526        _result
80527    }
80528
80529    /// Similar to "send" but does not shutdown the channel if an error occurs.
80530    pub fn send_no_shutdown_on_err(
80531        self,
80532        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
80533    ) -> Result<(), fidl::Error> {
80534        let _result = self.send_raw(result);
80535        self.drop_without_shutdown();
80536        _result
80537    }
80538
80539    fn send_raw(
80540        &self,
80541        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
80542    ) -> Result<(), fidl::Error> {
80543        self.control_handle.inner.send::<fidl::encoding::ResultType<
80544            BaseNetworkSocketGetIpMulticastInterfaceResponse,
80545            fidl_fuchsia_posix::Errno,
80546        >>(
80547            result.map(|value| (value,)),
80548            self.tx_id,
80549            0x320bd14c4df046c4,
80550            fidl::encoding::DynamicFlags::empty(),
80551        )
80552    }
80553}
80554
80555#[must_use = "FIDL methods require a response to be sent"]
80556#[derive(Debug)]
80557pub struct SynchronousDatagramSocketSetIpMulticastTtlResponder {
80558    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80559    tx_id: u32,
80560}
80561
80562/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80563/// if the responder is dropped without sending a response, so that the client
80564/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80565impl std::ops::Drop for SynchronousDatagramSocketSetIpMulticastTtlResponder {
80566    fn drop(&mut self) {
80567        self.control_handle.shutdown();
80568        // Safety: drops once, never accessed again
80569        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80570    }
80571}
80572
80573impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpMulticastTtlResponder {
80574    type ControlHandle = SynchronousDatagramSocketControlHandle;
80575
80576    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80577        &self.control_handle
80578    }
80579
80580    fn drop_without_shutdown(mut self) {
80581        // Safety: drops once, never accessed again due to mem::forget
80582        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80583        // Prevent Drop from running (which would shut down the channel)
80584        std::mem::forget(self);
80585    }
80586}
80587
80588impl SynchronousDatagramSocketSetIpMulticastTtlResponder {
80589    /// Sends a response to the FIDL transaction.
80590    ///
80591    /// Sets the channel to shutdown if an error occurs.
80592    pub fn send(
80593        self,
80594        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80595    ) -> Result<(), fidl::Error> {
80596        let _result = self.send_raw(result);
80597        if _result.is_err() {
80598            self.control_handle.shutdown();
80599        }
80600        self.drop_without_shutdown();
80601        _result
80602    }
80603
80604    /// Similar to "send" but does not shutdown the channel if an error occurs.
80605    pub fn send_no_shutdown_on_err(
80606        self,
80607        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80608    ) -> Result<(), fidl::Error> {
80609        let _result = self.send_raw(result);
80610        self.drop_without_shutdown();
80611        _result
80612    }
80613
80614    fn send_raw(
80615        &self,
80616        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80617    ) -> Result<(), fidl::Error> {
80618        self.control_handle.inner.send::<fidl::encoding::ResultType<
80619            fidl::encoding::EmptyStruct,
80620            fidl_fuchsia_posix::Errno,
80621        >>(
80622            result,
80623            self.tx_id,
80624            0x63134d53772916a1,
80625            fidl::encoding::DynamicFlags::empty(),
80626        )
80627    }
80628}
80629
80630#[must_use = "FIDL methods require a response to be sent"]
80631#[derive(Debug)]
80632pub struct SynchronousDatagramSocketGetIpMulticastTtlResponder {
80633    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80634    tx_id: u32,
80635}
80636
80637/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80638/// if the responder is dropped without sending a response, so that the client
80639/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80640impl std::ops::Drop for SynchronousDatagramSocketGetIpMulticastTtlResponder {
80641    fn drop(&mut self) {
80642        self.control_handle.shutdown();
80643        // Safety: drops once, never accessed again
80644        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80645    }
80646}
80647
80648impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpMulticastTtlResponder {
80649    type ControlHandle = SynchronousDatagramSocketControlHandle;
80650
80651    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80652        &self.control_handle
80653    }
80654
80655    fn drop_without_shutdown(mut self) {
80656        // Safety: drops once, never accessed again due to mem::forget
80657        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80658        // Prevent Drop from running (which would shut down the channel)
80659        std::mem::forget(self);
80660    }
80661}
80662
80663impl SynchronousDatagramSocketGetIpMulticastTtlResponder {
80664    /// Sends a response to the FIDL transaction.
80665    ///
80666    /// Sets the channel to shutdown if an error occurs.
80667    pub fn send(
80668        self,
80669        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
80670    ) -> Result<(), fidl::Error> {
80671        let _result = self.send_raw(result);
80672        if _result.is_err() {
80673            self.control_handle.shutdown();
80674        }
80675        self.drop_without_shutdown();
80676        _result
80677    }
80678
80679    /// Similar to "send" but does not shutdown the channel if an error occurs.
80680    pub fn send_no_shutdown_on_err(
80681        self,
80682        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
80683    ) -> Result<(), fidl::Error> {
80684        let _result = self.send_raw(result);
80685        self.drop_without_shutdown();
80686        _result
80687    }
80688
80689    fn send_raw(
80690        &self,
80691        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
80692    ) -> Result<(), fidl::Error> {
80693        self.control_handle.inner.send::<fidl::encoding::ResultType<
80694            BaseNetworkSocketGetIpMulticastTtlResponse,
80695            fidl_fuchsia_posix::Errno,
80696        >>(
80697            result.map(|value| (value,)),
80698            self.tx_id,
80699            0x4665cd378f39e1a,
80700            fidl::encoding::DynamicFlags::empty(),
80701        )
80702    }
80703}
80704
80705#[must_use = "FIDL methods require a response to be sent"]
80706#[derive(Debug)]
80707pub struct SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
80708    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80709    tx_id: u32,
80710}
80711
80712/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80713/// if the responder is dropped without sending a response, so that the client
80714/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80715impl std::ops::Drop for SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
80716    fn drop(&mut self) {
80717        self.control_handle.shutdown();
80718        // Safety: drops once, never accessed again
80719        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80720    }
80721}
80722
80723impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
80724    type ControlHandle = SynchronousDatagramSocketControlHandle;
80725
80726    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80727        &self.control_handle
80728    }
80729
80730    fn drop_without_shutdown(mut self) {
80731        // Safety: drops once, never accessed again due to mem::forget
80732        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80733        // Prevent Drop from running (which would shut down the channel)
80734        std::mem::forget(self);
80735    }
80736}
80737
80738impl SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
80739    /// Sends a response to the FIDL transaction.
80740    ///
80741    /// Sets the channel to shutdown if an error occurs.
80742    pub fn send(
80743        self,
80744        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80745    ) -> Result<(), fidl::Error> {
80746        let _result = self.send_raw(result);
80747        if _result.is_err() {
80748            self.control_handle.shutdown();
80749        }
80750        self.drop_without_shutdown();
80751        _result
80752    }
80753
80754    /// Similar to "send" but does not shutdown the channel if an error occurs.
80755    pub fn send_no_shutdown_on_err(
80756        self,
80757        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80758    ) -> Result<(), fidl::Error> {
80759        let _result = self.send_raw(result);
80760        self.drop_without_shutdown();
80761        _result
80762    }
80763
80764    fn send_raw(
80765        &self,
80766        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80767    ) -> Result<(), fidl::Error> {
80768        self.control_handle.inner.send::<fidl::encoding::ResultType<
80769            fidl::encoding::EmptyStruct,
80770            fidl_fuchsia_posix::Errno,
80771        >>(
80772            result,
80773            self.tx_id,
80774            0x20c55c11f00943ea,
80775            fidl::encoding::DynamicFlags::empty(),
80776        )
80777    }
80778}
80779
80780#[must_use = "FIDL methods require a response to be sent"]
80781#[derive(Debug)]
80782pub struct SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
80783    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80784    tx_id: u32,
80785}
80786
80787/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80788/// if the responder is dropped without sending a response, so that the client
80789/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80790impl std::ops::Drop for SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
80791    fn drop(&mut self) {
80792        self.control_handle.shutdown();
80793        // Safety: drops once, never accessed again
80794        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80795    }
80796}
80797
80798impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
80799    type ControlHandle = SynchronousDatagramSocketControlHandle;
80800
80801    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80802        &self.control_handle
80803    }
80804
80805    fn drop_without_shutdown(mut self) {
80806        // Safety: drops once, never accessed again due to mem::forget
80807        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80808        // Prevent Drop from running (which would shut down the channel)
80809        std::mem::forget(self);
80810    }
80811}
80812
80813impl SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
80814    /// Sends a response to the FIDL transaction.
80815    ///
80816    /// Sets the channel to shutdown if an error occurs.
80817    pub fn send(
80818        self,
80819        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80820    ) -> Result<(), fidl::Error> {
80821        let _result = self.send_raw(result);
80822        if _result.is_err() {
80823            self.control_handle.shutdown();
80824        }
80825        self.drop_without_shutdown();
80826        _result
80827    }
80828
80829    /// Similar to "send" but does not shutdown the channel if an error occurs.
80830    pub fn send_no_shutdown_on_err(
80831        self,
80832        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80833    ) -> Result<(), fidl::Error> {
80834        let _result = self.send_raw(result);
80835        self.drop_without_shutdown();
80836        _result
80837    }
80838
80839    fn send_raw(
80840        &self,
80841        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80842    ) -> Result<(), fidl::Error> {
80843        self.control_handle.inner.send::<fidl::encoding::ResultType<
80844            BaseNetworkSocketGetIpMulticastLoopbackResponse,
80845            fidl_fuchsia_posix::Errno,
80846        >>(
80847            result.map(|value| (value,)),
80848            self.tx_id,
80849            0x3b6b26ff558298f2,
80850            fidl::encoding::DynamicFlags::empty(),
80851        )
80852    }
80853}
80854
80855#[must_use = "FIDL methods require a response to be sent"]
80856#[derive(Debug)]
80857pub struct SynchronousDatagramSocketAddIpMembershipResponder {
80858    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80859    tx_id: u32,
80860}
80861
80862/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80863/// if the responder is dropped without sending a response, so that the client
80864/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80865impl std::ops::Drop for SynchronousDatagramSocketAddIpMembershipResponder {
80866    fn drop(&mut self) {
80867        self.control_handle.shutdown();
80868        // Safety: drops once, never accessed again
80869        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80870    }
80871}
80872
80873impl fidl::endpoints::Responder for SynchronousDatagramSocketAddIpMembershipResponder {
80874    type ControlHandle = SynchronousDatagramSocketControlHandle;
80875
80876    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80877        &self.control_handle
80878    }
80879
80880    fn drop_without_shutdown(mut self) {
80881        // Safety: drops once, never accessed again due to mem::forget
80882        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80883        // Prevent Drop from running (which would shut down the channel)
80884        std::mem::forget(self);
80885    }
80886}
80887
80888impl SynchronousDatagramSocketAddIpMembershipResponder {
80889    /// Sends a response to the FIDL transaction.
80890    ///
80891    /// Sets the channel to shutdown if an error occurs.
80892    pub fn send(
80893        self,
80894        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80895    ) -> Result<(), fidl::Error> {
80896        let _result = self.send_raw(result);
80897        if _result.is_err() {
80898            self.control_handle.shutdown();
80899        }
80900        self.drop_without_shutdown();
80901        _result
80902    }
80903
80904    /// Similar to "send" but does not shutdown the channel if an error occurs.
80905    pub fn send_no_shutdown_on_err(
80906        self,
80907        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80908    ) -> Result<(), fidl::Error> {
80909        let _result = self.send_raw(result);
80910        self.drop_without_shutdown();
80911        _result
80912    }
80913
80914    fn send_raw(
80915        &self,
80916        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80917    ) -> Result<(), fidl::Error> {
80918        self.control_handle.inner.send::<fidl::encoding::ResultType<
80919            fidl::encoding::EmptyStruct,
80920            fidl_fuchsia_posix::Errno,
80921        >>(
80922            result,
80923            self.tx_id,
80924            0x76bc7df115a3b4d0,
80925            fidl::encoding::DynamicFlags::empty(),
80926        )
80927    }
80928}
80929
80930#[must_use = "FIDL methods require a response to be sent"]
80931#[derive(Debug)]
80932pub struct SynchronousDatagramSocketDropIpMembershipResponder {
80933    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80934    tx_id: u32,
80935}
80936
80937/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80938/// if the responder is dropped without sending a response, so that the client
80939/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80940impl std::ops::Drop for SynchronousDatagramSocketDropIpMembershipResponder {
80941    fn drop(&mut self) {
80942        self.control_handle.shutdown();
80943        // Safety: drops once, never accessed again
80944        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80945    }
80946}
80947
80948impl fidl::endpoints::Responder for SynchronousDatagramSocketDropIpMembershipResponder {
80949    type ControlHandle = SynchronousDatagramSocketControlHandle;
80950
80951    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80952        &self.control_handle
80953    }
80954
80955    fn drop_without_shutdown(mut self) {
80956        // Safety: drops once, never accessed again due to mem::forget
80957        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80958        // Prevent Drop from running (which would shut down the channel)
80959        std::mem::forget(self);
80960    }
80961}
80962
80963impl SynchronousDatagramSocketDropIpMembershipResponder {
80964    /// Sends a response to the FIDL transaction.
80965    ///
80966    /// Sets the channel to shutdown if an error occurs.
80967    pub fn send(
80968        self,
80969        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80970    ) -> Result<(), fidl::Error> {
80971        let _result = self.send_raw(result);
80972        if _result.is_err() {
80973            self.control_handle.shutdown();
80974        }
80975        self.drop_without_shutdown();
80976        _result
80977    }
80978
80979    /// Similar to "send" but does not shutdown the channel if an error occurs.
80980    pub fn send_no_shutdown_on_err(
80981        self,
80982        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80983    ) -> Result<(), fidl::Error> {
80984        let _result = self.send_raw(result);
80985        self.drop_without_shutdown();
80986        _result
80987    }
80988
80989    fn send_raw(
80990        &self,
80991        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80992    ) -> Result<(), fidl::Error> {
80993        self.control_handle.inner.send::<fidl::encoding::ResultType<
80994            fidl::encoding::EmptyStruct,
80995            fidl_fuchsia_posix::Errno,
80996        >>(
80997            result,
80998            self.tx_id,
80999            0x2888f3099188d03,
81000            fidl::encoding::DynamicFlags::empty(),
81001        )
81002    }
81003}
81004
81005#[must_use = "FIDL methods require a response to be sent"]
81006#[derive(Debug)]
81007pub struct SynchronousDatagramSocketSetIpTransparentResponder {
81008    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81009    tx_id: u32,
81010}
81011
81012/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81013/// if the responder is dropped without sending a response, so that the client
81014/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81015impl std::ops::Drop for SynchronousDatagramSocketSetIpTransparentResponder {
81016    fn drop(&mut self) {
81017        self.control_handle.shutdown();
81018        // Safety: drops once, never accessed again
81019        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81020    }
81021}
81022
81023impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpTransparentResponder {
81024    type ControlHandle = SynchronousDatagramSocketControlHandle;
81025
81026    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81027        &self.control_handle
81028    }
81029
81030    fn drop_without_shutdown(mut self) {
81031        // Safety: drops once, never accessed again due to mem::forget
81032        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81033        // Prevent Drop from running (which would shut down the channel)
81034        std::mem::forget(self);
81035    }
81036}
81037
81038impl SynchronousDatagramSocketSetIpTransparentResponder {
81039    /// Sends a response to the FIDL transaction.
81040    ///
81041    /// Sets the channel to shutdown if an error occurs.
81042    pub fn send(
81043        self,
81044        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81045    ) -> Result<(), fidl::Error> {
81046        let _result = self.send_raw(result);
81047        if _result.is_err() {
81048            self.control_handle.shutdown();
81049        }
81050        self.drop_without_shutdown();
81051        _result
81052    }
81053
81054    /// Similar to "send" but does not shutdown the channel if an error occurs.
81055    pub fn send_no_shutdown_on_err(
81056        self,
81057        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81058    ) -> Result<(), fidl::Error> {
81059        let _result = self.send_raw(result);
81060        self.drop_without_shutdown();
81061        _result
81062    }
81063
81064    fn send_raw(
81065        &self,
81066        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81067    ) -> Result<(), fidl::Error> {
81068        self.control_handle.inner.send::<fidl::encoding::ResultType<
81069            fidl::encoding::EmptyStruct,
81070            fidl_fuchsia_posix::Errno,
81071        >>(
81072            result,
81073            self.tx_id,
81074            0x1ae532b0c066e3a0,
81075            fidl::encoding::DynamicFlags::empty(),
81076        )
81077    }
81078}
81079
81080#[must_use = "FIDL methods require a response to be sent"]
81081#[derive(Debug)]
81082pub struct SynchronousDatagramSocketGetIpTransparentResponder {
81083    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81084    tx_id: u32,
81085}
81086
81087/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81088/// if the responder is dropped without sending a response, so that the client
81089/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81090impl std::ops::Drop for SynchronousDatagramSocketGetIpTransparentResponder {
81091    fn drop(&mut self) {
81092        self.control_handle.shutdown();
81093        // Safety: drops once, never accessed again
81094        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81095    }
81096}
81097
81098impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpTransparentResponder {
81099    type ControlHandle = SynchronousDatagramSocketControlHandle;
81100
81101    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81102        &self.control_handle
81103    }
81104
81105    fn drop_without_shutdown(mut self) {
81106        // Safety: drops once, never accessed again due to mem::forget
81107        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81108        // Prevent Drop from running (which would shut down the channel)
81109        std::mem::forget(self);
81110    }
81111}
81112
81113impl SynchronousDatagramSocketGetIpTransparentResponder {
81114    /// Sends a response to the FIDL transaction.
81115    ///
81116    /// Sets the channel to shutdown if an error occurs.
81117    pub fn send(
81118        self,
81119        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81120    ) -> Result<(), fidl::Error> {
81121        let _result = self.send_raw(result);
81122        if _result.is_err() {
81123            self.control_handle.shutdown();
81124        }
81125        self.drop_without_shutdown();
81126        _result
81127    }
81128
81129    /// Similar to "send" but does not shutdown the channel if an error occurs.
81130    pub fn send_no_shutdown_on_err(
81131        self,
81132        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81133    ) -> Result<(), fidl::Error> {
81134        let _result = self.send_raw(result);
81135        self.drop_without_shutdown();
81136        _result
81137    }
81138
81139    fn send_raw(
81140        &self,
81141        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81142    ) -> Result<(), fidl::Error> {
81143        self.control_handle.inner.send::<fidl::encoding::ResultType<
81144            BaseNetworkSocketGetIpTransparentResponse,
81145            fidl_fuchsia_posix::Errno,
81146        >>(
81147            result.map(|value| (value,)),
81148            self.tx_id,
81149            0x51d43695962ebfb5,
81150            fidl::encoding::DynamicFlags::empty(),
81151        )
81152    }
81153}
81154
81155#[must_use = "FIDL methods require a response to be sent"]
81156#[derive(Debug)]
81157pub struct SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
81158    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81159    tx_id: u32,
81160}
81161
81162/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81163/// if the responder is dropped without sending a response, so that the client
81164/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81165impl std::ops::Drop for SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
81166    fn drop(&mut self) {
81167        self.control_handle.shutdown();
81168        // Safety: drops once, never accessed again
81169        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81170    }
81171}
81172
81173impl fidl::endpoints::Responder
81174    for SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder
81175{
81176    type ControlHandle = SynchronousDatagramSocketControlHandle;
81177
81178    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81179        &self.control_handle
81180    }
81181
81182    fn drop_without_shutdown(mut self) {
81183        // Safety: drops once, never accessed again due to mem::forget
81184        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81185        // Prevent Drop from running (which would shut down the channel)
81186        std::mem::forget(self);
81187    }
81188}
81189
81190impl SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
81191    /// Sends a response to the FIDL transaction.
81192    ///
81193    /// Sets the channel to shutdown if an error occurs.
81194    pub fn send(
81195        self,
81196        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81197    ) -> Result<(), fidl::Error> {
81198        let _result = self.send_raw(result);
81199        if _result.is_err() {
81200            self.control_handle.shutdown();
81201        }
81202        self.drop_without_shutdown();
81203        _result
81204    }
81205
81206    /// Similar to "send" but does not shutdown the channel if an error occurs.
81207    pub fn send_no_shutdown_on_err(
81208        self,
81209        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81210    ) -> Result<(), fidl::Error> {
81211        let _result = self.send_raw(result);
81212        self.drop_without_shutdown();
81213        _result
81214    }
81215
81216    fn send_raw(
81217        &self,
81218        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81219    ) -> Result<(), fidl::Error> {
81220        self.control_handle.inner.send::<fidl::encoding::ResultType<
81221            fidl::encoding::EmptyStruct,
81222            fidl_fuchsia_posix::Errno,
81223        >>(
81224            result,
81225            self.tx_id,
81226            0x4722b4ce52f7840,
81227            fidl::encoding::DynamicFlags::empty(),
81228        )
81229    }
81230}
81231
81232#[must_use = "FIDL methods require a response to be sent"]
81233#[derive(Debug)]
81234pub struct SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
81235    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81236    tx_id: u32,
81237}
81238
81239/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81240/// if the responder is dropped without sending a response, so that the client
81241/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81242impl std::ops::Drop for SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
81243    fn drop(&mut self) {
81244        self.control_handle.shutdown();
81245        // Safety: drops once, never accessed again
81246        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81247    }
81248}
81249
81250impl fidl::endpoints::Responder
81251    for SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder
81252{
81253    type ControlHandle = SynchronousDatagramSocketControlHandle;
81254
81255    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81256        &self.control_handle
81257    }
81258
81259    fn drop_without_shutdown(mut self) {
81260        // Safety: drops once, never accessed again due to mem::forget
81261        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81262        // Prevent Drop from running (which would shut down the channel)
81263        std::mem::forget(self);
81264    }
81265}
81266
81267impl SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
81268    /// Sends a response to the FIDL transaction.
81269    ///
81270    /// Sets the channel to shutdown if an error occurs.
81271    pub fn send(
81272        self,
81273        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81274    ) -> Result<(), fidl::Error> {
81275        let _result = self.send_raw(result);
81276        if _result.is_err() {
81277            self.control_handle.shutdown();
81278        }
81279        self.drop_without_shutdown();
81280        _result
81281    }
81282
81283    /// Similar to "send" but does not shutdown the channel if an error occurs.
81284    pub fn send_no_shutdown_on_err(
81285        self,
81286        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81287    ) -> Result<(), fidl::Error> {
81288        let _result = self.send_raw(result);
81289        self.drop_without_shutdown();
81290        _result
81291    }
81292
81293    fn send_raw(
81294        &self,
81295        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81296    ) -> Result<(), fidl::Error> {
81297        self.control_handle.inner.send::<fidl::encoding::ResultType<
81298            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
81299            fidl_fuchsia_posix::Errno,
81300        >>(
81301            result.map(|value| (value,)),
81302            self.tx_id,
81303            0x2a0e7dc5d6bfdfe9,
81304            fidl::encoding::DynamicFlags::empty(),
81305        )
81306    }
81307}
81308
81309#[must_use = "FIDL methods require a response to be sent"]
81310#[derive(Debug)]
81311pub struct SynchronousDatagramSocketAddIpv6MembershipResponder {
81312    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81313    tx_id: u32,
81314}
81315
81316/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81317/// if the responder is dropped without sending a response, so that the client
81318/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81319impl std::ops::Drop for SynchronousDatagramSocketAddIpv6MembershipResponder {
81320    fn drop(&mut self) {
81321        self.control_handle.shutdown();
81322        // Safety: drops once, never accessed again
81323        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81324    }
81325}
81326
81327impl fidl::endpoints::Responder for SynchronousDatagramSocketAddIpv6MembershipResponder {
81328    type ControlHandle = SynchronousDatagramSocketControlHandle;
81329
81330    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81331        &self.control_handle
81332    }
81333
81334    fn drop_without_shutdown(mut self) {
81335        // Safety: drops once, never accessed again due to mem::forget
81336        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81337        // Prevent Drop from running (which would shut down the channel)
81338        std::mem::forget(self);
81339    }
81340}
81341
81342impl SynchronousDatagramSocketAddIpv6MembershipResponder {
81343    /// Sends a response to the FIDL transaction.
81344    ///
81345    /// Sets the channel to shutdown if an error occurs.
81346    pub fn send(
81347        self,
81348        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81349    ) -> Result<(), fidl::Error> {
81350        let _result = self.send_raw(result);
81351        if _result.is_err() {
81352            self.control_handle.shutdown();
81353        }
81354        self.drop_without_shutdown();
81355        _result
81356    }
81357
81358    /// Similar to "send" but does not shutdown the channel if an error occurs.
81359    pub fn send_no_shutdown_on_err(
81360        self,
81361        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81362    ) -> Result<(), fidl::Error> {
81363        let _result = self.send_raw(result);
81364        self.drop_without_shutdown();
81365        _result
81366    }
81367
81368    fn send_raw(
81369        &self,
81370        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81371    ) -> Result<(), fidl::Error> {
81372        self.control_handle.inner.send::<fidl::encoding::ResultType<
81373            fidl::encoding::EmptyStruct,
81374            fidl_fuchsia_posix::Errno,
81375        >>(
81376            result,
81377            self.tx_id,
81378            0x7c94727acb4ea4b3,
81379            fidl::encoding::DynamicFlags::empty(),
81380        )
81381    }
81382}
81383
81384#[must_use = "FIDL methods require a response to be sent"]
81385#[derive(Debug)]
81386pub struct SynchronousDatagramSocketDropIpv6MembershipResponder {
81387    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81388    tx_id: u32,
81389}
81390
81391/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81392/// if the responder is dropped without sending a response, so that the client
81393/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81394impl std::ops::Drop for SynchronousDatagramSocketDropIpv6MembershipResponder {
81395    fn drop(&mut self) {
81396        self.control_handle.shutdown();
81397        // Safety: drops once, never accessed again
81398        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81399    }
81400}
81401
81402impl fidl::endpoints::Responder for SynchronousDatagramSocketDropIpv6MembershipResponder {
81403    type ControlHandle = SynchronousDatagramSocketControlHandle;
81404
81405    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81406        &self.control_handle
81407    }
81408
81409    fn drop_without_shutdown(mut self) {
81410        // Safety: drops once, never accessed again due to mem::forget
81411        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81412        // Prevent Drop from running (which would shut down the channel)
81413        std::mem::forget(self);
81414    }
81415}
81416
81417impl SynchronousDatagramSocketDropIpv6MembershipResponder {
81418    /// Sends a response to the FIDL transaction.
81419    ///
81420    /// Sets the channel to shutdown if an error occurs.
81421    pub fn send(
81422        self,
81423        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81424    ) -> Result<(), fidl::Error> {
81425        let _result = self.send_raw(result);
81426        if _result.is_err() {
81427            self.control_handle.shutdown();
81428        }
81429        self.drop_without_shutdown();
81430        _result
81431    }
81432
81433    /// Similar to "send" but does not shutdown the channel if an error occurs.
81434    pub fn send_no_shutdown_on_err(
81435        self,
81436        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81437    ) -> Result<(), fidl::Error> {
81438        let _result = self.send_raw(result);
81439        self.drop_without_shutdown();
81440        _result
81441    }
81442
81443    fn send_raw(
81444        &self,
81445        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81446    ) -> Result<(), fidl::Error> {
81447        self.control_handle.inner.send::<fidl::encoding::ResultType<
81448            fidl::encoding::EmptyStruct,
81449            fidl_fuchsia_posix::Errno,
81450        >>(
81451            result,
81452            self.tx_id,
81453            0x42104c70ccaba304,
81454            fidl::encoding::DynamicFlags::empty(),
81455        )
81456    }
81457}
81458
81459#[must_use = "FIDL methods require a response to be sent"]
81460#[derive(Debug)]
81461pub struct SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
81462    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81463    tx_id: u32,
81464}
81465
81466/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81467/// if the responder is dropped without sending a response, so that the client
81468/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81469impl std::ops::Drop for SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
81470    fn drop(&mut self) {
81471        self.control_handle.shutdown();
81472        // Safety: drops once, never accessed again
81473        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81474    }
81475}
81476
81477impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
81478    type ControlHandle = SynchronousDatagramSocketControlHandle;
81479
81480    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81481        &self.control_handle
81482    }
81483
81484    fn drop_without_shutdown(mut self) {
81485        // Safety: drops once, never accessed again due to mem::forget
81486        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81487        // Prevent Drop from running (which would shut down the channel)
81488        std::mem::forget(self);
81489    }
81490}
81491
81492impl SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
81493    /// Sends a response to the FIDL transaction.
81494    ///
81495    /// Sets the channel to shutdown if an error occurs.
81496    pub fn send(
81497        self,
81498        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81499    ) -> Result<(), fidl::Error> {
81500        let _result = self.send_raw(result);
81501        if _result.is_err() {
81502            self.control_handle.shutdown();
81503        }
81504        self.drop_without_shutdown();
81505        _result
81506    }
81507
81508    /// Similar to "send" but does not shutdown the channel if an error occurs.
81509    pub fn send_no_shutdown_on_err(
81510        self,
81511        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81512    ) -> Result<(), fidl::Error> {
81513        let _result = self.send_raw(result);
81514        self.drop_without_shutdown();
81515        _result
81516    }
81517
81518    fn send_raw(
81519        &self,
81520        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81521    ) -> Result<(), fidl::Error> {
81522        self.control_handle.inner.send::<fidl::encoding::ResultType<
81523            fidl::encoding::EmptyStruct,
81524            fidl_fuchsia_posix::Errno,
81525        >>(
81526            result,
81527            self.tx_id,
81528            0x135f76db3774ab3b,
81529            fidl::encoding::DynamicFlags::empty(),
81530        )
81531    }
81532}
81533
81534#[must_use = "FIDL methods require a response to be sent"]
81535#[derive(Debug)]
81536pub struct SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
81537    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81538    tx_id: u32,
81539}
81540
81541/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81542/// if the responder is dropped without sending a response, so that the client
81543/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81544impl std::ops::Drop for SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
81545    fn drop(&mut self) {
81546        self.control_handle.shutdown();
81547        // Safety: drops once, never accessed again
81548        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81549    }
81550}
81551
81552impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
81553    type ControlHandle = SynchronousDatagramSocketControlHandle;
81554
81555    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81556        &self.control_handle
81557    }
81558
81559    fn drop_without_shutdown(mut self) {
81560        // Safety: drops once, never accessed again due to mem::forget
81561        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81562        // Prevent Drop from running (which would shut down the channel)
81563        std::mem::forget(self);
81564    }
81565}
81566
81567impl SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
81568    /// Sends a response to the FIDL transaction.
81569    ///
81570    /// Sets the channel to shutdown if an error occurs.
81571    pub fn send(
81572        self,
81573        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
81574    ) -> Result<(), fidl::Error> {
81575        let _result = self.send_raw(result);
81576        if _result.is_err() {
81577            self.control_handle.shutdown();
81578        }
81579        self.drop_without_shutdown();
81580        _result
81581    }
81582
81583    /// Similar to "send" but does not shutdown the channel if an error occurs.
81584    pub fn send_no_shutdown_on_err(
81585        self,
81586        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
81587    ) -> Result<(), fidl::Error> {
81588        let _result = self.send_raw(result);
81589        self.drop_without_shutdown();
81590        _result
81591    }
81592
81593    fn send_raw(
81594        &self,
81595        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
81596    ) -> Result<(), fidl::Error> {
81597        self.control_handle.inner.send::<fidl::encoding::ResultType<
81598            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
81599            fidl_fuchsia_posix::Errno,
81600        >>(
81601            result.map(|value| (value,)),
81602            self.tx_id,
81603            0x1f26fcdd348f1882,
81604            fidl::encoding::DynamicFlags::empty(),
81605        )
81606    }
81607}
81608
81609#[must_use = "FIDL methods require a response to be sent"]
81610#[derive(Debug)]
81611pub struct SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
81612    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81613    tx_id: u32,
81614}
81615
81616/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81617/// if the responder is dropped without sending a response, so that the client
81618/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81619impl std::ops::Drop for SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
81620    fn drop(&mut self) {
81621        self.control_handle.shutdown();
81622        // Safety: drops once, never accessed again
81623        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81624    }
81625}
81626
81627impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
81628    type ControlHandle = SynchronousDatagramSocketControlHandle;
81629
81630    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81631        &self.control_handle
81632    }
81633
81634    fn drop_without_shutdown(mut self) {
81635        // Safety: drops once, never accessed again due to mem::forget
81636        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81637        // Prevent Drop from running (which would shut down the channel)
81638        std::mem::forget(self);
81639    }
81640}
81641
81642impl SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
81643    /// Sends a response to the FIDL transaction.
81644    ///
81645    /// Sets the channel to shutdown if an error occurs.
81646    pub fn send(
81647        self,
81648        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81649    ) -> Result<(), fidl::Error> {
81650        let _result = self.send_raw(result);
81651        if _result.is_err() {
81652            self.control_handle.shutdown();
81653        }
81654        self.drop_without_shutdown();
81655        _result
81656    }
81657
81658    /// Similar to "send" but does not shutdown the channel if an error occurs.
81659    pub fn send_no_shutdown_on_err(
81660        self,
81661        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81662    ) -> Result<(), fidl::Error> {
81663        let _result = self.send_raw(result);
81664        self.drop_without_shutdown();
81665        _result
81666    }
81667
81668    fn send_raw(
81669        &self,
81670        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81671    ) -> Result<(), fidl::Error> {
81672        self.control_handle.inner.send::<fidl::encoding::ResultType<
81673            fidl::encoding::EmptyStruct,
81674            fidl_fuchsia_posix::Errno,
81675        >>(
81676            result,
81677            self.tx_id,
81678            0x157d51e98f462859,
81679            fidl::encoding::DynamicFlags::empty(),
81680        )
81681    }
81682}
81683
81684#[must_use = "FIDL methods require a response to be sent"]
81685#[derive(Debug)]
81686pub struct SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
81687    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81688    tx_id: u32,
81689}
81690
81691/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81692/// if the responder is dropped without sending a response, so that the client
81693/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81694impl std::ops::Drop for SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
81695    fn drop(&mut self) {
81696        self.control_handle.shutdown();
81697        // Safety: drops once, never accessed again
81698        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81699    }
81700}
81701
81702impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
81703    type ControlHandle = SynchronousDatagramSocketControlHandle;
81704
81705    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81706        &self.control_handle
81707    }
81708
81709    fn drop_without_shutdown(mut self) {
81710        // Safety: drops once, never accessed again due to mem::forget
81711        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81712        // Prevent Drop from running (which would shut down the channel)
81713        std::mem::forget(self);
81714    }
81715}
81716
81717impl SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
81718    /// Sends a response to the FIDL transaction.
81719    ///
81720    /// Sets the channel to shutdown if an error occurs.
81721    pub fn send(
81722        self,
81723        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81724    ) -> Result<(), fidl::Error> {
81725        let _result = self.send_raw(result);
81726        if _result.is_err() {
81727            self.control_handle.shutdown();
81728        }
81729        self.drop_without_shutdown();
81730        _result
81731    }
81732
81733    /// Similar to "send" but does not shutdown the channel if an error occurs.
81734    pub fn send_no_shutdown_on_err(
81735        self,
81736        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81737    ) -> Result<(), fidl::Error> {
81738        let _result = self.send_raw(result);
81739        self.drop_without_shutdown();
81740        _result
81741    }
81742
81743    fn send_raw(
81744        &self,
81745        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81746    ) -> Result<(), fidl::Error> {
81747        self.control_handle.inner.send::<fidl::encoding::ResultType<
81748            BaseNetworkSocketGetIpv6UnicastHopsResponse,
81749            fidl_fuchsia_posix::Errno,
81750        >>(
81751            result.map(|value| (value,)),
81752            self.tx_id,
81753            0x21f4641cad8bd8d2,
81754            fidl::encoding::DynamicFlags::empty(),
81755        )
81756    }
81757}
81758
81759#[must_use = "FIDL methods require a response to be sent"]
81760#[derive(Debug)]
81761pub struct SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
81762    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81763    tx_id: u32,
81764}
81765
81766/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81767/// if the responder is dropped without sending a response, so that the client
81768/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81769impl std::ops::Drop for SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
81770    fn drop(&mut self) {
81771        self.control_handle.shutdown();
81772        // Safety: drops once, never accessed again
81773        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81774    }
81775}
81776
81777impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
81778    type ControlHandle = SynchronousDatagramSocketControlHandle;
81779
81780    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81781        &self.control_handle
81782    }
81783
81784    fn drop_without_shutdown(mut self) {
81785        // Safety: drops once, never accessed again due to mem::forget
81786        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81787        // Prevent Drop from running (which would shut down the channel)
81788        std::mem::forget(self);
81789    }
81790}
81791
81792impl SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
81793    /// Sends a response to the FIDL transaction.
81794    ///
81795    /// Sets the channel to shutdown if an error occurs.
81796    pub fn send(
81797        self,
81798        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81799    ) -> Result<(), fidl::Error> {
81800        let _result = self.send_raw(result);
81801        if _result.is_err() {
81802            self.control_handle.shutdown();
81803        }
81804        self.drop_without_shutdown();
81805        _result
81806    }
81807
81808    /// Similar to "send" but does not shutdown the channel if an error occurs.
81809    pub fn send_no_shutdown_on_err(
81810        self,
81811        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81812    ) -> Result<(), fidl::Error> {
81813        let _result = self.send_raw(result);
81814        self.drop_without_shutdown();
81815        _result
81816    }
81817
81818    fn send_raw(
81819        &self,
81820        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81821    ) -> Result<(), fidl::Error> {
81822        self.control_handle.inner.send::<fidl::encoding::ResultType<
81823            fidl::encoding::EmptyStruct,
81824            fidl_fuchsia_posix::Errno,
81825        >>(
81826            result,
81827            self.tx_id,
81828            0x5c24808ed2e84a1e,
81829            fidl::encoding::DynamicFlags::empty(),
81830        )
81831    }
81832}
81833
81834#[must_use = "FIDL methods require a response to be sent"]
81835#[derive(Debug)]
81836pub struct SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
81837    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81838    tx_id: u32,
81839}
81840
81841/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81842/// if the responder is dropped without sending a response, so that the client
81843/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81844impl std::ops::Drop for SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
81845    fn drop(&mut self) {
81846        self.control_handle.shutdown();
81847        // Safety: drops once, never accessed again
81848        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81849    }
81850}
81851
81852impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
81853    type ControlHandle = SynchronousDatagramSocketControlHandle;
81854
81855    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81856        &self.control_handle
81857    }
81858
81859    fn drop_without_shutdown(mut self) {
81860        // Safety: drops once, never accessed again due to mem::forget
81861        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81862        // Prevent Drop from running (which would shut down the channel)
81863        std::mem::forget(self);
81864    }
81865}
81866
81867impl SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
81868    /// Sends a response to the FIDL transaction.
81869    ///
81870    /// Sets the channel to shutdown if an error occurs.
81871    pub fn send(
81872        self,
81873        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81874    ) -> Result<(), fidl::Error> {
81875        let _result = self.send_raw(result);
81876        if _result.is_err() {
81877            self.control_handle.shutdown();
81878        }
81879        self.drop_without_shutdown();
81880        _result
81881    }
81882
81883    /// Similar to "send" but does not shutdown the channel if an error occurs.
81884    pub fn send_no_shutdown_on_err(
81885        self,
81886        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81887    ) -> Result<(), fidl::Error> {
81888        let _result = self.send_raw(result);
81889        self.drop_without_shutdown();
81890        _result
81891    }
81892
81893    fn send_raw(
81894        &self,
81895        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81896    ) -> Result<(), fidl::Error> {
81897        self.control_handle.inner.send::<fidl::encoding::ResultType<
81898            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
81899            fidl_fuchsia_posix::Errno,
81900        >>(
81901            result.map(|value| (value,)),
81902            self.tx_id,
81903            0x341e06689885b4c0,
81904            fidl::encoding::DynamicFlags::empty(),
81905        )
81906    }
81907}
81908
81909#[must_use = "FIDL methods require a response to be sent"]
81910#[derive(Debug)]
81911pub struct SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
81912    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81913    tx_id: u32,
81914}
81915
81916/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81917/// if the responder is dropped without sending a response, so that the client
81918/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81919impl std::ops::Drop for SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
81920    fn drop(&mut self) {
81921        self.control_handle.shutdown();
81922        // Safety: drops once, never accessed again
81923        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81924    }
81925}
81926
81927impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
81928    type ControlHandle = SynchronousDatagramSocketControlHandle;
81929
81930    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81931        &self.control_handle
81932    }
81933
81934    fn drop_without_shutdown(mut self) {
81935        // Safety: drops once, never accessed again due to mem::forget
81936        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81937        // Prevent Drop from running (which would shut down the channel)
81938        std::mem::forget(self);
81939    }
81940}
81941
81942impl SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
81943    /// Sends a response to the FIDL transaction.
81944    ///
81945    /// Sets the channel to shutdown if an error occurs.
81946    pub fn send(
81947        self,
81948        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81949    ) -> Result<(), fidl::Error> {
81950        let _result = self.send_raw(result);
81951        if _result.is_err() {
81952            self.control_handle.shutdown();
81953        }
81954        self.drop_without_shutdown();
81955        _result
81956    }
81957
81958    /// Similar to "send" but does not shutdown the channel if an error occurs.
81959    pub fn send_no_shutdown_on_err(
81960        self,
81961        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81962    ) -> Result<(), fidl::Error> {
81963        let _result = self.send_raw(result);
81964        self.drop_without_shutdown();
81965        _result
81966    }
81967
81968    fn send_raw(
81969        &self,
81970        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81971    ) -> Result<(), fidl::Error> {
81972        self.control_handle.inner.send::<fidl::encoding::ResultType<
81973            fidl::encoding::EmptyStruct,
81974            fidl_fuchsia_posix::Errno,
81975        >>(
81976            result,
81977            self.tx_id,
81978            0x25b9cd4d181f82c1,
81979            fidl::encoding::DynamicFlags::empty(),
81980        )
81981    }
81982}
81983
81984#[must_use = "FIDL methods require a response to be sent"]
81985#[derive(Debug)]
81986pub struct SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
81987    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81988    tx_id: u32,
81989}
81990
81991/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81992/// if the responder is dropped without sending a response, so that the client
81993/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81994impl std::ops::Drop for SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
81995    fn drop(&mut self) {
81996        self.control_handle.shutdown();
81997        // Safety: drops once, never accessed again
81998        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81999    }
82000}
82001
82002impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
82003    type ControlHandle = SynchronousDatagramSocketControlHandle;
82004
82005    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82006        &self.control_handle
82007    }
82008
82009    fn drop_without_shutdown(mut self) {
82010        // Safety: drops once, never accessed again due to mem::forget
82011        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82012        // Prevent Drop from running (which would shut down the channel)
82013        std::mem::forget(self);
82014    }
82015}
82016
82017impl SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
82018    /// Sends a response to the FIDL transaction.
82019    ///
82020    /// Sets the channel to shutdown if an error occurs.
82021    pub fn send(
82022        self,
82023        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82024    ) -> Result<(), fidl::Error> {
82025        let _result = self.send_raw(result);
82026        if _result.is_err() {
82027            self.control_handle.shutdown();
82028        }
82029        self.drop_without_shutdown();
82030        _result
82031    }
82032
82033    /// Similar to "send" but does not shutdown the channel if an error occurs.
82034    pub fn send_no_shutdown_on_err(
82035        self,
82036        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82037    ) -> Result<(), fidl::Error> {
82038        let _result = self.send_raw(result);
82039        self.drop_without_shutdown();
82040        _result
82041    }
82042
82043    fn send_raw(
82044        &self,
82045        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82046    ) -> Result<(), fidl::Error> {
82047        self.control_handle.inner.send::<fidl::encoding::ResultType<
82048            BaseNetworkSocketGetIpv6MulticastHopsResponse,
82049            fidl_fuchsia_posix::Errno,
82050        >>(
82051            result.map(|value| (value,)),
82052            self.tx_id,
82053            0x52916948a365012a,
82054            fidl::encoding::DynamicFlags::empty(),
82055        )
82056    }
82057}
82058
82059#[must_use = "FIDL methods require a response to be sent"]
82060#[derive(Debug)]
82061pub struct SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
82062    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82063    tx_id: u32,
82064}
82065
82066/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82067/// if the responder is dropped without sending a response, so that the client
82068/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82069impl std::ops::Drop for SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
82070    fn drop(&mut self) {
82071        self.control_handle.shutdown();
82072        // Safety: drops once, never accessed again
82073        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82074    }
82075}
82076
82077impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
82078    type ControlHandle = SynchronousDatagramSocketControlHandle;
82079
82080    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82081        &self.control_handle
82082    }
82083
82084    fn drop_without_shutdown(mut self) {
82085        // Safety: drops once, never accessed again due to mem::forget
82086        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82087        // Prevent Drop from running (which would shut down the channel)
82088        std::mem::forget(self);
82089    }
82090}
82091
82092impl SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
82093    /// Sends a response to the FIDL transaction.
82094    ///
82095    /// Sets the channel to shutdown if an error occurs.
82096    pub fn send(
82097        self,
82098        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82099    ) -> Result<(), fidl::Error> {
82100        let _result = self.send_raw(result);
82101        if _result.is_err() {
82102            self.control_handle.shutdown();
82103        }
82104        self.drop_without_shutdown();
82105        _result
82106    }
82107
82108    /// Similar to "send" but does not shutdown the channel if an error occurs.
82109    pub fn send_no_shutdown_on_err(
82110        self,
82111        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82112    ) -> Result<(), fidl::Error> {
82113        let _result = self.send_raw(result);
82114        self.drop_without_shutdown();
82115        _result
82116    }
82117
82118    fn send_raw(
82119        &self,
82120        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82121    ) -> Result<(), fidl::Error> {
82122        self.control_handle.inner.send::<fidl::encoding::ResultType<
82123            fidl::encoding::EmptyStruct,
82124            fidl_fuchsia_posix::Errno,
82125        >>(
82126            result,
82127            self.tx_id,
82128            0x55701c409ff41b40,
82129            fidl::encoding::DynamicFlags::empty(),
82130        )
82131    }
82132}
82133
82134#[must_use = "FIDL methods require a response to be sent"]
82135#[derive(Debug)]
82136pub struct SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
82137    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82138    tx_id: u32,
82139}
82140
82141/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82142/// if the responder is dropped without sending a response, so that the client
82143/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82144impl std::ops::Drop for SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
82145    fn drop(&mut self) {
82146        self.control_handle.shutdown();
82147        // Safety: drops once, never accessed again
82148        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82149    }
82150}
82151
82152impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
82153    type ControlHandle = SynchronousDatagramSocketControlHandle;
82154
82155    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82156        &self.control_handle
82157    }
82158
82159    fn drop_without_shutdown(mut self) {
82160        // Safety: drops once, never accessed again due to mem::forget
82161        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82162        // Prevent Drop from running (which would shut down the channel)
82163        std::mem::forget(self);
82164    }
82165}
82166
82167impl SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
82168    /// Sends a response to the FIDL transaction.
82169    ///
82170    /// Sets the channel to shutdown if an error occurs.
82171    pub fn send(
82172        self,
82173        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82174    ) -> Result<(), fidl::Error> {
82175        let _result = self.send_raw(result);
82176        if _result.is_err() {
82177            self.control_handle.shutdown();
82178        }
82179        self.drop_without_shutdown();
82180        _result
82181    }
82182
82183    /// Similar to "send" but does not shutdown the channel if an error occurs.
82184    pub fn send_no_shutdown_on_err(
82185        self,
82186        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82187    ) -> Result<(), fidl::Error> {
82188        let _result = self.send_raw(result);
82189        self.drop_without_shutdown();
82190        _result
82191    }
82192
82193    fn send_raw(
82194        &self,
82195        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82196    ) -> Result<(), fidl::Error> {
82197        self.control_handle.inner.send::<fidl::encoding::ResultType<
82198            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
82199            fidl_fuchsia_posix::Errno,
82200        >>(
82201            result.map(|value| (value,)),
82202            self.tx_id,
82203            0x4415b701fde319c3,
82204            fidl::encoding::DynamicFlags::empty(),
82205        )
82206    }
82207}
82208
82209#[must_use = "FIDL methods require a response to be sent"]
82210#[derive(Debug)]
82211pub struct SynchronousDatagramSocketSetIpv6OnlyResponder {
82212    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82213    tx_id: u32,
82214}
82215
82216/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82217/// if the responder is dropped without sending a response, so that the client
82218/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82219impl std::ops::Drop for SynchronousDatagramSocketSetIpv6OnlyResponder {
82220    fn drop(&mut self) {
82221        self.control_handle.shutdown();
82222        // Safety: drops once, never accessed again
82223        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82224    }
82225}
82226
82227impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6OnlyResponder {
82228    type ControlHandle = SynchronousDatagramSocketControlHandle;
82229
82230    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82231        &self.control_handle
82232    }
82233
82234    fn drop_without_shutdown(mut self) {
82235        // Safety: drops once, never accessed again due to mem::forget
82236        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82237        // Prevent Drop from running (which would shut down the channel)
82238        std::mem::forget(self);
82239    }
82240}
82241
82242impl SynchronousDatagramSocketSetIpv6OnlyResponder {
82243    /// Sends a response to the FIDL transaction.
82244    ///
82245    /// Sets the channel to shutdown if an error occurs.
82246    pub fn send(
82247        self,
82248        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82249    ) -> Result<(), fidl::Error> {
82250        let _result = self.send_raw(result);
82251        if _result.is_err() {
82252            self.control_handle.shutdown();
82253        }
82254        self.drop_without_shutdown();
82255        _result
82256    }
82257
82258    /// Similar to "send" but does not shutdown the channel if an error occurs.
82259    pub fn send_no_shutdown_on_err(
82260        self,
82261        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82262    ) -> Result<(), fidl::Error> {
82263        let _result = self.send_raw(result);
82264        self.drop_without_shutdown();
82265        _result
82266    }
82267
82268    fn send_raw(
82269        &self,
82270        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82271    ) -> Result<(), fidl::Error> {
82272        self.control_handle.inner.send::<fidl::encoding::ResultType<
82273            fidl::encoding::EmptyStruct,
82274            fidl_fuchsia_posix::Errno,
82275        >>(
82276            result,
82277            self.tx_id,
82278            0x4873f1364758cbba,
82279            fidl::encoding::DynamicFlags::empty(),
82280        )
82281    }
82282}
82283
82284#[must_use = "FIDL methods require a response to be sent"]
82285#[derive(Debug)]
82286pub struct SynchronousDatagramSocketGetIpv6OnlyResponder {
82287    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82288    tx_id: u32,
82289}
82290
82291/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82292/// if the responder is dropped without sending a response, so that the client
82293/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82294impl std::ops::Drop for SynchronousDatagramSocketGetIpv6OnlyResponder {
82295    fn drop(&mut self) {
82296        self.control_handle.shutdown();
82297        // Safety: drops once, never accessed again
82298        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82299    }
82300}
82301
82302impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6OnlyResponder {
82303    type ControlHandle = SynchronousDatagramSocketControlHandle;
82304
82305    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82306        &self.control_handle
82307    }
82308
82309    fn drop_without_shutdown(mut self) {
82310        // Safety: drops once, never accessed again due to mem::forget
82311        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82312        // Prevent Drop from running (which would shut down the channel)
82313        std::mem::forget(self);
82314    }
82315}
82316
82317impl SynchronousDatagramSocketGetIpv6OnlyResponder {
82318    /// Sends a response to the FIDL transaction.
82319    ///
82320    /// Sets the channel to shutdown if an error occurs.
82321    pub fn send(
82322        self,
82323        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82324    ) -> Result<(), fidl::Error> {
82325        let _result = self.send_raw(result);
82326        if _result.is_err() {
82327            self.control_handle.shutdown();
82328        }
82329        self.drop_without_shutdown();
82330        _result
82331    }
82332
82333    /// Similar to "send" but does not shutdown the channel if an error occurs.
82334    pub fn send_no_shutdown_on_err(
82335        self,
82336        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82337    ) -> Result<(), fidl::Error> {
82338        let _result = self.send_raw(result);
82339        self.drop_without_shutdown();
82340        _result
82341    }
82342
82343    fn send_raw(
82344        &self,
82345        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82346    ) -> Result<(), fidl::Error> {
82347        self.control_handle.inner.send::<fidl::encoding::ResultType<
82348            BaseNetworkSocketGetIpv6OnlyResponse,
82349            fidl_fuchsia_posix::Errno,
82350        >>(
82351            result.map(|value| (value,)),
82352            self.tx_id,
82353            0x4aa3340a1a26b89c,
82354            fidl::encoding::DynamicFlags::empty(),
82355        )
82356    }
82357}
82358
82359#[must_use = "FIDL methods require a response to be sent"]
82360#[derive(Debug)]
82361pub struct SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
82362    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82363    tx_id: u32,
82364}
82365
82366/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82367/// if the responder is dropped without sending a response, so that the client
82368/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82369impl std::ops::Drop for SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
82370    fn drop(&mut self) {
82371        self.control_handle.shutdown();
82372        // Safety: drops once, never accessed again
82373        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82374    }
82375}
82376
82377impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
82378    type ControlHandle = SynchronousDatagramSocketControlHandle;
82379
82380    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82381        &self.control_handle
82382    }
82383
82384    fn drop_without_shutdown(mut self) {
82385        // Safety: drops once, never accessed again due to mem::forget
82386        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82387        // Prevent Drop from running (which would shut down the channel)
82388        std::mem::forget(self);
82389    }
82390}
82391
82392impl SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
82393    /// Sends a response to the FIDL transaction.
82394    ///
82395    /// Sets the channel to shutdown if an error occurs.
82396    pub fn send(
82397        self,
82398        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82399    ) -> Result<(), fidl::Error> {
82400        let _result = self.send_raw(result);
82401        if _result.is_err() {
82402            self.control_handle.shutdown();
82403        }
82404        self.drop_without_shutdown();
82405        _result
82406    }
82407
82408    /// Similar to "send" but does not shutdown the channel if an error occurs.
82409    pub fn send_no_shutdown_on_err(
82410        self,
82411        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82412    ) -> Result<(), fidl::Error> {
82413        let _result = self.send_raw(result);
82414        self.drop_without_shutdown();
82415        _result
82416    }
82417
82418    fn send_raw(
82419        &self,
82420        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82421    ) -> Result<(), fidl::Error> {
82422        self.control_handle.inner.send::<fidl::encoding::ResultType<
82423            fidl::encoding::EmptyStruct,
82424            fidl_fuchsia_posix::Errno,
82425        >>(
82426            result,
82427            self.tx_id,
82428            0x58f07c8788d099a0,
82429            fidl::encoding::DynamicFlags::empty(),
82430        )
82431    }
82432}
82433
82434#[must_use = "FIDL methods require a response to be sent"]
82435#[derive(Debug)]
82436pub struct SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
82437    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82438    tx_id: u32,
82439}
82440
82441/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82442/// if the responder is dropped without sending a response, so that the client
82443/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82444impl std::ops::Drop for SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
82445    fn drop(&mut self) {
82446        self.control_handle.shutdown();
82447        // Safety: drops once, never accessed again
82448        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82449    }
82450}
82451
82452impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
82453    type ControlHandle = SynchronousDatagramSocketControlHandle;
82454
82455    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82456        &self.control_handle
82457    }
82458
82459    fn drop_without_shutdown(mut self) {
82460        // Safety: drops once, never accessed again due to mem::forget
82461        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82462        // Prevent Drop from running (which would shut down the channel)
82463        std::mem::forget(self);
82464    }
82465}
82466
82467impl SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
82468    /// Sends a response to the FIDL transaction.
82469    ///
82470    /// Sets the channel to shutdown if an error occurs.
82471    pub fn send(
82472        self,
82473        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82474    ) -> Result<(), fidl::Error> {
82475        let _result = self.send_raw(result);
82476        if _result.is_err() {
82477            self.control_handle.shutdown();
82478        }
82479        self.drop_without_shutdown();
82480        _result
82481    }
82482
82483    /// Similar to "send" but does not shutdown the channel if an error occurs.
82484    pub fn send_no_shutdown_on_err(
82485        self,
82486        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82487    ) -> Result<(), fidl::Error> {
82488        let _result = self.send_raw(result);
82489        self.drop_without_shutdown();
82490        _result
82491    }
82492
82493    fn send_raw(
82494        &self,
82495        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82496    ) -> Result<(), fidl::Error> {
82497        self.control_handle.inner.send::<fidl::encoding::ResultType<
82498            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
82499            fidl_fuchsia_posix::Errno,
82500        >>(
82501            result.map(|value| (value,)),
82502            self.tx_id,
82503            0x2e334df1da553ffa,
82504            fidl::encoding::DynamicFlags::empty(),
82505        )
82506    }
82507}
82508
82509#[must_use = "FIDL methods require a response to be sent"]
82510#[derive(Debug)]
82511pub struct SynchronousDatagramSocketSetIpv6TrafficClassResponder {
82512    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82513    tx_id: u32,
82514}
82515
82516/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82517/// if the responder is dropped without sending a response, so that the client
82518/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82519impl std::ops::Drop for SynchronousDatagramSocketSetIpv6TrafficClassResponder {
82520    fn drop(&mut self) {
82521        self.control_handle.shutdown();
82522        // Safety: drops once, never accessed again
82523        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82524    }
82525}
82526
82527impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6TrafficClassResponder {
82528    type ControlHandle = SynchronousDatagramSocketControlHandle;
82529
82530    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82531        &self.control_handle
82532    }
82533
82534    fn drop_without_shutdown(mut self) {
82535        // Safety: drops once, never accessed again due to mem::forget
82536        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82537        // Prevent Drop from running (which would shut down the channel)
82538        std::mem::forget(self);
82539    }
82540}
82541
82542impl SynchronousDatagramSocketSetIpv6TrafficClassResponder {
82543    /// Sends a response to the FIDL transaction.
82544    ///
82545    /// Sets the channel to shutdown if an error occurs.
82546    pub fn send(
82547        self,
82548        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82549    ) -> Result<(), fidl::Error> {
82550        let _result = self.send_raw(result);
82551        if _result.is_err() {
82552            self.control_handle.shutdown();
82553        }
82554        self.drop_without_shutdown();
82555        _result
82556    }
82557
82558    /// Similar to "send" but does not shutdown the channel if an error occurs.
82559    pub fn send_no_shutdown_on_err(
82560        self,
82561        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82562    ) -> Result<(), fidl::Error> {
82563        let _result = self.send_raw(result);
82564        self.drop_without_shutdown();
82565        _result
82566    }
82567
82568    fn send_raw(
82569        &self,
82570        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82571    ) -> Result<(), fidl::Error> {
82572        self.control_handle.inner.send::<fidl::encoding::ResultType<
82573            fidl::encoding::EmptyStruct,
82574            fidl_fuchsia_posix::Errno,
82575        >>(
82576            result,
82577            self.tx_id,
82578            0x6af077800c5a0b4f,
82579            fidl::encoding::DynamicFlags::empty(),
82580        )
82581    }
82582}
82583
82584#[must_use = "FIDL methods require a response to be sent"]
82585#[derive(Debug)]
82586pub struct SynchronousDatagramSocketGetIpv6TrafficClassResponder {
82587    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82588    tx_id: u32,
82589}
82590
82591/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82592/// if the responder is dropped without sending a response, so that the client
82593/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82594impl std::ops::Drop for SynchronousDatagramSocketGetIpv6TrafficClassResponder {
82595    fn drop(&mut self) {
82596        self.control_handle.shutdown();
82597        // Safety: drops once, never accessed again
82598        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82599    }
82600}
82601
82602impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6TrafficClassResponder {
82603    type ControlHandle = SynchronousDatagramSocketControlHandle;
82604
82605    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82606        &self.control_handle
82607    }
82608
82609    fn drop_without_shutdown(mut self) {
82610        // Safety: drops once, never accessed again due to mem::forget
82611        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82612        // Prevent Drop from running (which would shut down the channel)
82613        std::mem::forget(self);
82614    }
82615}
82616
82617impl SynchronousDatagramSocketGetIpv6TrafficClassResponder {
82618    /// Sends a response to the FIDL transaction.
82619    ///
82620    /// Sets the channel to shutdown if an error occurs.
82621    pub fn send(
82622        self,
82623        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82624    ) -> Result<(), fidl::Error> {
82625        let _result = self.send_raw(result);
82626        if _result.is_err() {
82627            self.control_handle.shutdown();
82628        }
82629        self.drop_without_shutdown();
82630        _result
82631    }
82632
82633    /// Similar to "send" but does not shutdown the channel if an error occurs.
82634    pub fn send_no_shutdown_on_err(
82635        self,
82636        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82637    ) -> Result<(), fidl::Error> {
82638        let _result = self.send_raw(result);
82639        self.drop_without_shutdown();
82640        _result
82641    }
82642
82643    fn send_raw(
82644        &self,
82645        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82646    ) -> Result<(), fidl::Error> {
82647        self.control_handle.inner.send::<fidl::encoding::ResultType<
82648            BaseNetworkSocketGetIpv6TrafficClassResponse,
82649            fidl_fuchsia_posix::Errno,
82650        >>(
82651            result.map(|value| (value,)),
82652            self.tx_id,
82653            0x6baf6eed8fc2f04,
82654            fidl::encoding::DynamicFlags::empty(),
82655        )
82656    }
82657}
82658
82659#[must_use = "FIDL methods require a response to be sent"]
82660#[derive(Debug)]
82661pub struct SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
82662    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82663    tx_id: u32,
82664}
82665
82666/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82667/// if the responder is dropped without sending a response, so that the client
82668/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82669impl std::ops::Drop for SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
82670    fn drop(&mut self) {
82671        self.control_handle.shutdown();
82672        // Safety: drops once, never accessed again
82673        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82674    }
82675}
82676
82677impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
82678    type ControlHandle = SynchronousDatagramSocketControlHandle;
82679
82680    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82681        &self.control_handle
82682    }
82683
82684    fn drop_without_shutdown(mut self) {
82685        // Safety: drops once, never accessed again due to mem::forget
82686        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82687        // Prevent Drop from running (which would shut down the channel)
82688        std::mem::forget(self);
82689    }
82690}
82691
82692impl SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
82693    /// Sends a response to the FIDL transaction.
82694    ///
82695    /// Sets the channel to shutdown if an error occurs.
82696    pub fn send(
82697        self,
82698        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82699    ) -> Result<(), fidl::Error> {
82700        let _result = self.send_raw(result);
82701        if _result.is_err() {
82702            self.control_handle.shutdown();
82703        }
82704        self.drop_without_shutdown();
82705        _result
82706    }
82707
82708    /// Similar to "send" but does not shutdown the channel if an error occurs.
82709    pub fn send_no_shutdown_on_err(
82710        self,
82711        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82712    ) -> Result<(), fidl::Error> {
82713        let _result = self.send_raw(result);
82714        self.drop_without_shutdown();
82715        _result
82716    }
82717
82718    fn send_raw(
82719        &self,
82720        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82721    ) -> Result<(), fidl::Error> {
82722        self.control_handle.inner.send::<fidl::encoding::ResultType<
82723            fidl::encoding::EmptyStruct,
82724            fidl_fuchsia_posix::Errno,
82725        >>(
82726            result,
82727            self.tx_id,
82728            0x19259775b1a92768,
82729            fidl::encoding::DynamicFlags::empty(),
82730        )
82731    }
82732}
82733
82734#[must_use = "FIDL methods require a response to be sent"]
82735#[derive(Debug)]
82736pub struct SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
82737    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82738    tx_id: u32,
82739}
82740
82741/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82742/// if the responder is dropped without sending a response, so that the client
82743/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82744impl std::ops::Drop for SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
82745    fn drop(&mut self) {
82746        self.control_handle.shutdown();
82747        // Safety: drops once, never accessed again
82748        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82749    }
82750}
82751
82752impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
82753    type ControlHandle = SynchronousDatagramSocketControlHandle;
82754
82755    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82756        &self.control_handle
82757    }
82758
82759    fn drop_without_shutdown(mut self) {
82760        // Safety: drops once, never accessed again due to mem::forget
82761        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82762        // Prevent Drop from running (which would shut down the channel)
82763        std::mem::forget(self);
82764    }
82765}
82766
82767impl SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
82768    /// Sends a response to the FIDL transaction.
82769    ///
82770    /// Sets the channel to shutdown if an error occurs.
82771    pub fn send(
82772        self,
82773        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82774    ) -> Result<(), fidl::Error> {
82775        let _result = self.send_raw(result);
82776        if _result.is_err() {
82777            self.control_handle.shutdown();
82778        }
82779        self.drop_without_shutdown();
82780        _result
82781    }
82782
82783    /// Similar to "send" but does not shutdown the channel if an error occurs.
82784    pub fn send_no_shutdown_on_err(
82785        self,
82786        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82787    ) -> Result<(), fidl::Error> {
82788        let _result = self.send_raw(result);
82789        self.drop_without_shutdown();
82790        _result
82791    }
82792
82793    fn send_raw(
82794        &self,
82795        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82796    ) -> Result<(), fidl::Error> {
82797        self.control_handle.inner.send::<fidl::encoding::ResultType<
82798            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
82799            fidl_fuchsia_posix::Errno,
82800        >>(
82801            result.map(|value| (value,)),
82802            self.tx_id,
82803            0x7acd4a2775baec75,
82804            fidl::encoding::DynamicFlags::empty(),
82805        )
82806    }
82807}
82808
82809#[must_use = "FIDL methods require a response to be sent"]
82810#[derive(Debug)]
82811pub struct SynchronousDatagramSocketGetOriginalDestinationResponder {
82812    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82813    tx_id: u32,
82814}
82815
82816/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82817/// if the responder is dropped without sending a response, so that the client
82818/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82819impl std::ops::Drop for SynchronousDatagramSocketGetOriginalDestinationResponder {
82820    fn drop(&mut self) {
82821        self.control_handle.shutdown();
82822        // Safety: drops once, never accessed again
82823        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82824    }
82825}
82826
82827impl fidl::endpoints::Responder for SynchronousDatagramSocketGetOriginalDestinationResponder {
82828    type ControlHandle = SynchronousDatagramSocketControlHandle;
82829
82830    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82831        &self.control_handle
82832    }
82833
82834    fn drop_without_shutdown(mut self) {
82835        // Safety: drops once, never accessed again due to mem::forget
82836        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82837        // Prevent Drop from running (which would shut down the channel)
82838        std::mem::forget(self);
82839    }
82840}
82841
82842impl SynchronousDatagramSocketGetOriginalDestinationResponder {
82843    /// Sends a response to the FIDL transaction.
82844    ///
82845    /// Sets the channel to shutdown if an error occurs.
82846    pub fn send(
82847        self,
82848        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
82849    ) -> Result<(), fidl::Error> {
82850        let _result = self.send_raw(result);
82851        if _result.is_err() {
82852            self.control_handle.shutdown();
82853        }
82854        self.drop_without_shutdown();
82855        _result
82856    }
82857
82858    /// Similar to "send" but does not shutdown the channel if an error occurs.
82859    pub fn send_no_shutdown_on_err(
82860        self,
82861        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
82862    ) -> Result<(), fidl::Error> {
82863        let _result = self.send_raw(result);
82864        self.drop_without_shutdown();
82865        _result
82866    }
82867
82868    fn send_raw(
82869        &self,
82870        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
82871    ) -> Result<(), fidl::Error> {
82872        self.control_handle.inner.send::<fidl::encoding::ResultType<
82873            BaseNetworkSocketGetOriginalDestinationResponse,
82874            fidl_fuchsia_posix::Errno,
82875        >>(
82876            result.map(|value| (value,)),
82877            self.tx_id,
82878            0x38bf28f0dafdbac0,
82879            fidl::encoding::DynamicFlags::empty(),
82880        )
82881    }
82882}
82883
82884#[must_use = "FIDL methods require a response to be sent"]
82885#[derive(Debug)]
82886pub struct SynchronousDatagramSocketGetInfoResponder {
82887    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82888    tx_id: u32,
82889}
82890
82891/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82892/// if the responder is dropped without sending a response, so that the client
82893/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82894impl std::ops::Drop for SynchronousDatagramSocketGetInfoResponder {
82895    fn drop(&mut self) {
82896        self.control_handle.shutdown();
82897        // Safety: drops once, never accessed again
82898        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82899    }
82900}
82901
82902impl fidl::endpoints::Responder for SynchronousDatagramSocketGetInfoResponder {
82903    type ControlHandle = SynchronousDatagramSocketControlHandle;
82904
82905    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82906        &self.control_handle
82907    }
82908
82909    fn drop_without_shutdown(mut self) {
82910        // Safety: drops once, never accessed again due to mem::forget
82911        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82912        // Prevent Drop from running (which would shut down the channel)
82913        std::mem::forget(self);
82914    }
82915}
82916
82917impl SynchronousDatagramSocketGetInfoResponder {
82918    /// Sends a response to the FIDL transaction.
82919    ///
82920    /// Sets the channel to shutdown if an error occurs.
82921    pub fn send(
82922        self,
82923        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
82924    ) -> Result<(), fidl::Error> {
82925        let _result = self.send_raw(result);
82926        if _result.is_err() {
82927            self.control_handle.shutdown();
82928        }
82929        self.drop_without_shutdown();
82930        _result
82931    }
82932
82933    /// Similar to "send" but does not shutdown the channel if an error occurs.
82934    pub fn send_no_shutdown_on_err(
82935        self,
82936        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
82937    ) -> Result<(), fidl::Error> {
82938        let _result = self.send_raw(result);
82939        self.drop_without_shutdown();
82940        _result
82941    }
82942
82943    fn send_raw(
82944        &self,
82945        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
82946    ) -> Result<(), fidl::Error> {
82947        self.control_handle.inner.send::<fidl::encoding::ResultType<
82948            BaseDatagramSocketGetInfoResponse,
82949            fidl_fuchsia_posix::Errno,
82950        >>(
82951            result,
82952            self.tx_id,
82953            0x48aa0a1f6a32d2ed,
82954            fidl::encoding::DynamicFlags::empty(),
82955        )
82956    }
82957}
82958
82959#[must_use = "FIDL methods require a response to be sent"]
82960#[derive(Debug)]
82961pub struct SynchronousDatagramSocketDescribeResponder {
82962    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82963    tx_id: u32,
82964}
82965
82966/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82967/// if the responder is dropped without sending a response, so that the client
82968/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82969impl std::ops::Drop for SynchronousDatagramSocketDescribeResponder {
82970    fn drop(&mut self) {
82971        self.control_handle.shutdown();
82972        // Safety: drops once, never accessed again
82973        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82974    }
82975}
82976
82977impl fidl::endpoints::Responder for SynchronousDatagramSocketDescribeResponder {
82978    type ControlHandle = SynchronousDatagramSocketControlHandle;
82979
82980    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82981        &self.control_handle
82982    }
82983
82984    fn drop_without_shutdown(mut self) {
82985        // Safety: drops once, never accessed again due to mem::forget
82986        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82987        // Prevent Drop from running (which would shut down the channel)
82988        std::mem::forget(self);
82989    }
82990}
82991
82992impl SynchronousDatagramSocketDescribeResponder {
82993    /// Sends a response to the FIDL transaction.
82994    ///
82995    /// Sets the channel to shutdown if an error occurs.
82996    pub fn send(
82997        self,
82998        mut payload: SynchronousDatagramSocketDescribeResponse,
82999    ) -> Result<(), fidl::Error> {
83000        let _result = self.send_raw(payload);
83001        if _result.is_err() {
83002            self.control_handle.shutdown();
83003        }
83004        self.drop_without_shutdown();
83005        _result
83006    }
83007
83008    /// Similar to "send" but does not shutdown the channel if an error occurs.
83009    pub fn send_no_shutdown_on_err(
83010        self,
83011        mut payload: SynchronousDatagramSocketDescribeResponse,
83012    ) -> Result<(), fidl::Error> {
83013        let _result = self.send_raw(payload);
83014        self.drop_without_shutdown();
83015        _result
83016    }
83017
83018    fn send_raw(
83019        &self,
83020        mut payload: SynchronousDatagramSocketDescribeResponse,
83021    ) -> Result<(), fidl::Error> {
83022        self.control_handle.inner.send::<SynchronousDatagramSocketDescribeResponse>(
83023            &mut payload,
83024            self.tx_id,
83025            0x585f20b73631070d,
83026            fidl::encoding::DynamicFlags::empty(),
83027        )
83028    }
83029}
83030
83031#[must_use = "FIDL methods require a response to be sent"]
83032#[derive(Debug)]
83033pub struct SynchronousDatagramSocketRecvMsgResponder {
83034    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83035    tx_id: u32,
83036}
83037
83038/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83039/// if the responder is dropped without sending a response, so that the client
83040/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83041impl std::ops::Drop for SynchronousDatagramSocketRecvMsgResponder {
83042    fn drop(&mut self) {
83043        self.control_handle.shutdown();
83044        // Safety: drops once, never accessed again
83045        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83046    }
83047}
83048
83049impl fidl::endpoints::Responder for SynchronousDatagramSocketRecvMsgResponder {
83050    type ControlHandle = SynchronousDatagramSocketControlHandle;
83051
83052    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83053        &self.control_handle
83054    }
83055
83056    fn drop_without_shutdown(mut self) {
83057        // Safety: drops once, never accessed again due to mem::forget
83058        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83059        // Prevent Drop from running (which would shut down the channel)
83060        std::mem::forget(self);
83061    }
83062}
83063
83064impl SynchronousDatagramSocketRecvMsgResponder {
83065    /// Sends a response to the FIDL transaction.
83066    ///
83067    /// Sets the channel to shutdown if an error occurs.
83068    pub fn send(
83069        self,
83070        mut result: Result<
83071            (Option<&fidl_fuchsia_net::SocketAddress>, &[u8], &DatagramSocketRecvControlData, u32),
83072            fidl_fuchsia_posix::Errno,
83073        >,
83074    ) -> Result<(), fidl::Error> {
83075        let _result = self.send_raw(result);
83076        if _result.is_err() {
83077            self.control_handle.shutdown();
83078        }
83079        self.drop_without_shutdown();
83080        _result
83081    }
83082
83083    /// Similar to "send" but does not shutdown the channel if an error occurs.
83084    pub fn send_no_shutdown_on_err(
83085        self,
83086        mut result: Result<
83087            (Option<&fidl_fuchsia_net::SocketAddress>, &[u8], &DatagramSocketRecvControlData, u32),
83088            fidl_fuchsia_posix::Errno,
83089        >,
83090    ) -> Result<(), fidl::Error> {
83091        let _result = self.send_raw(result);
83092        self.drop_without_shutdown();
83093        _result
83094    }
83095
83096    fn send_raw(
83097        &self,
83098        mut result: Result<
83099            (Option<&fidl_fuchsia_net::SocketAddress>, &[u8], &DatagramSocketRecvControlData, u32),
83100            fidl_fuchsia_posix::Errno,
83101        >,
83102    ) -> Result<(), fidl::Error> {
83103        self.control_handle.inner.send::<fidl::encoding::ResultType<
83104            SynchronousDatagramSocketRecvMsgResponse,
83105            fidl_fuchsia_posix::Errno,
83106        >>(
83107            result,
83108            self.tx_id,
83109            0x28e494e48fb5dbf3,
83110            fidl::encoding::DynamicFlags::empty(),
83111        )
83112    }
83113}
83114
83115#[must_use = "FIDL methods require a response to be sent"]
83116#[derive(Debug)]
83117pub struct SynchronousDatagramSocketSendMsgResponder {
83118    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83119    tx_id: u32,
83120}
83121
83122/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83123/// if the responder is dropped without sending a response, so that the client
83124/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83125impl std::ops::Drop for SynchronousDatagramSocketSendMsgResponder {
83126    fn drop(&mut self) {
83127        self.control_handle.shutdown();
83128        // Safety: drops once, never accessed again
83129        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83130    }
83131}
83132
83133impl fidl::endpoints::Responder for SynchronousDatagramSocketSendMsgResponder {
83134    type ControlHandle = SynchronousDatagramSocketControlHandle;
83135
83136    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83137        &self.control_handle
83138    }
83139
83140    fn drop_without_shutdown(mut self) {
83141        // Safety: drops once, never accessed again due to mem::forget
83142        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83143        // Prevent Drop from running (which would shut down the channel)
83144        std::mem::forget(self);
83145    }
83146}
83147
83148impl SynchronousDatagramSocketSendMsgResponder {
83149    /// Sends a response to the FIDL transaction.
83150    ///
83151    /// Sets the channel to shutdown if an error occurs.
83152    pub fn send(
83153        self,
83154        mut result: Result<i64, fidl_fuchsia_posix::Errno>,
83155    ) -> Result<(), fidl::Error> {
83156        let _result = self.send_raw(result);
83157        if _result.is_err() {
83158            self.control_handle.shutdown();
83159        }
83160        self.drop_without_shutdown();
83161        _result
83162    }
83163
83164    /// Similar to "send" but does not shutdown the channel if an error occurs.
83165    pub fn send_no_shutdown_on_err(
83166        self,
83167        mut result: Result<i64, fidl_fuchsia_posix::Errno>,
83168    ) -> Result<(), fidl::Error> {
83169        let _result = self.send_raw(result);
83170        self.drop_without_shutdown();
83171        _result
83172    }
83173
83174    fn send_raw(
83175        &self,
83176        mut result: Result<i64, fidl_fuchsia_posix::Errno>,
83177    ) -> Result<(), fidl::Error> {
83178        self.control_handle.inner.send::<fidl::encoding::ResultType<
83179            SynchronousDatagramSocketSendMsgResponse,
83180            fidl_fuchsia_posix::Errno,
83181        >>(
83182            result.map(|len| (len,)),
83183            self.tx_id,
83184            0x12dc2fceab6cefaa,
83185            fidl::encoding::DynamicFlags::empty(),
83186        )
83187    }
83188}
83189
83190mod internal {
83191    use super::*;
83192
83193    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketWithOptionsRequest {
83194        type Borrowed<'a> = &'a mut Self;
83195        fn take_or_borrow<'a>(
83196            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83197        ) -> Self::Borrowed<'a> {
83198            value
83199        }
83200    }
83201
83202    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketWithOptionsRequest {
83203        type Owned = Self;
83204
83205        #[inline(always)]
83206        fn inline_align(_context: fidl::encoding::Context) -> usize {
83207            8
83208        }
83209
83210        #[inline(always)]
83211        fn inline_size(_context: fidl::encoding::Context) -> usize {
83212            24
83213        }
83214    }
83215
83216    unsafe impl
83217        fidl::encoding::Encode<
83218            ProviderDatagramSocketWithOptionsRequest,
83219            fidl::encoding::DefaultFuchsiaResourceDialect,
83220        > for &mut ProviderDatagramSocketWithOptionsRequest
83221    {
83222        #[inline]
83223        unsafe fn encode(
83224            self,
83225            encoder: &mut fidl::encoding::Encoder<
83226                '_,
83227                fidl::encoding::DefaultFuchsiaResourceDialect,
83228            >,
83229            offset: usize,
83230            _depth: fidl::encoding::Depth,
83231        ) -> fidl::Result<()> {
83232            encoder.debug_check_bounds::<ProviderDatagramSocketWithOptionsRequest>(offset);
83233            // Delegate to tuple encoding.
83234            fidl::encoding::Encode::<
83235                ProviderDatagramSocketWithOptionsRequest,
83236                fidl::encoding::DefaultFuchsiaResourceDialect,
83237            >::encode(
83238                (
83239                    <Domain as fidl::encoding::ValueTypeMarker>::borrow(&self.domain),
83240                    <DatagramSocketProtocol as fidl::encoding::ValueTypeMarker>::borrow(
83241                        &self.proto,
83242                    ),
83243                    <SocketCreationOptions as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
83244                        &mut self.opts,
83245                    ),
83246                ),
83247                encoder,
83248                offset,
83249                _depth,
83250            )
83251        }
83252    }
83253    unsafe impl<
83254        T0: fidl::encoding::Encode<Domain, fidl::encoding::DefaultFuchsiaResourceDialect>,
83255        T1: fidl::encoding::Encode<
83256                DatagramSocketProtocol,
83257                fidl::encoding::DefaultFuchsiaResourceDialect,
83258            >,
83259        T2: fidl::encoding::Encode<
83260                SocketCreationOptions,
83261                fidl::encoding::DefaultFuchsiaResourceDialect,
83262            >,
83263    >
83264        fidl::encoding::Encode<
83265            ProviderDatagramSocketWithOptionsRequest,
83266            fidl::encoding::DefaultFuchsiaResourceDialect,
83267        > for (T0, T1, T2)
83268    {
83269        #[inline]
83270        unsafe fn encode(
83271            self,
83272            encoder: &mut fidl::encoding::Encoder<
83273                '_,
83274                fidl::encoding::DefaultFuchsiaResourceDialect,
83275            >,
83276            offset: usize,
83277            depth: fidl::encoding::Depth,
83278        ) -> fidl::Result<()> {
83279            encoder.debug_check_bounds::<ProviderDatagramSocketWithOptionsRequest>(offset);
83280            // Zero out padding regions. There's no need to apply masks
83281            // because the unmasked parts will be overwritten by fields.
83282            unsafe {
83283                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
83284                (ptr as *mut u64).write_unaligned(0);
83285            }
83286            // Write the fields.
83287            self.0.encode(encoder, offset + 0, depth)?;
83288            self.1.encode(encoder, offset + 4, depth)?;
83289            self.2.encode(encoder, offset + 8, depth)?;
83290            Ok(())
83291        }
83292    }
83293
83294    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83295        for ProviderDatagramSocketWithOptionsRequest
83296    {
83297        #[inline(always)]
83298        fn new_empty() -> Self {
83299            Self {
83300                domain: fidl::new_empty!(Domain, fidl::encoding::DefaultFuchsiaResourceDialect),
83301                proto: fidl::new_empty!(
83302                    DatagramSocketProtocol,
83303                    fidl::encoding::DefaultFuchsiaResourceDialect
83304                ),
83305                opts: fidl::new_empty!(
83306                    SocketCreationOptions,
83307                    fidl::encoding::DefaultFuchsiaResourceDialect
83308                ),
83309            }
83310        }
83311
83312        #[inline]
83313        unsafe fn decode(
83314            &mut self,
83315            decoder: &mut fidl::encoding::Decoder<
83316                '_,
83317                fidl::encoding::DefaultFuchsiaResourceDialect,
83318            >,
83319            offset: usize,
83320            _depth: fidl::encoding::Depth,
83321        ) -> fidl::Result<()> {
83322            decoder.debug_check_bounds::<Self>(offset);
83323            // Verify that padding bytes are zero.
83324            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
83325            let padval = unsafe { (ptr as *const u64).read_unaligned() };
83326            let mask = 0xffff0000u64;
83327            let maskedval = padval & mask;
83328            if maskedval != 0 {
83329                return Err(fidl::Error::NonZeroPadding {
83330                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
83331                });
83332            }
83333            fidl::decode!(
83334                Domain,
83335                fidl::encoding::DefaultFuchsiaResourceDialect,
83336                &mut self.domain,
83337                decoder,
83338                offset + 0,
83339                _depth
83340            )?;
83341            fidl::decode!(
83342                DatagramSocketProtocol,
83343                fidl::encoding::DefaultFuchsiaResourceDialect,
83344                &mut self.proto,
83345                decoder,
83346                offset + 4,
83347                _depth
83348            )?;
83349            fidl::decode!(
83350                SocketCreationOptions,
83351                fidl::encoding::DefaultFuchsiaResourceDialect,
83352                &mut self.opts,
83353                decoder,
83354                offset + 8,
83355                _depth
83356            )?;
83357            Ok(())
83358        }
83359    }
83360
83361    impl fidl::encoding::ResourceTypeMarker for ProviderStreamSocketWithOptionsRequest {
83362        type Borrowed<'a> = &'a mut Self;
83363        fn take_or_borrow<'a>(
83364            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83365        ) -> Self::Borrowed<'a> {
83366            value
83367        }
83368    }
83369
83370    unsafe impl fidl::encoding::TypeMarker for ProviderStreamSocketWithOptionsRequest {
83371        type Owned = Self;
83372
83373        #[inline(always)]
83374        fn inline_align(_context: fidl::encoding::Context) -> usize {
83375            8
83376        }
83377
83378        #[inline(always)]
83379        fn inline_size(_context: fidl::encoding::Context) -> usize {
83380            24
83381        }
83382    }
83383
83384    unsafe impl
83385        fidl::encoding::Encode<
83386            ProviderStreamSocketWithOptionsRequest,
83387            fidl::encoding::DefaultFuchsiaResourceDialect,
83388        > for &mut ProviderStreamSocketWithOptionsRequest
83389    {
83390        #[inline]
83391        unsafe fn encode(
83392            self,
83393            encoder: &mut fidl::encoding::Encoder<
83394                '_,
83395                fidl::encoding::DefaultFuchsiaResourceDialect,
83396            >,
83397            offset: usize,
83398            _depth: fidl::encoding::Depth,
83399        ) -> fidl::Result<()> {
83400            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsRequest>(offset);
83401            // Delegate to tuple encoding.
83402            fidl::encoding::Encode::<
83403                ProviderStreamSocketWithOptionsRequest,
83404                fidl::encoding::DefaultFuchsiaResourceDialect,
83405            >::encode(
83406                (
83407                    <Domain as fidl::encoding::ValueTypeMarker>::borrow(&self.domain),
83408                    <StreamSocketProtocol as fidl::encoding::ValueTypeMarker>::borrow(&self.proto),
83409                    <SocketCreationOptions as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
83410                        &mut self.opts,
83411                    ),
83412                ),
83413                encoder,
83414                offset,
83415                _depth,
83416            )
83417        }
83418    }
83419    unsafe impl<
83420        T0: fidl::encoding::Encode<Domain, fidl::encoding::DefaultFuchsiaResourceDialect>,
83421        T1: fidl::encoding::Encode<StreamSocketProtocol, fidl::encoding::DefaultFuchsiaResourceDialect>,
83422        T2: fidl::encoding::Encode<
83423                SocketCreationOptions,
83424                fidl::encoding::DefaultFuchsiaResourceDialect,
83425            >,
83426    >
83427        fidl::encoding::Encode<
83428            ProviderStreamSocketWithOptionsRequest,
83429            fidl::encoding::DefaultFuchsiaResourceDialect,
83430        > for (T0, T1, T2)
83431    {
83432        #[inline]
83433        unsafe fn encode(
83434            self,
83435            encoder: &mut fidl::encoding::Encoder<
83436                '_,
83437                fidl::encoding::DefaultFuchsiaResourceDialect,
83438            >,
83439            offset: usize,
83440            depth: fidl::encoding::Depth,
83441        ) -> fidl::Result<()> {
83442            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsRequest>(offset);
83443            // Zero out padding regions. There's no need to apply masks
83444            // because the unmasked parts will be overwritten by fields.
83445            unsafe {
83446                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
83447                (ptr as *mut u64).write_unaligned(0);
83448            }
83449            // Write the fields.
83450            self.0.encode(encoder, offset + 0, depth)?;
83451            self.1.encode(encoder, offset + 4, depth)?;
83452            self.2.encode(encoder, offset + 8, depth)?;
83453            Ok(())
83454        }
83455    }
83456
83457    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83458        for ProviderStreamSocketWithOptionsRequest
83459    {
83460        #[inline(always)]
83461        fn new_empty() -> Self {
83462            Self {
83463                domain: fidl::new_empty!(Domain, fidl::encoding::DefaultFuchsiaResourceDialect),
83464                proto: fidl::new_empty!(
83465                    StreamSocketProtocol,
83466                    fidl::encoding::DefaultFuchsiaResourceDialect
83467                ),
83468                opts: fidl::new_empty!(
83469                    SocketCreationOptions,
83470                    fidl::encoding::DefaultFuchsiaResourceDialect
83471                ),
83472            }
83473        }
83474
83475        #[inline]
83476        unsafe fn decode(
83477            &mut self,
83478            decoder: &mut fidl::encoding::Decoder<
83479                '_,
83480                fidl::encoding::DefaultFuchsiaResourceDialect,
83481            >,
83482            offset: usize,
83483            _depth: fidl::encoding::Depth,
83484        ) -> fidl::Result<()> {
83485            decoder.debug_check_bounds::<Self>(offset);
83486            // Verify that padding bytes are zero.
83487            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
83488            let padval = unsafe { (ptr as *const u64).read_unaligned() };
83489            let mask = 0xffff0000u64;
83490            let maskedval = padval & mask;
83491            if maskedval != 0 {
83492                return Err(fidl::Error::NonZeroPadding {
83493                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
83494                });
83495            }
83496            fidl::decode!(
83497                Domain,
83498                fidl::encoding::DefaultFuchsiaResourceDialect,
83499                &mut self.domain,
83500                decoder,
83501                offset + 0,
83502                _depth
83503            )?;
83504            fidl::decode!(
83505                StreamSocketProtocol,
83506                fidl::encoding::DefaultFuchsiaResourceDialect,
83507                &mut self.proto,
83508                decoder,
83509                offset + 4,
83510                _depth
83511            )?;
83512            fidl::decode!(
83513                SocketCreationOptions,
83514                fidl::encoding::DefaultFuchsiaResourceDialect,
83515                &mut self.opts,
83516                decoder,
83517                offset + 8,
83518                _depth
83519            )?;
83520            Ok(())
83521        }
83522    }
83523
83524    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketDeprecatedResponse {
83525        type Borrowed<'a> = &'a mut Self;
83526        fn take_or_borrow<'a>(
83527            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83528        ) -> Self::Borrowed<'a> {
83529            value
83530        }
83531    }
83532
83533    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketDeprecatedResponse {
83534        type Owned = Self;
83535
83536        #[inline(always)]
83537        fn inline_align(_context: fidl::encoding::Context) -> usize {
83538            4
83539        }
83540
83541        #[inline(always)]
83542        fn inline_size(_context: fidl::encoding::Context) -> usize {
83543            4
83544        }
83545    }
83546
83547    unsafe impl
83548        fidl::encoding::Encode<
83549            ProviderDatagramSocketDeprecatedResponse,
83550            fidl::encoding::DefaultFuchsiaResourceDialect,
83551        > for &mut ProviderDatagramSocketDeprecatedResponse
83552    {
83553        #[inline]
83554        unsafe fn encode(
83555            self,
83556            encoder: &mut fidl::encoding::Encoder<
83557                '_,
83558                fidl::encoding::DefaultFuchsiaResourceDialect,
83559            >,
83560            offset: usize,
83561            _depth: fidl::encoding::Depth,
83562        ) -> fidl::Result<()> {
83563            encoder.debug_check_bounds::<ProviderDatagramSocketDeprecatedResponse>(offset);
83564            // Delegate to tuple encoding.
83565            fidl::encoding::Encode::<
83566                ProviderDatagramSocketDeprecatedResponse,
83567                fidl::encoding::DefaultFuchsiaResourceDialect,
83568            >::encode(
83569                (<fidl::encoding::Endpoint<
83570                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
83571                > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
83572                    &mut self.s
83573                ),),
83574                encoder,
83575                offset,
83576                _depth,
83577            )
83578        }
83579    }
83580    unsafe impl<
83581        T0: fidl::encoding::Encode<
83582                fidl::encoding::Endpoint<
83583                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
83584                >,
83585                fidl::encoding::DefaultFuchsiaResourceDialect,
83586            >,
83587    >
83588        fidl::encoding::Encode<
83589            ProviderDatagramSocketDeprecatedResponse,
83590            fidl::encoding::DefaultFuchsiaResourceDialect,
83591        > for (T0,)
83592    {
83593        #[inline]
83594        unsafe fn encode(
83595            self,
83596            encoder: &mut fidl::encoding::Encoder<
83597                '_,
83598                fidl::encoding::DefaultFuchsiaResourceDialect,
83599            >,
83600            offset: usize,
83601            depth: fidl::encoding::Depth,
83602        ) -> fidl::Result<()> {
83603            encoder.debug_check_bounds::<ProviderDatagramSocketDeprecatedResponse>(offset);
83604            // Zero out padding regions. There's no need to apply masks
83605            // because the unmasked parts will be overwritten by fields.
83606            // Write the fields.
83607            self.0.encode(encoder, offset + 0, depth)?;
83608            Ok(())
83609        }
83610    }
83611
83612    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83613        for ProviderDatagramSocketDeprecatedResponse
83614    {
83615        #[inline(always)]
83616        fn new_empty() -> Self {
83617            Self {
83618                s: fidl::new_empty!(
83619                    fidl::encoding::Endpoint<
83620                        fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
83621                    >,
83622                    fidl::encoding::DefaultFuchsiaResourceDialect
83623                ),
83624            }
83625        }
83626
83627        #[inline]
83628        unsafe fn decode(
83629            &mut self,
83630            decoder: &mut fidl::encoding::Decoder<
83631                '_,
83632                fidl::encoding::DefaultFuchsiaResourceDialect,
83633            >,
83634            offset: usize,
83635            _depth: fidl::encoding::Depth,
83636        ) -> fidl::Result<()> {
83637            decoder.debug_check_bounds::<Self>(offset);
83638            // Verify that padding bytes are zero.
83639            fidl::decode!(
83640                fidl::encoding::Endpoint<
83641                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
83642                >,
83643                fidl::encoding::DefaultFuchsiaResourceDialect,
83644                &mut self.s,
83645                decoder,
83646                offset + 0,
83647                _depth
83648            )?;
83649            Ok(())
83650        }
83651    }
83652
83653    impl fidl::encoding::ResourceTypeMarker for ProviderStreamSocketWithOptionsResponse {
83654        type Borrowed<'a> = &'a mut Self;
83655        fn take_or_borrow<'a>(
83656            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83657        ) -> Self::Borrowed<'a> {
83658            value
83659        }
83660    }
83661
83662    unsafe impl fidl::encoding::TypeMarker for ProviderStreamSocketWithOptionsResponse {
83663        type Owned = Self;
83664
83665        #[inline(always)]
83666        fn inline_align(_context: fidl::encoding::Context) -> usize {
83667            4
83668        }
83669
83670        #[inline(always)]
83671        fn inline_size(_context: fidl::encoding::Context) -> usize {
83672            4
83673        }
83674    }
83675
83676    unsafe impl
83677        fidl::encoding::Encode<
83678            ProviderStreamSocketWithOptionsResponse,
83679            fidl::encoding::DefaultFuchsiaResourceDialect,
83680        > for &mut ProviderStreamSocketWithOptionsResponse
83681    {
83682        #[inline]
83683        unsafe fn encode(
83684            self,
83685            encoder: &mut fidl::encoding::Encoder<
83686                '_,
83687                fidl::encoding::DefaultFuchsiaResourceDialect,
83688            >,
83689            offset: usize,
83690            _depth: fidl::encoding::Depth,
83691        ) -> fidl::Result<()> {
83692            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsResponse>(offset);
83693            // Delegate to tuple encoding.
83694            fidl::encoding::Encode::<ProviderStreamSocketWithOptionsResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
83695                (
83696                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.s),
83697                ),
83698                encoder, offset, _depth
83699            )
83700        }
83701    }
83702    unsafe impl<
83703        T0: fidl::encoding::Encode<
83704                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83705                fidl::encoding::DefaultFuchsiaResourceDialect,
83706            >,
83707    >
83708        fidl::encoding::Encode<
83709            ProviderStreamSocketWithOptionsResponse,
83710            fidl::encoding::DefaultFuchsiaResourceDialect,
83711        > for (T0,)
83712    {
83713        #[inline]
83714        unsafe fn encode(
83715            self,
83716            encoder: &mut fidl::encoding::Encoder<
83717                '_,
83718                fidl::encoding::DefaultFuchsiaResourceDialect,
83719            >,
83720            offset: usize,
83721            depth: fidl::encoding::Depth,
83722        ) -> fidl::Result<()> {
83723            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsResponse>(offset);
83724            // Zero out padding regions. There's no need to apply masks
83725            // because the unmasked parts will be overwritten by fields.
83726            // Write the fields.
83727            self.0.encode(encoder, offset + 0, depth)?;
83728            Ok(())
83729        }
83730    }
83731
83732    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83733        for ProviderStreamSocketWithOptionsResponse
83734    {
83735        #[inline(always)]
83736        fn new_empty() -> Self {
83737            Self {
83738                s: fidl::new_empty!(
83739                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83740                    fidl::encoding::DefaultFuchsiaResourceDialect
83741                ),
83742            }
83743        }
83744
83745        #[inline]
83746        unsafe fn decode(
83747            &mut self,
83748            decoder: &mut fidl::encoding::Decoder<
83749                '_,
83750                fidl::encoding::DefaultFuchsiaResourceDialect,
83751            >,
83752            offset: usize,
83753            _depth: fidl::encoding::Depth,
83754        ) -> fidl::Result<()> {
83755            decoder.debug_check_bounds::<Self>(offset);
83756            // Verify that padding bytes are zero.
83757            fidl::decode!(
83758                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83759                fidl::encoding::DefaultFuchsiaResourceDialect,
83760                &mut self.s,
83761                decoder,
83762                offset + 0,
83763                _depth
83764            )?;
83765            Ok(())
83766        }
83767    }
83768
83769    impl fidl::encoding::ResourceTypeMarker for ProviderStreamSocketResponse {
83770        type Borrowed<'a> = &'a mut Self;
83771        fn take_or_borrow<'a>(
83772            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83773        ) -> Self::Borrowed<'a> {
83774            value
83775        }
83776    }
83777
83778    unsafe impl fidl::encoding::TypeMarker for ProviderStreamSocketResponse {
83779        type Owned = Self;
83780
83781        #[inline(always)]
83782        fn inline_align(_context: fidl::encoding::Context) -> usize {
83783            4
83784        }
83785
83786        #[inline(always)]
83787        fn inline_size(_context: fidl::encoding::Context) -> usize {
83788            4
83789        }
83790    }
83791
83792    unsafe impl
83793        fidl::encoding::Encode<
83794            ProviderStreamSocketResponse,
83795            fidl::encoding::DefaultFuchsiaResourceDialect,
83796        > for &mut ProviderStreamSocketResponse
83797    {
83798        #[inline]
83799        unsafe fn encode(
83800            self,
83801            encoder: &mut fidl::encoding::Encoder<
83802                '_,
83803                fidl::encoding::DefaultFuchsiaResourceDialect,
83804            >,
83805            offset: usize,
83806            _depth: fidl::encoding::Depth,
83807        ) -> fidl::Result<()> {
83808            encoder.debug_check_bounds::<ProviderStreamSocketResponse>(offset);
83809            // Delegate to tuple encoding.
83810            fidl::encoding::Encode::<ProviderStreamSocketResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
83811                (
83812                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.s),
83813                ),
83814                encoder, offset, _depth
83815            )
83816        }
83817    }
83818    unsafe impl<
83819        T0: fidl::encoding::Encode<
83820                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83821                fidl::encoding::DefaultFuchsiaResourceDialect,
83822            >,
83823    >
83824        fidl::encoding::Encode<
83825            ProviderStreamSocketResponse,
83826            fidl::encoding::DefaultFuchsiaResourceDialect,
83827        > for (T0,)
83828    {
83829        #[inline]
83830        unsafe fn encode(
83831            self,
83832            encoder: &mut fidl::encoding::Encoder<
83833                '_,
83834                fidl::encoding::DefaultFuchsiaResourceDialect,
83835            >,
83836            offset: usize,
83837            depth: fidl::encoding::Depth,
83838        ) -> fidl::Result<()> {
83839            encoder.debug_check_bounds::<ProviderStreamSocketResponse>(offset);
83840            // Zero out padding regions. There's no need to apply masks
83841            // because the unmasked parts will be overwritten by fields.
83842            // Write the fields.
83843            self.0.encode(encoder, offset + 0, depth)?;
83844            Ok(())
83845        }
83846    }
83847
83848    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83849        for ProviderStreamSocketResponse
83850    {
83851        #[inline(always)]
83852        fn new_empty() -> Self {
83853            Self {
83854                s: fidl::new_empty!(
83855                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83856                    fidl::encoding::DefaultFuchsiaResourceDialect
83857                ),
83858            }
83859        }
83860
83861        #[inline]
83862        unsafe fn decode(
83863            &mut self,
83864            decoder: &mut fidl::encoding::Decoder<
83865                '_,
83866                fidl::encoding::DefaultFuchsiaResourceDialect,
83867            >,
83868            offset: usize,
83869            _depth: fidl::encoding::Depth,
83870        ) -> fidl::Result<()> {
83871            decoder.debug_check_bounds::<Self>(offset);
83872            // Verify that padding bytes are zero.
83873            fidl::decode!(
83874                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83875                fidl::encoding::DefaultFuchsiaResourceDialect,
83876                &mut self.s,
83877                decoder,
83878                offset + 0,
83879                _depth
83880            )?;
83881            Ok(())
83882        }
83883    }
83884
83885    impl fidl::encoding::ResourceTypeMarker for StreamSocketAcceptResponse {
83886        type Borrowed<'a> = &'a mut Self;
83887        fn take_or_borrow<'a>(
83888            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83889        ) -> Self::Borrowed<'a> {
83890            value
83891        }
83892    }
83893
83894    unsafe impl fidl::encoding::TypeMarker for StreamSocketAcceptResponse {
83895        type Owned = Self;
83896
83897        #[inline(always)]
83898        fn inline_align(_context: fidl::encoding::Context) -> usize {
83899            8
83900        }
83901
83902        #[inline(always)]
83903        fn inline_size(_context: fidl::encoding::Context) -> usize {
83904            24
83905        }
83906    }
83907
83908    unsafe impl
83909        fidl::encoding::Encode<
83910            StreamSocketAcceptResponse,
83911            fidl::encoding::DefaultFuchsiaResourceDialect,
83912        > for &mut StreamSocketAcceptResponse
83913    {
83914        #[inline]
83915        unsafe fn encode(
83916            self,
83917            encoder: &mut fidl::encoding::Encoder<
83918                '_,
83919                fidl::encoding::DefaultFuchsiaResourceDialect,
83920            >,
83921            offset: usize,
83922            _depth: fidl::encoding::Depth,
83923        ) -> fidl::Result<()> {
83924            encoder.debug_check_bounds::<StreamSocketAcceptResponse>(offset);
83925            // Delegate to tuple encoding.
83926            fidl::encoding::Encode::<StreamSocketAcceptResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
83927                (
83928                    <fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress> as fidl::encoding::ValueTypeMarker>::borrow(&self.addr),
83929                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.s),
83930                ),
83931                encoder, offset, _depth
83932            )
83933        }
83934    }
83935    unsafe impl<
83936        T0: fidl::encoding::Encode<
83937                fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress>,
83938                fidl::encoding::DefaultFuchsiaResourceDialect,
83939            >,
83940        T1: fidl::encoding::Encode<
83941                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83942                fidl::encoding::DefaultFuchsiaResourceDialect,
83943            >,
83944    >
83945        fidl::encoding::Encode<
83946            StreamSocketAcceptResponse,
83947            fidl::encoding::DefaultFuchsiaResourceDialect,
83948        > for (T0, T1)
83949    {
83950        #[inline]
83951        unsafe fn encode(
83952            self,
83953            encoder: &mut fidl::encoding::Encoder<
83954                '_,
83955                fidl::encoding::DefaultFuchsiaResourceDialect,
83956            >,
83957            offset: usize,
83958            depth: fidl::encoding::Depth,
83959        ) -> fidl::Result<()> {
83960            encoder.debug_check_bounds::<StreamSocketAcceptResponse>(offset);
83961            // Zero out padding regions. There's no need to apply masks
83962            // because the unmasked parts will be overwritten by fields.
83963            unsafe {
83964                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
83965                (ptr as *mut u64).write_unaligned(0);
83966            }
83967            // Write the fields.
83968            self.0.encode(encoder, offset + 0, depth)?;
83969            self.1.encode(encoder, offset + 16, depth)?;
83970            Ok(())
83971        }
83972    }
83973
83974    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83975        for StreamSocketAcceptResponse
83976    {
83977        #[inline(always)]
83978        fn new_empty() -> Self {
83979            Self {
83980                addr: fidl::new_empty!(
83981                    fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress>,
83982                    fidl::encoding::DefaultFuchsiaResourceDialect
83983                ),
83984                s: fidl::new_empty!(
83985                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83986                    fidl::encoding::DefaultFuchsiaResourceDialect
83987                ),
83988            }
83989        }
83990
83991        #[inline]
83992        unsafe fn decode(
83993            &mut self,
83994            decoder: &mut fidl::encoding::Decoder<
83995                '_,
83996                fidl::encoding::DefaultFuchsiaResourceDialect,
83997            >,
83998            offset: usize,
83999            _depth: fidl::encoding::Depth,
84000        ) -> fidl::Result<()> {
84001            decoder.debug_check_bounds::<Self>(offset);
84002            // Verify that padding bytes are zero.
84003            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
84004            let padval = unsafe { (ptr as *const u64).read_unaligned() };
84005            let mask = 0xffffffff00000000u64;
84006            let maskedval = padval & mask;
84007            if maskedval != 0 {
84008                return Err(fidl::Error::NonZeroPadding {
84009                    padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
84010                });
84011            }
84012            fidl::decode!(
84013                fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress>,
84014                fidl::encoding::DefaultFuchsiaResourceDialect,
84015                &mut self.addr,
84016                decoder,
84017                offset + 0,
84018                _depth
84019            )?;
84020            fidl::decode!(
84021                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
84022                fidl::encoding::DefaultFuchsiaResourceDialect,
84023                &mut self.s,
84024                decoder,
84025                offset + 16,
84026                _depth
84027            )?;
84028            Ok(())
84029        }
84030    }
84031
84032    impl DatagramSocketDescribeResponse {
84033        #[inline(always)]
84034        fn max_ordinal_present(&self) -> u64 {
84035            if let Some(_) = self.metadata_encoding_protocol_version {
84036                return 4;
84037            }
84038            if let Some(_) = self.rx_meta_buf_size {
84039                return 3;
84040            }
84041            if let Some(_) = self.tx_meta_buf_size {
84042                return 2;
84043            }
84044            if let Some(_) = self.socket {
84045                return 1;
84046            }
84047            0
84048        }
84049    }
84050
84051    impl fidl::encoding::ResourceTypeMarker for DatagramSocketDescribeResponse {
84052        type Borrowed<'a> = &'a mut Self;
84053        fn take_or_borrow<'a>(
84054            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
84055        ) -> Self::Borrowed<'a> {
84056            value
84057        }
84058    }
84059
84060    unsafe impl fidl::encoding::TypeMarker for DatagramSocketDescribeResponse {
84061        type Owned = Self;
84062
84063        #[inline(always)]
84064        fn inline_align(_context: fidl::encoding::Context) -> usize {
84065            8
84066        }
84067
84068        #[inline(always)]
84069        fn inline_size(_context: fidl::encoding::Context) -> usize {
84070            16
84071        }
84072    }
84073
84074    unsafe impl
84075        fidl::encoding::Encode<
84076            DatagramSocketDescribeResponse,
84077            fidl::encoding::DefaultFuchsiaResourceDialect,
84078        > for &mut DatagramSocketDescribeResponse
84079    {
84080        unsafe fn encode(
84081            self,
84082            encoder: &mut fidl::encoding::Encoder<
84083                '_,
84084                fidl::encoding::DefaultFuchsiaResourceDialect,
84085            >,
84086            offset: usize,
84087            mut depth: fidl::encoding::Depth,
84088        ) -> fidl::Result<()> {
84089            encoder.debug_check_bounds::<DatagramSocketDescribeResponse>(offset);
84090            // Vector header
84091            let max_ordinal: u64 = self.max_ordinal_present();
84092            encoder.write_num(max_ordinal, offset);
84093            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
84094            // Calling encoder.out_of_line_offset(0) is not allowed.
84095            if max_ordinal == 0 {
84096                return Ok(());
84097            }
84098            depth.increment()?;
84099            let envelope_size = 8;
84100            let bytes_len = max_ordinal as usize * envelope_size;
84101            #[allow(unused_variables)]
84102            let offset = encoder.out_of_line_offset(bytes_len);
84103            let mut _prev_end_offset: usize = 0;
84104            if 1 > max_ordinal {
84105                return Ok(());
84106            }
84107
84108            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84109            // are envelope_size bytes.
84110            let cur_offset: usize = (1 - 1) * envelope_size;
84111
84112            // Zero reserved fields.
84113            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84114
84115            // Safety:
84116            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84117            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84118            //   envelope_size bytes, there is always sufficient room.
84119            fidl::encoding::encode_in_envelope_optional::<
84120                fidl::encoding::HandleType<
84121                    fidl::Socket,
84122                    { fidl::ObjectType::SOCKET.into_raw() },
84123                    2147483648,
84124                >,
84125                fidl::encoding::DefaultFuchsiaResourceDialect,
84126            >(
84127                self.socket.as_mut().map(
84128                    <fidl::encoding::HandleType<
84129                        fidl::Socket,
84130                        { fidl::ObjectType::SOCKET.into_raw() },
84131                        2147483648,
84132                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
84133                ),
84134                encoder,
84135                offset + cur_offset,
84136                depth,
84137            )?;
84138
84139            _prev_end_offset = cur_offset + envelope_size;
84140            if 2 > max_ordinal {
84141                return Ok(());
84142            }
84143
84144            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84145            // are envelope_size bytes.
84146            let cur_offset: usize = (2 - 1) * envelope_size;
84147
84148            // Zero reserved fields.
84149            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84150
84151            // Safety:
84152            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84153            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84154            //   envelope_size bytes, there is always sufficient room.
84155            fidl::encoding::encode_in_envelope_optional::<
84156                u64,
84157                fidl::encoding::DefaultFuchsiaResourceDialect,
84158            >(
84159                self.tx_meta_buf_size
84160                    .as_ref()
84161                    .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
84162                encoder,
84163                offset + cur_offset,
84164                depth,
84165            )?;
84166
84167            _prev_end_offset = cur_offset + envelope_size;
84168            if 3 > max_ordinal {
84169                return Ok(());
84170            }
84171
84172            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84173            // are envelope_size bytes.
84174            let cur_offset: usize = (3 - 1) * envelope_size;
84175
84176            // Zero reserved fields.
84177            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84178
84179            // Safety:
84180            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84181            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84182            //   envelope_size bytes, there is always sufficient room.
84183            fidl::encoding::encode_in_envelope_optional::<
84184                u64,
84185                fidl::encoding::DefaultFuchsiaResourceDialect,
84186            >(
84187                self.rx_meta_buf_size
84188                    .as_ref()
84189                    .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
84190                encoder,
84191                offset + cur_offset,
84192                depth,
84193            )?;
84194
84195            _prev_end_offset = cur_offset + envelope_size;
84196            if 4 > max_ordinal {
84197                return Ok(());
84198            }
84199
84200            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84201            // are envelope_size bytes.
84202            let cur_offset: usize = (4 - 1) * envelope_size;
84203
84204            // Zero reserved fields.
84205            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84206
84207            // Safety:
84208            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84209            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84210            //   envelope_size bytes, there is always sufficient room.
84211            fidl::encoding::encode_in_envelope_optional::<
84212                UdpMetadataEncodingProtocolVersion,
84213                fidl::encoding::DefaultFuchsiaResourceDialect,
84214            >(
84215                self.metadata_encoding_protocol_version.as_ref().map(
84216                    <UdpMetadataEncodingProtocolVersion as fidl::encoding::ValueTypeMarker>::borrow,
84217                ),
84218                encoder,
84219                offset + cur_offset,
84220                depth,
84221            )?;
84222
84223            _prev_end_offset = cur_offset + envelope_size;
84224
84225            Ok(())
84226        }
84227    }
84228
84229    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
84230        for DatagramSocketDescribeResponse
84231    {
84232        #[inline(always)]
84233        fn new_empty() -> Self {
84234            Self::default()
84235        }
84236
84237        unsafe fn decode(
84238            &mut self,
84239            decoder: &mut fidl::encoding::Decoder<
84240                '_,
84241                fidl::encoding::DefaultFuchsiaResourceDialect,
84242            >,
84243            offset: usize,
84244            mut depth: fidl::encoding::Depth,
84245        ) -> fidl::Result<()> {
84246            decoder.debug_check_bounds::<Self>(offset);
84247            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
84248                None => return Err(fidl::Error::NotNullable),
84249                Some(len) => len,
84250            };
84251            // Calling decoder.out_of_line_offset(0) is not allowed.
84252            if len == 0 {
84253                return Ok(());
84254            };
84255            depth.increment()?;
84256            let envelope_size = 8;
84257            let bytes_len = len * envelope_size;
84258            let offset = decoder.out_of_line_offset(bytes_len)?;
84259            // Decode the envelope for each type.
84260            let mut _next_ordinal_to_read = 0;
84261            let mut next_offset = offset;
84262            let end_offset = offset + bytes_len;
84263            _next_ordinal_to_read += 1;
84264            if next_offset >= end_offset {
84265                return Ok(());
84266            }
84267
84268            // Decode unknown envelopes for gaps in ordinals.
84269            while _next_ordinal_to_read < 1 {
84270                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84271                _next_ordinal_to_read += 1;
84272                next_offset += envelope_size;
84273            }
84274
84275            let next_out_of_line = decoder.next_out_of_line();
84276            let handles_before = decoder.remaining_handles();
84277            if let Some((inlined, num_bytes, num_handles)) =
84278                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84279            {
84280                let member_inline_size = <fidl::encoding::HandleType<
84281                    fidl::Socket,
84282                    { fidl::ObjectType::SOCKET.into_raw() },
84283                    2147483648,
84284                > as fidl::encoding::TypeMarker>::inline_size(
84285                    decoder.context
84286                );
84287                if inlined != (member_inline_size <= 4) {
84288                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84289                }
84290                let inner_offset;
84291                let mut inner_depth = depth.clone();
84292                if inlined {
84293                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84294                    inner_offset = next_offset;
84295                } else {
84296                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84297                    inner_depth.increment()?;
84298                }
84299                let val_ref =
84300                self.socket.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect));
84301                fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
84302                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84303                {
84304                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84305                }
84306                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84307                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84308                }
84309            }
84310
84311            next_offset += envelope_size;
84312            _next_ordinal_to_read += 1;
84313            if next_offset >= end_offset {
84314                return Ok(());
84315            }
84316
84317            // Decode unknown envelopes for gaps in ordinals.
84318            while _next_ordinal_to_read < 2 {
84319                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84320                _next_ordinal_to_read += 1;
84321                next_offset += envelope_size;
84322            }
84323
84324            let next_out_of_line = decoder.next_out_of_line();
84325            let handles_before = decoder.remaining_handles();
84326            if let Some((inlined, num_bytes, num_handles)) =
84327                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84328            {
84329                let member_inline_size =
84330                    <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
84331                if inlined != (member_inline_size <= 4) {
84332                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84333                }
84334                let inner_offset;
84335                let mut inner_depth = depth.clone();
84336                if inlined {
84337                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84338                    inner_offset = next_offset;
84339                } else {
84340                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84341                    inner_depth.increment()?;
84342                }
84343                let val_ref = self.tx_meta_buf_size.get_or_insert_with(|| {
84344                    fidl::new_empty!(u64, fidl::encoding::DefaultFuchsiaResourceDialect)
84345                });
84346                fidl::decode!(
84347                    u64,
84348                    fidl::encoding::DefaultFuchsiaResourceDialect,
84349                    val_ref,
84350                    decoder,
84351                    inner_offset,
84352                    inner_depth
84353                )?;
84354                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84355                {
84356                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84357                }
84358                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84359                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84360                }
84361            }
84362
84363            next_offset += envelope_size;
84364            _next_ordinal_to_read += 1;
84365            if next_offset >= end_offset {
84366                return Ok(());
84367            }
84368
84369            // Decode unknown envelopes for gaps in ordinals.
84370            while _next_ordinal_to_read < 3 {
84371                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84372                _next_ordinal_to_read += 1;
84373                next_offset += envelope_size;
84374            }
84375
84376            let next_out_of_line = decoder.next_out_of_line();
84377            let handles_before = decoder.remaining_handles();
84378            if let Some((inlined, num_bytes, num_handles)) =
84379                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84380            {
84381                let member_inline_size =
84382                    <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
84383                if inlined != (member_inline_size <= 4) {
84384                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84385                }
84386                let inner_offset;
84387                let mut inner_depth = depth.clone();
84388                if inlined {
84389                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84390                    inner_offset = next_offset;
84391                } else {
84392                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84393                    inner_depth.increment()?;
84394                }
84395                let val_ref = self.rx_meta_buf_size.get_or_insert_with(|| {
84396                    fidl::new_empty!(u64, fidl::encoding::DefaultFuchsiaResourceDialect)
84397                });
84398                fidl::decode!(
84399                    u64,
84400                    fidl::encoding::DefaultFuchsiaResourceDialect,
84401                    val_ref,
84402                    decoder,
84403                    inner_offset,
84404                    inner_depth
84405                )?;
84406                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84407                {
84408                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84409                }
84410                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84411                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84412                }
84413            }
84414
84415            next_offset += envelope_size;
84416            _next_ordinal_to_read += 1;
84417            if next_offset >= end_offset {
84418                return Ok(());
84419            }
84420
84421            // Decode unknown envelopes for gaps in ordinals.
84422            while _next_ordinal_to_read < 4 {
84423                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84424                _next_ordinal_to_read += 1;
84425                next_offset += envelope_size;
84426            }
84427
84428            let next_out_of_line = decoder.next_out_of_line();
84429            let handles_before = decoder.remaining_handles();
84430            if let Some((inlined, num_bytes, num_handles)) =
84431                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84432            {
84433                let member_inline_size =
84434                    <UdpMetadataEncodingProtocolVersion as fidl::encoding::TypeMarker>::inline_size(
84435                        decoder.context,
84436                    );
84437                if inlined != (member_inline_size <= 4) {
84438                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84439                }
84440                let inner_offset;
84441                let mut inner_depth = depth.clone();
84442                if inlined {
84443                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84444                    inner_offset = next_offset;
84445                } else {
84446                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84447                    inner_depth.increment()?;
84448                }
84449                let val_ref = self.metadata_encoding_protocol_version.get_or_insert_with(|| {
84450                    fidl::new_empty!(
84451                        UdpMetadataEncodingProtocolVersion,
84452                        fidl::encoding::DefaultFuchsiaResourceDialect
84453                    )
84454                });
84455                fidl::decode!(
84456                    UdpMetadataEncodingProtocolVersion,
84457                    fidl::encoding::DefaultFuchsiaResourceDialect,
84458                    val_ref,
84459                    decoder,
84460                    inner_offset,
84461                    inner_depth
84462                )?;
84463                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84464                {
84465                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84466                }
84467                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84468                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84469                }
84470            }
84471
84472            next_offset += envelope_size;
84473
84474            // Decode the remaining unknown envelopes.
84475            while next_offset < end_offset {
84476                _next_ordinal_to_read += 1;
84477                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84478                next_offset += envelope_size;
84479            }
84480
84481            Ok(())
84482        }
84483    }
84484
84485    impl DatagramSocketRecvMsgPostflightResponse {
84486        #[inline(always)]
84487        fn max_ordinal_present(&self) -> u64 {
84488            if let Some(_) = self.requests {
84489                return 3;
84490            }
84491            if let Some(_) = self.timestamp {
84492                return 2;
84493            }
84494            if let Some(_) = self.validity {
84495                return 1;
84496            }
84497            0
84498        }
84499    }
84500
84501    impl fidl::encoding::ResourceTypeMarker for DatagramSocketRecvMsgPostflightResponse {
84502        type Borrowed<'a> = &'a mut Self;
84503        fn take_or_borrow<'a>(
84504            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
84505        ) -> Self::Borrowed<'a> {
84506            value
84507        }
84508    }
84509
84510    unsafe impl fidl::encoding::TypeMarker for DatagramSocketRecvMsgPostflightResponse {
84511        type Owned = Self;
84512
84513        #[inline(always)]
84514        fn inline_align(_context: fidl::encoding::Context) -> usize {
84515            8
84516        }
84517
84518        #[inline(always)]
84519        fn inline_size(_context: fidl::encoding::Context) -> usize {
84520            16
84521        }
84522    }
84523
84524    unsafe impl
84525        fidl::encoding::Encode<
84526            DatagramSocketRecvMsgPostflightResponse,
84527            fidl::encoding::DefaultFuchsiaResourceDialect,
84528        > for &mut DatagramSocketRecvMsgPostflightResponse
84529    {
84530        unsafe fn encode(
84531            self,
84532            encoder: &mut fidl::encoding::Encoder<
84533                '_,
84534                fidl::encoding::DefaultFuchsiaResourceDialect,
84535            >,
84536            offset: usize,
84537            mut depth: fidl::encoding::Depth,
84538        ) -> fidl::Result<()> {
84539            encoder.debug_check_bounds::<DatagramSocketRecvMsgPostflightResponse>(offset);
84540            // Vector header
84541            let max_ordinal: u64 = self.max_ordinal_present();
84542            encoder.write_num(max_ordinal, offset);
84543            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
84544            // Calling encoder.out_of_line_offset(0) is not allowed.
84545            if max_ordinal == 0 {
84546                return Ok(());
84547            }
84548            depth.increment()?;
84549            let envelope_size = 8;
84550            let bytes_len = max_ordinal as usize * envelope_size;
84551            #[allow(unused_variables)]
84552            let offset = encoder.out_of_line_offset(bytes_len);
84553            let mut _prev_end_offset: usize = 0;
84554            if 1 > max_ordinal {
84555                return Ok(());
84556            }
84557
84558            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84559            // are envelope_size bytes.
84560            let cur_offset: usize = (1 - 1) * envelope_size;
84561
84562            // Zero reserved fields.
84563            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84564
84565            // Safety:
84566            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84567            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84568            //   envelope_size bytes, there is always sufficient room.
84569            fidl::encoding::encode_in_envelope_optional::<
84570                fidl::encoding::HandleType<
84571                    fidl::EventPair,
84572                    { fidl::ObjectType::EVENTPAIR.into_raw() },
84573                    49155,
84574                >,
84575                fidl::encoding::DefaultFuchsiaResourceDialect,
84576            >(
84577                self.validity.as_mut().map(
84578                    <fidl::encoding::HandleType<
84579                        fidl::EventPair,
84580                        { fidl::ObjectType::EVENTPAIR.into_raw() },
84581                        49155,
84582                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
84583                ),
84584                encoder,
84585                offset + cur_offset,
84586                depth,
84587            )?;
84588
84589            _prev_end_offset = cur_offset + envelope_size;
84590            if 2 > max_ordinal {
84591                return Ok(());
84592            }
84593
84594            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84595            // are envelope_size bytes.
84596            let cur_offset: usize = (2 - 1) * envelope_size;
84597
84598            // Zero reserved fields.
84599            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84600
84601            // Safety:
84602            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84603            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84604            //   envelope_size bytes, there is always sufficient room.
84605            fidl::encoding::encode_in_envelope_optional::<
84606                TimestampOption,
84607                fidl::encoding::DefaultFuchsiaResourceDialect,
84608            >(
84609                self.timestamp
84610                    .as_ref()
84611                    .map(<TimestampOption as fidl::encoding::ValueTypeMarker>::borrow),
84612                encoder,
84613                offset + cur_offset,
84614                depth,
84615            )?;
84616
84617            _prev_end_offset = cur_offset + envelope_size;
84618            if 3 > max_ordinal {
84619                return Ok(());
84620            }
84621
84622            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84623            // are envelope_size bytes.
84624            let cur_offset: usize = (3 - 1) * envelope_size;
84625
84626            // Zero reserved fields.
84627            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84628
84629            // Safety:
84630            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84631            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84632            //   envelope_size bytes, there is always sufficient room.
84633            fidl::encoding::encode_in_envelope_optional::<
84634                CmsgRequests,
84635                fidl::encoding::DefaultFuchsiaResourceDialect,
84636            >(
84637                self.requests
84638                    .as_ref()
84639                    .map(<CmsgRequests as fidl::encoding::ValueTypeMarker>::borrow),
84640                encoder,
84641                offset + cur_offset,
84642                depth,
84643            )?;
84644
84645            _prev_end_offset = cur_offset + envelope_size;
84646
84647            Ok(())
84648        }
84649    }
84650
84651    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
84652        for DatagramSocketRecvMsgPostflightResponse
84653    {
84654        #[inline(always)]
84655        fn new_empty() -> Self {
84656            Self::default()
84657        }
84658
84659        unsafe fn decode(
84660            &mut self,
84661            decoder: &mut fidl::encoding::Decoder<
84662                '_,
84663                fidl::encoding::DefaultFuchsiaResourceDialect,
84664            >,
84665            offset: usize,
84666            mut depth: fidl::encoding::Depth,
84667        ) -> fidl::Result<()> {
84668            decoder.debug_check_bounds::<Self>(offset);
84669            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
84670                None => return Err(fidl::Error::NotNullable),
84671                Some(len) => len,
84672            };
84673            // Calling decoder.out_of_line_offset(0) is not allowed.
84674            if len == 0 {
84675                return Ok(());
84676            };
84677            depth.increment()?;
84678            let envelope_size = 8;
84679            let bytes_len = len * envelope_size;
84680            let offset = decoder.out_of_line_offset(bytes_len)?;
84681            // Decode the envelope for each type.
84682            let mut _next_ordinal_to_read = 0;
84683            let mut next_offset = offset;
84684            let end_offset = offset + bytes_len;
84685            _next_ordinal_to_read += 1;
84686            if next_offset >= end_offset {
84687                return Ok(());
84688            }
84689
84690            // Decode unknown envelopes for gaps in ordinals.
84691            while _next_ordinal_to_read < 1 {
84692                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84693                _next_ordinal_to_read += 1;
84694                next_offset += envelope_size;
84695            }
84696
84697            let next_out_of_line = decoder.next_out_of_line();
84698            let handles_before = decoder.remaining_handles();
84699            if let Some((inlined, num_bytes, num_handles)) =
84700                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84701            {
84702                let member_inline_size = <fidl::encoding::HandleType<
84703                    fidl::EventPair,
84704                    { fidl::ObjectType::EVENTPAIR.into_raw() },
84705                    49155,
84706                > as fidl::encoding::TypeMarker>::inline_size(
84707                    decoder.context
84708                );
84709                if inlined != (member_inline_size <= 4) {
84710                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84711                }
84712                let inner_offset;
84713                let mut inner_depth = depth.clone();
84714                if inlined {
84715                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84716                    inner_offset = next_offset;
84717                } else {
84718                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84719                    inner_depth.increment()?;
84720                }
84721                let val_ref =
84722                self.validity.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 49155>, fidl::encoding::DefaultFuchsiaResourceDialect));
84723                fidl::decode!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 49155>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
84724                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84725                {
84726                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84727                }
84728                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84729                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84730                }
84731            }
84732
84733            next_offset += envelope_size;
84734            _next_ordinal_to_read += 1;
84735            if next_offset >= end_offset {
84736                return Ok(());
84737            }
84738
84739            // Decode unknown envelopes for gaps in ordinals.
84740            while _next_ordinal_to_read < 2 {
84741                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84742                _next_ordinal_to_read += 1;
84743                next_offset += envelope_size;
84744            }
84745
84746            let next_out_of_line = decoder.next_out_of_line();
84747            let handles_before = decoder.remaining_handles();
84748            if let Some((inlined, num_bytes, num_handles)) =
84749                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84750            {
84751                let member_inline_size =
84752                    <TimestampOption as fidl::encoding::TypeMarker>::inline_size(decoder.context);
84753                if inlined != (member_inline_size <= 4) {
84754                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84755                }
84756                let inner_offset;
84757                let mut inner_depth = depth.clone();
84758                if inlined {
84759                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84760                    inner_offset = next_offset;
84761                } else {
84762                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84763                    inner_depth.increment()?;
84764                }
84765                let val_ref = self.timestamp.get_or_insert_with(|| {
84766                    fidl::new_empty!(TimestampOption, fidl::encoding::DefaultFuchsiaResourceDialect)
84767                });
84768                fidl::decode!(
84769                    TimestampOption,
84770                    fidl::encoding::DefaultFuchsiaResourceDialect,
84771                    val_ref,
84772                    decoder,
84773                    inner_offset,
84774                    inner_depth
84775                )?;
84776                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84777                {
84778                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84779                }
84780                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84781                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84782                }
84783            }
84784
84785            next_offset += envelope_size;
84786            _next_ordinal_to_read += 1;
84787            if next_offset >= end_offset {
84788                return Ok(());
84789            }
84790
84791            // Decode unknown envelopes for gaps in ordinals.
84792            while _next_ordinal_to_read < 3 {
84793                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84794                _next_ordinal_to_read += 1;
84795                next_offset += envelope_size;
84796            }
84797
84798            let next_out_of_line = decoder.next_out_of_line();
84799            let handles_before = decoder.remaining_handles();
84800            if let Some((inlined, num_bytes, num_handles)) =
84801                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84802            {
84803                let member_inline_size =
84804                    <CmsgRequests as fidl::encoding::TypeMarker>::inline_size(decoder.context);
84805                if inlined != (member_inline_size <= 4) {
84806                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84807                }
84808                let inner_offset;
84809                let mut inner_depth = depth.clone();
84810                if inlined {
84811                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84812                    inner_offset = next_offset;
84813                } else {
84814                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84815                    inner_depth.increment()?;
84816                }
84817                let val_ref = self.requests.get_or_insert_with(|| {
84818                    fidl::new_empty!(CmsgRequests, fidl::encoding::DefaultFuchsiaResourceDialect)
84819                });
84820                fidl::decode!(
84821                    CmsgRequests,
84822                    fidl::encoding::DefaultFuchsiaResourceDialect,
84823                    val_ref,
84824                    decoder,
84825                    inner_offset,
84826                    inner_depth
84827                )?;
84828                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84829                {
84830                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84831                }
84832                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84833                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84834                }
84835            }
84836
84837            next_offset += envelope_size;
84838
84839            // Decode the remaining unknown envelopes.
84840            while next_offset < end_offset {
84841                _next_ordinal_to_read += 1;
84842                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84843                next_offset += envelope_size;
84844            }
84845
84846            Ok(())
84847        }
84848    }
84849
84850    impl DatagramSocketSendMsgPreflightResponse {
84851        #[inline(always)]
84852        fn max_ordinal_present(&self) -> u64 {
84853            if let Some(_) = self.maximum_size {
84854                return 3;
84855            }
84856            if let Some(_) = self.validity {
84857                return 2;
84858            }
84859            if let Some(_) = self.to {
84860                return 1;
84861            }
84862            0
84863        }
84864    }
84865
84866    impl fidl::encoding::ResourceTypeMarker for DatagramSocketSendMsgPreflightResponse {
84867        type Borrowed<'a> = &'a mut Self;
84868        fn take_or_borrow<'a>(
84869            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
84870        ) -> Self::Borrowed<'a> {
84871            value
84872        }
84873    }
84874
84875    unsafe impl fidl::encoding::TypeMarker for DatagramSocketSendMsgPreflightResponse {
84876        type Owned = Self;
84877
84878        #[inline(always)]
84879        fn inline_align(_context: fidl::encoding::Context) -> usize {
84880            8
84881        }
84882
84883        #[inline(always)]
84884        fn inline_size(_context: fidl::encoding::Context) -> usize {
84885            16
84886        }
84887    }
84888
84889    unsafe impl
84890        fidl::encoding::Encode<
84891            DatagramSocketSendMsgPreflightResponse,
84892            fidl::encoding::DefaultFuchsiaResourceDialect,
84893        > for &mut DatagramSocketSendMsgPreflightResponse
84894    {
84895        unsafe fn encode(
84896            self,
84897            encoder: &mut fidl::encoding::Encoder<
84898                '_,
84899                fidl::encoding::DefaultFuchsiaResourceDialect,
84900            >,
84901            offset: usize,
84902            mut depth: fidl::encoding::Depth,
84903        ) -> fidl::Result<()> {
84904            encoder.debug_check_bounds::<DatagramSocketSendMsgPreflightResponse>(offset);
84905            // Vector header
84906            let max_ordinal: u64 = self.max_ordinal_present();
84907            encoder.write_num(max_ordinal, offset);
84908            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
84909            // Calling encoder.out_of_line_offset(0) is not allowed.
84910            if max_ordinal == 0 {
84911                return Ok(());
84912            }
84913            depth.increment()?;
84914            let envelope_size = 8;
84915            let bytes_len = max_ordinal as usize * envelope_size;
84916            #[allow(unused_variables)]
84917            let offset = encoder.out_of_line_offset(bytes_len);
84918            let mut _prev_end_offset: usize = 0;
84919            if 1 > max_ordinal {
84920                return Ok(());
84921            }
84922
84923            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84924            // are envelope_size bytes.
84925            let cur_offset: usize = (1 - 1) * envelope_size;
84926
84927            // Zero reserved fields.
84928            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84929
84930            // Safety:
84931            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84932            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84933            //   envelope_size bytes, there is always sufficient room.
84934            fidl::encoding::encode_in_envelope_optional::<
84935                fidl_fuchsia_net::SocketAddress,
84936                fidl::encoding::DefaultFuchsiaResourceDialect,
84937            >(
84938                self.to.as_ref().map(
84939                    <fidl_fuchsia_net::SocketAddress as fidl::encoding::ValueTypeMarker>::borrow,
84940                ),
84941                encoder,
84942                offset + cur_offset,
84943                depth,
84944            )?;
84945
84946            _prev_end_offset = cur_offset + envelope_size;
84947            if 2 > max_ordinal {
84948                return Ok(());
84949            }
84950
84951            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84952            // are envelope_size bytes.
84953            let cur_offset: usize = (2 - 1) * envelope_size;
84954
84955            // Zero reserved fields.
84956            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84957
84958            // Safety:
84959            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84960            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84961            //   envelope_size bytes, there is always sufficient room.
84962            fidl::encoding::encode_in_envelope_optional::<
84963                fidl::encoding::Vector<
84964                    fidl::encoding::HandleType<
84965                        fidl::EventPair,
84966                        { fidl::ObjectType::EVENTPAIR.into_raw() },
84967                        49155,
84968                    >,
84969                    63,
84970                >,
84971                fidl::encoding::DefaultFuchsiaResourceDialect,
84972            >(
84973                self.validity.as_mut().map(
84974                    <fidl::encoding::Vector<
84975                        fidl::encoding::HandleType<
84976                            fidl::EventPair,
84977                            { fidl::ObjectType::EVENTPAIR.into_raw() },
84978                            49155,
84979                        >,
84980                        63,
84981                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
84982                ),
84983                encoder,
84984                offset + cur_offset,
84985                depth,
84986            )?;
84987
84988            _prev_end_offset = cur_offset + envelope_size;
84989            if 3 > max_ordinal {
84990                return Ok(());
84991            }
84992
84993            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84994            // are envelope_size bytes.
84995            let cur_offset: usize = (3 - 1) * envelope_size;
84996
84997            // Zero reserved fields.
84998            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84999
85000            // Safety:
85001            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85002            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85003            //   envelope_size bytes, there is always sufficient room.
85004            fidl::encoding::encode_in_envelope_optional::<
85005                u32,
85006                fidl::encoding::DefaultFuchsiaResourceDialect,
85007            >(
85008                self.maximum_size.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
85009                encoder,
85010                offset + cur_offset,
85011                depth,
85012            )?;
85013
85014            _prev_end_offset = cur_offset + envelope_size;
85015
85016            Ok(())
85017        }
85018    }
85019
85020    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85021        for DatagramSocketSendMsgPreflightResponse
85022    {
85023        #[inline(always)]
85024        fn new_empty() -> Self {
85025            Self::default()
85026        }
85027
85028        unsafe fn decode(
85029            &mut self,
85030            decoder: &mut fidl::encoding::Decoder<
85031                '_,
85032                fidl::encoding::DefaultFuchsiaResourceDialect,
85033            >,
85034            offset: usize,
85035            mut depth: fidl::encoding::Depth,
85036        ) -> fidl::Result<()> {
85037            decoder.debug_check_bounds::<Self>(offset);
85038            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
85039                None => return Err(fidl::Error::NotNullable),
85040                Some(len) => len,
85041            };
85042            // Calling decoder.out_of_line_offset(0) is not allowed.
85043            if len == 0 {
85044                return Ok(());
85045            };
85046            depth.increment()?;
85047            let envelope_size = 8;
85048            let bytes_len = len * envelope_size;
85049            let offset = decoder.out_of_line_offset(bytes_len)?;
85050            // Decode the envelope for each type.
85051            let mut _next_ordinal_to_read = 0;
85052            let mut next_offset = offset;
85053            let end_offset = offset + bytes_len;
85054            _next_ordinal_to_read += 1;
85055            if next_offset >= end_offset {
85056                return Ok(());
85057            }
85058
85059            // Decode unknown envelopes for gaps in ordinals.
85060            while _next_ordinal_to_read < 1 {
85061                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85062                _next_ordinal_to_read += 1;
85063                next_offset += envelope_size;
85064            }
85065
85066            let next_out_of_line = decoder.next_out_of_line();
85067            let handles_before = decoder.remaining_handles();
85068            if let Some((inlined, num_bytes, num_handles)) =
85069                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85070            {
85071                let member_inline_size =
85072                    <fidl_fuchsia_net::SocketAddress as fidl::encoding::TypeMarker>::inline_size(
85073                        decoder.context,
85074                    );
85075                if inlined != (member_inline_size <= 4) {
85076                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85077                }
85078                let inner_offset;
85079                let mut inner_depth = depth.clone();
85080                if inlined {
85081                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85082                    inner_offset = next_offset;
85083                } else {
85084                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85085                    inner_depth.increment()?;
85086                }
85087                let val_ref = self.to.get_or_insert_with(|| {
85088                    fidl::new_empty!(
85089                        fidl_fuchsia_net::SocketAddress,
85090                        fidl::encoding::DefaultFuchsiaResourceDialect
85091                    )
85092                });
85093                fidl::decode!(
85094                    fidl_fuchsia_net::SocketAddress,
85095                    fidl::encoding::DefaultFuchsiaResourceDialect,
85096                    val_ref,
85097                    decoder,
85098                    inner_offset,
85099                    inner_depth
85100                )?;
85101                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85102                {
85103                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85104                }
85105                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85106                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85107                }
85108            }
85109
85110            next_offset += envelope_size;
85111            _next_ordinal_to_read += 1;
85112            if next_offset >= end_offset {
85113                return Ok(());
85114            }
85115
85116            // Decode unknown envelopes for gaps in ordinals.
85117            while _next_ordinal_to_read < 2 {
85118                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85119                _next_ordinal_to_read += 1;
85120                next_offset += envelope_size;
85121            }
85122
85123            let next_out_of_line = decoder.next_out_of_line();
85124            let handles_before = decoder.remaining_handles();
85125            if let Some((inlined, num_bytes, num_handles)) =
85126                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85127            {
85128                let member_inline_size = <fidl::encoding::Vector<
85129                    fidl::encoding::HandleType<
85130                        fidl::EventPair,
85131                        { fidl::ObjectType::EVENTPAIR.into_raw() },
85132                        49155,
85133                    >,
85134                    63,
85135                > as fidl::encoding::TypeMarker>::inline_size(
85136                    decoder.context
85137                );
85138                if inlined != (member_inline_size <= 4) {
85139                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85140                }
85141                let inner_offset;
85142                let mut inner_depth = depth.clone();
85143                if inlined {
85144                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85145                    inner_offset = next_offset;
85146                } else {
85147                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85148                    inner_depth.increment()?;
85149                }
85150                let val_ref = self.validity.get_or_insert_with(|| {
85151                    fidl::new_empty!(
85152                        fidl::encoding::Vector<
85153                            fidl::encoding::HandleType<
85154                                fidl::EventPair,
85155                                { fidl::ObjectType::EVENTPAIR.into_raw() },
85156                                49155,
85157                            >,
85158                            63,
85159                        >,
85160                        fidl::encoding::DefaultFuchsiaResourceDialect
85161                    )
85162                });
85163                fidl::decode!(
85164                    fidl::encoding::Vector<
85165                        fidl::encoding::HandleType<
85166                            fidl::EventPair,
85167                            { fidl::ObjectType::EVENTPAIR.into_raw() },
85168                            49155,
85169                        >,
85170                        63,
85171                    >,
85172                    fidl::encoding::DefaultFuchsiaResourceDialect,
85173                    val_ref,
85174                    decoder,
85175                    inner_offset,
85176                    inner_depth
85177                )?;
85178                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85179                {
85180                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85181                }
85182                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85183                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85184                }
85185            }
85186
85187            next_offset += envelope_size;
85188            _next_ordinal_to_read += 1;
85189            if next_offset >= end_offset {
85190                return Ok(());
85191            }
85192
85193            // Decode unknown envelopes for gaps in ordinals.
85194            while _next_ordinal_to_read < 3 {
85195                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85196                _next_ordinal_to_read += 1;
85197                next_offset += envelope_size;
85198            }
85199
85200            let next_out_of_line = decoder.next_out_of_line();
85201            let handles_before = decoder.remaining_handles();
85202            if let Some((inlined, num_bytes, num_handles)) =
85203                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85204            {
85205                let member_inline_size =
85206                    <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
85207                if inlined != (member_inline_size <= 4) {
85208                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85209                }
85210                let inner_offset;
85211                let mut inner_depth = depth.clone();
85212                if inlined {
85213                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85214                    inner_offset = next_offset;
85215                } else {
85216                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85217                    inner_depth.increment()?;
85218                }
85219                let val_ref = self.maximum_size.get_or_insert_with(|| {
85220                    fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
85221                });
85222                fidl::decode!(
85223                    u32,
85224                    fidl::encoding::DefaultFuchsiaResourceDialect,
85225                    val_ref,
85226                    decoder,
85227                    inner_offset,
85228                    inner_depth
85229                )?;
85230                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85231                {
85232                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85233                }
85234                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85235                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85236                }
85237            }
85238
85239            next_offset += envelope_size;
85240
85241            // Decode the remaining unknown envelopes.
85242            while next_offset < end_offset {
85243                _next_ordinal_to_read += 1;
85244                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85245                next_offset += envelope_size;
85246            }
85247
85248            Ok(())
85249        }
85250    }
85251
85252    impl SocketCreationOptions {
85253        #[inline(always)]
85254        fn max_ordinal_present(&self) -> u64 {
85255            if let Some(_) = self.group {
85256                return 2;
85257            }
85258            if let Some(_) = self.marks {
85259                return 1;
85260            }
85261            0
85262        }
85263    }
85264
85265    impl fidl::encoding::ResourceTypeMarker for SocketCreationOptions {
85266        type Borrowed<'a> = &'a mut Self;
85267        fn take_or_borrow<'a>(
85268            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85269        ) -> Self::Borrowed<'a> {
85270            value
85271        }
85272    }
85273
85274    unsafe impl fidl::encoding::TypeMarker for SocketCreationOptions {
85275        type Owned = Self;
85276
85277        #[inline(always)]
85278        fn inline_align(_context: fidl::encoding::Context) -> usize {
85279            8
85280        }
85281
85282        #[inline(always)]
85283        fn inline_size(_context: fidl::encoding::Context) -> usize {
85284            16
85285        }
85286    }
85287
85288    unsafe impl
85289        fidl::encoding::Encode<SocketCreationOptions, fidl::encoding::DefaultFuchsiaResourceDialect>
85290        for &mut SocketCreationOptions
85291    {
85292        unsafe fn encode(
85293            self,
85294            encoder: &mut fidl::encoding::Encoder<
85295                '_,
85296                fidl::encoding::DefaultFuchsiaResourceDialect,
85297            >,
85298            offset: usize,
85299            mut depth: fidl::encoding::Depth,
85300        ) -> fidl::Result<()> {
85301            encoder.debug_check_bounds::<SocketCreationOptions>(offset);
85302            // Vector header
85303            let max_ordinal: u64 = self.max_ordinal_present();
85304            encoder.write_num(max_ordinal, offset);
85305            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
85306            // Calling encoder.out_of_line_offset(0) is not allowed.
85307            if max_ordinal == 0 {
85308                return Ok(());
85309            }
85310            depth.increment()?;
85311            let envelope_size = 8;
85312            let bytes_len = max_ordinal as usize * envelope_size;
85313            #[allow(unused_variables)]
85314            let offset = encoder.out_of_line_offset(bytes_len);
85315            let mut _prev_end_offset: usize = 0;
85316            if 1 > max_ordinal {
85317                return Ok(());
85318            }
85319
85320            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
85321            // are envelope_size bytes.
85322            let cur_offset: usize = (1 - 1) * envelope_size;
85323
85324            // Zero reserved fields.
85325            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85326
85327            // Safety:
85328            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85329            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85330            //   envelope_size bytes, there is always sufficient room.
85331            fidl::encoding::encode_in_envelope_optional::<
85332                fidl_fuchsia_net::Marks,
85333                fidl::encoding::DefaultFuchsiaResourceDialect,
85334            >(
85335                self.marks
85336                    .as_ref()
85337                    .map(<fidl_fuchsia_net::Marks as fidl::encoding::ValueTypeMarker>::borrow),
85338                encoder,
85339                offset + cur_offset,
85340                depth,
85341            )?;
85342
85343            _prev_end_offset = cur_offset + envelope_size;
85344            if 2 > max_ordinal {
85345                return Ok(());
85346            }
85347
85348            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
85349            // are envelope_size bytes.
85350            let cur_offset: usize = (2 - 1) * envelope_size;
85351
85352            // Zero reserved fields.
85353            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85354
85355            // Safety:
85356            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85357            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85358            //   envelope_size bytes, there is always sufficient room.
85359            fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net_resources::WakeGroupToken, fidl::encoding::DefaultFuchsiaResourceDialect>(
85360            self.group.as_mut().map(<fidl_fuchsia_net_resources::WakeGroupToken as fidl::encoding::ResourceTypeMarker>::take_or_borrow),
85361            encoder, offset + cur_offset, depth
85362        )?;
85363
85364            _prev_end_offset = cur_offset + envelope_size;
85365
85366            Ok(())
85367        }
85368    }
85369
85370    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85371        for SocketCreationOptions
85372    {
85373        #[inline(always)]
85374        fn new_empty() -> Self {
85375            Self::default()
85376        }
85377
85378        unsafe fn decode(
85379            &mut self,
85380            decoder: &mut fidl::encoding::Decoder<
85381                '_,
85382                fidl::encoding::DefaultFuchsiaResourceDialect,
85383            >,
85384            offset: usize,
85385            mut depth: fidl::encoding::Depth,
85386        ) -> fidl::Result<()> {
85387            decoder.debug_check_bounds::<Self>(offset);
85388            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
85389                None => return Err(fidl::Error::NotNullable),
85390                Some(len) => len,
85391            };
85392            // Calling decoder.out_of_line_offset(0) is not allowed.
85393            if len == 0 {
85394                return Ok(());
85395            };
85396            depth.increment()?;
85397            let envelope_size = 8;
85398            let bytes_len = len * envelope_size;
85399            let offset = decoder.out_of_line_offset(bytes_len)?;
85400            // Decode the envelope for each type.
85401            let mut _next_ordinal_to_read = 0;
85402            let mut next_offset = offset;
85403            let end_offset = offset + bytes_len;
85404            _next_ordinal_to_read += 1;
85405            if next_offset >= end_offset {
85406                return Ok(());
85407            }
85408
85409            // Decode unknown envelopes for gaps in ordinals.
85410            while _next_ordinal_to_read < 1 {
85411                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85412                _next_ordinal_to_read += 1;
85413                next_offset += envelope_size;
85414            }
85415
85416            let next_out_of_line = decoder.next_out_of_line();
85417            let handles_before = decoder.remaining_handles();
85418            if let Some((inlined, num_bytes, num_handles)) =
85419                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85420            {
85421                let member_inline_size =
85422                    <fidl_fuchsia_net::Marks as fidl::encoding::TypeMarker>::inline_size(
85423                        decoder.context,
85424                    );
85425                if inlined != (member_inline_size <= 4) {
85426                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85427                }
85428                let inner_offset;
85429                let mut inner_depth = depth.clone();
85430                if inlined {
85431                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85432                    inner_offset = next_offset;
85433                } else {
85434                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85435                    inner_depth.increment()?;
85436                }
85437                let val_ref = self.marks.get_or_insert_with(|| {
85438                    fidl::new_empty!(
85439                        fidl_fuchsia_net::Marks,
85440                        fidl::encoding::DefaultFuchsiaResourceDialect
85441                    )
85442                });
85443                fidl::decode!(
85444                    fidl_fuchsia_net::Marks,
85445                    fidl::encoding::DefaultFuchsiaResourceDialect,
85446                    val_ref,
85447                    decoder,
85448                    inner_offset,
85449                    inner_depth
85450                )?;
85451                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85452                {
85453                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85454                }
85455                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85456                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85457                }
85458            }
85459
85460            next_offset += envelope_size;
85461            _next_ordinal_to_read += 1;
85462            if next_offset >= end_offset {
85463                return Ok(());
85464            }
85465
85466            // Decode unknown envelopes for gaps in ordinals.
85467            while _next_ordinal_to_read < 2 {
85468                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85469                _next_ordinal_to_read += 1;
85470                next_offset += envelope_size;
85471            }
85472
85473            let next_out_of_line = decoder.next_out_of_line();
85474            let handles_before = decoder.remaining_handles();
85475            if let Some((inlined, num_bytes, num_handles)) =
85476                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85477            {
85478                let member_inline_size = <fidl_fuchsia_net_resources::WakeGroupToken as fidl::encoding::TypeMarker>::inline_size(decoder.context);
85479                if inlined != (member_inline_size <= 4) {
85480                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85481                }
85482                let inner_offset;
85483                let mut inner_depth = depth.clone();
85484                if inlined {
85485                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85486                    inner_offset = next_offset;
85487                } else {
85488                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85489                    inner_depth.increment()?;
85490                }
85491                let val_ref = self.group.get_or_insert_with(|| {
85492                    fidl::new_empty!(
85493                        fidl_fuchsia_net_resources::WakeGroupToken,
85494                        fidl::encoding::DefaultFuchsiaResourceDialect
85495                    )
85496                });
85497                fidl::decode!(
85498                    fidl_fuchsia_net_resources::WakeGroupToken,
85499                    fidl::encoding::DefaultFuchsiaResourceDialect,
85500                    val_ref,
85501                    decoder,
85502                    inner_offset,
85503                    inner_depth
85504                )?;
85505                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85506                {
85507                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85508                }
85509                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85510                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85511                }
85512            }
85513
85514            next_offset += envelope_size;
85515
85516            // Decode the remaining unknown envelopes.
85517            while next_offset < end_offset {
85518                _next_ordinal_to_read += 1;
85519                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85520                next_offset += envelope_size;
85521            }
85522
85523            Ok(())
85524        }
85525    }
85526
85527    impl StreamSocketDescribeResponse {
85528        #[inline(always)]
85529        fn max_ordinal_present(&self) -> u64 {
85530            if let Some(_) = self.socket {
85531                return 1;
85532            }
85533            0
85534        }
85535    }
85536
85537    impl fidl::encoding::ResourceTypeMarker for StreamSocketDescribeResponse {
85538        type Borrowed<'a> = &'a mut Self;
85539        fn take_or_borrow<'a>(
85540            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85541        ) -> Self::Borrowed<'a> {
85542            value
85543        }
85544    }
85545
85546    unsafe impl fidl::encoding::TypeMarker for StreamSocketDescribeResponse {
85547        type Owned = Self;
85548
85549        #[inline(always)]
85550        fn inline_align(_context: fidl::encoding::Context) -> usize {
85551            8
85552        }
85553
85554        #[inline(always)]
85555        fn inline_size(_context: fidl::encoding::Context) -> usize {
85556            16
85557        }
85558    }
85559
85560    unsafe impl
85561        fidl::encoding::Encode<
85562            StreamSocketDescribeResponse,
85563            fidl::encoding::DefaultFuchsiaResourceDialect,
85564        > for &mut StreamSocketDescribeResponse
85565    {
85566        unsafe fn encode(
85567            self,
85568            encoder: &mut fidl::encoding::Encoder<
85569                '_,
85570                fidl::encoding::DefaultFuchsiaResourceDialect,
85571            >,
85572            offset: usize,
85573            mut depth: fidl::encoding::Depth,
85574        ) -> fidl::Result<()> {
85575            encoder.debug_check_bounds::<StreamSocketDescribeResponse>(offset);
85576            // Vector header
85577            let max_ordinal: u64 = self.max_ordinal_present();
85578            encoder.write_num(max_ordinal, offset);
85579            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
85580            // Calling encoder.out_of_line_offset(0) is not allowed.
85581            if max_ordinal == 0 {
85582                return Ok(());
85583            }
85584            depth.increment()?;
85585            let envelope_size = 8;
85586            let bytes_len = max_ordinal as usize * envelope_size;
85587            #[allow(unused_variables)]
85588            let offset = encoder.out_of_line_offset(bytes_len);
85589            let mut _prev_end_offset: usize = 0;
85590            if 1 > max_ordinal {
85591                return Ok(());
85592            }
85593
85594            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
85595            // are envelope_size bytes.
85596            let cur_offset: usize = (1 - 1) * envelope_size;
85597
85598            // Zero reserved fields.
85599            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85600
85601            // Safety:
85602            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85603            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85604            //   envelope_size bytes, there is always sufficient room.
85605            fidl::encoding::encode_in_envelope_optional::<
85606                fidl::encoding::HandleType<
85607                    fidl::Socket,
85608                    { fidl::ObjectType::SOCKET.into_raw() },
85609                    2147483648,
85610                >,
85611                fidl::encoding::DefaultFuchsiaResourceDialect,
85612            >(
85613                self.socket.as_mut().map(
85614                    <fidl::encoding::HandleType<
85615                        fidl::Socket,
85616                        { fidl::ObjectType::SOCKET.into_raw() },
85617                        2147483648,
85618                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
85619                ),
85620                encoder,
85621                offset + cur_offset,
85622                depth,
85623            )?;
85624
85625            _prev_end_offset = cur_offset + envelope_size;
85626
85627            Ok(())
85628        }
85629    }
85630
85631    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85632        for StreamSocketDescribeResponse
85633    {
85634        #[inline(always)]
85635        fn new_empty() -> Self {
85636            Self::default()
85637        }
85638
85639        unsafe fn decode(
85640            &mut self,
85641            decoder: &mut fidl::encoding::Decoder<
85642                '_,
85643                fidl::encoding::DefaultFuchsiaResourceDialect,
85644            >,
85645            offset: usize,
85646            mut depth: fidl::encoding::Depth,
85647        ) -> fidl::Result<()> {
85648            decoder.debug_check_bounds::<Self>(offset);
85649            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
85650                None => return Err(fidl::Error::NotNullable),
85651                Some(len) => len,
85652            };
85653            // Calling decoder.out_of_line_offset(0) is not allowed.
85654            if len == 0 {
85655                return Ok(());
85656            };
85657            depth.increment()?;
85658            let envelope_size = 8;
85659            let bytes_len = len * envelope_size;
85660            let offset = decoder.out_of_line_offset(bytes_len)?;
85661            // Decode the envelope for each type.
85662            let mut _next_ordinal_to_read = 0;
85663            let mut next_offset = offset;
85664            let end_offset = offset + bytes_len;
85665            _next_ordinal_to_read += 1;
85666            if next_offset >= end_offset {
85667                return Ok(());
85668            }
85669
85670            // Decode unknown envelopes for gaps in ordinals.
85671            while _next_ordinal_to_read < 1 {
85672                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85673                _next_ordinal_to_read += 1;
85674                next_offset += envelope_size;
85675            }
85676
85677            let next_out_of_line = decoder.next_out_of_line();
85678            let handles_before = decoder.remaining_handles();
85679            if let Some((inlined, num_bytes, num_handles)) =
85680                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85681            {
85682                let member_inline_size = <fidl::encoding::HandleType<
85683                    fidl::Socket,
85684                    { fidl::ObjectType::SOCKET.into_raw() },
85685                    2147483648,
85686                > as fidl::encoding::TypeMarker>::inline_size(
85687                    decoder.context
85688                );
85689                if inlined != (member_inline_size <= 4) {
85690                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85691                }
85692                let inner_offset;
85693                let mut inner_depth = depth.clone();
85694                if inlined {
85695                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85696                    inner_offset = next_offset;
85697                } else {
85698                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85699                    inner_depth.increment()?;
85700                }
85701                let val_ref =
85702                self.socket.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect));
85703                fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
85704                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85705                {
85706                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85707                }
85708                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85709                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85710                }
85711            }
85712
85713            next_offset += envelope_size;
85714
85715            // Decode the remaining unknown envelopes.
85716            while next_offset < end_offset {
85717                _next_ordinal_to_read += 1;
85718                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85719                next_offset += envelope_size;
85720            }
85721
85722            Ok(())
85723        }
85724    }
85725
85726    impl SynchronousDatagramSocketDescribeResponse {
85727        #[inline(always)]
85728        fn max_ordinal_present(&self) -> u64 {
85729            if let Some(_) = self.event {
85730                return 1;
85731            }
85732            0
85733        }
85734    }
85735
85736    impl fidl::encoding::ResourceTypeMarker for SynchronousDatagramSocketDescribeResponse {
85737        type Borrowed<'a> = &'a mut Self;
85738        fn take_or_borrow<'a>(
85739            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85740        ) -> Self::Borrowed<'a> {
85741            value
85742        }
85743    }
85744
85745    unsafe impl fidl::encoding::TypeMarker for SynchronousDatagramSocketDescribeResponse {
85746        type Owned = Self;
85747
85748        #[inline(always)]
85749        fn inline_align(_context: fidl::encoding::Context) -> usize {
85750            8
85751        }
85752
85753        #[inline(always)]
85754        fn inline_size(_context: fidl::encoding::Context) -> usize {
85755            16
85756        }
85757    }
85758
85759    unsafe impl
85760        fidl::encoding::Encode<
85761            SynchronousDatagramSocketDescribeResponse,
85762            fidl::encoding::DefaultFuchsiaResourceDialect,
85763        > for &mut SynchronousDatagramSocketDescribeResponse
85764    {
85765        unsafe fn encode(
85766            self,
85767            encoder: &mut fidl::encoding::Encoder<
85768                '_,
85769                fidl::encoding::DefaultFuchsiaResourceDialect,
85770            >,
85771            offset: usize,
85772            mut depth: fidl::encoding::Depth,
85773        ) -> fidl::Result<()> {
85774            encoder.debug_check_bounds::<SynchronousDatagramSocketDescribeResponse>(offset);
85775            // Vector header
85776            let max_ordinal: u64 = self.max_ordinal_present();
85777            encoder.write_num(max_ordinal, offset);
85778            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
85779            // Calling encoder.out_of_line_offset(0) is not allowed.
85780            if max_ordinal == 0 {
85781                return Ok(());
85782            }
85783            depth.increment()?;
85784            let envelope_size = 8;
85785            let bytes_len = max_ordinal as usize * envelope_size;
85786            #[allow(unused_variables)]
85787            let offset = encoder.out_of_line_offset(bytes_len);
85788            let mut _prev_end_offset: usize = 0;
85789            if 1 > max_ordinal {
85790                return Ok(());
85791            }
85792
85793            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
85794            // are envelope_size bytes.
85795            let cur_offset: usize = (1 - 1) * envelope_size;
85796
85797            // Zero reserved fields.
85798            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85799
85800            // Safety:
85801            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85802            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85803            //   envelope_size bytes, there is always sufficient room.
85804            fidl::encoding::encode_in_envelope_optional::<
85805                fidl::encoding::HandleType<
85806                    fidl::EventPair,
85807                    { fidl::ObjectType::EVENTPAIR.into_raw() },
85808                    2147483648,
85809                >,
85810                fidl::encoding::DefaultFuchsiaResourceDialect,
85811            >(
85812                self.event.as_mut().map(
85813                    <fidl::encoding::HandleType<
85814                        fidl::EventPair,
85815                        { fidl::ObjectType::EVENTPAIR.into_raw() },
85816                        2147483648,
85817                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
85818                ),
85819                encoder,
85820                offset + cur_offset,
85821                depth,
85822            )?;
85823
85824            _prev_end_offset = cur_offset + envelope_size;
85825
85826            Ok(())
85827        }
85828    }
85829
85830    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85831        for SynchronousDatagramSocketDescribeResponse
85832    {
85833        #[inline(always)]
85834        fn new_empty() -> Self {
85835            Self::default()
85836        }
85837
85838        unsafe fn decode(
85839            &mut self,
85840            decoder: &mut fidl::encoding::Decoder<
85841                '_,
85842                fidl::encoding::DefaultFuchsiaResourceDialect,
85843            >,
85844            offset: usize,
85845            mut depth: fidl::encoding::Depth,
85846        ) -> fidl::Result<()> {
85847            decoder.debug_check_bounds::<Self>(offset);
85848            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
85849                None => return Err(fidl::Error::NotNullable),
85850                Some(len) => len,
85851            };
85852            // Calling decoder.out_of_line_offset(0) is not allowed.
85853            if len == 0 {
85854                return Ok(());
85855            };
85856            depth.increment()?;
85857            let envelope_size = 8;
85858            let bytes_len = len * envelope_size;
85859            let offset = decoder.out_of_line_offset(bytes_len)?;
85860            // Decode the envelope for each type.
85861            let mut _next_ordinal_to_read = 0;
85862            let mut next_offset = offset;
85863            let end_offset = offset + bytes_len;
85864            _next_ordinal_to_read += 1;
85865            if next_offset >= end_offset {
85866                return Ok(());
85867            }
85868
85869            // Decode unknown envelopes for gaps in ordinals.
85870            while _next_ordinal_to_read < 1 {
85871                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85872                _next_ordinal_to_read += 1;
85873                next_offset += envelope_size;
85874            }
85875
85876            let next_out_of_line = decoder.next_out_of_line();
85877            let handles_before = decoder.remaining_handles();
85878            if let Some((inlined, num_bytes, num_handles)) =
85879                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85880            {
85881                let member_inline_size = <fidl::encoding::HandleType<
85882                    fidl::EventPair,
85883                    { fidl::ObjectType::EVENTPAIR.into_raw() },
85884                    2147483648,
85885                > as fidl::encoding::TypeMarker>::inline_size(
85886                    decoder.context
85887                );
85888                if inlined != (member_inline_size <= 4) {
85889                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85890                }
85891                let inner_offset;
85892                let mut inner_depth = depth.clone();
85893                if inlined {
85894                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85895                    inner_offset = next_offset;
85896                } else {
85897                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85898                    inner_depth.increment()?;
85899                }
85900                let val_ref =
85901                self.event.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect));
85902                fidl::decode!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
85903                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85904                {
85905                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85906                }
85907                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85908                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85909                }
85910            }
85911
85912            next_offset += envelope_size;
85913
85914            // Decode the remaining unknown envelopes.
85915            while next_offset < end_offset {
85916                _next_ordinal_to_read += 1;
85917                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85918                next_offset += envelope_size;
85919            }
85920
85921            Ok(())
85922        }
85923    }
85924
85925    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketWithOptionsResponse {
85926        type Borrowed<'a> = &'a mut Self;
85927        fn take_or_borrow<'a>(
85928            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85929        ) -> Self::Borrowed<'a> {
85930            value
85931        }
85932    }
85933
85934    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketWithOptionsResponse {
85935        type Owned = Self;
85936
85937        #[inline(always)]
85938        fn inline_align(_context: fidl::encoding::Context) -> usize {
85939            8
85940        }
85941
85942        #[inline(always)]
85943        fn inline_size(_context: fidl::encoding::Context) -> usize {
85944            16
85945        }
85946    }
85947
85948    unsafe impl
85949        fidl::encoding::Encode<
85950            ProviderDatagramSocketWithOptionsResponse,
85951            fidl::encoding::DefaultFuchsiaResourceDialect,
85952        > for &mut ProviderDatagramSocketWithOptionsResponse
85953    {
85954        #[inline]
85955        unsafe fn encode(
85956            self,
85957            encoder: &mut fidl::encoding::Encoder<
85958                '_,
85959                fidl::encoding::DefaultFuchsiaResourceDialect,
85960            >,
85961            offset: usize,
85962            _depth: fidl::encoding::Depth,
85963        ) -> fidl::Result<()> {
85964            encoder.debug_check_bounds::<ProviderDatagramSocketWithOptionsResponse>(offset);
85965            encoder.write_num::<u64>(self.ordinal(), offset);
85966            match self {
85967            ProviderDatagramSocketWithOptionsResponse::DatagramSocket(ref mut val) => {
85968                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
85969                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
85970                    encoder, offset + 8, _depth
85971                )
85972            }
85973            ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(ref mut val) => {
85974                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
85975                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
85976                    encoder, offset + 8, _depth
85977                )
85978            }
85979        }
85980        }
85981    }
85982
85983    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85984        for ProviderDatagramSocketWithOptionsResponse
85985    {
85986        #[inline(always)]
85987        fn new_empty() -> Self {
85988            Self::DatagramSocket(fidl::new_empty!(
85989                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>,
85990                fidl::encoding::DefaultFuchsiaResourceDialect
85991            ))
85992        }
85993
85994        #[inline]
85995        unsafe fn decode(
85996            &mut self,
85997            decoder: &mut fidl::encoding::Decoder<
85998                '_,
85999                fidl::encoding::DefaultFuchsiaResourceDialect,
86000            >,
86001            offset: usize,
86002            mut depth: fidl::encoding::Depth,
86003        ) -> fidl::Result<()> {
86004            decoder.debug_check_bounds::<Self>(offset);
86005            #[allow(unused_variables)]
86006            let next_out_of_line = decoder.next_out_of_line();
86007            let handles_before = decoder.remaining_handles();
86008            let (ordinal, inlined, num_bytes, num_handles) =
86009                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
86010
86011            let member_inline_size = match ordinal {
86012            1 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
86013            2 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
86014            _ => return Err(fidl::Error::UnknownUnionTag),
86015        };
86016
86017            if inlined != (member_inline_size <= 4) {
86018                return Err(fidl::Error::InvalidInlineBitInEnvelope);
86019            }
86020            let _inner_offset;
86021            if inlined {
86022                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
86023                _inner_offset = offset + 8;
86024            } else {
86025                depth.increment()?;
86026                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
86027            }
86028            match ordinal {
86029                1 => {
86030                    #[allow(irrefutable_let_patterns)]
86031                    if let ProviderDatagramSocketWithOptionsResponse::DatagramSocket(_) = self {
86032                        // Do nothing, read the value into the object
86033                    } else {
86034                        // Initialize `self` to the right variant
86035                        *self = ProviderDatagramSocketWithOptionsResponse::DatagramSocket(
86036                            fidl::new_empty!(
86037                                fidl::encoding::Endpoint<
86038                                    fidl::endpoints::ClientEnd<DatagramSocketMarker>,
86039                                >,
86040                                fidl::encoding::DefaultFuchsiaResourceDialect
86041                            ),
86042                        );
86043                    }
86044                    #[allow(irrefutable_let_patterns)]
86045                    if let ProviderDatagramSocketWithOptionsResponse::DatagramSocket(ref mut val) =
86046                        self
86047                    {
86048                        fidl::decode!(
86049                            fidl::encoding::Endpoint<
86050                                fidl::endpoints::ClientEnd<DatagramSocketMarker>,
86051                            >,
86052                            fidl::encoding::DefaultFuchsiaResourceDialect,
86053                            val,
86054                            decoder,
86055                            _inner_offset,
86056                            depth
86057                        )?;
86058                    } else {
86059                        unreachable!()
86060                    }
86061                }
86062                2 => {
86063                    #[allow(irrefutable_let_patterns)]
86064                    if let ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(_) =
86065                        self
86066                    {
86067                        // Do nothing, read the value into the object
86068                    } else {
86069                        // Initialize `self` to the right variant
86070                        *self =
86071                            ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(
86072                                fidl::new_empty!(
86073                                    fidl::encoding::Endpoint<
86074                                        fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
86075                                    >,
86076                                    fidl::encoding::DefaultFuchsiaResourceDialect
86077                                ),
86078                            );
86079                    }
86080                    #[allow(irrefutable_let_patterns)]
86081                    if let ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(
86082                        ref mut val,
86083                    ) = self
86084                    {
86085                        fidl::decode!(
86086                            fidl::encoding::Endpoint<
86087                                fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
86088                            >,
86089                            fidl::encoding::DefaultFuchsiaResourceDialect,
86090                            val,
86091                            decoder,
86092                            _inner_offset,
86093                            depth
86094                        )?;
86095                    } else {
86096                        unreachable!()
86097                    }
86098                }
86099                ordinal => panic!("unexpected ordinal {:?}", ordinal),
86100            }
86101            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
86102                return Err(fidl::Error::InvalidNumBytesInEnvelope);
86103            }
86104            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
86105                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
86106            }
86107            Ok(())
86108        }
86109    }
86110
86111    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketResponse {
86112        type Borrowed<'a> = &'a mut Self;
86113        fn take_or_borrow<'a>(
86114            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
86115        ) -> Self::Borrowed<'a> {
86116            value
86117        }
86118    }
86119
86120    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketResponse {
86121        type Owned = Self;
86122
86123        #[inline(always)]
86124        fn inline_align(_context: fidl::encoding::Context) -> usize {
86125            8
86126        }
86127
86128        #[inline(always)]
86129        fn inline_size(_context: fidl::encoding::Context) -> usize {
86130            16
86131        }
86132    }
86133
86134    unsafe impl
86135        fidl::encoding::Encode<
86136            ProviderDatagramSocketResponse,
86137            fidl::encoding::DefaultFuchsiaResourceDialect,
86138        > for &mut ProviderDatagramSocketResponse
86139    {
86140        #[inline]
86141        unsafe fn encode(
86142            self,
86143            encoder: &mut fidl::encoding::Encoder<
86144                '_,
86145                fidl::encoding::DefaultFuchsiaResourceDialect,
86146            >,
86147            offset: usize,
86148            _depth: fidl::encoding::Depth,
86149        ) -> fidl::Result<()> {
86150            encoder.debug_check_bounds::<ProviderDatagramSocketResponse>(offset);
86151            encoder.write_num::<u64>(self.ordinal(), offset);
86152            match self {
86153            ProviderDatagramSocketResponse::DatagramSocket(ref mut val) => {
86154                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
86155                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
86156                    encoder, offset + 8, _depth
86157                )
86158            }
86159            ProviderDatagramSocketResponse::SynchronousDatagramSocket(ref mut val) => {
86160                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
86161                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
86162                    encoder, offset + 8, _depth
86163                )
86164            }
86165        }
86166        }
86167    }
86168
86169    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
86170        for ProviderDatagramSocketResponse
86171    {
86172        #[inline(always)]
86173        fn new_empty() -> Self {
86174            Self::DatagramSocket(fidl::new_empty!(
86175                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>,
86176                fidl::encoding::DefaultFuchsiaResourceDialect
86177            ))
86178        }
86179
86180        #[inline]
86181        unsafe fn decode(
86182            &mut self,
86183            decoder: &mut fidl::encoding::Decoder<
86184                '_,
86185                fidl::encoding::DefaultFuchsiaResourceDialect,
86186            >,
86187            offset: usize,
86188            mut depth: fidl::encoding::Depth,
86189        ) -> fidl::Result<()> {
86190            decoder.debug_check_bounds::<Self>(offset);
86191            #[allow(unused_variables)]
86192            let next_out_of_line = decoder.next_out_of_line();
86193            let handles_before = decoder.remaining_handles();
86194            let (ordinal, inlined, num_bytes, num_handles) =
86195                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
86196
86197            let member_inline_size = match ordinal {
86198            1 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
86199            2 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
86200            _ => return Err(fidl::Error::UnknownUnionTag),
86201        };
86202
86203            if inlined != (member_inline_size <= 4) {
86204                return Err(fidl::Error::InvalidInlineBitInEnvelope);
86205            }
86206            let _inner_offset;
86207            if inlined {
86208                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
86209                _inner_offset = offset + 8;
86210            } else {
86211                depth.increment()?;
86212                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
86213            }
86214            match ordinal {
86215                1 => {
86216                    #[allow(irrefutable_let_patterns)]
86217                    if let ProviderDatagramSocketResponse::DatagramSocket(_) = self {
86218                        // Do nothing, read the value into the object
86219                    } else {
86220                        // Initialize `self` to the right variant
86221                        *self = ProviderDatagramSocketResponse::DatagramSocket(fidl::new_empty!(
86222                            fidl::encoding::Endpoint<
86223                                fidl::endpoints::ClientEnd<DatagramSocketMarker>,
86224                            >,
86225                            fidl::encoding::DefaultFuchsiaResourceDialect
86226                        ));
86227                    }
86228                    #[allow(irrefutable_let_patterns)]
86229                    if let ProviderDatagramSocketResponse::DatagramSocket(ref mut val) = self {
86230                        fidl::decode!(
86231                            fidl::encoding::Endpoint<
86232                                fidl::endpoints::ClientEnd<DatagramSocketMarker>,
86233                            >,
86234                            fidl::encoding::DefaultFuchsiaResourceDialect,
86235                            val,
86236                            decoder,
86237                            _inner_offset,
86238                            depth
86239                        )?;
86240                    } else {
86241                        unreachable!()
86242                    }
86243                }
86244                2 => {
86245                    #[allow(irrefutable_let_patterns)]
86246                    if let ProviderDatagramSocketResponse::SynchronousDatagramSocket(_) = self {
86247                        // Do nothing, read the value into the object
86248                    } else {
86249                        // Initialize `self` to the right variant
86250                        *self = ProviderDatagramSocketResponse::SynchronousDatagramSocket(
86251                            fidl::new_empty!(
86252                                fidl::encoding::Endpoint<
86253                                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
86254                                >,
86255                                fidl::encoding::DefaultFuchsiaResourceDialect
86256                            ),
86257                        );
86258                    }
86259                    #[allow(irrefutable_let_patterns)]
86260                    if let ProviderDatagramSocketResponse::SynchronousDatagramSocket(ref mut val) =
86261                        self
86262                    {
86263                        fidl::decode!(
86264                            fidl::encoding::Endpoint<
86265                                fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
86266                            >,
86267                            fidl::encoding::DefaultFuchsiaResourceDialect,
86268                            val,
86269                            decoder,
86270                            _inner_offset,
86271                            depth
86272                        )?;
86273                    } else {
86274                        unreachable!()
86275                    }
86276                }
86277                ordinal => panic!("unexpected ordinal {:?}", ordinal),
86278            }
86279            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
86280                return Err(fidl::Error::InvalidNumBytesInEnvelope);
86281            }
86282            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
86283                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
86284            }
86285            Ok(())
86286        }
86287    }
86288}