1#![warn(clippy::all)]
3#![allow(unused_parens, unused_variables, unused_mut, unused_imports, unreachable_code)]
4
5pub mod natural {
6
7 ::fidl_next::bitflags::bitflags! {
8 #[doc = " The common members definition behind [`Rights`] and [`Abilities`]. Some operations may apply\n only to certain node types (e.g. [`Operations.MODIFY_DIRECTORY`] only applies to directories).\n"]#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct Operations: u64 {
9 #[doc = " Connecting to a service in a directory.\n"]const CONNECT = 1;
10 #[doc = " Read byte contents of a node or its children.\n"]const READ_BYTES = 2;
11 #[doc = " Writing to the byte contents of a node or its children.\n"]const WRITE_BYTES = 4;
12 #[doc = " Execute the byte contents of a node or its children.\n"]const EXECUTE = 8;
13 #[doc = " Reading the attributes of a node and/or its children.\n"]const GET_ATTRIBUTES = 16;
14 #[doc = " Updating the attributes of a node and/or its children.\n"]const UPDATE_ATTRIBUTES = 32;
15 #[doc = " Reading the list of nodes in a directory.\n"]const ENUMERATE = 64;
16 #[doc = " Opening a node from a directory. Must be specified with [`Rights.ENUMERATE`], as directory\n contents can be probed by opening children.\n"]const TRAVERSE = 128;
17 #[doc = " Modifying the list of nodes in a directory, e.g. creating, renaming, link/unlink, etc...\n Must be specified with [`Rights.ENUMERATE`], as directory contents can be probed via name\n conflicts during node creation.\n"]const MODIFY_DIRECTORY = 256;
18 const _ = !0;
19 }
20 }
21
22 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Operations, ___E> for Operations
23 where
24 ___E: ?Sized,
25 {
26 #[inline]
27 fn encode(
28 self,
29 encoder: &mut ___E,
30 out: &mut ::core::mem::MaybeUninit<crate::wire::Operations>,
31 _: (),
32 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
33 ::fidl_next::Encode::encode(&self, encoder, out, ())
34 }
35 }
36
37 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Operations, ___E> for &'a Operations
38 where
39 ___E: ?Sized,
40 {
41 #[inline]
42 fn encode(
43 self,
44 _: &mut ___E,
45 out: &mut ::core::mem::MaybeUninit<crate::wire::Operations>,
46 _: (),
47 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
48 ::fidl_next::munge!(let crate::wire::Operations { value } = out);
49
50 let _ = value.write(::fidl_next::wire::Uint64::from(self.bits()));
51 Ok(())
52 }
53 }
54
55 impl ::core::convert::From<crate::wire::Operations> for Operations {
56 fn from(wire: crate::wire::Operations) -> Self {
57 Self::from_bits_retain(u64::from(wire.value))
58 }
59 }
60
61 impl ::fidl_next::FromWire<crate::wire::Operations> for Operations {
62 #[inline]
63 fn from_wire(wire: crate::wire::Operations) -> Self {
64 Self::from(wire)
65 }
66 }
67
68 impl ::fidl_next::FromWireRef<crate::wire::Operations> for Operations {
69 #[inline]
70 fn from_wire_ref(wire: &crate::wire::Operations) -> Self {
71 Self::from(*wire)
72 }
73 }
74
75 #[doc = " Abilities are properties intrinsic to a node. They specify which operations are supported by it.\n\n Invoking an operation on a node that does not support it results in `ZX_ERR_NOT_SUPPORTED`.\n Note `ZX_ERR_ACCESS_DENIED` takes precedence over `ZX_ERR_NOT_SUPPORTED` when both apply.\n"]
76 pub type Abilities = crate::natural::Operations;
77
78 #[doc = " The reference point for updating the seek offset. See [`File.Seek`].\n\n This enum matches the `zx_stream_seek_origin_t` enum.\n"]
79 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
80 #[repr(u32)]
81 pub enum SeekOrigin {
82 Start = 0,
83 Current = 1,
84 End = 2,
85 }
86 impl ::core::convert::TryFrom<u32> for SeekOrigin {
87 type Error = ::fidl_next::UnknownStrictEnumMemberError;
88 fn try_from(
89 value: u32,
90 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
91 match value {
92 0 => Ok(Self::Start),
93 1 => Ok(Self::Current),
94 2 => Ok(Self::End),
95
96 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
97 }
98 }
99 }
100
101 unsafe impl<___E> ::fidl_next::Encode<crate::wire::SeekOrigin, ___E> for SeekOrigin
102 where
103 ___E: ?Sized,
104 {
105 #[inline]
106 fn encode(
107 self,
108 encoder: &mut ___E,
109 out: &mut ::core::mem::MaybeUninit<crate::wire::SeekOrigin>,
110 _: (),
111 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
112 ::fidl_next::Encode::encode(&self, encoder, out, ())
113 }
114 }
115
116 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::SeekOrigin, ___E> for &'a SeekOrigin
117 where
118 ___E: ?Sized,
119 {
120 #[inline]
121 fn encode(
122 self,
123 encoder: &mut ___E,
124 out: &mut ::core::mem::MaybeUninit<crate::wire::SeekOrigin>,
125 _: (),
126 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
127 ::fidl_next::munge!(let crate::wire::SeekOrigin { value } = out);
128 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
129 SeekOrigin::Start => 0,
130
131 SeekOrigin::Current => 1,
132
133 SeekOrigin::End => 2,
134 }));
135
136 Ok(())
137 }
138 }
139
140 impl ::core::convert::From<crate::wire::SeekOrigin> for SeekOrigin {
141 fn from(wire: crate::wire::SeekOrigin) -> Self {
142 match u32::from(wire.value) {
143 0 => Self::Start,
144
145 1 => Self::Current,
146
147 2 => Self::End,
148
149 _ => unsafe { ::core::hint::unreachable_unchecked() },
150 }
151 }
152 }
153
154 impl ::fidl_next::FromWire<crate::wire::SeekOrigin> for SeekOrigin {
155 #[inline]
156 fn from_wire(wire: crate::wire::SeekOrigin) -> Self {
157 Self::from(wire)
158 }
159 }
160
161 impl ::fidl_next::FromWireRef<crate::wire::SeekOrigin> for SeekOrigin {
162 #[inline]
163 fn from_wire_ref(wire: &crate::wire::SeekOrigin) -> Self {
164 Self::from(*wire)
165 }
166 }
167
168 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
169 pub struct AdvisoryLockRange {
170 pub origin: crate::natural::SeekOrigin,
171
172 pub offset: i64,
173
174 pub length: i64,
175 }
176
177 unsafe impl<___E> ::fidl_next::Encode<crate::wire::AdvisoryLockRange, ___E> for AdvisoryLockRange
178 where
179 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
180 {
181 #[inline]
182 fn encode(
183 self,
184 encoder_: &mut ___E,
185 out_: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockRange>,
186 _: (),
187 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
188 ::fidl_next::munge! {
189 let crate::wire::AdvisoryLockRange {
190 origin,
191 offset,
192 length,
193
194 } = out_;
195 }
196
197 ::fidl_next::Encode::encode(self.origin, encoder_, origin, ())?;
198
199 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(origin.as_mut_ptr()) };
200
201 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
202
203 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
204
205 ::fidl_next::Encode::encode(self.length, encoder_, length, ())?;
206
207 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(length.as_mut_ptr()) };
208
209 Ok(())
210 }
211 }
212
213 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::AdvisoryLockRange, ___E>
214 for &'a AdvisoryLockRange
215 where
216 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
217 {
218 #[inline]
219 fn encode(
220 self,
221 encoder_: &mut ___E,
222 out_: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockRange>,
223 _: (),
224 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
225 ::fidl_next::munge! {
226 let crate::wire::AdvisoryLockRange {
227 origin,
228 offset,
229 length,
230
231 } = out_;
232 }
233
234 ::fidl_next::Encode::encode(&self.origin, encoder_, origin, ())?;
235
236 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(origin.as_mut_ptr()) };
237
238 ::fidl_next::Encode::encode(&self.offset, encoder_, offset, ())?;
239
240 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
241
242 ::fidl_next::Encode::encode(&self.length, encoder_, length, ())?;
243
244 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(length.as_mut_ptr()) };
245
246 Ok(())
247 }
248 }
249
250 unsafe impl<___E>
251 ::fidl_next::EncodeOption<
252 ::fidl_next::wire::Box<'static, crate::wire::AdvisoryLockRange>,
253 ___E,
254 > for AdvisoryLockRange
255 where
256 ___E: ::fidl_next::Encoder + ?Sized,
257 AdvisoryLockRange: ::fidl_next::Encode<crate::wire::AdvisoryLockRange, ___E>,
258 {
259 #[inline]
260 fn encode_option(
261 this: ::core::option::Option<Self>,
262 encoder: &mut ___E,
263 out: &mut ::core::mem::MaybeUninit<
264 ::fidl_next::wire::Box<'static, crate::wire::AdvisoryLockRange>,
265 >,
266 _: (),
267 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
268 if let Some(inner) = this {
269 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
270 ::fidl_next::wire::Box::encode_present(out);
271 } else {
272 ::fidl_next::wire::Box::encode_absent(out);
273 }
274
275 Ok(())
276 }
277 }
278
279 unsafe impl<'a, ___E>
280 ::fidl_next::EncodeOption<
281 ::fidl_next::wire::Box<'static, crate::wire::AdvisoryLockRange>,
282 ___E,
283 > for &'a AdvisoryLockRange
284 where
285 ___E: ::fidl_next::Encoder + ?Sized,
286 &'a AdvisoryLockRange: ::fidl_next::Encode<crate::wire::AdvisoryLockRange, ___E>,
287 {
288 #[inline]
289 fn encode_option(
290 this: ::core::option::Option<Self>,
291 encoder: &mut ___E,
292 out: &mut ::core::mem::MaybeUninit<
293 ::fidl_next::wire::Box<'static, crate::wire::AdvisoryLockRange>,
294 >,
295 _: (),
296 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
297 if let Some(inner) = this {
298 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
299 ::fidl_next::wire::Box::encode_present(out);
300 } else {
301 ::fidl_next::wire::Box::encode_absent(out);
302 }
303
304 Ok(())
305 }
306 }
307
308 impl ::fidl_next::FromWire<crate::wire::AdvisoryLockRange> for AdvisoryLockRange {
309 #[inline]
310 fn from_wire(wire: crate::wire::AdvisoryLockRange) -> Self {
311 Self {
312 origin: ::fidl_next::FromWire::from_wire(wire.origin),
313
314 offset: ::fidl_next::FromWire::from_wire(wire.offset),
315
316 length: ::fidl_next::FromWire::from_wire(wire.length),
317 }
318 }
319 }
320
321 impl ::fidl_next::FromWireRef<crate::wire::AdvisoryLockRange> for AdvisoryLockRange {
322 #[inline]
323 fn from_wire_ref(wire: &crate::wire::AdvisoryLockRange) -> Self {
324 Self {
325 origin: ::fidl_next::FromWireRef::from_wire_ref(&wire.origin),
326
327 offset: ::fidl_next::FromWireRef::from_wire_ref(&wire.offset),
328
329 length: ::fidl_next::FromWireRef::from_wire_ref(&wire.length),
330 }
331 }
332 }
333
334 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
335 #[repr(u32)]
336 pub enum AdvisoryLockType {
337 Read = 1,
338 Write = 2,
339 Unlock = 3,
340 }
341 impl ::core::convert::TryFrom<u32> for AdvisoryLockType {
342 type Error = ::fidl_next::UnknownStrictEnumMemberError;
343 fn try_from(
344 value: u32,
345 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
346 match value {
347 1 => Ok(Self::Read),
348 2 => Ok(Self::Write),
349 3 => Ok(Self::Unlock),
350
351 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
352 }
353 }
354 }
355
356 unsafe impl<___E> ::fidl_next::Encode<crate::wire::AdvisoryLockType, ___E> for AdvisoryLockType
357 where
358 ___E: ?Sized,
359 {
360 #[inline]
361 fn encode(
362 self,
363 encoder: &mut ___E,
364 out: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockType>,
365 _: (),
366 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
367 ::fidl_next::Encode::encode(&self, encoder, out, ())
368 }
369 }
370
371 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::AdvisoryLockType, ___E>
372 for &'a AdvisoryLockType
373 where
374 ___E: ?Sized,
375 {
376 #[inline]
377 fn encode(
378 self,
379 encoder: &mut ___E,
380 out: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockType>,
381 _: (),
382 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
383 ::fidl_next::munge!(let crate::wire::AdvisoryLockType { value } = out);
384 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
385 AdvisoryLockType::Read => 1,
386
387 AdvisoryLockType::Write => 2,
388
389 AdvisoryLockType::Unlock => 3,
390 }));
391
392 Ok(())
393 }
394 }
395
396 impl ::core::convert::From<crate::wire::AdvisoryLockType> for AdvisoryLockType {
397 fn from(wire: crate::wire::AdvisoryLockType) -> Self {
398 match u32::from(wire.value) {
399 1 => Self::Read,
400
401 2 => Self::Write,
402
403 3 => Self::Unlock,
404
405 _ => unsafe { ::core::hint::unreachable_unchecked() },
406 }
407 }
408 }
409
410 impl ::fidl_next::FromWire<crate::wire::AdvisoryLockType> for AdvisoryLockType {
411 #[inline]
412 fn from_wire(wire: crate::wire::AdvisoryLockType) -> Self {
413 Self::from(wire)
414 }
415 }
416
417 impl ::fidl_next::FromWireRef<crate::wire::AdvisoryLockType> for AdvisoryLockType {
418 #[inline]
419 fn from_wire_ref(wire: &crate::wire::AdvisoryLockType) -> Self {
420 Self::from(*wire)
421 }
422 }
423
424 #[derive(Debug, Default, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
425 pub struct AdvisoryLockRequest {
426 pub type_: ::core::option::Option<crate::natural::AdvisoryLockType>,
427
428 pub range: ::core::option::Option<crate::natural::AdvisoryLockRange>,
429
430 pub wait: ::core::option::Option<bool>,
431 }
432
433 impl AdvisoryLockRequest {
434 fn __max_ordinal(&self) -> usize {
435 if self.wait.is_some() {
436 return 3;
437 }
438
439 if self.range.is_some() {
440 return 2;
441 }
442
443 if self.type_.is_some() {
444 return 1;
445 }
446
447 0
448 }
449 }
450
451 unsafe impl<___E> ::fidl_next::Encode<crate::wire::AdvisoryLockRequest<'static>, ___E>
452 for AdvisoryLockRequest
453 where
454 ___E: ::fidl_next::Encoder + ?Sized,
455 {
456 #[inline]
457 fn encode(
458 mut self,
459 encoder: &mut ___E,
460 out: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockRequest<'static>>,
461 _: (),
462 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
463 ::fidl_next::munge!(let crate::wire::AdvisoryLockRequest { table } = out);
464
465 let max_ord = self.__max_ordinal();
466
467 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
468 ::fidl_next::Wire::zero_padding(&mut out);
469
470 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
471 ::fidl_next::wire::Envelope,
472 >(encoder, max_ord);
473
474 for i in 1..=max_ord {
475 match i {
476 3 => {
477 if let Some(value) = self.wait.take() {
478 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
479 value,
480 preallocated.encoder,
481 &mut out,
482 (),
483 )?;
484 } else {
485 ::fidl_next::wire::Envelope::encode_zero(&mut out)
486 }
487 }
488
489 2 => {
490 if let Some(value) = self.range.take() {
491 ::fidl_next::wire::Envelope::encode_value::<
492 crate::wire::AdvisoryLockRange,
493 ___E,
494 >(
495 value, preallocated.encoder, &mut out, ()
496 )?;
497 } else {
498 ::fidl_next::wire::Envelope::encode_zero(&mut out)
499 }
500 }
501
502 1 => {
503 if let Some(value) = self.type_.take() {
504 ::fidl_next::wire::Envelope::encode_value::<
505 crate::wire::AdvisoryLockType,
506 ___E,
507 >(
508 value, preallocated.encoder, &mut out, ()
509 )?;
510 } else {
511 ::fidl_next::wire::Envelope::encode_zero(&mut out)
512 }
513 }
514
515 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
516 }
517 unsafe {
518 preallocated.write_next(out.assume_init_ref());
519 }
520 }
521
522 ::fidl_next::wire::Table::encode_len(table, max_ord);
523
524 Ok(())
525 }
526 }
527
528 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::AdvisoryLockRequest<'static>, ___E>
529 for &'a AdvisoryLockRequest
530 where
531 ___E: ::fidl_next::Encoder + ?Sized,
532 {
533 #[inline]
534 fn encode(
535 self,
536 encoder: &mut ___E,
537 out: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockRequest<'static>>,
538 _: (),
539 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
540 ::fidl_next::munge!(let crate::wire::AdvisoryLockRequest { table } = out);
541
542 let max_ord = self.__max_ordinal();
543
544 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
545 ::fidl_next::Wire::zero_padding(&mut out);
546
547 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
548 ::fidl_next::wire::Envelope,
549 >(encoder, max_ord);
550
551 for i in 1..=max_ord {
552 match i {
553 3 => {
554 if let Some(value) = &self.wait {
555 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
556 value,
557 preallocated.encoder,
558 &mut out,
559 (),
560 )?;
561 } else {
562 ::fidl_next::wire::Envelope::encode_zero(&mut out)
563 }
564 }
565
566 2 => {
567 if let Some(value) = &self.range {
568 ::fidl_next::wire::Envelope::encode_value::<
569 crate::wire::AdvisoryLockRange,
570 ___E,
571 >(
572 value, preallocated.encoder, &mut out, ()
573 )?;
574 } else {
575 ::fidl_next::wire::Envelope::encode_zero(&mut out)
576 }
577 }
578
579 1 => {
580 if let Some(value) = &self.type_ {
581 ::fidl_next::wire::Envelope::encode_value::<
582 crate::wire::AdvisoryLockType,
583 ___E,
584 >(
585 value, preallocated.encoder, &mut out, ()
586 )?;
587 } else {
588 ::fidl_next::wire::Envelope::encode_zero(&mut out)
589 }
590 }
591
592 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
593 }
594 unsafe {
595 preallocated.write_next(out.assume_init_ref());
596 }
597 }
598
599 ::fidl_next::wire::Table::encode_len(table, max_ord);
600
601 Ok(())
602 }
603 }
604
605 impl<'de> ::fidl_next::FromWire<crate::wire::AdvisoryLockRequest<'de>> for AdvisoryLockRequest {
606 #[inline]
607 fn from_wire(wire_: crate::wire::AdvisoryLockRequest<'de>) -> Self {
608 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
609
610 let type_ = wire_.table.get(1);
611
612 let range = wire_.table.get(2);
613
614 let wait = wire_.table.get(3);
615
616 Self {
617 type_: type_.map(|envelope| {
618 ::fidl_next::FromWire::from_wire(unsafe {
619 envelope.read_unchecked::<crate::wire::AdvisoryLockType>()
620 })
621 }),
622
623 range: range.map(|envelope| {
624 ::fidl_next::FromWire::from_wire(unsafe {
625 envelope.read_unchecked::<crate::wire::AdvisoryLockRange>()
626 })
627 }),
628
629 wait: wait.map(|envelope| {
630 ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<bool>() })
631 }),
632 }
633 }
634 }
635
636 impl<'de> ::fidl_next::FromWireRef<crate::wire::AdvisoryLockRequest<'de>> for AdvisoryLockRequest {
637 #[inline]
638 fn from_wire_ref(wire: &crate::wire::AdvisoryLockRequest<'de>) -> Self {
639 Self {
640 type_: wire.table.get(1).map(|envelope| {
641 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
642 envelope.deref_unchecked::<crate::wire::AdvisoryLockType>()
643 })
644 }),
645
646 range: wire.table.get(2).map(|envelope| {
647 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
648 envelope.deref_unchecked::<crate::wire::AdvisoryLockRange>()
649 })
650 }),
651
652 wait: wire.table.get(3).map(|envelope| {
653 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
654 envelope.deref_unchecked::<bool>()
655 })
656 }),
657 }
658 }
659 }
660
661 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
662 pub struct AdvisoryLockingAdvisoryLockRequest {
663 pub request: crate::natural::AdvisoryLockRequest,
664 }
665
666 unsafe impl<___E>
667 ::fidl_next::Encode<crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>, ___E>
668 for AdvisoryLockingAdvisoryLockRequest
669 where
670 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
671 ___E: ::fidl_next::Encoder,
672 {
673 #[inline]
674 fn encode(
675 self,
676 encoder_: &mut ___E,
677 out_: &mut ::core::mem::MaybeUninit<
678 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
679 >,
680 _: (),
681 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
682 ::fidl_next::munge! {
683 let crate::wire::AdvisoryLockingAdvisoryLockRequest {
684 request,
685
686 } = out_;
687 }
688
689 ::fidl_next::Encode::encode(self.request, encoder_, request, ())?;
690
691 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(request.as_mut_ptr()) };
692
693 Ok(())
694 }
695 }
696
697 unsafe impl<'a, ___E>
698 ::fidl_next::Encode<crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>, ___E>
699 for &'a AdvisoryLockingAdvisoryLockRequest
700 where
701 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
702 ___E: ::fidl_next::Encoder,
703 {
704 #[inline]
705 fn encode(
706 self,
707 encoder_: &mut ___E,
708 out_: &mut ::core::mem::MaybeUninit<
709 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
710 >,
711 _: (),
712 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
713 ::fidl_next::munge! {
714 let crate::wire::AdvisoryLockingAdvisoryLockRequest {
715 request,
716
717 } = out_;
718 }
719
720 ::fidl_next::Encode::encode(&self.request, encoder_, request, ())?;
721
722 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(request.as_mut_ptr()) };
723
724 Ok(())
725 }
726 }
727
728 unsafe impl<___E>
729 ::fidl_next::EncodeOption<
730 ::fidl_next::wire::Box<
731 'static,
732 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
733 >,
734 ___E,
735 > for AdvisoryLockingAdvisoryLockRequest
736 where
737 ___E: ::fidl_next::Encoder + ?Sized,
738 AdvisoryLockingAdvisoryLockRequest:
739 ::fidl_next::Encode<crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>, ___E>,
740 {
741 #[inline]
742 fn encode_option(
743 this: ::core::option::Option<Self>,
744 encoder: &mut ___E,
745 out: &mut ::core::mem::MaybeUninit<
746 ::fidl_next::wire::Box<
747 'static,
748 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
749 >,
750 >,
751 _: (),
752 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
753 if let Some(inner) = this {
754 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
755 ::fidl_next::wire::Box::encode_present(out);
756 } else {
757 ::fidl_next::wire::Box::encode_absent(out);
758 }
759
760 Ok(())
761 }
762 }
763
764 unsafe impl<'a, ___E>
765 ::fidl_next::EncodeOption<
766 ::fidl_next::wire::Box<
767 'static,
768 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
769 >,
770 ___E,
771 > for &'a AdvisoryLockingAdvisoryLockRequest
772 where
773 ___E: ::fidl_next::Encoder + ?Sized,
774 &'a AdvisoryLockingAdvisoryLockRequest:
775 ::fidl_next::Encode<crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>, ___E>,
776 {
777 #[inline]
778 fn encode_option(
779 this: ::core::option::Option<Self>,
780 encoder: &mut ___E,
781 out: &mut ::core::mem::MaybeUninit<
782 ::fidl_next::wire::Box<
783 'static,
784 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
785 >,
786 >,
787 _: (),
788 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
789 if let Some(inner) = this {
790 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
791 ::fidl_next::wire::Box::encode_present(out);
792 } else {
793 ::fidl_next::wire::Box::encode_absent(out);
794 }
795
796 Ok(())
797 }
798 }
799
800 impl<'de> ::fidl_next::FromWire<crate::wire::AdvisoryLockingAdvisoryLockRequest<'de>>
801 for AdvisoryLockingAdvisoryLockRequest
802 {
803 #[inline]
804 fn from_wire(wire: crate::wire::AdvisoryLockingAdvisoryLockRequest<'de>) -> Self {
805 Self { request: ::fidl_next::FromWire::from_wire(wire.request) }
806 }
807 }
808
809 impl<'de> ::fidl_next::FromWireRef<crate::wire::AdvisoryLockingAdvisoryLockRequest<'de>>
810 for AdvisoryLockingAdvisoryLockRequest
811 {
812 #[inline]
813 fn from_wire_ref(wire: &crate::wire::AdvisoryLockingAdvisoryLockRequest<'de>) -> Self {
814 Self { request: ::fidl_next::FromWireRef::from_wire_ref(&wire.request) }
815 }
816 }
817
818 pub type AdvisoryLockingAdvisoryLockResponse = ();
819
820 ::fidl_next::bitflags::bitflags! {
821 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct AllocateMode: u32 {
822 const KEEP_SIZE = 1;
823 const UNSHARE_RANGE = 2;
824 const PUNCH_HOLE = 4;
825 const COLLAPSE_RANGE = 8;
826 const ZERO_RANGE = 16;
827 const INSERT_RANGE = 32;
828 const _ = !0;
829 }
830 }
831
832 unsafe impl<___E> ::fidl_next::Encode<crate::wire::AllocateMode, ___E> for AllocateMode
833 where
834 ___E: ?Sized,
835 {
836 #[inline]
837 fn encode(
838 self,
839 encoder: &mut ___E,
840 out: &mut ::core::mem::MaybeUninit<crate::wire::AllocateMode>,
841 _: (),
842 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
843 ::fidl_next::Encode::encode(&self, encoder, out, ())
844 }
845 }
846
847 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::AllocateMode, ___E> for &'a AllocateMode
848 where
849 ___E: ?Sized,
850 {
851 #[inline]
852 fn encode(
853 self,
854 _: &mut ___E,
855 out: &mut ::core::mem::MaybeUninit<crate::wire::AllocateMode>,
856 _: (),
857 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
858 ::fidl_next::munge!(let crate::wire::AllocateMode { value } = out);
859
860 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
861 Ok(())
862 }
863 }
864
865 impl ::core::convert::From<crate::wire::AllocateMode> for AllocateMode {
866 fn from(wire: crate::wire::AllocateMode) -> Self {
867 Self::from_bits_retain(u32::from(wire.value))
868 }
869 }
870
871 impl ::fidl_next::FromWire<crate::wire::AllocateMode> for AllocateMode {
872 #[inline]
873 fn from_wire(wire: crate::wire::AllocateMode) -> Self {
874 Self::from(wire)
875 }
876 }
877
878 impl ::fidl_next::FromWireRef<crate::wire::AllocateMode> for AllocateMode {
879 #[inline]
880 fn from_wire_ref(wire: &crate::wire::AllocateMode) -> Self {
881 Self::from(*wire)
882 }
883 }
884
885 #[doc = " Rights are properties specific to a connection. They limit which operations are allowed on a\n connection, including those which may be granted to new connections.\n\n Invoking an operation without the corresponding right results in `ZX_ERR_ACCESS_DENIED`\n even if the node does not have support for the operation.\n"]
886 pub type Rights = crate::natural::Operations;
887
888 #[doc = " The type to identify a node, if the implementation supports some notion of\n unique node ID.\n\n ## Uniqueness Guarantees\n\n A client is usually presented with a directory tree that is the result\n of composing together multiple backing implementation instances. An ID\n would be unique within the corresponding instance only.\n Their boundaries are rather implicit on Fuchsia, as a result of\n transparently-forwarding directory proxies. It could be common for a client\n to observe identical `Id`s when traversing a directory tree, when it\n encounters nodes from different backing instances. Therefore, the ID is best\n used for debugging and informational purposes.\n\n The [`fuchsia.fs/FilesystemInfo.fs_id`] field may be used to disambiguate\n IDs from different backing instances.\n"]
889 pub type Id = u64;
890
891 ::fidl_next::bitflags::bitflags! {
892 #[doc = " DEPRECATED - Use Flags instead.\n"]#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct OpenFlags: u32 {
893 #[doc = " Can read from target object.\n"]const RIGHT_READABLE = 1;
894 #[doc = " Can write to target object.\n"]const RIGHT_WRITABLE = 2;
895 #[doc = " Connection can map target object executable.\n"]const RIGHT_EXECUTABLE = 8;
896 #[doc = " Create the object if it doesn\'t exist.\n"]const CREATE = 65536;
897 #[doc = " (with Create) Fail if the object already exists.\n"]const CREATE_IF_ABSENT = 131072;
898 #[doc = " Truncate the object before usage.\n"]const TRUNCATE = 262144;
899 #[doc = " Assert that the object to be opened is a directory.\n Return an error if the target object is not a directory.\n"]const DIRECTORY = 524288;
900 #[doc = " Seek to the end of the object before all writes.\n"]const APPEND = 1048576;
901 #[doc = " Open a reference to the object, not the object itself.\n It is ONLY valid to pass the following flags together with `NODE_REFERENCE`:\n - `DIRECTORY`\n - `NOT_DIRECTORY`\n - `DESCRIBE`\n otherwise an error is returned.\n If an object is opened or cloned using this method, the resulting connection does not carry\n any permission flags.\n The resulting connection allows a limited set of operations: `GetAttr`, `Clone`, `Close`,\n `Describe`, and `GetFlags`. The connection will speak the `Node` protocol. Calling `SetAttr`\n or `SetFlags` will result in `ZX_ERR_BAD_HANDLE`.\n"]const NODE_REFERENCE = 4194304;
902 #[doc = " Requests that an \"OnOpen\" event is sent to the interface request.\n\n The event will contain a non-null `NodeInfoDeprecated` if the open/clone is successful. This\n can be used to open a protocol that does not compose fuchsia.io/Node; the event is sent as\n if the protocol is fuchsia.io/Node and then the target protocol is used exclusively.\n"]const DESCRIBE = 8388608;
903 #[doc = " Specify this flag to request POSIX-compatibility with respect to write permission handling.\n Currently, it affects permission handling specifically during Open:\n - If the target path is a directory, the rights on the new connection expand to include\n `WRITABLE` if and only if the current connection and all intermediate mount points\n are writable.\n - Otherwise, this flag is ignored. It is an access denied error to request more rights\n than those on the current connection, or any intermediate mount points.\n\n If this flag is omitted, opening always uses the requested rights, failing the operation with\n access denied error if requested rights exceeds the rights attached to the current connection.\n\n If the requesting connection is read-only and the requested rights are read-only, the flag\n may be ignored by the server, and is not forwarded downstream. This is an implementation detail,\n necessary to enforce hierarchical permissions across mount points, and should have no effect\n on the expected behavior for clients.\n"]const POSIX_WRITABLE = 134217728;
904 #[doc = " Specify this flag to request POSIX-compatibility with respect to execute permission handling.\n Currently, it affects permission handling specifically during Open:\n - If the target path is a directory, the rights on the new connection expand to include\n `EXECUTABLE` if and only if the current connection and all intermediate mount\n points are executable.\n - Otherwise, this flag is ignored. It is an access denied error to request more rights\n than those on the current connection, or any intermediate mount points.\n\n If this flag is omitted, opening always uses the requested rights, failing the operation with\n access denied error if requested rights exceeds the rights attached to the current connection.\n\n If the requesting connection is read-only and the requested rights are read-only, the flag\n may be ignored by the server, and is not forwarded downstream. This is an implementation detail,\n necessary to enforce hierarchical permissions across mount points, and should have no effect\n on the expected behavior for clients.\n"]const POSIX_EXECUTABLE = 268435456;
905 #[doc = " Assert that the object to be opened is not a directory.\n Return an error if the target object is a directory.\n"]const NOT_DIRECTORY = 33554432;
906 #[doc = " When used during clone, the new connection inherits the rights on the source connection,\n regardless if it is a file or directory. Otherwise, clone attempts to use the requested rights.\n It is invalid to pass any of the `RIGHT_*` flags together with `OpenFlags.CLONE_SAME_RIGHTS`.\n"]const CLONE_SAME_RIGHTS = 67108864;
907 #[doc = " Open the target object as a block device.\n"]const BLOCK_DEVICE = 16777216;
908
909 }
910 }
911
912 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OpenFlags, ___E> for OpenFlags
913 where
914 ___E: ?Sized,
915 {
916 #[inline]
917 fn encode(
918 self,
919 encoder: &mut ___E,
920 out: &mut ::core::mem::MaybeUninit<crate::wire::OpenFlags>,
921 _: (),
922 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
923 ::fidl_next::Encode::encode(&self, encoder, out, ())
924 }
925 }
926
927 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OpenFlags, ___E> for &'a OpenFlags
928 where
929 ___E: ?Sized,
930 {
931 #[inline]
932 fn encode(
933 self,
934 _: &mut ___E,
935 out: &mut ::core::mem::MaybeUninit<crate::wire::OpenFlags>,
936 _: (),
937 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
938 ::fidl_next::munge!(let crate::wire::OpenFlags { value } = out);
939
940 if ::fidl_next::bitflags::Flags::contains_unknown_bits(self) {
941 return Err(::fidl_next::EncodeError::InvalidStrictBits);
942 }
943
944 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
945 Ok(())
946 }
947 }
948
949 impl ::core::convert::From<crate::wire::OpenFlags> for OpenFlags {
950 fn from(wire: crate::wire::OpenFlags) -> Self {
951 Self::from_bits_retain(u32::from(wire.value))
952 }
953 }
954
955 impl ::fidl_next::FromWire<crate::wire::OpenFlags> for OpenFlags {
956 #[inline]
957 fn from_wire(wire: crate::wire::OpenFlags) -> Self {
958 Self::from(wire)
959 }
960 }
961
962 impl ::fidl_next::FromWireRef<crate::wire::OpenFlags> for OpenFlags {
963 #[inline]
964 fn from_wire_ref(wire: &crate::wire::OpenFlags) -> Self {
965 Self::from(*wire)
966 }
967 }
968
969 #[doc = " NodeAttributes defines generic information about a filesystem node.\n"]
970 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
971 pub struct NodeAttributes {
972 pub mode: u32,
973
974 pub id: u64,
975
976 pub content_size: u64,
977
978 pub storage_size: u64,
979
980 pub link_count: u64,
981
982 pub creation_time: u64,
983
984 pub modification_time: u64,
985 }
986
987 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeAttributes, ___E> for NodeAttributes
988 where
989 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
990 {
991 #[inline]
992 fn encode(
993 self,
994 encoder_: &mut ___E,
995 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributes>,
996 _: (),
997 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
998 ::fidl_next::munge! {
999 let crate::wire::NodeAttributes {
1000 mode,
1001 id,
1002 content_size,
1003 storage_size,
1004 link_count,
1005 creation_time,
1006 modification_time,
1007
1008 } = out_;
1009 }
1010
1011 ::fidl_next::Encode::encode(self.mode, encoder_, mode, ())?;
1012
1013 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(mode.as_mut_ptr()) };
1014
1015 ::fidl_next::Encode::encode(self.id, encoder_, id, ())?;
1016
1017 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(id.as_mut_ptr()) };
1018
1019 ::fidl_next::Encode::encode(self.content_size, encoder_, content_size, ())?;
1020
1021 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(content_size.as_mut_ptr()) };
1022
1023 ::fidl_next::Encode::encode(self.storage_size, encoder_, storage_size, ())?;
1024
1025 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(storage_size.as_mut_ptr()) };
1026
1027 ::fidl_next::Encode::encode(self.link_count, encoder_, link_count, ())?;
1028
1029 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(link_count.as_mut_ptr()) };
1030
1031 ::fidl_next::Encode::encode(self.creation_time, encoder_, creation_time, ())?;
1032
1033 let mut _field =
1034 unsafe { ::fidl_next::Slot::new_unchecked(creation_time.as_mut_ptr()) };
1035
1036 ::fidl_next::Encode::encode(self.modification_time, encoder_, modification_time, ())?;
1037
1038 let mut _field =
1039 unsafe { ::fidl_next::Slot::new_unchecked(modification_time.as_mut_ptr()) };
1040
1041 Ok(())
1042 }
1043 }
1044
1045 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeAttributes, ___E> for &'a NodeAttributes
1046 where
1047 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1048 {
1049 #[inline]
1050 fn encode(
1051 self,
1052 encoder_: &mut ___E,
1053 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributes>,
1054 _: (),
1055 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1056 ::fidl_next::munge! {
1057 let crate::wire::NodeAttributes {
1058 mode,
1059 id,
1060 content_size,
1061 storage_size,
1062 link_count,
1063 creation_time,
1064 modification_time,
1065
1066 } = out_;
1067 }
1068
1069 ::fidl_next::Encode::encode(&self.mode, encoder_, mode, ())?;
1070
1071 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(mode.as_mut_ptr()) };
1072
1073 ::fidl_next::Encode::encode(&self.id, encoder_, id, ())?;
1074
1075 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(id.as_mut_ptr()) };
1076
1077 ::fidl_next::Encode::encode(&self.content_size, encoder_, content_size, ())?;
1078
1079 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(content_size.as_mut_ptr()) };
1080
1081 ::fidl_next::Encode::encode(&self.storage_size, encoder_, storage_size, ())?;
1082
1083 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(storage_size.as_mut_ptr()) };
1084
1085 ::fidl_next::Encode::encode(&self.link_count, encoder_, link_count, ())?;
1086
1087 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(link_count.as_mut_ptr()) };
1088
1089 ::fidl_next::Encode::encode(&self.creation_time, encoder_, creation_time, ())?;
1090
1091 let mut _field =
1092 unsafe { ::fidl_next::Slot::new_unchecked(creation_time.as_mut_ptr()) };
1093
1094 ::fidl_next::Encode::encode(&self.modification_time, encoder_, modification_time, ())?;
1095
1096 let mut _field =
1097 unsafe { ::fidl_next::Slot::new_unchecked(modification_time.as_mut_ptr()) };
1098
1099 Ok(())
1100 }
1101 }
1102
1103 unsafe impl<___E>
1104 ::fidl_next::EncodeOption<
1105 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes>,
1106 ___E,
1107 > for NodeAttributes
1108 where
1109 ___E: ::fidl_next::Encoder + ?Sized,
1110 NodeAttributes: ::fidl_next::Encode<crate::wire::NodeAttributes, ___E>,
1111 {
1112 #[inline]
1113 fn encode_option(
1114 this: ::core::option::Option<Self>,
1115 encoder: &mut ___E,
1116 out: &mut ::core::mem::MaybeUninit<
1117 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes>,
1118 >,
1119 _: (),
1120 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1121 if let Some(inner) = this {
1122 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1123 ::fidl_next::wire::Box::encode_present(out);
1124 } else {
1125 ::fidl_next::wire::Box::encode_absent(out);
1126 }
1127
1128 Ok(())
1129 }
1130 }
1131
1132 unsafe impl<'a, ___E>
1133 ::fidl_next::EncodeOption<
1134 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes>,
1135 ___E,
1136 > for &'a NodeAttributes
1137 where
1138 ___E: ::fidl_next::Encoder + ?Sized,
1139 &'a NodeAttributes: ::fidl_next::Encode<crate::wire::NodeAttributes, ___E>,
1140 {
1141 #[inline]
1142 fn encode_option(
1143 this: ::core::option::Option<Self>,
1144 encoder: &mut ___E,
1145 out: &mut ::core::mem::MaybeUninit<
1146 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes>,
1147 >,
1148 _: (),
1149 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1150 if let Some(inner) = this {
1151 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1152 ::fidl_next::wire::Box::encode_present(out);
1153 } else {
1154 ::fidl_next::wire::Box::encode_absent(out);
1155 }
1156
1157 Ok(())
1158 }
1159 }
1160
1161 impl ::fidl_next::FromWire<crate::wire::NodeAttributes> for NodeAttributes {
1162 #[inline]
1163 fn from_wire(wire: crate::wire::NodeAttributes) -> Self {
1164 Self {
1165 mode: ::fidl_next::FromWire::from_wire(wire.mode),
1166
1167 id: ::fidl_next::FromWire::from_wire(wire.id),
1168
1169 content_size: ::fidl_next::FromWire::from_wire(wire.content_size),
1170
1171 storage_size: ::fidl_next::FromWire::from_wire(wire.storage_size),
1172
1173 link_count: ::fidl_next::FromWire::from_wire(wire.link_count),
1174
1175 creation_time: ::fidl_next::FromWire::from_wire(wire.creation_time),
1176
1177 modification_time: ::fidl_next::FromWire::from_wire(wire.modification_time),
1178 }
1179 }
1180 }
1181
1182 impl ::fidl_next::FromWireRef<crate::wire::NodeAttributes> for NodeAttributes {
1183 #[inline]
1184 fn from_wire_ref(wire: &crate::wire::NodeAttributes) -> Self {
1185 Self {
1186 mode: ::fidl_next::FromWireRef::from_wire_ref(&wire.mode),
1187
1188 id: ::fidl_next::FromWireRef::from_wire_ref(&wire.id),
1189
1190 content_size: ::fidl_next::FromWireRef::from_wire_ref(&wire.content_size),
1191
1192 storage_size: ::fidl_next::FromWireRef::from_wire_ref(&wire.storage_size),
1193
1194 link_count: ::fidl_next::FromWireRef::from_wire_ref(&wire.link_count),
1195
1196 creation_time: ::fidl_next::FromWireRef::from_wire_ref(&wire.creation_time),
1197
1198 modification_time: ::fidl_next::FromWireRef::from_wire_ref(&wire.modification_time),
1199 }
1200 }
1201 }
1202
1203 ::fidl_next::bitflags::bitflags! {
1204 #[doc = " The fields of \'attributes\' which are used to update the Node are indicated\n by the \'flags\' argument.\n"]#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct NodeAttributeFlags: u32 {
1205 const CREATION_TIME = 1;
1206 const MODIFICATION_TIME = 2;
1207
1208 }
1209 }
1210
1211 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeAttributeFlags, ___E> for NodeAttributeFlags
1212 where
1213 ___E: ?Sized,
1214 {
1215 #[inline]
1216 fn encode(
1217 self,
1218 encoder: &mut ___E,
1219 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributeFlags>,
1220 _: (),
1221 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1222 ::fidl_next::Encode::encode(&self, encoder, out, ())
1223 }
1224 }
1225
1226 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeAttributeFlags, ___E>
1227 for &'a NodeAttributeFlags
1228 where
1229 ___E: ?Sized,
1230 {
1231 #[inline]
1232 fn encode(
1233 self,
1234 _: &mut ___E,
1235 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributeFlags>,
1236 _: (),
1237 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1238 ::fidl_next::munge!(let crate::wire::NodeAttributeFlags { value } = out);
1239
1240 if ::fidl_next::bitflags::Flags::contains_unknown_bits(self) {
1241 return Err(::fidl_next::EncodeError::InvalidStrictBits);
1242 }
1243
1244 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
1245 Ok(())
1246 }
1247 }
1248
1249 impl ::core::convert::From<crate::wire::NodeAttributeFlags> for NodeAttributeFlags {
1250 fn from(wire: crate::wire::NodeAttributeFlags) -> Self {
1251 Self::from_bits_retain(u32::from(wire.value))
1252 }
1253 }
1254
1255 impl ::fidl_next::FromWire<crate::wire::NodeAttributeFlags> for NodeAttributeFlags {
1256 #[inline]
1257 fn from_wire(wire: crate::wire::NodeAttributeFlags) -> Self {
1258 Self::from(wire)
1259 }
1260 }
1261
1262 impl ::fidl_next::FromWireRef<crate::wire::NodeAttributeFlags> for NodeAttributeFlags {
1263 #[inline]
1264 fn from_wire_ref(wire: &crate::wire::NodeAttributeFlags) -> Self {
1265 Self::from(*wire)
1266 }
1267 }
1268
1269 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1270 pub struct NodeQueryFilesystemResponse {
1271 pub s: ::fidl_next::fuchsia::zx::Status,
1272
1273 pub info: ::core::option::Option<::std::boxed::Box<crate::natural::FilesystemInfo>>,
1274 }
1275
1276 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeQueryFilesystemResponse<'static>, ___E>
1277 for NodeQueryFilesystemResponse
1278 where
1279 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1280 ___E: ::fidl_next::Encoder,
1281 {
1282 #[inline]
1283 fn encode(
1284 self,
1285 encoder_: &mut ___E,
1286 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeQueryFilesystemResponse<'static>>,
1287 _: (),
1288 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1289 ::fidl_next::munge! {
1290 let crate::wire::NodeQueryFilesystemResponse {
1291 s,
1292 info,
1293
1294 } = out_;
1295 }
1296
1297 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
1298
1299 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
1300
1301 ::fidl_next::Encode::encode(self.info, encoder_, info, ())?;
1302
1303 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(info.as_mut_ptr()) };
1304
1305 Ok(())
1306 }
1307 }
1308
1309 unsafe impl<'a, ___E>
1310 ::fidl_next::Encode<crate::wire::NodeQueryFilesystemResponse<'static>, ___E>
1311 for &'a NodeQueryFilesystemResponse
1312 where
1313 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1314 ___E: ::fidl_next::Encoder,
1315 {
1316 #[inline]
1317 fn encode(
1318 self,
1319 encoder_: &mut ___E,
1320 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeQueryFilesystemResponse<'static>>,
1321 _: (),
1322 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1323 ::fidl_next::munge! {
1324 let crate::wire::NodeQueryFilesystemResponse {
1325 s,
1326 info,
1327
1328 } = out_;
1329 }
1330
1331 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
1332
1333 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
1334
1335 ::fidl_next::Encode::encode(&self.info, encoder_, info, ())?;
1336
1337 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(info.as_mut_ptr()) };
1338
1339 Ok(())
1340 }
1341 }
1342
1343 unsafe impl<___E>
1344 ::fidl_next::EncodeOption<
1345 ::fidl_next::wire::Box<'static, crate::wire::NodeQueryFilesystemResponse<'static>>,
1346 ___E,
1347 > for NodeQueryFilesystemResponse
1348 where
1349 ___E: ::fidl_next::Encoder + ?Sized,
1350 NodeQueryFilesystemResponse:
1351 ::fidl_next::Encode<crate::wire::NodeQueryFilesystemResponse<'static>, ___E>,
1352 {
1353 #[inline]
1354 fn encode_option(
1355 this: ::core::option::Option<Self>,
1356 encoder: &mut ___E,
1357 out: &mut ::core::mem::MaybeUninit<
1358 ::fidl_next::wire::Box<'static, crate::wire::NodeQueryFilesystemResponse<'static>>,
1359 >,
1360 _: (),
1361 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1362 if let Some(inner) = this {
1363 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1364 ::fidl_next::wire::Box::encode_present(out);
1365 } else {
1366 ::fidl_next::wire::Box::encode_absent(out);
1367 }
1368
1369 Ok(())
1370 }
1371 }
1372
1373 unsafe impl<'a, ___E>
1374 ::fidl_next::EncodeOption<
1375 ::fidl_next::wire::Box<'static, crate::wire::NodeQueryFilesystemResponse<'static>>,
1376 ___E,
1377 > for &'a NodeQueryFilesystemResponse
1378 where
1379 ___E: ::fidl_next::Encoder + ?Sized,
1380 &'a NodeQueryFilesystemResponse:
1381 ::fidl_next::Encode<crate::wire::NodeQueryFilesystemResponse<'static>, ___E>,
1382 {
1383 #[inline]
1384 fn encode_option(
1385 this: ::core::option::Option<Self>,
1386 encoder: &mut ___E,
1387 out: &mut ::core::mem::MaybeUninit<
1388 ::fidl_next::wire::Box<'static, crate::wire::NodeQueryFilesystemResponse<'static>>,
1389 >,
1390 _: (),
1391 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1392 if let Some(inner) = this {
1393 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1394 ::fidl_next::wire::Box::encode_present(out);
1395 } else {
1396 ::fidl_next::wire::Box::encode_absent(out);
1397 }
1398
1399 Ok(())
1400 }
1401 }
1402
1403 impl<'de> ::fidl_next::FromWire<crate::wire::NodeQueryFilesystemResponse<'de>>
1404 for NodeQueryFilesystemResponse
1405 {
1406 #[inline]
1407 fn from_wire(wire: crate::wire::NodeQueryFilesystemResponse<'de>) -> Self {
1408 Self {
1409 s: ::fidl_next::FromWire::from_wire(wire.s),
1410
1411 info: ::fidl_next::FromWire::from_wire(wire.info),
1412 }
1413 }
1414 }
1415
1416 impl<'de> ::fidl_next::FromWireRef<crate::wire::NodeQueryFilesystemResponse<'de>>
1417 for NodeQueryFilesystemResponse
1418 {
1419 #[inline]
1420 fn from_wire_ref(wire: &crate::wire::NodeQueryFilesystemResponse<'de>) -> Self {
1421 Self {
1422 s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s),
1423
1424 info: ::fidl_next::FromWireRef::from_wire_ref(&wire.info),
1425 }
1426 }
1427 }
1428
1429 pub type NodeUpdateAttributesResponse = ();
1430
1431 pub type NodeSyncResponse = ();
1432
1433 ::fidl_next::bitflags::bitflags! {
1434 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct ModeType: u32 {
1435 const DO_NOT_USE = 2147483648;
1436
1437 }
1438 }
1439
1440 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ModeType, ___E> for ModeType
1441 where
1442 ___E: ?Sized,
1443 {
1444 #[inline]
1445 fn encode(
1446 self,
1447 encoder: &mut ___E,
1448 out: &mut ::core::mem::MaybeUninit<crate::wire::ModeType>,
1449 _: (),
1450 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1451 ::fidl_next::Encode::encode(&self, encoder, out, ())
1452 }
1453 }
1454
1455 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ModeType, ___E> for &'a ModeType
1456 where
1457 ___E: ?Sized,
1458 {
1459 #[inline]
1460 fn encode(
1461 self,
1462 _: &mut ___E,
1463 out: &mut ::core::mem::MaybeUninit<crate::wire::ModeType>,
1464 _: (),
1465 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1466 ::fidl_next::munge!(let crate::wire::ModeType { value } = out);
1467
1468 if ::fidl_next::bitflags::Flags::contains_unknown_bits(self) {
1469 return Err(::fidl_next::EncodeError::InvalidStrictBits);
1470 }
1471
1472 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
1473 Ok(())
1474 }
1475 }
1476
1477 impl ::core::convert::From<crate::wire::ModeType> for ModeType {
1478 fn from(wire: crate::wire::ModeType) -> Self {
1479 Self::from_bits_retain(u32::from(wire.value))
1480 }
1481 }
1482
1483 impl ::fidl_next::FromWire<crate::wire::ModeType> for ModeType {
1484 #[inline]
1485 fn from_wire(wire: crate::wire::ModeType) -> Self {
1486 Self::from(wire)
1487 }
1488 }
1489
1490 impl ::fidl_next::FromWireRef<crate::wire::ModeType> for ModeType {
1491 #[inline]
1492 fn from_wire_ref(wire: &crate::wire::ModeType) -> Self {
1493 Self::from(*wire)
1494 }
1495 }
1496
1497 #[doc = " A path is a string of one or more components, separated by \"/\".\n E.g. `foo/bar/baz`\n\n ## Invariants\n\n A valid path must meet the following criteria:\n\n * It cannot be empty.\n * It cannot be longer than [`MAX_PATH_LENGTH`].\n * It cannot have a leading \"/\".\n * It cannot have a trailing \"/\".\n * It must be exactly \".\" OR each of its components must be a valid [`Name`].\n\n Paths should be transformed into their canonical forms at client side.\n For example, a client should convert `\"foo/bar/.././baz/\"` to `\"foo/baz\"`\n before using it as a path.\n"]
1498 pub type Path = ::std::string::String;
1499
1500 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1501 #[repr(C)]
1502 pub struct DirectoryReadDirentsRequest {
1503 pub max_bytes: u64,
1504 }
1505
1506 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryReadDirentsRequest, ___E>
1507 for DirectoryReadDirentsRequest
1508 where
1509 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1510 {
1511 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
1512 Self,
1513 crate::wire::DirectoryReadDirentsRequest,
1514 > = unsafe {
1515 ::fidl_next::CopyOptimization::enable_if(
1516 true
1517
1518 && <
1519 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
1520 >::COPY_OPTIMIZATION.is_enabled()
1521
1522 )
1523 };
1524
1525 #[inline]
1526 fn encode(
1527 self,
1528 encoder_: &mut ___E,
1529 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryReadDirentsRequest>,
1530 _: (),
1531 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1532 ::fidl_next::munge! {
1533 let crate::wire::DirectoryReadDirentsRequest {
1534 max_bytes,
1535
1536 } = out_;
1537 }
1538
1539 ::fidl_next::Encode::encode(self.max_bytes, encoder_, max_bytes, ())?;
1540
1541 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(max_bytes.as_mut_ptr()) };
1542
1543 Ok(())
1544 }
1545 }
1546
1547 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirectoryReadDirentsRequest, ___E>
1548 for &'a DirectoryReadDirentsRequest
1549 where
1550 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1551 {
1552 #[inline]
1553 fn encode(
1554 self,
1555 encoder_: &mut ___E,
1556 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryReadDirentsRequest>,
1557 _: (),
1558 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1559 ::fidl_next::munge! {
1560 let crate::wire::DirectoryReadDirentsRequest {
1561 max_bytes,
1562
1563 } = out_;
1564 }
1565
1566 ::fidl_next::Encode::encode(&self.max_bytes, encoder_, max_bytes, ())?;
1567
1568 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(max_bytes.as_mut_ptr()) };
1569
1570 Ok(())
1571 }
1572 }
1573
1574 unsafe impl<___E>
1575 ::fidl_next::EncodeOption<
1576 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsRequest>,
1577 ___E,
1578 > for DirectoryReadDirentsRequest
1579 where
1580 ___E: ::fidl_next::Encoder + ?Sized,
1581 DirectoryReadDirentsRequest:
1582 ::fidl_next::Encode<crate::wire::DirectoryReadDirentsRequest, ___E>,
1583 {
1584 #[inline]
1585 fn encode_option(
1586 this: ::core::option::Option<Self>,
1587 encoder: &mut ___E,
1588 out: &mut ::core::mem::MaybeUninit<
1589 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsRequest>,
1590 >,
1591 _: (),
1592 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1593 if let Some(inner) = this {
1594 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1595 ::fidl_next::wire::Box::encode_present(out);
1596 } else {
1597 ::fidl_next::wire::Box::encode_absent(out);
1598 }
1599
1600 Ok(())
1601 }
1602 }
1603
1604 unsafe impl<'a, ___E>
1605 ::fidl_next::EncodeOption<
1606 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsRequest>,
1607 ___E,
1608 > for &'a DirectoryReadDirentsRequest
1609 where
1610 ___E: ::fidl_next::Encoder + ?Sized,
1611 &'a DirectoryReadDirentsRequest:
1612 ::fidl_next::Encode<crate::wire::DirectoryReadDirentsRequest, ___E>,
1613 {
1614 #[inline]
1615 fn encode_option(
1616 this: ::core::option::Option<Self>,
1617 encoder: &mut ___E,
1618 out: &mut ::core::mem::MaybeUninit<
1619 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsRequest>,
1620 >,
1621 _: (),
1622 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1623 if let Some(inner) = this {
1624 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1625 ::fidl_next::wire::Box::encode_present(out);
1626 } else {
1627 ::fidl_next::wire::Box::encode_absent(out);
1628 }
1629
1630 Ok(())
1631 }
1632 }
1633
1634 impl ::fidl_next::FromWire<crate::wire::DirectoryReadDirentsRequest>
1635 for DirectoryReadDirentsRequest
1636 {
1637 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
1638 crate::wire::DirectoryReadDirentsRequest,
1639 Self,
1640 > = unsafe {
1641 ::fidl_next::CopyOptimization::enable_if(
1642 true
1643 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
1644 .is_enabled(),
1645 )
1646 };
1647
1648 #[inline]
1649 fn from_wire(wire: crate::wire::DirectoryReadDirentsRequest) -> Self {
1650 Self { max_bytes: ::fidl_next::FromWire::from_wire(wire.max_bytes) }
1651 }
1652 }
1653
1654 impl ::fidl_next::FromWireRef<crate::wire::DirectoryReadDirentsRequest>
1655 for DirectoryReadDirentsRequest
1656 {
1657 #[inline]
1658 fn from_wire_ref(wire: &crate::wire::DirectoryReadDirentsRequest) -> Self {
1659 Self { max_bytes: ::fidl_next::FromWireRef::from_wire_ref(&wire.max_bytes) }
1660 }
1661 }
1662
1663 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1664 pub struct DirectoryReadDirentsResponse {
1665 pub s: ::fidl_next::fuchsia::zx::Status,
1666
1667 pub dirents: ::std::vec::Vec<u8>,
1668 }
1669
1670 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryReadDirentsResponse<'static>, ___E>
1671 for DirectoryReadDirentsResponse
1672 where
1673 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1674 ___E: ::fidl_next::Encoder,
1675 {
1676 #[inline]
1677 fn encode(
1678 self,
1679 encoder_: &mut ___E,
1680 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryReadDirentsResponse<'static>>,
1681 _: (),
1682 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1683 ::fidl_next::munge! {
1684 let crate::wire::DirectoryReadDirentsResponse {
1685 s,
1686 dirents,
1687
1688 } = out_;
1689 }
1690
1691 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
1692
1693 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
1694
1695 ::fidl_next::Encode::encode(self.dirents, encoder_, dirents, (8192, ()))?;
1696
1697 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(dirents.as_mut_ptr()) };
1698 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
1699
1700 Ok(())
1701 }
1702 }
1703
1704 unsafe impl<'a, ___E>
1705 ::fidl_next::Encode<crate::wire::DirectoryReadDirentsResponse<'static>, ___E>
1706 for &'a DirectoryReadDirentsResponse
1707 where
1708 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1709 ___E: ::fidl_next::Encoder,
1710 {
1711 #[inline]
1712 fn encode(
1713 self,
1714 encoder_: &mut ___E,
1715 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryReadDirentsResponse<'static>>,
1716 _: (),
1717 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1718 ::fidl_next::munge! {
1719 let crate::wire::DirectoryReadDirentsResponse {
1720 s,
1721 dirents,
1722
1723 } = out_;
1724 }
1725
1726 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
1727
1728 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
1729
1730 ::fidl_next::Encode::encode(&self.dirents, encoder_, dirents, (8192, ()))?;
1731
1732 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(dirents.as_mut_ptr()) };
1733 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
1734
1735 Ok(())
1736 }
1737 }
1738
1739 unsafe impl<___E>
1740 ::fidl_next::EncodeOption<
1741 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsResponse<'static>>,
1742 ___E,
1743 > for DirectoryReadDirentsResponse
1744 where
1745 ___E: ::fidl_next::Encoder + ?Sized,
1746 DirectoryReadDirentsResponse:
1747 ::fidl_next::Encode<crate::wire::DirectoryReadDirentsResponse<'static>, ___E>,
1748 {
1749 #[inline]
1750 fn encode_option(
1751 this: ::core::option::Option<Self>,
1752 encoder: &mut ___E,
1753 out: &mut ::core::mem::MaybeUninit<
1754 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsResponse<'static>>,
1755 >,
1756 _: (),
1757 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1758 if let Some(inner) = this {
1759 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1760 ::fidl_next::wire::Box::encode_present(out);
1761 } else {
1762 ::fidl_next::wire::Box::encode_absent(out);
1763 }
1764
1765 Ok(())
1766 }
1767 }
1768
1769 unsafe impl<'a, ___E>
1770 ::fidl_next::EncodeOption<
1771 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsResponse<'static>>,
1772 ___E,
1773 > for &'a DirectoryReadDirentsResponse
1774 where
1775 ___E: ::fidl_next::Encoder + ?Sized,
1776 &'a DirectoryReadDirentsResponse:
1777 ::fidl_next::Encode<crate::wire::DirectoryReadDirentsResponse<'static>, ___E>,
1778 {
1779 #[inline]
1780 fn encode_option(
1781 this: ::core::option::Option<Self>,
1782 encoder: &mut ___E,
1783 out: &mut ::core::mem::MaybeUninit<
1784 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsResponse<'static>>,
1785 >,
1786 _: (),
1787 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1788 if let Some(inner) = this {
1789 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1790 ::fidl_next::wire::Box::encode_present(out);
1791 } else {
1792 ::fidl_next::wire::Box::encode_absent(out);
1793 }
1794
1795 Ok(())
1796 }
1797 }
1798
1799 impl<'de> ::fidl_next::FromWire<crate::wire::DirectoryReadDirentsResponse<'de>>
1800 for DirectoryReadDirentsResponse
1801 {
1802 #[inline]
1803 fn from_wire(wire: crate::wire::DirectoryReadDirentsResponse<'de>) -> Self {
1804 Self {
1805 s: ::fidl_next::FromWire::from_wire(wire.s),
1806
1807 dirents: ::fidl_next::FromWire::from_wire(wire.dirents),
1808 }
1809 }
1810 }
1811
1812 impl<'de> ::fidl_next::FromWireRef<crate::wire::DirectoryReadDirentsResponse<'de>>
1813 for DirectoryReadDirentsResponse
1814 {
1815 #[inline]
1816 fn from_wire_ref(wire: &crate::wire::DirectoryReadDirentsResponse<'de>) -> Self {
1817 Self {
1818 s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s),
1819
1820 dirents: ::fidl_next::FromWireRef::from_wire_ref(&wire.dirents),
1821 }
1822 }
1823 }
1824
1825 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1826 #[repr(C)]
1827 pub struct DirectoryRewindResponse {
1828 pub s: ::fidl_next::fuchsia::zx::Status,
1829 }
1830
1831 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryRewindResponse, ___E>
1832 for DirectoryRewindResponse
1833 where
1834 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1835 {
1836 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
1837 Self,
1838 crate::wire::DirectoryRewindResponse,
1839 > = unsafe {
1840 ::fidl_next::CopyOptimization::enable_if(
1841 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::Encode<
1842 ::fidl_next::wire::fuchsia::Status,
1843 ___E,
1844 >>::COPY_OPTIMIZATION
1845 .is_enabled(),
1846 )
1847 };
1848
1849 #[inline]
1850 fn encode(
1851 self,
1852 encoder_: &mut ___E,
1853 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryRewindResponse>,
1854 _: (),
1855 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1856 ::fidl_next::munge! {
1857 let crate::wire::DirectoryRewindResponse {
1858 s,
1859
1860 } = out_;
1861 }
1862
1863 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
1864
1865 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
1866
1867 Ok(())
1868 }
1869 }
1870
1871 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirectoryRewindResponse, ___E>
1872 for &'a DirectoryRewindResponse
1873 where
1874 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1875 {
1876 #[inline]
1877 fn encode(
1878 self,
1879 encoder_: &mut ___E,
1880 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryRewindResponse>,
1881 _: (),
1882 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1883 ::fidl_next::munge! {
1884 let crate::wire::DirectoryRewindResponse {
1885 s,
1886
1887 } = out_;
1888 }
1889
1890 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
1891
1892 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
1893
1894 Ok(())
1895 }
1896 }
1897
1898 unsafe impl<___E>
1899 ::fidl_next::EncodeOption<
1900 ::fidl_next::wire::Box<'static, crate::wire::DirectoryRewindResponse>,
1901 ___E,
1902 > for DirectoryRewindResponse
1903 where
1904 ___E: ::fidl_next::Encoder + ?Sized,
1905 DirectoryRewindResponse: ::fidl_next::Encode<crate::wire::DirectoryRewindResponse, ___E>,
1906 {
1907 #[inline]
1908 fn encode_option(
1909 this: ::core::option::Option<Self>,
1910 encoder: &mut ___E,
1911 out: &mut ::core::mem::MaybeUninit<
1912 ::fidl_next::wire::Box<'static, crate::wire::DirectoryRewindResponse>,
1913 >,
1914 _: (),
1915 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1916 if let Some(inner) = this {
1917 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1918 ::fidl_next::wire::Box::encode_present(out);
1919 } else {
1920 ::fidl_next::wire::Box::encode_absent(out);
1921 }
1922
1923 Ok(())
1924 }
1925 }
1926
1927 unsafe impl<'a, ___E>
1928 ::fidl_next::EncodeOption<
1929 ::fidl_next::wire::Box<'static, crate::wire::DirectoryRewindResponse>,
1930 ___E,
1931 > for &'a DirectoryRewindResponse
1932 where
1933 ___E: ::fidl_next::Encoder + ?Sized,
1934 &'a DirectoryRewindResponse:
1935 ::fidl_next::Encode<crate::wire::DirectoryRewindResponse, ___E>,
1936 {
1937 #[inline]
1938 fn encode_option(
1939 this: ::core::option::Option<Self>,
1940 encoder: &mut ___E,
1941 out: &mut ::core::mem::MaybeUninit<
1942 ::fidl_next::wire::Box<'static, crate::wire::DirectoryRewindResponse>,
1943 >,
1944 _: (),
1945 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1946 if let Some(inner) = this {
1947 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1948 ::fidl_next::wire::Box::encode_present(out);
1949 } else {
1950 ::fidl_next::wire::Box::encode_absent(out);
1951 }
1952
1953 Ok(())
1954 }
1955 }
1956
1957 impl ::fidl_next::FromWire<crate::wire::DirectoryRewindResponse> for DirectoryRewindResponse {
1958 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
1959 crate::wire::DirectoryRewindResponse,
1960 Self,
1961 > = unsafe {
1962 ::fidl_next::CopyOptimization::enable_if(
1963 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::FromWire<
1964 ::fidl_next::wire::fuchsia::Status,
1965 >>::COPY_OPTIMIZATION
1966 .is_enabled(),
1967 )
1968 };
1969
1970 #[inline]
1971 fn from_wire(wire: crate::wire::DirectoryRewindResponse) -> Self {
1972 Self { s: ::fidl_next::FromWire::from_wire(wire.s) }
1973 }
1974 }
1975
1976 impl ::fidl_next::FromWireRef<crate::wire::DirectoryRewindResponse> for DirectoryRewindResponse {
1977 #[inline]
1978 fn from_wire_ref(wire: &crate::wire::DirectoryRewindResponse) -> Self {
1979 Self { s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s) }
1980 }
1981 }
1982
1983 #[doc = " The type for the name of a node, i.e. a single path component.\n E.g. `foo`\n\n ## Invariants\n\n A valid node name must meet the following criteria:\n\n * It cannot be longer than [`MAX_NAME_LENGTH`].\n * It cannot be empty.\n * It cannot be \"..\" (dot-dot).\n * It cannot be \".\" (single dot).\n * It cannot contain \"/\".\n * It cannot contain embedded NUL.\n"]
1984 pub type Name = ::std::string::String;
1985
1986 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1987 #[repr(C)]
1988 pub struct DirectoryLinkResponse {
1989 pub s: ::fidl_next::fuchsia::zx::Status,
1990 }
1991
1992 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryLinkResponse, ___E>
1993 for DirectoryLinkResponse
1994 where
1995 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1996 {
1997 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
1998 Self,
1999 crate::wire::DirectoryLinkResponse,
2000 > = unsafe {
2001 ::fidl_next::CopyOptimization::enable_if(
2002 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::Encode<
2003 ::fidl_next::wire::fuchsia::Status,
2004 ___E,
2005 >>::COPY_OPTIMIZATION
2006 .is_enabled(),
2007 )
2008 };
2009
2010 #[inline]
2011 fn encode(
2012 self,
2013 encoder_: &mut ___E,
2014 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryLinkResponse>,
2015 _: (),
2016 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2017 ::fidl_next::munge! {
2018 let crate::wire::DirectoryLinkResponse {
2019 s,
2020
2021 } = out_;
2022 }
2023
2024 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
2025
2026 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
2027
2028 Ok(())
2029 }
2030 }
2031
2032 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirectoryLinkResponse, ___E>
2033 for &'a DirectoryLinkResponse
2034 where
2035 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2036 {
2037 #[inline]
2038 fn encode(
2039 self,
2040 encoder_: &mut ___E,
2041 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryLinkResponse>,
2042 _: (),
2043 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2044 ::fidl_next::munge! {
2045 let crate::wire::DirectoryLinkResponse {
2046 s,
2047
2048 } = out_;
2049 }
2050
2051 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
2052
2053 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
2054
2055 Ok(())
2056 }
2057 }
2058
2059 unsafe impl<___E>
2060 ::fidl_next::EncodeOption<
2061 ::fidl_next::wire::Box<'static, crate::wire::DirectoryLinkResponse>,
2062 ___E,
2063 > for DirectoryLinkResponse
2064 where
2065 ___E: ::fidl_next::Encoder + ?Sized,
2066 DirectoryLinkResponse: ::fidl_next::Encode<crate::wire::DirectoryLinkResponse, ___E>,
2067 {
2068 #[inline]
2069 fn encode_option(
2070 this: ::core::option::Option<Self>,
2071 encoder: &mut ___E,
2072 out: &mut ::core::mem::MaybeUninit<
2073 ::fidl_next::wire::Box<'static, crate::wire::DirectoryLinkResponse>,
2074 >,
2075 _: (),
2076 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2077 if let Some(inner) = this {
2078 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2079 ::fidl_next::wire::Box::encode_present(out);
2080 } else {
2081 ::fidl_next::wire::Box::encode_absent(out);
2082 }
2083
2084 Ok(())
2085 }
2086 }
2087
2088 unsafe impl<'a, ___E>
2089 ::fidl_next::EncodeOption<
2090 ::fidl_next::wire::Box<'static, crate::wire::DirectoryLinkResponse>,
2091 ___E,
2092 > for &'a DirectoryLinkResponse
2093 where
2094 ___E: ::fidl_next::Encoder + ?Sized,
2095 &'a DirectoryLinkResponse: ::fidl_next::Encode<crate::wire::DirectoryLinkResponse, ___E>,
2096 {
2097 #[inline]
2098 fn encode_option(
2099 this: ::core::option::Option<Self>,
2100 encoder: &mut ___E,
2101 out: &mut ::core::mem::MaybeUninit<
2102 ::fidl_next::wire::Box<'static, crate::wire::DirectoryLinkResponse>,
2103 >,
2104 _: (),
2105 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2106 if let Some(inner) = this {
2107 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2108 ::fidl_next::wire::Box::encode_present(out);
2109 } else {
2110 ::fidl_next::wire::Box::encode_absent(out);
2111 }
2112
2113 Ok(())
2114 }
2115 }
2116
2117 impl ::fidl_next::FromWire<crate::wire::DirectoryLinkResponse> for DirectoryLinkResponse {
2118 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
2119 crate::wire::DirectoryLinkResponse,
2120 Self,
2121 > = unsafe {
2122 ::fidl_next::CopyOptimization::enable_if(
2123 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::FromWire<
2124 ::fidl_next::wire::fuchsia::Status,
2125 >>::COPY_OPTIMIZATION
2126 .is_enabled(),
2127 )
2128 };
2129
2130 #[inline]
2131 fn from_wire(wire: crate::wire::DirectoryLinkResponse) -> Self {
2132 Self { s: ::fidl_next::FromWire::from_wire(wire.s) }
2133 }
2134 }
2135
2136 impl ::fidl_next::FromWireRef<crate::wire::DirectoryLinkResponse> for DirectoryLinkResponse {
2137 #[inline]
2138 fn from_wire_ref(wire: &crate::wire::DirectoryLinkResponse) -> Self {
2139 Self { s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s) }
2140 }
2141 }
2142
2143 ::fidl_next::bitflags::bitflags! {
2144 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct UnlinkFlags: u64 {
2145 #[doc = " If set, the unlink will fail (with ZX_ERR_NOT_DIR) if the\n object is not a directory.\n"]const MUST_BE_DIRECTORY = 1;
2146 const _ = !0;
2147 }
2148 }
2149
2150 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UnlinkFlags, ___E> for UnlinkFlags
2151 where
2152 ___E: ?Sized,
2153 {
2154 #[inline]
2155 fn encode(
2156 self,
2157 encoder: &mut ___E,
2158 out: &mut ::core::mem::MaybeUninit<crate::wire::UnlinkFlags>,
2159 _: (),
2160 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2161 ::fidl_next::Encode::encode(&self, encoder, out, ())
2162 }
2163 }
2164
2165 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UnlinkFlags, ___E> for &'a UnlinkFlags
2166 where
2167 ___E: ?Sized,
2168 {
2169 #[inline]
2170 fn encode(
2171 self,
2172 _: &mut ___E,
2173 out: &mut ::core::mem::MaybeUninit<crate::wire::UnlinkFlags>,
2174 _: (),
2175 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2176 ::fidl_next::munge!(let crate::wire::UnlinkFlags { value } = out);
2177
2178 let _ = value.write(::fidl_next::wire::Uint64::from(self.bits()));
2179 Ok(())
2180 }
2181 }
2182
2183 impl ::core::convert::From<crate::wire::UnlinkFlags> for UnlinkFlags {
2184 fn from(wire: crate::wire::UnlinkFlags) -> Self {
2185 Self::from_bits_retain(u64::from(wire.value))
2186 }
2187 }
2188
2189 impl ::fidl_next::FromWire<crate::wire::UnlinkFlags> for UnlinkFlags {
2190 #[inline]
2191 fn from_wire(wire: crate::wire::UnlinkFlags) -> Self {
2192 Self::from(wire)
2193 }
2194 }
2195
2196 impl ::fidl_next::FromWireRef<crate::wire::UnlinkFlags> for UnlinkFlags {
2197 #[inline]
2198 fn from_wire_ref(wire: &crate::wire::UnlinkFlags) -> Self {
2199 Self::from(*wire)
2200 }
2201 }
2202
2203 #[derive(Debug, Default, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2204 pub struct UnlinkOptions {
2205 pub flags: ::core::option::Option<crate::natural::UnlinkFlags>,
2206 }
2207
2208 impl UnlinkOptions {
2209 fn __max_ordinal(&self) -> usize {
2210 if self.flags.is_some() {
2211 return 1;
2212 }
2213
2214 0
2215 }
2216 }
2217
2218 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UnlinkOptions<'static>, ___E> for UnlinkOptions
2219 where
2220 ___E: ::fidl_next::Encoder + ?Sized,
2221 {
2222 #[inline]
2223 fn encode(
2224 mut self,
2225 encoder: &mut ___E,
2226 out: &mut ::core::mem::MaybeUninit<crate::wire::UnlinkOptions<'static>>,
2227 _: (),
2228 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2229 ::fidl_next::munge!(let crate::wire::UnlinkOptions { table } = out);
2230
2231 let max_ord = self.__max_ordinal();
2232
2233 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
2234 ::fidl_next::Wire::zero_padding(&mut out);
2235
2236 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
2237 ::fidl_next::wire::Envelope,
2238 >(encoder, max_ord);
2239
2240 for i in 1..=max_ord {
2241 match i {
2242 1 => {
2243 if let Some(value) = self.flags.take() {
2244 ::fidl_next::wire::Envelope::encode_value::<
2245 crate::wire::UnlinkFlags,
2246 ___E,
2247 >(
2248 value, preallocated.encoder, &mut out, ()
2249 )?;
2250 } else {
2251 ::fidl_next::wire::Envelope::encode_zero(&mut out)
2252 }
2253 }
2254
2255 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
2256 }
2257 unsafe {
2258 preallocated.write_next(out.assume_init_ref());
2259 }
2260 }
2261
2262 ::fidl_next::wire::Table::encode_len(table, max_ord);
2263
2264 Ok(())
2265 }
2266 }
2267
2268 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UnlinkOptions<'static>, ___E>
2269 for &'a UnlinkOptions
2270 where
2271 ___E: ::fidl_next::Encoder + ?Sized,
2272 {
2273 #[inline]
2274 fn encode(
2275 self,
2276 encoder: &mut ___E,
2277 out: &mut ::core::mem::MaybeUninit<crate::wire::UnlinkOptions<'static>>,
2278 _: (),
2279 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2280 ::fidl_next::munge!(let crate::wire::UnlinkOptions { table } = out);
2281
2282 let max_ord = self.__max_ordinal();
2283
2284 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
2285 ::fidl_next::Wire::zero_padding(&mut out);
2286
2287 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
2288 ::fidl_next::wire::Envelope,
2289 >(encoder, max_ord);
2290
2291 for i in 1..=max_ord {
2292 match i {
2293 1 => {
2294 if let Some(value) = &self.flags {
2295 ::fidl_next::wire::Envelope::encode_value::<
2296 crate::wire::UnlinkFlags,
2297 ___E,
2298 >(
2299 value, preallocated.encoder, &mut out, ()
2300 )?;
2301 } else {
2302 ::fidl_next::wire::Envelope::encode_zero(&mut out)
2303 }
2304 }
2305
2306 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
2307 }
2308 unsafe {
2309 preallocated.write_next(out.assume_init_ref());
2310 }
2311 }
2312
2313 ::fidl_next::wire::Table::encode_len(table, max_ord);
2314
2315 Ok(())
2316 }
2317 }
2318
2319 impl<'de> ::fidl_next::FromWire<crate::wire::UnlinkOptions<'de>> for UnlinkOptions {
2320 #[inline]
2321 fn from_wire(wire_: crate::wire::UnlinkOptions<'de>) -> Self {
2322 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
2323
2324 let flags = wire_.table.get(1);
2325
2326 Self {
2327 flags: flags.map(|envelope| {
2328 ::fidl_next::FromWire::from_wire(unsafe {
2329 envelope.read_unchecked::<crate::wire::UnlinkFlags>()
2330 })
2331 }),
2332 }
2333 }
2334 }
2335
2336 impl<'de> ::fidl_next::FromWireRef<crate::wire::UnlinkOptions<'de>> for UnlinkOptions {
2337 #[inline]
2338 fn from_wire_ref(wire: &crate::wire::UnlinkOptions<'de>) -> Self {
2339 Self {
2340 flags: wire.table.get(1).map(|envelope| {
2341 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
2342 envelope.deref_unchecked::<crate::wire::UnlinkFlags>()
2343 })
2344 }),
2345 }
2346 }
2347 }
2348
2349 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2350 pub struct DirectoryUnlinkRequest {
2351 pub name: ::std::string::String,
2352
2353 pub options: crate::natural::UnlinkOptions,
2354 }
2355
2356 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryUnlinkRequest<'static>, ___E>
2357 for DirectoryUnlinkRequest
2358 where
2359 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2360 ___E: ::fidl_next::Encoder,
2361 {
2362 #[inline]
2363 fn encode(
2364 self,
2365 encoder_: &mut ___E,
2366 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryUnlinkRequest<'static>>,
2367 _: (),
2368 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2369 ::fidl_next::munge! {
2370 let crate::wire::DirectoryUnlinkRequest {
2371 name,
2372 options,
2373
2374 } = out_;
2375 }
2376
2377 ::fidl_next::Encode::encode(self.name, encoder_, name, 255)?;
2378
2379 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
2380 ::fidl_next::Constrained::validate(_field, 255)?;
2381
2382 ::fidl_next::Encode::encode(self.options, encoder_, options, ())?;
2383
2384 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(options.as_mut_ptr()) };
2385
2386 Ok(())
2387 }
2388 }
2389
2390 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirectoryUnlinkRequest<'static>, ___E>
2391 for &'a DirectoryUnlinkRequest
2392 where
2393 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2394 ___E: ::fidl_next::Encoder,
2395 {
2396 #[inline]
2397 fn encode(
2398 self,
2399 encoder_: &mut ___E,
2400 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryUnlinkRequest<'static>>,
2401 _: (),
2402 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2403 ::fidl_next::munge! {
2404 let crate::wire::DirectoryUnlinkRequest {
2405 name,
2406 options,
2407
2408 } = out_;
2409 }
2410
2411 ::fidl_next::Encode::encode(&self.name, encoder_, name, 255)?;
2412
2413 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
2414 ::fidl_next::Constrained::validate(_field, 255)?;
2415
2416 ::fidl_next::Encode::encode(&self.options, encoder_, options, ())?;
2417
2418 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(options.as_mut_ptr()) };
2419
2420 Ok(())
2421 }
2422 }
2423
2424 unsafe impl<___E>
2425 ::fidl_next::EncodeOption<
2426 ::fidl_next::wire::Box<'static, crate::wire::DirectoryUnlinkRequest<'static>>,
2427 ___E,
2428 > for DirectoryUnlinkRequest
2429 where
2430 ___E: ::fidl_next::Encoder + ?Sized,
2431 DirectoryUnlinkRequest:
2432 ::fidl_next::Encode<crate::wire::DirectoryUnlinkRequest<'static>, ___E>,
2433 {
2434 #[inline]
2435 fn encode_option(
2436 this: ::core::option::Option<Self>,
2437 encoder: &mut ___E,
2438 out: &mut ::core::mem::MaybeUninit<
2439 ::fidl_next::wire::Box<'static, crate::wire::DirectoryUnlinkRequest<'static>>,
2440 >,
2441 _: (),
2442 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2443 if let Some(inner) = this {
2444 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2445 ::fidl_next::wire::Box::encode_present(out);
2446 } else {
2447 ::fidl_next::wire::Box::encode_absent(out);
2448 }
2449
2450 Ok(())
2451 }
2452 }
2453
2454 unsafe impl<'a, ___E>
2455 ::fidl_next::EncodeOption<
2456 ::fidl_next::wire::Box<'static, crate::wire::DirectoryUnlinkRequest<'static>>,
2457 ___E,
2458 > for &'a DirectoryUnlinkRequest
2459 where
2460 ___E: ::fidl_next::Encoder + ?Sized,
2461 &'a DirectoryUnlinkRequest:
2462 ::fidl_next::Encode<crate::wire::DirectoryUnlinkRequest<'static>, ___E>,
2463 {
2464 #[inline]
2465 fn encode_option(
2466 this: ::core::option::Option<Self>,
2467 encoder: &mut ___E,
2468 out: &mut ::core::mem::MaybeUninit<
2469 ::fidl_next::wire::Box<'static, crate::wire::DirectoryUnlinkRequest<'static>>,
2470 >,
2471 _: (),
2472 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2473 if let Some(inner) = this {
2474 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2475 ::fidl_next::wire::Box::encode_present(out);
2476 } else {
2477 ::fidl_next::wire::Box::encode_absent(out);
2478 }
2479
2480 Ok(())
2481 }
2482 }
2483
2484 impl<'de> ::fidl_next::FromWire<crate::wire::DirectoryUnlinkRequest<'de>>
2485 for DirectoryUnlinkRequest
2486 {
2487 #[inline]
2488 fn from_wire(wire: crate::wire::DirectoryUnlinkRequest<'de>) -> Self {
2489 Self {
2490 name: ::fidl_next::FromWire::from_wire(wire.name),
2491
2492 options: ::fidl_next::FromWire::from_wire(wire.options),
2493 }
2494 }
2495 }
2496
2497 impl<'de> ::fidl_next::FromWireRef<crate::wire::DirectoryUnlinkRequest<'de>>
2498 for DirectoryUnlinkRequest
2499 {
2500 #[inline]
2501 fn from_wire_ref(wire: &crate::wire::DirectoryUnlinkRequest<'de>) -> Self {
2502 Self {
2503 name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name),
2504
2505 options: ::fidl_next::FromWireRef::from_wire_ref(&wire.options),
2506 }
2507 }
2508 }
2509
2510 pub type DirectoryUnlinkResponse = ();
2511
2512 pub type DirectoryRenameResponse = ();
2513
2514 ::fidl_next::bitflags::bitflags! {
2515 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct WatchMask: u32 {
2516 #[doc = " Used by `Directory.Watch`. Requests transmission of `WatchEvent.DELETED`.\n"]const DELETED = 1;
2517 #[doc = " Used by `Directory.Watch`. Requests transmission of `WatchEvent.ADDED`.\n"]const ADDED = 2;
2518 #[doc = " Used by `Directory.Watch`. Requests transmission of `WatchEvent.REMOVED`.\n"]const REMOVED = 4;
2519 #[doc = " Used by `Directory.Watch`. Requests transmission of `WatchEvent.EXISTING`.\n"]const EXISTING = 8;
2520 #[doc = " Used by `Directory.Watch`. Requests transmission of `WatchEvent.IDLE`.\n"]const IDLE = 16;
2521
2522 }
2523 }
2524
2525 unsafe impl<___E> ::fidl_next::Encode<crate::wire::WatchMask, ___E> for WatchMask
2526 where
2527 ___E: ?Sized,
2528 {
2529 #[inline]
2530 fn encode(
2531 self,
2532 encoder: &mut ___E,
2533 out: &mut ::core::mem::MaybeUninit<crate::wire::WatchMask>,
2534 _: (),
2535 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2536 ::fidl_next::Encode::encode(&self, encoder, out, ())
2537 }
2538 }
2539
2540 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::WatchMask, ___E> for &'a WatchMask
2541 where
2542 ___E: ?Sized,
2543 {
2544 #[inline]
2545 fn encode(
2546 self,
2547 _: &mut ___E,
2548 out: &mut ::core::mem::MaybeUninit<crate::wire::WatchMask>,
2549 _: (),
2550 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2551 ::fidl_next::munge!(let crate::wire::WatchMask { value } = out);
2552
2553 if ::fidl_next::bitflags::Flags::contains_unknown_bits(self) {
2554 return Err(::fidl_next::EncodeError::InvalidStrictBits);
2555 }
2556
2557 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
2558 Ok(())
2559 }
2560 }
2561
2562 impl ::core::convert::From<crate::wire::WatchMask> for WatchMask {
2563 fn from(wire: crate::wire::WatchMask) -> Self {
2564 Self::from_bits_retain(u32::from(wire.value))
2565 }
2566 }
2567
2568 impl ::fidl_next::FromWire<crate::wire::WatchMask> for WatchMask {
2569 #[inline]
2570 fn from_wire(wire: crate::wire::WatchMask) -> Self {
2571 Self::from(wire)
2572 }
2573 }
2574
2575 impl ::fidl_next::FromWireRef<crate::wire::WatchMask> for WatchMask {
2576 #[inline]
2577 fn from_wire_ref(wire: &crate::wire::WatchMask) -> Self {
2578 Self::from(*wire)
2579 }
2580 }
2581
2582 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2583 #[repr(C)]
2584 pub struct DirectoryWatchResponse {
2585 pub s: ::fidl_next::fuchsia::zx::Status,
2586 }
2587
2588 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryWatchResponse, ___E>
2589 for DirectoryWatchResponse
2590 where
2591 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2592 {
2593 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
2594 Self,
2595 crate::wire::DirectoryWatchResponse,
2596 > = unsafe {
2597 ::fidl_next::CopyOptimization::enable_if(
2598 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::Encode<
2599 ::fidl_next::wire::fuchsia::Status,
2600 ___E,
2601 >>::COPY_OPTIMIZATION
2602 .is_enabled(),
2603 )
2604 };
2605
2606 #[inline]
2607 fn encode(
2608 self,
2609 encoder_: &mut ___E,
2610 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryWatchResponse>,
2611 _: (),
2612 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2613 ::fidl_next::munge! {
2614 let crate::wire::DirectoryWatchResponse {
2615 s,
2616
2617 } = out_;
2618 }
2619
2620 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
2621
2622 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
2623
2624 Ok(())
2625 }
2626 }
2627
2628 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirectoryWatchResponse, ___E>
2629 for &'a DirectoryWatchResponse
2630 where
2631 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2632 {
2633 #[inline]
2634 fn encode(
2635 self,
2636 encoder_: &mut ___E,
2637 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryWatchResponse>,
2638 _: (),
2639 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2640 ::fidl_next::munge! {
2641 let crate::wire::DirectoryWatchResponse {
2642 s,
2643
2644 } = out_;
2645 }
2646
2647 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
2648
2649 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
2650
2651 Ok(())
2652 }
2653 }
2654
2655 unsafe impl<___E>
2656 ::fidl_next::EncodeOption<
2657 ::fidl_next::wire::Box<'static, crate::wire::DirectoryWatchResponse>,
2658 ___E,
2659 > for DirectoryWatchResponse
2660 where
2661 ___E: ::fidl_next::Encoder + ?Sized,
2662 DirectoryWatchResponse: ::fidl_next::Encode<crate::wire::DirectoryWatchResponse, ___E>,
2663 {
2664 #[inline]
2665 fn encode_option(
2666 this: ::core::option::Option<Self>,
2667 encoder: &mut ___E,
2668 out: &mut ::core::mem::MaybeUninit<
2669 ::fidl_next::wire::Box<'static, crate::wire::DirectoryWatchResponse>,
2670 >,
2671 _: (),
2672 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2673 if let Some(inner) = this {
2674 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2675 ::fidl_next::wire::Box::encode_present(out);
2676 } else {
2677 ::fidl_next::wire::Box::encode_absent(out);
2678 }
2679
2680 Ok(())
2681 }
2682 }
2683
2684 unsafe impl<'a, ___E>
2685 ::fidl_next::EncodeOption<
2686 ::fidl_next::wire::Box<'static, crate::wire::DirectoryWatchResponse>,
2687 ___E,
2688 > for &'a DirectoryWatchResponse
2689 where
2690 ___E: ::fidl_next::Encoder + ?Sized,
2691 &'a DirectoryWatchResponse: ::fidl_next::Encode<crate::wire::DirectoryWatchResponse, ___E>,
2692 {
2693 #[inline]
2694 fn encode_option(
2695 this: ::core::option::Option<Self>,
2696 encoder: &mut ___E,
2697 out: &mut ::core::mem::MaybeUninit<
2698 ::fidl_next::wire::Box<'static, crate::wire::DirectoryWatchResponse>,
2699 >,
2700 _: (),
2701 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2702 if let Some(inner) = this {
2703 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2704 ::fidl_next::wire::Box::encode_present(out);
2705 } else {
2706 ::fidl_next::wire::Box::encode_absent(out);
2707 }
2708
2709 Ok(())
2710 }
2711 }
2712
2713 impl ::fidl_next::FromWire<crate::wire::DirectoryWatchResponse> for DirectoryWatchResponse {
2714 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
2715 crate::wire::DirectoryWatchResponse,
2716 Self,
2717 > = unsafe {
2718 ::fidl_next::CopyOptimization::enable_if(
2719 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::FromWire<
2720 ::fidl_next::wire::fuchsia::Status,
2721 >>::COPY_OPTIMIZATION
2722 .is_enabled(),
2723 )
2724 };
2725
2726 #[inline]
2727 fn from_wire(wire: crate::wire::DirectoryWatchResponse) -> Self {
2728 Self { s: ::fidl_next::FromWire::from_wire(wire.s) }
2729 }
2730 }
2731
2732 impl ::fidl_next::FromWireRef<crate::wire::DirectoryWatchResponse> for DirectoryWatchResponse {
2733 #[inline]
2734 fn from_wire_ref(wire: &crate::wire::DirectoryWatchResponse) -> Self {
2735 Self { s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s) }
2736 }
2737 }
2738
2739 pub type SymlinkTarget = ::std::vec::Vec<u8>;
2740
2741 #[doc = " The name of an extended attribute. It can not contain any null bytes. Other\n than that and the maximum size, no particular structure is imposed on the\n name.\n"]
2742 pub type ExtendedAttributeName = ::std::vec::Vec<u8>;
2743
2744 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2745 pub struct NodeGetExtendedAttributeRequest {
2746 pub name: ::std::vec::Vec<u8>,
2747 }
2748
2749 unsafe impl<___E>
2750 ::fidl_next::Encode<crate::wire::NodeGetExtendedAttributeRequest<'static>, ___E>
2751 for NodeGetExtendedAttributeRequest
2752 where
2753 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2754 ___E: ::fidl_next::Encoder,
2755 {
2756 #[inline]
2757 fn encode(
2758 self,
2759 encoder_: &mut ___E,
2760 out_: &mut ::core::mem::MaybeUninit<
2761 crate::wire::NodeGetExtendedAttributeRequest<'static>,
2762 >,
2763 _: (),
2764 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2765 ::fidl_next::munge! {
2766 let crate::wire::NodeGetExtendedAttributeRequest {
2767 name,
2768
2769 } = out_;
2770 }
2771
2772 ::fidl_next::Encode::encode(self.name, encoder_, name, (255, ()))?;
2773
2774 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
2775 ::fidl_next::Constrained::validate(_field, (255, ()))?;
2776
2777 Ok(())
2778 }
2779 }
2780
2781 unsafe impl<'a, ___E>
2782 ::fidl_next::Encode<crate::wire::NodeGetExtendedAttributeRequest<'static>, ___E>
2783 for &'a NodeGetExtendedAttributeRequest
2784 where
2785 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2786 ___E: ::fidl_next::Encoder,
2787 {
2788 #[inline]
2789 fn encode(
2790 self,
2791 encoder_: &mut ___E,
2792 out_: &mut ::core::mem::MaybeUninit<
2793 crate::wire::NodeGetExtendedAttributeRequest<'static>,
2794 >,
2795 _: (),
2796 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2797 ::fidl_next::munge! {
2798 let crate::wire::NodeGetExtendedAttributeRequest {
2799 name,
2800
2801 } = out_;
2802 }
2803
2804 ::fidl_next::Encode::encode(&self.name, encoder_, name, (255, ()))?;
2805
2806 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
2807 ::fidl_next::Constrained::validate(_field, (255, ()))?;
2808
2809 Ok(())
2810 }
2811 }
2812
2813 unsafe impl<___E>
2814 ::fidl_next::EncodeOption<
2815 ::fidl_next::wire::Box<'static, crate::wire::NodeGetExtendedAttributeRequest<'static>>,
2816 ___E,
2817 > for NodeGetExtendedAttributeRequest
2818 where
2819 ___E: ::fidl_next::Encoder + ?Sized,
2820 NodeGetExtendedAttributeRequest:
2821 ::fidl_next::Encode<crate::wire::NodeGetExtendedAttributeRequest<'static>, ___E>,
2822 {
2823 #[inline]
2824 fn encode_option(
2825 this: ::core::option::Option<Self>,
2826 encoder: &mut ___E,
2827 out: &mut ::core::mem::MaybeUninit<
2828 ::fidl_next::wire::Box<
2829 'static,
2830 crate::wire::NodeGetExtendedAttributeRequest<'static>,
2831 >,
2832 >,
2833 _: (),
2834 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2835 if let Some(inner) = this {
2836 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2837 ::fidl_next::wire::Box::encode_present(out);
2838 } else {
2839 ::fidl_next::wire::Box::encode_absent(out);
2840 }
2841
2842 Ok(())
2843 }
2844 }
2845
2846 unsafe impl<'a, ___E>
2847 ::fidl_next::EncodeOption<
2848 ::fidl_next::wire::Box<'static, crate::wire::NodeGetExtendedAttributeRequest<'static>>,
2849 ___E,
2850 > for &'a NodeGetExtendedAttributeRequest
2851 where
2852 ___E: ::fidl_next::Encoder + ?Sized,
2853 &'a NodeGetExtendedAttributeRequest:
2854 ::fidl_next::Encode<crate::wire::NodeGetExtendedAttributeRequest<'static>, ___E>,
2855 {
2856 #[inline]
2857 fn encode_option(
2858 this: ::core::option::Option<Self>,
2859 encoder: &mut ___E,
2860 out: &mut ::core::mem::MaybeUninit<
2861 ::fidl_next::wire::Box<
2862 'static,
2863 crate::wire::NodeGetExtendedAttributeRequest<'static>,
2864 >,
2865 >,
2866 _: (),
2867 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2868 if let Some(inner) = this {
2869 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2870 ::fidl_next::wire::Box::encode_present(out);
2871 } else {
2872 ::fidl_next::wire::Box::encode_absent(out);
2873 }
2874
2875 Ok(())
2876 }
2877 }
2878
2879 impl<'de> ::fidl_next::FromWire<crate::wire::NodeGetExtendedAttributeRequest<'de>>
2880 for NodeGetExtendedAttributeRequest
2881 {
2882 #[inline]
2883 fn from_wire(wire: crate::wire::NodeGetExtendedAttributeRequest<'de>) -> Self {
2884 Self { name: ::fidl_next::FromWire::from_wire(wire.name) }
2885 }
2886 }
2887
2888 impl<'de> ::fidl_next::FromWireRef<crate::wire::NodeGetExtendedAttributeRequest<'de>>
2889 for NodeGetExtendedAttributeRequest
2890 {
2891 #[inline]
2892 fn from_wire_ref(wire: &crate::wire::NodeGetExtendedAttributeRequest<'de>) -> Self {
2893 Self { name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name) }
2894 }
2895 }
2896
2897 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2898 #[repr(u32)]
2899 pub enum SetExtendedAttributeMode {
2900 Set = 1,
2901 Create = 2,
2902 Replace = 3,
2903 }
2904 impl ::core::convert::TryFrom<u32> for SetExtendedAttributeMode {
2905 type Error = ::fidl_next::UnknownStrictEnumMemberError;
2906 fn try_from(
2907 value: u32,
2908 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
2909 match value {
2910 1 => Ok(Self::Set),
2911 2 => Ok(Self::Create),
2912 3 => Ok(Self::Replace),
2913
2914 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
2915 }
2916 }
2917 }
2918
2919 unsafe impl<___E> ::fidl_next::Encode<crate::wire::SetExtendedAttributeMode, ___E>
2920 for SetExtendedAttributeMode
2921 where
2922 ___E: ?Sized,
2923 {
2924 #[inline]
2925 fn encode(
2926 self,
2927 encoder: &mut ___E,
2928 out: &mut ::core::mem::MaybeUninit<crate::wire::SetExtendedAttributeMode>,
2929 _: (),
2930 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2931 ::fidl_next::Encode::encode(&self, encoder, out, ())
2932 }
2933 }
2934
2935 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::SetExtendedAttributeMode, ___E>
2936 for &'a SetExtendedAttributeMode
2937 where
2938 ___E: ?Sized,
2939 {
2940 #[inline]
2941 fn encode(
2942 self,
2943 encoder: &mut ___E,
2944 out: &mut ::core::mem::MaybeUninit<crate::wire::SetExtendedAttributeMode>,
2945 _: (),
2946 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2947 ::fidl_next::munge!(let crate::wire::SetExtendedAttributeMode { value } = out);
2948 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
2949 SetExtendedAttributeMode::Set => 1,
2950
2951 SetExtendedAttributeMode::Create => 2,
2952
2953 SetExtendedAttributeMode::Replace => 3,
2954 }));
2955
2956 Ok(())
2957 }
2958 }
2959
2960 impl ::core::convert::From<crate::wire::SetExtendedAttributeMode> for SetExtendedAttributeMode {
2961 fn from(wire: crate::wire::SetExtendedAttributeMode) -> Self {
2962 match u32::from(wire.value) {
2963 1 => Self::Set,
2964
2965 2 => Self::Create,
2966
2967 3 => Self::Replace,
2968
2969 _ => unsafe { ::core::hint::unreachable_unchecked() },
2970 }
2971 }
2972 }
2973
2974 impl ::fidl_next::FromWire<crate::wire::SetExtendedAttributeMode> for SetExtendedAttributeMode {
2975 #[inline]
2976 fn from_wire(wire: crate::wire::SetExtendedAttributeMode) -> Self {
2977 Self::from(wire)
2978 }
2979 }
2980
2981 impl ::fidl_next::FromWireRef<crate::wire::SetExtendedAttributeMode> for SetExtendedAttributeMode {
2982 #[inline]
2983 fn from_wire_ref(wire: &crate::wire::SetExtendedAttributeMode) -> Self {
2984 Self::from(*wire)
2985 }
2986 }
2987
2988 pub type NodeSetExtendedAttributeResponse = ();
2989
2990 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2991 pub struct NodeRemoveExtendedAttributeRequest {
2992 pub name: ::std::vec::Vec<u8>,
2993 }
2994
2995 unsafe impl<___E>
2996 ::fidl_next::Encode<crate::wire::NodeRemoveExtendedAttributeRequest<'static>, ___E>
2997 for NodeRemoveExtendedAttributeRequest
2998 where
2999 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3000 ___E: ::fidl_next::Encoder,
3001 {
3002 #[inline]
3003 fn encode(
3004 self,
3005 encoder_: &mut ___E,
3006 out_: &mut ::core::mem::MaybeUninit<
3007 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
3008 >,
3009 _: (),
3010 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3011 ::fidl_next::munge! {
3012 let crate::wire::NodeRemoveExtendedAttributeRequest {
3013 name,
3014
3015 } = out_;
3016 }
3017
3018 ::fidl_next::Encode::encode(self.name, encoder_, name, (255, ()))?;
3019
3020 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
3021 ::fidl_next::Constrained::validate(_field, (255, ()))?;
3022
3023 Ok(())
3024 }
3025 }
3026
3027 unsafe impl<'a, ___E>
3028 ::fidl_next::Encode<crate::wire::NodeRemoveExtendedAttributeRequest<'static>, ___E>
3029 for &'a NodeRemoveExtendedAttributeRequest
3030 where
3031 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3032 ___E: ::fidl_next::Encoder,
3033 {
3034 #[inline]
3035 fn encode(
3036 self,
3037 encoder_: &mut ___E,
3038 out_: &mut ::core::mem::MaybeUninit<
3039 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
3040 >,
3041 _: (),
3042 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3043 ::fidl_next::munge! {
3044 let crate::wire::NodeRemoveExtendedAttributeRequest {
3045 name,
3046
3047 } = out_;
3048 }
3049
3050 ::fidl_next::Encode::encode(&self.name, encoder_, name, (255, ()))?;
3051
3052 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
3053 ::fidl_next::Constrained::validate(_field, (255, ()))?;
3054
3055 Ok(())
3056 }
3057 }
3058
3059 unsafe impl<___E>
3060 ::fidl_next::EncodeOption<
3061 ::fidl_next::wire::Box<
3062 'static,
3063 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
3064 >,
3065 ___E,
3066 > for NodeRemoveExtendedAttributeRequest
3067 where
3068 ___E: ::fidl_next::Encoder + ?Sized,
3069 NodeRemoveExtendedAttributeRequest:
3070 ::fidl_next::Encode<crate::wire::NodeRemoveExtendedAttributeRequest<'static>, ___E>,
3071 {
3072 #[inline]
3073 fn encode_option(
3074 this: ::core::option::Option<Self>,
3075 encoder: &mut ___E,
3076 out: &mut ::core::mem::MaybeUninit<
3077 ::fidl_next::wire::Box<
3078 'static,
3079 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
3080 >,
3081 >,
3082 _: (),
3083 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3084 if let Some(inner) = this {
3085 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3086 ::fidl_next::wire::Box::encode_present(out);
3087 } else {
3088 ::fidl_next::wire::Box::encode_absent(out);
3089 }
3090
3091 Ok(())
3092 }
3093 }
3094
3095 unsafe impl<'a, ___E>
3096 ::fidl_next::EncodeOption<
3097 ::fidl_next::wire::Box<
3098 'static,
3099 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
3100 >,
3101 ___E,
3102 > for &'a NodeRemoveExtendedAttributeRequest
3103 where
3104 ___E: ::fidl_next::Encoder + ?Sized,
3105 &'a NodeRemoveExtendedAttributeRequest:
3106 ::fidl_next::Encode<crate::wire::NodeRemoveExtendedAttributeRequest<'static>, ___E>,
3107 {
3108 #[inline]
3109 fn encode_option(
3110 this: ::core::option::Option<Self>,
3111 encoder: &mut ___E,
3112 out: &mut ::core::mem::MaybeUninit<
3113 ::fidl_next::wire::Box<
3114 'static,
3115 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
3116 >,
3117 >,
3118 _: (),
3119 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3120 if let Some(inner) = this {
3121 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3122 ::fidl_next::wire::Box::encode_present(out);
3123 } else {
3124 ::fidl_next::wire::Box::encode_absent(out);
3125 }
3126
3127 Ok(())
3128 }
3129 }
3130
3131 impl<'de> ::fidl_next::FromWire<crate::wire::NodeRemoveExtendedAttributeRequest<'de>>
3132 for NodeRemoveExtendedAttributeRequest
3133 {
3134 #[inline]
3135 fn from_wire(wire: crate::wire::NodeRemoveExtendedAttributeRequest<'de>) -> Self {
3136 Self { name: ::fidl_next::FromWire::from_wire(wire.name) }
3137 }
3138 }
3139
3140 impl<'de> ::fidl_next::FromWireRef<crate::wire::NodeRemoveExtendedAttributeRequest<'de>>
3141 for NodeRemoveExtendedAttributeRequest
3142 {
3143 #[inline]
3144 fn from_wire_ref(wire: &crate::wire::NodeRemoveExtendedAttributeRequest<'de>) -> Self {
3145 Self { name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name) }
3146 }
3147 }
3148
3149 pub type NodeRemoveExtendedAttributeResponse = ();
3150
3151 pub type DirectoryCreateSymlinkResponse = ();
3152
3153 pub type NodeSetFlagsResponse = ();
3154
3155 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3156 pub struct NodeDeprecatedGetAttrResponse {
3157 pub s: ::fidl_next::fuchsia::zx::Status,
3158
3159 pub attributes: crate::natural::NodeAttributes,
3160 }
3161
3162 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedGetAttrResponse, ___E>
3163 for NodeDeprecatedGetAttrResponse
3164 where
3165 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3166 {
3167 #[inline]
3168 fn encode(
3169 self,
3170 encoder_: &mut ___E,
3171 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedGetAttrResponse>,
3172 _: (),
3173 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3174 ::fidl_next::munge! {
3175 let crate::wire::NodeDeprecatedGetAttrResponse {
3176 s,
3177 attributes,
3178
3179 } = out_;
3180 }
3181
3182 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
3183
3184 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
3185
3186 ::fidl_next::Encode::encode(self.attributes, encoder_, attributes, ())?;
3187
3188 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(attributes.as_mut_ptr()) };
3189
3190 Ok(())
3191 }
3192 }
3193
3194 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedGetAttrResponse, ___E>
3195 for &'a NodeDeprecatedGetAttrResponse
3196 where
3197 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3198 {
3199 #[inline]
3200 fn encode(
3201 self,
3202 encoder_: &mut ___E,
3203 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedGetAttrResponse>,
3204 _: (),
3205 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3206 ::fidl_next::munge! {
3207 let crate::wire::NodeDeprecatedGetAttrResponse {
3208 s,
3209 attributes,
3210
3211 } = out_;
3212 }
3213
3214 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
3215
3216 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
3217
3218 ::fidl_next::Encode::encode(&self.attributes, encoder_, attributes, ())?;
3219
3220 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(attributes.as_mut_ptr()) };
3221
3222 Ok(())
3223 }
3224 }
3225
3226 unsafe impl<___E>
3227 ::fidl_next::EncodeOption<
3228 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetAttrResponse>,
3229 ___E,
3230 > for NodeDeprecatedGetAttrResponse
3231 where
3232 ___E: ::fidl_next::Encoder + ?Sized,
3233 NodeDeprecatedGetAttrResponse:
3234 ::fidl_next::Encode<crate::wire::NodeDeprecatedGetAttrResponse, ___E>,
3235 {
3236 #[inline]
3237 fn encode_option(
3238 this: ::core::option::Option<Self>,
3239 encoder: &mut ___E,
3240 out: &mut ::core::mem::MaybeUninit<
3241 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetAttrResponse>,
3242 >,
3243 _: (),
3244 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3245 if let Some(inner) = this {
3246 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3247 ::fidl_next::wire::Box::encode_present(out);
3248 } else {
3249 ::fidl_next::wire::Box::encode_absent(out);
3250 }
3251
3252 Ok(())
3253 }
3254 }
3255
3256 unsafe impl<'a, ___E>
3257 ::fidl_next::EncodeOption<
3258 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetAttrResponse>,
3259 ___E,
3260 > for &'a NodeDeprecatedGetAttrResponse
3261 where
3262 ___E: ::fidl_next::Encoder + ?Sized,
3263 &'a NodeDeprecatedGetAttrResponse:
3264 ::fidl_next::Encode<crate::wire::NodeDeprecatedGetAttrResponse, ___E>,
3265 {
3266 #[inline]
3267 fn encode_option(
3268 this: ::core::option::Option<Self>,
3269 encoder: &mut ___E,
3270 out: &mut ::core::mem::MaybeUninit<
3271 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetAttrResponse>,
3272 >,
3273 _: (),
3274 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3275 if let Some(inner) = this {
3276 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3277 ::fidl_next::wire::Box::encode_present(out);
3278 } else {
3279 ::fidl_next::wire::Box::encode_absent(out);
3280 }
3281
3282 Ok(())
3283 }
3284 }
3285
3286 impl ::fidl_next::FromWire<crate::wire::NodeDeprecatedGetAttrResponse>
3287 for NodeDeprecatedGetAttrResponse
3288 {
3289 #[inline]
3290 fn from_wire(wire: crate::wire::NodeDeprecatedGetAttrResponse) -> Self {
3291 Self {
3292 s: ::fidl_next::FromWire::from_wire(wire.s),
3293
3294 attributes: ::fidl_next::FromWire::from_wire(wire.attributes),
3295 }
3296 }
3297 }
3298
3299 impl ::fidl_next::FromWireRef<crate::wire::NodeDeprecatedGetAttrResponse>
3300 for NodeDeprecatedGetAttrResponse
3301 {
3302 #[inline]
3303 fn from_wire_ref(wire: &crate::wire::NodeDeprecatedGetAttrResponse) -> Self {
3304 Self {
3305 s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s),
3306
3307 attributes: ::fidl_next::FromWireRef::from_wire_ref(&wire.attributes),
3308 }
3309 }
3310 }
3311
3312 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3313 pub struct NodeDeprecatedSetAttrRequest {
3314 pub flags: crate::natural::NodeAttributeFlags,
3315
3316 pub attributes: crate::natural::NodeAttributes,
3317 }
3318
3319 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrRequest, ___E>
3320 for NodeDeprecatedSetAttrRequest
3321 where
3322 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3323 {
3324 #[inline]
3325 fn encode(
3326 self,
3327 encoder_: &mut ___E,
3328 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetAttrRequest>,
3329 _: (),
3330 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3331 ::fidl_next::munge! {
3332 let crate::wire::NodeDeprecatedSetAttrRequest {
3333 flags,
3334 attributes,
3335
3336 } = out_;
3337 }
3338
3339 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
3340
3341 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
3342
3343 ::fidl_next::Encode::encode(self.attributes, encoder_, attributes, ())?;
3344
3345 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(attributes.as_mut_ptr()) };
3346
3347 Ok(())
3348 }
3349 }
3350
3351 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrRequest, ___E>
3352 for &'a NodeDeprecatedSetAttrRequest
3353 where
3354 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3355 {
3356 #[inline]
3357 fn encode(
3358 self,
3359 encoder_: &mut ___E,
3360 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetAttrRequest>,
3361 _: (),
3362 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3363 ::fidl_next::munge! {
3364 let crate::wire::NodeDeprecatedSetAttrRequest {
3365 flags,
3366 attributes,
3367
3368 } = out_;
3369 }
3370
3371 ::fidl_next::Encode::encode(&self.flags, encoder_, flags, ())?;
3372
3373 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
3374
3375 ::fidl_next::Encode::encode(&self.attributes, encoder_, attributes, ())?;
3376
3377 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(attributes.as_mut_ptr()) };
3378
3379 Ok(())
3380 }
3381 }
3382
3383 unsafe impl<___E>
3384 ::fidl_next::EncodeOption<
3385 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrRequest>,
3386 ___E,
3387 > for NodeDeprecatedSetAttrRequest
3388 where
3389 ___E: ::fidl_next::Encoder + ?Sized,
3390 NodeDeprecatedSetAttrRequest:
3391 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrRequest, ___E>,
3392 {
3393 #[inline]
3394 fn encode_option(
3395 this: ::core::option::Option<Self>,
3396 encoder: &mut ___E,
3397 out: &mut ::core::mem::MaybeUninit<
3398 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrRequest>,
3399 >,
3400 _: (),
3401 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3402 if let Some(inner) = this {
3403 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3404 ::fidl_next::wire::Box::encode_present(out);
3405 } else {
3406 ::fidl_next::wire::Box::encode_absent(out);
3407 }
3408
3409 Ok(())
3410 }
3411 }
3412
3413 unsafe impl<'a, ___E>
3414 ::fidl_next::EncodeOption<
3415 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrRequest>,
3416 ___E,
3417 > for &'a NodeDeprecatedSetAttrRequest
3418 where
3419 ___E: ::fidl_next::Encoder + ?Sized,
3420 &'a NodeDeprecatedSetAttrRequest:
3421 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrRequest, ___E>,
3422 {
3423 #[inline]
3424 fn encode_option(
3425 this: ::core::option::Option<Self>,
3426 encoder: &mut ___E,
3427 out: &mut ::core::mem::MaybeUninit<
3428 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrRequest>,
3429 >,
3430 _: (),
3431 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3432 if let Some(inner) = this {
3433 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3434 ::fidl_next::wire::Box::encode_present(out);
3435 } else {
3436 ::fidl_next::wire::Box::encode_absent(out);
3437 }
3438
3439 Ok(())
3440 }
3441 }
3442
3443 impl ::fidl_next::FromWire<crate::wire::NodeDeprecatedSetAttrRequest>
3444 for NodeDeprecatedSetAttrRequest
3445 {
3446 #[inline]
3447 fn from_wire(wire: crate::wire::NodeDeprecatedSetAttrRequest) -> Self {
3448 Self {
3449 flags: ::fidl_next::FromWire::from_wire(wire.flags),
3450
3451 attributes: ::fidl_next::FromWire::from_wire(wire.attributes),
3452 }
3453 }
3454 }
3455
3456 impl ::fidl_next::FromWireRef<crate::wire::NodeDeprecatedSetAttrRequest>
3457 for NodeDeprecatedSetAttrRequest
3458 {
3459 #[inline]
3460 fn from_wire_ref(wire: &crate::wire::NodeDeprecatedSetAttrRequest) -> Self {
3461 Self {
3462 flags: ::fidl_next::FromWireRef::from_wire_ref(&wire.flags),
3463
3464 attributes: ::fidl_next::FromWireRef::from_wire_ref(&wire.attributes),
3465 }
3466 }
3467 }
3468
3469 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3470 #[repr(C)]
3471 pub struct NodeDeprecatedSetAttrResponse {
3472 pub s: ::fidl_next::fuchsia::zx::Status,
3473 }
3474
3475 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrResponse, ___E>
3476 for NodeDeprecatedSetAttrResponse
3477 where
3478 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3479 {
3480 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
3481 Self,
3482 crate::wire::NodeDeprecatedSetAttrResponse,
3483 > = unsafe {
3484 ::fidl_next::CopyOptimization::enable_if(
3485 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::Encode<
3486 ::fidl_next::wire::fuchsia::Status,
3487 ___E,
3488 >>::COPY_OPTIMIZATION
3489 .is_enabled(),
3490 )
3491 };
3492
3493 #[inline]
3494 fn encode(
3495 self,
3496 encoder_: &mut ___E,
3497 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetAttrResponse>,
3498 _: (),
3499 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3500 ::fidl_next::munge! {
3501 let crate::wire::NodeDeprecatedSetAttrResponse {
3502 s,
3503
3504 } = out_;
3505 }
3506
3507 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
3508
3509 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
3510
3511 Ok(())
3512 }
3513 }
3514
3515 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrResponse, ___E>
3516 for &'a NodeDeprecatedSetAttrResponse
3517 where
3518 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3519 {
3520 #[inline]
3521 fn encode(
3522 self,
3523 encoder_: &mut ___E,
3524 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetAttrResponse>,
3525 _: (),
3526 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3527 ::fidl_next::munge! {
3528 let crate::wire::NodeDeprecatedSetAttrResponse {
3529 s,
3530
3531 } = out_;
3532 }
3533
3534 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
3535
3536 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
3537
3538 Ok(())
3539 }
3540 }
3541
3542 unsafe impl<___E>
3543 ::fidl_next::EncodeOption<
3544 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrResponse>,
3545 ___E,
3546 > for NodeDeprecatedSetAttrResponse
3547 where
3548 ___E: ::fidl_next::Encoder + ?Sized,
3549 NodeDeprecatedSetAttrResponse:
3550 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrResponse, ___E>,
3551 {
3552 #[inline]
3553 fn encode_option(
3554 this: ::core::option::Option<Self>,
3555 encoder: &mut ___E,
3556 out: &mut ::core::mem::MaybeUninit<
3557 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrResponse>,
3558 >,
3559 _: (),
3560 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3561 if let Some(inner) = this {
3562 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3563 ::fidl_next::wire::Box::encode_present(out);
3564 } else {
3565 ::fidl_next::wire::Box::encode_absent(out);
3566 }
3567
3568 Ok(())
3569 }
3570 }
3571
3572 unsafe impl<'a, ___E>
3573 ::fidl_next::EncodeOption<
3574 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrResponse>,
3575 ___E,
3576 > for &'a NodeDeprecatedSetAttrResponse
3577 where
3578 ___E: ::fidl_next::Encoder + ?Sized,
3579 &'a NodeDeprecatedSetAttrResponse:
3580 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrResponse, ___E>,
3581 {
3582 #[inline]
3583 fn encode_option(
3584 this: ::core::option::Option<Self>,
3585 encoder: &mut ___E,
3586 out: &mut ::core::mem::MaybeUninit<
3587 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrResponse>,
3588 >,
3589 _: (),
3590 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3591 if let Some(inner) = this {
3592 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3593 ::fidl_next::wire::Box::encode_present(out);
3594 } else {
3595 ::fidl_next::wire::Box::encode_absent(out);
3596 }
3597
3598 Ok(())
3599 }
3600 }
3601
3602 impl ::fidl_next::FromWire<crate::wire::NodeDeprecatedSetAttrResponse>
3603 for NodeDeprecatedSetAttrResponse
3604 {
3605 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
3606 crate::wire::NodeDeprecatedSetAttrResponse,
3607 Self,
3608 > = unsafe {
3609 ::fidl_next::CopyOptimization::enable_if(
3610 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::FromWire<
3611 ::fidl_next::wire::fuchsia::Status,
3612 >>::COPY_OPTIMIZATION
3613 .is_enabled(),
3614 )
3615 };
3616
3617 #[inline]
3618 fn from_wire(wire: crate::wire::NodeDeprecatedSetAttrResponse) -> Self {
3619 Self { s: ::fidl_next::FromWire::from_wire(wire.s) }
3620 }
3621 }
3622
3623 impl ::fidl_next::FromWireRef<crate::wire::NodeDeprecatedSetAttrResponse>
3624 for NodeDeprecatedSetAttrResponse
3625 {
3626 #[inline]
3627 fn from_wire_ref(wire: &crate::wire::NodeDeprecatedSetAttrResponse) -> Self {
3628 Self { s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s) }
3629 }
3630 }
3631
3632 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3633 #[repr(C)]
3634 pub struct NodeDeprecatedGetFlagsResponse {
3635 pub s: ::fidl_next::fuchsia::zx::Status,
3636
3637 pub flags: crate::natural::OpenFlags,
3638 }
3639
3640 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedGetFlagsResponse, ___E>
3641 for NodeDeprecatedGetFlagsResponse
3642 where
3643 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3644 {
3645 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
3646 Self,
3647 crate::wire::NodeDeprecatedGetFlagsResponse,
3648 > = unsafe {
3649 ::fidl_next::CopyOptimization::enable_if(
3650 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::Encode<
3651 ::fidl_next::wire::fuchsia::Status,
3652 ___E,
3653 >>::COPY_OPTIMIZATION
3654 .is_enabled()
3655 && <crate::natural::OpenFlags as ::fidl_next::Encode<
3656 crate::wire::OpenFlags,
3657 ___E,
3658 >>::COPY_OPTIMIZATION
3659 .is_enabled(),
3660 )
3661 };
3662
3663 #[inline]
3664 fn encode(
3665 self,
3666 encoder_: &mut ___E,
3667 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedGetFlagsResponse>,
3668 _: (),
3669 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3670 ::fidl_next::munge! {
3671 let crate::wire::NodeDeprecatedGetFlagsResponse {
3672 s,
3673 flags,
3674
3675 } = out_;
3676 }
3677
3678 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
3679
3680 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
3681
3682 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
3683
3684 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
3685
3686 Ok(())
3687 }
3688 }
3689
3690 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedGetFlagsResponse, ___E>
3691 for &'a NodeDeprecatedGetFlagsResponse
3692 where
3693 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3694 {
3695 #[inline]
3696 fn encode(
3697 self,
3698 encoder_: &mut ___E,
3699 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedGetFlagsResponse>,
3700 _: (),
3701 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3702 ::fidl_next::munge! {
3703 let crate::wire::NodeDeprecatedGetFlagsResponse {
3704 s,
3705 flags,
3706
3707 } = out_;
3708 }
3709
3710 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
3711
3712 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
3713
3714 ::fidl_next::Encode::encode(&self.flags, encoder_, flags, ())?;
3715
3716 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
3717
3718 Ok(())
3719 }
3720 }
3721
3722 unsafe impl<___E>
3723 ::fidl_next::EncodeOption<
3724 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetFlagsResponse>,
3725 ___E,
3726 > for NodeDeprecatedGetFlagsResponse
3727 where
3728 ___E: ::fidl_next::Encoder + ?Sized,
3729 NodeDeprecatedGetFlagsResponse:
3730 ::fidl_next::Encode<crate::wire::NodeDeprecatedGetFlagsResponse, ___E>,
3731 {
3732 #[inline]
3733 fn encode_option(
3734 this: ::core::option::Option<Self>,
3735 encoder: &mut ___E,
3736 out: &mut ::core::mem::MaybeUninit<
3737 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetFlagsResponse>,
3738 >,
3739 _: (),
3740 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3741 if let Some(inner) = this {
3742 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3743 ::fidl_next::wire::Box::encode_present(out);
3744 } else {
3745 ::fidl_next::wire::Box::encode_absent(out);
3746 }
3747
3748 Ok(())
3749 }
3750 }
3751
3752 unsafe impl<'a, ___E>
3753 ::fidl_next::EncodeOption<
3754 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetFlagsResponse>,
3755 ___E,
3756 > for &'a NodeDeprecatedGetFlagsResponse
3757 where
3758 ___E: ::fidl_next::Encoder + ?Sized,
3759 &'a NodeDeprecatedGetFlagsResponse:
3760 ::fidl_next::Encode<crate::wire::NodeDeprecatedGetFlagsResponse, ___E>,
3761 {
3762 #[inline]
3763 fn encode_option(
3764 this: ::core::option::Option<Self>,
3765 encoder: &mut ___E,
3766 out: &mut ::core::mem::MaybeUninit<
3767 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetFlagsResponse>,
3768 >,
3769 _: (),
3770 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3771 if let Some(inner) = this {
3772 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3773 ::fidl_next::wire::Box::encode_present(out);
3774 } else {
3775 ::fidl_next::wire::Box::encode_absent(out);
3776 }
3777
3778 Ok(())
3779 }
3780 }
3781
3782 impl ::fidl_next::FromWire<crate::wire::NodeDeprecatedGetFlagsResponse>
3783 for NodeDeprecatedGetFlagsResponse
3784 {
3785 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
3786 crate::wire::NodeDeprecatedGetFlagsResponse,
3787 Self,
3788 > = unsafe {
3789 ::fidl_next::CopyOptimization::enable_if(
3790 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::FromWire<
3791 ::fidl_next::wire::fuchsia::Status,
3792 >>::COPY_OPTIMIZATION
3793 .is_enabled()
3794 && <crate::natural::OpenFlags as ::fidl_next::FromWire<
3795 crate::wire::OpenFlags,
3796 >>::COPY_OPTIMIZATION
3797 .is_enabled(),
3798 )
3799 };
3800
3801 #[inline]
3802 fn from_wire(wire: crate::wire::NodeDeprecatedGetFlagsResponse) -> Self {
3803 Self {
3804 s: ::fidl_next::FromWire::from_wire(wire.s),
3805
3806 flags: ::fidl_next::FromWire::from_wire(wire.flags),
3807 }
3808 }
3809 }
3810
3811 impl ::fidl_next::FromWireRef<crate::wire::NodeDeprecatedGetFlagsResponse>
3812 for NodeDeprecatedGetFlagsResponse
3813 {
3814 #[inline]
3815 fn from_wire_ref(wire: &crate::wire::NodeDeprecatedGetFlagsResponse) -> Self {
3816 Self {
3817 s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s),
3818
3819 flags: ::fidl_next::FromWireRef::from_wire_ref(&wire.flags),
3820 }
3821 }
3822 }
3823
3824 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3825 #[repr(C)]
3826 pub struct NodeDeprecatedSetFlagsRequest {
3827 pub flags: crate::natural::OpenFlags,
3828 }
3829
3830 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsRequest, ___E>
3831 for NodeDeprecatedSetFlagsRequest
3832 where
3833 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3834 {
3835 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
3836 Self,
3837 crate::wire::NodeDeprecatedSetFlagsRequest,
3838 > = unsafe {
3839 ::fidl_next::CopyOptimization::enable_if(
3840 true && <crate::natural::OpenFlags as ::fidl_next::Encode<
3841 crate::wire::OpenFlags,
3842 ___E,
3843 >>::COPY_OPTIMIZATION
3844 .is_enabled(),
3845 )
3846 };
3847
3848 #[inline]
3849 fn encode(
3850 self,
3851 encoder_: &mut ___E,
3852 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetFlagsRequest>,
3853 _: (),
3854 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3855 ::fidl_next::munge! {
3856 let crate::wire::NodeDeprecatedSetFlagsRequest {
3857 flags,
3858
3859 } = out_;
3860 }
3861
3862 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
3863
3864 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
3865
3866 Ok(())
3867 }
3868 }
3869
3870 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsRequest, ___E>
3871 for &'a NodeDeprecatedSetFlagsRequest
3872 where
3873 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3874 {
3875 #[inline]
3876 fn encode(
3877 self,
3878 encoder_: &mut ___E,
3879 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetFlagsRequest>,
3880 _: (),
3881 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3882 ::fidl_next::munge! {
3883 let crate::wire::NodeDeprecatedSetFlagsRequest {
3884 flags,
3885
3886 } = out_;
3887 }
3888
3889 ::fidl_next::Encode::encode(&self.flags, encoder_, flags, ())?;
3890
3891 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
3892
3893 Ok(())
3894 }
3895 }
3896
3897 unsafe impl<___E>
3898 ::fidl_next::EncodeOption<
3899 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsRequest>,
3900 ___E,
3901 > for NodeDeprecatedSetFlagsRequest
3902 where
3903 ___E: ::fidl_next::Encoder + ?Sized,
3904 NodeDeprecatedSetFlagsRequest:
3905 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsRequest, ___E>,
3906 {
3907 #[inline]
3908 fn encode_option(
3909 this: ::core::option::Option<Self>,
3910 encoder: &mut ___E,
3911 out: &mut ::core::mem::MaybeUninit<
3912 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsRequest>,
3913 >,
3914 _: (),
3915 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3916 if let Some(inner) = this {
3917 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3918 ::fidl_next::wire::Box::encode_present(out);
3919 } else {
3920 ::fidl_next::wire::Box::encode_absent(out);
3921 }
3922
3923 Ok(())
3924 }
3925 }
3926
3927 unsafe impl<'a, ___E>
3928 ::fidl_next::EncodeOption<
3929 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsRequest>,
3930 ___E,
3931 > for &'a NodeDeprecatedSetFlagsRequest
3932 where
3933 ___E: ::fidl_next::Encoder + ?Sized,
3934 &'a NodeDeprecatedSetFlagsRequest:
3935 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsRequest, ___E>,
3936 {
3937 #[inline]
3938 fn encode_option(
3939 this: ::core::option::Option<Self>,
3940 encoder: &mut ___E,
3941 out: &mut ::core::mem::MaybeUninit<
3942 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsRequest>,
3943 >,
3944 _: (),
3945 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3946 if let Some(inner) = this {
3947 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3948 ::fidl_next::wire::Box::encode_present(out);
3949 } else {
3950 ::fidl_next::wire::Box::encode_absent(out);
3951 }
3952
3953 Ok(())
3954 }
3955 }
3956
3957 impl ::fidl_next::FromWire<crate::wire::NodeDeprecatedSetFlagsRequest>
3958 for NodeDeprecatedSetFlagsRequest
3959 {
3960 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
3961 crate::wire::NodeDeprecatedSetFlagsRequest,
3962 Self,
3963 > = unsafe {
3964 ::fidl_next::CopyOptimization::enable_if(
3965 true && <crate::natural::OpenFlags as ::fidl_next::FromWire<
3966 crate::wire::OpenFlags,
3967 >>::COPY_OPTIMIZATION
3968 .is_enabled(),
3969 )
3970 };
3971
3972 #[inline]
3973 fn from_wire(wire: crate::wire::NodeDeprecatedSetFlagsRequest) -> Self {
3974 Self { flags: ::fidl_next::FromWire::from_wire(wire.flags) }
3975 }
3976 }
3977
3978 impl ::fidl_next::FromWireRef<crate::wire::NodeDeprecatedSetFlagsRequest>
3979 for NodeDeprecatedSetFlagsRequest
3980 {
3981 #[inline]
3982 fn from_wire_ref(wire: &crate::wire::NodeDeprecatedSetFlagsRequest) -> Self {
3983 Self { flags: ::fidl_next::FromWireRef::from_wire_ref(&wire.flags) }
3984 }
3985 }
3986
3987 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3988 #[repr(C)]
3989 pub struct NodeDeprecatedSetFlagsResponse {
3990 pub s: ::fidl_next::fuchsia::zx::Status,
3991 }
3992
3993 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsResponse, ___E>
3994 for NodeDeprecatedSetFlagsResponse
3995 where
3996 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3997 {
3998 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
3999 Self,
4000 crate::wire::NodeDeprecatedSetFlagsResponse,
4001 > = unsafe {
4002 ::fidl_next::CopyOptimization::enable_if(
4003 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::Encode<
4004 ::fidl_next::wire::fuchsia::Status,
4005 ___E,
4006 >>::COPY_OPTIMIZATION
4007 .is_enabled(),
4008 )
4009 };
4010
4011 #[inline]
4012 fn encode(
4013 self,
4014 encoder_: &mut ___E,
4015 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetFlagsResponse>,
4016 _: (),
4017 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4018 ::fidl_next::munge! {
4019 let crate::wire::NodeDeprecatedSetFlagsResponse {
4020 s,
4021
4022 } = out_;
4023 }
4024
4025 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
4026
4027 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
4028
4029 Ok(())
4030 }
4031 }
4032
4033 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsResponse, ___E>
4034 for &'a NodeDeprecatedSetFlagsResponse
4035 where
4036 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4037 {
4038 #[inline]
4039 fn encode(
4040 self,
4041 encoder_: &mut ___E,
4042 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetFlagsResponse>,
4043 _: (),
4044 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4045 ::fidl_next::munge! {
4046 let crate::wire::NodeDeprecatedSetFlagsResponse {
4047 s,
4048
4049 } = out_;
4050 }
4051
4052 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
4053
4054 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
4055
4056 Ok(())
4057 }
4058 }
4059
4060 unsafe impl<___E>
4061 ::fidl_next::EncodeOption<
4062 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsResponse>,
4063 ___E,
4064 > for NodeDeprecatedSetFlagsResponse
4065 where
4066 ___E: ::fidl_next::Encoder + ?Sized,
4067 NodeDeprecatedSetFlagsResponse:
4068 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsResponse, ___E>,
4069 {
4070 #[inline]
4071 fn encode_option(
4072 this: ::core::option::Option<Self>,
4073 encoder: &mut ___E,
4074 out: &mut ::core::mem::MaybeUninit<
4075 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsResponse>,
4076 >,
4077 _: (),
4078 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4079 if let Some(inner) = this {
4080 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
4081 ::fidl_next::wire::Box::encode_present(out);
4082 } else {
4083 ::fidl_next::wire::Box::encode_absent(out);
4084 }
4085
4086 Ok(())
4087 }
4088 }
4089
4090 unsafe impl<'a, ___E>
4091 ::fidl_next::EncodeOption<
4092 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsResponse>,
4093 ___E,
4094 > for &'a NodeDeprecatedSetFlagsResponse
4095 where
4096 ___E: ::fidl_next::Encoder + ?Sized,
4097 &'a NodeDeprecatedSetFlagsResponse:
4098 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsResponse, ___E>,
4099 {
4100 #[inline]
4101 fn encode_option(
4102 this: ::core::option::Option<Self>,
4103 encoder: &mut ___E,
4104 out: &mut ::core::mem::MaybeUninit<
4105 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsResponse>,
4106 >,
4107 _: (),
4108 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4109 if let Some(inner) = this {
4110 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
4111 ::fidl_next::wire::Box::encode_present(out);
4112 } else {
4113 ::fidl_next::wire::Box::encode_absent(out);
4114 }
4115
4116 Ok(())
4117 }
4118 }
4119
4120 impl ::fidl_next::FromWire<crate::wire::NodeDeprecatedSetFlagsResponse>
4121 for NodeDeprecatedSetFlagsResponse
4122 {
4123 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
4124 crate::wire::NodeDeprecatedSetFlagsResponse,
4125 Self,
4126 > = unsafe {
4127 ::fidl_next::CopyOptimization::enable_if(
4128 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::FromWire<
4129 ::fidl_next::wire::fuchsia::Status,
4130 >>::COPY_OPTIMIZATION
4131 .is_enabled(),
4132 )
4133 };
4134
4135 #[inline]
4136 fn from_wire(wire: crate::wire::NodeDeprecatedSetFlagsResponse) -> Self {
4137 Self { s: ::fidl_next::FromWire::from_wire(wire.s) }
4138 }
4139 }
4140
4141 impl ::fidl_next::FromWireRef<crate::wire::NodeDeprecatedSetFlagsResponse>
4142 for NodeDeprecatedSetFlagsResponse
4143 {
4144 #[inline]
4145 fn from_wire_ref(wire: &crate::wire::NodeDeprecatedSetFlagsResponse) -> Self {
4146 Self { s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s) }
4147 }
4148 }
4149
4150 ::fidl_next::bitflags::bitflags! {
4151 #[doc = " Flags used to specify how a node should be opened. Note that ranges of bits are reserved\n for specific use cases:\n * Bits 1-16: Permission flags `PERM_*` (e.g. [`Flags.PERM_READ_BYTES`]).\n * Bits 17-32: POSIX compatibile `O_*` flags (e.g. [`Flags.FILE_TRUNCATE`] or `O_TRUNC`).\n * Bits 33-64: Fuchsia-specific flags.\n"]#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct Flags: u64 {
4152 #[doc = " Allows opening child nodes with [`PROTOCOL_SERVICE`].\n"]const PERM_CONNECT = 1;
4153 #[doc = " Read byte contents of a file.\n"]const PERM_READ_BYTES = 2;
4154 #[doc = " Write byte contents to a file.\n"]const PERM_WRITE_BYTES = 4;
4155 #[doc = " Execute byte contents of a file.\n"]const PERM_EXECUTE = 8;
4156 #[doc = " Get/query attributes of a node.\n"]const PERM_GET_ATTRIBUTES = 16;
4157 #[doc = " Set/update attributes of a node.\n"]const PERM_UPDATE_ATTRIBUTES = 32;
4158 #[doc = " Enumerate (list) directory entries.\n"]const PERM_ENUMERATE = 64;
4159 #[doc = " Allow opening a child node with a node protocol. Must be specified with PERM_ENUMERATE\n otherwise requests will fail with `ZX_ERR_INVALID_ARGS`.\n"]const PERM_TRAVERSE = 128;
4160 #[doc = " Modify directory entries (create/rename/link/unlink). Must be specified with\n PERM_ENUMERATE otherwise requests will fail with `ZX_ERR_INVALID_ARGS`.\n"]const PERM_MODIFY_DIRECTORY = 256;
4161 #[doc = " Inherit write permissions when available (PERM_WRITE_BYTES, PERM_UPDATE_ATTRIBUTES,\n PERM_MODIFY_DIRECTORY, /// PERM_ENUMERATE). Servers must ensure this flag is removed\n if the parent connection lacks any of these rights. See [`INHERITED_WRITE_PERMISSIONS`]\n for the exact set of permissions that will be inherited.\n"]const PERM_INHERIT_WRITE = 8192;
4162 #[doc = " Inherit execute permission when available (PERM_EXECUTE).\n Servers must ensure this flag is removed if the parent connection lacks PERM_EXECUTE.\n"]const PERM_INHERIT_EXECUTE = 16384;
4163 #[doc = " Connect to the underlying protocol if this is a service node. The caller must determine the\n correct protocol to use (e.g. based on path). Unless used with [`PROTOCOL_NODE`], specifying\n other flags with the request will fail with `ZX_ERR_INVALID_ARGS`.\n"]const PROTOCOL_SERVICE = 4294967296;
4164 #[doc = " Connect to the underlying node. Takes precedence over other protocols. If other `PROTOCOL_*`\n are specified, they will be used to validate the target node type. Requests will fail with\n `ZX_ERR_INVALID_ARGS` if flags other than `PROTOCOL_*` and [`FLAG_SEND_REPRESENTATION`] are\n specified. Equivalent to POSIX `O_PATH`.\n"]const PROTOCOL_NODE = 4194304;
4165 #[doc = " Caller accepts [`fuchsia.io/Directory`] protocol. Equivalent to POSIX `O_DIRECTORY`.\n"]const PROTOCOL_DIRECTORY = 524288;
4166 #[doc = " Caller accepts [`fuchsia.io/File`] protocol.\n"]const PROTOCOL_FILE = 8589934592;
4167 #[doc = " Caller accepts [`fuchsia.io/Symlink`] protocol.\n"]const PROTOCOL_SYMLINK = 17179869184;
4168 #[doc = " Caller requests a [`fuchsia.io/Node.OnRepresentation`] event on success.\n"]const FLAG_SEND_REPRESENTATION = 1099511627776;
4169 #[doc = " Create a new object if one doesn\'t exist, otherwise open an existing object. If set, a\n single `PROTOCOL_*` flag must be set indicating the type of object to create. Equivalent\n to POSIX `O_CREAT`.\n"]const FLAG_MAYBE_CREATE = 65536;
4170 #[doc = " Create a new object if one doesn\'t exist, otherwise fail the request with\n `ZX_ERR_ALREADY_EXISTS`. If set, a single `PROTOCOL_*` flag must be set indicating the type\n of object to create. Takes precedence over [`FLAG_MAYBE_CREATE`]. Equivalent to POSIX\n `O_EXCL`.\n"]const FLAG_MUST_CREATE = 131072;
4171 #[doc = " Create a new unnamed temporary object. The object is temporary until it is linked to the\n filesystem. If specified with `FLAG_TEMPORARY_AS_NOT_LINKABLE`, then the created object is\n not linkable. If this flag is set:\n * `path` specified in [`fuchsia.io/Directory.Open`] refers to the path of the directory\n which the new object will be created in,\n * A `PROTOCOL_*` flag is set to indicate the type of object to be created. Currently, this\n is only supported when specified with `PROTOCOL_FILE`, in which case, it is equivalent\n to Linux `O_TMPFILE`.\n * `FLAG_MAYBE_CREATE` will be ignored.\n"]const FLAG_CREATE_AS_UNNAMED_TEMPORARY = 34359738368;
4172 #[doc = " Open the file in append mode. The seek pointer will be moved to end-of-file (EOF)\n before all writes. Equivalent to POSIX `O_APPEND`.\n"]const FILE_APPEND = 1048576;
4173 #[doc = " Truncate the file to zero length upon opening it. Equivalent to POSIX `O_TRUNC`.\n"]const FILE_TRUNCATE = 262144;
4174 const _ = !0;
4175 }
4176 }
4177
4178 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Flags, ___E> for Flags
4179 where
4180 ___E: ?Sized,
4181 {
4182 #[inline]
4183 fn encode(
4184 self,
4185 encoder: &mut ___E,
4186 out: &mut ::core::mem::MaybeUninit<crate::wire::Flags>,
4187 _: (),
4188 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4189 ::fidl_next::Encode::encode(&self, encoder, out, ())
4190 }
4191 }
4192
4193 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Flags, ___E> for &'a Flags
4194 where
4195 ___E: ?Sized,
4196 {
4197 #[inline]
4198 fn encode(
4199 self,
4200 _: &mut ___E,
4201 out: &mut ::core::mem::MaybeUninit<crate::wire::Flags>,
4202 _: (),
4203 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4204 ::fidl_next::munge!(let crate::wire::Flags { value } = out);
4205
4206 let _ = value.write(::fidl_next::wire::Uint64::from(self.bits()));
4207 Ok(())
4208 }
4209 }
4210
4211 impl ::core::convert::From<crate::wire::Flags> for Flags {
4212 fn from(wire: crate::wire::Flags) -> Self {
4213 Self::from_bits_retain(u64::from(wire.value))
4214 }
4215 }
4216
4217 impl ::fidl_next::FromWire<crate::wire::Flags> for Flags {
4218 #[inline]
4219 fn from_wire(wire: crate::wire::Flags) -> Self {
4220 Self::from(wire)
4221 }
4222 }
4223
4224 impl ::fidl_next::FromWireRef<crate::wire::Flags> for Flags {
4225 #[inline]
4226 fn from_wire_ref(wire: &crate::wire::Flags) -> Self {
4227 Self::from(*wire)
4228 }
4229 }
4230
4231 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4232 #[repr(C)]
4233 pub struct NodeGetFlagsResponse {
4234 pub flags: crate::natural::Flags,
4235 }
4236
4237 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeGetFlagsResponse, ___E>
4238 for NodeGetFlagsResponse
4239 where
4240 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4241 {
4242 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
4243 Self,
4244 crate::wire::NodeGetFlagsResponse,
4245 > = unsafe {
4246 ::fidl_next::CopyOptimization::enable_if(
4247 true
4248
4249 && <
4250 crate::natural::Flags as ::fidl_next::Encode<crate::wire::Flags, ___E>
4251 >::COPY_OPTIMIZATION.is_enabled()
4252
4253 )
4254 };
4255
4256 #[inline]
4257 fn encode(
4258 self,
4259 encoder_: &mut ___E,
4260 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeGetFlagsResponse>,
4261 _: (),
4262 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4263 ::fidl_next::munge! {
4264 let crate::wire::NodeGetFlagsResponse {
4265 flags,
4266
4267 } = out_;
4268 }
4269
4270 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
4271
4272 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
4273
4274 Ok(())
4275 }
4276 }
4277
4278 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeGetFlagsResponse, ___E>
4279 for &'a NodeGetFlagsResponse
4280 where
4281 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4282 {
4283 #[inline]
4284 fn encode(
4285 self,
4286 encoder_: &mut ___E,
4287 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeGetFlagsResponse>,
4288 _: (),
4289 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4290 ::fidl_next::munge! {
4291 let crate::wire::NodeGetFlagsResponse {
4292 flags,
4293
4294 } = out_;
4295 }
4296
4297 ::fidl_next::Encode::encode(&self.flags, encoder_, flags, ())?;
4298
4299 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
4300
4301 Ok(())
4302 }
4303 }
4304
4305 unsafe impl<___E>
4306 ::fidl_next::EncodeOption<
4307 ::fidl_next::wire::Box<'static, crate::wire::NodeGetFlagsResponse>,
4308 ___E,
4309 > for NodeGetFlagsResponse
4310 where
4311 ___E: ::fidl_next::Encoder + ?Sized,
4312 NodeGetFlagsResponse: ::fidl_next::Encode<crate::wire::NodeGetFlagsResponse, ___E>,
4313 {
4314 #[inline]
4315 fn encode_option(
4316 this: ::core::option::Option<Self>,
4317 encoder: &mut ___E,
4318 out: &mut ::core::mem::MaybeUninit<
4319 ::fidl_next::wire::Box<'static, crate::wire::NodeGetFlagsResponse>,
4320 >,
4321 _: (),
4322 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4323 if let Some(inner) = this {
4324 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
4325 ::fidl_next::wire::Box::encode_present(out);
4326 } else {
4327 ::fidl_next::wire::Box::encode_absent(out);
4328 }
4329
4330 Ok(())
4331 }
4332 }
4333
4334 unsafe impl<'a, ___E>
4335 ::fidl_next::EncodeOption<
4336 ::fidl_next::wire::Box<'static, crate::wire::NodeGetFlagsResponse>,
4337 ___E,
4338 > for &'a NodeGetFlagsResponse
4339 where
4340 ___E: ::fidl_next::Encoder + ?Sized,
4341 &'a NodeGetFlagsResponse: ::fidl_next::Encode<crate::wire::NodeGetFlagsResponse, ___E>,
4342 {
4343 #[inline]
4344 fn encode_option(
4345 this: ::core::option::Option<Self>,
4346 encoder: &mut ___E,
4347 out: &mut ::core::mem::MaybeUninit<
4348 ::fidl_next::wire::Box<'static, crate::wire::NodeGetFlagsResponse>,
4349 >,
4350 _: (),
4351 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4352 if let Some(inner) = this {
4353 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
4354 ::fidl_next::wire::Box::encode_present(out);
4355 } else {
4356 ::fidl_next::wire::Box::encode_absent(out);
4357 }
4358
4359 Ok(())
4360 }
4361 }
4362
4363 impl ::fidl_next::FromWire<crate::wire::NodeGetFlagsResponse> for NodeGetFlagsResponse {
4364 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
4365 crate::wire::NodeGetFlagsResponse,
4366 Self,
4367 > = unsafe {
4368 ::fidl_next::CopyOptimization::enable_if(
4369 true
4370
4371 && <
4372 crate::natural::Flags as ::fidl_next::FromWire<crate::wire::Flags>
4373 >::COPY_OPTIMIZATION.is_enabled()
4374
4375 )
4376 };
4377
4378 #[inline]
4379 fn from_wire(wire: crate::wire::NodeGetFlagsResponse) -> Self {
4380 Self { flags: ::fidl_next::FromWire::from_wire(wire.flags) }
4381 }
4382 }
4383
4384 impl ::fidl_next::FromWireRef<crate::wire::NodeGetFlagsResponse> for NodeGetFlagsResponse {
4385 #[inline]
4386 fn from_wire_ref(wire: &crate::wire::NodeGetFlagsResponse) -> Self {
4387 Self { flags: ::fidl_next::FromWireRef::from_wire_ref(&wire.flags) }
4388 }
4389 }
4390
4391 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4392 #[repr(C)]
4393 pub struct NodeSetFlagsRequest {
4394 pub flags: crate::natural::Flags,
4395 }
4396
4397 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeSetFlagsRequest, ___E>
4398 for NodeSetFlagsRequest
4399 where
4400 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4401 {
4402 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
4403 Self,
4404 crate::wire::NodeSetFlagsRequest,
4405 > = unsafe {
4406 ::fidl_next::CopyOptimization::enable_if(
4407 true
4408
4409 && <
4410 crate::natural::Flags as ::fidl_next::Encode<crate::wire::Flags, ___E>
4411 >::COPY_OPTIMIZATION.is_enabled()
4412
4413 )
4414 };
4415
4416 #[inline]
4417 fn encode(
4418 self,
4419 encoder_: &mut ___E,
4420 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeSetFlagsRequest>,
4421 _: (),
4422 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4423 ::fidl_next::munge! {
4424 let crate::wire::NodeSetFlagsRequest {
4425 flags,
4426
4427 } = out_;
4428 }
4429
4430 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
4431
4432 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
4433
4434 Ok(())
4435 }
4436 }
4437
4438 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeSetFlagsRequest, ___E>
4439 for &'a NodeSetFlagsRequest
4440 where
4441 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4442 {
4443 #[inline]
4444 fn encode(
4445 self,
4446 encoder_: &mut ___E,
4447 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeSetFlagsRequest>,
4448 _: (),
4449 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4450 ::fidl_next::munge! {
4451 let crate::wire::NodeSetFlagsRequest {
4452 flags,
4453
4454 } = out_;
4455 }
4456
4457 ::fidl_next::Encode::encode(&self.flags, encoder_, flags, ())?;
4458
4459 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
4460
4461 Ok(())
4462 }
4463 }
4464
4465 unsafe impl<___E>
4466 ::fidl_next::EncodeOption<
4467 ::fidl_next::wire::Box<'static, crate::wire::NodeSetFlagsRequest>,
4468 ___E,
4469 > for NodeSetFlagsRequest
4470 where
4471 ___E: ::fidl_next::Encoder + ?Sized,
4472 NodeSetFlagsRequest: ::fidl_next::Encode<crate::wire::NodeSetFlagsRequest, ___E>,
4473 {
4474 #[inline]
4475 fn encode_option(
4476 this: ::core::option::Option<Self>,
4477 encoder: &mut ___E,
4478 out: &mut ::core::mem::MaybeUninit<
4479 ::fidl_next::wire::Box<'static, crate::wire::NodeSetFlagsRequest>,
4480 >,
4481 _: (),
4482 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4483 if let Some(inner) = this {
4484 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
4485 ::fidl_next::wire::Box::encode_present(out);
4486 } else {
4487 ::fidl_next::wire::Box::encode_absent(out);
4488 }
4489
4490 Ok(())
4491 }
4492 }
4493
4494 unsafe impl<'a, ___E>
4495 ::fidl_next::EncodeOption<
4496 ::fidl_next::wire::Box<'static, crate::wire::NodeSetFlagsRequest>,
4497 ___E,
4498 > for &'a NodeSetFlagsRequest
4499 where
4500 ___E: ::fidl_next::Encoder + ?Sized,
4501 &'a NodeSetFlagsRequest: ::fidl_next::Encode<crate::wire::NodeSetFlagsRequest, ___E>,
4502 {
4503 #[inline]
4504 fn encode_option(
4505 this: ::core::option::Option<Self>,
4506 encoder: &mut ___E,
4507 out: &mut ::core::mem::MaybeUninit<
4508 ::fidl_next::wire::Box<'static, crate::wire::NodeSetFlagsRequest>,
4509 >,
4510 _: (),
4511 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4512 if let Some(inner) = this {
4513 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
4514 ::fidl_next::wire::Box::encode_present(out);
4515 } else {
4516 ::fidl_next::wire::Box::encode_absent(out);
4517 }
4518
4519 Ok(())
4520 }
4521 }
4522
4523 impl ::fidl_next::FromWire<crate::wire::NodeSetFlagsRequest> for NodeSetFlagsRequest {
4524 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
4525 crate::wire::NodeSetFlagsRequest,
4526 Self,
4527 > = unsafe {
4528 ::fidl_next::CopyOptimization::enable_if(
4529 true
4530
4531 && <
4532 crate::natural::Flags as ::fidl_next::FromWire<crate::wire::Flags>
4533 >::COPY_OPTIMIZATION.is_enabled()
4534
4535 )
4536 };
4537
4538 #[inline]
4539 fn from_wire(wire: crate::wire::NodeSetFlagsRequest) -> Self {
4540 Self { flags: ::fidl_next::FromWire::from_wire(wire.flags) }
4541 }
4542 }
4543
4544 impl ::fidl_next::FromWireRef<crate::wire::NodeSetFlagsRequest> for NodeSetFlagsRequest {
4545 #[inline]
4546 fn from_wire_ref(wire: &crate::wire::NodeSetFlagsRequest) -> Self {
4547 Self { flags: ::fidl_next::FromWireRef::from_wire_ref(&wire.flags) }
4548 }
4549 }
4550
4551 #[doc = " Used in places where empty structs are needed, such as empty union members, to avoid creating\n new struct types.\n"]
4552 pub type EmptyStruct = ();
4553
4554 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4555 pub enum SelinuxContext {
4556 Data(::std::vec::Vec<u8>),
4557
4558 UseExtendedAttributes(crate::natural::EmptyStruct),
4559
4560 UnknownOrdinal_(u64),
4561 }
4562
4563 impl SelinuxContext {
4564 pub fn is_unknown(&self) -> bool {
4565 #[allow(unreachable_patterns)]
4566 match self {
4567 Self::UnknownOrdinal_(_) => true,
4568 _ => false,
4569 }
4570 }
4571 }
4572
4573 unsafe impl<___E> ::fidl_next::Encode<crate::wire::SelinuxContext<'static>, ___E> for SelinuxContext
4574 where
4575 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4576 ___E: ::fidl_next::Encoder,
4577 {
4578 #[inline]
4579 fn encode(
4580 self,
4581 encoder: &mut ___E,
4582 out: &mut ::core::mem::MaybeUninit<crate::wire::SelinuxContext<'static>>,
4583 _: (),
4584 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4585 ::fidl_next::munge!(let crate::wire::SelinuxContext { raw, _phantom: _ } = out);
4586
4587 match self {
4588 Self::Data(value) => ::fidl_next::wire::Union::encode_as::<
4589 ___E,
4590 ::fidl_next::wire::Vector<'static, u8>,
4591 >(value, 1, encoder, raw, (256, ()))?,
4592
4593 Self::UseExtendedAttributes(value) => ::fidl_next::wire::Union::encode_as::<
4594 ___E,
4595 crate::wire::EmptyStruct,
4596 >(value, 2, encoder, raw, ())?,
4597
4598 Self::UnknownOrdinal_(ordinal) => {
4599 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
4600 }
4601 }
4602
4603 Ok(())
4604 }
4605 }
4606
4607 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::SelinuxContext<'static>, ___E>
4608 for &'a SelinuxContext
4609 where
4610 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4611 ___E: ::fidl_next::Encoder,
4612 {
4613 #[inline]
4614 fn encode(
4615 self,
4616 encoder: &mut ___E,
4617 out: &mut ::core::mem::MaybeUninit<crate::wire::SelinuxContext<'static>>,
4618 _: (),
4619 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4620 ::fidl_next::munge!(let crate::wire::SelinuxContext { raw, _phantom: _ } = out);
4621
4622 match self {
4623 SelinuxContext::Data(value) => ::fidl_next::wire::Union::encode_as::<
4624 ___E,
4625 ::fidl_next::wire::Vector<'static, u8>,
4626 >(value, 1, encoder, raw, (256, ()))?,
4627
4628 SelinuxContext::UseExtendedAttributes(value) => {
4629 ::fidl_next::wire::Union::encode_as::<___E, crate::wire::EmptyStruct>(
4630 value,
4631 2,
4632 encoder,
4633 raw,
4634 (),
4635 )?
4636 }
4637
4638 SelinuxContext::UnknownOrdinal_(ordinal) => {
4639 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
4640 }
4641 }
4642
4643 Ok(())
4644 }
4645 }
4646
4647 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::SelinuxContext<'static>, ___E>
4648 for SelinuxContext
4649 where
4650 ___E: ?Sized,
4651 SelinuxContext: ::fidl_next::Encode<crate::wire::SelinuxContext<'static>, ___E>,
4652 {
4653 #[inline]
4654 fn encode_option(
4655 this: ::core::option::Option<Self>,
4656 encoder: &mut ___E,
4657 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::SelinuxContext<'static>>,
4658 _: (),
4659 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4660 ::fidl_next::munge!(let crate::wire_optional::SelinuxContext { raw, _phantom: _ } = &mut *out);
4661
4662 if let Some(inner) = this {
4663 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
4664 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
4665 } else {
4666 ::fidl_next::wire::Union::encode_absent(raw);
4667 }
4668
4669 Ok(())
4670 }
4671 }
4672
4673 unsafe impl<'a, ___E>
4674 ::fidl_next::EncodeOption<crate::wire_optional::SelinuxContext<'static>, ___E>
4675 for &'a SelinuxContext
4676 where
4677 ___E: ?Sized,
4678 &'a SelinuxContext: ::fidl_next::Encode<crate::wire::SelinuxContext<'static>, ___E>,
4679 {
4680 #[inline]
4681 fn encode_option(
4682 this: ::core::option::Option<Self>,
4683 encoder: &mut ___E,
4684 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::SelinuxContext<'static>>,
4685 _: (),
4686 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4687 ::fidl_next::munge!(let crate::wire_optional::SelinuxContext { raw, _phantom: _ } = &mut *out);
4688
4689 if let Some(inner) = this {
4690 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
4691 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
4692 } else {
4693 ::fidl_next::wire::Union::encode_absent(raw);
4694 }
4695
4696 Ok(())
4697 }
4698 }
4699
4700 impl<'de> ::fidl_next::FromWire<crate::wire::SelinuxContext<'de>> for SelinuxContext {
4701 #[inline]
4702 fn from_wire(wire: crate::wire::SelinuxContext<'de>) -> Self {
4703 let wire = ::core::mem::ManuallyDrop::new(wire);
4704 match wire.raw.ordinal() {
4705 1 => Self::Data(::fidl_next::FromWire::from_wire(unsafe {
4706 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
4707 })),
4708
4709 2 => Self::UseExtendedAttributes(::fidl_next::FromWire::from_wire(unsafe {
4710 wire.raw.get().read_unchecked::<crate::wire::EmptyStruct>()
4711 })),
4712
4713 ord => return Self::UnknownOrdinal_(ord as u64),
4714 }
4715 }
4716 }
4717
4718 impl<'de> ::fidl_next::FromWireRef<crate::wire::SelinuxContext<'de>> for SelinuxContext {
4719 #[inline]
4720 fn from_wire_ref(wire: &crate::wire::SelinuxContext<'de>) -> Self {
4721 match wire.raw.ordinal() {
4722 1 => Self::Data(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4723 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
4724 })),
4725
4726 2 => Self::UseExtendedAttributes(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4727 wire.raw.get().deref_unchecked::<crate::wire::EmptyStruct>()
4728 })),
4729
4730 ord => return Self::UnknownOrdinal_(ord as u64),
4731 }
4732 }
4733 }
4734
4735 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::SelinuxContext<'de>>
4736 for SelinuxContext
4737 {
4738 #[inline]
4739 fn from_wire_option(
4740 wire: crate::wire_optional::SelinuxContext<'de>,
4741 ) -> ::core::option::Option<Self> {
4742 if let Some(inner) = wire.into_option() {
4743 Some(::fidl_next::FromWire::from_wire(inner))
4744 } else {
4745 None
4746 }
4747 }
4748 }
4749
4750 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::SelinuxContext<'de>>
4751 for Box<SelinuxContext>
4752 {
4753 #[inline]
4754 fn from_wire_option(
4755 wire: crate::wire_optional::SelinuxContext<'de>,
4756 ) -> ::core::option::Option<Self> {
4757 <SelinuxContext as ::fidl_next::FromWireOption<
4758 crate::wire_optional::SelinuxContext<'de>,
4759 >>::from_wire_option(wire)
4760 .map(Box::new)
4761 }
4762 }
4763
4764 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::SelinuxContext<'de>>
4765 for Box<SelinuxContext>
4766 {
4767 #[inline]
4768 fn from_wire_option_ref(
4769 wire: &crate::wire_optional::SelinuxContext<'de>,
4770 ) -> ::core::option::Option<Self> {
4771 if let Some(inner) = wire.as_ref() {
4772 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
4773 } else {
4774 None
4775 }
4776 }
4777 }
4778
4779 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4780 pub struct MutableNodeAttributes {
4781 pub creation_time: ::core::option::Option<u64>,
4782
4783 pub modification_time: ::core::option::Option<u64>,
4784
4785 pub mode: ::core::option::Option<u32>,
4786
4787 pub uid: ::core::option::Option<u32>,
4788
4789 pub gid: ::core::option::Option<u32>,
4790
4791 pub rdev: ::core::option::Option<u64>,
4792
4793 pub access_time: ::core::option::Option<u64>,
4794
4795 pub casefold: ::core::option::Option<bool>,
4796
4797 pub selinux_context: ::core::option::Option<crate::natural::SelinuxContext>,
4798
4799 pub wrapping_key_id: ::core::option::Option<[u8; 16]>,
4800 }
4801
4802 impl MutableNodeAttributes {
4803 fn __max_ordinal(&self) -> usize {
4804 if self.wrapping_key_id.is_some() {
4805 return 10;
4806 }
4807
4808 if self.selinux_context.is_some() {
4809 return 9;
4810 }
4811
4812 if self.casefold.is_some() {
4813 return 8;
4814 }
4815
4816 if self.access_time.is_some() {
4817 return 7;
4818 }
4819
4820 if self.rdev.is_some() {
4821 return 6;
4822 }
4823
4824 if self.gid.is_some() {
4825 return 5;
4826 }
4827
4828 if self.uid.is_some() {
4829 return 4;
4830 }
4831
4832 if self.mode.is_some() {
4833 return 3;
4834 }
4835
4836 if self.modification_time.is_some() {
4837 return 2;
4838 }
4839
4840 if self.creation_time.is_some() {
4841 return 1;
4842 }
4843
4844 0
4845 }
4846 }
4847
4848 unsafe impl<___E> ::fidl_next::Encode<crate::wire::MutableNodeAttributes<'static>, ___E>
4849 for MutableNodeAttributes
4850 where
4851 ___E: ::fidl_next::Encoder + ?Sized,
4852 {
4853 #[inline]
4854 fn encode(
4855 mut self,
4856 encoder: &mut ___E,
4857 out: &mut ::core::mem::MaybeUninit<crate::wire::MutableNodeAttributes<'static>>,
4858 _: (),
4859 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4860 ::fidl_next::munge!(let crate::wire::MutableNodeAttributes { table } = out);
4861
4862 let max_ord = self.__max_ordinal();
4863
4864 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
4865 ::fidl_next::Wire::zero_padding(&mut out);
4866
4867 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
4868 ::fidl_next::wire::Envelope,
4869 >(encoder, max_ord);
4870
4871 for i in 1..=max_ord {
4872 match i {
4873 10 => {
4874 if let Some(value) = self.wrapping_key_id.take() {
4875 ::fidl_next::wire::Envelope::encode_value::<[u8; 16], ___E>(
4876 value,
4877 preallocated.encoder,
4878 &mut out,
4879 (),
4880 )?;
4881 } else {
4882 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4883 }
4884 }
4885
4886 9 => {
4887 if let Some(value) = self.selinux_context.take() {
4888 ::fidl_next::wire::Envelope::encode_value::<
4889 crate::wire::SelinuxContext<'static>,
4890 ___E,
4891 >(
4892 value, preallocated.encoder, &mut out, ()
4893 )?;
4894 } else {
4895 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4896 }
4897 }
4898
4899 8 => {
4900 if let Some(value) = self.casefold.take() {
4901 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
4902 value,
4903 preallocated.encoder,
4904 &mut out,
4905 (),
4906 )?;
4907 } else {
4908 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4909 }
4910 }
4911
4912 7 => {
4913 if let Some(value) = self.access_time.take() {
4914 ::fidl_next::wire::Envelope::encode_value::<
4915 ::fidl_next::wire::Uint64,
4916 ___E,
4917 >(
4918 value, preallocated.encoder, &mut out, ()
4919 )?;
4920 } else {
4921 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4922 }
4923 }
4924
4925 6 => {
4926 if let Some(value) = self.rdev.take() {
4927 ::fidl_next::wire::Envelope::encode_value::<
4928 ::fidl_next::wire::Uint64,
4929 ___E,
4930 >(
4931 value, preallocated.encoder, &mut out, ()
4932 )?;
4933 } else {
4934 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4935 }
4936 }
4937
4938 5 => {
4939 if let Some(value) = self.gid.take() {
4940 ::fidl_next::wire::Envelope::encode_value::<
4941 ::fidl_next::wire::Uint32,
4942 ___E,
4943 >(
4944 value, preallocated.encoder, &mut out, ()
4945 )?;
4946 } else {
4947 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4948 }
4949 }
4950
4951 4 => {
4952 if let Some(value) = self.uid.take() {
4953 ::fidl_next::wire::Envelope::encode_value::<
4954 ::fidl_next::wire::Uint32,
4955 ___E,
4956 >(
4957 value, preallocated.encoder, &mut out, ()
4958 )?;
4959 } else {
4960 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4961 }
4962 }
4963
4964 3 => {
4965 if let Some(value) = self.mode.take() {
4966 ::fidl_next::wire::Envelope::encode_value::<
4967 ::fidl_next::wire::Uint32,
4968 ___E,
4969 >(
4970 value, preallocated.encoder, &mut out, ()
4971 )?;
4972 } else {
4973 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4974 }
4975 }
4976
4977 2 => {
4978 if let Some(value) = self.modification_time.take() {
4979 ::fidl_next::wire::Envelope::encode_value::<
4980 ::fidl_next::wire::Uint64,
4981 ___E,
4982 >(
4983 value, preallocated.encoder, &mut out, ()
4984 )?;
4985 } else {
4986 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4987 }
4988 }
4989
4990 1 => {
4991 if let Some(value) = self.creation_time.take() {
4992 ::fidl_next::wire::Envelope::encode_value::<
4993 ::fidl_next::wire::Uint64,
4994 ___E,
4995 >(
4996 value, preallocated.encoder, &mut out, ()
4997 )?;
4998 } else {
4999 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5000 }
5001 }
5002
5003 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5004 }
5005 unsafe {
5006 preallocated.write_next(out.assume_init_ref());
5007 }
5008 }
5009
5010 ::fidl_next::wire::Table::encode_len(table, max_ord);
5011
5012 Ok(())
5013 }
5014 }
5015
5016 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::MutableNodeAttributes<'static>, ___E>
5017 for &'a MutableNodeAttributes
5018 where
5019 ___E: ::fidl_next::Encoder + ?Sized,
5020 {
5021 #[inline]
5022 fn encode(
5023 self,
5024 encoder: &mut ___E,
5025 out: &mut ::core::mem::MaybeUninit<crate::wire::MutableNodeAttributes<'static>>,
5026 _: (),
5027 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5028 ::fidl_next::munge!(let crate::wire::MutableNodeAttributes { table } = out);
5029
5030 let max_ord = self.__max_ordinal();
5031
5032 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5033 ::fidl_next::Wire::zero_padding(&mut out);
5034
5035 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5036 ::fidl_next::wire::Envelope,
5037 >(encoder, max_ord);
5038
5039 for i in 1..=max_ord {
5040 match i {
5041 10 => {
5042 if let Some(value) = &self.wrapping_key_id {
5043 ::fidl_next::wire::Envelope::encode_value::<[u8; 16], ___E>(
5044 value,
5045 preallocated.encoder,
5046 &mut out,
5047 (),
5048 )?;
5049 } else {
5050 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5051 }
5052 }
5053
5054 9 => {
5055 if let Some(value) = &self.selinux_context {
5056 ::fidl_next::wire::Envelope::encode_value::<
5057 crate::wire::SelinuxContext<'static>,
5058 ___E,
5059 >(
5060 value, preallocated.encoder, &mut out, ()
5061 )?;
5062 } else {
5063 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5064 }
5065 }
5066
5067 8 => {
5068 if let Some(value) = &self.casefold {
5069 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5070 value,
5071 preallocated.encoder,
5072 &mut out,
5073 (),
5074 )?;
5075 } else {
5076 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5077 }
5078 }
5079
5080 7 => {
5081 if let Some(value) = &self.access_time {
5082 ::fidl_next::wire::Envelope::encode_value::<
5083 ::fidl_next::wire::Uint64,
5084 ___E,
5085 >(
5086 value, preallocated.encoder, &mut out, ()
5087 )?;
5088 } else {
5089 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5090 }
5091 }
5092
5093 6 => {
5094 if let Some(value) = &self.rdev {
5095 ::fidl_next::wire::Envelope::encode_value::<
5096 ::fidl_next::wire::Uint64,
5097 ___E,
5098 >(
5099 value, preallocated.encoder, &mut out, ()
5100 )?;
5101 } else {
5102 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5103 }
5104 }
5105
5106 5 => {
5107 if let Some(value) = &self.gid {
5108 ::fidl_next::wire::Envelope::encode_value::<
5109 ::fidl_next::wire::Uint32,
5110 ___E,
5111 >(
5112 value, preallocated.encoder, &mut out, ()
5113 )?;
5114 } else {
5115 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5116 }
5117 }
5118
5119 4 => {
5120 if let Some(value) = &self.uid {
5121 ::fidl_next::wire::Envelope::encode_value::<
5122 ::fidl_next::wire::Uint32,
5123 ___E,
5124 >(
5125 value, preallocated.encoder, &mut out, ()
5126 )?;
5127 } else {
5128 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5129 }
5130 }
5131
5132 3 => {
5133 if let Some(value) = &self.mode {
5134 ::fidl_next::wire::Envelope::encode_value::<
5135 ::fidl_next::wire::Uint32,
5136 ___E,
5137 >(
5138 value, preallocated.encoder, &mut out, ()
5139 )?;
5140 } else {
5141 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5142 }
5143 }
5144
5145 2 => {
5146 if let Some(value) = &self.modification_time {
5147 ::fidl_next::wire::Envelope::encode_value::<
5148 ::fidl_next::wire::Uint64,
5149 ___E,
5150 >(
5151 value, preallocated.encoder, &mut out, ()
5152 )?;
5153 } else {
5154 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5155 }
5156 }
5157
5158 1 => {
5159 if let Some(value) = &self.creation_time {
5160 ::fidl_next::wire::Envelope::encode_value::<
5161 ::fidl_next::wire::Uint64,
5162 ___E,
5163 >(
5164 value, preallocated.encoder, &mut out, ()
5165 )?;
5166 } else {
5167 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5168 }
5169 }
5170
5171 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5172 }
5173 unsafe {
5174 preallocated.write_next(out.assume_init_ref());
5175 }
5176 }
5177
5178 ::fidl_next::wire::Table::encode_len(table, max_ord);
5179
5180 Ok(())
5181 }
5182 }
5183
5184 impl<'de> ::fidl_next::FromWire<crate::wire::MutableNodeAttributes<'de>> for MutableNodeAttributes {
5185 #[inline]
5186 fn from_wire(wire_: crate::wire::MutableNodeAttributes<'de>) -> Self {
5187 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
5188
5189 let creation_time = wire_.table.get(1);
5190
5191 let modification_time = wire_.table.get(2);
5192
5193 let mode = wire_.table.get(3);
5194
5195 let uid = wire_.table.get(4);
5196
5197 let gid = wire_.table.get(5);
5198
5199 let rdev = wire_.table.get(6);
5200
5201 let access_time = wire_.table.get(7);
5202
5203 let casefold = wire_.table.get(8);
5204
5205 let selinux_context = wire_.table.get(9);
5206
5207 let wrapping_key_id = wire_.table.get(10);
5208
5209 Self {
5210 creation_time: creation_time.map(|envelope| {
5211 ::fidl_next::FromWire::from_wire(unsafe {
5212 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
5213 })
5214 }),
5215
5216 modification_time: modification_time.map(|envelope| {
5217 ::fidl_next::FromWire::from_wire(unsafe {
5218 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
5219 })
5220 }),
5221
5222 mode: mode.map(|envelope| {
5223 ::fidl_next::FromWire::from_wire(unsafe {
5224 envelope.read_unchecked::<::fidl_next::wire::Uint32>()
5225 })
5226 }),
5227
5228 uid: uid.map(|envelope| {
5229 ::fidl_next::FromWire::from_wire(unsafe {
5230 envelope.read_unchecked::<::fidl_next::wire::Uint32>()
5231 })
5232 }),
5233
5234 gid: gid.map(|envelope| {
5235 ::fidl_next::FromWire::from_wire(unsafe {
5236 envelope.read_unchecked::<::fidl_next::wire::Uint32>()
5237 })
5238 }),
5239
5240 rdev: rdev.map(|envelope| {
5241 ::fidl_next::FromWire::from_wire(unsafe {
5242 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
5243 })
5244 }),
5245
5246 access_time: access_time.map(|envelope| {
5247 ::fidl_next::FromWire::from_wire(unsafe {
5248 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
5249 })
5250 }),
5251
5252 casefold: casefold.map(|envelope| {
5253 ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<bool>() })
5254 }),
5255
5256 selinux_context: selinux_context.map(|envelope| {
5257 ::fidl_next::FromWire::from_wire(unsafe {
5258 envelope.read_unchecked::<crate::wire::SelinuxContext<'de>>()
5259 })
5260 }),
5261
5262 wrapping_key_id: wrapping_key_id.map(|envelope| {
5263 ::fidl_next::FromWire::from_wire(unsafe {
5264 envelope.read_unchecked::<[u8; 16]>()
5265 })
5266 }),
5267 }
5268 }
5269 }
5270
5271 impl<'de> ::fidl_next::FromWireRef<crate::wire::MutableNodeAttributes<'de>>
5272 for MutableNodeAttributes
5273 {
5274 #[inline]
5275 fn from_wire_ref(wire: &crate::wire::MutableNodeAttributes<'de>) -> Self {
5276 Self {
5277 creation_time: wire.table.get(1).map(|envelope| {
5278 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5279 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
5280 })
5281 }),
5282
5283 modification_time: wire.table.get(2).map(|envelope| {
5284 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5285 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
5286 })
5287 }),
5288
5289 mode: wire.table.get(3).map(|envelope| {
5290 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5291 envelope.deref_unchecked::<::fidl_next::wire::Uint32>()
5292 })
5293 }),
5294
5295 uid: wire.table.get(4).map(|envelope| {
5296 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5297 envelope.deref_unchecked::<::fidl_next::wire::Uint32>()
5298 })
5299 }),
5300
5301 gid: wire.table.get(5).map(|envelope| {
5302 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5303 envelope.deref_unchecked::<::fidl_next::wire::Uint32>()
5304 })
5305 }),
5306
5307 rdev: wire.table.get(6).map(|envelope| {
5308 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5309 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
5310 })
5311 }),
5312
5313 access_time: wire.table.get(7).map(|envelope| {
5314 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5315 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
5316 })
5317 }),
5318
5319 casefold: wire.table.get(8).map(|envelope| {
5320 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5321 envelope.deref_unchecked::<bool>()
5322 })
5323 }),
5324
5325 selinux_context: wire.table.get(9).map(|envelope| {
5326 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5327 envelope.deref_unchecked::<crate::wire::SelinuxContext<'de>>()
5328 })
5329 }),
5330
5331 wrapping_key_id: wire.table.get(10).map(|envelope| {
5332 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5333 envelope.deref_unchecked::<[u8; 16]>()
5334 })
5335 }),
5336 }
5337 }
5338 }
5339
5340 ::fidl_next::bitflags::bitflags! {
5341 #[doc = " A node may have multiple supported representations when opening, even though\n it may have a fixed underlying identity.\n\n Today, a file is accessed via the [`File`] protocol, and sends a\n [`Representation.FileInfo`] when opened with `GET_REPRESENTATION`. However,\n in the future we might introduce a more sophisticated `FileV2` protocol, or\n a more efficient `SuperFastFile` backed by a specialized kernel object. New\n clients can request the more advanced representations by specifying the\n corresponding bits in [`NodeProtocolKinds`], whereas existing clients would\n continue to talk to the node via the old representation.\n\n [`NodeProtocolKinds`] enables forward-compatibility through a form of protocol\n negotiation.\n\n The elements have one-to-one correspondence with the members of\n [`Representation`].\n"]#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct NodeProtocolKinds: u64 {
5342 #[doc = " The connector representation of a node.\n\n The connection will speak either [`Node`] or the target protocol,\n depending on the flags used during opening.\n"]const CONNECTOR = 1;
5343 #[doc = " The directory representation of a node.\n\n The connection will speak the [`Directory`] protocol.\n"]const DIRECTORY = 2;
5344 #[doc = " The file representation of a node.\n\n The connection will speak the [`File`] protocol.\n"]const FILE = 4;
5345 #[doc = " The symlink representation of a node.\n\n The connection will speak the [`Symlink`] protocol.\n"]const SYMLINK = 8;
5346 const _ = !0;
5347 }
5348 }
5349
5350 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeProtocolKinds, ___E> for NodeProtocolKinds
5351 where
5352 ___E: ?Sized,
5353 {
5354 #[inline]
5355 fn encode(
5356 self,
5357 encoder: &mut ___E,
5358 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeProtocolKinds>,
5359 _: (),
5360 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5361 ::fidl_next::Encode::encode(&self, encoder, out, ())
5362 }
5363 }
5364
5365 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeProtocolKinds, ___E>
5366 for &'a NodeProtocolKinds
5367 where
5368 ___E: ?Sized,
5369 {
5370 #[inline]
5371 fn encode(
5372 self,
5373 _: &mut ___E,
5374 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeProtocolKinds>,
5375 _: (),
5376 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5377 ::fidl_next::munge!(let crate::wire::NodeProtocolKinds { value } = out);
5378
5379 let _ = value.write(::fidl_next::wire::Uint64::from(self.bits()));
5380 Ok(())
5381 }
5382 }
5383
5384 impl ::core::convert::From<crate::wire::NodeProtocolKinds> for NodeProtocolKinds {
5385 fn from(wire: crate::wire::NodeProtocolKinds) -> Self {
5386 Self::from_bits_retain(u64::from(wire.value))
5387 }
5388 }
5389
5390 impl ::fidl_next::FromWire<crate::wire::NodeProtocolKinds> for NodeProtocolKinds {
5391 #[inline]
5392 fn from_wire(wire: crate::wire::NodeProtocolKinds) -> Self {
5393 Self::from(wire)
5394 }
5395 }
5396
5397 impl ::fidl_next::FromWireRef<crate::wire::NodeProtocolKinds> for NodeProtocolKinds {
5398 #[inline]
5399 fn from_wire_ref(wire: &crate::wire::NodeProtocolKinds) -> Self {
5400 Self::from(*wire)
5401 }
5402 }
5403
5404 #[doc = " Denotes which hash algorithm is used to build the merkle tree for\n fsverity-enabled files.\n"]
5405 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5406 #[repr(u8)]
5407 pub enum HashAlgorithm {
5408 Sha256 = 1,
5409 Sha512 = 2,
5410 UnknownOrdinal_(u8) = 3,
5411 }
5412 impl ::std::convert::From<u8> for HashAlgorithm {
5413 fn from(value: u8) -> Self {
5414 match value {
5415 1 => Self::Sha256,
5416 2 => Self::Sha512,
5417
5418 _ => Self::UnknownOrdinal_(value),
5419 }
5420 }
5421 }
5422
5423 unsafe impl<___E> ::fidl_next::Encode<crate::wire::HashAlgorithm, ___E> for HashAlgorithm
5424 where
5425 ___E: ?Sized,
5426 {
5427 #[inline]
5428 fn encode(
5429 self,
5430 encoder: &mut ___E,
5431 out: &mut ::core::mem::MaybeUninit<crate::wire::HashAlgorithm>,
5432 _: (),
5433 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5434 ::fidl_next::Encode::encode(&self, encoder, out, ())
5435 }
5436 }
5437
5438 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::HashAlgorithm, ___E> for &'a HashAlgorithm
5439 where
5440 ___E: ?Sized,
5441 {
5442 #[inline]
5443 fn encode(
5444 self,
5445 encoder: &mut ___E,
5446 out: &mut ::core::mem::MaybeUninit<crate::wire::HashAlgorithm>,
5447 _: (),
5448 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5449 ::fidl_next::munge!(let crate::wire::HashAlgorithm { value } = out);
5450 let _ = value.write(u8::from(match *self {
5451 HashAlgorithm::Sha256 => 1,
5452
5453 HashAlgorithm::Sha512 => 2,
5454
5455 HashAlgorithm::UnknownOrdinal_(value) => value,
5456 }));
5457
5458 Ok(())
5459 }
5460 }
5461
5462 impl ::core::convert::From<crate::wire::HashAlgorithm> for HashAlgorithm {
5463 fn from(wire: crate::wire::HashAlgorithm) -> Self {
5464 match u8::from(wire.value) {
5465 1 => Self::Sha256,
5466
5467 2 => Self::Sha512,
5468
5469 value => Self::UnknownOrdinal_(value),
5470 }
5471 }
5472 }
5473
5474 impl ::fidl_next::FromWire<crate::wire::HashAlgorithm> for HashAlgorithm {
5475 #[inline]
5476 fn from_wire(wire: crate::wire::HashAlgorithm) -> Self {
5477 Self::from(wire)
5478 }
5479 }
5480
5481 impl ::fidl_next::FromWireRef<crate::wire::HashAlgorithm> for HashAlgorithm {
5482 #[inline]
5483 fn from_wire_ref(wire: &crate::wire::HashAlgorithm) -> Self {
5484 Self::from(*wire)
5485 }
5486 }
5487
5488 #[doc = " Set of options used to enable verity on a file.\n"]
5489 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5490 pub struct VerificationOptions {
5491 pub hash_algorithm: ::core::option::Option<crate::natural::HashAlgorithm>,
5492
5493 pub salt: ::core::option::Option<::std::vec::Vec<u8>>,
5494 }
5495
5496 impl VerificationOptions {
5497 fn __max_ordinal(&self) -> usize {
5498 if self.salt.is_some() {
5499 return 2;
5500 }
5501
5502 if self.hash_algorithm.is_some() {
5503 return 1;
5504 }
5505
5506 0
5507 }
5508 }
5509
5510 unsafe impl<___E> ::fidl_next::Encode<crate::wire::VerificationOptions<'static>, ___E>
5511 for VerificationOptions
5512 where
5513 ___E: ::fidl_next::Encoder + ?Sized,
5514 {
5515 #[inline]
5516 fn encode(
5517 mut self,
5518 encoder: &mut ___E,
5519 out: &mut ::core::mem::MaybeUninit<crate::wire::VerificationOptions<'static>>,
5520 _: (),
5521 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5522 ::fidl_next::munge!(let crate::wire::VerificationOptions { table } = out);
5523
5524 let max_ord = self.__max_ordinal();
5525
5526 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5527 ::fidl_next::Wire::zero_padding(&mut out);
5528
5529 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5530 ::fidl_next::wire::Envelope,
5531 >(encoder, max_ord);
5532
5533 for i in 1..=max_ord {
5534 match i {
5535 2 => {
5536 if let Some(value) = self.salt.take() {
5537 ::fidl_next::wire::Envelope::encode_value::<
5538 ::fidl_next::wire::Vector<'static, u8>,
5539 ___E,
5540 >(
5541 value, preallocated.encoder, &mut out, (32, ())
5542 )?;
5543 } else {
5544 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5545 }
5546 }
5547
5548 1 => {
5549 if let Some(value) = self.hash_algorithm.take() {
5550 ::fidl_next::wire::Envelope::encode_value::<
5551 crate::wire::HashAlgorithm,
5552 ___E,
5553 >(
5554 value, preallocated.encoder, &mut out, ()
5555 )?;
5556 } else {
5557 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5558 }
5559 }
5560
5561 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5562 }
5563 unsafe {
5564 preallocated.write_next(out.assume_init_ref());
5565 }
5566 }
5567
5568 ::fidl_next::wire::Table::encode_len(table, max_ord);
5569
5570 Ok(())
5571 }
5572 }
5573
5574 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::VerificationOptions<'static>, ___E>
5575 for &'a VerificationOptions
5576 where
5577 ___E: ::fidl_next::Encoder + ?Sized,
5578 {
5579 #[inline]
5580 fn encode(
5581 self,
5582 encoder: &mut ___E,
5583 out: &mut ::core::mem::MaybeUninit<crate::wire::VerificationOptions<'static>>,
5584 _: (),
5585 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5586 ::fidl_next::munge!(let crate::wire::VerificationOptions { table } = out);
5587
5588 let max_ord = self.__max_ordinal();
5589
5590 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5591 ::fidl_next::Wire::zero_padding(&mut out);
5592
5593 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5594 ::fidl_next::wire::Envelope,
5595 >(encoder, max_ord);
5596
5597 for i in 1..=max_ord {
5598 match i {
5599 2 => {
5600 if let Some(value) = &self.salt {
5601 ::fidl_next::wire::Envelope::encode_value::<
5602 ::fidl_next::wire::Vector<'static, u8>,
5603 ___E,
5604 >(
5605 value, preallocated.encoder, &mut out, (32, ())
5606 )?;
5607 } else {
5608 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5609 }
5610 }
5611
5612 1 => {
5613 if let Some(value) = &self.hash_algorithm {
5614 ::fidl_next::wire::Envelope::encode_value::<
5615 crate::wire::HashAlgorithm,
5616 ___E,
5617 >(
5618 value, preallocated.encoder, &mut out, ()
5619 )?;
5620 } else {
5621 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5622 }
5623 }
5624
5625 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5626 }
5627 unsafe {
5628 preallocated.write_next(out.assume_init_ref());
5629 }
5630 }
5631
5632 ::fidl_next::wire::Table::encode_len(table, max_ord);
5633
5634 Ok(())
5635 }
5636 }
5637
5638 impl<'de> ::fidl_next::FromWire<crate::wire::VerificationOptions<'de>> for VerificationOptions {
5639 #[inline]
5640 fn from_wire(wire_: crate::wire::VerificationOptions<'de>) -> Self {
5641 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
5642
5643 let hash_algorithm = wire_.table.get(1);
5644
5645 let salt = wire_.table.get(2);
5646
5647 Self {
5648 hash_algorithm: hash_algorithm.map(|envelope| {
5649 ::fidl_next::FromWire::from_wire(unsafe {
5650 envelope.read_unchecked::<crate::wire::HashAlgorithm>()
5651 })
5652 }),
5653
5654 salt: salt.map(|envelope| {
5655 ::fidl_next::FromWire::from_wire(unsafe {
5656 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
5657 })
5658 }),
5659 }
5660 }
5661 }
5662
5663 impl<'de> ::fidl_next::FromWireRef<crate::wire::VerificationOptions<'de>> for VerificationOptions {
5664 #[inline]
5665 fn from_wire_ref(wire: &crate::wire::VerificationOptions<'de>) -> Self {
5666 Self {
5667 hash_algorithm: wire.table.get(1).map(|envelope| {
5668 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5669 envelope.deref_unchecked::<crate::wire::HashAlgorithm>()
5670 })
5671 }),
5672
5673 salt: wire.table.get(2).map(|envelope| {
5674 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5675 envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
5676 })
5677 }),
5678 }
5679 }
5680 }
5681
5682 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5683 pub struct ImmutableNodeAttributes {
5684 pub protocols: ::core::option::Option<crate::natural::NodeProtocolKinds>,
5685
5686 pub abilities: ::core::option::Option<crate::natural::Operations>,
5687
5688 pub content_size: ::core::option::Option<u64>,
5689
5690 pub storage_size: ::core::option::Option<u64>,
5691
5692 pub link_count: ::core::option::Option<u64>,
5693
5694 pub id: ::core::option::Option<u64>,
5695
5696 pub change_time: ::core::option::Option<u64>,
5697
5698 pub options: ::core::option::Option<crate::natural::VerificationOptions>,
5699
5700 pub root_hash: ::core::option::Option<::std::vec::Vec<u8>>,
5701
5702 pub verity_enabled: ::core::option::Option<bool>,
5703 }
5704
5705 impl ImmutableNodeAttributes {
5706 fn __max_ordinal(&self) -> usize {
5707 if self.verity_enabled.is_some() {
5708 return 10;
5709 }
5710
5711 if self.root_hash.is_some() {
5712 return 9;
5713 }
5714
5715 if self.options.is_some() {
5716 return 8;
5717 }
5718
5719 if self.change_time.is_some() {
5720 return 7;
5721 }
5722
5723 if self.id.is_some() {
5724 return 6;
5725 }
5726
5727 if self.link_count.is_some() {
5728 return 5;
5729 }
5730
5731 if self.storage_size.is_some() {
5732 return 4;
5733 }
5734
5735 if self.content_size.is_some() {
5736 return 3;
5737 }
5738
5739 if self.abilities.is_some() {
5740 return 2;
5741 }
5742
5743 if self.protocols.is_some() {
5744 return 1;
5745 }
5746
5747 0
5748 }
5749 }
5750
5751 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ImmutableNodeAttributes<'static>, ___E>
5752 for ImmutableNodeAttributes
5753 where
5754 ___E: ::fidl_next::Encoder + ?Sized,
5755 {
5756 #[inline]
5757 fn encode(
5758 mut self,
5759 encoder: &mut ___E,
5760 out: &mut ::core::mem::MaybeUninit<crate::wire::ImmutableNodeAttributes<'static>>,
5761 _: (),
5762 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5763 ::fidl_next::munge!(let crate::wire::ImmutableNodeAttributes { table } = out);
5764
5765 let max_ord = self.__max_ordinal();
5766
5767 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5768 ::fidl_next::Wire::zero_padding(&mut out);
5769
5770 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5771 ::fidl_next::wire::Envelope,
5772 >(encoder, max_ord);
5773
5774 for i in 1..=max_ord {
5775 match i {
5776 10 => {
5777 if let Some(value) = self.verity_enabled.take() {
5778 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5779 value,
5780 preallocated.encoder,
5781 &mut out,
5782 (),
5783 )?;
5784 } else {
5785 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5786 }
5787 }
5788
5789 9 => {
5790 if let Some(value) = self.root_hash.take() {
5791 ::fidl_next::wire::Envelope::encode_value::<
5792 ::fidl_next::wire::Vector<'static, u8>,
5793 ___E,
5794 >(
5795 value, preallocated.encoder, &mut out, (64, ())
5796 )?;
5797 } else {
5798 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5799 }
5800 }
5801
5802 8 => {
5803 if let Some(value) = self.options.take() {
5804 ::fidl_next::wire::Envelope::encode_value::<
5805 crate::wire::VerificationOptions<'static>,
5806 ___E,
5807 >(
5808 value, preallocated.encoder, &mut out, ()
5809 )?;
5810 } else {
5811 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5812 }
5813 }
5814
5815 7 => {
5816 if let Some(value) = self.change_time.take() {
5817 ::fidl_next::wire::Envelope::encode_value::<
5818 ::fidl_next::wire::Uint64,
5819 ___E,
5820 >(
5821 value, preallocated.encoder, &mut out, ()
5822 )?;
5823 } else {
5824 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5825 }
5826 }
5827
5828 6 => {
5829 if let Some(value) = self.id.take() {
5830 ::fidl_next::wire::Envelope::encode_value::<
5831 ::fidl_next::wire::Uint64,
5832 ___E,
5833 >(
5834 value, preallocated.encoder, &mut out, ()
5835 )?;
5836 } else {
5837 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5838 }
5839 }
5840
5841 5 => {
5842 if let Some(value) = self.link_count.take() {
5843 ::fidl_next::wire::Envelope::encode_value::<
5844 ::fidl_next::wire::Uint64,
5845 ___E,
5846 >(
5847 value, preallocated.encoder, &mut out, ()
5848 )?;
5849 } else {
5850 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5851 }
5852 }
5853
5854 4 => {
5855 if let Some(value) = self.storage_size.take() {
5856 ::fidl_next::wire::Envelope::encode_value::<
5857 ::fidl_next::wire::Uint64,
5858 ___E,
5859 >(
5860 value, preallocated.encoder, &mut out, ()
5861 )?;
5862 } else {
5863 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5864 }
5865 }
5866
5867 3 => {
5868 if let Some(value) = self.content_size.take() {
5869 ::fidl_next::wire::Envelope::encode_value::<
5870 ::fidl_next::wire::Uint64,
5871 ___E,
5872 >(
5873 value, preallocated.encoder, &mut out, ()
5874 )?;
5875 } else {
5876 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5877 }
5878 }
5879
5880 2 => {
5881 if let Some(value) = self.abilities.take() {
5882 ::fidl_next::wire::Envelope::encode_value::<
5883 crate::wire::Operations,
5884 ___E,
5885 >(
5886 value, preallocated.encoder, &mut out, ()
5887 )?;
5888 } else {
5889 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5890 }
5891 }
5892
5893 1 => {
5894 if let Some(value) = self.protocols.take() {
5895 ::fidl_next::wire::Envelope::encode_value::<
5896 crate::wire::NodeProtocolKinds,
5897 ___E,
5898 >(
5899 value, preallocated.encoder, &mut out, ()
5900 )?;
5901 } else {
5902 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5903 }
5904 }
5905
5906 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5907 }
5908 unsafe {
5909 preallocated.write_next(out.assume_init_ref());
5910 }
5911 }
5912
5913 ::fidl_next::wire::Table::encode_len(table, max_ord);
5914
5915 Ok(())
5916 }
5917 }
5918
5919 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ImmutableNodeAttributes<'static>, ___E>
5920 for &'a ImmutableNodeAttributes
5921 where
5922 ___E: ::fidl_next::Encoder + ?Sized,
5923 {
5924 #[inline]
5925 fn encode(
5926 self,
5927 encoder: &mut ___E,
5928 out: &mut ::core::mem::MaybeUninit<crate::wire::ImmutableNodeAttributes<'static>>,
5929 _: (),
5930 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5931 ::fidl_next::munge!(let crate::wire::ImmutableNodeAttributes { table } = out);
5932
5933 let max_ord = self.__max_ordinal();
5934
5935 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5936 ::fidl_next::Wire::zero_padding(&mut out);
5937
5938 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5939 ::fidl_next::wire::Envelope,
5940 >(encoder, max_ord);
5941
5942 for i in 1..=max_ord {
5943 match i {
5944 10 => {
5945 if let Some(value) = &self.verity_enabled {
5946 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5947 value,
5948 preallocated.encoder,
5949 &mut out,
5950 (),
5951 )?;
5952 } else {
5953 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5954 }
5955 }
5956
5957 9 => {
5958 if let Some(value) = &self.root_hash {
5959 ::fidl_next::wire::Envelope::encode_value::<
5960 ::fidl_next::wire::Vector<'static, u8>,
5961 ___E,
5962 >(
5963 value, preallocated.encoder, &mut out, (64, ())
5964 )?;
5965 } else {
5966 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5967 }
5968 }
5969
5970 8 => {
5971 if let Some(value) = &self.options {
5972 ::fidl_next::wire::Envelope::encode_value::<
5973 crate::wire::VerificationOptions<'static>,
5974 ___E,
5975 >(
5976 value, preallocated.encoder, &mut out, ()
5977 )?;
5978 } else {
5979 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5980 }
5981 }
5982
5983 7 => {
5984 if let Some(value) = &self.change_time {
5985 ::fidl_next::wire::Envelope::encode_value::<
5986 ::fidl_next::wire::Uint64,
5987 ___E,
5988 >(
5989 value, preallocated.encoder, &mut out, ()
5990 )?;
5991 } else {
5992 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5993 }
5994 }
5995
5996 6 => {
5997 if let Some(value) = &self.id {
5998 ::fidl_next::wire::Envelope::encode_value::<
5999 ::fidl_next::wire::Uint64,
6000 ___E,
6001 >(
6002 value, preallocated.encoder, &mut out, ()
6003 )?;
6004 } else {
6005 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6006 }
6007 }
6008
6009 5 => {
6010 if let Some(value) = &self.link_count {
6011 ::fidl_next::wire::Envelope::encode_value::<
6012 ::fidl_next::wire::Uint64,
6013 ___E,
6014 >(
6015 value, preallocated.encoder, &mut out, ()
6016 )?;
6017 } else {
6018 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6019 }
6020 }
6021
6022 4 => {
6023 if let Some(value) = &self.storage_size {
6024 ::fidl_next::wire::Envelope::encode_value::<
6025 ::fidl_next::wire::Uint64,
6026 ___E,
6027 >(
6028 value, preallocated.encoder, &mut out, ()
6029 )?;
6030 } else {
6031 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6032 }
6033 }
6034
6035 3 => {
6036 if let Some(value) = &self.content_size {
6037 ::fidl_next::wire::Envelope::encode_value::<
6038 ::fidl_next::wire::Uint64,
6039 ___E,
6040 >(
6041 value, preallocated.encoder, &mut out, ()
6042 )?;
6043 } else {
6044 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6045 }
6046 }
6047
6048 2 => {
6049 if let Some(value) = &self.abilities {
6050 ::fidl_next::wire::Envelope::encode_value::<
6051 crate::wire::Operations,
6052 ___E,
6053 >(
6054 value, preallocated.encoder, &mut out, ()
6055 )?;
6056 } else {
6057 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6058 }
6059 }
6060
6061 1 => {
6062 if let Some(value) = &self.protocols {
6063 ::fidl_next::wire::Envelope::encode_value::<
6064 crate::wire::NodeProtocolKinds,
6065 ___E,
6066 >(
6067 value, preallocated.encoder, &mut out, ()
6068 )?;
6069 } else {
6070 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6071 }
6072 }
6073
6074 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6075 }
6076 unsafe {
6077 preallocated.write_next(out.assume_init_ref());
6078 }
6079 }
6080
6081 ::fidl_next::wire::Table::encode_len(table, max_ord);
6082
6083 Ok(())
6084 }
6085 }
6086
6087 impl<'de> ::fidl_next::FromWire<crate::wire::ImmutableNodeAttributes<'de>>
6088 for ImmutableNodeAttributes
6089 {
6090 #[inline]
6091 fn from_wire(wire_: crate::wire::ImmutableNodeAttributes<'de>) -> Self {
6092 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
6093
6094 let protocols = wire_.table.get(1);
6095
6096 let abilities = wire_.table.get(2);
6097
6098 let content_size = wire_.table.get(3);
6099
6100 let storage_size = wire_.table.get(4);
6101
6102 let link_count = wire_.table.get(5);
6103
6104 let id = wire_.table.get(6);
6105
6106 let change_time = wire_.table.get(7);
6107
6108 let options = wire_.table.get(8);
6109
6110 let root_hash = wire_.table.get(9);
6111
6112 let verity_enabled = wire_.table.get(10);
6113
6114 Self {
6115 protocols: protocols.map(|envelope| {
6116 ::fidl_next::FromWire::from_wire(unsafe {
6117 envelope.read_unchecked::<crate::wire::NodeProtocolKinds>()
6118 })
6119 }),
6120
6121 abilities: abilities.map(|envelope| {
6122 ::fidl_next::FromWire::from_wire(unsafe {
6123 envelope.read_unchecked::<crate::wire::Operations>()
6124 })
6125 }),
6126
6127 content_size: content_size.map(|envelope| {
6128 ::fidl_next::FromWire::from_wire(unsafe {
6129 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
6130 })
6131 }),
6132
6133 storage_size: storage_size.map(|envelope| {
6134 ::fidl_next::FromWire::from_wire(unsafe {
6135 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
6136 })
6137 }),
6138
6139 link_count: link_count.map(|envelope| {
6140 ::fidl_next::FromWire::from_wire(unsafe {
6141 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
6142 })
6143 }),
6144
6145 id: id.map(|envelope| {
6146 ::fidl_next::FromWire::from_wire(unsafe {
6147 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
6148 })
6149 }),
6150
6151 change_time: change_time.map(|envelope| {
6152 ::fidl_next::FromWire::from_wire(unsafe {
6153 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
6154 })
6155 }),
6156
6157 options: options.map(|envelope| {
6158 ::fidl_next::FromWire::from_wire(unsafe {
6159 envelope.read_unchecked::<crate::wire::VerificationOptions<'de>>()
6160 })
6161 }),
6162
6163 root_hash: root_hash.map(|envelope| {
6164 ::fidl_next::FromWire::from_wire(unsafe {
6165 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
6166 })
6167 }),
6168
6169 verity_enabled: verity_enabled.map(|envelope| {
6170 ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<bool>() })
6171 }),
6172 }
6173 }
6174 }
6175
6176 impl<'de> ::fidl_next::FromWireRef<crate::wire::ImmutableNodeAttributes<'de>>
6177 for ImmutableNodeAttributes
6178 {
6179 #[inline]
6180 fn from_wire_ref(wire: &crate::wire::ImmutableNodeAttributes<'de>) -> Self {
6181 Self {
6182 protocols: wire.table.get(1).map(|envelope| {
6183 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6184 envelope.deref_unchecked::<crate::wire::NodeProtocolKinds>()
6185 })
6186 }),
6187
6188 abilities: wire.table.get(2).map(|envelope| {
6189 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6190 envelope.deref_unchecked::<crate::wire::Operations>()
6191 })
6192 }),
6193
6194 content_size: wire.table.get(3).map(|envelope| {
6195 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6196 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
6197 })
6198 }),
6199
6200 storage_size: wire.table.get(4).map(|envelope| {
6201 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6202 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
6203 })
6204 }),
6205
6206 link_count: wire.table.get(5).map(|envelope| {
6207 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6208 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
6209 })
6210 }),
6211
6212 id: wire.table.get(6).map(|envelope| {
6213 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6214 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
6215 })
6216 }),
6217
6218 change_time: wire.table.get(7).map(|envelope| {
6219 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6220 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
6221 })
6222 }),
6223
6224 options: wire.table.get(8).map(|envelope| {
6225 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6226 envelope.deref_unchecked::<crate::wire::VerificationOptions<'de>>()
6227 })
6228 }),
6229
6230 root_hash: wire.table.get(9).map(|envelope| {
6231 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6232 envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
6233 })
6234 }),
6235
6236 verity_enabled: wire.table.get(10).map(|envelope| {
6237 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6238 envelope.deref_unchecked::<bool>()
6239 })
6240 }),
6241 }
6242 }
6243 }
6244
6245 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6246 pub struct NodeAttributes2 {
6247 pub mutable_attributes: crate::natural::MutableNodeAttributes,
6248
6249 pub immutable_attributes: crate::natural::ImmutableNodeAttributes,
6250 }
6251
6252 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeAttributes2<'static>, ___E>
6253 for NodeAttributes2
6254 where
6255 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6256 ___E: ::fidl_next::Encoder,
6257 {
6258 #[inline]
6259 fn encode(
6260 self,
6261 encoder_: &mut ___E,
6262 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributes2<'static>>,
6263 _: (),
6264 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6265 ::fidl_next::munge! {
6266 let crate::wire::NodeAttributes2 {
6267 mutable_attributes,
6268 immutable_attributes,
6269
6270 } = out_;
6271 }
6272
6273 ::fidl_next::Encode::encode(self.mutable_attributes, encoder_, mutable_attributes, ())?;
6274
6275 let mut _field =
6276 unsafe { ::fidl_next::Slot::new_unchecked(mutable_attributes.as_mut_ptr()) };
6277
6278 ::fidl_next::Encode::encode(
6279 self.immutable_attributes,
6280 encoder_,
6281 immutable_attributes,
6282 (),
6283 )?;
6284
6285 let mut _field =
6286 unsafe { ::fidl_next::Slot::new_unchecked(immutable_attributes.as_mut_ptr()) };
6287
6288 Ok(())
6289 }
6290 }
6291
6292 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeAttributes2<'static>, ___E>
6293 for &'a NodeAttributes2
6294 where
6295 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6296 ___E: ::fidl_next::Encoder,
6297 {
6298 #[inline]
6299 fn encode(
6300 self,
6301 encoder_: &mut ___E,
6302 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributes2<'static>>,
6303 _: (),
6304 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6305 ::fidl_next::munge! {
6306 let crate::wire::NodeAttributes2 {
6307 mutable_attributes,
6308 immutable_attributes,
6309
6310 } = out_;
6311 }
6312
6313 ::fidl_next::Encode::encode(
6314 &self.mutable_attributes,
6315 encoder_,
6316 mutable_attributes,
6317 (),
6318 )?;
6319
6320 let mut _field =
6321 unsafe { ::fidl_next::Slot::new_unchecked(mutable_attributes.as_mut_ptr()) };
6322
6323 ::fidl_next::Encode::encode(
6324 &self.immutable_attributes,
6325 encoder_,
6326 immutable_attributes,
6327 (),
6328 )?;
6329
6330 let mut _field =
6331 unsafe { ::fidl_next::Slot::new_unchecked(immutable_attributes.as_mut_ptr()) };
6332
6333 Ok(())
6334 }
6335 }
6336
6337 unsafe impl<___E>
6338 ::fidl_next::EncodeOption<
6339 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes2<'static>>,
6340 ___E,
6341 > for NodeAttributes2
6342 where
6343 ___E: ::fidl_next::Encoder + ?Sized,
6344 NodeAttributes2: ::fidl_next::Encode<crate::wire::NodeAttributes2<'static>, ___E>,
6345 {
6346 #[inline]
6347 fn encode_option(
6348 this: ::core::option::Option<Self>,
6349 encoder: &mut ___E,
6350 out: &mut ::core::mem::MaybeUninit<
6351 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes2<'static>>,
6352 >,
6353 _: (),
6354 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6355 if let Some(inner) = this {
6356 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
6357 ::fidl_next::wire::Box::encode_present(out);
6358 } else {
6359 ::fidl_next::wire::Box::encode_absent(out);
6360 }
6361
6362 Ok(())
6363 }
6364 }
6365
6366 unsafe impl<'a, ___E>
6367 ::fidl_next::EncodeOption<
6368 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes2<'static>>,
6369 ___E,
6370 > for &'a NodeAttributes2
6371 where
6372 ___E: ::fidl_next::Encoder + ?Sized,
6373 &'a NodeAttributes2: ::fidl_next::Encode<crate::wire::NodeAttributes2<'static>, ___E>,
6374 {
6375 #[inline]
6376 fn encode_option(
6377 this: ::core::option::Option<Self>,
6378 encoder: &mut ___E,
6379 out: &mut ::core::mem::MaybeUninit<
6380 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes2<'static>>,
6381 >,
6382 _: (),
6383 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6384 if let Some(inner) = this {
6385 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
6386 ::fidl_next::wire::Box::encode_present(out);
6387 } else {
6388 ::fidl_next::wire::Box::encode_absent(out);
6389 }
6390
6391 Ok(())
6392 }
6393 }
6394
6395 impl<'de> ::fidl_next::FromWire<crate::wire::NodeAttributes2<'de>> for NodeAttributes2 {
6396 #[inline]
6397 fn from_wire(wire: crate::wire::NodeAttributes2<'de>) -> Self {
6398 Self {
6399 mutable_attributes: ::fidl_next::FromWire::from_wire(wire.mutable_attributes),
6400
6401 immutable_attributes: ::fidl_next::FromWire::from_wire(wire.immutable_attributes),
6402 }
6403 }
6404 }
6405
6406 impl<'de> ::fidl_next::FromWireRef<crate::wire::NodeAttributes2<'de>> for NodeAttributes2 {
6407 #[inline]
6408 fn from_wire_ref(wire: &crate::wire::NodeAttributes2<'de>) -> Self {
6409 Self {
6410 mutable_attributes: ::fidl_next::FromWireRef::from_wire_ref(
6411 &wire.mutable_attributes,
6412 ),
6413
6414 immutable_attributes: ::fidl_next::FromWireRef::from_wire_ref(
6415 &wire.immutable_attributes,
6416 ),
6417 }
6418 }
6419 }
6420
6421 #[doc = " Information that describes the target node.\n"]
6422 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6423 pub struct NodeInfo {
6424 pub attributes: ::core::option::Option<crate::natural::NodeAttributes2>,
6425 }
6426
6427 impl NodeInfo {
6428 fn __max_ordinal(&self) -> usize {
6429 if self.attributes.is_some() {
6430 return 1;
6431 }
6432
6433 0
6434 }
6435 }
6436
6437 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeInfo<'static>, ___E> for NodeInfo
6438 where
6439 ___E: ::fidl_next::Encoder + ?Sized,
6440 {
6441 #[inline]
6442 fn encode(
6443 mut self,
6444 encoder: &mut ___E,
6445 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeInfo<'static>>,
6446 _: (),
6447 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6448 ::fidl_next::munge!(let crate::wire::NodeInfo { table } = out);
6449
6450 let max_ord = self.__max_ordinal();
6451
6452 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6453 ::fidl_next::Wire::zero_padding(&mut out);
6454
6455 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6456 ::fidl_next::wire::Envelope,
6457 >(encoder, max_ord);
6458
6459 for i in 1..=max_ord {
6460 match i {
6461 1 => {
6462 if let Some(value) = self.attributes.take() {
6463 ::fidl_next::wire::Envelope::encode_value::<
6464 crate::wire::NodeAttributes2<'static>,
6465 ___E,
6466 >(
6467 value, preallocated.encoder, &mut out, ()
6468 )?;
6469 } else {
6470 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6471 }
6472 }
6473
6474 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6475 }
6476 unsafe {
6477 preallocated.write_next(out.assume_init_ref());
6478 }
6479 }
6480
6481 ::fidl_next::wire::Table::encode_len(table, max_ord);
6482
6483 Ok(())
6484 }
6485 }
6486
6487 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeInfo<'static>, ___E> for &'a NodeInfo
6488 where
6489 ___E: ::fidl_next::Encoder + ?Sized,
6490 {
6491 #[inline]
6492 fn encode(
6493 self,
6494 encoder: &mut ___E,
6495 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeInfo<'static>>,
6496 _: (),
6497 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6498 ::fidl_next::munge!(let crate::wire::NodeInfo { table } = out);
6499
6500 let max_ord = self.__max_ordinal();
6501
6502 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6503 ::fidl_next::Wire::zero_padding(&mut out);
6504
6505 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6506 ::fidl_next::wire::Envelope,
6507 >(encoder, max_ord);
6508
6509 for i in 1..=max_ord {
6510 match i {
6511 1 => {
6512 if let Some(value) = &self.attributes {
6513 ::fidl_next::wire::Envelope::encode_value::<
6514 crate::wire::NodeAttributes2<'static>,
6515 ___E,
6516 >(
6517 value, preallocated.encoder, &mut out, ()
6518 )?;
6519 } else {
6520 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6521 }
6522 }
6523
6524 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6525 }
6526 unsafe {
6527 preallocated.write_next(out.assume_init_ref());
6528 }
6529 }
6530
6531 ::fidl_next::wire::Table::encode_len(table, max_ord);
6532
6533 Ok(())
6534 }
6535 }
6536
6537 impl<'de> ::fidl_next::FromWire<crate::wire::NodeInfo<'de>> for NodeInfo {
6538 #[inline]
6539 fn from_wire(wire_: crate::wire::NodeInfo<'de>) -> Self {
6540 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
6541
6542 let attributes = wire_.table.get(1);
6543
6544 Self {
6545 attributes: attributes.map(|envelope| {
6546 ::fidl_next::FromWire::from_wire(unsafe {
6547 envelope.read_unchecked::<crate::wire::NodeAttributes2<'de>>()
6548 })
6549 }),
6550 }
6551 }
6552 }
6553
6554 impl<'de> ::fidl_next::FromWireRef<crate::wire::NodeInfo<'de>> for NodeInfo {
6555 #[inline]
6556 fn from_wire_ref(wire: &crate::wire::NodeInfo<'de>) -> Self {
6557 Self {
6558 attributes: wire.table.get(1).map(|envelope| {
6559 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6560 envelope.deref_unchecked::<crate::wire::NodeAttributes2<'de>>()
6561 })
6562 }),
6563 }
6564 }
6565 }
6566
6567 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6568 pub struct DirectoryInfo {
6569 pub attributes: ::core::option::Option<crate::natural::NodeAttributes2>,
6570 }
6571
6572 impl DirectoryInfo {
6573 fn __max_ordinal(&self) -> usize {
6574 if self.attributes.is_some() {
6575 return 1;
6576 }
6577
6578 0
6579 }
6580 }
6581
6582 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryInfo<'static>, ___E> for DirectoryInfo
6583 where
6584 ___E: ::fidl_next::Encoder + ?Sized,
6585 {
6586 #[inline]
6587 fn encode(
6588 mut self,
6589 encoder: &mut ___E,
6590 out: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryInfo<'static>>,
6591 _: (),
6592 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6593 ::fidl_next::munge!(let crate::wire::DirectoryInfo { table } = out);
6594
6595 let max_ord = self.__max_ordinal();
6596
6597 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6598 ::fidl_next::Wire::zero_padding(&mut out);
6599
6600 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6601 ::fidl_next::wire::Envelope,
6602 >(encoder, max_ord);
6603
6604 for i in 1..=max_ord {
6605 match i {
6606 1 => {
6607 if let Some(value) = self.attributes.take() {
6608 ::fidl_next::wire::Envelope::encode_value::<
6609 crate::wire::NodeAttributes2<'static>,
6610 ___E,
6611 >(
6612 value, preallocated.encoder, &mut out, ()
6613 )?;
6614 } else {
6615 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6616 }
6617 }
6618
6619 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6620 }
6621 unsafe {
6622 preallocated.write_next(out.assume_init_ref());
6623 }
6624 }
6625
6626 ::fidl_next::wire::Table::encode_len(table, max_ord);
6627
6628 Ok(())
6629 }
6630 }
6631
6632 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirectoryInfo<'static>, ___E>
6633 for &'a DirectoryInfo
6634 where
6635 ___E: ::fidl_next::Encoder + ?Sized,
6636 {
6637 #[inline]
6638 fn encode(
6639 self,
6640 encoder: &mut ___E,
6641 out: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryInfo<'static>>,
6642 _: (),
6643 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6644 ::fidl_next::munge!(let crate::wire::DirectoryInfo { table } = out);
6645
6646 let max_ord = self.__max_ordinal();
6647
6648 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6649 ::fidl_next::Wire::zero_padding(&mut out);
6650
6651 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6652 ::fidl_next::wire::Envelope,
6653 >(encoder, max_ord);
6654
6655 for i in 1..=max_ord {
6656 match i {
6657 1 => {
6658 if let Some(value) = &self.attributes {
6659 ::fidl_next::wire::Envelope::encode_value::<
6660 crate::wire::NodeAttributes2<'static>,
6661 ___E,
6662 >(
6663 value, preallocated.encoder, &mut out, ()
6664 )?;
6665 } else {
6666 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6667 }
6668 }
6669
6670 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6671 }
6672 unsafe {
6673 preallocated.write_next(out.assume_init_ref());
6674 }
6675 }
6676
6677 ::fidl_next::wire::Table::encode_len(table, max_ord);
6678
6679 Ok(())
6680 }
6681 }
6682
6683 impl<'de> ::fidl_next::FromWire<crate::wire::DirectoryInfo<'de>> for DirectoryInfo {
6684 #[inline]
6685 fn from_wire(wire_: crate::wire::DirectoryInfo<'de>) -> Self {
6686 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
6687
6688 let attributes = wire_.table.get(1);
6689
6690 Self {
6691 attributes: attributes.map(|envelope| {
6692 ::fidl_next::FromWire::from_wire(unsafe {
6693 envelope.read_unchecked::<crate::wire::NodeAttributes2<'de>>()
6694 })
6695 }),
6696 }
6697 }
6698 }
6699
6700 impl<'de> ::fidl_next::FromWireRef<crate::wire::DirectoryInfo<'de>> for DirectoryInfo {
6701 #[inline]
6702 fn from_wire_ref(wire: &crate::wire::DirectoryInfo<'de>) -> Self {
6703 Self {
6704 attributes: wire.table.get(1).map(|envelope| {
6705 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6706 envelope.deref_unchecked::<crate::wire::NodeAttributes2<'de>>()
6707 })
6708 }),
6709 }
6710 }
6711 }
6712
6713 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6714 pub struct SymlinkInfo {
6715 pub target: ::core::option::Option<::std::vec::Vec<u8>>,
6716
6717 pub attributes: ::core::option::Option<crate::natural::NodeAttributes2>,
6718 }
6719
6720 impl SymlinkInfo {
6721 fn __max_ordinal(&self) -> usize {
6722 if self.attributes.is_some() {
6723 return 2;
6724 }
6725
6726 if self.target.is_some() {
6727 return 1;
6728 }
6729
6730 0
6731 }
6732 }
6733
6734 unsafe impl<___E> ::fidl_next::Encode<crate::wire::SymlinkInfo<'static>, ___E> for SymlinkInfo
6735 where
6736 ___E: ::fidl_next::Encoder + ?Sized,
6737 {
6738 #[inline]
6739 fn encode(
6740 mut self,
6741 encoder: &mut ___E,
6742 out: &mut ::core::mem::MaybeUninit<crate::wire::SymlinkInfo<'static>>,
6743 _: (),
6744 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6745 ::fidl_next::munge!(let crate::wire::SymlinkInfo { table } = out);
6746
6747 let max_ord = self.__max_ordinal();
6748
6749 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6750 ::fidl_next::Wire::zero_padding(&mut out);
6751
6752 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6753 ::fidl_next::wire::Envelope,
6754 >(encoder, max_ord);
6755
6756 for i in 1..=max_ord {
6757 match i {
6758 2 => {
6759 if let Some(value) = self.attributes.take() {
6760 ::fidl_next::wire::Envelope::encode_value::<
6761 crate::wire::NodeAttributes2<'static>,
6762 ___E,
6763 >(
6764 value, preallocated.encoder, &mut out, ()
6765 )?;
6766 } else {
6767 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6768 }
6769 }
6770
6771 1 => {
6772 if let Some(value) = self.target.take() {
6773 ::fidl_next::wire::Envelope::encode_value::<
6774 ::fidl_next::wire::Vector<'static, u8>,
6775 ___E,
6776 >(
6777 value, preallocated.encoder, &mut out, (4095, ())
6778 )?;
6779 } else {
6780 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6781 }
6782 }
6783
6784 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6785 }
6786 unsafe {
6787 preallocated.write_next(out.assume_init_ref());
6788 }
6789 }
6790
6791 ::fidl_next::wire::Table::encode_len(table, max_ord);
6792
6793 Ok(())
6794 }
6795 }
6796
6797 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::SymlinkInfo<'static>, ___E>
6798 for &'a SymlinkInfo
6799 where
6800 ___E: ::fidl_next::Encoder + ?Sized,
6801 {
6802 #[inline]
6803 fn encode(
6804 self,
6805 encoder: &mut ___E,
6806 out: &mut ::core::mem::MaybeUninit<crate::wire::SymlinkInfo<'static>>,
6807 _: (),
6808 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6809 ::fidl_next::munge!(let crate::wire::SymlinkInfo { table } = out);
6810
6811 let max_ord = self.__max_ordinal();
6812
6813 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6814 ::fidl_next::Wire::zero_padding(&mut out);
6815
6816 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6817 ::fidl_next::wire::Envelope,
6818 >(encoder, max_ord);
6819
6820 for i in 1..=max_ord {
6821 match i {
6822 2 => {
6823 if let Some(value) = &self.attributes {
6824 ::fidl_next::wire::Envelope::encode_value::<
6825 crate::wire::NodeAttributes2<'static>,
6826 ___E,
6827 >(
6828 value, preallocated.encoder, &mut out, ()
6829 )?;
6830 } else {
6831 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6832 }
6833 }
6834
6835 1 => {
6836 if let Some(value) = &self.target {
6837 ::fidl_next::wire::Envelope::encode_value::<
6838 ::fidl_next::wire::Vector<'static, u8>,
6839 ___E,
6840 >(
6841 value, preallocated.encoder, &mut out, (4095, ())
6842 )?;
6843 } else {
6844 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6845 }
6846 }
6847
6848 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6849 }
6850 unsafe {
6851 preallocated.write_next(out.assume_init_ref());
6852 }
6853 }
6854
6855 ::fidl_next::wire::Table::encode_len(table, max_ord);
6856
6857 Ok(())
6858 }
6859 }
6860
6861 impl<'de> ::fidl_next::FromWire<crate::wire::SymlinkInfo<'de>> for SymlinkInfo {
6862 #[inline]
6863 fn from_wire(wire_: crate::wire::SymlinkInfo<'de>) -> Self {
6864 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
6865
6866 let target = wire_.table.get(1);
6867
6868 let attributes = wire_.table.get(2);
6869
6870 Self {
6871 target: target.map(|envelope| {
6872 ::fidl_next::FromWire::from_wire(unsafe {
6873 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
6874 })
6875 }),
6876
6877 attributes: attributes.map(|envelope| {
6878 ::fidl_next::FromWire::from_wire(unsafe {
6879 envelope.read_unchecked::<crate::wire::NodeAttributes2<'de>>()
6880 })
6881 }),
6882 }
6883 }
6884 }
6885
6886 impl<'de> ::fidl_next::FromWireRef<crate::wire::SymlinkInfo<'de>> for SymlinkInfo {
6887 #[inline]
6888 fn from_wire_ref(wire: &crate::wire::SymlinkInfo<'de>) -> Self {
6889 Self {
6890 target: wire.table.get(1).map(|envelope| {
6891 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6892 envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
6893 })
6894 }),
6895
6896 attributes: wire.table.get(2).map(|envelope| {
6897 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6898 envelope.deref_unchecked::<crate::wire::NodeAttributes2<'de>>()
6899 })
6900 }),
6901 }
6902 }
6903 }
6904
6905 ::fidl_next::bitflags::bitflags! {
6906 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct NodeAttributesQuery: u64 {
6907 #[doc = " Requests [`NodeAttributes.protocols`].\n"]const PROTOCOLS = 1;
6908 #[doc = " Requests [`NodeAttributes.abilities`].\n"]const ABILITIES = 2;
6909 #[doc = " Requests [`NodeAttributes.content_size`].\n"]const CONTENT_SIZE = 4;
6910 #[doc = " Requests [`NodeAttributes.storage_size`].\n"]const STORAGE_SIZE = 8;
6911 #[doc = " Requests [`NodeAttributes.link_count`].\n"]const LINK_COUNT = 16;
6912 #[doc = " Requests [`NodeAttributes.id`].\n"]const ID = 32;
6913 #[doc = " Requests [`NodeAttributes.creation_time`].\n"]const CREATION_TIME = 64;
6914 #[doc = " Requests [`NodeAttributes.modification_time`].\n"]const MODIFICATION_TIME = 128;
6915 #[doc = " Posix attributes.\n"]const MODE = 256;
6916 const UID = 512;
6917 const GID = 1024;
6918 const RDEV = 2048;
6919 const ACCESS_TIME = 4096;
6920 const CHANGE_TIME = 8192;
6921 #[doc = " Verity attributes.\n"]const OPTIONS = 16384;
6922 const ROOT_HASH = 32768;
6923 const VERITY_ENABLED = 65536;
6924 #[doc = " Casefold (case-insensitive filename) support.\n When true, file lookups will be case-insensitive but case-preserving. i.e. \"Foo\" will\n be stored verbatim but can be opened as \"foo\", \"fOO\", etc. Casefolding is done in\n accordance to the Unicode 12 NFD normalization and casefolding standard.\n"]const CASEFOLD = 131072;
6925 #[doc = " Requests [`MutableNodeAttributes.selinux_context`]. See that field for more detail.\n"]const SELINUX_CONTEXT = 262144;
6926 #[doc = " fscrypt attribute.\n"]const WRAPPING_KEY_ID = 524288;
6927 #[doc = " When this is queried in [`fuchsia.io/Node.GetAttributes`], it indicates to the filesystem\n that this node has been accessed and is pending an access time update given that any one of\n the following conditions are met:\n * current_access_time <= current_modification_time\n * current_access_time <= current_change_time\n * current_access_time < current_time - duration(1 day)\n\n If any of the above conditions are met, `access_time` is updated to the current time before\n any queried node attributes are returned.\n\n This is compatible with Linux relatime mount.\n\n The rationale behind adding this `NodeAttributesQuery` is that some filesystems, e.g. Fxfs,\n are unable to identify when a file access has occured and thus update the access time. We\n allow for clients to communicate to the underlying filesystem that a file access has\n occurred and that it awaits for an update to access time.\n\n WARNING: If this is queried without a prior file access, as long as the above conditions\n are met, the node\'s access time will be updated. Not all filesystems will support this. The\n query will be ignored if the filesystem does not support this.\n"]const PENDING_ACCESS_TIME_UPDATE = 1048576;
6928 const _ = !0;
6929 }
6930 }
6931
6932 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeAttributesQuery, ___E>
6933 for NodeAttributesQuery
6934 where
6935 ___E: ?Sized,
6936 {
6937 #[inline]
6938 fn encode(
6939 self,
6940 encoder: &mut ___E,
6941 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributesQuery>,
6942 _: (),
6943 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6944 ::fidl_next::Encode::encode(&self, encoder, out, ())
6945 }
6946 }
6947
6948 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeAttributesQuery, ___E>
6949 for &'a NodeAttributesQuery
6950 where
6951 ___E: ?Sized,
6952 {
6953 #[inline]
6954 fn encode(
6955 self,
6956 _: &mut ___E,
6957 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributesQuery>,
6958 _: (),
6959 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6960 ::fidl_next::munge!(let crate::wire::NodeAttributesQuery { value } = out);
6961
6962 let _ = value.write(::fidl_next::wire::Uint64::from(self.bits()));
6963 Ok(())
6964 }
6965 }
6966
6967 impl ::core::convert::From<crate::wire::NodeAttributesQuery> for NodeAttributesQuery {
6968 fn from(wire: crate::wire::NodeAttributesQuery) -> Self {
6969 Self::from_bits_retain(u64::from(wire.value))
6970 }
6971 }
6972
6973 impl ::fidl_next::FromWire<crate::wire::NodeAttributesQuery> for NodeAttributesQuery {
6974 #[inline]
6975 fn from_wire(wire: crate::wire::NodeAttributesQuery) -> Self {
6976 Self::from(wire)
6977 }
6978 }
6979
6980 impl ::fidl_next::FromWireRef<crate::wire::NodeAttributesQuery> for NodeAttributesQuery {
6981 #[inline]
6982 fn from_wire_ref(wire: &crate::wire::NodeAttributesQuery) -> Self {
6983 Self::from(*wire)
6984 }
6985 }
6986
6987 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6988 #[repr(C)]
6989 pub struct NodeGetAttributesRequest {
6990 pub query: crate::natural::NodeAttributesQuery,
6991 }
6992
6993 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeGetAttributesRequest, ___E>
6994 for NodeGetAttributesRequest
6995 where
6996 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6997 {
6998 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
6999 Self,
7000 crate::wire::NodeGetAttributesRequest,
7001 > = unsafe {
7002 ::fidl_next::CopyOptimization::enable_if(
7003 true && <crate::natural::NodeAttributesQuery as ::fidl_next::Encode<
7004 crate::wire::NodeAttributesQuery,
7005 ___E,
7006 >>::COPY_OPTIMIZATION
7007 .is_enabled(),
7008 )
7009 };
7010
7011 #[inline]
7012 fn encode(
7013 self,
7014 encoder_: &mut ___E,
7015 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeGetAttributesRequest>,
7016 _: (),
7017 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7018 ::fidl_next::munge! {
7019 let crate::wire::NodeGetAttributesRequest {
7020 query,
7021
7022 } = out_;
7023 }
7024
7025 ::fidl_next::Encode::encode(self.query, encoder_, query, ())?;
7026
7027 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(query.as_mut_ptr()) };
7028
7029 Ok(())
7030 }
7031 }
7032
7033 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeGetAttributesRequest, ___E>
7034 for &'a NodeGetAttributesRequest
7035 where
7036 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7037 {
7038 #[inline]
7039 fn encode(
7040 self,
7041 encoder_: &mut ___E,
7042 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeGetAttributesRequest>,
7043 _: (),
7044 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7045 ::fidl_next::munge! {
7046 let crate::wire::NodeGetAttributesRequest {
7047 query,
7048
7049 } = out_;
7050 }
7051
7052 ::fidl_next::Encode::encode(&self.query, encoder_, query, ())?;
7053
7054 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(query.as_mut_ptr()) };
7055
7056 Ok(())
7057 }
7058 }
7059
7060 unsafe impl<___E>
7061 ::fidl_next::EncodeOption<
7062 ::fidl_next::wire::Box<'static, crate::wire::NodeGetAttributesRequest>,
7063 ___E,
7064 > for NodeGetAttributesRequest
7065 where
7066 ___E: ::fidl_next::Encoder + ?Sized,
7067 NodeGetAttributesRequest: ::fidl_next::Encode<crate::wire::NodeGetAttributesRequest, ___E>,
7068 {
7069 #[inline]
7070 fn encode_option(
7071 this: ::core::option::Option<Self>,
7072 encoder: &mut ___E,
7073 out: &mut ::core::mem::MaybeUninit<
7074 ::fidl_next::wire::Box<'static, crate::wire::NodeGetAttributesRequest>,
7075 >,
7076 _: (),
7077 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7078 if let Some(inner) = this {
7079 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7080 ::fidl_next::wire::Box::encode_present(out);
7081 } else {
7082 ::fidl_next::wire::Box::encode_absent(out);
7083 }
7084
7085 Ok(())
7086 }
7087 }
7088
7089 unsafe impl<'a, ___E>
7090 ::fidl_next::EncodeOption<
7091 ::fidl_next::wire::Box<'static, crate::wire::NodeGetAttributesRequest>,
7092 ___E,
7093 > for &'a NodeGetAttributesRequest
7094 where
7095 ___E: ::fidl_next::Encoder + ?Sized,
7096 &'a NodeGetAttributesRequest:
7097 ::fidl_next::Encode<crate::wire::NodeGetAttributesRequest, ___E>,
7098 {
7099 #[inline]
7100 fn encode_option(
7101 this: ::core::option::Option<Self>,
7102 encoder: &mut ___E,
7103 out: &mut ::core::mem::MaybeUninit<
7104 ::fidl_next::wire::Box<'static, crate::wire::NodeGetAttributesRequest>,
7105 >,
7106 _: (),
7107 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7108 if let Some(inner) = this {
7109 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7110 ::fidl_next::wire::Box::encode_present(out);
7111 } else {
7112 ::fidl_next::wire::Box::encode_absent(out);
7113 }
7114
7115 Ok(())
7116 }
7117 }
7118
7119 impl ::fidl_next::FromWire<crate::wire::NodeGetAttributesRequest> for NodeGetAttributesRequest {
7120 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
7121 crate::wire::NodeGetAttributesRequest,
7122 Self,
7123 > = unsafe {
7124 ::fidl_next::CopyOptimization::enable_if(
7125 true && <crate::natural::NodeAttributesQuery as ::fidl_next::FromWire<
7126 crate::wire::NodeAttributesQuery,
7127 >>::COPY_OPTIMIZATION
7128 .is_enabled(),
7129 )
7130 };
7131
7132 #[inline]
7133 fn from_wire(wire: crate::wire::NodeGetAttributesRequest) -> Self {
7134 Self { query: ::fidl_next::FromWire::from_wire(wire.query) }
7135 }
7136 }
7137
7138 impl ::fidl_next::FromWireRef<crate::wire::NodeGetAttributesRequest> for NodeGetAttributesRequest {
7139 #[inline]
7140 fn from_wire_ref(wire: &crate::wire::NodeGetAttributesRequest) -> Self {
7141 Self { query: ::fidl_next::FromWireRef::from_wire_ref(&wire.query) }
7142 }
7143 }
7144
7145 #[doc = " Options which can be used when opening nodes. Unlike [`Flags`], these options are designed for\n specific use cases (e.g. to reduce round-trip latency when requesting attributes).\n"]
7146 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7147 pub struct Options {
7148 pub attributes: ::core::option::Option<crate::natural::NodeAttributesQuery>,
7149
7150 pub create_attributes: ::core::option::Option<crate::natural::MutableNodeAttributes>,
7151 }
7152
7153 impl Options {
7154 fn __max_ordinal(&self) -> usize {
7155 if self.create_attributes.is_some() {
7156 return 2;
7157 }
7158
7159 if self.attributes.is_some() {
7160 return 1;
7161 }
7162
7163 0
7164 }
7165 }
7166
7167 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Options<'static>, ___E> for Options
7168 where
7169 ___E: ::fidl_next::Encoder + ?Sized,
7170 {
7171 #[inline]
7172 fn encode(
7173 mut self,
7174 encoder: &mut ___E,
7175 out: &mut ::core::mem::MaybeUninit<crate::wire::Options<'static>>,
7176 _: (),
7177 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7178 ::fidl_next::munge!(let crate::wire::Options { table } = out);
7179
7180 let max_ord = self.__max_ordinal();
7181
7182 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7183 ::fidl_next::Wire::zero_padding(&mut out);
7184
7185 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7186 ::fidl_next::wire::Envelope,
7187 >(encoder, max_ord);
7188
7189 for i in 1..=max_ord {
7190 match i {
7191 2 => {
7192 if let Some(value) = self.create_attributes.take() {
7193 ::fidl_next::wire::Envelope::encode_value::<
7194 crate::wire::MutableNodeAttributes<'static>,
7195 ___E,
7196 >(
7197 value, preallocated.encoder, &mut out, ()
7198 )?;
7199 } else {
7200 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7201 }
7202 }
7203
7204 1 => {
7205 if let Some(value) = self.attributes.take() {
7206 ::fidl_next::wire::Envelope::encode_value::<
7207 crate::wire::NodeAttributesQuery,
7208 ___E,
7209 >(
7210 value, preallocated.encoder, &mut out, ()
7211 )?;
7212 } else {
7213 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7214 }
7215 }
7216
7217 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7218 }
7219 unsafe {
7220 preallocated.write_next(out.assume_init_ref());
7221 }
7222 }
7223
7224 ::fidl_next::wire::Table::encode_len(table, max_ord);
7225
7226 Ok(())
7227 }
7228 }
7229
7230 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Options<'static>, ___E> for &'a Options
7231 where
7232 ___E: ::fidl_next::Encoder + ?Sized,
7233 {
7234 #[inline]
7235 fn encode(
7236 self,
7237 encoder: &mut ___E,
7238 out: &mut ::core::mem::MaybeUninit<crate::wire::Options<'static>>,
7239 _: (),
7240 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7241 ::fidl_next::munge!(let crate::wire::Options { table } = out);
7242
7243 let max_ord = self.__max_ordinal();
7244
7245 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7246 ::fidl_next::Wire::zero_padding(&mut out);
7247
7248 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7249 ::fidl_next::wire::Envelope,
7250 >(encoder, max_ord);
7251
7252 for i in 1..=max_ord {
7253 match i {
7254 2 => {
7255 if let Some(value) = &self.create_attributes {
7256 ::fidl_next::wire::Envelope::encode_value::<
7257 crate::wire::MutableNodeAttributes<'static>,
7258 ___E,
7259 >(
7260 value, preallocated.encoder, &mut out, ()
7261 )?;
7262 } else {
7263 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7264 }
7265 }
7266
7267 1 => {
7268 if let Some(value) = &self.attributes {
7269 ::fidl_next::wire::Envelope::encode_value::<
7270 crate::wire::NodeAttributesQuery,
7271 ___E,
7272 >(
7273 value, preallocated.encoder, &mut out, ()
7274 )?;
7275 } else {
7276 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7277 }
7278 }
7279
7280 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7281 }
7282 unsafe {
7283 preallocated.write_next(out.assume_init_ref());
7284 }
7285 }
7286
7287 ::fidl_next::wire::Table::encode_len(table, max_ord);
7288
7289 Ok(())
7290 }
7291 }
7292
7293 impl<'de> ::fidl_next::FromWire<crate::wire::Options<'de>> for Options {
7294 #[inline]
7295 fn from_wire(wire_: crate::wire::Options<'de>) -> Self {
7296 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
7297
7298 let attributes = wire_.table.get(1);
7299
7300 let create_attributes = wire_.table.get(2);
7301
7302 Self {
7303 attributes: attributes.map(|envelope| {
7304 ::fidl_next::FromWire::from_wire(unsafe {
7305 envelope.read_unchecked::<crate::wire::NodeAttributesQuery>()
7306 })
7307 }),
7308
7309 create_attributes: create_attributes.map(|envelope| {
7310 ::fidl_next::FromWire::from_wire(unsafe {
7311 envelope.read_unchecked::<crate::wire::MutableNodeAttributes<'de>>()
7312 })
7313 }),
7314 }
7315 }
7316 }
7317
7318 impl<'de> ::fidl_next::FromWireRef<crate::wire::Options<'de>> for Options {
7319 #[inline]
7320 fn from_wire_ref(wire: &crate::wire::Options<'de>) -> Self {
7321 Self {
7322 attributes: wire.table.get(1).map(|envelope| {
7323 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7324 envelope.deref_unchecked::<crate::wire::NodeAttributesQuery>()
7325 })
7326 }),
7327
7328 create_attributes: wire.table.get(2).map(|envelope| {
7329 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7330 envelope.deref_unchecked::<crate::wire::MutableNodeAttributes<'de>>()
7331 })
7332 }),
7333 }
7334 }
7335 }
7336
7337 pub type DirectoryObject = ();
7338
7339 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7340 #[repr(u8)]
7341 pub enum DirentType {
7342 Unknown = 0,
7343 Directory = 4,
7344 BlockDevice = 6,
7345 File = 8,
7346 Symlink = 10,
7347 Service = 16,
7348 UnknownOrdinal_(u8) = 17,
7349 }
7350 impl ::std::convert::From<u8> for DirentType {
7351 fn from(value: u8) -> Self {
7352 match value {
7353 0 => Self::Unknown,
7354 4 => Self::Directory,
7355 6 => Self::BlockDevice,
7356 8 => Self::File,
7357 10 => Self::Symlink,
7358 16 => Self::Service,
7359
7360 _ => Self::UnknownOrdinal_(value),
7361 }
7362 }
7363 }
7364
7365 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirentType, ___E> for DirentType
7366 where
7367 ___E: ?Sized,
7368 {
7369 #[inline]
7370 fn encode(
7371 self,
7372 encoder: &mut ___E,
7373 out: &mut ::core::mem::MaybeUninit<crate::wire::DirentType>,
7374 _: (),
7375 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7376 ::fidl_next::Encode::encode(&self, encoder, out, ())
7377 }
7378 }
7379
7380 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirentType, ___E> for &'a DirentType
7381 where
7382 ___E: ?Sized,
7383 {
7384 #[inline]
7385 fn encode(
7386 self,
7387 encoder: &mut ___E,
7388 out: &mut ::core::mem::MaybeUninit<crate::wire::DirentType>,
7389 _: (),
7390 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7391 ::fidl_next::munge!(let crate::wire::DirentType { value } = out);
7392 let _ = value.write(u8::from(match *self {
7393 DirentType::Unknown => 0,
7394
7395 DirentType::Directory => 4,
7396
7397 DirentType::BlockDevice => 6,
7398
7399 DirentType::File => 8,
7400
7401 DirentType::Symlink => 10,
7402
7403 DirentType::Service => 16,
7404
7405 DirentType::UnknownOrdinal_(value) => value,
7406 }));
7407
7408 Ok(())
7409 }
7410 }
7411
7412 impl ::core::convert::From<crate::wire::DirentType> for DirentType {
7413 fn from(wire: crate::wire::DirentType) -> Self {
7414 match u8::from(wire.value) {
7415 0 => Self::Unknown,
7416
7417 4 => Self::Directory,
7418
7419 6 => Self::BlockDevice,
7420
7421 8 => Self::File,
7422
7423 10 => Self::Symlink,
7424
7425 16 => Self::Service,
7426
7427 value => Self::UnknownOrdinal_(value),
7428 }
7429 }
7430 }
7431
7432 impl ::fidl_next::FromWire<crate::wire::DirentType> for DirentType {
7433 #[inline]
7434 fn from_wire(wire: crate::wire::DirentType) -> Self {
7435 Self::from(wire)
7436 }
7437 }
7438
7439 impl ::fidl_next::FromWireRef<crate::wire::DirentType> for DirentType {
7440 #[inline]
7441 fn from_wire_ref(wire: &crate::wire::DirentType) -> Self {
7442 Self::from(*wire)
7443 }
7444 }
7445
7446 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7447 pub struct ExtendedAttributeIteratorGetNextResponse {
7448 pub attributes: ::std::vec::Vec<::std::vec::Vec<u8>>,
7449
7450 pub last: bool,
7451 }
7452
7453 unsafe impl<___E>
7454 ::fidl_next::Encode<crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>, ___E>
7455 for ExtendedAttributeIteratorGetNextResponse
7456 where
7457 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7458 ___E: ::fidl_next::Encoder,
7459 {
7460 #[inline]
7461 fn encode(
7462 self,
7463 encoder_: &mut ___E,
7464 out_: &mut ::core::mem::MaybeUninit<
7465 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7466 >,
7467 _: (),
7468 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7469 ::fidl_next::munge! {
7470 let crate::wire::ExtendedAttributeIteratorGetNextResponse {
7471 attributes,
7472 last,
7473
7474 } = out_;
7475 }
7476
7477 ::fidl_next::Encode::encode(self.attributes, encoder_, attributes, (128, (255, ())))?;
7478
7479 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(attributes.as_mut_ptr()) };
7480 ::fidl_next::Constrained::validate(_field, (128, (255, ())))?;
7481
7482 ::fidl_next::Encode::encode(self.last, encoder_, last, ())?;
7483
7484 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(last.as_mut_ptr()) };
7485
7486 Ok(())
7487 }
7488 }
7489
7490 unsafe impl<'a, ___E>
7491 ::fidl_next::Encode<crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>, ___E>
7492 for &'a ExtendedAttributeIteratorGetNextResponse
7493 where
7494 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7495 ___E: ::fidl_next::Encoder,
7496 {
7497 #[inline]
7498 fn encode(
7499 self,
7500 encoder_: &mut ___E,
7501 out_: &mut ::core::mem::MaybeUninit<
7502 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7503 >,
7504 _: (),
7505 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7506 ::fidl_next::munge! {
7507 let crate::wire::ExtendedAttributeIteratorGetNextResponse {
7508 attributes,
7509 last,
7510
7511 } = out_;
7512 }
7513
7514 ::fidl_next::Encode::encode(&self.attributes, encoder_, attributes, (128, (255, ())))?;
7515
7516 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(attributes.as_mut_ptr()) };
7517 ::fidl_next::Constrained::validate(_field, (128, (255, ())))?;
7518
7519 ::fidl_next::Encode::encode(&self.last, encoder_, last, ())?;
7520
7521 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(last.as_mut_ptr()) };
7522
7523 Ok(())
7524 }
7525 }
7526
7527 unsafe impl<___E>
7528 ::fidl_next::EncodeOption<
7529 ::fidl_next::wire::Box<
7530 'static,
7531 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7532 >,
7533 ___E,
7534 > for ExtendedAttributeIteratorGetNextResponse
7535 where
7536 ___E: ::fidl_next::Encoder + ?Sized,
7537 ExtendedAttributeIteratorGetNextResponse: ::fidl_next::Encode<
7538 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7539 ___E,
7540 >,
7541 {
7542 #[inline]
7543 fn encode_option(
7544 this: ::core::option::Option<Self>,
7545 encoder: &mut ___E,
7546 out: &mut ::core::mem::MaybeUninit<
7547 ::fidl_next::wire::Box<
7548 'static,
7549 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7550 >,
7551 >,
7552 _: (),
7553 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7554 if let Some(inner) = this {
7555 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7556 ::fidl_next::wire::Box::encode_present(out);
7557 } else {
7558 ::fidl_next::wire::Box::encode_absent(out);
7559 }
7560
7561 Ok(())
7562 }
7563 }
7564
7565 unsafe impl<'a, ___E>
7566 ::fidl_next::EncodeOption<
7567 ::fidl_next::wire::Box<
7568 'static,
7569 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7570 >,
7571 ___E,
7572 > for &'a ExtendedAttributeIteratorGetNextResponse
7573 where
7574 ___E: ::fidl_next::Encoder + ?Sized,
7575 &'a ExtendedAttributeIteratorGetNextResponse: ::fidl_next::Encode<
7576 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7577 ___E,
7578 >,
7579 {
7580 #[inline]
7581 fn encode_option(
7582 this: ::core::option::Option<Self>,
7583 encoder: &mut ___E,
7584 out: &mut ::core::mem::MaybeUninit<
7585 ::fidl_next::wire::Box<
7586 'static,
7587 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7588 >,
7589 >,
7590 _: (),
7591 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7592 if let Some(inner) = this {
7593 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7594 ::fidl_next::wire::Box::encode_present(out);
7595 } else {
7596 ::fidl_next::wire::Box::encode_absent(out);
7597 }
7598
7599 Ok(())
7600 }
7601 }
7602
7603 impl<'de> ::fidl_next::FromWire<crate::wire::ExtendedAttributeIteratorGetNextResponse<'de>>
7604 for ExtendedAttributeIteratorGetNextResponse
7605 {
7606 #[inline]
7607 fn from_wire(wire: crate::wire::ExtendedAttributeIteratorGetNextResponse<'de>) -> Self {
7608 Self {
7609 attributes: ::fidl_next::FromWire::from_wire(wire.attributes),
7610
7611 last: ::fidl_next::FromWire::from_wire(wire.last),
7612 }
7613 }
7614 }
7615
7616 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExtendedAttributeIteratorGetNextResponse<'de>>
7617 for ExtendedAttributeIteratorGetNextResponse
7618 {
7619 #[inline]
7620 fn from_wire_ref(
7621 wire: &crate::wire::ExtendedAttributeIteratorGetNextResponse<'de>,
7622 ) -> Self {
7623 Self {
7624 attributes: ::fidl_next::FromWireRef::from_wire_ref(&wire.attributes),
7625
7626 last: ::fidl_next::FromWireRef::from_wire_ref(&wire.last),
7627 }
7628 }
7629 }
7630
7631 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7632 #[repr(C)]
7633 pub struct ReadableReadRequest {
7634 pub count: u64,
7635 }
7636
7637 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ReadableReadRequest, ___E>
7638 for ReadableReadRequest
7639 where
7640 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7641 {
7642 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
7643 Self,
7644 crate::wire::ReadableReadRequest,
7645 > = unsafe {
7646 ::fidl_next::CopyOptimization::enable_if(
7647 true
7648
7649 && <
7650 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
7651 >::COPY_OPTIMIZATION.is_enabled()
7652
7653 )
7654 };
7655
7656 #[inline]
7657 fn encode(
7658 self,
7659 encoder_: &mut ___E,
7660 out_: &mut ::core::mem::MaybeUninit<crate::wire::ReadableReadRequest>,
7661 _: (),
7662 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7663 ::fidl_next::munge! {
7664 let crate::wire::ReadableReadRequest {
7665 count,
7666
7667 } = out_;
7668 }
7669
7670 ::fidl_next::Encode::encode(self.count, encoder_, count, ())?;
7671
7672 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(count.as_mut_ptr()) };
7673
7674 Ok(())
7675 }
7676 }
7677
7678 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ReadableReadRequest, ___E>
7679 for &'a ReadableReadRequest
7680 where
7681 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7682 {
7683 #[inline]
7684 fn encode(
7685 self,
7686 encoder_: &mut ___E,
7687 out_: &mut ::core::mem::MaybeUninit<crate::wire::ReadableReadRequest>,
7688 _: (),
7689 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7690 ::fidl_next::munge! {
7691 let crate::wire::ReadableReadRequest {
7692 count,
7693
7694 } = out_;
7695 }
7696
7697 ::fidl_next::Encode::encode(&self.count, encoder_, count, ())?;
7698
7699 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(count.as_mut_ptr()) };
7700
7701 Ok(())
7702 }
7703 }
7704
7705 unsafe impl<___E>
7706 ::fidl_next::EncodeOption<
7707 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadRequest>,
7708 ___E,
7709 > for ReadableReadRequest
7710 where
7711 ___E: ::fidl_next::Encoder + ?Sized,
7712 ReadableReadRequest: ::fidl_next::Encode<crate::wire::ReadableReadRequest, ___E>,
7713 {
7714 #[inline]
7715 fn encode_option(
7716 this: ::core::option::Option<Self>,
7717 encoder: &mut ___E,
7718 out: &mut ::core::mem::MaybeUninit<
7719 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadRequest>,
7720 >,
7721 _: (),
7722 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7723 if let Some(inner) = this {
7724 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7725 ::fidl_next::wire::Box::encode_present(out);
7726 } else {
7727 ::fidl_next::wire::Box::encode_absent(out);
7728 }
7729
7730 Ok(())
7731 }
7732 }
7733
7734 unsafe impl<'a, ___E>
7735 ::fidl_next::EncodeOption<
7736 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadRequest>,
7737 ___E,
7738 > for &'a ReadableReadRequest
7739 where
7740 ___E: ::fidl_next::Encoder + ?Sized,
7741 &'a ReadableReadRequest: ::fidl_next::Encode<crate::wire::ReadableReadRequest, ___E>,
7742 {
7743 #[inline]
7744 fn encode_option(
7745 this: ::core::option::Option<Self>,
7746 encoder: &mut ___E,
7747 out: &mut ::core::mem::MaybeUninit<
7748 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadRequest>,
7749 >,
7750 _: (),
7751 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7752 if let Some(inner) = this {
7753 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7754 ::fidl_next::wire::Box::encode_present(out);
7755 } else {
7756 ::fidl_next::wire::Box::encode_absent(out);
7757 }
7758
7759 Ok(())
7760 }
7761 }
7762
7763 impl ::fidl_next::FromWire<crate::wire::ReadableReadRequest> for ReadableReadRequest {
7764 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
7765 crate::wire::ReadableReadRequest,
7766 Self,
7767 > = unsafe {
7768 ::fidl_next::CopyOptimization::enable_if(
7769 true
7770 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
7771 .is_enabled(),
7772 )
7773 };
7774
7775 #[inline]
7776 fn from_wire(wire: crate::wire::ReadableReadRequest) -> Self {
7777 Self { count: ::fidl_next::FromWire::from_wire(wire.count) }
7778 }
7779 }
7780
7781 impl ::fidl_next::FromWireRef<crate::wire::ReadableReadRequest> for ReadableReadRequest {
7782 #[inline]
7783 fn from_wire_ref(wire: &crate::wire::ReadableReadRequest) -> Self {
7784 Self { count: ::fidl_next::FromWireRef::from_wire_ref(&wire.count) }
7785 }
7786 }
7787
7788 #[doc = " The byte vector type used for read/write operations.\n"]
7789 pub type Transfer = ::std::vec::Vec<u8>;
7790
7791 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7792 pub struct ReadableReadResponse {
7793 pub data: ::std::vec::Vec<u8>,
7794 }
7795
7796 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ReadableReadResponse<'static>, ___E>
7797 for ReadableReadResponse
7798 where
7799 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7800 ___E: ::fidl_next::Encoder,
7801 {
7802 #[inline]
7803 fn encode(
7804 self,
7805 encoder_: &mut ___E,
7806 out_: &mut ::core::mem::MaybeUninit<crate::wire::ReadableReadResponse<'static>>,
7807 _: (),
7808 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7809 ::fidl_next::munge! {
7810 let crate::wire::ReadableReadResponse {
7811 data,
7812
7813 } = out_;
7814 }
7815
7816 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
7817
7818 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
7819 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
7820
7821 Ok(())
7822 }
7823 }
7824
7825 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ReadableReadResponse<'static>, ___E>
7826 for &'a ReadableReadResponse
7827 where
7828 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7829 ___E: ::fidl_next::Encoder,
7830 {
7831 #[inline]
7832 fn encode(
7833 self,
7834 encoder_: &mut ___E,
7835 out_: &mut ::core::mem::MaybeUninit<crate::wire::ReadableReadResponse<'static>>,
7836 _: (),
7837 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7838 ::fidl_next::munge! {
7839 let crate::wire::ReadableReadResponse {
7840 data,
7841
7842 } = out_;
7843 }
7844
7845 ::fidl_next::Encode::encode(&self.data, encoder_, data, (8192, ()))?;
7846
7847 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
7848 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
7849
7850 Ok(())
7851 }
7852 }
7853
7854 unsafe impl<___E>
7855 ::fidl_next::EncodeOption<
7856 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadResponse<'static>>,
7857 ___E,
7858 > for ReadableReadResponse
7859 where
7860 ___E: ::fidl_next::Encoder + ?Sized,
7861 ReadableReadResponse: ::fidl_next::Encode<crate::wire::ReadableReadResponse<'static>, ___E>,
7862 {
7863 #[inline]
7864 fn encode_option(
7865 this: ::core::option::Option<Self>,
7866 encoder: &mut ___E,
7867 out: &mut ::core::mem::MaybeUninit<
7868 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadResponse<'static>>,
7869 >,
7870 _: (),
7871 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7872 if let Some(inner) = this {
7873 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7874 ::fidl_next::wire::Box::encode_present(out);
7875 } else {
7876 ::fidl_next::wire::Box::encode_absent(out);
7877 }
7878
7879 Ok(())
7880 }
7881 }
7882
7883 unsafe impl<'a, ___E>
7884 ::fidl_next::EncodeOption<
7885 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadResponse<'static>>,
7886 ___E,
7887 > for &'a ReadableReadResponse
7888 where
7889 ___E: ::fidl_next::Encoder + ?Sized,
7890 &'a ReadableReadResponse:
7891 ::fidl_next::Encode<crate::wire::ReadableReadResponse<'static>, ___E>,
7892 {
7893 #[inline]
7894 fn encode_option(
7895 this: ::core::option::Option<Self>,
7896 encoder: &mut ___E,
7897 out: &mut ::core::mem::MaybeUninit<
7898 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadResponse<'static>>,
7899 >,
7900 _: (),
7901 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7902 if let Some(inner) = this {
7903 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7904 ::fidl_next::wire::Box::encode_present(out);
7905 } else {
7906 ::fidl_next::wire::Box::encode_absent(out);
7907 }
7908
7909 Ok(())
7910 }
7911 }
7912
7913 impl<'de> ::fidl_next::FromWire<crate::wire::ReadableReadResponse<'de>> for ReadableReadResponse {
7914 #[inline]
7915 fn from_wire(wire: crate::wire::ReadableReadResponse<'de>) -> Self {
7916 Self { data: ::fidl_next::FromWire::from_wire(wire.data) }
7917 }
7918 }
7919
7920 impl<'de> ::fidl_next::FromWireRef<crate::wire::ReadableReadResponse<'de>>
7921 for ReadableReadResponse
7922 {
7923 #[inline]
7924 fn from_wire_ref(wire: &crate::wire::ReadableReadResponse<'de>) -> Self {
7925 Self { data: ::fidl_next::FromWireRef::from_wire_ref(&wire.data) }
7926 }
7927 }
7928
7929 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7930 pub struct WritableWriteRequest {
7931 pub data: ::std::vec::Vec<u8>,
7932 }
7933
7934 unsafe impl<___E> ::fidl_next::Encode<crate::wire::WritableWriteRequest<'static>, ___E>
7935 for WritableWriteRequest
7936 where
7937 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7938 ___E: ::fidl_next::Encoder,
7939 {
7940 #[inline]
7941 fn encode(
7942 self,
7943 encoder_: &mut ___E,
7944 out_: &mut ::core::mem::MaybeUninit<crate::wire::WritableWriteRequest<'static>>,
7945 _: (),
7946 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7947 ::fidl_next::munge! {
7948 let crate::wire::WritableWriteRequest {
7949 data,
7950
7951 } = out_;
7952 }
7953
7954 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
7955
7956 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
7957 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
7958
7959 Ok(())
7960 }
7961 }
7962
7963 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::WritableWriteRequest<'static>, ___E>
7964 for &'a WritableWriteRequest
7965 where
7966 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7967 ___E: ::fidl_next::Encoder,
7968 {
7969 #[inline]
7970 fn encode(
7971 self,
7972 encoder_: &mut ___E,
7973 out_: &mut ::core::mem::MaybeUninit<crate::wire::WritableWriteRequest<'static>>,
7974 _: (),
7975 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7976 ::fidl_next::munge! {
7977 let crate::wire::WritableWriteRequest {
7978 data,
7979
7980 } = out_;
7981 }
7982
7983 ::fidl_next::Encode::encode(&self.data, encoder_, data, (8192, ()))?;
7984
7985 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
7986 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
7987
7988 Ok(())
7989 }
7990 }
7991
7992 unsafe impl<___E>
7993 ::fidl_next::EncodeOption<
7994 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteRequest<'static>>,
7995 ___E,
7996 > for WritableWriteRequest
7997 where
7998 ___E: ::fidl_next::Encoder + ?Sized,
7999 WritableWriteRequest: ::fidl_next::Encode<crate::wire::WritableWriteRequest<'static>, ___E>,
8000 {
8001 #[inline]
8002 fn encode_option(
8003 this: ::core::option::Option<Self>,
8004 encoder: &mut ___E,
8005 out: &mut ::core::mem::MaybeUninit<
8006 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteRequest<'static>>,
8007 >,
8008 _: (),
8009 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8010 if let Some(inner) = this {
8011 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8012 ::fidl_next::wire::Box::encode_present(out);
8013 } else {
8014 ::fidl_next::wire::Box::encode_absent(out);
8015 }
8016
8017 Ok(())
8018 }
8019 }
8020
8021 unsafe impl<'a, ___E>
8022 ::fidl_next::EncodeOption<
8023 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteRequest<'static>>,
8024 ___E,
8025 > for &'a WritableWriteRequest
8026 where
8027 ___E: ::fidl_next::Encoder + ?Sized,
8028 &'a WritableWriteRequest:
8029 ::fidl_next::Encode<crate::wire::WritableWriteRequest<'static>, ___E>,
8030 {
8031 #[inline]
8032 fn encode_option(
8033 this: ::core::option::Option<Self>,
8034 encoder: &mut ___E,
8035 out: &mut ::core::mem::MaybeUninit<
8036 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteRequest<'static>>,
8037 >,
8038 _: (),
8039 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8040 if let Some(inner) = this {
8041 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8042 ::fidl_next::wire::Box::encode_present(out);
8043 } else {
8044 ::fidl_next::wire::Box::encode_absent(out);
8045 }
8046
8047 Ok(())
8048 }
8049 }
8050
8051 impl<'de> ::fidl_next::FromWire<crate::wire::WritableWriteRequest<'de>> for WritableWriteRequest {
8052 #[inline]
8053 fn from_wire(wire: crate::wire::WritableWriteRequest<'de>) -> Self {
8054 Self { data: ::fidl_next::FromWire::from_wire(wire.data) }
8055 }
8056 }
8057
8058 impl<'de> ::fidl_next::FromWireRef<crate::wire::WritableWriteRequest<'de>>
8059 for WritableWriteRequest
8060 {
8061 #[inline]
8062 fn from_wire_ref(wire: &crate::wire::WritableWriteRequest<'de>) -> Self {
8063 Self { data: ::fidl_next::FromWireRef::from_wire_ref(&wire.data) }
8064 }
8065 }
8066
8067 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8068 #[repr(C)]
8069 pub struct WritableWriteResponse {
8070 pub actual_count: u64,
8071 }
8072
8073 unsafe impl<___E> ::fidl_next::Encode<crate::wire::WritableWriteResponse, ___E>
8074 for WritableWriteResponse
8075 where
8076 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8077 {
8078 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
8079 Self,
8080 crate::wire::WritableWriteResponse,
8081 > = unsafe {
8082 ::fidl_next::CopyOptimization::enable_if(
8083 true
8084
8085 && <
8086 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
8087 >::COPY_OPTIMIZATION.is_enabled()
8088
8089 )
8090 };
8091
8092 #[inline]
8093 fn encode(
8094 self,
8095 encoder_: &mut ___E,
8096 out_: &mut ::core::mem::MaybeUninit<crate::wire::WritableWriteResponse>,
8097 _: (),
8098 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8099 ::fidl_next::munge! {
8100 let crate::wire::WritableWriteResponse {
8101 actual_count,
8102
8103 } = out_;
8104 }
8105
8106 ::fidl_next::Encode::encode(self.actual_count, encoder_, actual_count, ())?;
8107
8108 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(actual_count.as_mut_ptr()) };
8109
8110 Ok(())
8111 }
8112 }
8113
8114 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::WritableWriteResponse, ___E>
8115 for &'a WritableWriteResponse
8116 where
8117 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8118 {
8119 #[inline]
8120 fn encode(
8121 self,
8122 encoder_: &mut ___E,
8123 out_: &mut ::core::mem::MaybeUninit<crate::wire::WritableWriteResponse>,
8124 _: (),
8125 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8126 ::fidl_next::munge! {
8127 let crate::wire::WritableWriteResponse {
8128 actual_count,
8129
8130 } = out_;
8131 }
8132
8133 ::fidl_next::Encode::encode(&self.actual_count, encoder_, actual_count, ())?;
8134
8135 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(actual_count.as_mut_ptr()) };
8136
8137 Ok(())
8138 }
8139 }
8140
8141 unsafe impl<___E>
8142 ::fidl_next::EncodeOption<
8143 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteResponse>,
8144 ___E,
8145 > for WritableWriteResponse
8146 where
8147 ___E: ::fidl_next::Encoder + ?Sized,
8148 WritableWriteResponse: ::fidl_next::Encode<crate::wire::WritableWriteResponse, ___E>,
8149 {
8150 #[inline]
8151 fn encode_option(
8152 this: ::core::option::Option<Self>,
8153 encoder: &mut ___E,
8154 out: &mut ::core::mem::MaybeUninit<
8155 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteResponse>,
8156 >,
8157 _: (),
8158 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8159 if let Some(inner) = this {
8160 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8161 ::fidl_next::wire::Box::encode_present(out);
8162 } else {
8163 ::fidl_next::wire::Box::encode_absent(out);
8164 }
8165
8166 Ok(())
8167 }
8168 }
8169
8170 unsafe impl<'a, ___E>
8171 ::fidl_next::EncodeOption<
8172 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteResponse>,
8173 ___E,
8174 > for &'a WritableWriteResponse
8175 where
8176 ___E: ::fidl_next::Encoder + ?Sized,
8177 &'a WritableWriteResponse: ::fidl_next::Encode<crate::wire::WritableWriteResponse, ___E>,
8178 {
8179 #[inline]
8180 fn encode_option(
8181 this: ::core::option::Option<Self>,
8182 encoder: &mut ___E,
8183 out: &mut ::core::mem::MaybeUninit<
8184 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteResponse>,
8185 >,
8186 _: (),
8187 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8188 if let Some(inner) = this {
8189 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8190 ::fidl_next::wire::Box::encode_present(out);
8191 } else {
8192 ::fidl_next::wire::Box::encode_absent(out);
8193 }
8194
8195 Ok(())
8196 }
8197 }
8198
8199 impl ::fidl_next::FromWire<crate::wire::WritableWriteResponse> for WritableWriteResponse {
8200 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
8201 crate::wire::WritableWriteResponse,
8202 Self,
8203 > = unsafe {
8204 ::fidl_next::CopyOptimization::enable_if(
8205 true
8206 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
8207 .is_enabled(),
8208 )
8209 };
8210
8211 #[inline]
8212 fn from_wire(wire: crate::wire::WritableWriteResponse) -> Self {
8213 Self { actual_count: ::fidl_next::FromWire::from_wire(wire.actual_count) }
8214 }
8215 }
8216
8217 impl ::fidl_next::FromWireRef<crate::wire::WritableWriteResponse> for WritableWriteResponse {
8218 #[inline]
8219 fn from_wire_ref(wire: &crate::wire::WritableWriteResponse) -> Self {
8220 Self { actual_count: ::fidl_next::FromWireRef::from_wire_ref(&wire.actual_count) }
8221 }
8222 }
8223
8224 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8225 pub struct FileSeekRequest {
8226 pub origin: crate::natural::SeekOrigin,
8227
8228 pub offset: i64,
8229 }
8230
8231 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileSeekRequest, ___E> for FileSeekRequest
8232 where
8233 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8234 {
8235 #[inline]
8236 fn encode(
8237 self,
8238 encoder_: &mut ___E,
8239 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileSeekRequest>,
8240 _: (),
8241 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8242 ::fidl_next::munge! {
8243 let crate::wire::FileSeekRequest {
8244 origin,
8245 offset,
8246
8247 } = out_;
8248 }
8249
8250 ::fidl_next::Encode::encode(self.origin, encoder_, origin, ())?;
8251
8252 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(origin.as_mut_ptr()) };
8253
8254 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
8255
8256 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
8257
8258 Ok(())
8259 }
8260 }
8261
8262 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileSeekRequest, ___E>
8263 for &'a FileSeekRequest
8264 where
8265 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8266 {
8267 #[inline]
8268 fn encode(
8269 self,
8270 encoder_: &mut ___E,
8271 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileSeekRequest>,
8272 _: (),
8273 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8274 ::fidl_next::munge! {
8275 let crate::wire::FileSeekRequest {
8276 origin,
8277 offset,
8278
8279 } = out_;
8280 }
8281
8282 ::fidl_next::Encode::encode(&self.origin, encoder_, origin, ())?;
8283
8284 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(origin.as_mut_ptr()) };
8285
8286 ::fidl_next::Encode::encode(&self.offset, encoder_, offset, ())?;
8287
8288 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
8289
8290 Ok(())
8291 }
8292 }
8293
8294 unsafe impl<___E>
8295 ::fidl_next::EncodeOption<
8296 ::fidl_next::wire::Box<'static, crate::wire::FileSeekRequest>,
8297 ___E,
8298 > for FileSeekRequest
8299 where
8300 ___E: ::fidl_next::Encoder + ?Sized,
8301 FileSeekRequest: ::fidl_next::Encode<crate::wire::FileSeekRequest, ___E>,
8302 {
8303 #[inline]
8304 fn encode_option(
8305 this: ::core::option::Option<Self>,
8306 encoder: &mut ___E,
8307 out: &mut ::core::mem::MaybeUninit<
8308 ::fidl_next::wire::Box<'static, crate::wire::FileSeekRequest>,
8309 >,
8310 _: (),
8311 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8312 if let Some(inner) = this {
8313 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8314 ::fidl_next::wire::Box::encode_present(out);
8315 } else {
8316 ::fidl_next::wire::Box::encode_absent(out);
8317 }
8318
8319 Ok(())
8320 }
8321 }
8322
8323 unsafe impl<'a, ___E>
8324 ::fidl_next::EncodeOption<
8325 ::fidl_next::wire::Box<'static, crate::wire::FileSeekRequest>,
8326 ___E,
8327 > for &'a FileSeekRequest
8328 where
8329 ___E: ::fidl_next::Encoder + ?Sized,
8330 &'a FileSeekRequest: ::fidl_next::Encode<crate::wire::FileSeekRequest, ___E>,
8331 {
8332 #[inline]
8333 fn encode_option(
8334 this: ::core::option::Option<Self>,
8335 encoder: &mut ___E,
8336 out: &mut ::core::mem::MaybeUninit<
8337 ::fidl_next::wire::Box<'static, crate::wire::FileSeekRequest>,
8338 >,
8339 _: (),
8340 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8341 if let Some(inner) = this {
8342 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8343 ::fidl_next::wire::Box::encode_present(out);
8344 } else {
8345 ::fidl_next::wire::Box::encode_absent(out);
8346 }
8347
8348 Ok(())
8349 }
8350 }
8351
8352 impl ::fidl_next::FromWire<crate::wire::FileSeekRequest> for FileSeekRequest {
8353 #[inline]
8354 fn from_wire(wire: crate::wire::FileSeekRequest) -> Self {
8355 Self {
8356 origin: ::fidl_next::FromWire::from_wire(wire.origin),
8357
8358 offset: ::fidl_next::FromWire::from_wire(wire.offset),
8359 }
8360 }
8361 }
8362
8363 impl ::fidl_next::FromWireRef<crate::wire::FileSeekRequest> for FileSeekRequest {
8364 #[inline]
8365 fn from_wire_ref(wire: &crate::wire::FileSeekRequest) -> Self {
8366 Self {
8367 origin: ::fidl_next::FromWireRef::from_wire_ref(&wire.origin),
8368
8369 offset: ::fidl_next::FromWireRef::from_wire_ref(&wire.offset),
8370 }
8371 }
8372 }
8373
8374 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8375 #[repr(C)]
8376 pub struct FileSeekResponse {
8377 pub offset_from_start: u64,
8378 }
8379
8380 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileSeekResponse, ___E> for FileSeekResponse
8381 where
8382 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8383 {
8384 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
8385 Self,
8386 crate::wire::FileSeekResponse,
8387 > = unsafe {
8388 ::fidl_next::CopyOptimization::enable_if(
8389 true
8390
8391 && <
8392 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
8393 >::COPY_OPTIMIZATION.is_enabled()
8394
8395 )
8396 };
8397
8398 #[inline]
8399 fn encode(
8400 self,
8401 encoder_: &mut ___E,
8402 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileSeekResponse>,
8403 _: (),
8404 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8405 ::fidl_next::munge! {
8406 let crate::wire::FileSeekResponse {
8407 offset_from_start,
8408
8409 } = out_;
8410 }
8411
8412 ::fidl_next::Encode::encode(self.offset_from_start, encoder_, offset_from_start, ())?;
8413
8414 let mut _field =
8415 unsafe { ::fidl_next::Slot::new_unchecked(offset_from_start.as_mut_ptr()) };
8416
8417 Ok(())
8418 }
8419 }
8420
8421 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileSeekResponse, ___E>
8422 for &'a FileSeekResponse
8423 where
8424 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8425 {
8426 #[inline]
8427 fn encode(
8428 self,
8429 encoder_: &mut ___E,
8430 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileSeekResponse>,
8431 _: (),
8432 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8433 ::fidl_next::munge! {
8434 let crate::wire::FileSeekResponse {
8435 offset_from_start,
8436
8437 } = out_;
8438 }
8439
8440 ::fidl_next::Encode::encode(&self.offset_from_start, encoder_, offset_from_start, ())?;
8441
8442 let mut _field =
8443 unsafe { ::fidl_next::Slot::new_unchecked(offset_from_start.as_mut_ptr()) };
8444
8445 Ok(())
8446 }
8447 }
8448
8449 unsafe impl<___E>
8450 ::fidl_next::EncodeOption<
8451 ::fidl_next::wire::Box<'static, crate::wire::FileSeekResponse>,
8452 ___E,
8453 > for FileSeekResponse
8454 where
8455 ___E: ::fidl_next::Encoder + ?Sized,
8456 FileSeekResponse: ::fidl_next::Encode<crate::wire::FileSeekResponse, ___E>,
8457 {
8458 #[inline]
8459 fn encode_option(
8460 this: ::core::option::Option<Self>,
8461 encoder: &mut ___E,
8462 out: &mut ::core::mem::MaybeUninit<
8463 ::fidl_next::wire::Box<'static, crate::wire::FileSeekResponse>,
8464 >,
8465 _: (),
8466 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8467 if let Some(inner) = this {
8468 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8469 ::fidl_next::wire::Box::encode_present(out);
8470 } else {
8471 ::fidl_next::wire::Box::encode_absent(out);
8472 }
8473
8474 Ok(())
8475 }
8476 }
8477
8478 unsafe impl<'a, ___E>
8479 ::fidl_next::EncodeOption<
8480 ::fidl_next::wire::Box<'static, crate::wire::FileSeekResponse>,
8481 ___E,
8482 > for &'a FileSeekResponse
8483 where
8484 ___E: ::fidl_next::Encoder + ?Sized,
8485 &'a FileSeekResponse: ::fidl_next::Encode<crate::wire::FileSeekResponse, ___E>,
8486 {
8487 #[inline]
8488 fn encode_option(
8489 this: ::core::option::Option<Self>,
8490 encoder: &mut ___E,
8491 out: &mut ::core::mem::MaybeUninit<
8492 ::fidl_next::wire::Box<'static, crate::wire::FileSeekResponse>,
8493 >,
8494 _: (),
8495 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8496 if let Some(inner) = this {
8497 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8498 ::fidl_next::wire::Box::encode_present(out);
8499 } else {
8500 ::fidl_next::wire::Box::encode_absent(out);
8501 }
8502
8503 Ok(())
8504 }
8505 }
8506
8507 impl ::fidl_next::FromWire<crate::wire::FileSeekResponse> for FileSeekResponse {
8508 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
8509 crate::wire::FileSeekResponse,
8510 Self,
8511 > = unsafe {
8512 ::fidl_next::CopyOptimization::enable_if(
8513 true
8514 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
8515 .is_enabled(),
8516 )
8517 };
8518
8519 #[inline]
8520 fn from_wire(wire: crate::wire::FileSeekResponse) -> Self {
8521 Self { offset_from_start: ::fidl_next::FromWire::from_wire(wire.offset_from_start) }
8522 }
8523 }
8524
8525 impl ::fidl_next::FromWireRef<crate::wire::FileSeekResponse> for FileSeekResponse {
8526 #[inline]
8527 fn from_wire_ref(wire: &crate::wire::FileSeekResponse) -> Self {
8528 Self {
8529 offset_from_start: ::fidl_next::FromWireRef::from_wire_ref(&wire.offset_from_start),
8530 }
8531 }
8532 }
8533
8534 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8535 #[repr(C)]
8536 pub struct FileReadAtRequest {
8537 pub count: u64,
8538
8539 pub offset: u64,
8540 }
8541
8542 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileReadAtRequest, ___E> for FileReadAtRequest
8543 where
8544 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8545 {
8546 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
8547 Self,
8548 crate::wire::FileReadAtRequest,
8549 > = unsafe {
8550 ::fidl_next::CopyOptimization::enable_if(
8551 true
8552
8553 && <
8554 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
8555 >::COPY_OPTIMIZATION.is_enabled()
8556
8557 && <
8558 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
8559 >::COPY_OPTIMIZATION.is_enabled()
8560
8561 )
8562 };
8563
8564 #[inline]
8565 fn encode(
8566 self,
8567 encoder_: &mut ___E,
8568 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileReadAtRequest>,
8569 _: (),
8570 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8571 ::fidl_next::munge! {
8572 let crate::wire::FileReadAtRequest {
8573 count,
8574 offset,
8575
8576 } = out_;
8577 }
8578
8579 ::fidl_next::Encode::encode(self.count, encoder_, count, ())?;
8580
8581 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(count.as_mut_ptr()) };
8582
8583 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
8584
8585 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
8586
8587 Ok(())
8588 }
8589 }
8590
8591 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileReadAtRequest, ___E>
8592 for &'a FileReadAtRequest
8593 where
8594 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8595 {
8596 #[inline]
8597 fn encode(
8598 self,
8599 encoder_: &mut ___E,
8600 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileReadAtRequest>,
8601 _: (),
8602 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8603 ::fidl_next::munge! {
8604 let crate::wire::FileReadAtRequest {
8605 count,
8606 offset,
8607
8608 } = out_;
8609 }
8610
8611 ::fidl_next::Encode::encode(&self.count, encoder_, count, ())?;
8612
8613 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(count.as_mut_ptr()) };
8614
8615 ::fidl_next::Encode::encode(&self.offset, encoder_, offset, ())?;
8616
8617 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
8618
8619 Ok(())
8620 }
8621 }
8622
8623 unsafe impl<___E>
8624 ::fidl_next::EncodeOption<
8625 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtRequest>,
8626 ___E,
8627 > for FileReadAtRequest
8628 where
8629 ___E: ::fidl_next::Encoder + ?Sized,
8630 FileReadAtRequest: ::fidl_next::Encode<crate::wire::FileReadAtRequest, ___E>,
8631 {
8632 #[inline]
8633 fn encode_option(
8634 this: ::core::option::Option<Self>,
8635 encoder: &mut ___E,
8636 out: &mut ::core::mem::MaybeUninit<
8637 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtRequest>,
8638 >,
8639 _: (),
8640 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8641 if let Some(inner) = this {
8642 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8643 ::fidl_next::wire::Box::encode_present(out);
8644 } else {
8645 ::fidl_next::wire::Box::encode_absent(out);
8646 }
8647
8648 Ok(())
8649 }
8650 }
8651
8652 unsafe impl<'a, ___E>
8653 ::fidl_next::EncodeOption<
8654 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtRequest>,
8655 ___E,
8656 > for &'a FileReadAtRequest
8657 where
8658 ___E: ::fidl_next::Encoder + ?Sized,
8659 &'a FileReadAtRequest: ::fidl_next::Encode<crate::wire::FileReadAtRequest, ___E>,
8660 {
8661 #[inline]
8662 fn encode_option(
8663 this: ::core::option::Option<Self>,
8664 encoder: &mut ___E,
8665 out: &mut ::core::mem::MaybeUninit<
8666 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtRequest>,
8667 >,
8668 _: (),
8669 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8670 if let Some(inner) = this {
8671 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8672 ::fidl_next::wire::Box::encode_present(out);
8673 } else {
8674 ::fidl_next::wire::Box::encode_absent(out);
8675 }
8676
8677 Ok(())
8678 }
8679 }
8680
8681 impl ::fidl_next::FromWire<crate::wire::FileReadAtRequest> for FileReadAtRequest {
8682 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
8683 crate::wire::FileReadAtRequest,
8684 Self,
8685 > = unsafe {
8686 ::fidl_next::CopyOptimization::enable_if(
8687 true
8688 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
8689 .is_enabled()
8690 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
8691 .is_enabled(),
8692 )
8693 };
8694
8695 #[inline]
8696 fn from_wire(wire: crate::wire::FileReadAtRequest) -> Self {
8697 Self {
8698 count: ::fidl_next::FromWire::from_wire(wire.count),
8699
8700 offset: ::fidl_next::FromWire::from_wire(wire.offset),
8701 }
8702 }
8703 }
8704
8705 impl ::fidl_next::FromWireRef<crate::wire::FileReadAtRequest> for FileReadAtRequest {
8706 #[inline]
8707 fn from_wire_ref(wire: &crate::wire::FileReadAtRequest) -> Self {
8708 Self {
8709 count: ::fidl_next::FromWireRef::from_wire_ref(&wire.count),
8710
8711 offset: ::fidl_next::FromWireRef::from_wire_ref(&wire.offset),
8712 }
8713 }
8714 }
8715
8716 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8717 pub struct FileReadAtResponse {
8718 pub data: ::std::vec::Vec<u8>,
8719 }
8720
8721 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileReadAtResponse<'static>, ___E>
8722 for FileReadAtResponse
8723 where
8724 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8725 ___E: ::fidl_next::Encoder,
8726 {
8727 #[inline]
8728 fn encode(
8729 self,
8730 encoder_: &mut ___E,
8731 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileReadAtResponse<'static>>,
8732 _: (),
8733 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8734 ::fidl_next::munge! {
8735 let crate::wire::FileReadAtResponse {
8736 data,
8737
8738 } = out_;
8739 }
8740
8741 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
8742
8743 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
8744 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
8745
8746 Ok(())
8747 }
8748 }
8749
8750 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileReadAtResponse<'static>, ___E>
8751 for &'a FileReadAtResponse
8752 where
8753 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8754 ___E: ::fidl_next::Encoder,
8755 {
8756 #[inline]
8757 fn encode(
8758 self,
8759 encoder_: &mut ___E,
8760 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileReadAtResponse<'static>>,
8761 _: (),
8762 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8763 ::fidl_next::munge! {
8764 let crate::wire::FileReadAtResponse {
8765 data,
8766
8767 } = out_;
8768 }
8769
8770 ::fidl_next::Encode::encode(&self.data, encoder_, data, (8192, ()))?;
8771
8772 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
8773 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
8774
8775 Ok(())
8776 }
8777 }
8778
8779 unsafe impl<___E>
8780 ::fidl_next::EncodeOption<
8781 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtResponse<'static>>,
8782 ___E,
8783 > for FileReadAtResponse
8784 where
8785 ___E: ::fidl_next::Encoder + ?Sized,
8786 FileReadAtResponse: ::fidl_next::Encode<crate::wire::FileReadAtResponse<'static>, ___E>,
8787 {
8788 #[inline]
8789 fn encode_option(
8790 this: ::core::option::Option<Self>,
8791 encoder: &mut ___E,
8792 out: &mut ::core::mem::MaybeUninit<
8793 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtResponse<'static>>,
8794 >,
8795 _: (),
8796 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8797 if let Some(inner) = this {
8798 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8799 ::fidl_next::wire::Box::encode_present(out);
8800 } else {
8801 ::fidl_next::wire::Box::encode_absent(out);
8802 }
8803
8804 Ok(())
8805 }
8806 }
8807
8808 unsafe impl<'a, ___E>
8809 ::fidl_next::EncodeOption<
8810 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtResponse<'static>>,
8811 ___E,
8812 > for &'a FileReadAtResponse
8813 where
8814 ___E: ::fidl_next::Encoder + ?Sized,
8815 &'a FileReadAtResponse: ::fidl_next::Encode<crate::wire::FileReadAtResponse<'static>, ___E>,
8816 {
8817 #[inline]
8818 fn encode_option(
8819 this: ::core::option::Option<Self>,
8820 encoder: &mut ___E,
8821 out: &mut ::core::mem::MaybeUninit<
8822 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtResponse<'static>>,
8823 >,
8824 _: (),
8825 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8826 if let Some(inner) = this {
8827 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8828 ::fidl_next::wire::Box::encode_present(out);
8829 } else {
8830 ::fidl_next::wire::Box::encode_absent(out);
8831 }
8832
8833 Ok(())
8834 }
8835 }
8836
8837 impl<'de> ::fidl_next::FromWire<crate::wire::FileReadAtResponse<'de>> for FileReadAtResponse {
8838 #[inline]
8839 fn from_wire(wire: crate::wire::FileReadAtResponse<'de>) -> Self {
8840 Self { data: ::fidl_next::FromWire::from_wire(wire.data) }
8841 }
8842 }
8843
8844 impl<'de> ::fidl_next::FromWireRef<crate::wire::FileReadAtResponse<'de>> for FileReadAtResponse {
8845 #[inline]
8846 fn from_wire_ref(wire: &crate::wire::FileReadAtResponse<'de>) -> Self {
8847 Self { data: ::fidl_next::FromWireRef::from_wire_ref(&wire.data) }
8848 }
8849 }
8850
8851 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8852 pub struct FileWriteAtRequest {
8853 pub data: ::std::vec::Vec<u8>,
8854
8855 pub offset: u64,
8856 }
8857
8858 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileWriteAtRequest<'static>, ___E>
8859 for FileWriteAtRequest
8860 where
8861 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8862 ___E: ::fidl_next::Encoder,
8863 {
8864 #[inline]
8865 fn encode(
8866 self,
8867 encoder_: &mut ___E,
8868 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileWriteAtRequest<'static>>,
8869 _: (),
8870 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8871 ::fidl_next::munge! {
8872 let crate::wire::FileWriteAtRequest {
8873 data,
8874 offset,
8875
8876 } = out_;
8877 }
8878
8879 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
8880
8881 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
8882 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
8883
8884 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
8885
8886 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
8887
8888 Ok(())
8889 }
8890 }
8891
8892 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileWriteAtRequest<'static>, ___E>
8893 for &'a FileWriteAtRequest
8894 where
8895 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8896 ___E: ::fidl_next::Encoder,
8897 {
8898 #[inline]
8899 fn encode(
8900 self,
8901 encoder_: &mut ___E,
8902 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileWriteAtRequest<'static>>,
8903 _: (),
8904 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8905 ::fidl_next::munge! {
8906 let crate::wire::FileWriteAtRequest {
8907 data,
8908 offset,
8909
8910 } = out_;
8911 }
8912
8913 ::fidl_next::Encode::encode(&self.data, encoder_, data, (8192, ()))?;
8914
8915 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
8916 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
8917
8918 ::fidl_next::Encode::encode(&self.offset, encoder_, offset, ())?;
8919
8920 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
8921
8922 Ok(())
8923 }
8924 }
8925
8926 unsafe impl<___E>
8927 ::fidl_next::EncodeOption<
8928 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtRequest<'static>>,
8929 ___E,
8930 > for FileWriteAtRequest
8931 where
8932 ___E: ::fidl_next::Encoder + ?Sized,
8933 FileWriteAtRequest: ::fidl_next::Encode<crate::wire::FileWriteAtRequest<'static>, ___E>,
8934 {
8935 #[inline]
8936 fn encode_option(
8937 this: ::core::option::Option<Self>,
8938 encoder: &mut ___E,
8939 out: &mut ::core::mem::MaybeUninit<
8940 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtRequest<'static>>,
8941 >,
8942 _: (),
8943 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8944 if let Some(inner) = this {
8945 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8946 ::fidl_next::wire::Box::encode_present(out);
8947 } else {
8948 ::fidl_next::wire::Box::encode_absent(out);
8949 }
8950
8951 Ok(())
8952 }
8953 }
8954
8955 unsafe impl<'a, ___E>
8956 ::fidl_next::EncodeOption<
8957 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtRequest<'static>>,
8958 ___E,
8959 > for &'a FileWriteAtRequest
8960 where
8961 ___E: ::fidl_next::Encoder + ?Sized,
8962 &'a FileWriteAtRequest: ::fidl_next::Encode<crate::wire::FileWriteAtRequest<'static>, ___E>,
8963 {
8964 #[inline]
8965 fn encode_option(
8966 this: ::core::option::Option<Self>,
8967 encoder: &mut ___E,
8968 out: &mut ::core::mem::MaybeUninit<
8969 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtRequest<'static>>,
8970 >,
8971 _: (),
8972 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8973 if let Some(inner) = this {
8974 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8975 ::fidl_next::wire::Box::encode_present(out);
8976 } else {
8977 ::fidl_next::wire::Box::encode_absent(out);
8978 }
8979
8980 Ok(())
8981 }
8982 }
8983
8984 impl<'de> ::fidl_next::FromWire<crate::wire::FileWriteAtRequest<'de>> for FileWriteAtRequest {
8985 #[inline]
8986 fn from_wire(wire: crate::wire::FileWriteAtRequest<'de>) -> Self {
8987 Self {
8988 data: ::fidl_next::FromWire::from_wire(wire.data),
8989
8990 offset: ::fidl_next::FromWire::from_wire(wire.offset),
8991 }
8992 }
8993 }
8994
8995 impl<'de> ::fidl_next::FromWireRef<crate::wire::FileWriteAtRequest<'de>> for FileWriteAtRequest {
8996 #[inline]
8997 fn from_wire_ref(wire: &crate::wire::FileWriteAtRequest<'de>) -> Self {
8998 Self {
8999 data: ::fidl_next::FromWireRef::from_wire_ref(&wire.data),
9000
9001 offset: ::fidl_next::FromWireRef::from_wire_ref(&wire.offset),
9002 }
9003 }
9004 }
9005
9006 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9007 #[repr(C)]
9008 pub struct FileWriteAtResponse {
9009 pub actual_count: u64,
9010 }
9011
9012 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileWriteAtResponse, ___E>
9013 for FileWriteAtResponse
9014 where
9015 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9016 {
9017 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
9018 Self,
9019 crate::wire::FileWriteAtResponse,
9020 > = unsafe {
9021 ::fidl_next::CopyOptimization::enable_if(
9022 true
9023
9024 && <
9025 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
9026 >::COPY_OPTIMIZATION.is_enabled()
9027
9028 )
9029 };
9030
9031 #[inline]
9032 fn encode(
9033 self,
9034 encoder_: &mut ___E,
9035 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileWriteAtResponse>,
9036 _: (),
9037 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9038 ::fidl_next::munge! {
9039 let crate::wire::FileWriteAtResponse {
9040 actual_count,
9041
9042 } = out_;
9043 }
9044
9045 ::fidl_next::Encode::encode(self.actual_count, encoder_, actual_count, ())?;
9046
9047 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(actual_count.as_mut_ptr()) };
9048
9049 Ok(())
9050 }
9051 }
9052
9053 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileWriteAtResponse, ___E>
9054 for &'a FileWriteAtResponse
9055 where
9056 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9057 {
9058 #[inline]
9059 fn encode(
9060 self,
9061 encoder_: &mut ___E,
9062 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileWriteAtResponse>,
9063 _: (),
9064 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9065 ::fidl_next::munge! {
9066 let crate::wire::FileWriteAtResponse {
9067 actual_count,
9068
9069 } = out_;
9070 }
9071
9072 ::fidl_next::Encode::encode(&self.actual_count, encoder_, actual_count, ())?;
9073
9074 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(actual_count.as_mut_ptr()) };
9075
9076 Ok(())
9077 }
9078 }
9079
9080 unsafe impl<___E>
9081 ::fidl_next::EncodeOption<
9082 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtResponse>,
9083 ___E,
9084 > for FileWriteAtResponse
9085 where
9086 ___E: ::fidl_next::Encoder + ?Sized,
9087 FileWriteAtResponse: ::fidl_next::Encode<crate::wire::FileWriteAtResponse, ___E>,
9088 {
9089 #[inline]
9090 fn encode_option(
9091 this: ::core::option::Option<Self>,
9092 encoder: &mut ___E,
9093 out: &mut ::core::mem::MaybeUninit<
9094 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtResponse>,
9095 >,
9096 _: (),
9097 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9098 if let Some(inner) = this {
9099 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9100 ::fidl_next::wire::Box::encode_present(out);
9101 } else {
9102 ::fidl_next::wire::Box::encode_absent(out);
9103 }
9104
9105 Ok(())
9106 }
9107 }
9108
9109 unsafe impl<'a, ___E>
9110 ::fidl_next::EncodeOption<
9111 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtResponse>,
9112 ___E,
9113 > for &'a FileWriteAtResponse
9114 where
9115 ___E: ::fidl_next::Encoder + ?Sized,
9116 &'a FileWriteAtResponse: ::fidl_next::Encode<crate::wire::FileWriteAtResponse, ___E>,
9117 {
9118 #[inline]
9119 fn encode_option(
9120 this: ::core::option::Option<Self>,
9121 encoder: &mut ___E,
9122 out: &mut ::core::mem::MaybeUninit<
9123 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtResponse>,
9124 >,
9125 _: (),
9126 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9127 if let Some(inner) = this {
9128 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9129 ::fidl_next::wire::Box::encode_present(out);
9130 } else {
9131 ::fidl_next::wire::Box::encode_absent(out);
9132 }
9133
9134 Ok(())
9135 }
9136 }
9137
9138 impl ::fidl_next::FromWire<crate::wire::FileWriteAtResponse> for FileWriteAtResponse {
9139 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
9140 crate::wire::FileWriteAtResponse,
9141 Self,
9142 > = unsafe {
9143 ::fidl_next::CopyOptimization::enable_if(
9144 true
9145 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
9146 .is_enabled(),
9147 )
9148 };
9149
9150 #[inline]
9151 fn from_wire(wire: crate::wire::FileWriteAtResponse) -> Self {
9152 Self { actual_count: ::fidl_next::FromWire::from_wire(wire.actual_count) }
9153 }
9154 }
9155
9156 impl ::fidl_next::FromWireRef<crate::wire::FileWriteAtResponse> for FileWriteAtResponse {
9157 #[inline]
9158 fn from_wire_ref(wire: &crate::wire::FileWriteAtResponse) -> Self {
9159 Self { actual_count: ::fidl_next::FromWireRef::from_wire_ref(&wire.actual_count) }
9160 }
9161 }
9162
9163 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9164 #[repr(C)]
9165 pub struct FileResizeRequest {
9166 pub length: u64,
9167 }
9168
9169 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileResizeRequest, ___E> for FileResizeRequest
9170 where
9171 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9172 {
9173 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
9174 Self,
9175 crate::wire::FileResizeRequest,
9176 > = unsafe {
9177 ::fidl_next::CopyOptimization::enable_if(
9178 true
9179
9180 && <
9181 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
9182 >::COPY_OPTIMIZATION.is_enabled()
9183
9184 )
9185 };
9186
9187 #[inline]
9188 fn encode(
9189 self,
9190 encoder_: &mut ___E,
9191 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileResizeRequest>,
9192 _: (),
9193 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9194 ::fidl_next::munge! {
9195 let crate::wire::FileResizeRequest {
9196 length,
9197
9198 } = out_;
9199 }
9200
9201 ::fidl_next::Encode::encode(self.length, encoder_, length, ())?;
9202
9203 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(length.as_mut_ptr()) };
9204
9205 Ok(())
9206 }
9207 }
9208
9209 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileResizeRequest, ___E>
9210 for &'a FileResizeRequest
9211 where
9212 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9213 {
9214 #[inline]
9215 fn encode(
9216 self,
9217 encoder_: &mut ___E,
9218 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileResizeRequest>,
9219 _: (),
9220 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9221 ::fidl_next::munge! {
9222 let crate::wire::FileResizeRequest {
9223 length,
9224
9225 } = out_;
9226 }
9227
9228 ::fidl_next::Encode::encode(&self.length, encoder_, length, ())?;
9229
9230 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(length.as_mut_ptr()) };
9231
9232 Ok(())
9233 }
9234 }
9235
9236 unsafe impl<___E>
9237 ::fidl_next::EncodeOption<
9238 ::fidl_next::wire::Box<'static, crate::wire::FileResizeRequest>,
9239 ___E,
9240 > for FileResizeRequest
9241 where
9242 ___E: ::fidl_next::Encoder + ?Sized,
9243 FileResizeRequest: ::fidl_next::Encode<crate::wire::FileResizeRequest, ___E>,
9244 {
9245 #[inline]
9246 fn encode_option(
9247 this: ::core::option::Option<Self>,
9248 encoder: &mut ___E,
9249 out: &mut ::core::mem::MaybeUninit<
9250 ::fidl_next::wire::Box<'static, crate::wire::FileResizeRequest>,
9251 >,
9252 _: (),
9253 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9254 if let Some(inner) = this {
9255 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9256 ::fidl_next::wire::Box::encode_present(out);
9257 } else {
9258 ::fidl_next::wire::Box::encode_absent(out);
9259 }
9260
9261 Ok(())
9262 }
9263 }
9264
9265 unsafe impl<'a, ___E>
9266 ::fidl_next::EncodeOption<
9267 ::fidl_next::wire::Box<'static, crate::wire::FileResizeRequest>,
9268 ___E,
9269 > for &'a FileResizeRequest
9270 where
9271 ___E: ::fidl_next::Encoder + ?Sized,
9272 &'a FileResizeRequest: ::fidl_next::Encode<crate::wire::FileResizeRequest, ___E>,
9273 {
9274 #[inline]
9275 fn encode_option(
9276 this: ::core::option::Option<Self>,
9277 encoder: &mut ___E,
9278 out: &mut ::core::mem::MaybeUninit<
9279 ::fidl_next::wire::Box<'static, crate::wire::FileResizeRequest>,
9280 >,
9281 _: (),
9282 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9283 if let Some(inner) = this {
9284 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9285 ::fidl_next::wire::Box::encode_present(out);
9286 } else {
9287 ::fidl_next::wire::Box::encode_absent(out);
9288 }
9289
9290 Ok(())
9291 }
9292 }
9293
9294 impl ::fidl_next::FromWire<crate::wire::FileResizeRequest> for FileResizeRequest {
9295 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
9296 crate::wire::FileResizeRequest,
9297 Self,
9298 > = unsafe {
9299 ::fidl_next::CopyOptimization::enable_if(
9300 true
9301 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
9302 .is_enabled(),
9303 )
9304 };
9305
9306 #[inline]
9307 fn from_wire(wire: crate::wire::FileResizeRequest) -> Self {
9308 Self { length: ::fidl_next::FromWire::from_wire(wire.length) }
9309 }
9310 }
9311
9312 impl ::fidl_next::FromWireRef<crate::wire::FileResizeRequest> for FileResizeRequest {
9313 #[inline]
9314 fn from_wire_ref(wire: &crate::wire::FileResizeRequest) -> Self {
9315 Self { length: ::fidl_next::FromWireRef::from_wire_ref(&wire.length) }
9316 }
9317 }
9318
9319 pub type FileResizeResponse = ();
9320
9321 ::fidl_next::bitflags::bitflags! {
9322 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct VmoFlags: u32 {
9323 #[doc = " Requests that the VMO be readable.\n"]const READ = 1;
9324 #[doc = " Requests that the VMO be writable.\n"]const WRITE = 2;
9325 #[doc = " Request that the VMO be executable.\n"]const EXECUTE = 4;
9326 #[doc = " Require a copy-on-write clone of the underlying VMO. The request\n should fail if the VMO cannot be cloned. May not be supplied\n with `SHARED_BUFFER`.\n\n A private clone uses at least the guarantees of the\n `ZX_VMO_CHILD_SNAPSHOT_AT_LEAST_ON_WRITE` flag to\n `zx_vmo_create_child()`. This means that the returned VMO will\n be copy-on-write (if `WRITE` is requested) but that it may or\n may not reflect subsequent content changes to the underlying\n file. The returned VMO will not reflect size changes to the\n file. These semantics match those of the POSIX `mmap()`\n `MAP_PRIVATE` flag.\n\n In some cases, clients requiring a guaranteed snapshot of the\n file can use `SHARED_BUFFER` and then use\n `zx_vmo_create_child()` with `ZX_VMO_CHILD_SNAPSHOT`. However,\n in addition to cases where the implementation can\'t return a\n `SHARED_BUFFER`, creating a full snapshot will fail if the VMO\n is attached to the pager. Since most filesystems will use the\n paging system, the full snapshot approach should only be used in\n specific cases where the client is talking to a known server.\n"]const PRIVATE_CLONE = 65536;
9327 #[doc = " Require a VMO that provides direct access to the contents of the\n file\'s underlying VMO. The request should fail if such a VMO\n cannot be provided. May not be supplied with `PRIVATE_CLONE`.\n\n The returned VMO may not be resizable even when `WRITE` access is\n requested. In this case, [`File.Resize`] should be used to resize\n the file.\n"]const SHARED_BUFFER = 131072;
9328
9329 }
9330 }
9331
9332 unsafe impl<___E> ::fidl_next::Encode<crate::wire::VmoFlags, ___E> for VmoFlags
9333 where
9334 ___E: ?Sized,
9335 {
9336 #[inline]
9337 fn encode(
9338 self,
9339 encoder: &mut ___E,
9340 out: &mut ::core::mem::MaybeUninit<crate::wire::VmoFlags>,
9341 _: (),
9342 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9343 ::fidl_next::Encode::encode(&self, encoder, out, ())
9344 }
9345 }
9346
9347 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::VmoFlags, ___E> for &'a VmoFlags
9348 where
9349 ___E: ?Sized,
9350 {
9351 #[inline]
9352 fn encode(
9353 self,
9354 _: &mut ___E,
9355 out: &mut ::core::mem::MaybeUninit<crate::wire::VmoFlags>,
9356 _: (),
9357 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9358 ::fidl_next::munge!(let crate::wire::VmoFlags { value } = out);
9359
9360 if ::fidl_next::bitflags::Flags::contains_unknown_bits(self) {
9361 return Err(::fidl_next::EncodeError::InvalidStrictBits);
9362 }
9363
9364 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
9365 Ok(())
9366 }
9367 }
9368
9369 impl ::core::convert::From<crate::wire::VmoFlags> for VmoFlags {
9370 fn from(wire: crate::wire::VmoFlags) -> Self {
9371 Self::from_bits_retain(u32::from(wire.value))
9372 }
9373 }
9374
9375 impl ::fidl_next::FromWire<crate::wire::VmoFlags> for VmoFlags {
9376 #[inline]
9377 fn from_wire(wire: crate::wire::VmoFlags) -> Self {
9378 Self::from(wire)
9379 }
9380 }
9381
9382 impl ::fidl_next::FromWireRef<crate::wire::VmoFlags> for VmoFlags {
9383 #[inline]
9384 fn from_wire_ref(wire: &crate::wire::VmoFlags) -> Self {
9385 Self::from(*wire)
9386 }
9387 }
9388
9389 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9390 #[repr(C)]
9391 pub struct FileGetBackingMemoryRequest {
9392 pub flags: crate::natural::VmoFlags,
9393 }
9394
9395 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileGetBackingMemoryRequest, ___E>
9396 for FileGetBackingMemoryRequest
9397 where
9398 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9399 {
9400 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
9401 Self,
9402 crate::wire::FileGetBackingMemoryRequest,
9403 > = unsafe {
9404 ::fidl_next::CopyOptimization::enable_if(
9405 true && <crate::natural::VmoFlags as ::fidl_next::Encode<
9406 crate::wire::VmoFlags,
9407 ___E,
9408 >>::COPY_OPTIMIZATION
9409 .is_enabled(),
9410 )
9411 };
9412
9413 #[inline]
9414 fn encode(
9415 self,
9416 encoder_: &mut ___E,
9417 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileGetBackingMemoryRequest>,
9418 _: (),
9419 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9420 ::fidl_next::munge! {
9421 let crate::wire::FileGetBackingMemoryRequest {
9422 flags,
9423
9424 } = out_;
9425 }
9426
9427 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
9428
9429 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
9430
9431 Ok(())
9432 }
9433 }
9434
9435 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileGetBackingMemoryRequest, ___E>
9436 for &'a FileGetBackingMemoryRequest
9437 where
9438 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9439 {
9440 #[inline]
9441 fn encode(
9442 self,
9443 encoder_: &mut ___E,
9444 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileGetBackingMemoryRequest>,
9445 _: (),
9446 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9447 ::fidl_next::munge! {
9448 let crate::wire::FileGetBackingMemoryRequest {
9449 flags,
9450
9451 } = out_;
9452 }
9453
9454 ::fidl_next::Encode::encode(&self.flags, encoder_, flags, ())?;
9455
9456 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
9457
9458 Ok(())
9459 }
9460 }
9461
9462 unsafe impl<___E>
9463 ::fidl_next::EncodeOption<
9464 ::fidl_next::wire::Box<'static, crate::wire::FileGetBackingMemoryRequest>,
9465 ___E,
9466 > for FileGetBackingMemoryRequest
9467 where
9468 ___E: ::fidl_next::Encoder + ?Sized,
9469 FileGetBackingMemoryRequest:
9470 ::fidl_next::Encode<crate::wire::FileGetBackingMemoryRequest, ___E>,
9471 {
9472 #[inline]
9473 fn encode_option(
9474 this: ::core::option::Option<Self>,
9475 encoder: &mut ___E,
9476 out: &mut ::core::mem::MaybeUninit<
9477 ::fidl_next::wire::Box<'static, crate::wire::FileGetBackingMemoryRequest>,
9478 >,
9479 _: (),
9480 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9481 if let Some(inner) = this {
9482 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9483 ::fidl_next::wire::Box::encode_present(out);
9484 } else {
9485 ::fidl_next::wire::Box::encode_absent(out);
9486 }
9487
9488 Ok(())
9489 }
9490 }
9491
9492 unsafe impl<'a, ___E>
9493 ::fidl_next::EncodeOption<
9494 ::fidl_next::wire::Box<'static, crate::wire::FileGetBackingMemoryRequest>,
9495 ___E,
9496 > for &'a FileGetBackingMemoryRequest
9497 where
9498 ___E: ::fidl_next::Encoder + ?Sized,
9499 &'a FileGetBackingMemoryRequest:
9500 ::fidl_next::Encode<crate::wire::FileGetBackingMemoryRequest, ___E>,
9501 {
9502 #[inline]
9503 fn encode_option(
9504 this: ::core::option::Option<Self>,
9505 encoder: &mut ___E,
9506 out: &mut ::core::mem::MaybeUninit<
9507 ::fidl_next::wire::Box<'static, crate::wire::FileGetBackingMemoryRequest>,
9508 >,
9509 _: (),
9510 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9511 if let Some(inner) = this {
9512 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9513 ::fidl_next::wire::Box::encode_present(out);
9514 } else {
9515 ::fidl_next::wire::Box::encode_absent(out);
9516 }
9517
9518 Ok(())
9519 }
9520 }
9521
9522 impl ::fidl_next::FromWire<crate::wire::FileGetBackingMemoryRequest>
9523 for FileGetBackingMemoryRequest
9524 {
9525 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
9526 crate::wire::FileGetBackingMemoryRequest,
9527 Self,
9528 > = unsafe {
9529 ::fidl_next::CopyOptimization::enable_if(
9530 true && <crate::natural::VmoFlags as ::fidl_next::FromWire<
9531 crate::wire::VmoFlags,
9532 >>::COPY_OPTIMIZATION
9533 .is_enabled(),
9534 )
9535 };
9536
9537 #[inline]
9538 fn from_wire(wire: crate::wire::FileGetBackingMemoryRequest) -> Self {
9539 Self { flags: ::fidl_next::FromWire::from_wire(wire.flags) }
9540 }
9541 }
9542
9543 impl ::fidl_next::FromWireRef<crate::wire::FileGetBackingMemoryRequest>
9544 for FileGetBackingMemoryRequest
9545 {
9546 #[inline]
9547 fn from_wire_ref(wire: &crate::wire::FileGetBackingMemoryRequest) -> Self {
9548 Self { flags: ::fidl_next::FromWireRef::from_wire_ref(&wire.flags) }
9549 }
9550 }
9551
9552 pub type LinkableLinkIntoResponse = ();
9553
9554 pub type FileAllocateResponse = ();
9555
9556 pub type FileEnableVerityResponse = ();
9557
9558 ::fidl_next::bitflags::bitflags! {
9559 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct FileSignal: u32 {
9560 #[doc = " Indicates the file is ready for reading.\n"]const READABLE = 16777216;
9561 #[doc = " Indicates the file is ready for writing.\n"]const WRITABLE = 33554432;
9562
9563 }
9564 }
9565
9566 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileSignal, ___E> for FileSignal
9567 where
9568 ___E: ?Sized,
9569 {
9570 #[inline]
9571 fn encode(
9572 self,
9573 encoder: &mut ___E,
9574 out: &mut ::core::mem::MaybeUninit<crate::wire::FileSignal>,
9575 _: (),
9576 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9577 ::fidl_next::Encode::encode(&self, encoder, out, ())
9578 }
9579 }
9580
9581 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileSignal, ___E> for &'a FileSignal
9582 where
9583 ___E: ?Sized,
9584 {
9585 #[inline]
9586 fn encode(
9587 self,
9588 _: &mut ___E,
9589 out: &mut ::core::mem::MaybeUninit<crate::wire::FileSignal>,
9590 _: (),
9591 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9592 ::fidl_next::munge!(let crate::wire::FileSignal { value } = out);
9593
9594 if ::fidl_next::bitflags::Flags::contains_unknown_bits(self) {
9595 return Err(::fidl_next::EncodeError::InvalidStrictBits);
9596 }
9597
9598 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
9599 Ok(())
9600 }
9601 }
9602
9603 impl ::core::convert::From<crate::wire::FileSignal> for FileSignal {
9604 fn from(wire: crate::wire::FileSignal) -> Self {
9605 Self::from_bits_retain(u32::from(wire.value))
9606 }
9607 }
9608
9609 impl ::fidl_next::FromWire<crate::wire::FileSignal> for FileSignal {
9610 #[inline]
9611 fn from_wire(wire: crate::wire::FileSignal) -> Self {
9612 Self::from(wire)
9613 }
9614 }
9615
9616 impl ::fidl_next::FromWireRef<crate::wire::FileSignal> for FileSignal {
9617 #[inline]
9618 fn from_wire_ref(wire: &crate::wire::FileSignal) -> Self {
9619 Self::from(*wire)
9620 }
9621 }
9622
9623 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9624 #[repr(C)]
9625 pub struct FilesystemInfo {
9626 pub total_bytes: u64,
9627
9628 pub used_bytes: u64,
9629
9630 pub total_nodes: u64,
9631
9632 pub used_nodes: u64,
9633
9634 pub free_shared_pool_bytes: u64,
9635
9636 pub fs_id: u64,
9637
9638 pub block_size: u32,
9639
9640 pub max_filename_size: u32,
9641
9642 pub fs_type: u32,
9643
9644 pub padding: u32,
9645
9646 pub name: [i8; 32],
9647 }
9648
9649 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FilesystemInfo, ___E> for FilesystemInfo
9650 where
9651 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9652 {
9653 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<Self, crate::wire::FilesystemInfo> = unsafe {
9654 ::fidl_next::CopyOptimization::enable_if(
9655 true
9656
9657 && <
9658 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
9659 >::COPY_OPTIMIZATION.is_enabled()
9660
9661 && <
9662 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
9663 >::COPY_OPTIMIZATION.is_enabled()
9664
9665 && <
9666 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
9667 >::COPY_OPTIMIZATION.is_enabled()
9668
9669 && <
9670 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
9671 >::COPY_OPTIMIZATION.is_enabled()
9672
9673 && <
9674 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
9675 >::COPY_OPTIMIZATION.is_enabled()
9676
9677 && <
9678 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
9679 >::COPY_OPTIMIZATION.is_enabled()
9680
9681 && <
9682 u32 as ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>
9683 >::COPY_OPTIMIZATION.is_enabled()
9684
9685 && <
9686 u32 as ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>
9687 >::COPY_OPTIMIZATION.is_enabled()
9688
9689 && <
9690 u32 as ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>
9691 >::COPY_OPTIMIZATION.is_enabled()
9692
9693 && <
9694 u32 as ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>
9695 >::COPY_OPTIMIZATION.is_enabled()
9696
9697 && <
9698 [i8; 32] as ::fidl_next::Encode<[i8; 32], ___E>
9699 >::COPY_OPTIMIZATION.is_enabled()
9700
9701 )
9702 };
9703
9704 #[inline]
9705 fn encode(
9706 self,
9707 encoder_: &mut ___E,
9708 out_: &mut ::core::mem::MaybeUninit<crate::wire::FilesystemInfo>,
9709 _: (),
9710 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9711 ::fidl_next::munge! {
9712 let crate::wire::FilesystemInfo {
9713 total_bytes,
9714 used_bytes,
9715 total_nodes,
9716 used_nodes,
9717 free_shared_pool_bytes,
9718 fs_id,
9719 block_size,
9720 max_filename_size,
9721 fs_type,
9722 padding,
9723 name,
9724
9725 } = out_;
9726 }
9727
9728 ::fidl_next::Encode::encode(self.total_bytes, encoder_, total_bytes, ())?;
9729
9730 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(total_bytes.as_mut_ptr()) };
9731
9732 ::fidl_next::Encode::encode(self.used_bytes, encoder_, used_bytes, ())?;
9733
9734 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(used_bytes.as_mut_ptr()) };
9735
9736 ::fidl_next::Encode::encode(self.total_nodes, encoder_, total_nodes, ())?;
9737
9738 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(total_nodes.as_mut_ptr()) };
9739
9740 ::fidl_next::Encode::encode(self.used_nodes, encoder_, used_nodes, ())?;
9741
9742 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(used_nodes.as_mut_ptr()) };
9743
9744 ::fidl_next::Encode::encode(
9745 self.free_shared_pool_bytes,
9746 encoder_,
9747 free_shared_pool_bytes,
9748 (),
9749 )?;
9750
9751 let mut _field =
9752 unsafe { ::fidl_next::Slot::new_unchecked(free_shared_pool_bytes.as_mut_ptr()) };
9753
9754 ::fidl_next::Encode::encode(self.fs_id, encoder_, fs_id, ())?;
9755
9756 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fs_id.as_mut_ptr()) };
9757
9758 ::fidl_next::Encode::encode(self.block_size, encoder_, block_size, ())?;
9759
9760 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(block_size.as_mut_ptr()) };
9761
9762 ::fidl_next::Encode::encode(self.max_filename_size, encoder_, max_filename_size, ())?;
9763
9764 let mut _field =
9765 unsafe { ::fidl_next::Slot::new_unchecked(max_filename_size.as_mut_ptr()) };
9766
9767 ::fidl_next::Encode::encode(self.fs_type, encoder_, fs_type, ())?;
9768
9769 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fs_type.as_mut_ptr()) };
9770
9771 ::fidl_next::Encode::encode(self.padding, encoder_, padding, ())?;
9772
9773 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(padding.as_mut_ptr()) };
9774
9775 ::fidl_next::Encode::encode(self.name, encoder_, name, ())?;
9776
9777 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
9778
9779 Ok(())
9780 }
9781 }
9782
9783 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FilesystemInfo, ___E> for &'a FilesystemInfo
9784 where
9785 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9786 {
9787 #[inline]
9788 fn encode(
9789 self,
9790 encoder_: &mut ___E,
9791 out_: &mut ::core::mem::MaybeUninit<crate::wire::FilesystemInfo>,
9792 _: (),
9793 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9794 ::fidl_next::munge! {
9795 let crate::wire::FilesystemInfo {
9796 total_bytes,
9797 used_bytes,
9798 total_nodes,
9799 used_nodes,
9800 free_shared_pool_bytes,
9801 fs_id,
9802 block_size,
9803 max_filename_size,
9804 fs_type,
9805 padding,
9806 name,
9807
9808 } = out_;
9809 }
9810
9811 ::fidl_next::Encode::encode(&self.total_bytes, encoder_, total_bytes, ())?;
9812
9813 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(total_bytes.as_mut_ptr()) };
9814
9815 ::fidl_next::Encode::encode(&self.used_bytes, encoder_, used_bytes, ())?;
9816
9817 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(used_bytes.as_mut_ptr()) };
9818
9819 ::fidl_next::Encode::encode(&self.total_nodes, encoder_, total_nodes, ())?;
9820
9821 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(total_nodes.as_mut_ptr()) };
9822
9823 ::fidl_next::Encode::encode(&self.used_nodes, encoder_, used_nodes, ())?;
9824
9825 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(used_nodes.as_mut_ptr()) };
9826
9827 ::fidl_next::Encode::encode(
9828 &self.free_shared_pool_bytes,
9829 encoder_,
9830 free_shared_pool_bytes,
9831 (),
9832 )?;
9833
9834 let mut _field =
9835 unsafe { ::fidl_next::Slot::new_unchecked(free_shared_pool_bytes.as_mut_ptr()) };
9836
9837 ::fidl_next::Encode::encode(&self.fs_id, encoder_, fs_id, ())?;
9838
9839 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fs_id.as_mut_ptr()) };
9840
9841 ::fidl_next::Encode::encode(&self.block_size, encoder_, block_size, ())?;
9842
9843 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(block_size.as_mut_ptr()) };
9844
9845 ::fidl_next::Encode::encode(&self.max_filename_size, encoder_, max_filename_size, ())?;
9846
9847 let mut _field =
9848 unsafe { ::fidl_next::Slot::new_unchecked(max_filename_size.as_mut_ptr()) };
9849
9850 ::fidl_next::Encode::encode(&self.fs_type, encoder_, fs_type, ())?;
9851
9852 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fs_type.as_mut_ptr()) };
9853
9854 ::fidl_next::Encode::encode(&self.padding, encoder_, padding, ())?;
9855
9856 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(padding.as_mut_ptr()) };
9857
9858 ::fidl_next::Encode::encode(&self.name, encoder_, name, ())?;
9859
9860 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
9861
9862 Ok(())
9863 }
9864 }
9865
9866 unsafe impl<___E>
9867 ::fidl_next::EncodeOption<
9868 ::fidl_next::wire::Box<'static, crate::wire::FilesystemInfo>,
9869 ___E,
9870 > for FilesystemInfo
9871 where
9872 ___E: ::fidl_next::Encoder + ?Sized,
9873 FilesystemInfo: ::fidl_next::Encode<crate::wire::FilesystemInfo, ___E>,
9874 {
9875 #[inline]
9876 fn encode_option(
9877 this: ::core::option::Option<Self>,
9878 encoder: &mut ___E,
9879 out: &mut ::core::mem::MaybeUninit<
9880 ::fidl_next::wire::Box<'static, crate::wire::FilesystemInfo>,
9881 >,
9882 _: (),
9883 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9884 if let Some(inner) = this {
9885 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9886 ::fidl_next::wire::Box::encode_present(out);
9887 } else {
9888 ::fidl_next::wire::Box::encode_absent(out);
9889 }
9890
9891 Ok(())
9892 }
9893 }
9894
9895 unsafe impl<'a, ___E>
9896 ::fidl_next::EncodeOption<
9897 ::fidl_next::wire::Box<'static, crate::wire::FilesystemInfo>,
9898 ___E,
9899 > for &'a FilesystemInfo
9900 where
9901 ___E: ::fidl_next::Encoder + ?Sized,
9902 &'a FilesystemInfo: ::fidl_next::Encode<crate::wire::FilesystemInfo, ___E>,
9903 {
9904 #[inline]
9905 fn encode_option(
9906 this: ::core::option::Option<Self>,
9907 encoder: &mut ___E,
9908 out: &mut ::core::mem::MaybeUninit<
9909 ::fidl_next::wire::Box<'static, crate::wire::FilesystemInfo>,
9910 >,
9911 _: (),
9912 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9913 if let Some(inner) = this {
9914 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9915 ::fidl_next::wire::Box::encode_present(out);
9916 } else {
9917 ::fidl_next::wire::Box::encode_absent(out);
9918 }
9919
9920 Ok(())
9921 }
9922 }
9923
9924 impl ::fidl_next::FromWire<crate::wire::FilesystemInfo> for FilesystemInfo {
9925 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<crate::wire::FilesystemInfo, Self> = unsafe {
9926 ::fidl_next::CopyOptimization::enable_if(
9927 true
9928 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
9929 .is_enabled()
9930 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
9931 .is_enabled()
9932 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
9933 .is_enabled()
9934 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
9935 .is_enabled()
9936 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
9937 .is_enabled()
9938 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
9939 .is_enabled()
9940 && <u32 as ::fidl_next::FromWire<::fidl_next::wire::Uint32>>::COPY_OPTIMIZATION
9941 .is_enabled()
9942 && <u32 as ::fidl_next::FromWire<::fidl_next::wire::Uint32>>::COPY_OPTIMIZATION
9943 .is_enabled()
9944 && <u32 as ::fidl_next::FromWire<::fidl_next::wire::Uint32>>::COPY_OPTIMIZATION
9945 .is_enabled()
9946 && <u32 as ::fidl_next::FromWire<::fidl_next::wire::Uint32>>::COPY_OPTIMIZATION
9947 .is_enabled()
9948 && <[i8; 32] as ::fidl_next::FromWire<[i8; 32]>>::COPY_OPTIMIZATION
9949 .is_enabled(),
9950 )
9951 };
9952
9953 #[inline]
9954 fn from_wire(wire: crate::wire::FilesystemInfo) -> Self {
9955 Self {
9956 total_bytes: ::fidl_next::FromWire::from_wire(wire.total_bytes),
9957
9958 used_bytes: ::fidl_next::FromWire::from_wire(wire.used_bytes),
9959
9960 total_nodes: ::fidl_next::FromWire::from_wire(wire.total_nodes),
9961
9962 used_nodes: ::fidl_next::FromWire::from_wire(wire.used_nodes),
9963
9964 free_shared_pool_bytes: ::fidl_next::FromWire::from_wire(
9965 wire.free_shared_pool_bytes,
9966 ),
9967
9968 fs_id: ::fidl_next::FromWire::from_wire(wire.fs_id),
9969
9970 block_size: ::fidl_next::FromWire::from_wire(wire.block_size),
9971
9972 max_filename_size: ::fidl_next::FromWire::from_wire(wire.max_filename_size),
9973
9974 fs_type: ::fidl_next::FromWire::from_wire(wire.fs_type),
9975
9976 padding: ::fidl_next::FromWire::from_wire(wire.padding),
9977
9978 name: ::fidl_next::FromWire::from_wire(wire.name),
9979 }
9980 }
9981 }
9982
9983 impl ::fidl_next::FromWireRef<crate::wire::FilesystemInfo> for FilesystemInfo {
9984 #[inline]
9985 fn from_wire_ref(wire: &crate::wire::FilesystemInfo) -> Self {
9986 Self {
9987 total_bytes: ::fidl_next::FromWireRef::from_wire_ref(&wire.total_bytes),
9988
9989 used_bytes: ::fidl_next::FromWireRef::from_wire_ref(&wire.used_bytes),
9990
9991 total_nodes: ::fidl_next::FromWireRef::from_wire_ref(&wire.total_nodes),
9992
9993 used_nodes: ::fidl_next::FromWireRef::from_wire_ref(&wire.used_nodes),
9994
9995 free_shared_pool_bytes: ::fidl_next::FromWireRef::from_wire_ref(
9996 &wire.free_shared_pool_bytes,
9997 ),
9998
9999 fs_id: ::fidl_next::FromWireRef::from_wire_ref(&wire.fs_id),
10000
10001 block_size: ::fidl_next::FromWireRef::from_wire_ref(&wire.block_size),
10002
10003 max_filename_size: ::fidl_next::FromWireRef::from_wire_ref(&wire.max_filename_size),
10004
10005 fs_type: ::fidl_next::FromWireRef::from_wire_ref(&wire.fs_type),
10006
10007 padding: ::fidl_next::FromWireRef::from_wire_ref(&wire.padding),
10008
10009 name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name),
10010 }
10011 }
10012 }
10013
10014 pub type Service = ();
10015
10016 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
10017 pub struct SymlinkObject {
10018 pub target: ::std::vec::Vec<u8>,
10019 }
10020
10021 unsafe impl<___E> ::fidl_next::Encode<crate::wire::SymlinkObject<'static>, ___E> for SymlinkObject
10022 where
10023 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
10024 ___E: ::fidl_next::Encoder,
10025 {
10026 #[inline]
10027 fn encode(
10028 self,
10029 encoder_: &mut ___E,
10030 out_: &mut ::core::mem::MaybeUninit<crate::wire::SymlinkObject<'static>>,
10031 _: (),
10032 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10033 ::fidl_next::munge! {
10034 let crate::wire::SymlinkObject {
10035 target,
10036
10037 } = out_;
10038 }
10039
10040 ::fidl_next::Encode::encode(self.target, encoder_, target, (4095, ()))?;
10041
10042 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(target.as_mut_ptr()) };
10043 ::fidl_next::Constrained::validate(_field, (4095, ()))?;
10044
10045 Ok(())
10046 }
10047 }
10048
10049 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::SymlinkObject<'static>, ___E>
10050 for &'a SymlinkObject
10051 where
10052 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
10053 ___E: ::fidl_next::Encoder,
10054 {
10055 #[inline]
10056 fn encode(
10057 self,
10058 encoder_: &mut ___E,
10059 out_: &mut ::core::mem::MaybeUninit<crate::wire::SymlinkObject<'static>>,
10060 _: (),
10061 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10062 ::fidl_next::munge! {
10063 let crate::wire::SymlinkObject {
10064 target,
10065
10066 } = out_;
10067 }
10068
10069 ::fidl_next::Encode::encode(&self.target, encoder_, target, (4095, ()))?;
10070
10071 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(target.as_mut_ptr()) };
10072 ::fidl_next::Constrained::validate(_field, (4095, ()))?;
10073
10074 Ok(())
10075 }
10076 }
10077
10078 unsafe impl<___E>
10079 ::fidl_next::EncodeOption<
10080 ::fidl_next::wire::Box<'static, crate::wire::SymlinkObject<'static>>,
10081 ___E,
10082 > for SymlinkObject
10083 where
10084 ___E: ::fidl_next::Encoder + ?Sized,
10085 SymlinkObject: ::fidl_next::Encode<crate::wire::SymlinkObject<'static>, ___E>,
10086 {
10087 #[inline]
10088 fn encode_option(
10089 this: ::core::option::Option<Self>,
10090 encoder: &mut ___E,
10091 out: &mut ::core::mem::MaybeUninit<
10092 ::fidl_next::wire::Box<'static, crate::wire::SymlinkObject<'static>>,
10093 >,
10094 _: (),
10095 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10096 if let Some(inner) = this {
10097 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
10098 ::fidl_next::wire::Box::encode_present(out);
10099 } else {
10100 ::fidl_next::wire::Box::encode_absent(out);
10101 }
10102
10103 Ok(())
10104 }
10105 }
10106
10107 unsafe impl<'a, ___E>
10108 ::fidl_next::EncodeOption<
10109 ::fidl_next::wire::Box<'static, crate::wire::SymlinkObject<'static>>,
10110 ___E,
10111 > for &'a SymlinkObject
10112 where
10113 ___E: ::fidl_next::Encoder + ?Sized,
10114 &'a SymlinkObject: ::fidl_next::Encode<crate::wire::SymlinkObject<'static>, ___E>,
10115 {
10116 #[inline]
10117 fn encode_option(
10118 this: ::core::option::Option<Self>,
10119 encoder: &mut ___E,
10120 out: &mut ::core::mem::MaybeUninit<
10121 ::fidl_next::wire::Box<'static, crate::wire::SymlinkObject<'static>>,
10122 >,
10123 _: (),
10124 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10125 if let Some(inner) = this {
10126 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
10127 ::fidl_next::wire::Box::encode_present(out);
10128 } else {
10129 ::fidl_next::wire::Box::encode_absent(out);
10130 }
10131
10132 Ok(())
10133 }
10134 }
10135
10136 impl<'de> ::fidl_next::FromWire<crate::wire::SymlinkObject<'de>> for SymlinkObject {
10137 #[inline]
10138 fn from_wire(wire: crate::wire::SymlinkObject<'de>) -> Self {
10139 Self { target: ::fidl_next::FromWire::from_wire(wire.target) }
10140 }
10141 }
10142
10143 impl<'de> ::fidl_next::FromWireRef<crate::wire::SymlinkObject<'de>> for SymlinkObject {
10144 #[inline]
10145 fn from_wire_ref(wire: &crate::wire::SymlinkObject<'de>) -> Self {
10146 Self { target: ::fidl_next::FromWireRef::from_wire_ref(&wire.target) }
10147 }
10148 }
10149
10150 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
10151 #[repr(u8)]
10152 pub enum WatchEvent {
10153 Deleted = 0,
10154 Added = 1,
10155 Removed = 2,
10156 Existing = 3,
10157 Idle = 4,
10158 }
10159 impl ::core::convert::TryFrom<u8> for WatchEvent {
10160 type Error = ::fidl_next::UnknownStrictEnumMemberError;
10161 fn try_from(
10162 value: u8,
10163 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
10164 match value {
10165 0 => Ok(Self::Deleted),
10166 1 => Ok(Self::Added),
10167 2 => Ok(Self::Removed),
10168 3 => Ok(Self::Existing),
10169 4 => Ok(Self::Idle),
10170
10171 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
10172 }
10173 }
10174 }
10175
10176 unsafe impl<___E> ::fidl_next::Encode<crate::wire::WatchEvent, ___E> for WatchEvent
10177 where
10178 ___E: ?Sized,
10179 {
10180 #[inline]
10181 fn encode(
10182 self,
10183 encoder: &mut ___E,
10184 out: &mut ::core::mem::MaybeUninit<crate::wire::WatchEvent>,
10185 _: (),
10186 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10187 ::fidl_next::Encode::encode(&self, encoder, out, ())
10188 }
10189 }
10190
10191 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::WatchEvent, ___E> for &'a WatchEvent
10192 where
10193 ___E: ?Sized,
10194 {
10195 #[inline]
10196 fn encode(
10197 self,
10198 encoder: &mut ___E,
10199 out: &mut ::core::mem::MaybeUninit<crate::wire::WatchEvent>,
10200 _: (),
10201 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10202 ::fidl_next::munge!(let crate::wire::WatchEvent { value } = out);
10203 let _ = value.write(u8::from(match *self {
10204 WatchEvent::Deleted => 0,
10205
10206 WatchEvent::Added => 1,
10207
10208 WatchEvent::Removed => 2,
10209
10210 WatchEvent::Existing => 3,
10211
10212 WatchEvent::Idle => 4,
10213 }));
10214
10215 Ok(())
10216 }
10217 }
10218
10219 impl ::core::convert::From<crate::wire::WatchEvent> for WatchEvent {
10220 fn from(wire: crate::wire::WatchEvent) -> Self {
10221 match u8::from(wire.value) {
10222 0 => Self::Deleted,
10223
10224 1 => Self::Added,
10225
10226 2 => Self::Removed,
10227
10228 3 => Self::Existing,
10229
10230 4 => Self::Idle,
10231
10232 _ => unsafe { ::core::hint::unreachable_unchecked() },
10233 }
10234 }
10235 }
10236
10237 impl ::fidl_next::FromWire<crate::wire::WatchEvent> for WatchEvent {
10238 #[inline]
10239 fn from_wire(wire: crate::wire::WatchEvent) -> Self {
10240 Self::from(wire)
10241 }
10242 }
10243
10244 impl ::fidl_next::FromWireRef<crate::wire::WatchEvent> for WatchEvent {
10245 #[inline]
10246 fn from_wire_ref(wire: &crate::wire::WatchEvent) -> Self {
10247 Self::from(*wire)
10248 }
10249 }
10250}
10251
10252pub mod wire {
10253
10254 #[derive(Clone, Copy, Debug)]
10256 #[repr(transparent)]
10257 pub struct Operations {
10258 pub(crate) value: ::fidl_next::wire::Uint64,
10259 }
10260
10261 impl ::fidl_next::Constrained for Operations {
10262 type Constraint = ();
10263
10264 fn validate(
10265 _: ::fidl_next::Slot<'_, Self>,
10266 _: Self::Constraint,
10267 ) -> Result<(), ::fidl_next::ValidationError> {
10268 Ok(())
10269 }
10270 }
10271
10272 unsafe impl ::fidl_next::Wire for Operations {
10273 type Narrowed<'de> = Self;
10274
10275 #[inline]
10276 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
10277 }
10279 }
10280
10281 unsafe impl<___D> ::fidl_next::Decode<___D> for Operations
10282 where
10283 ___D: ?Sized,
10284 {
10285 fn decode(
10286 slot: ::fidl_next::Slot<'_, Self>,
10287 _: &mut ___D,
10288 _: (),
10289 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10290 Ok(())
10291 }
10292 }
10293
10294 impl ::core::convert::From<crate::natural::Operations> for Operations {
10295 fn from(natural: crate::natural::Operations) -> Self {
10296 Self { value: ::fidl_next::wire::Uint64::from(natural.bits()) }
10297 }
10298 }
10299
10300 impl ::fidl_next::IntoNatural for Operations {
10301 type Natural = crate::natural::Operations;
10302 }
10303
10304 pub type Abilities = crate::wire::Operations;
10306
10307 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
10309 #[repr(transparent)]
10310 pub struct SeekOrigin {
10311 pub(crate) value: ::fidl_next::wire::Uint32,
10312 }
10313
10314 impl ::fidl_next::Constrained for SeekOrigin {
10315 type Constraint = ();
10316
10317 fn validate(
10318 _: ::fidl_next::Slot<'_, Self>,
10319 _: Self::Constraint,
10320 ) -> Result<(), ::fidl_next::ValidationError> {
10321 Ok(())
10322 }
10323 }
10324
10325 unsafe impl ::fidl_next::Wire for SeekOrigin {
10326 type Narrowed<'de> = Self;
10327
10328 #[inline]
10329 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
10330 }
10332 }
10333
10334 impl SeekOrigin {
10335 pub const START: SeekOrigin = SeekOrigin { value: ::fidl_next::wire::Uint32(0) };
10336
10337 pub const CURRENT: SeekOrigin = SeekOrigin { value: ::fidl_next::wire::Uint32(1) };
10338
10339 pub const END: SeekOrigin = SeekOrigin { value: ::fidl_next::wire::Uint32(2) };
10340 }
10341
10342 unsafe impl<___D> ::fidl_next::Decode<___D> for SeekOrigin
10343 where
10344 ___D: ?Sized,
10345 {
10346 fn decode(
10347 slot: ::fidl_next::Slot<'_, Self>,
10348 _: &mut ___D,
10349 _: (),
10350 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10351 ::fidl_next::munge!(let Self { value } = slot);
10352
10353 match u32::from(*value) {
10354 0 | 1 | 2 => (),
10355 unknown => {
10356 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
10357 }
10358 }
10359
10360 Ok(())
10361 }
10362 }
10363
10364 impl ::core::convert::From<crate::natural::SeekOrigin> for SeekOrigin {
10365 fn from(natural: crate::natural::SeekOrigin) -> Self {
10366 match natural {
10367 crate::natural::SeekOrigin::Start => SeekOrigin::START,
10368
10369 crate::natural::SeekOrigin::Current => SeekOrigin::CURRENT,
10370
10371 crate::natural::SeekOrigin::End => SeekOrigin::END,
10372 }
10373 }
10374 }
10375
10376 impl ::fidl_next::IntoNatural for SeekOrigin {
10377 type Natural = crate::natural::SeekOrigin;
10378 }
10379
10380 #[derive(Clone, Debug)]
10382 #[repr(C)]
10383 pub struct AdvisoryLockRange {
10384 pub origin: crate::wire::SeekOrigin,
10385
10386 pub offset: ::fidl_next::wire::Int64,
10387
10388 pub length: ::fidl_next::wire::Int64,
10389 }
10390
10391 static_assertions::const_assert_eq!(std::mem::size_of::<AdvisoryLockRange>(), 24);
10392 static_assertions::const_assert_eq!(std::mem::align_of::<AdvisoryLockRange>(), 8);
10393
10394 static_assertions::const_assert_eq!(std::mem::offset_of!(AdvisoryLockRange, origin), 0);
10395
10396 static_assertions::const_assert_eq!(std::mem::offset_of!(AdvisoryLockRange, offset), 8);
10397
10398 static_assertions::const_assert_eq!(std::mem::offset_of!(AdvisoryLockRange, length), 16);
10399
10400 impl ::fidl_next::Constrained for AdvisoryLockRange {
10401 type Constraint = ();
10402
10403 fn validate(
10404 _: ::fidl_next::Slot<'_, Self>,
10405 _: Self::Constraint,
10406 ) -> Result<(), ::fidl_next::ValidationError> {
10407 Ok(())
10408 }
10409 }
10410
10411 unsafe impl ::fidl_next::Wire for AdvisoryLockRange {
10412 type Narrowed<'de> = AdvisoryLockRange;
10413
10414 #[inline]
10415 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
10416 ::fidl_next::munge! {
10417 let Self {
10418 origin,
10419 offset,
10420 length,
10421
10422 } = &mut *out_;
10423 }
10424
10425 ::fidl_next::Wire::zero_padding(origin);
10426
10427 ::fidl_next::Wire::zero_padding(offset);
10428
10429 ::fidl_next::Wire::zero_padding(length);
10430
10431 unsafe {
10432 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
10433 }
10434 }
10435 }
10436
10437 unsafe impl<___D> ::fidl_next::Decode<___D> for AdvisoryLockRange
10438 where
10439 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
10440 {
10441 fn decode(
10442 slot_: ::fidl_next::Slot<'_, Self>,
10443 decoder_: &mut ___D,
10444 _: (),
10445 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10446 if slot_.as_bytes()[4..8] != [0u8; 4] {
10447 return Err(::fidl_next::DecodeError::InvalidPadding);
10448 }
10449
10450 ::fidl_next::munge! {
10451 let Self {
10452 mut origin,
10453 mut offset,
10454 mut length,
10455
10456 } = slot_;
10457 }
10458
10459 let _field = origin.as_mut();
10460
10461 ::fidl_next::Decode::decode(origin.as_mut(), decoder_, ())?;
10462
10463 let _field = offset.as_mut();
10464
10465 ::fidl_next::Decode::decode(offset.as_mut(), decoder_, ())?;
10466
10467 let _field = length.as_mut();
10468
10469 ::fidl_next::Decode::decode(length.as_mut(), decoder_, ())?;
10470
10471 Ok(())
10472 }
10473 }
10474
10475 impl ::fidl_next::IntoNatural for AdvisoryLockRange {
10476 type Natural = crate::natural::AdvisoryLockRange;
10477 }
10478
10479 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
10481 #[repr(transparent)]
10482 pub struct AdvisoryLockType {
10483 pub(crate) value: ::fidl_next::wire::Uint32,
10484 }
10485
10486 impl ::fidl_next::Constrained for AdvisoryLockType {
10487 type Constraint = ();
10488
10489 fn validate(
10490 _: ::fidl_next::Slot<'_, Self>,
10491 _: Self::Constraint,
10492 ) -> Result<(), ::fidl_next::ValidationError> {
10493 Ok(())
10494 }
10495 }
10496
10497 unsafe impl ::fidl_next::Wire for AdvisoryLockType {
10498 type Narrowed<'de> = Self;
10499
10500 #[inline]
10501 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
10502 }
10504 }
10505
10506 impl AdvisoryLockType {
10507 pub const READ: AdvisoryLockType = AdvisoryLockType { value: ::fidl_next::wire::Uint32(1) };
10508
10509 pub const WRITE: AdvisoryLockType =
10510 AdvisoryLockType { value: ::fidl_next::wire::Uint32(2) };
10511
10512 pub const UNLOCK: AdvisoryLockType =
10513 AdvisoryLockType { value: ::fidl_next::wire::Uint32(3) };
10514 }
10515
10516 unsafe impl<___D> ::fidl_next::Decode<___D> for AdvisoryLockType
10517 where
10518 ___D: ?Sized,
10519 {
10520 fn decode(
10521 slot: ::fidl_next::Slot<'_, Self>,
10522 _: &mut ___D,
10523 _: (),
10524 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10525 ::fidl_next::munge!(let Self { value } = slot);
10526
10527 match u32::from(*value) {
10528 1 | 2 | 3 => (),
10529 unknown => {
10530 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
10531 }
10532 }
10533
10534 Ok(())
10535 }
10536 }
10537
10538 impl ::core::convert::From<crate::natural::AdvisoryLockType> for AdvisoryLockType {
10539 fn from(natural: crate::natural::AdvisoryLockType) -> Self {
10540 match natural {
10541 crate::natural::AdvisoryLockType::Read => AdvisoryLockType::READ,
10542
10543 crate::natural::AdvisoryLockType::Write => AdvisoryLockType::WRITE,
10544
10545 crate::natural::AdvisoryLockType::Unlock => AdvisoryLockType::UNLOCK,
10546 }
10547 }
10548 }
10549
10550 impl ::fidl_next::IntoNatural for AdvisoryLockType {
10551 type Natural = crate::natural::AdvisoryLockType;
10552 }
10553
10554 #[repr(C)]
10556 pub struct AdvisoryLockRequest<'de> {
10557 pub(crate) table: ::fidl_next::wire::Table<'de>,
10558 }
10559
10560 impl<'de> Drop for AdvisoryLockRequest<'de> {
10561 fn drop(&mut self) {
10562 let _ = self.table.get(1).map(|envelope| unsafe {
10563 envelope.read_unchecked::<crate::wire::AdvisoryLockType>()
10564 });
10565
10566 let _ = self.table.get(2).map(|envelope| unsafe {
10567 envelope.read_unchecked::<crate::wire::AdvisoryLockRange>()
10568 });
10569
10570 let _ = self.table.get(3).map(|envelope| unsafe { envelope.read_unchecked::<bool>() });
10571 }
10572 }
10573
10574 impl ::fidl_next::Constrained for AdvisoryLockRequest<'_> {
10575 type Constraint = ();
10576
10577 fn validate(
10578 _: ::fidl_next::Slot<'_, Self>,
10579 _: Self::Constraint,
10580 ) -> Result<(), ::fidl_next::ValidationError> {
10581 Ok(())
10582 }
10583 }
10584
10585 unsafe impl ::fidl_next::Wire for AdvisoryLockRequest<'static> {
10586 type Narrowed<'de> = AdvisoryLockRequest<'de>;
10587
10588 #[inline]
10589 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
10590 ::fidl_next::munge!(let Self { table } = out);
10591 ::fidl_next::wire::Table::zero_padding(table);
10592 }
10593 }
10594
10595 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for AdvisoryLockRequest<'de>
10596 where
10597 ___D: ::fidl_next::Decoder<'de> + ?Sized,
10598 {
10599 fn decode(
10600 slot: ::fidl_next::Slot<'_, Self>,
10601 decoder: &mut ___D,
10602 _: (),
10603 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10604 ::fidl_next::munge!(let Self { table } = slot);
10605
10606 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
10607 match ordinal {
10608 0 => unsafe { ::core::hint::unreachable_unchecked() },
10609
10610 1 => {
10611 ::fidl_next::wire::Envelope::decode_as::<
10612 ___D,
10613 crate::wire::AdvisoryLockType,
10614 >(slot.as_mut(), decoder, ())?;
10615
10616 Ok(())
10617 }
10618
10619 2 => {
10620 ::fidl_next::wire::Envelope::decode_as::<
10621 ___D,
10622 crate::wire::AdvisoryLockRange,
10623 >(slot.as_mut(), decoder, ())?;
10624
10625 Ok(())
10626 }
10627
10628 3 => {
10629 ::fidl_next::wire::Envelope::decode_as::<___D, bool>(
10630 slot.as_mut(),
10631 decoder,
10632 (),
10633 )?;
10634
10635 Ok(())
10636 }
10637
10638 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
10639 }
10640 })
10641 }
10642 }
10643
10644 impl<'de> AdvisoryLockRequest<'de> {
10645 pub fn type_(&self) -> ::core::option::Option<&crate::wire::AdvisoryLockType> {
10646 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
10647 }
10648
10649 pub fn take_type_(&mut self) -> ::core::option::Option<crate::wire::AdvisoryLockType> {
10650 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
10651 }
10652
10653 pub fn range(&self) -> ::core::option::Option<&crate::wire::AdvisoryLockRange> {
10654 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
10655 }
10656
10657 pub fn take_range(&mut self) -> ::core::option::Option<crate::wire::AdvisoryLockRange> {
10658 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
10659 }
10660
10661 pub fn wait(&self) -> ::core::option::Option<&bool> {
10662 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
10663 }
10664
10665 pub fn take_wait(&mut self) -> ::core::option::Option<bool> {
10666 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
10667 }
10668 }
10669
10670 impl<'de> ::core::fmt::Debug for AdvisoryLockRequest<'de> {
10671 fn fmt(
10672 &self,
10673 f: &mut ::core::fmt::Formatter<'_>,
10674 ) -> ::core::result::Result<(), ::core::fmt::Error> {
10675 f.debug_struct("AdvisoryLockRequest")
10676 .field("type_", &self.type_())
10677 .field("range", &self.range())
10678 .field("wait", &self.wait())
10679 .finish()
10680 }
10681 }
10682
10683 impl<'de> ::fidl_next::IntoNatural for AdvisoryLockRequest<'de> {
10684 type Natural = crate::natural::AdvisoryLockRequest;
10685 }
10686
10687 #[derive(Debug)]
10689 #[repr(C)]
10690 pub struct AdvisoryLockingAdvisoryLockRequest<'de> {
10691 pub request: crate::wire::AdvisoryLockRequest<'de>,
10692 }
10693
10694 static_assertions::const_assert_eq!(
10695 std::mem::size_of::<AdvisoryLockingAdvisoryLockRequest<'_>>(),
10696 16
10697 );
10698 static_assertions::const_assert_eq!(
10699 std::mem::align_of::<AdvisoryLockingAdvisoryLockRequest<'_>>(),
10700 8
10701 );
10702
10703 static_assertions::const_assert_eq!(
10704 std::mem::offset_of!(AdvisoryLockingAdvisoryLockRequest<'_>, request),
10705 0
10706 );
10707
10708 impl ::fidl_next::Constrained for AdvisoryLockingAdvisoryLockRequest<'_> {
10709 type Constraint = ();
10710
10711 fn validate(
10712 _: ::fidl_next::Slot<'_, Self>,
10713 _: Self::Constraint,
10714 ) -> Result<(), ::fidl_next::ValidationError> {
10715 Ok(())
10716 }
10717 }
10718
10719 unsafe impl ::fidl_next::Wire for AdvisoryLockingAdvisoryLockRequest<'static> {
10720 type Narrowed<'de> = AdvisoryLockingAdvisoryLockRequest<'de>;
10721
10722 #[inline]
10723 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
10724 ::fidl_next::munge! {
10725 let Self {
10726 request,
10727
10728 } = &mut *out_;
10729 }
10730
10731 ::fidl_next::Wire::zero_padding(request);
10732 }
10733 }
10734
10735 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for AdvisoryLockingAdvisoryLockRequest<'de>
10736 where
10737 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
10738 ___D: ::fidl_next::Decoder<'de>,
10739 {
10740 fn decode(
10741 slot_: ::fidl_next::Slot<'_, Self>,
10742 decoder_: &mut ___D,
10743 _: (),
10744 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10745 ::fidl_next::munge! {
10746 let Self {
10747 mut request,
10748
10749 } = slot_;
10750 }
10751
10752 let _field = request.as_mut();
10753
10754 ::fidl_next::Decode::decode(request.as_mut(), decoder_, ())?;
10755
10756 Ok(())
10757 }
10758 }
10759
10760 impl<'de> ::fidl_next::IntoNatural for AdvisoryLockingAdvisoryLockRequest<'de> {
10761 type Natural = crate::natural::AdvisoryLockingAdvisoryLockRequest;
10762 }
10763
10764 pub type AdvisoryLockingAdvisoryLockResponse = ::fidl_next::wire::Unit;
10766
10767 #[derive(Clone, Copy, Debug)]
10769 #[repr(transparent)]
10770 pub struct AllocateMode {
10771 pub(crate) value: ::fidl_next::wire::Uint32,
10772 }
10773
10774 impl ::fidl_next::Constrained for AllocateMode {
10775 type Constraint = ();
10776
10777 fn validate(
10778 _: ::fidl_next::Slot<'_, Self>,
10779 _: Self::Constraint,
10780 ) -> Result<(), ::fidl_next::ValidationError> {
10781 Ok(())
10782 }
10783 }
10784
10785 unsafe impl ::fidl_next::Wire for AllocateMode {
10786 type Narrowed<'de> = Self;
10787
10788 #[inline]
10789 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
10790 }
10792 }
10793
10794 unsafe impl<___D> ::fidl_next::Decode<___D> for AllocateMode
10795 where
10796 ___D: ?Sized,
10797 {
10798 fn decode(
10799 slot: ::fidl_next::Slot<'_, Self>,
10800 _: &mut ___D,
10801 _: (),
10802 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10803 Ok(())
10804 }
10805 }
10806
10807 impl ::core::convert::From<crate::natural::AllocateMode> for AllocateMode {
10808 fn from(natural: crate::natural::AllocateMode) -> Self {
10809 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
10810 }
10811 }
10812
10813 impl ::fidl_next::IntoNatural for AllocateMode {
10814 type Natural = crate::natural::AllocateMode;
10815 }
10816
10817 pub type Rights = crate::wire::Operations;
10819
10820 pub type Id = ::fidl_next::wire::Uint64;
10822
10823 #[derive(Clone, Copy, Debug)]
10825 #[repr(transparent)]
10826 pub struct OpenFlags {
10827 pub(crate) value: ::fidl_next::wire::Uint32,
10828 }
10829
10830 impl ::fidl_next::Constrained for OpenFlags {
10831 type Constraint = ();
10832
10833 fn validate(
10834 _: ::fidl_next::Slot<'_, Self>,
10835 _: Self::Constraint,
10836 ) -> Result<(), ::fidl_next::ValidationError> {
10837 Ok(())
10838 }
10839 }
10840
10841 unsafe impl ::fidl_next::Wire for OpenFlags {
10842 type Narrowed<'de> = Self;
10843
10844 #[inline]
10845 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
10846 }
10848 }
10849
10850 unsafe impl<___D> ::fidl_next::Decode<___D> for OpenFlags
10851 where
10852 ___D: ?Sized,
10853 {
10854 fn decode(
10855 slot: ::fidl_next::Slot<'_, Self>,
10856 _: &mut ___D,
10857 _: (),
10858 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10859 ::fidl_next::munge!(let Self { value } = slot);
10860 let set = u32::from(*value);
10861 if set & !crate::natural::OpenFlags::all().bits() != 0 {
10862 return Err(::fidl_next::DecodeError::InvalidBits {
10863 expected: crate::natural::OpenFlags::all().bits() as usize,
10864 actual: set as usize,
10865 });
10866 }
10867
10868 Ok(())
10869 }
10870 }
10871
10872 impl ::core::convert::From<crate::natural::OpenFlags> for OpenFlags {
10873 fn from(natural: crate::natural::OpenFlags) -> Self {
10874 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
10875 }
10876 }
10877
10878 impl ::fidl_next::IntoNatural for OpenFlags {
10879 type Natural = crate::natural::OpenFlags;
10880 }
10881
10882 #[derive(Clone, Debug)]
10884 #[repr(C)]
10885 pub struct NodeAttributes {
10886 pub mode: ::fidl_next::wire::Uint32,
10887
10888 pub id: ::fidl_next::wire::Uint64,
10889
10890 pub content_size: ::fidl_next::wire::Uint64,
10891
10892 pub storage_size: ::fidl_next::wire::Uint64,
10893
10894 pub link_count: ::fidl_next::wire::Uint64,
10895
10896 pub creation_time: ::fidl_next::wire::Uint64,
10897
10898 pub modification_time: ::fidl_next::wire::Uint64,
10899 }
10900
10901 static_assertions::const_assert_eq!(std::mem::size_of::<NodeAttributes>(), 56);
10902 static_assertions::const_assert_eq!(std::mem::align_of::<NodeAttributes>(), 8);
10903
10904 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeAttributes, mode), 0);
10905
10906 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeAttributes, id), 8);
10907
10908 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeAttributes, content_size), 16);
10909
10910 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeAttributes, storage_size), 24);
10911
10912 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeAttributes, link_count), 32);
10913
10914 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeAttributes, creation_time), 40);
10915
10916 static_assertions::const_assert_eq!(
10917 std::mem::offset_of!(NodeAttributes, modification_time),
10918 48
10919 );
10920
10921 impl ::fidl_next::Constrained for NodeAttributes {
10922 type Constraint = ();
10923
10924 fn validate(
10925 _: ::fidl_next::Slot<'_, Self>,
10926 _: Self::Constraint,
10927 ) -> Result<(), ::fidl_next::ValidationError> {
10928 Ok(())
10929 }
10930 }
10931
10932 unsafe impl ::fidl_next::Wire for NodeAttributes {
10933 type Narrowed<'de> = NodeAttributes;
10934
10935 #[inline]
10936 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
10937 ::fidl_next::munge! {
10938 let Self {
10939 mode,
10940 id,
10941 content_size,
10942 storage_size,
10943 link_count,
10944 creation_time,
10945 modification_time,
10946
10947 } = &mut *out_;
10948 }
10949
10950 ::fidl_next::Wire::zero_padding(mode);
10951
10952 ::fidl_next::Wire::zero_padding(id);
10953
10954 ::fidl_next::Wire::zero_padding(content_size);
10955
10956 ::fidl_next::Wire::zero_padding(storage_size);
10957
10958 ::fidl_next::Wire::zero_padding(link_count);
10959
10960 ::fidl_next::Wire::zero_padding(creation_time);
10961
10962 ::fidl_next::Wire::zero_padding(modification_time);
10963
10964 unsafe {
10965 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
10966 }
10967 }
10968 }
10969
10970 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeAttributes
10971 where
10972 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
10973 {
10974 fn decode(
10975 slot_: ::fidl_next::Slot<'_, Self>,
10976 decoder_: &mut ___D,
10977 _: (),
10978 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10979 if slot_.as_bytes()[4..8] != [0u8; 4] {
10980 return Err(::fidl_next::DecodeError::InvalidPadding);
10981 }
10982
10983 ::fidl_next::munge! {
10984 let Self {
10985 mut mode,
10986 mut id,
10987 mut content_size,
10988 mut storage_size,
10989 mut link_count,
10990 mut creation_time,
10991 mut modification_time,
10992
10993 } = slot_;
10994 }
10995
10996 let _field = mode.as_mut();
10997
10998 ::fidl_next::Decode::decode(mode.as_mut(), decoder_, ())?;
10999
11000 let _field = id.as_mut();
11001
11002 ::fidl_next::Decode::decode(id.as_mut(), decoder_, ())?;
11003
11004 let _field = content_size.as_mut();
11005
11006 ::fidl_next::Decode::decode(content_size.as_mut(), decoder_, ())?;
11007
11008 let _field = storage_size.as_mut();
11009
11010 ::fidl_next::Decode::decode(storage_size.as_mut(), decoder_, ())?;
11011
11012 let _field = link_count.as_mut();
11013
11014 ::fidl_next::Decode::decode(link_count.as_mut(), decoder_, ())?;
11015
11016 let _field = creation_time.as_mut();
11017
11018 ::fidl_next::Decode::decode(creation_time.as_mut(), decoder_, ())?;
11019
11020 let _field = modification_time.as_mut();
11021
11022 ::fidl_next::Decode::decode(modification_time.as_mut(), decoder_, ())?;
11023
11024 Ok(())
11025 }
11026 }
11027
11028 impl ::fidl_next::IntoNatural for NodeAttributes {
11029 type Natural = crate::natural::NodeAttributes;
11030 }
11031
11032 #[derive(Clone, Copy, Debug)]
11034 #[repr(transparent)]
11035 pub struct NodeAttributeFlags {
11036 pub(crate) value: ::fidl_next::wire::Uint32,
11037 }
11038
11039 impl ::fidl_next::Constrained for NodeAttributeFlags {
11040 type Constraint = ();
11041
11042 fn validate(
11043 _: ::fidl_next::Slot<'_, Self>,
11044 _: Self::Constraint,
11045 ) -> Result<(), ::fidl_next::ValidationError> {
11046 Ok(())
11047 }
11048 }
11049
11050 unsafe impl ::fidl_next::Wire for NodeAttributeFlags {
11051 type Narrowed<'de> = Self;
11052
11053 #[inline]
11054 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
11055 }
11057 }
11058
11059 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeAttributeFlags
11060 where
11061 ___D: ?Sized,
11062 {
11063 fn decode(
11064 slot: ::fidl_next::Slot<'_, Self>,
11065 _: &mut ___D,
11066 _: (),
11067 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11068 ::fidl_next::munge!(let Self { value } = slot);
11069 let set = u32::from(*value);
11070 if set & !crate::natural::NodeAttributeFlags::all().bits() != 0 {
11071 return Err(::fidl_next::DecodeError::InvalidBits {
11072 expected: crate::natural::NodeAttributeFlags::all().bits() as usize,
11073 actual: set as usize,
11074 });
11075 }
11076
11077 Ok(())
11078 }
11079 }
11080
11081 impl ::core::convert::From<crate::natural::NodeAttributeFlags> for NodeAttributeFlags {
11082 fn from(natural: crate::natural::NodeAttributeFlags) -> Self {
11083 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
11084 }
11085 }
11086
11087 impl ::fidl_next::IntoNatural for NodeAttributeFlags {
11088 type Natural = crate::natural::NodeAttributeFlags;
11089 }
11090
11091 #[derive(Debug)]
11093 #[repr(C)]
11094 pub struct NodeQueryFilesystemResponse<'de> {
11095 pub s: ::fidl_next::wire::fuchsia::Status,
11096
11097 pub info: ::fidl_next::wire::Box<'de, crate::wire::FilesystemInfo>,
11098 }
11099
11100 static_assertions::const_assert_eq!(std::mem::size_of::<NodeQueryFilesystemResponse<'_>>(), 16);
11101 static_assertions::const_assert_eq!(std::mem::align_of::<NodeQueryFilesystemResponse<'_>>(), 8);
11102
11103 static_assertions::const_assert_eq!(
11104 std::mem::offset_of!(NodeQueryFilesystemResponse<'_>, s),
11105 0
11106 );
11107
11108 static_assertions::const_assert_eq!(
11109 std::mem::offset_of!(NodeQueryFilesystemResponse<'_>, info),
11110 8
11111 );
11112
11113 impl ::fidl_next::Constrained for NodeQueryFilesystemResponse<'_> {
11114 type Constraint = ();
11115
11116 fn validate(
11117 _: ::fidl_next::Slot<'_, Self>,
11118 _: Self::Constraint,
11119 ) -> Result<(), ::fidl_next::ValidationError> {
11120 Ok(())
11121 }
11122 }
11123
11124 unsafe impl ::fidl_next::Wire for NodeQueryFilesystemResponse<'static> {
11125 type Narrowed<'de> = NodeQueryFilesystemResponse<'de>;
11126
11127 #[inline]
11128 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11129 ::fidl_next::munge! {
11130 let Self {
11131 s,
11132 info,
11133
11134 } = &mut *out_;
11135 }
11136
11137 ::fidl_next::Wire::zero_padding(s);
11138
11139 ::fidl_next::Wire::zero_padding(info);
11140
11141 unsafe {
11142 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
11143 }
11144 }
11145 }
11146
11147 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for NodeQueryFilesystemResponse<'de>
11148 where
11149 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11150 ___D: ::fidl_next::Decoder<'de>,
11151 {
11152 fn decode(
11153 slot_: ::fidl_next::Slot<'_, Self>,
11154 decoder_: &mut ___D,
11155 _: (),
11156 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11157 if slot_.as_bytes()[4..8] != [0u8; 4] {
11158 return Err(::fidl_next::DecodeError::InvalidPadding);
11159 }
11160
11161 ::fidl_next::munge! {
11162 let Self {
11163 mut s,
11164 mut info,
11165
11166 } = slot_;
11167 }
11168
11169 let _field = s.as_mut();
11170
11171 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
11172
11173 let _field = info.as_mut();
11174
11175 ::fidl_next::Decode::decode(info.as_mut(), decoder_, ())?;
11176
11177 Ok(())
11178 }
11179 }
11180
11181 impl<'de> ::fidl_next::IntoNatural for NodeQueryFilesystemResponse<'de> {
11182 type Natural = crate::natural::NodeQueryFilesystemResponse;
11183 }
11184
11185 pub type NodeUpdateAttributesResponse = ::fidl_next::wire::Unit;
11187
11188 pub type NodeSyncResponse = ::fidl_next::wire::Unit;
11190
11191 #[derive(Clone, Copy, Debug)]
11193 #[repr(transparent)]
11194 pub struct ModeType {
11195 pub(crate) value: ::fidl_next::wire::Uint32,
11196 }
11197
11198 impl ::fidl_next::Constrained for ModeType {
11199 type Constraint = ();
11200
11201 fn validate(
11202 _: ::fidl_next::Slot<'_, Self>,
11203 _: Self::Constraint,
11204 ) -> Result<(), ::fidl_next::ValidationError> {
11205 Ok(())
11206 }
11207 }
11208
11209 unsafe impl ::fidl_next::Wire for ModeType {
11210 type Narrowed<'de> = Self;
11211
11212 #[inline]
11213 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
11214 }
11216 }
11217
11218 unsafe impl<___D> ::fidl_next::Decode<___D> for ModeType
11219 where
11220 ___D: ?Sized,
11221 {
11222 fn decode(
11223 slot: ::fidl_next::Slot<'_, Self>,
11224 _: &mut ___D,
11225 _: (),
11226 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11227 ::fidl_next::munge!(let Self { value } = slot);
11228 let set = u32::from(*value);
11229 if set & !crate::natural::ModeType::all().bits() != 0 {
11230 return Err(::fidl_next::DecodeError::InvalidBits {
11231 expected: crate::natural::ModeType::all().bits() as usize,
11232 actual: set as usize,
11233 });
11234 }
11235
11236 Ok(())
11237 }
11238 }
11239
11240 impl ::core::convert::From<crate::natural::ModeType> for ModeType {
11241 fn from(natural: crate::natural::ModeType) -> Self {
11242 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
11243 }
11244 }
11245
11246 impl ::fidl_next::IntoNatural for ModeType {
11247 type Natural = crate::natural::ModeType;
11248 }
11249
11250 pub type Path<'de> = ::fidl_next::wire::String<'de>;
11252
11253 #[derive(Clone, Debug)]
11255 #[repr(C)]
11256 pub struct DirectoryReadDirentsRequest {
11257 pub max_bytes: ::fidl_next::wire::Uint64,
11258 }
11259
11260 static_assertions::const_assert_eq!(std::mem::size_of::<DirectoryReadDirentsRequest>(), 8);
11261 static_assertions::const_assert_eq!(std::mem::align_of::<DirectoryReadDirentsRequest>(), 8);
11262
11263 static_assertions::const_assert_eq!(
11264 std::mem::offset_of!(DirectoryReadDirentsRequest, max_bytes),
11265 0
11266 );
11267
11268 impl ::fidl_next::Constrained for DirectoryReadDirentsRequest {
11269 type Constraint = ();
11270
11271 fn validate(
11272 _: ::fidl_next::Slot<'_, Self>,
11273 _: Self::Constraint,
11274 ) -> Result<(), ::fidl_next::ValidationError> {
11275 Ok(())
11276 }
11277 }
11278
11279 unsafe impl ::fidl_next::Wire for DirectoryReadDirentsRequest {
11280 type Narrowed<'de> = DirectoryReadDirentsRequest;
11281
11282 #[inline]
11283 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11284 ::fidl_next::munge! {
11285 let Self {
11286 max_bytes,
11287
11288 } = &mut *out_;
11289 }
11290
11291 ::fidl_next::Wire::zero_padding(max_bytes);
11292 }
11293 }
11294
11295 unsafe impl<___D> ::fidl_next::Decode<___D> for DirectoryReadDirentsRequest
11296 where
11297 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11298 {
11299 fn decode(
11300 slot_: ::fidl_next::Slot<'_, Self>,
11301 decoder_: &mut ___D,
11302 _: (),
11303 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11304 ::fidl_next::munge! {
11305 let Self {
11306 mut max_bytes,
11307
11308 } = slot_;
11309 }
11310
11311 let _field = max_bytes.as_mut();
11312
11313 ::fidl_next::Decode::decode(max_bytes.as_mut(), decoder_, ())?;
11314
11315 Ok(())
11316 }
11317 }
11318
11319 impl ::fidl_next::IntoNatural for DirectoryReadDirentsRequest {
11320 type Natural = crate::natural::DirectoryReadDirentsRequest;
11321 }
11322
11323 #[derive(Debug)]
11325 #[repr(C)]
11326 pub struct DirectoryReadDirentsResponse<'de> {
11327 pub s: ::fidl_next::wire::fuchsia::Status,
11328
11329 pub dirents: ::fidl_next::wire::Vector<'de, u8>,
11330 }
11331
11332 static_assertions::const_assert_eq!(
11333 std::mem::size_of::<DirectoryReadDirentsResponse<'_>>(),
11334 24
11335 );
11336 static_assertions::const_assert_eq!(
11337 std::mem::align_of::<DirectoryReadDirentsResponse<'_>>(),
11338 8
11339 );
11340
11341 static_assertions::const_assert_eq!(
11342 std::mem::offset_of!(DirectoryReadDirentsResponse<'_>, s),
11343 0
11344 );
11345
11346 static_assertions::const_assert_eq!(
11347 std::mem::offset_of!(DirectoryReadDirentsResponse<'_>, dirents),
11348 8
11349 );
11350
11351 impl ::fidl_next::Constrained for DirectoryReadDirentsResponse<'_> {
11352 type Constraint = ();
11353
11354 fn validate(
11355 _: ::fidl_next::Slot<'_, Self>,
11356 _: Self::Constraint,
11357 ) -> Result<(), ::fidl_next::ValidationError> {
11358 Ok(())
11359 }
11360 }
11361
11362 unsafe impl ::fidl_next::Wire for DirectoryReadDirentsResponse<'static> {
11363 type Narrowed<'de> = DirectoryReadDirentsResponse<'de>;
11364
11365 #[inline]
11366 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11367 ::fidl_next::munge! {
11368 let Self {
11369 s,
11370 dirents,
11371
11372 } = &mut *out_;
11373 }
11374
11375 ::fidl_next::Wire::zero_padding(s);
11376
11377 ::fidl_next::Wire::zero_padding(dirents);
11378
11379 unsafe {
11380 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
11381 }
11382 }
11383 }
11384
11385 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DirectoryReadDirentsResponse<'de>
11386 where
11387 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11388 ___D: ::fidl_next::Decoder<'de>,
11389 {
11390 fn decode(
11391 slot_: ::fidl_next::Slot<'_, Self>,
11392 decoder_: &mut ___D,
11393 _: (),
11394 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11395 if slot_.as_bytes()[4..8] != [0u8; 4] {
11396 return Err(::fidl_next::DecodeError::InvalidPadding);
11397 }
11398
11399 ::fidl_next::munge! {
11400 let Self {
11401 mut s,
11402 mut dirents,
11403
11404 } = slot_;
11405 }
11406
11407 let _field = s.as_mut();
11408
11409 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
11410
11411 let _field = dirents.as_mut();
11412 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
11413 ::fidl_next::Decode::decode(dirents.as_mut(), decoder_, (8192, ()))?;
11414
11415 let dirents = unsafe { dirents.deref_unchecked() };
11416
11417 if dirents.len() > 8192 {
11418 return Err(::fidl_next::DecodeError::VectorTooLong {
11419 size: dirents.len() as u64,
11420 limit: 8192,
11421 });
11422 }
11423
11424 Ok(())
11425 }
11426 }
11427
11428 impl<'de> ::fidl_next::IntoNatural for DirectoryReadDirentsResponse<'de> {
11429 type Natural = crate::natural::DirectoryReadDirentsResponse;
11430 }
11431
11432 #[derive(Clone, Debug)]
11434 #[repr(C)]
11435 pub struct DirectoryRewindResponse {
11436 pub s: ::fidl_next::wire::fuchsia::Status,
11437 }
11438
11439 static_assertions::const_assert_eq!(std::mem::size_of::<DirectoryRewindResponse>(), 4);
11440 static_assertions::const_assert_eq!(std::mem::align_of::<DirectoryRewindResponse>(), 4);
11441
11442 static_assertions::const_assert_eq!(std::mem::offset_of!(DirectoryRewindResponse, s), 0);
11443
11444 impl ::fidl_next::Constrained for DirectoryRewindResponse {
11445 type Constraint = ();
11446
11447 fn validate(
11448 _: ::fidl_next::Slot<'_, Self>,
11449 _: Self::Constraint,
11450 ) -> Result<(), ::fidl_next::ValidationError> {
11451 Ok(())
11452 }
11453 }
11454
11455 unsafe impl ::fidl_next::Wire for DirectoryRewindResponse {
11456 type Narrowed<'de> = DirectoryRewindResponse;
11457
11458 #[inline]
11459 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11460 ::fidl_next::munge! {
11461 let Self {
11462 s,
11463
11464 } = &mut *out_;
11465 }
11466
11467 ::fidl_next::Wire::zero_padding(s);
11468 }
11469 }
11470
11471 unsafe impl<___D> ::fidl_next::Decode<___D> for DirectoryRewindResponse
11472 where
11473 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11474 {
11475 fn decode(
11476 slot_: ::fidl_next::Slot<'_, Self>,
11477 decoder_: &mut ___D,
11478 _: (),
11479 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11480 ::fidl_next::munge! {
11481 let Self {
11482 mut s,
11483
11484 } = slot_;
11485 }
11486
11487 let _field = s.as_mut();
11488
11489 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
11490
11491 Ok(())
11492 }
11493 }
11494
11495 impl ::fidl_next::IntoNatural for DirectoryRewindResponse {
11496 type Natural = crate::natural::DirectoryRewindResponse;
11497 }
11498
11499 pub type Name<'de> = ::fidl_next::wire::String<'de>;
11501
11502 #[derive(Clone, Debug)]
11504 #[repr(C)]
11505 pub struct DirectoryLinkResponse {
11506 pub s: ::fidl_next::wire::fuchsia::Status,
11507 }
11508
11509 static_assertions::const_assert_eq!(std::mem::size_of::<DirectoryLinkResponse>(), 4);
11510 static_assertions::const_assert_eq!(std::mem::align_of::<DirectoryLinkResponse>(), 4);
11511
11512 static_assertions::const_assert_eq!(std::mem::offset_of!(DirectoryLinkResponse, s), 0);
11513
11514 impl ::fidl_next::Constrained for DirectoryLinkResponse {
11515 type Constraint = ();
11516
11517 fn validate(
11518 _: ::fidl_next::Slot<'_, Self>,
11519 _: Self::Constraint,
11520 ) -> Result<(), ::fidl_next::ValidationError> {
11521 Ok(())
11522 }
11523 }
11524
11525 unsafe impl ::fidl_next::Wire for DirectoryLinkResponse {
11526 type Narrowed<'de> = DirectoryLinkResponse;
11527
11528 #[inline]
11529 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11530 ::fidl_next::munge! {
11531 let Self {
11532 s,
11533
11534 } = &mut *out_;
11535 }
11536
11537 ::fidl_next::Wire::zero_padding(s);
11538 }
11539 }
11540
11541 unsafe impl<___D> ::fidl_next::Decode<___D> for DirectoryLinkResponse
11542 where
11543 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11544 {
11545 fn decode(
11546 slot_: ::fidl_next::Slot<'_, Self>,
11547 decoder_: &mut ___D,
11548 _: (),
11549 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11550 ::fidl_next::munge! {
11551 let Self {
11552 mut s,
11553
11554 } = slot_;
11555 }
11556
11557 let _field = s.as_mut();
11558
11559 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
11560
11561 Ok(())
11562 }
11563 }
11564
11565 impl ::fidl_next::IntoNatural for DirectoryLinkResponse {
11566 type Natural = crate::natural::DirectoryLinkResponse;
11567 }
11568
11569 #[derive(Clone, Copy, Debug)]
11571 #[repr(transparent)]
11572 pub struct UnlinkFlags {
11573 pub(crate) value: ::fidl_next::wire::Uint64,
11574 }
11575
11576 impl ::fidl_next::Constrained for UnlinkFlags {
11577 type Constraint = ();
11578
11579 fn validate(
11580 _: ::fidl_next::Slot<'_, Self>,
11581 _: Self::Constraint,
11582 ) -> Result<(), ::fidl_next::ValidationError> {
11583 Ok(())
11584 }
11585 }
11586
11587 unsafe impl ::fidl_next::Wire for UnlinkFlags {
11588 type Narrowed<'de> = Self;
11589
11590 #[inline]
11591 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
11592 }
11594 }
11595
11596 unsafe impl<___D> ::fidl_next::Decode<___D> for UnlinkFlags
11597 where
11598 ___D: ?Sized,
11599 {
11600 fn decode(
11601 slot: ::fidl_next::Slot<'_, Self>,
11602 _: &mut ___D,
11603 _: (),
11604 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11605 Ok(())
11606 }
11607 }
11608
11609 impl ::core::convert::From<crate::natural::UnlinkFlags> for UnlinkFlags {
11610 fn from(natural: crate::natural::UnlinkFlags) -> Self {
11611 Self { value: ::fidl_next::wire::Uint64::from(natural.bits()) }
11612 }
11613 }
11614
11615 impl ::fidl_next::IntoNatural for UnlinkFlags {
11616 type Natural = crate::natural::UnlinkFlags;
11617 }
11618
11619 #[repr(C)]
11621 pub struct UnlinkOptions<'de> {
11622 pub(crate) table: ::fidl_next::wire::Table<'de>,
11623 }
11624
11625 impl<'de> Drop for UnlinkOptions<'de> {
11626 fn drop(&mut self) {
11627 let _ = self
11628 .table
11629 .get(1)
11630 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::UnlinkFlags>() });
11631 }
11632 }
11633
11634 impl ::fidl_next::Constrained for UnlinkOptions<'_> {
11635 type Constraint = ();
11636
11637 fn validate(
11638 _: ::fidl_next::Slot<'_, Self>,
11639 _: Self::Constraint,
11640 ) -> Result<(), ::fidl_next::ValidationError> {
11641 Ok(())
11642 }
11643 }
11644
11645 unsafe impl ::fidl_next::Wire for UnlinkOptions<'static> {
11646 type Narrowed<'de> = UnlinkOptions<'de>;
11647
11648 #[inline]
11649 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
11650 ::fidl_next::munge!(let Self { table } = out);
11651 ::fidl_next::wire::Table::zero_padding(table);
11652 }
11653 }
11654
11655 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UnlinkOptions<'de>
11656 where
11657 ___D: ::fidl_next::Decoder<'de> + ?Sized,
11658 {
11659 fn decode(
11660 slot: ::fidl_next::Slot<'_, Self>,
11661 decoder: &mut ___D,
11662 _: (),
11663 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11664 ::fidl_next::munge!(let Self { table } = slot);
11665
11666 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
11667 match ordinal {
11668 0 => unsafe { ::core::hint::unreachable_unchecked() },
11669
11670 1 => {
11671 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::UnlinkFlags>(
11672 slot.as_mut(),
11673 decoder,
11674 (),
11675 )?;
11676
11677 Ok(())
11678 }
11679
11680 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
11681 }
11682 })
11683 }
11684 }
11685
11686 impl<'de> UnlinkOptions<'de> {
11687 pub fn flags(&self) -> ::core::option::Option<&crate::wire::UnlinkFlags> {
11688 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
11689 }
11690
11691 pub fn take_flags(&mut self) -> ::core::option::Option<crate::wire::UnlinkFlags> {
11692 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
11693 }
11694 }
11695
11696 impl<'de> ::core::fmt::Debug for UnlinkOptions<'de> {
11697 fn fmt(
11698 &self,
11699 f: &mut ::core::fmt::Formatter<'_>,
11700 ) -> ::core::result::Result<(), ::core::fmt::Error> {
11701 f.debug_struct("UnlinkOptions").field("flags", &self.flags()).finish()
11702 }
11703 }
11704
11705 impl<'de> ::fidl_next::IntoNatural for UnlinkOptions<'de> {
11706 type Natural = crate::natural::UnlinkOptions;
11707 }
11708
11709 #[derive(Debug)]
11711 #[repr(C)]
11712 pub struct DirectoryUnlinkRequest<'de> {
11713 pub name: ::fidl_next::wire::String<'de>,
11714
11715 pub options: crate::wire::UnlinkOptions<'de>,
11716 }
11717
11718 static_assertions::const_assert_eq!(std::mem::size_of::<DirectoryUnlinkRequest<'_>>(), 32);
11719 static_assertions::const_assert_eq!(std::mem::align_of::<DirectoryUnlinkRequest<'_>>(), 8);
11720
11721 static_assertions::const_assert_eq!(std::mem::offset_of!(DirectoryUnlinkRequest<'_>, name), 0);
11722
11723 static_assertions::const_assert_eq!(
11724 std::mem::offset_of!(DirectoryUnlinkRequest<'_>, options),
11725 16
11726 );
11727
11728 impl ::fidl_next::Constrained for DirectoryUnlinkRequest<'_> {
11729 type Constraint = ();
11730
11731 fn validate(
11732 _: ::fidl_next::Slot<'_, Self>,
11733 _: Self::Constraint,
11734 ) -> Result<(), ::fidl_next::ValidationError> {
11735 Ok(())
11736 }
11737 }
11738
11739 unsafe impl ::fidl_next::Wire for DirectoryUnlinkRequest<'static> {
11740 type Narrowed<'de> = DirectoryUnlinkRequest<'de>;
11741
11742 #[inline]
11743 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11744 ::fidl_next::munge! {
11745 let Self {
11746 name,
11747 options,
11748
11749 } = &mut *out_;
11750 }
11751
11752 ::fidl_next::Wire::zero_padding(name);
11753
11754 ::fidl_next::Wire::zero_padding(options);
11755 }
11756 }
11757
11758 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DirectoryUnlinkRequest<'de>
11759 where
11760 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11761 ___D: ::fidl_next::Decoder<'de>,
11762 {
11763 fn decode(
11764 slot_: ::fidl_next::Slot<'_, Self>,
11765 decoder_: &mut ___D,
11766 _: (),
11767 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11768 ::fidl_next::munge! {
11769 let Self {
11770 mut name,
11771 mut options,
11772
11773 } = slot_;
11774 }
11775
11776 let _field = name.as_mut();
11777 ::fidl_next::Constrained::validate(_field, 255)?;
11778 ::fidl_next::Decode::decode(name.as_mut(), decoder_, 255)?;
11779
11780 let name = unsafe { name.deref_unchecked() };
11781
11782 if name.len() > 255 {
11783 return Err(::fidl_next::DecodeError::VectorTooLong {
11784 size: name.len() as u64,
11785 limit: 255,
11786 });
11787 }
11788
11789 let _field = options.as_mut();
11790
11791 ::fidl_next::Decode::decode(options.as_mut(), decoder_, ())?;
11792
11793 Ok(())
11794 }
11795 }
11796
11797 impl<'de> ::fidl_next::IntoNatural for DirectoryUnlinkRequest<'de> {
11798 type Natural = crate::natural::DirectoryUnlinkRequest;
11799 }
11800
11801 pub type DirectoryUnlinkResponse = ::fidl_next::wire::Unit;
11803
11804 pub type DirectoryRenameResponse = ::fidl_next::wire::Unit;
11806
11807 #[derive(Clone, Copy, Debug)]
11809 #[repr(transparent)]
11810 pub struct WatchMask {
11811 pub(crate) value: ::fidl_next::wire::Uint32,
11812 }
11813
11814 impl ::fidl_next::Constrained for WatchMask {
11815 type Constraint = ();
11816
11817 fn validate(
11818 _: ::fidl_next::Slot<'_, Self>,
11819 _: Self::Constraint,
11820 ) -> Result<(), ::fidl_next::ValidationError> {
11821 Ok(())
11822 }
11823 }
11824
11825 unsafe impl ::fidl_next::Wire for WatchMask {
11826 type Narrowed<'de> = Self;
11827
11828 #[inline]
11829 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
11830 }
11832 }
11833
11834 unsafe impl<___D> ::fidl_next::Decode<___D> for WatchMask
11835 where
11836 ___D: ?Sized,
11837 {
11838 fn decode(
11839 slot: ::fidl_next::Slot<'_, Self>,
11840 _: &mut ___D,
11841 _: (),
11842 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11843 ::fidl_next::munge!(let Self { value } = slot);
11844 let set = u32::from(*value);
11845 if set & !crate::natural::WatchMask::all().bits() != 0 {
11846 return Err(::fidl_next::DecodeError::InvalidBits {
11847 expected: crate::natural::WatchMask::all().bits() as usize,
11848 actual: set as usize,
11849 });
11850 }
11851
11852 Ok(())
11853 }
11854 }
11855
11856 impl ::core::convert::From<crate::natural::WatchMask> for WatchMask {
11857 fn from(natural: crate::natural::WatchMask) -> Self {
11858 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
11859 }
11860 }
11861
11862 impl ::fidl_next::IntoNatural for WatchMask {
11863 type Natural = crate::natural::WatchMask;
11864 }
11865
11866 #[derive(Clone, Debug)]
11868 #[repr(C)]
11869 pub struct DirectoryWatchResponse {
11870 pub s: ::fidl_next::wire::fuchsia::Status,
11871 }
11872
11873 static_assertions::const_assert_eq!(std::mem::size_of::<DirectoryWatchResponse>(), 4);
11874 static_assertions::const_assert_eq!(std::mem::align_of::<DirectoryWatchResponse>(), 4);
11875
11876 static_assertions::const_assert_eq!(std::mem::offset_of!(DirectoryWatchResponse, s), 0);
11877
11878 impl ::fidl_next::Constrained for DirectoryWatchResponse {
11879 type Constraint = ();
11880
11881 fn validate(
11882 _: ::fidl_next::Slot<'_, Self>,
11883 _: Self::Constraint,
11884 ) -> Result<(), ::fidl_next::ValidationError> {
11885 Ok(())
11886 }
11887 }
11888
11889 unsafe impl ::fidl_next::Wire for DirectoryWatchResponse {
11890 type Narrowed<'de> = DirectoryWatchResponse;
11891
11892 #[inline]
11893 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11894 ::fidl_next::munge! {
11895 let Self {
11896 s,
11897
11898 } = &mut *out_;
11899 }
11900
11901 ::fidl_next::Wire::zero_padding(s);
11902 }
11903 }
11904
11905 unsafe impl<___D> ::fidl_next::Decode<___D> for DirectoryWatchResponse
11906 where
11907 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11908 {
11909 fn decode(
11910 slot_: ::fidl_next::Slot<'_, Self>,
11911 decoder_: &mut ___D,
11912 _: (),
11913 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11914 ::fidl_next::munge! {
11915 let Self {
11916 mut s,
11917
11918 } = slot_;
11919 }
11920
11921 let _field = s.as_mut();
11922
11923 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
11924
11925 Ok(())
11926 }
11927 }
11928
11929 impl ::fidl_next::IntoNatural for DirectoryWatchResponse {
11930 type Natural = crate::natural::DirectoryWatchResponse;
11931 }
11932
11933 pub type SymlinkTarget<'de> = ::fidl_next::wire::Vector<'de, u8>;
11935
11936 pub type ExtendedAttributeName<'de> = ::fidl_next::wire::Vector<'de, u8>;
11938
11939 #[derive(Debug)]
11941 #[repr(C)]
11942 pub struct NodeGetExtendedAttributeRequest<'de> {
11943 pub name: ::fidl_next::wire::Vector<'de, u8>,
11944 }
11945
11946 static_assertions::const_assert_eq!(
11947 std::mem::size_of::<NodeGetExtendedAttributeRequest<'_>>(),
11948 16
11949 );
11950 static_assertions::const_assert_eq!(
11951 std::mem::align_of::<NodeGetExtendedAttributeRequest<'_>>(),
11952 8
11953 );
11954
11955 static_assertions::const_assert_eq!(
11956 std::mem::offset_of!(NodeGetExtendedAttributeRequest<'_>, name),
11957 0
11958 );
11959
11960 impl ::fidl_next::Constrained for NodeGetExtendedAttributeRequest<'_> {
11961 type Constraint = ();
11962
11963 fn validate(
11964 _: ::fidl_next::Slot<'_, Self>,
11965 _: Self::Constraint,
11966 ) -> Result<(), ::fidl_next::ValidationError> {
11967 Ok(())
11968 }
11969 }
11970
11971 unsafe impl ::fidl_next::Wire for NodeGetExtendedAttributeRequest<'static> {
11972 type Narrowed<'de> = NodeGetExtendedAttributeRequest<'de>;
11973
11974 #[inline]
11975 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11976 ::fidl_next::munge! {
11977 let Self {
11978 name,
11979
11980 } = &mut *out_;
11981 }
11982
11983 ::fidl_next::Wire::zero_padding(name);
11984 }
11985 }
11986
11987 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for NodeGetExtendedAttributeRequest<'de>
11988 where
11989 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11990 ___D: ::fidl_next::Decoder<'de>,
11991 {
11992 fn decode(
11993 slot_: ::fidl_next::Slot<'_, Self>,
11994 decoder_: &mut ___D,
11995 _: (),
11996 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11997 ::fidl_next::munge! {
11998 let Self {
11999 mut name,
12000
12001 } = slot_;
12002 }
12003
12004 let _field = name.as_mut();
12005 ::fidl_next::Constrained::validate(_field, (255, ()))?;
12006 ::fidl_next::Decode::decode(name.as_mut(), decoder_, (255, ()))?;
12007
12008 let name = unsafe { name.deref_unchecked() };
12009
12010 if name.len() > 255 {
12011 return Err(::fidl_next::DecodeError::VectorTooLong {
12012 size: name.len() as u64,
12013 limit: 255,
12014 });
12015 }
12016
12017 Ok(())
12018 }
12019 }
12020
12021 impl<'de> ::fidl_next::IntoNatural for NodeGetExtendedAttributeRequest<'de> {
12022 type Natural = crate::natural::NodeGetExtendedAttributeRequest;
12023 }
12024
12025 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
12027 #[repr(transparent)]
12028 pub struct SetExtendedAttributeMode {
12029 pub(crate) value: ::fidl_next::wire::Uint32,
12030 }
12031
12032 impl ::fidl_next::Constrained for SetExtendedAttributeMode {
12033 type Constraint = ();
12034
12035 fn validate(
12036 _: ::fidl_next::Slot<'_, Self>,
12037 _: Self::Constraint,
12038 ) -> Result<(), ::fidl_next::ValidationError> {
12039 Ok(())
12040 }
12041 }
12042
12043 unsafe impl ::fidl_next::Wire for SetExtendedAttributeMode {
12044 type Narrowed<'de> = Self;
12045
12046 #[inline]
12047 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
12048 }
12050 }
12051
12052 impl SetExtendedAttributeMode {
12053 pub const SET: SetExtendedAttributeMode =
12054 SetExtendedAttributeMode { value: ::fidl_next::wire::Uint32(1) };
12055
12056 pub const CREATE: SetExtendedAttributeMode =
12057 SetExtendedAttributeMode { value: ::fidl_next::wire::Uint32(2) };
12058
12059 pub const REPLACE: SetExtendedAttributeMode =
12060 SetExtendedAttributeMode { value: ::fidl_next::wire::Uint32(3) };
12061 }
12062
12063 unsafe impl<___D> ::fidl_next::Decode<___D> for SetExtendedAttributeMode
12064 where
12065 ___D: ?Sized,
12066 {
12067 fn decode(
12068 slot: ::fidl_next::Slot<'_, Self>,
12069 _: &mut ___D,
12070 _: (),
12071 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12072 ::fidl_next::munge!(let Self { value } = slot);
12073
12074 match u32::from(*value) {
12075 1 | 2 | 3 => (),
12076 unknown => {
12077 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
12078 }
12079 }
12080
12081 Ok(())
12082 }
12083 }
12084
12085 impl ::core::convert::From<crate::natural::SetExtendedAttributeMode> for SetExtendedAttributeMode {
12086 fn from(natural: crate::natural::SetExtendedAttributeMode) -> Self {
12087 match natural {
12088 crate::natural::SetExtendedAttributeMode::Set => SetExtendedAttributeMode::SET,
12089
12090 crate::natural::SetExtendedAttributeMode::Create => {
12091 SetExtendedAttributeMode::CREATE
12092 }
12093
12094 crate::natural::SetExtendedAttributeMode::Replace => {
12095 SetExtendedAttributeMode::REPLACE
12096 }
12097 }
12098 }
12099 }
12100
12101 impl ::fidl_next::IntoNatural for SetExtendedAttributeMode {
12102 type Natural = crate::natural::SetExtendedAttributeMode;
12103 }
12104
12105 pub type NodeSetExtendedAttributeResponse = ::fidl_next::wire::Unit;
12107
12108 #[derive(Debug)]
12110 #[repr(C)]
12111 pub struct NodeRemoveExtendedAttributeRequest<'de> {
12112 pub name: ::fidl_next::wire::Vector<'de, u8>,
12113 }
12114
12115 static_assertions::const_assert_eq!(
12116 std::mem::size_of::<NodeRemoveExtendedAttributeRequest<'_>>(),
12117 16
12118 );
12119 static_assertions::const_assert_eq!(
12120 std::mem::align_of::<NodeRemoveExtendedAttributeRequest<'_>>(),
12121 8
12122 );
12123
12124 static_assertions::const_assert_eq!(
12125 std::mem::offset_of!(NodeRemoveExtendedAttributeRequest<'_>, name),
12126 0
12127 );
12128
12129 impl ::fidl_next::Constrained for NodeRemoveExtendedAttributeRequest<'_> {
12130 type Constraint = ();
12131
12132 fn validate(
12133 _: ::fidl_next::Slot<'_, Self>,
12134 _: Self::Constraint,
12135 ) -> Result<(), ::fidl_next::ValidationError> {
12136 Ok(())
12137 }
12138 }
12139
12140 unsafe impl ::fidl_next::Wire for NodeRemoveExtendedAttributeRequest<'static> {
12141 type Narrowed<'de> = NodeRemoveExtendedAttributeRequest<'de>;
12142
12143 #[inline]
12144 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12145 ::fidl_next::munge! {
12146 let Self {
12147 name,
12148
12149 } = &mut *out_;
12150 }
12151
12152 ::fidl_next::Wire::zero_padding(name);
12153 }
12154 }
12155
12156 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for NodeRemoveExtendedAttributeRequest<'de>
12157 where
12158 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12159 ___D: ::fidl_next::Decoder<'de>,
12160 {
12161 fn decode(
12162 slot_: ::fidl_next::Slot<'_, Self>,
12163 decoder_: &mut ___D,
12164 _: (),
12165 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12166 ::fidl_next::munge! {
12167 let Self {
12168 mut name,
12169
12170 } = slot_;
12171 }
12172
12173 let _field = name.as_mut();
12174 ::fidl_next::Constrained::validate(_field, (255, ()))?;
12175 ::fidl_next::Decode::decode(name.as_mut(), decoder_, (255, ()))?;
12176
12177 let name = unsafe { name.deref_unchecked() };
12178
12179 if name.len() > 255 {
12180 return Err(::fidl_next::DecodeError::VectorTooLong {
12181 size: name.len() as u64,
12182 limit: 255,
12183 });
12184 }
12185
12186 Ok(())
12187 }
12188 }
12189
12190 impl<'de> ::fidl_next::IntoNatural for NodeRemoveExtendedAttributeRequest<'de> {
12191 type Natural = crate::natural::NodeRemoveExtendedAttributeRequest;
12192 }
12193
12194 pub type NodeRemoveExtendedAttributeResponse = ::fidl_next::wire::Unit;
12196
12197 pub type DirectoryCreateSymlinkResponse = ::fidl_next::wire::Unit;
12199
12200 pub type NodeSetFlagsResponse = ::fidl_next::wire::Unit;
12202
12203 #[derive(Clone, Debug)]
12205 #[repr(C)]
12206 pub struct NodeDeprecatedGetAttrResponse {
12207 pub s: ::fidl_next::wire::fuchsia::Status,
12208
12209 pub attributes: crate::wire::NodeAttributes,
12210 }
12211
12212 static_assertions::const_assert_eq!(std::mem::size_of::<NodeDeprecatedGetAttrResponse>(), 64);
12213 static_assertions::const_assert_eq!(std::mem::align_of::<NodeDeprecatedGetAttrResponse>(), 8);
12214
12215 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeDeprecatedGetAttrResponse, s), 0);
12216
12217 static_assertions::const_assert_eq!(
12218 std::mem::offset_of!(NodeDeprecatedGetAttrResponse, attributes),
12219 8
12220 );
12221
12222 impl ::fidl_next::Constrained for NodeDeprecatedGetAttrResponse {
12223 type Constraint = ();
12224
12225 fn validate(
12226 _: ::fidl_next::Slot<'_, Self>,
12227 _: Self::Constraint,
12228 ) -> Result<(), ::fidl_next::ValidationError> {
12229 Ok(())
12230 }
12231 }
12232
12233 unsafe impl ::fidl_next::Wire for NodeDeprecatedGetAttrResponse {
12234 type Narrowed<'de> = NodeDeprecatedGetAttrResponse;
12235
12236 #[inline]
12237 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12238 ::fidl_next::munge! {
12239 let Self {
12240 s,
12241 attributes,
12242
12243 } = &mut *out_;
12244 }
12245
12246 ::fidl_next::Wire::zero_padding(s);
12247
12248 ::fidl_next::Wire::zero_padding(attributes);
12249
12250 unsafe {
12251 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
12252 }
12253 }
12254 }
12255
12256 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeDeprecatedGetAttrResponse
12257 where
12258 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12259 {
12260 fn decode(
12261 slot_: ::fidl_next::Slot<'_, Self>,
12262 decoder_: &mut ___D,
12263 _: (),
12264 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12265 if slot_.as_bytes()[4..8] != [0u8; 4] {
12266 return Err(::fidl_next::DecodeError::InvalidPadding);
12267 }
12268
12269 ::fidl_next::munge! {
12270 let Self {
12271 mut s,
12272 mut attributes,
12273
12274 } = slot_;
12275 }
12276
12277 let _field = s.as_mut();
12278
12279 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
12280
12281 let _field = attributes.as_mut();
12282
12283 ::fidl_next::Decode::decode(attributes.as_mut(), decoder_, ())?;
12284
12285 Ok(())
12286 }
12287 }
12288
12289 impl ::fidl_next::IntoNatural for NodeDeprecatedGetAttrResponse {
12290 type Natural = crate::natural::NodeDeprecatedGetAttrResponse;
12291 }
12292
12293 #[derive(Clone, Debug)]
12295 #[repr(C)]
12296 pub struct NodeDeprecatedSetAttrRequest {
12297 pub flags: crate::wire::NodeAttributeFlags,
12298
12299 pub attributes: crate::wire::NodeAttributes,
12300 }
12301
12302 static_assertions::const_assert_eq!(std::mem::size_of::<NodeDeprecatedSetAttrRequest>(), 64);
12303 static_assertions::const_assert_eq!(std::mem::align_of::<NodeDeprecatedSetAttrRequest>(), 8);
12304
12305 static_assertions::const_assert_eq!(
12306 std::mem::offset_of!(NodeDeprecatedSetAttrRequest, flags),
12307 0
12308 );
12309
12310 static_assertions::const_assert_eq!(
12311 std::mem::offset_of!(NodeDeprecatedSetAttrRequest, attributes),
12312 8
12313 );
12314
12315 impl ::fidl_next::Constrained for NodeDeprecatedSetAttrRequest {
12316 type Constraint = ();
12317
12318 fn validate(
12319 _: ::fidl_next::Slot<'_, Self>,
12320 _: Self::Constraint,
12321 ) -> Result<(), ::fidl_next::ValidationError> {
12322 Ok(())
12323 }
12324 }
12325
12326 unsafe impl ::fidl_next::Wire for NodeDeprecatedSetAttrRequest {
12327 type Narrowed<'de> = NodeDeprecatedSetAttrRequest;
12328
12329 #[inline]
12330 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12331 ::fidl_next::munge! {
12332 let Self {
12333 flags,
12334 attributes,
12335
12336 } = &mut *out_;
12337 }
12338
12339 ::fidl_next::Wire::zero_padding(flags);
12340
12341 ::fidl_next::Wire::zero_padding(attributes);
12342
12343 unsafe {
12344 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
12345 }
12346 }
12347 }
12348
12349 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeDeprecatedSetAttrRequest
12350 where
12351 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12352 {
12353 fn decode(
12354 slot_: ::fidl_next::Slot<'_, Self>,
12355 decoder_: &mut ___D,
12356 _: (),
12357 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12358 if slot_.as_bytes()[4..8] != [0u8; 4] {
12359 return Err(::fidl_next::DecodeError::InvalidPadding);
12360 }
12361
12362 ::fidl_next::munge! {
12363 let Self {
12364 mut flags,
12365 mut attributes,
12366
12367 } = slot_;
12368 }
12369
12370 let _field = flags.as_mut();
12371
12372 ::fidl_next::Decode::decode(flags.as_mut(), decoder_, ())?;
12373
12374 let _field = attributes.as_mut();
12375
12376 ::fidl_next::Decode::decode(attributes.as_mut(), decoder_, ())?;
12377
12378 Ok(())
12379 }
12380 }
12381
12382 impl ::fidl_next::IntoNatural for NodeDeprecatedSetAttrRequest {
12383 type Natural = crate::natural::NodeDeprecatedSetAttrRequest;
12384 }
12385
12386 #[derive(Clone, Debug)]
12388 #[repr(C)]
12389 pub struct NodeDeprecatedSetAttrResponse {
12390 pub s: ::fidl_next::wire::fuchsia::Status,
12391 }
12392
12393 static_assertions::const_assert_eq!(std::mem::size_of::<NodeDeprecatedSetAttrResponse>(), 4);
12394 static_assertions::const_assert_eq!(std::mem::align_of::<NodeDeprecatedSetAttrResponse>(), 4);
12395
12396 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeDeprecatedSetAttrResponse, s), 0);
12397
12398 impl ::fidl_next::Constrained for NodeDeprecatedSetAttrResponse {
12399 type Constraint = ();
12400
12401 fn validate(
12402 _: ::fidl_next::Slot<'_, Self>,
12403 _: Self::Constraint,
12404 ) -> Result<(), ::fidl_next::ValidationError> {
12405 Ok(())
12406 }
12407 }
12408
12409 unsafe impl ::fidl_next::Wire for NodeDeprecatedSetAttrResponse {
12410 type Narrowed<'de> = NodeDeprecatedSetAttrResponse;
12411
12412 #[inline]
12413 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12414 ::fidl_next::munge! {
12415 let Self {
12416 s,
12417
12418 } = &mut *out_;
12419 }
12420
12421 ::fidl_next::Wire::zero_padding(s);
12422 }
12423 }
12424
12425 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeDeprecatedSetAttrResponse
12426 where
12427 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12428 {
12429 fn decode(
12430 slot_: ::fidl_next::Slot<'_, Self>,
12431 decoder_: &mut ___D,
12432 _: (),
12433 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12434 ::fidl_next::munge! {
12435 let Self {
12436 mut s,
12437
12438 } = slot_;
12439 }
12440
12441 let _field = s.as_mut();
12442
12443 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
12444
12445 Ok(())
12446 }
12447 }
12448
12449 impl ::fidl_next::IntoNatural for NodeDeprecatedSetAttrResponse {
12450 type Natural = crate::natural::NodeDeprecatedSetAttrResponse;
12451 }
12452
12453 #[derive(Clone, Debug)]
12455 #[repr(C)]
12456 pub struct NodeDeprecatedGetFlagsResponse {
12457 pub s: ::fidl_next::wire::fuchsia::Status,
12458
12459 pub flags: crate::wire::OpenFlags,
12460 }
12461
12462 static_assertions::const_assert_eq!(std::mem::size_of::<NodeDeprecatedGetFlagsResponse>(), 8);
12463 static_assertions::const_assert_eq!(std::mem::align_of::<NodeDeprecatedGetFlagsResponse>(), 4);
12464
12465 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeDeprecatedGetFlagsResponse, s), 0);
12466
12467 static_assertions::const_assert_eq!(
12468 std::mem::offset_of!(NodeDeprecatedGetFlagsResponse, flags),
12469 4
12470 );
12471
12472 impl ::fidl_next::Constrained for NodeDeprecatedGetFlagsResponse {
12473 type Constraint = ();
12474
12475 fn validate(
12476 _: ::fidl_next::Slot<'_, Self>,
12477 _: Self::Constraint,
12478 ) -> Result<(), ::fidl_next::ValidationError> {
12479 Ok(())
12480 }
12481 }
12482
12483 unsafe impl ::fidl_next::Wire for NodeDeprecatedGetFlagsResponse {
12484 type Narrowed<'de> = NodeDeprecatedGetFlagsResponse;
12485
12486 #[inline]
12487 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12488 ::fidl_next::munge! {
12489 let Self {
12490 s,
12491 flags,
12492
12493 } = &mut *out_;
12494 }
12495
12496 ::fidl_next::Wire::zero_padding(s);
12497
12498 ::fidl_next::Wire::zero_padding(flags);
12499 }
12500 }
12501
12502 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeDeprecatedGetFlagsResponse
12503 where
12504 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12505 {
12506 fn decode(
12507 slot_: ::fidl_next::Slot<'_, Self>,
12508 decoder_: &mut ___D,
12509 _: (),
12510 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12511 ::fidl_next::munge! {
12512 let Self {
12513 mut s,
12514 mut flags,
12515
12516 } = slot_;
12517 }
12518
12519 let _field = s.as_mut();
12520
12521 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
12522
12523 let _field = flags.as_mut();
12524
12525 ::fidl_next::Decode::decode(flags.as_mut(), decoder_, ())?;
12526
12527 Ok(())
12528 }
12529 }
12530
12531 impl ::fidl_next::IntoNatural for NodeDeprecatedGetFlagsResponse {
12532 type Natural = crate::natural::NodeDeprecatedGetFlagsResponse;
12533 }
12534
12535 #[derive(Clone, Debug)]
12537 #[repr(C)]
12538 pub struct NodeDeprecatedSetFlagsRequest {
12539 pub flags: crate::wire::OpenFlags,
12540 }
12541
12542 static_assertions::const_assert_eq!(std::mem::size_of::<NodeDeprecatedSetFlagsRequest>(), 4);
12543 static_assertions::const_assert_eq!(std::mem::align_of::<NodeDeprecatedSetFlagsRequest>(), 4);
12544
12545 static_assertions::const_assert_eq!(
12546 std::mem::offset_of!(NodeDeprecatedSetFlagsRequest, flags),
12547 0
12548 );
12549
12550 impl ::fidl_next::Constrained for NodeDeprecatedSetFlagsRequest {
12551 type Constraint = ();
12552
12553 fn validate(
12554 _: ::fidl_next::Slot<'_, Self>,
12555 _: Self::Constraint,
12556 ) -> Result<(), ::fidl_next::ValidationError> {
12557 Ok(())
12558 }
12559 }
12560
12561 unsafe impl ::fidl_next::Wire for NodeDeprecatedSetFlagsRequest {
12562 type Narrowed<'de> = NodeDeprecatedSetFlagsRequest;
12563
12564 #[inline]
12565 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12566 ::fidl_next::munge! {
12567 let Self {
12568 flags,
12569
12570 } = &mut *out_;
12571 }
12572
12573 ::fidl_next::Wire::zero_padding(flags);
12574 }
12575 }
12576
12577 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeDeprecatedSetFlagsRequest
12578 where
12579 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12580 {
12581 fn decode(
12582 slot_: ::fidl_next::Slot<'_, Self>,
12583 decoder_: &mut ___D,
12584 _: (),
12585 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12586 ::fidl_next::munge! {
12587 let Self {
12588 mut flags,
12589
12590 } = slot_;
12591 }
12592
12593 let _field = flags.as_mut();
12594
12595 ::fidl_next::Decode::decode(flags.as_mut(), decoder_, ())?;
12596
12597 Ok(())
12598 }
12599 }
12600
12601 impl ::fidl_next::IntoNatural for NodeDeprecatedSetFlagsRequest {
12602 type Natural = crate::natural::NodeDeprecatedSetFlagsRequest;
12603 }
12604
12605 #[derive(Clone, Debug)]
12607 #[repr(C)]
12608 pub struct NodeDeprecatedSetFlagsResponse {
12609 pub s: ::fidl_next::wire::fuchsia::Status,
12610 }
12611
12612 static_assertions::const_assert_eq!(std::mem::size_of::<NodeDeprecatedSetFlagsResponse>(), 4);
12613 static_assertions::const_assert_eq!(std::mem::align_of::<NodeDeprecatedSetFlagsResponse>(), 4);
12614
12615 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeDeprecatedSetFlagsResponse, s), 0);
12616
12617 impl ::fidl_next::Constrained for NodeDeprecatedSetFlagsResponse {
12618 type Constraint = ();
12619
12620 fn validate(
12621 _: ::fidl_next::Slot<'_, Self>,
12622 _: Self::Constraint,
12623 ) -> Result<(), ::fidl_next::ValidationError> {
12624 Ok(())
12625 }
12626 }
12627
12628 unsafe impl ::fidl_next::Wire for NodeDeprecatedSetFlagsResponse {
12629 type Narrowed<'de> = NodeDeprecatedSetFlagsResponse;
12630
12631 #[inline]
12632 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12633 ::fidl_next::munge! {
12634 let Self {
12635 s,
12636
12637 } = &mut *out_;
12638 }
12639
12640 ::fidl_next::Wire::zero_padding(s);
12641 }
12642 }
12643
12644 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeDeprecatedSetFlagsResponse
12645 where
12646 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12647 {
12648 fn decode(
12649 slot_: ::fidl_next::Slot<'_, Self>,
12650 decoder_: &mut ___D,
12651 _: (),
12652 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12653 ::fidl_next::munge! {
12654 let Self {
12655 mut s,
12656
12657 } = slot_;
12658 }
12659
12660 let _field = s.as_mut();
12661
12662 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
12663
12664 Ok(())
12665 }
12666 }
12667
12668 impl ::fidl_next::IntoNatural for NodeDeprecatedSetFlagsResponse {
12669 type Natural = crate::natural::NodeDeprecatedSetFlagsResponse;
12670 }
12671
12672 #[derive(Clone, Copy, Debug)]
12674 #[repr(transparent)]
12675 pub struct Flags {
12676 pub(crate) value: ::fidl_next::wire::Uint64,
12677 }
12678
12679 impl ::fidl_next::Constrained for Flags {
12680 type Constraint = ();
12681
12682 fn validate(
12683 _: ::fidl_next::Slot<'_, Self>,
12684 _: Self::Constraint,
12685 ) -> Result<(), ::fidl_next::ValidationError> {
12686 Ok(())
12687 }
12688 }
12689
12690 unsafe impl ::fidl_next::Wire for Flags {
12691 type Narrowed<'de> = Self;
12692
12693 #[inline]
12694 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
12695 }
12697 }
12698
12699 unsafe impl<___D> ::fidl_next::Decode<___D> for Flags
12700 where
12701 ___D: ?Sized,
12702 {
12703 fn decode(
12704 slot: ::fidl_next::Slot<'_, Self>,
12705 _: &mut ___D,
12706 _: (),
12707 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12708 Ok(())
12709 }
12710 }
12711
12712 impl ::core::convert::From<crate::natural::Flags> for Flags {
12713 fn from(natural: crate::natural::Flags) -> Self {
12714 Self { value: ::fidl_next::wire::Uint64::from(natural.bits()) }
12715 }
12716 }
12717
12718 impl ::fidl_next::IntoNatural for Flags {
12719 type Natural = crate::natural::Flags;
12720 }
12721
12722 #[derive(Clone, Debug)]
12724 #[repr(C)]
12725 pub struct NodeGetFlagsResponse {
12726 pub flags: crate::wire::Flags,
12727 }
12728
12729 static_assertions::const_assert_eq!(std::mem::size_of::<NodeGetFlagsResponse>(), 8);
12730 static_assertions::const_assert_eq!(std::mem::align_of::<NodeGetFlagsResponse>(), 8);
12731
12732 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeGetFlagsResponse, flags), 0);
12733
12734 impl ::fidl_next::Constrained for NodeGetFlagsResponse {
12735 type Constraint = ();
12736
12737 fn validate(
12738 _: ::fidl_next::Slot<'_, Self>,
12739 _: Self::Constraint,
12740 ) -> Result<(), ::fidl_next::ValidationError> {
12741 Ok(())
12742 }
12743 }
12744
12745 unsafe impl ::fidl_next::Wire for NodeGetFlagsResponse {
12746 type Narrowed<'de> = NodeGetFlagsResponse;
12747
12748 #[inline]
12749 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12750 ::fidl_next::munge! {
12751 let Self {
12752 flags,
12753
12754 } = &mut *out_;
12755 }
12756
12757 ::fidl_next::Wire::zero_padding(flags);
12758 }
12759 }
12760
12761 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeGetFlagsResponse
12762 where
12763 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12764 {
12765 fn decode(
12766 slot_: ::fidl_next::Slot<'_, Self>,
12767 decoder_: &mut ___D,
12768 _: (),
12769 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12770 ::fidl_next::munge! {
12771 let Self {
12772 mut flags,
12773
12774 } = slot_;
12775 }
12776
12777 let _field = flags.as_mut();
12778
12779 ::fidl_next::Decode::decode(flags.as_mut(), decoder_, ())?;
12780
12781 Ok(())
12782 }
12783 }
12784
12785 impl ::fidl_next::IntoNatural for NodeGetFlagsResponse {
12786 type Natural = crate::natural::NodeGetFlagsResponse;
12787 }
12788
12789 #[derive(Clone, Debug)]
12791 #[repr(C)]
12792 pub struct NodeSetFlagsRequest {
12793 pub flags: crate::wire::Flags,
12794 }
12795
12796 static_assertions::const_assert_eq!(std::mem::size_of::<NodeSetFlagsRequest>(), 8);
12797 static_assertions::const_assert_eq!(std::mem::align_of::<NodeSetFlagsRequest>(), 8);
12798
12799 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeSetFlagsRequest, flags), 0);
12800
12801 impl ::fidl_next::Constrained for NodeSetFlagsRequest {
12802 type Constraint = ();
12803
12804 fn validate(
12805 _: ::fidl_next::Slot<'_, Self>,
12806 _: Self::Constraint,
12807 ) -> Result<(), ::fidl_next::ValidationError> {
12808 Ok(())
12809 }
12810 }
12811
12812 unsafe impl ::fidl_next::Wire for NodeSetFlagsRequest {
12813 type Narrowed<'de> = NodeSetFlagsRequest;
12814
12815 #[inline]
12816 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12817 ::fidl_next::munge! {
12818 let Self {
12819 flags,
12820
12821 } = &mut *out_;
12822 }
12823
12824 ::fidl_next::Wire::zero_padding(flags);
12825 }
12826 }
12827
12828 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeSetFlagsRequest
12829 where
12830 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12831 {
12832 fn decode(
12833 slot_: ::fidl_next::Slot<'_, Self>,
12834 decoder_: &mut ___D,
12835 _: (),
12836 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12837 ::fidl_next::munge! {
12838 let Self {
12839 mut flags,
12840
12841 } = slot_;
12842 }
12843
12844 let _field = flags.as_mut();
12845
12846 ::fidl_next::Decode::decode(flags.as_mut(), decoder_, ())?;
12847
12848 Ok(())
12849 }
12850 }
12851
12852 impl ::fidl_next::IntoNatural for NodeSetFlagsRequest {
12853 type Natural = crate::natural::NodeSetFlagsRequest;
12854 }
12855
12856 pub type EmptyStruct = ::fidl_next::wire::Unit;
12858
12859 #[repr(transparent)]
12861 pub struct SelinuxContext<'de> {
12862 pub(crate) raw: ::fidl_next::wire::Union,
12863 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
12864 }
12865
12866 impl<'de> Drop for SelinuxContext<'de> {
12867 fn drop(&mut self) {
12868 match self.raw.ordinal() {
12869 1 => {
12870 let _ = unsafe {
12871 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
12872 };
12873 }
12874
12875 2 => {
12876 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::EmptyStruct>() };
12877 }
12878
12879 _ => (),
12880 }
12881 }
12882 }
12883
12884 impl ::fidl_next::Constrained for SelinuxContext<'_> {
12885 type Constraint = ();
12886
12887 fn validate(
12888 _: ::fidl_next::Slot<'_, Self>,
12889 _: Self::Constraint,
12890 ) -> Result<(), ::fidl_next::ValidationError> {
12891 Ok(())
12892 }
12893 }
12894
12895 unsafe impl ::fidl_next::Wire for SelinuxContext<'static> {
12896 type Narrowed<'de> = SelinuxContext<'de>;
12897
12898 #[inline]
12899 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
12900 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
12901 ::fidl_next::wire::Union::zero_padding(raw);
12902 }
12903 }
12904
12905 pub mod selinux_context {
12906 pub enum Ref<'de> {
12907 Data(&'de ::fidl_next::wire::Vector<'de, u8>),
12908
12909 UseExtendedAttributes(&'de crate::wire::EmptyStruct),
12910
12911 UnknownOrdinal_(u64),
12912 }
12913
12914 pub enum Value<'de> {
12915 Data(::fidl_next::wire::Vector<'de, u8>),
12916
12917 UseExtendedAttributes(crate::wire::EmptyStruct),
12918
12919 UnknownOrdinal_(u64),
12920 }
12921 }
12922
12923 impl<'de> SelinuxContext<'de> {
12924 pub fn as_ref(&self) -> crate::wire::selinux_context::Ref<'_> {
12925 match self.raw.ordinal() {
12926 1 => crate::wire::selinux_context::Ref::Data(unsafe {
12927 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>()
12928 }),
12929
12930 2 => crate::wire::selinux_context::Ref::UseExtendedAttributes(unsafe {
12931 self.raw.get().deref_unchecked::<crate::wire::EmptyStruct>()
12932 }),
12933
12934 unknown => crate::wire::selinux_context::Ref::UnknownOrdinal_(unknown),
12935 }
12936 }
12937
12938 pub fn into_inner(self) -> crate::wire::selinux_context::Value<'de> {
12939 let this = ::core::mem::ManuallyDrop::new(self);
12940
12941 match this.raw.ordinal() {
12942 1 => crate::wire::selinux_context::Value::Data(unsafe {
12943 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
12944 }),
12945
12946 2 => crate::wire::selinux_context::Value::UseExtendedAttributes(unsafe {
12947 this.raw.get().read_unchecked::<crate::wire::EmptyStruct>()
12948 }),
12949
12950 unknown => crate::wire::selinux_context::Value::UnknownOrdinal_(unknown),
12951 }
12952 }
12953 }
12954
12955 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for SelinuxContext<'de>
12956 where
12957 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12958 ___D: ::fidl_next::Decoder<'de>,
12959 {
12960 fn decode(
12961 mut slot: ::fidl_next::Slot<'_, Self>,
12962 decoder: &mut ___D,
12963 _: (),
12964 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12965 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
12966 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
12967 1 => {
12968 ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Vector<'de, u8>>(
12969 raw,
12970 decoder,
12971 (256, ()),
12972 )?
12973 }
12974
12975 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::EmptyStruct>(
12976 raw,
12977 decoder,
12978 (),
12979 )?,
12980
12981 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
12982 }
12983
12984 Ok(())
12985 }
12986 }
12987
12988 impl<'de> ::core::fmt::Debug for SelinuxContext<'de> {
12989 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12990 match self.raw.ordinal() {
12991 1 => unsafe {
12992 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>().fmt(f)
12993 },
12994 2 => unsafe { self.raw.get().deref_unchecked::<crate::wire::EmptyStruct>().fmt(f) },
12995 _ => unsafe { ::core::hint::unreachable_unchecked() },
12996 }
12997 }
12998 }
12999
13000 impl<'de> ::fidl_next::IntoNatural for SelinuxContext<'de> {
13001 type Natural = crate::natural::SelinuxContext;
13002 }
13003
13004 #[repr(C)]
13006 pub struct MutableNodeAttributes<'de> {
13007 pub(crate) table: ::fidl_next::wire::Table<'de>,
13008 }
13009
13010 impl<'de> Drop for MutableNodeAttributes<'de> {
13011 fn drop(&mut self) {
13012 let _ = self
13013 .table
13014 .get(1)
13015 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13016
13017 let _ = self
13018 .table
13019 .get(2)
13020 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13021
13022 let _ = self
13023 .table
13024 .get(3)
13025 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint32>() });
13026
13027 let _ = self
13028 .table
13029 .get(4)
13030 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint32>() });
13031
13032 let _ = self
13033 .table
13034 .get(5)
13035 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint32>() });
13036
13037 let _ = self
13038 .table
13039 .get(6)
13040 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13041
13042 let _ = self
13043 .table
13044 .get(7)
13045 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13046
13047 let _ = self.table.get(8).map(|envelope| unsafe { envelope.read_unchecked::<bool>() });
13048
13049 let _ = self.table.get(9).map(|envelope| unsafe {
13050 envelope.read_unchecked::<crate::wire::SelinuxContext<'de>>()
13051 });
13052
13053 let _ =
13054 self.table.get(10).map(|envelope| unsafe { envelope.read_unchecked::<[u8; 16]>() });
13055 }
13056 }
13057
13058 impl ::fidl_next::Constrained for MutableNodeAttributes<'_> {
13059 type Constraint = ();
13060
13061 fn validate(
13062 _: ::fidl_next::Slot<'_, Self>,
13063 _: Self::Constraint,
13064 ) -> Result<(), ::fidl_next::ValidationError> {
13065 Ok(())
13066 }
13067 }
13068
13069 unsafe impl ::fidl_next::Wire for MutableNodeAttributes<'static> {
13070 type Narrowed<'de> = MutableNodeAttributes<'de>;
13071
13072 #[inline]
13073 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
13074 ::fidl_next::munge!(let Self { table } = out);
13075 ::fidl_next::wire::Table::zero_padding(table);
13076 }
13077 }
13078
13079 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for MutableNodeAttributes<'de>
13080 where
13081 ___D: ::fidl_next::Decoder<'de> + ?Sized,
13082 {
13083 fn decode(
13084 slot: ::fidl_next::Slot<'_, Self>,
13085 decoder: &mut ___D,
13086 _: (),
13087 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
13088 ::fidl_next::munge!(let Self { table } = slot);
13089
13090 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
13091 match ordinal {
13092 0 => unsafe { ::core::hint::unreachable_unchecked() },
13093
13094 1 => {
13095 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13096 slot.as_mut(),
13097 decoder,
13098 (),
13099 )?;
13100
13101 Ok(())
13102 }
13103
13104 2 => {
13105 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13106 slot.as_mut(),
13107 decoder,
13108 (),
13109 )?;
13110
13111 Ok(())
13112 }
13113
13114 3 => {
13115 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint32>(
13116 slot.as_mut(),
13117 decoder,
13118 (),
13119 )?;
13120
13121 Ok(())
13122 }
13123
13124 4 => {
13125 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint32>(
13126 slot.as_mut(),
13127 decoder,
13128 (),
13129 )?;
13130
13131 Ok(())
13132 }
13133
13134 5 => {
13135 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint32>(
13136 slot.as_mut(),
13137 decoder,
13138 (),
13139 )?;
13140
13141 Ok(())
13142 }
13143
13144 6 => {
13145 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13146 slot.as_mut(),
13147 decoder,
13148 (),
13149 )?;
13150
13151 Ok(())
13152 }
13153
13154 7 => {
13155 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13156 slot.as_mut(),
13157 decoder,
13158 (),
13159 )?;
13160
13161 Ok(())
13162 }
13163
13164 8 => {
13165 ::fidl_next::wire::Envelope::decode_as::<___D, bool>(
13166 slot.as_mut(),
13167 decoder,
13168 (),
13169 )?;
13170
13171 Ok(())
13172 }
13173
13174 9 => {
13175 ::fidl_next::wire::Envelope::decode_as::<
13176 ___D,
13177 crate::wire::SelinuxContext<'de>,
13178 >(slot.as_mut(), decoder, ())?;
13179
13180 Ok(())
13181 }
13182
13183 10 => {
13184 ::fidl_next::wire::Envelope::decode_as::<___D, [u8; 16]>(
13185 slot.as_mut(),
13186 decoder,
13187 (),
13188 )?;
13189
13190 Ok(())
13191 }
13192
13193 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
13194 }
13195 })
13196 }
13197 }
13198
13199 impl<'de> MutableNodeAttributes<'de> {
13200 pub fn creation_time(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13201 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
13202 }
13203
13204 pub fn take_creation_time(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13205 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
13206 }
13207
13208 pub fn modification_time(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13209 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
13210 }
13211
13212 pub fn take_modification_time(
13213 &mut self,
13214 ) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13215 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
13216 }
13217
13218 pub fn mode(&self) -> ::core::option::Option<&::fidl_next::wire::Uint32> {
13219 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
13220 }
13221
13222 pub fn take_mode(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint32> {
13223 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
13224 }
13225
13226 pub fn uid(&self) -> ::core::option::Option<&::fidl_next::wire::Uint32> {
13227 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
13228 }
13229
13230 pub fn take_uid(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint32> {
13231 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
13232 }
13233
13234 pub fn gid(&self) -> ::core::option::Option<&::fidl_next::wire::Uint32> {
13235 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
13236 }
13237
13238 pub fn take_gid(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint32> {
13239 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
13240 }
13241
13242 pub fn rdev(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13243 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
13244 }
13245
13246 pub fn take_rdev(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13247 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
13248 }
13249
13250 pub fn access_time(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13251 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
13252 }
13253
13254 pub fn take_access_time(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13255 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
13256 }
13257
13258 pub fn casefold(&self) -> ::core::option::Option<&bool> {
13259 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
13260 }
13261
13262 pub fn take_casefold(&mut self) -> ::core::option::Option<bool> {
13263 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
13264 }
13265
13266 pub fn selinux_context(&self) -> ::core::option::Option<&crate::wire::SelinuxContext<'de>> {
13267 unsafe { Some(self.table.get(9)?.deref_unchecked()) }
13268 }
13269
13270 pub fn take_selinux_context(
13271 &mut self,
13272 ) -> ::core::option::Option<crate::wire::SelinuxContext<'de>> {
13273 unsafe { Some(self.table.get_mut(9)?.take_unchecked()) }
13274 }
13275
13276 pub fn wrapping_key_id(&self) -> ::core::option::Option<&[u8; 16]> {
13277 unsafe { Some(self.table.get(10)?.deref_unchecked()) }
13278 }
13279
13280 pub fn take_wrapping_key_id(&mut self) -> ::core::option::Option<[u8; 16]> {
13281 unsafe { Some(self.table.get_mut(10)?.take_unchecked()) }
13282 }
13283 }
13284
13285 impl<'de> ::core::fmt::Debug for MutableNodeAttributes<'de> {
13286 fn fmt(
13287 &self,
13288 f: &mut ::core::fmt::Formatter<'_>,
13289 ) -> ::core::result::Result<(), ::core::fmt::Error> {
13290 f.debug_struct("MutableNodeAttributes")
13291 .field("creation_time", &self.creation_time())
13292 .field("modification_time", &self.modification_time())
13293 .field("mode", &self.mode())
13294 .field("uid", &self.uid())
13295 .field("gid", &self.gid())
13296 .field("rdev", &self.rdev())
13297 .field("access_time", &self.access_time())
13298 .field("casefold", &self.casefold())
13299 .field("selinux_context", &self.selinux_context())
13300 .field("wrapping_key_id", &self.wrapping_key_id())
13301 .finish()
13302 }
13303 }
13304
13305 impl<'de> ::fidl_next::IntoNatural for MutableNodeAttributes<'de> {
13306 type Natural = crate::natural::MutableNodeAttributes;
13307 }
13308
13309 #[derive(Clone, Copy, Debug)]
13311 #[repr(transparent)]
13312 pub struct NodeProtocolKinds {
13313 pub(crate) value: ::fidl_next::wire::Uint64,
13314 }
13315
13316 impl ::fidl_next::Constrained for NodeProtocolKinds {
13317 type Constraint = ();
13318
13319 fn validate(
13320 _: ::fidl_next::Slot<'_, Self>,
13321 _: Self::Constraint,
13322 ) -> Result<(), ::fidl_next::ValidationError> {
13323 Ok(())
13324 }
13325 }
13326
13327 unsafe impl ::fidl_next::Wire for NodeProtocolKinds {
13328 type Narrowed<'de> = Self;
13329
13330 #[inline]
13331 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
13332 }
13334 }
13335
13336 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeProtocolKinds
13337 where
13338 ___D: ?Sized,
13339 {
13340 fn decode(
13341 slot: ::fidl_next::Slot<'_, Self>,
13342 _: &mut ___D,
13343 _: (),
13344 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
13345 Ok(())
13346 }
13347 }
13348
13349 impl ::core::convert::From<crate::natural::NodeProtocolKinds> for NodeProtocolKinds {
13350 fn from(natural: crate::natural::NodeProtocolKinds) -> Self {
13351 Self { value: ::fidl_next::wire::Uint64::from(natural.bits()) }
13352 }
13353 }
13354
13355 impl ::fidl_next::IntoNatural for NodeProtocolKinds {
13356 type Natural = crate::natural::NodeProtocolKinds;
13357 }
13358
13359 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
13361 #[repr(transparent)]
13362 pub struct HashAlgorithm {
13363 pub(crate) value: u8,
13364 }
13365
13366 impl ::fidl_next::Constrained for HashAlgorithm {
13367 type Constraint = ();
13368
13369 fn validate(
13370 _: ::fidl_next::Slot<'_, Self>,
13371 _: Self::Constraint,
13372 ) -> Result<(), ::fidl_next::ValidationError> {
13373 Ok(())
13374 }
13375 }
13376
13377 unsafe impl ::fidl_next::Wire for HashAlgorithm {
13378 type Narrowed<'de> = Self;
13379
13380 #[inline]
13381 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
13382 }
13384 }
13385
13386 impl HashAlgorithm {
13387 pub const SHA256: HashAlgorithm = HashAlgorithm { value: 1 };
13388
13389 pub const SHA512: HashAlgorithm = HashAlgorithm { value: 2 };
13390 }
13391
13392 unsafe impl<___D> ::fidl_next::Decode<___D> for HashAlgorithm
13393 where
13394 ___D: ?Sized,
13395 {
13396 fn decode(
13397 slot: ::fidl_next::Slot<'_, Self>,
13398 _: &mut ___D,
13399 _: (),
13400 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
13401 Ok(())
13402 }
13403 }
13404
13405 impl ::core::convert::From<crate::natural::HashAlgorithm> for HashAlgorithm {
13406 fn from(natural: crate::natural::HashAlgorithm) -> Self {
13407 match natural {
13408 crate::natural::HashAlgorithm::Sha256 => HashAlgorithm::SHA256,
13409
13410 crate::natural::HashAlgorithm::Sha512 => HashAlgorithm::SHA512,
13411
13412 crate::natural::HashAlgorithm::UnknownOrdinal_(value) => {
13413 HashAlgorithm { value: u8::from(value) }
13414 }
13415 }
13416 }
13417 }
13418
13419 impl ::fidl_next::IntoNatural for HashAlgorithm {
13420 type Natural = crate::natural::HashAlgorithm;
13421 }
13422
13423 #[repr(C)]
13425 pub struct VerificationOptions<'de> {
13426 pub(crate) table: ::fidl_next::wire::Table<'de>,
13427 }
13428
13429 impl<'de> Drop for VerificationOptions<'de> {
13430 fn drop(&mut self) {
13431 let _ = self
13432 .table
13433 .get(1)
13434 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::HashAlgorithm>() });
13435
13436 let _ = self.table.get(2).map(|envelope| unsafe {
13437 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
13438 });
13439 }
13440 }
13441
13442 impl ::fidl_next::Constrained for VerificationOptions<'_> {
13443 type Constraint = ();
13444
13445 fn validate(
13446 _: ::fidl_next::Slot<'_, Self>,
13447 _: Self::Constraint,
13448 ) -> Result<(), ::fidl_next::ValidationError> {
13449 Ok(())
13450 }
13451 }
13452
13453 unsafe impl ::fidl_next::Wire for VerificationOptions<'static> {
13454 type Narrowed<'de> = VerificationOptions<'de>;
13455
13456 #[inline]
13457 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
13458 ::fidl_next::munge!(let Self { table } = out);
13459 ::fidl_next::wire::Table::zero_padding(table);
13460 }
13461 }
13462
13463 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for VerificationOptions<'de>
13464 where
13465 ___D: ::fidl_next::Decoder<'de> + ?Sized,
13466 {
13467 fn decode(
13468 slot: ::fidl_next::Slot<'_, Self>,
13469 decoder: &mut ___D,
13470 _: (),
13471 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
13472 ::fidl_next::munge!(let Self { table } = slot);
13473
13474 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
13475 match ordinal {
13476 0 => unsafe { ::core::hint::unreachable_unchecked() },
13477
13478 1 => {
13479 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::HashAlgorithm>(
13480 slot.as_mut(),
13481 decoder,
13482 (),
13483 )?;
13484
13485 Ok(())
13486 }
13487
13488 2 => {
13489 ::fidl_next::wire::Envelope::decode_as::<
13490 ___D,
13491 ::fidl_next::wire::Vector<'de, u8>,
13492 >(slot.as_mut(), decoder, (32, ()))?;
13493
13494 let value = unsafe {
13495 slot.deref_unchecked()
13496 .deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>()
13497 };
13498
13499 if value.len() > 32 {
13500 return Err(::fidl_next::DecodeError::VectorTooLong {
13501 size: value.len() as u64,
13502 limit: 32,
13503 });
13504 }
13505
13506 Ok(())
13507 }
13508
13509 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
13510 }
13511 })
13512 }
13513 }
13514
13515 impl<'de> VerificationOptions<'de> {
13516 pub fn hash_algorithm(&self) -> ::core::option::Option<&crate::wire::HashAlgorithm> {
13517 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
13518 }
13519
13520 pub fn take_hash_algorithm(
13521 &mut self,
13522 ) -> ::core::option::Option<crate::wire::HashAlgorithm> {
13523 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
13524 }
13525
13526 pub fn salt(&self) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, u8>> {
13527 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
13528 }
13529
13530 pub fn take_salt(&mut self) -> ::core::option::Option<::fidl_next::wire::Vector<'de, u8>> {
13531 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
13532 }
13533 }
13534
13535 impl<'de> ::core::fmt::Debug for VerificationOptions<'de> {
13536 fn fmt(
13537 &self,
13538 f: &mut ::core::fmt::Formatter<'_>,
13539 ) -> ::core::result::Result<(), ::core::fmt::Error> {
13540 f.debug_struct("VerificationOptions")
13541 .field("hash_algorithm", &self.hash_algorithm())
13542 .field("salt", &self.salt())
13543 .finish()
13544 }
13545 }
13546
13547 impl<'de> ::fidl_next::IntoNatural for VerificationOptions<'de> {
13548 type Natural = crate::natural::VerificationOptions;
13549 }
13550
13551 #[repr(C)]
13553 pub struct ImmutableNodeAttributes<'de> {
13554 pub(crate) table: ::fidl_next::wire::Table<'de>,
13555 }
13556
13557 impl<'de> Drop for ImmutableNodeAttributes<'de> {
13558 fn drop(&mut self) {
13559 let _ = self.table.get(1).map(|envelope| unsafe {
13560 envelope.read_unchecked::<crate::wire::NodeProtocolKinds>()
13561 });
13562
13563 let _ = self
13564 .table
13565 .get(2)
13566 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Operations>() });
13567
13568 let _ = self
13569 .table
13570 .get(3)
13571 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13572
13573 let _ = self
13574 .table
13575 .get(4)
13576 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13577
13578 let _ = self
13579 .table
13580 .get(5)
13581 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13582
13583 let _ = self
13584 .table
13585 .get(6)
13586 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13587
13588 let _ = self
13589 .table
13590 .get(7)
13591 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13592
13593 let _ = self.table.get(8).map(|envelope| unsafe {
13594 envelope.read_unchecked::<crate::wire::VerificationOptions<'de>>()
13595 });
13596
13597 let _ = self.table.get(9).map(|envelope| unsafe {
13598 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
13599 });
13600
13601 let _ = self.table.get(10).map(|envelope| unsafe { envelope.read_unchecked::<bool>() });
13602 }
13603 }
13604
13605 impl ::fidl_next::Constrained for ImmutableNodeAttributes<'_> {
13606 type Constraint = ();
13607
13608 fn validate(
13609 _: ::fidl_next::Slot<'_, Self>,
13610 _: Self::Constraint,
13611 ) -> Result<(), ::fidl_next::ValidationError> {
13612 Ok(())
13613 }
13614 }
13615
13616 unsafe impl ::fidl_next::Wire for ImmutableNodeAttributes<'static> {
13617 type Narrowed<'de> = ImmutableNodeAttributes<'de>;
13618
13619 #[inline]
13620 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
13621 ::fidl_next::munge!(let Self { table } = out);
13622 ::fidl_next::wire::Table::zero_padding(table);
13623 }
13624 }
13625
13626 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ImmutableNodeAttributes<'de>
13627 where
13628 ___D: ::fidl_next::Decoder<'de> + ?Sized,
13629 {
13630 fn decode(
13631 slot: ::fidl_next::Slot<'_, Self>,
13632 decoder: &mut ___D,
13633 _: (),
13634 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
13635 ::fidl_next::munge!(let Self { table } = slot);
13636
13637 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
13638 match ordinal {
13639 0 => unsafe { ::core::hint::unreachable_unchecked() },
13640
13641 1 => {
13642 ::fidl_next::wire::Envelope::decode_as::<
13643 ___D,
13644 crate::wire::NodeProtocolKinds,
13645 >(slot.as_mut(), decoder, ())?;
13646
13647 Ok(())
13648 }
13649
13650 2 => {
13651 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Operations>(
13652 slot.as_mut(),
13653 decoder,
13654 (),
13655 )?;
13656
13657 Ok(())
13658 }
13659
13660 3 => {
13661 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13662 slot.as_mut(),
13663 decoder,
13664 (),
13665 )?;
13666
13667 Ok(())
13668 }
13669
13670 4 => {
13671 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13672 slot.as_mut(),
13673 decoder,
13674 (),
13675 )?;
13676
13677 Ok(())
13678 }
13679
13680 5 => {
13681 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13682 slot.as_mut(),
13683 decoder,
13684 (),
13685 )?;
13686
13687 Ok(())
13688 }
13689
13690 6 => {
13691 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13692 slot.as_mut(),
13693 decoder,
13694 (),
13695 )?;
13696
13697 Ok(())
13698 }
13699
13700 7 => {
13701 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13702 slot.as_mut(),
13703 decoder,
13704 (),
13705 )?;
13706
13707 Ok(())
13708 }
13709
13710 8 => {
13711 ::fidl_next::wire::Envelope::decode_as::<
13712 ___D,
13713 crate::wire::VerificationOptions<'de>,
13714 >(slot.as_mut(), decoder, ())?;
13715
13716 Ok(())
13717 }
13718
13719 9 => {
13720 ::fidl_next::wire::Envelope::decode_as::<
13721 ___D,
13722 ::fidl_next::wire::Vector<'de, u8>,
13723 >(slot.as_mut(), decoder, (64, ()))?;
13724
13725 let value = unsafe {
13726 slot.deref_unchecked()
13727 .deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>()
13728 };
13729
13730 if value.len() > 64 {
13731 return Err(::fidl_next::DecodeError::VectorTooLong {
13732 size: value.len() as u64,
13733 limit: 64,
13734 });
13735 }
13736
13737 Ok(())
13738 }
13739
13740 10 => {
13741 ::fidl_next::wire::Envelope::decode_as::<___D, bool>(
13742 slot.as_mut(),
13743 decoder,
13744 (),
13745 )?;
13746
13747 Ok(())
13748 }
13749
13750 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
13751 }
13752 })
13753 }
13754 }
13755
13756 impl<'de> ImmutableNodeAttributes<'de> {
13757 pub fn protocols(&self) -> ::core::option::Option<&crate::wire::NodeProtocolKinds> {
13758 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
13759 }
13760
13761 pub fn take_protocols(&mut self) -> ::core::option::Option<crate::wire::NodeProtocolKinds> {
13762 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
13763 }
13764
13765 pub fn abilities(&self) -> ::core::option::Option<&crate::wire::Operations> {
13766 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
13767 }
13768
13769 pub fn take_abilities(&mut self) -> ::core::option::Option<crate::wire::Operations> {
13770 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
13771 }
13772
13773 pub fn content_size(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13774 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
13775 }
13776
13777 pub fn take_content_size(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13778 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
13779 }
13780
13781 pub fn storage_size(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13782 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
13783 }
13784
13785 pub fn take_storage_size(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13786 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
13787 }
13788
13789 pub fn link_count(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13790 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
13791 }
13792
13793 pub fn take_link_count(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13794 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
13795 }
13796
13797 pub fn id(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13798 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
13799 }
13800
13801 pub fn take_id(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13802 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
13803 }
13804
13805 pub fn change_time(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13806 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
13807 }
13808
13809 pub fn take_change_time(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13810 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
13811 }
13812
13813 pub fn options(&self) -> ::core::option::Option<&crate::wire::VerificationOptions<'de>> {
13814 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
13815 }
13816
13817 pub fn take_options(
13818 &mut self,
13819 ) -> ::core::option::Option<crate::wire::VerificationOptions<'de>> {
13820 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
13821 }
13822
13823 pub fn root_hash(&self) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, u8>> {
13824 unsafe { Some(self.table.get(9)?.deref_unchecked()) }
13825 }
13826
13827 pub fn take_root_hash(
13828 &mut self,
13829 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, u8>> {
13830 unsafe { Some(self.table.get_mut(9)?.take_unchecked()) }
13831 }
13832
13833 pub fn verity_enabled(&self) -> ::core::option::Option<&bool> {
13834 unsafe { Some(self.table.get(10)?.deref_unchecked()) }
13835 }
13836
13837 pub fn take_verity_enabled(&mut self) -> ::core::option::Option<bool> {
13838 unsafe { Some(self.table.get_mut(10)?.take_unchecked()) }
13839 }
13840 }
13841
13842 impl<'de> ::core::fmt::Debug for ImmutableNodeAttributes<'de> {
13843 fn fmt(
13844 &self,
13845 f: &mut ::core::fmt::Formatter<'_>,
13846 ) -> ::core::result::Result<(), ::core::fmt::Error> {
13847 f.debug_struct("ImmutableNodeAttributes")
13848 .field("protocols", &self.protocols())
13849 .field("abilities", &self.abilities())
13850 .field("content_size", &self.content_size())
13851 .field("storage_size", &self.storage_size())
13852 .field("link_count", &self.link_count())
13853 .field("id", &self.id())
13854 .field("change_time", &self.change_time())
13855 .field("options", &self.options())
13856 .field("root_hash", &self.root_hash())
13857 .field("verity_enabled", &self.verity_enabled())
13858 .finish()
13859 }
13860 }
13861
13862 impl<'de> ::fidl_next::IntoNatural for ImmutableNodeAttributes<'de> {
13863 type Natural = crate::natural::ImmutableNodeAttributes;
13864 }
13865
13866 #[derive(Debug)]
13868 #[repr(C)]
13869 pub struct NodeAttributes2<'de> {
13870 pub mutable_attributes: crate::wire::MutableNodeAttributes<'de>,
13871
13872 pub immutable_attributes: crate::wire::ImmutableNodeAttributes<'de>,
13873 }
13874
13875 static_assertions::const_assert_eq!(std::mem::size_of::<NodeAttributes2<'_>>(), 32);
13876 static_assertions::const_assert_eq!(std::mem::align_of::<NodeAttributes2<'_>>(), 8);
13877
13878 static_assertions::const_assert_eq!(
13879 std::mem::offset_of!(NodeAttributes2<'_>, mutable_attributes),
13880 0
13881 );
13882
13883 static_assertions::const_assert_eq!(
13884 std::mem::offset_of!(NodeAttributes2<'_>, immutable_attributes),
13885 16
13886 );
13887
13888 impl ::fidl_next::Constrained for NodeAttributes2<'_> {
13889 type Constraint = ();
13890
13891 fn validate(
13892 _: ::fidl_next::Slot<'_, Self>,
13893 _: Self::Constraint,
13894 ) -> Result<(), ::fidl_next::ValidationError> {
13895 Ok(())
13896 }
13897 }
13898
13899 unsafe impl ::fidl_next::Wire for NodeAttributes2<'static> {
13900 type Narrowed<'de> = NodeAttributes2<'de>;
13901
13902 #[inline]
13903 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
13904 ::fidl_next::munge! {
13905 let Self {
13906 mutable_attributes,
13907 immutable_attributes,
13908
13909 } = &mut *out_;
13910 }
13911
13912 ::fidl_next::Wire::zero_padding(mutable_attributes);
13913
13914 ::fidl_next::Wire::zero_padding(immutable_attributes);
13915 }
13916 }
13917
13918 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for NodeAttributes2<'de>
13919 where
13920 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
13921 ___D: ::fidl_next::Decoder<'de>,
13922 {
13923 fn decode(
13924 slot_: ::fidl_next::Slot<'_, Self>,
13925 decoder_: &mut ___D,
13926 _: (),
13927 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
13928 ::fidl_next::munge! {
13929 let Self {
13930 mut mutable_attributes,
13931 mut immutable_attributes,
13932
13933 } = slot_;
13934 }
13935
13936 let _field = mutable_attributes.as_mut();
13937
13938 ::fidl_next::Decode::decode(mutable_attributes.as_mut(), decoder_, ())?;
13939
13940 let _field = immutable_attributes.as_mut();
13941
13942 ::fidl_next::Decode::decode(immutable_attributes.as_mut(), decoder_, ())?;
13943
13944 Ok(())
13945 }
13946 }
13947
13948 impl<'de> ::fidl_next::IntoNatural for NodeAttributes2<'de> {
13949 type Natural = crate::natural::NodeAttributes2;
13950 }
13951
13952 #[repr(C)]
13954 pub struct NodeInfo<'de> {
13955 pub(crate) table: ::fidl_next::wire::Table<'de>,
13956 }
13957
13958 impl<'de> Drop for NodeInfo<'de> {
13959 fn drop(&mut self) {
13960 let _ = self.table.get(1).map(|envelope| unsafe {
13961 envelope.read_unchecked::<crate::wire::NodeAttributes2<'de>>()
13962 });
13963 }
13964 }
13965
13966 impl ::fidl_next::Constrained for NodeInfo<'_> {
13967 type Constraint = ();
13968
13969 fn validate(
13970 _: ::fidl_next::Slot<'_, Self>,
13971 _: Self::Constraint,
13972 ) -> Result<(), ::fidl_next::ValidationError> {
13973 Ok(())
13974 }
13975 }
13976
13977 unsafe impl ::fidl_next::Wire for NodeInfo<'static> {
13978 type Narrowed<'de> = NodeInfo<'de>;
13979
13980 #[inline]
13981 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
13982 ::fidl_next::munge!(let Self { table } = out);
13983 ::fidl_next::wire::Table::zero_padding(table);
13984 }
13985 }
13986
13987 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for NodeInfo<'de>
13988 where
13989 ___D: ::fidl_next::Decoder<'de> + ?Sized,
13990 {
13991 fn decode(
13992 slot: ::fidl_next::Slot<'_, Self>,
13993 decoder: &mut ___D,
13994 _: (),
13995 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
13996 ::fidl_next::munge!(let Self { table } = slot);
13997
13998 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
13999 match ordinal {
14000 0 => unsafe { ::core::hint::unreachable_unchecked() },
14001
14002 1 => {
14003 ::fidl_next::wire::Envelope::decode_as::<
14004 ___D,
14005 crate::wire::NodeAttributes2<'de>,
14006 >(slot.as_mut(), decoder, ())?;
14007
14008 Ok(())
14009 }
14010
14011 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
14012 }
14013 })
14014 }
14015 }
14016
14017 impl<'de> NodeInfo<'de> {
14018 pub fn attributes(&self) -> ::core::option::Option<&crate::wire::NodeAttributes2<'de>> {
14019 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
14020 }
14021
14022 pub fn take_attributes(
14023 &mut self,
14024 ) -> ::core::option::Option<crate::wire::NodeAttributes2<'de>> {
14025 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
14026 }
14027 }
14028
14029 impl<'de> ::core::fmt::Debug for NodeInfo<'de> {
14030 fn fmt(
14031 &self,
14032 f: &mut ::core::fmt::Formatter<'_>,
14033 ) -> ::core::result::Result<(), ::core::fmt::Error> {
14034 f.debug_struct("NodeInfo").field("attributes", &self.attributes()).finish()
14035 }
14036 }
14037
14038 impl<'de> ::fidl_next::IntoNatural for NodeInfo<'de> {
14039 type Natural = crate::natural::NodeInfo;
14040 }
14041
14042 #[repr(C)]
14044 pub struct DirectoryInfo<'de> {
14045 pub(crate) table: ::fidl_next::wire::Table<'de>,
14046 }
14047
14048 impl<'de> Drop for DirectoryInfo<'de> {
14049 fn drop(&mut self) {
14050 let _ = self.table.get(1).map(|envelope| unsafe {
14051 envelope.read_unchecked::<crate::wire::NodeAttributes2<'de>>()
14052 });
14053 }
14054 }
14055
14056 impl ::fidl_next::Constrained for DirectoryInfo<'_> {
14057 type Constraint = ();
14058
14059 fn validate(
14060 _: ::fidl_next::Slot<'_, Self>,
14061 _: Self::Constraint,
14062 ) -> Result<(), ::fidl_next::ValidationError> {
14063 Ok(())
14064 }
14065 }
14066
14067 unsafe impl ::fidl_next::Wire for DirectoryInfo<'static> {
14068 type Narrowed<'de> = DirectoryInfo<'de>;
14069
14070 #[inline]
14071 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
14072 ::fidl_next::munge!(let Self { table } = out);
14073 ::fidl_next::wire::Table::zero_padding(table);
14074 }
14075 }
14076
14077 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DirectoryInfo<'de>
14078 where
14079 ___D: ::fidl_next::Decoder<'de> + ?Sized,
14080 {
14081 fn decode(
14082 slot: ::fidl_next::Slot<'_, Self>,
14083 decoder: &mut ___D,
14084 _: (),
14085 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14086 ::fidl_next::munge!(let Self { table } = slot);
14087
14088 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
14089 match ordinal {
14090 0 => unsafe { ::core::hint::unreachable_unchecked() },
14091
14092 1 => {
14093 ::fidl_next::wire::Envelope::decode_as::<
14094 ___D,
14095 crate::wire::NodeAttributes2<'de>,
14096 >(slot.as_mut(), decoder, ())?;
14097
14098 Ok(())
14099 }
14100
14101 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
14102 }
14103 })
14104 }
14105 }
14106
14107 impl<'de> DirectoryInfo<'de> {
14108 pub fn attributes(&self) -> ::core::option::Option<&crate::wire::NodeAttributes2<'de>> {
14109 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
14110 }
14111
14112 pub fn take_attributes(
14113 &mut self,
14114 ) -> ::core::option::Option<crate::wire::NodeAttributes2<'de>> {
14115 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
14116 }
14117 }
14118
14119 impl<'de> ::core::fmt::Debug for DirectoryInfo<'de> {
14120 fn fmt(
14121 &self,
14122 f: &mut ::core::fmt::Formatter<'_>,
14123 ) -> ::core::result::Result<(), ::core::fmt::Error> {
14124 f.debug_struct("DirectoryInfo").field("attributes", &self.attributes()).finish()
14125 }
14126 }
14127
14128 impl<'de> ::fidl_next::IntoNatural for DirectoryInfo<'de> {
14129 type Natural = crate::natural::DirectoryInfo;
14130 }
14131
14132 #[repr(C)]
14134 pub struct SymlinkInfo<'de> {
14135 pub(crate) table: ::fidl_next::wire::Table<'de>,
14136 }
14137
14138 impl<'de> Drop for SymlinkInfo<'de> {
14139 fn drop(&mut self) {
14140 let _ = self.table.get(1).map(|envelope| unsafe {
14141 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
14142 });
14143
14144 let _ = self.table.get(2).map(|envelope| unsafe {
14145 envelope.read_unchecked::<crate::wire::NodeAttributes2<'de>>()
14146 });
14147 }
14148 }
14149
14150 impl ::fidl_next::Constrained for SymlinkInfo<'_> {
14151 type Constraint = ();
14152
14153 fn validate(
14154 _: ::fidl_next::Slot<'_, Self>,
14155 _: Self::Constraint,
14156 ) -> Result<(), ::fidl_next::ValidationError> {
14157 Ok(())
14158 }
14159 }
14160
14161 unsafe impl ::fidl_next::Wire for SymlinkInfo<'static> {
14162 type Narrowed<'de> = SymlinkInfo<'de>;
14163
14164 #[inline]
14165 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
14166 ::fidl_next::munge!(let Self { table } = out);
14167 ::fidl_next::wire::Table::zero_padding(table);
14168 }
14169 }
14170
14171 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for SymlinkInfo<'de>
14172 where
14173 ___D: ::fidl_next::Decoder<'de> + ?Sized,
14174 {
14175 fn decode(
14176 slot: ::fidl_next::Slot<'_, Self>,
14177 decoder: &mut ___D,
14178 _: (),
14179 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14180 ::fidl_next::munge!(let Self { table } = slot);
14181
14182 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
14183 match ordinal {
14184 0 => unsafe { ::core::hint::unreachable_unchecked() },
14185
14186 1 => {
14187 ::fidl_next::wire::Envelope::decode_as::<
14188 ___D,
14189 ::fidl_next::wire::Vector<'de, u8>,
14190 >(slot.as_mut(), decoder, (4095, ()))?;
14191
14192 let value = unsafe {
14193 slot.deref_unchecked()
14194 .deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>()
14195 };
14196
14197 if value.len() > 4095 {
14198 return Err(::fidl_next::DecodeError::VectorTooLong {
14199 size: value.len() as u64,
14200 limit: 4095,
14201 });
14202 }
14203
14204 Ok(())
14205 }
14206
14207 2 => {
14208 ::fidl_next::wire::Envelope::decode_as::<
14209 ___D,
14210 crate::wire::NodeAttributes2<'de>,
14211 >(slot.as_mut(), decoder, ())?;
14212
14213 Ok(())
14214 }
14215
14216 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
14217 }
14218 })
14219 }
14220 }
14221
14222 impl<'de> SymlinkInfo<'de> {
14223 pub fn target(&self) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, u8>> {
14224 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
14225 }
14226
14227 pub fn take_target(
14228 &mut self,
14229 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, u8>> {
14230 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
14231 }
14232
14233 pub fn attributes(&self) -> ::core::option::Option<&crate::wire::NodeAttributes2<'de>> {
14234 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
14235 }
14236
14237 pub fn take_attributes(
14238 &mut self,
14239 ) -> ::core::option::Option<crate::wire::NodeAttributes2<'de>> {
14240 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
14241 }
14242 }
14243
14244 impl<'de> ::core::fmt::Debug for SymlinkInfo<'de> {
14245 fn fmt(
14246 &self,
14247 f: &mut ::core::fmt::Formatter<'_>,
14248 ) -> ::core::result::Result<(), ::core::fmt::Error> {
14249 f.debug_struct("SymlinkInfo")
14250 .field("target", &self.target())
14251 .field("attributes", &self.attributes())
14252 .finish()
14253 }
14254 }
14255
14256 impl<'de> ::fidl_next::IntoNatural for SymlinkInfo<'de> {
14257 type Natural = crate::natural::SymlinkInfo;
14258 }
14259
14260 #[derive(Clone, Copy, Debug)]
14262 #[repr(transparent)]
14263 pub struct NodeAttributesQuery {
14264 pub(crate) value: ::fidl_next::wire::Uint64,
14265 }
14266
14267 impl ::fidl_next::Constrained for NodeAttributesQuery {
14268 type Constraint = ();
14269
14270 fn validate(
14271 _: ::fidl_next::Slot<'_, Self>,
14272 _: Self::Constraint,
14273 ) -> Result<(), ::fidl_next::ValidationError> {
14274 Ok(())
14275 }
14276 }
14277
14278 unsafe impl ::fidl_next::Wire for NodeAttributesQuery {
14279 type Narrowed<'de> = Self;
14280
14281 #[inline]
14282 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
14283 }
14285 }
14286
14287 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeAttributesQuery
14288 where
14289 ___D: ?Sized,
14290 {
14291 fn decode(
14292 slot: ::fidl_next::Slot<'_, Self>,
14293 _: &mut ___D,
14294 _: (),
14295 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14296 Ok(())
14297 }
14298 }
14299
14300 impl ::core::convert::From<crate::natural::NodeAttributesQuery> for NodeAttributesQuery {
14301 fn from(natural: crate::natural::NodeAttributesQuery) -> Self {
14302 Self { value: ::fidl_next::wire::Uint64::from(natural.bits()) }
14303 }
14304 }
14305
14306 impl ::fidl_next::IntoNatural for NodeAttributesQuery {
14307 type Natural = crate::natural::NodeAttributesQuery;
14308 }
14309
14310 #[derive(Clone, Debug)]
14312 #[repr(C)]
14313 pub struct NodeGetAttributesRequest {
14314 pub query: crate::wire::NodeAttributesQuery,
14315 }
14316
14317 static_assertions::const_assert_eq!(std::mem::size_of::<NodeGetAttributesRequest>(), 8);
14318 static_assertions::const_assert_eq!(std::mem::align_of::<NodeGetAttributesRequest>(), 8);
14319
14320 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeGetAttributesRequest, query), 0);
14321
14322 impl ::fidl_next::Constrained for NodeGetAttributesRequest {
14323 type Constraint = ();
14324
14325 fn validate(
14326 _: ::fidl_next::Slot<'_, Self>,
14327 _: Self::Constraint,
14328 ) -> Result<(), ::fidl_next::ValidationError> {
14329 Ok(())
14330 }
14331 }
14332
14333 unsafe impl ::fidl_next::Wire for NodeGetAttributesRequest {
14334 type Narrowed<'de> = NodeGetAttributesRequest;
14335
14336 #[inline]
14337 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
14338 ::fidl_next::munge! {
14339 let Self {
14340 query,
14341
14342 } = &mut *out_;
14343 }
14344
14345 ::fidl_next::Wire::zero_padding(query);
14346 }
14347 }
14348
14349 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeGetAttributesRequest
14350 where
14351 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
14352 {
14353 fn decode(
14354 slot_: ::fidl_next::Slot<'_, Self>,
14355 decoder_: &mut ___D,
14356 _: (),
14357 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14358 ::fidl_next::munge! {
14359 let Self {
14360 mut query,
14361
14362 } = slot_;
14363 }
14364
14365 let _field = query.as_mut();
14366
14367 ::fidl_next::Decode::decode(query.as_mut(), decoder_, ())?;
14368
14369 Ok(())
14370 }
14371 }
14372
14373 impl ::fidl_next::IntoNatural for NodeGetAttributesRequest {
14374 type Natural = crate::natural::NodeGetAttributesRequest;
14375 }
14376
14377 #[repr(C)]
14379 pub struct Options<'de> {
14380 pub(crate) table: ::fidl_next::wire::Table<'de>,
14381 }
14382
14383 impl<'de> Drop for Options<'de> {
14384 fn drop(&mut self) {
14385 let _ = self.table.get(1).map(|envelope| unsafe {
14386 envelope.read_unchecked::<crate::wire::NodeAttributesQuery>()
14387 });
14388
14389 let _ = self.table.get(2).map(|envelope| unsafe {
14390 envelope.read_unchecked::<crate::wire::MutableNodeAttributes<'de>>()
14391 });
14392 }
14393 }
14394
14395 impl ::fidl_next::Constrained for Options<'_> {
14396 type Constraint = ();
14397
14398 fn validate(
14399 _: ::fidl_next::Slot<'_, Self>,
14400 _: Self::Constraint,
14401 ) -> Result<(), ::fidl_next::ValidationError> {
14402 Ok(())
14403 }
14404 }
14405
14406 unsafe impl ::fidl_next::Wire for Options<'static> {
14407 type Narrowed<'de> = Options<'de>;
14408
14409 #[inline]
14410 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
14411 ::fidl_next::munge!(let Self { table } = out);
14412 ::fidl_next::wire::Table::zero_padding(table);
14413 }
14414 }
14415
14416 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Options<'de>
14417 where
14418 ___D: ::fidl_next::Decoder<'de> + ?Sized,
14419 {
14420 fn decode(
14421 slot: ::fidl_next::Slot<'_, Self>,
14422 decoder: &mut ___D,
14423 _: (),
14424 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14425 ::fidl_next::munge!(let Self { table } = slot);
14426
14427 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
14428 match ordinal {
14429 0 => unsafe { ::core::hint::unreachable_unchecked() },
14430
14431 1 => {
14432 ::fidl_next::wire::Envelope::decode_as::<
14433 ___D,
14434 crate::wire::NodeAttributesQuery,
14435 >(slot.as_mut(), decoder, ())?;
14436
14437 Ok(())
14438 }
14439
14440 2 => {
14441 ::fidl_next::wire::Envelope::decode_as::<
14442 ___D,
14443 crate::wire::MutableNodeAttributes<'de>,
14444 >(slot.as_mut(), decoder, ())?;
14445
14446 Ok(())
14447 }
14448
14449 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
14450 }
14451 })
14452 }
14453 }
14454
14455 impl<'de> Options<'de> {
14456 pub fn attributes(&self) -> ::core::option::Option<&crate::wire::NodeAttributesQuery> {
14457 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
14458 }
14459
14460 pub fn take_attributes(
14461 &mut self,
14462 ) -> ::core::option::Option<crate::wire::NodeAttributesQuery> {
14463 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
14464 }
14465
14466 pub fn create_attributes(
14467 &self,
14468 ) -> ::core::option::Option<&crate::wire::MutableNodeAttributes<'de>> {
14469 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
14470 }
14471
14472 pub fn take_create_attributes(
14473 &mut self,
14474 ) -> ::core::option::Option<crate::wire::MutableNodeAttributes<'de>> {
14475 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
14476 }
14477 }
14478
14479 impl<'de> ::core::fmt::Debug for Options<'de> {
14480 fn fmt(
14481 &self,
14482 f: &mut ::core::fmt::Formatter<'_>,
14483 ) -> ::core::result::Result<(), ::core::fmt::Error> {
14484 f.debug_struct("Options")
14485 .field("attributes", &self.attributes())
14486 .field("create_attributes", &self.create_attributes())
14487 .finish()
14488 }
14489 }
14490
14491 impl<'de> ::fidl_next::IntoNatural for Options<'de> {
14492 type Natural = crate::natural::Options;
14493 }
14494
14495 pub type DirectoryObject = ::fidl_next::wire::Unit;
14497
14498 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
14500 #[repr(transparent)]
14501 pub struct DirentType {
14502 pub(crate) value: u8,
14503 }
14504
14505 impl ::fidl_next::Constrained for DirentType {
14506 type Constraint = ();
14507
14508 fn validate(
14509 _: ::fidl_next::Slot<'_, Self>,
14510 _: Self::Constraint,
14511 ) -> Result<(), ::fidl_next::ValidationError> {
14512 Ok(())
14513 }
14514 }
14515
14516 unsafe impl ::fidl_next::Wire for DirentType {
14517 type Narrowed<'de> = Self;
14518
14519 #[inline]
14520 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
14521 }
14523 }
14524
14525 impl DirentType {
14526 pub const UNKNOWN: DirentType = DirentType { value: 0 };
14527
14528 pub const DIRECTORY: DirentType = DirentType { value: 4 };
14529
14530 pub const BLOCK_DEVICE: DirentType = DirentType { value: 6 };
14531
14532 pub const FILE: DirentType = DirentType { value: 8 };
14533
14534 pub const SYMLINK: DirentType = DirentType { value: 10 };
14535
14536 pub const SERVICE: DirentType = DirentType { value: 16 };
14537 }
14538
14539 unsafe impl<___D> ::fidl_next::Decode<___D> for DirentType
14540 where
14541 ___D: ?Sized,
14542 {
14543 fn decode(
14544 slot: ::fidl_next::Slot<'_, Self>,
14545 _: &mut ___D,
14546 _: (),
14547 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14548 Ok(())
14549 }
14550 }
14551
14552 impl ::core::convert::From<crate::natural::DirentType> for DirentType {
14553 fn from(natural: crate::natural::DirentType) -> Self {
14554 match natural {
14555 crate::natural::DirentType::Unknown => DirentType::UNKNOWN,
14556
14557 crate::natural::DirentType::Directory => DirentType::DIRECTORY,
14558
14559 crate::natural::DirentType::BlockDevice => DirentType::BLOCK_DEVICE,
14560
14561 crate::natural::DirentType::File => DirentType::FILE,
14562
14563 crate::natural::DirentType::Symlink => DirentType::SYMLINK,
14564
14565 crate::natural::DirentType::Service => DirentType::SERVICE,
14566
14567 crate::natural::DirentType::UnknownOrdinal_(value) => {
14568 DirentType { value: u8::from(value) }
14569 }
14570 }
14571 }
14572 }
14573
14574 impl ::fidl_next::IntoNatural for DirentType {
14575 type Natural = crate::natural::DirentType;
14576 }
14577
14578 #[derive(Debug)]
14580 #[repr(C)]
14581 pub struct ExtendedAttributeIteratorGetNextResponse<'de> {
14582 pub attributes: ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Vector<'de, u8>>,
14583
14584 pub last: bool,
14585 }
14586
14587 static_assertions::const_assert_eq!(
14588 std::mem::size_of::<ExtendedAttributeIteratorGetNextResponse<'_>>(),
14589 24
14590 );
14591 static_assertions::const_assert_eq!(
14592 std::mem::align_of::<ExtendedAttributeIteratorGetNextResponse<'_>>(),
14593 8
14594 );
14595
14596 static_assertions::const_assert_eq!(
14597 std::mem::offset_of!(ExtendedAttributeIteratorGetNextResponse<'_>, attributes),
14598 0
14599 );
14600
14601 static_assertions::const_assert_eq!(
14602 std::mem::offset_of!(ExtendedAttributeIteratorGetNextResponse<'_>, last),
14603 16
14604 );
14605
14606 impl ::fidl_next::Constrained for ExtendedAttributeIteratorGetNextResponse<'_> {
14607 type Constraint = ();
14608
14609 fn validate(
14610 _: ::fidl_next::Slot<'_, Self>,
14611 _: Self::Constraint,
14612 ) -> Result<(), ::fidl_next::ValidationError> {
14613 Ok(())
14614 }
14615 }
14616
14617 unsafe impl ::fidl_next::Wire for ExtendedAttributeIteratorGetNextResponse<'static> {
14618 type Narrowed<'de> = ExtendedAttributeIteratorGetNextResponse<'de>;
14619
14620 #[inline]
14621 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
14622 ::fidl_next::munge! {
14623 let Self {
14624 attributes,
14625 last,
14626
14627 } = &mut *out_;
14628 }
14629
14630 ::fidl_next::Wire::zero_padding(attributes);
14631
14632 ::fidl_next::Wire::zero_padding(last);
14633
14634 unsafe {
14635 out_.as_mut_ptr().cast::<u8>().add(17).write_bytes(0, 7);
14636 }
14637 }
14638 }
14639
14640 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExtendedAttributeIteratorGetNextResponse<'de>
14641 where
14642 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
14643 ___D: ::fidl_next::Decoder<'de>,
14644 {
14645 fn decode(
14646 slot_: ::fidl_next::Slot<'_, Self>,
14647 decoder_: &mut ___D,
14648 _: (),
14649 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14650 if slot_.as_bytes()[17..24] != [0u8; 7] {
14651 return Err(::fidl_next::DecodeError::InvalidPadding);
14652 }
14653
14654 ::fidl_next::munge! {
14655 let Self {
14656 mut attributes,
14657 mut last,
14658
14659 } = slot_;
14660 }
14661
14662 let _field = attributes.as_mut();
14663 ::fidl_next::Constrained::validate(_field, (128, (255, ())))?;
14664 ::fidl_next::Decode::decode(attributes.as_mut(), decoder_, (128, (255, ())))?;
14665
14666 let attributes = unsafe { attributes.deref_unchecked() };
14667
14668 if attributes.len() > 128 {
14669 return Err(::fidl_next::DecodeError::VectorTooLong {
14670 size: attributes.len() as u64,
14671 limit: 128,
14672 });
14673 }
14674
14675 let _field = last.as_mut();
14676
14677 ::fidl_next::Decode::decode(last.as_mut(), decoder_, ())?;
14678
14679 Ok(())
14680 }
14681 }
14682
14683 impl<'de> ::fidl_next::IntoNatural for ExtendedAttributeIteratorGetNextResponse<'de> {
14684 type Natural = crate::natural::ExtendedAttributeIteratorGetNextResponse;
14685 }
14686
14687 #[derive(Clone, Debug)]
14689 #[repr(C)]
14690 pub struct ReadableReadRequest {
14691 pub count: ::fidl_next::wire::Uint64,
14692 }
14693
14694 static_assertions::const_assert_eq!(std::mem::size_of::<ReadableReadRequest>(), 8);
14695 static_assertions::const_assert_eq!(std::mem::align_of::<ReadableReadRequest>(), 8);
14696
14697 static_assertions::const_assert_eq!(std::mem::offset_of!(ReadableReadRequest, count), 0);
14698
14699 impl ::fidl_next::Constrained for ReadableReadRequest {
14700 type Constraint = ();
14701
14702 fn validate(
14703 _: ::fidl_next::Slot<'_, Self>,
14704 _: Self::Constraint,
14705 ) -> Result<(), ::fidl_next::ValidationError> {
14706 Ok(())
14707 }
14708 }
14709
14710 unsafe impl ::fidl_next::Wire for ReadableReadRequest {
14711 type Narrowed<'de> = ReadableReadRequest;
14712
14713 #[inline]
14714 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
14715 ::fidl_next::munge! {
14716 let Self {
14717 count,
14718
14719 } = &mut *out_;
14720 }
14721
14722 ::fidl_next::Wire::zero_padding(count);
14723 }
14724 }
14725
14726 unsafe impl<___D> ::fidl_next::Decode<___D> for ReadableReadRequest
14727 where
14728 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
14729 {
14730 fn decode(
14731 slot_: ::fidl_next::Slot<'_, Self>,
14732 decoder_: &mut ___D,
14733 _: (),
14734 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14735 ::fidl_next::munge! {
14736 let Self {
14737 mut count,
14738
14739 } = slot_;
14740 }
14741
14742 let _field = count.as_mut();
14743
14744 ::fidl_next::Decode::decode(count.as_mut(), decoder_, ())?;
14745
14746 Ok(())
14747 }
14748 }
14749
14750 impl ::fidl_next::IntoNatural for ReadableReadRequest {
14751 type Natural = crate::natural::ReadableReadRequest;
14752 }
14753
14754 pub type Transfer<'de> = ::fidl_next::wire::Vector<'de, u8>;
14756
14757 #[derive(Debug)]
14759 #[repr(C)]
14760 pub struct ReadableReadResponse<'de> {
14761 pub data: ::fidl_next::wire::Vector<'de, u8>,
14762 }
14763
14764 static_assertions::const_assert_eq!(std::mem::size_of::<ReadableReadResponse<'_>>(), 16);
14765 static_assertions::const_assert_eq!(std::mem::align_of::<ReadableReadResponse<'_>>(), 8);
14766
14767 static_assertions::const_assert_eq!(std::mem::offset_of!(ReadableReadResponse<'_>, data), 0);
14768
14769 impl ::fidl_next::Constrained for ReadableReadResponse<'_> {
14770 type Constraint = ();
14771
14772 fn validate(
14773 _: ::fidl_next::Slot<'_, Self>,
14774 _: Self::Constraint,
14775 ) -> Result<(), ::fidl_next::ValidationError> {
14776 Ok(())
14777 }
14778 }
14779
14780 unsafe impl ::fidl_next::Wire for ReadableReadResponse<'static> {
14781 type Narrowed<'de> = ReadableReadResponse<'de>;
14782
14783 #[inline]
14784 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
14785 ::fidl_next::munge! {
14786 let Self {
14787 data,
14788
14789 } = &mut *out_;
14790 }
14791
14792 ::fidl_next::Wire::zero_padding(data);
14793 }
14794 }
14795
14796 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ReadableReadResponse<'de>
14797 where
14798 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
14799 ___D: ::fidl_next::Decoder<'de>,
14800 {
14801 fn decode(
14802 slot_: ::fidl_next::Slot<'_, Self>,
14803 decoder_: &mut ___D,
14804 _: (),
14805 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14806 ::fidl_next::munge! {
14807 let Self {
14808 mut data,
14809
14810 } = slot_;
14811 }
14812
14813 let _field = data.as_mut();
14814 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
14815 ::fidl_next::Decode::decode(data.as_mut(), decoder_, (8192, ()))?;
14816
14817 let data = unsafe { data.deref_unchecked() };
14818
14819 if data.len() > 8192 {
14820 return Err(::fidl_next::DecodeError::VectorTooLong {
14821 size: data.len() as u64,
14822 limit: 8192,
14823 });
14824 }
14825
14826 Ok(())
14827 }
14828 }
14829
14830 impl<'de> ::fidl_next::IntoNatural for ReadableReadResponse<'de> {
14831 type Natural = crate::natural::ReadableReadResponse;
14832 }
14833
14834 #[derive(Debug)]
14836 #[repr(C)]
14837 pub struct WritableWriteRequest<'de> {
14838 pub data: ::fidl_next::wire::Vector<'de, u8>,
14839 }
14840
14841 static_assertions::const_assert_eq!(std::mem::size_of::<WritableWriteRequest<'_>>(), 16);
14842 static_assertions::const_assert_eq!(std::mem::align_of::<WritableWriteRequest<'_>>(), 8);
14843
14844 static_assertions::const_assert_eq!(std::mem::offset_of!(WritableWriteRequest<'_>, data), 0);
14845
14846 impl ::fidl_next::Constrained for WritableWriteRequest<'_> {
14847 type Constraint = ();
14848
14849 fn validate(
14850 _: ::fidl_next::Slot<'_, Self>,
14851 _: Self::Constraint,
14852 ) -> Result<(), ::fidl_next::ValidationError> {
14853 Ok(())
14854 }
14855 }
14856
14857 unsafe impl ::fidl_next::Wire for WritableWriteRequest<'static> {
14858 type Narrowed<'de> = WritableWriteRequest<'de>;
14859
14860 #[inline]
14861 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
14862 ::fidl_next::munge! {
14863 let Self {
14864 data,
14865
14866 } = &mut *out_;
14867 }
14868
14869 ::fidl_next::Wire::zero_padding(data);
14870 }
14871 }
14872
14873 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for WritableWriteRequest<'de>
14874 where
14875 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
14876 ___D: ::fidl_next::Decoder<'de>,
14877 {
14878 fn decode(
14879 slot_: ::fidl_next::Slot<'_, Self>,
14880 decoder_: &mut ___D,
14881 _: (),
14882 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14883 ::fidl_next::munge! {
14884 let Self {
14885 mut data,
14886
14887 } = slot_;
14888 }
14889
14890 let _field = data.as_mut();
14891 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
14892 ::fidl_next::Decode::decode(data.as_mut(), decoder_, (8192, ()))?;
14893
14894 let data = unsafe { data.deref_unchecked() };
14895
14896 if data.len() > 8192 {
14897 return Err(::fidl_next::DecodeError::VectorTooLong {
14898 size: data.len() as u64,
14899 limit: 8192,
14900 });
14901 }
14902
14903 Ok(())
14904 }
14905 }
14906
14907 impl<'de> ::fidl_next::IntoNatural for WritableWriteRequest<'de> {
14908 type Natural = crate::natural::WritableWriteRequest;
14909 }
14910
14911 #[derive(Clone, Debug)]
14913 #[repr(C)]
14914 pub struct WritableWriteResponse {
14915 pub actual_count: ::fidl_next::wire::Uint64,
14916 }
14917
14918 static_assertions::const_assert_eq!(std::mem::size_of::<WritableWriteResponse>(), 8);
14919 static_assertions::const_assert_eq!(std::mem::align_of::<WritableWriteResponse>(), 8);
14920
14921 static_assertions::const_assert_eq!(
14922 std::mem::offset_of!(WritableWriteResponse, actual_count),
14923 0
14924 );
14925
14926 impl ::fidl_next::Constrained for WritableWriteResponse {
14927 type Constraint = ();
14928
14929 fn validate(
14930 _: ::fidl_next::Slot<'_, Self>,
14931 _: Self::Constraint,
14932 ) -> Result<(), ::fidl_next::ValidationError> {
14933 Ok(())
14934 }
14935 }
14936
14937 unsafe impl ::fidl_next::Wire for WritableWriteResponse {
14938 type Narrowed<'de> = WritableWriteResponse;
14939
14940 #[inline]
14941 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
14942 ::fidl_next::munge! {
14943 let Self {
14944 actual_count,
14945
14946 } = &mut *out_;
14947 }
14948
14949 ::fidl_next::Wire::zero_padding(actual_count);
14950 }
14951 }
14952
14953 unsafe impl<___D> ::fidl_next::Decode<___D> for WritableWriteResponse
14954 where
14955 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
14956 {
14957 fn decode(
14958 slot_: ::fidl_next::Slot<'_, Self>,
14959 decoder_: &mut ___D,
14960 _: (),
14961 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14962 ::fidl_next::munge! {
14963 let Self {
14964 mut actual_count,
14965
14966 } = slot_;
14967 }
14968
14969 let _field = actual_count.as_mut();
14970
14971 ::fidl_next::Decode::decode(actual_count.as_mut(), decoder_, ())?;
14972
14973 Ok(())
14974 }
14975 }
14976
14977 impl ::fidl_next::IntoNatural for WritableWriteResponse {
14978 type Natural = crate::natural::WritableWriteResponse;
14979 }
14980
14981 #[derive(Clone, Debug)]
14983 #[repr(C)]
14984 pub struct FileSeekRequest {
14985 pub origin: crate::wire::SeekOrigin,
14986
14987 pub offset: ::fidl_next::wire::Int64,
14988 }
14989
14990 static_assertions::const_assert_eq!(std::mem::size_of::<FileSeekRequest>(), 16);
14991 static_assertions::const_assert_eq!(std::mem::align_of::<FileSeekRequest>(), 8);
14992
14993 static_assertions::const_assert_eq!(std::mem::offset_of!(FileSeekRequest, origin), 0);
14994
14995 static_assertions::const_assert_eq!(std::mem::offset_of!(FileSeekRequest, offset), 8);
14996
14997 impl ::fidl_next::Constrained for FileSeekRequest {
14998 type Constraint = ();
14999
15000 fn validate(
15001 _: ::fidl_next::Slot<'_, Self>,
15002 _: Self::Constraint,
15003 ) -> Result<(), ::fidl_next::ValidationError> {
15004 Ok(())
15005 }
15006 }
15007
15008 unsafe impl ::fidl_next::Wire for FileSeekRequest {
15009 type Narrowed<'de> = FileSeekRequest;
15010
15011 #[inline]
15012 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15013 ::fidl_next::munge! {
15014 let Self {
15015 origin,
15016 offset,
15017
15018 } = &mut *out_;
15019 }
15020
15021 ::fidl_next::Wire::zero_padding(origin);
15022
15023 ::fidl_next::Wire::zero_padding(offset);
15024
15025 unsafe {
15026 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
15027 }
15028 }
15029 }
15030
15031 unsafe impl<___D> ::fidl_next::Decode<___D> for FileSeekRequest
15032 where
15033 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15034 {
15035 fn decode(
15036 slot_: ::fidl_next::Slot<'_, Self>,
15037 decoder_: &mut ___D,
15038 _: (),
15039 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15040 if slot_.as_bytes()[4..8] != [0u8; 4] {
15041 return Err(::fidl_next::DecodeError::InvalidPadding);
15042 }
15043
15044 ::fidl_next::munge! {
15045 let Self {
15046 mut origin,
15047 mut offset,
15048
15049 } = slot_;
15050 }
15051
15052 let _field = origin.as_mut();
15053
15054 ::fidl_next::Decode::decode(origin.as_mut(), decoder_, ())?;
15055
15056 let _field = offset.as_mut();
15057
15058 ::fidl_next::Decode::decode(offset.as_mut(), decoder_, ())?;
15059
15060 Ok(())
15061 }
15062 }
15063
15064 impl ::fidl_next::IntoNatural for FileSeekRequest {
15065 type Natural = crate::natural::FileSeekRequest;
15066 }
15067
15068 #[derive(Clone, Debug)]
15070 #[repr(C)]
15071 pub struct FileSeekResponse {
15072 pub offset_from_start: ::fidl_next::wire::Uint64,
15073 }
15074
15075 static_assertions::const_assert_eq!(std::mem::size_of::<FileSeekResponse>(), 8);
15076 static_assertions::const_assert_eq!(std::mem::align_of::<FileSeekResponse>(), 8);
15077
15078 static_assertions::const_assert_eq!(
15079 std::mem::offset_of!(FileSeekResponse, offset_from_start),
15080 0
15081 );
15082
15083 impl ::fidl_next::Constrained for FileSeekResponse {
15084 type Constraint = ();
15085
15086 fn validate(
15087 _: ::fidl_next::Slot<'_, Self>,
15088 _: Self::Constraint,
15089 ) -> Result<(), ::fidl_next::ValidationError> {
15090 Ok(())
15091 }
15092 }
15093
15094 unsafe impl ::fidl_next::Wire for FileSeekResponse {
15095 type Narrowed<'de> = FileSeekResponse;
15096
15097 #[inline]
15098 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15099 ::fidl_next::munge! {
15100 let Self {
15101 offset_from_start,
15102
15103 } = &mut *out_;
15104 }
15105
15106 ::fidl_next::Wire::zero_padding(offset_from_start);
15107 }
15108 }
15109
15110 unsafe impl<___D> ::fidl_next::Decode<___D> for FileSeekResponse
15111 where
15112 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15113 {
15114 fn decode(
15115 slot_: ::fidl_next::Slot<'_, Self>,
15116 decoder_: &mut ___D,
15117 _: (),
15118 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15119 ::fidl_next::munge! {
15120 let Self {
15121 mut offset_from_start,
15122
15123 } = slot_;
15124 }
15125
15126 let _field = offset_from_start.as_mut();
15127
15128 ::fidl_next::Decode::decode(offset_from_start.as_mut(), decoder_, ())?;
15129
15130 Ok(())
15131 }
15132 }
15133
15134 impl ::fidl_next::IntoNatural for FileSeekResponse {
15135 type Natural = crate::natural::FileSeekResponse;
15136 }
15137
15138 #[derive(Clone, Debug)]
15140 #[repr(C)]
15141 pub struct FileReadAtRequest {
15142 pub count: ::fidl_next::wire::Uint64,
15143
15144 pub offset: ::fidl_next::wire::Uint64,
15145 }
15146
15147 static_assertions::const_assert_eq!(std::mem::size_of::<FileReadAtRequest>(), 16);
15148 static_assertions::const_assert_eq!(std::mem::align_of::<FileReadAtRequest>(), 8);
15149
15150 static_assertions::const_assert_eq!(std::mem::offset_of!(FileReadAtRequest, count), 0);
15151
15152 static_assertions::const_assert_eq!(std::mem::offset_of!(FileReadAtRequest, offset), 8);
15153
15154 impl ::fidl_next::Constrained for FileReadAtRequest {
15155 type Constraint = ();
15156
15157 fn validate(
15158 _: ::fidl_next::Slot<'_, Self>,
15159 _: Self::Constraint,
15160 ) -> Result<(), ::fidl_next::ValidationError> {
15161 Ok(())
15162 }
15163 }
15164
15165 unsafe impl ::fidl_next::Wire for FileReadAtRequest {
15166 type Narrowed<'de> = FileReadAtRequest;
15167
15168 #[inline]
15169 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15170 ::fidl_next::munge! {
15171 let Self {
15172 count,
15173 offset,
15174
15175 } = &mut *out_;
15176 }
15177
15178 ::fidl_next::Wire::zero_padding(count);
15179
15180 ::fidl_next::Wire::zero_padding(offset);
15181 }
15182 }
15183
15184 unsafe impl<___D> ::fidl_next::Decode<___D> for FileReadAtRequest
15185 where
15186 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15187 {
15188 fn decode(
15189 slot_: ::fidl_next::Slot<'_, Self>,
15190 decoder_: &mut ___D,
15191 _: (),
15192 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15193 ::fidl_next::munge! {
15194 let Self {
15195 mut count,
15196 mut offset,
15197
15198 } = slot_;
15199 }
15200
15201 let _field = count.as_mut();
15202
15203 ::fidl_next::Decode::decode(count.as_mut(), decoder_, ())?;
15204
15205 let _field = offset.as_mut();
15206
15207 ::fidl_next::Decode::decode(offset.as_mut(), decoder_, ())?;
15208
15209 Ok(())
15210 }
15211 }
15212
15213 impl ::fidl_next::IntoNatural for FileReadAtRequest {
15214 type Natural = crate::natural::FileReadAtRequest;
15215 }
15216
15217 #[derive(Debug)]
15219 #[repr(C)]
15220 pub struct FileReadAtResponse<'de> {
15221 pub data: ::fidl_next::wire::Vector<'de, u8>,
15222 }
15223
15224 static_assertions::const_assert_eq!(std::mem::size_of::<FileReadAtResponse<'_>>(), 16);
15225 static_assertions::const_assert_eq!(std::mem::align_of::<FileReadAtResponse<'_>>(), 8);
15226
15227 static_assertions::const_assert_eq!(std::mem::offset_of!(FileReadAtResponse<'_>, data), 0);
15228
15229 impl ::fidl_next::Constrained for FileReadAtResponse<'_> {
15230 type Constraint = ();
15231
15232 fn validate(
15233 _: ::fidl_next::Slot<'_, Self>,
15234 _: Self::Constraint,
15235 ) -> Result<(), ::fidl_next::ValidationError> {
15236 Ok(())
15237 }
15238 }
15239
15240 unsafe impl ::fidl_next::Wire for FileReadAtResponse<'static> {
15241 type Narrowed<'de> = FileReadAtResponse<'de>;
15242
15243 #[inline]
15244 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15245 ::fidl_next::munge! {
15246 let Self {
15247 data,
15248
15249 } = &mut *out_;
15250 }
15251
15252 ::fidl_next::Wire::zero_padding(data);
15253 }
15254 }
15255
15256 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for FileReadAtResponse<'de>
15257 where
15258 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15259 ___D: ::fidl_next::Decoder<'de>,
15260 {
15261 fn decode(
15262 slot_: ::fidl_next::Slot<'_, Self>,
15263 decoder_: &mut ___D,
15264 _: (),
15265 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15266 ::fidl_next::munge! {
15267 let Self {
15268 mut data,
15269
15270 } = slot_;
15271 }
15272
15273 let _field = data.as_mut();
15274 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
15275 ::fidl_next::Decode::decode(data.as_mut(), decoder_, (8192, ()))?;
15276
15277 let data = unsafe { data.deref_unchecked() };
15278
15279 if data.len() > 8192 {
15280 return Err(::fidl_next::DecodeError::VectorTooLong {
15281 size: data.len() as u64,
15282 limit: 8192,
15283 });
15284 }
15285
15286 Ok(())
15287 }
15288 }
15289
15290 impl<'de> ::fidl_next::IntoNatural for FileReadAtResponse<'de> {
15291 type Natural = crate::natural::FileReadAtResponse;
15292 }
15293
15294 #[derive(Debug)]
15296 #[repr(C)]
15297 pub struct FileWriteAtRequest<'de> {
15298 pub data: ::fidl_next::wire::Vector<'de, u8>,
15299
15300 pub offset: ::fidl_next::wire::Uint64,
15301 }
15302
15303 static_assertions::const_assert_eq!(std::mem::size_of::<FileWriteAtRequest<'_>>(), 24);
15304 static_assertions::const_assert_eq!(std::mem::align_of::<FileWriteAtRequest<'_>>(), 8);
15305
15306 static_assertions::const_assert_eq!(std::mem::offset_of!(FileWriteAtRequest<'_>, data), 0);
15307
15308 static_assertions::const_assert_eq!(std::mem::offset_of!(FileWriteAtRequest<'_>, offset), 16);
15309
15310 impl ::fidl_next::Constrained for FileWriteAtRequest<'_> {
15311 type Constraint = ();
15312
15313 fn validate(
15314 _: ::fidl_next::Slot<'_, Self>,
15315 _: Self::Constraint,
15316 ) -> Result<(), ::fidl_next::ValidationError> {
15317 Ok(())
15318 }
15319 }
15320
15321 unsafe impl ::fidl_next::Wire for FileWriteAtRequest<'static> {
15322 type Narrowed<'de> = FileWriteAtRequest<'de>;
15323
15324 #[inline]
15325 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15326 ::fidl_next::munge! {
15327 let Self {
15328 data,
15329 offset,
15330
15331 } = &mut *out_;
15332 }
15333
15334 ::fidl_next::Wire::zero_padding(data);
15335
15336 ::fidl_next::Wire::zero_padding(offset);
15337 }
15338 }
15339
15340 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for FileWriteAtRequest<'de>
15341 where
15342 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15343 ___D: ::fidl_next::Decoder<'de>,
15344 {
15345 fn decode(
15346 slot_: ::fidl_next::Slot<'_, Self>,
15347 decoder_: &mut ___D,
15348 _: (),
15349 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15350 ::fidl_next::munge! {
15351 let Self {
15352 mut data,
15353 mut offset,
15354
15355 } = slot_;
15356 }
15357
15358 let _field = data.as_mut();
15359 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
15360 ::fidl_next::Decode::decode(data.as_mut(), decoder_, (8192, ()))?;
15361
15362 let data = unsafe { data.deref_unchecked() };
15363
15364 if data.len() > 8192 {
15365 return Err(::fidl_next::DecodeError::VectorTooLong {
15366 size: data.len() as u64,
15367 limit: 8192,
15368 });
15369 }
15370
15371 let _field = offset.as_mut();
15372
15373 ::fidl_next::Decode::decode(offset.as_mut(), decoder_, ())?;
15374
15375 Ok(())
15376 }
15377 }
15378
15379 impl<'de> ::fidl_next::IntoNatural for FileWriteAtRequest<'de> {
15380 type Natural = crate::natural::FileWriteAtRequest;
15381 }
15382
15383 #[derive(Clone, Debug)]
15385 #[repr(C)]
15386 pub struct FileWriteAtResponse {
15387 pub actual_count: ::fidl_next::wire::Uint64,
15388 }
15389
15390 static_assertions::const_assert_eq!(std::mem::size_of::<FileWriteAtResponse>(), 8);
15391 static_assertions::const_assert_eq!(std::mem::align_of::<FileWriteAtResponse>(), 8);
15392
15393 static_assertions::const_assert_eq!(std::mem::offset_of!(FileWriteAtResponse, actual_count), 0);
15394
15395 impl ::fidl_next::Constrained for FileWriteAtResponse {
15396 type Constraint = ();
15397
15398 fn validate(
15399 _: ::fidl_next::Slot<'_, Self>,
15400 _: Self::Constraint,
15401 ) -> Result<(), ::fidl_next::ValidationError> {
15402 Ok(())
15403 }
15404 }
15405
15406 unsafe impl ::fidl_next::Wire for FileWriteAtResponse {
15407 type Narrowed<'de> = FileWriteAtResponse;
15408
15409 #[inline]
15410 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15411 ::fidl_next::munge! {
15412 let Self {
15413 actual_count,
15414
15415 } = &mut *out_;
15416 }
15417
15418 ::fidl_next::Wire::zero_padding(actual_count);
15419 }
15420 }
15421
15422 unsafe impl<___D> ::fidl_next::Decode<___D> for FileWriteAtResponse
15423 where
15424 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15425 {
15426 fn decode(
15427 slot_: ::fidl_next::Slot<'_, Self>,
15428 decoder_: &mut ___D,
15429 _: (),
15430 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15431 ::fidl_next::munge! {
15432 let Self {
15433 mut actual_count,
15434
15435 } = slot_;
15436 }
15437
15438 let _field = actual_count.as_mut();
15439
15440 ::fidl_next::Decode::decode(actual_count.as_mut(), decoder_, ())?;
15441
15442 Ok(())
15443 }
15444 }
15445
15446 impl ::fidl_next::IntoNatural for FileWriteAtResponse {
15447 type Natural = crate::natural::FileWriteAtResponse;
15448 }
15449
15450 #[derive(Clone, Debug)]
15452 #[repr(C)]
15453 pub struct FileResizeRequest {
15454 pub length: ::fidl_next::wire::Uint64,
15455 }
15456
15457 static_assertions::const_assert_eq!(std::mem::size_of::<FileResizeRequest>(), 8);
15458 static_assertions::const_assert_eq!(std::mem::align_of::<FileResizeRequest>(), 8);
15459
15460 static_assertions::const_assert_eq!(std::mem::offset_of!(FileResizeRequest, length), 0);
15461
15462 impl ::fidl_next::Constrained for FileResizeRequest {
15463 type Constraint = ();
15464
15465 fn validate(
15466 _: ::fidl_next::Slot<'_, Self>,
15467 _: Self::Constraint,
15468 ) -> Result<(), ::fidl_next::ValidationError> {
15469 Ok(())
15470 }
15471 }
15472
15473 unsafe impl ::fidl_next::Wire for FileResizeRequest {
15474 type Narrowed<'de> = FileResizeRequest;
15475
15476 #[inline]
15477 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15478 ::fidl_next::munge! {
15479 let Self {
15480 length,
15481
15482 } = &mut *out_;
15483 }
15484
15485 ::fidl_next::Wire::zero_padding(length);
15486 }
15487 }
15488
15489 unsafe impl<___D> ::fidl_next::Decode<___D> for FileResizeRequest
15490 where
15491 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15492 {
15493 fn decode(
15494 slot_: ::fidl_next::Slot<'_, Self>,
15495 decoder_: &mut ___D,
15496 _: (),
15497 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15498 ::fidl_next::munge! {
15499 let Self {
15500 mut length,
15501
15502 } = slot_;
15503 }
15504
15505 let _field = length.as_mut();
15506
15507 ::fidl_next::Decode::decode(length.as_mut(), decoder_, ())?;
15508
15509 Ok(())
15510 }
15511 }
15512
15513 impl ::fidl_next::IntoNatural for FileResizeRequest {
15514 type Natural = crate::natural::FileResizeRequest;
15515 }
15516
15517 pub type FileResizeResponse = ::fidl_next::wire::Unit;
15519
15520 #[derive(Clone, Copy, Debug)]
15522 #[repr(transparent)]
15523 pub struct VmoFlags {
15524 pub(crate) value: ::fidl_next::wire::Uint32,
15525 }
15526
15527 impl ::fidl_next::Constrained for VmoFlags {
15528 type Constraint = ();
15529
15530 fn validate(
15531 _: ::fidl_next::Slot<'_, Self>,
15532 _: Self::Constraint,
15533 ) -> Result<(), ::fidl_next::ValidationError> {
15534 Ok(())
15535 }
15536 }
15537
15538 unsafe impl ::fidl_next::Wire for VmoFlags {
15539 type Narrowed<'de> = Self;
15540
15541 #[inline]
15542 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
15543 }
15545 }
15546
15547 unsafe impl<___D> ::fidl_next::Decode<___D> for VmoFlags
15548 where
15549 ___D: ?Sized,
15550 {
15551 fn decode(
15552 slot: ::fidl_next::Slot<'_, Self>,
15553 _: &mut ___D,
15554 _: (),
15555 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15556 ::fidl_next::munge!(let Self { value } = slot);
15557 let set = u32::from(*value);
15558 if set & !crate::natural::VmoFlags::all().bits() != 0 {
15559 return Err(::fidl_next::DecodeError::InvalidBits {
15560 expected: crate::natural::VmoFlags::all().bits() as usize,
15561 actual: set as usize,
15562 });
15563 }
15564
15565 Ok(())
15566 }
15567 }
15568
15569 impl ::core::convert::From<crate::natural::VmoFlags> for VmoFlags {
15570 fn from(natural: crate::natural::VmoFlags) -> Self {
15571 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
15572 }
15573 }
15574
15575 impl ::fidl_next::IntoNatural for VmoFlags {
15576 type Natural = crate::natural::VmoFlags;
15577 }
15578
15579 #[derive(Clone, Debug)]
15581 #[repr(C)]
15582 pub struct FileGetBackingMemoryRequest {
15583 pub flags: crate::wire::VmoFlags,
15584 }
15585
15586 static_assertions::const_assert_eq!(std::mem::size_of::<FileGetBackingMemoryRequest>(), 4);
15587 static_assertions::const_assert_eq!(std::mem::align_of::<FileGetBackingMemoryRequest>(), 4);
15588
15589 static_assertions::const_assert_eq!(
15590 std::mem::offset_of!(FileGetBackingMemoryRequest, flags),
15591 0
15592 );
15593
15594 impl ::fidl_next::Constrained for FileGetBackingMemoryRequest {
15595 type Constraint = ();
15596
15597 fn validate(
15598 _: ::fidl_next::Slot<'_, Self>,
15599 _: Self::Constraint,
15600 ) -> Result<(), ::fidl_next::ValidationError> {
15601 Ok(())
15602 }
15603 }
15604
15605 unsafe impl ::fidl_next::Wire for FileGetBackingMemoryRequest {
15606 type Narrowed<'de> = FileGetBackingMemoryRequest;
15607
15608 #[inline]
15609 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15610 ::fidl_next::munge! {
15611 let Self {
15612 flags,
15613
15614 } = &mut *out_;
15615 }
15616
15617 ::fidl_next::Wire::zero_padding(flags);
15618 }
15619 }
15620
15621 unsafe impl<___D> ::fidl_next::Decode<___D> for FileGetBackingMemoryRequest
15622 where
15623 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15624 {
15625 fn decode(
15626 slot_: ::fidl_next::Slot<'_, Self>,
15627 decoder_: &mut ___D,
15628 _: (),
15629 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15630 ::fidl_next::munge! {
15631 let Self {
15632 mut flags,
15633
15634 } = slot_;
15635 }
15636
15637 let _field = flags.as_mut();
15638
15639 ::fidl_next::Decode::decode(flags.as_mut(), decoder_, ())?;
15640
15641 Ok(())
15642 }
15643 }
15644
15645 impl ::fidl_next::IntoNatural for FileGetBackingMemoryRequest {
15646 type Natural = crate::natural::FileGetBackingMemoryRequest;
15647 }
15648
15649 pub type LinkableLinkIntoResponse = ::fidl_next::wire::Unit;
15651
15652 pub type FileAllocateResponse = ::fidl_next::wire::Unit;
15654
15655 pub type FileEnableVerityResponse = ::fidl_next::wire::Unit;
15657
15658 #[derive(Clone, Copy, Debug)]
15660 #[repr(transparent)]
15661 pub struct FileSignal {
15662 pub(crate) value: ::fidl_next::wire::Uint32,
15663 }
15664
15665 impl ::fidl_next::Constrained for FileSignal {
15666 type Constraint = ();
15667
15668 fn validate(
15669 _: ::fidl_next::Slot<'_, Self>,
15670 _: Self::Constraint,
15671 ) -> Result<(), ::fidl_next::ValidationError> {
15672 Ok(())
15673 }
15674 }
15675
15676 unsafe impl ::fidl_next::Wire for FileSignal {
15677 type Narrowed<'de> = Self;
15678
15679 #[inline]
15680 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
15681 }
15683 }
15684
15685 unsafe impl<___D> ::fidl_next::Decode<___D> for FileSignal
15686 where
15687 ___D: ?Sized,
15688 {
15689 fn decode(
15690 slot: ::fidl_next::Slot<'_, Self>,
15691 _: &mut ___D,
15692 _: (),
15693 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15694 ::fidl_next::munge!(let Self { value } = slot);
15695 let set = u32::from(*value);
15696 if set & !crate::natural::FileSignal::all().bits() != 0 {
15697 return Err(::fidl_next::DecodeError::InvalidBits {
15698 expected: crate::natural::FileSignal::all().bits() as usize,
15699 actual: set as usize,
15700 });
15701 }
15702
15703 Ok(())
15704 }
15705 }
15706
15707 impl ::core::convert::From<crate::natural::FileSignal> for FileSignal {
15708 fn from(natural: crate::natural::FileSignal) -> Self {
15709 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
15710 }
15711 }
15712
15713 impl ::fidl_next::IntoNatural for FileSignal {
15714 type Natural = crate::natural::FileSignal;
15715 }
15716
15717 #[derive(Clone, Debug)]
15719 #[repr(C)]
15720 pub struct FilesystemInfo {
15721 pub total_bytes: ::fidl_next::wire::Uint64,
15722
15723 pub used_bytes: ::fidl_next::wire::Uint64,
15724
15725 pub total_nodes: ::fidl_next::wire::Uint64,
15726
15727 pub used_nodes: ::fidl_next::wire::Uint64,
15728
15729 pub free_shared_pool_bytes: ::fidl_next::wire::Uint64,
15730
15731 pub fs_id: ::fidl_next::wire::Uint64,
15732
15733 pub block_size: ::fidl_next::wire::Uint32,
15734
15735 pub max_filename_size: ::fidl_next::wire::Uint32,
15736
15737 pub fs_type: ::fidl_next::wire::Uint32,
15738
15739 pub padding: ::fidl_next::wire::Uint32,
15740
15741 pub name: [i8; 32],
15742 }
15743
15744 static_assertions::const_assert_eq!(std::mem::size_of::<FilesystemInfo>(), 96);
15745 static_assertions::const_assert_eq!(std::mem::align_of::<FilesystemInfo>(), 8);
15746
15747 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, total_bytes), 0);
15748
15749 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, used_bytes), 8);
15750
15751 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, total_nodes), 16);
15752
15753 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, used_nodes), 24);
15754
15755 static_assertions::const_assert_eq!(
15756 std::mem::offset_of!(FilesystemInfo, free_shared_pool_bytes),
15757 32
15758 );
15759
15760 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, fs_id), 40);
15761
15762 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, block_size), 48);
15763
15764 static_assertions::const_assert_eq!(
15765 std::mem::offset_of!(FilesystemInfo, max_filename_size),
15766 52
15767 );
15768
15769 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, fs_type), 56);
15770
15771 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, padding), 60);
15772
15773 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, name), 64);
15774
15775 impl ::fidl_next::Constrained for FilesystemInfo {
15776 type Constraint = ();
15777
15778 fn validate(
15779 _: ::fidl_next::Slot<'_, Self>,
15780 _: Self::Constraint,
15781 ) -> Result<(), ::fidl_next::ValidationError> {
15782 Ok(())
15783 }
15784 }
15785
15786 unsafe impl ::fidl_next::Wire for FilesystemInfo {
15787 type Narrowed<'de> = FilesystemInfo;
15788
15789 #[inline]
15790 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15791 ::fidl_next::munge! {
15792 let Self {
15793 total_bytes,
15794 used_bytes,
15795 total_nodes,
15796 used_nodes,
15797 free_shared_pool_bytes,
15798 fs_id,
15799 block_size,
15800 max_filename_size,
15801 fs_type,
15802 padding,
15803 name,
15804
15805 } = &mut *out_;
15806 }
15807
15808 ::fidl_next::Wire::zero_padding(total_bytes);
15809
15810 ::fidl_next::Wire::zero_padding(used_bytes);
15811
15812 ::fidl_next::Wire::zero_padding(total_nodes);
15813
15814 ::fidl_next::Wire::zero_padding(used_nodes);
15815
15816 ::fidl_next::Wire::zero_padding(free_shared_pool_bytes);
15817
15818 ::fidl_next::Wire::zero_padding(fs_id);
15819
15820 ::fidl_next::Wire::zero_padding(block_size);
15821
15822 ::fidl_next::Wire::zero_padding(max_filename_size);
15823
15824 ::fidl_next::Wire::zero_padding(fs_type);
15825
15826 ::fidl_next::Wire::zero_padding(padding);
15827
15828 ::fidl_next::Wire::zero_padding(name);
15829 }
15830 }
15831
15832 unsafe impl<___D> ::fidl_next::Decode<___D> for FilesystemInfo
15833 where
15834 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15835 {
15836 fn decode(
15837 slot_: ::fidl_next::Slot<'_, Self>,
15838 decoder_: &mut ___D,
15839 _: (),
15840 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15841 ::fidl_next::munge! {
15842 let Self {
15843 mut total_bytes,
15844 mut used_bytes,
15845 mut total_nodes,
15846 mut used_nodes,
15847 mut free_shared_pool_bytes,
15848 mut fs_id,
15849 mut block_size,
15850 mut max_filename_size,
15851 mut fs_type,
15852 mut padding,
15853 mut name,
15854
15855 } = slot_;
15856 }
15857
15858 let _field = total_bytes.as_mut();
15859
15860 ::fidl_next::Decode::decode(total_bytes.as_mut(), decoder_, ())?;
15861
15862 let _field = used_bytes.as_mut();
15863
15864 ::fidl_next::Decode::decode(used_bytes.as_mut(), decoder_, ())?;
15865
15866 let _field = total_nodes.as_mut();
15867
15868 ::fidl_next::Decode::decode(total_nodes.as_mut(), decoder_, ())?;
15869
15870 let _field = used_nodes.as_mut();
15871
15872 ::fidl_next::Decode::decode(used_nodes.as_mut(), decoder_, ())?;
15873
15874 let _field = free_shared_pool_bytes.as_mut();
15875
15876 ::fidl_next::Decode::decode(free_shared_pool_bytes.as_mut(), decoder_, ())?;
15877
15878 let _field = fs_id.as_mut();
15879
15880 ::fidl_next::Decode::decode(fs_id.as_mut(), decoder_, ())?;
15881
15882 let _field = block_size.as_mut();
15883
15884 ::fidl_next::Decode::decode(block_size.as_mut(), decoder_, ())?;
15885
15886 let _field = max_filename_size.as_mut();
15887
15888 ::fidl_next::Decode::decode(max_filename_size.as_mut(), decoder_, ())?;
15889
15890 let _field = fs_type.as_mut();
15891
15892 ::fidl_next::Decode::decode(fs_type.as_mut(), decoder_, ())?;
15893
15894 let _field = padding.as_mut();
15895
15896 ::fidl_next::Decode::decode(padding.as_mut(), decoder_, ())?;
15897
15898 let _field = name.as_mut();
15899
15900 ::fidl_next::Decode::decode(name.as_mut(), decoder_, ())?;
15901
15902 Ok(())
15903 }
15904 }
15905
15906 impl ::fidl_next::IntoNatural for FilesystemInfo {
15907 type Natural = crate::natural::FilesystemInfo;
15908 }
15909
15910 pub type Service = ::fidl_next::wire::Unit;
15912
15913 #[derive(Debug)]
15915 #[repr(C)]
15916 pub struct SymlinkObject<'de> {
15917 pub target: ::fidl_next::wire::Vector<'de, u8>,
15918 }
15919
15920 static_assertions::const_assert_eq!(std::mem::size_of::<SymlinkObject<'_>>(), 16);
15921 static_assertions::const_assert_eq!(std::mem::align_of::<SymlinkObject<'_>>(), 8);
15922
15923 static_assertions::const_assert_eq!(std::mem::offset_of!(SymlinkObject<'_>, target), 0);
15924
15925 impl ::fidl_next::Constrained for SymlinkObject<'_> {
15926 type Constraint = ();
15927
15928 fn validate(
15929 _: ::fidl_next::Slot<'_, Self>,
15930 _: Self::Constraint,
15931 ) -> Result<(), ::fidl_next::ValidationError> {
15932 Ok(())
15933 }
15934 }
15935
15936 unsafe impl ::fidl_next::Wire for SymlinkObject<'static> {
15937 type Narrowed<'de> = SymlinkObject<'de>;
15938
15939 #[inline]
15940 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15941 ::fidl_next::munge! {
15942 let Self {
15943 target,
15944
15945 } = &mut *out_;
15946 }
15947
15948 ::fidl_next::Wire::zero_padding(target);
15949 }
15950 }
15951
15952 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for SymlinkObject<'de>
15953 where
15954 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15955 ___D: ::fidl_next::Decoder<'de>,
15956 {
15957 fn decode(
15958 slot_: ::fidl_next::Slot<'_, Self>,
15959 decoder_: &mut ___D,
15960 _: (),
15961 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15962 ::fidl_next::munge! {
15963 let Self {
15964 mut target,
15965
15966 } = slot_;
15967 }
15968
15969 let _field = target.as_mut();
15970 ::fidl_next::Constrained::validate(_field, (4095, ()))?;
15971 ::fidl_next::Decode::decode(target.as_mut(), decoder_, (4095, ()))?;
15972
15973 let target = unsafe { target.deref_unchecked() };
15974
15975 if target.len() > 4095 {
15976 return Err(::fidl_next::DecodeError::VectorTooLong {
15977 size: target.len() as u64,
15978 limit: 4095,
15979 });
15980 }
15981
15982 Ok(())
15983 }
15984 }
15985
15986 impl<'de> ::fidl_next::IntoNatural for SymlinkObject<'de> {
15987 type Natural = crate::natural::SymlinkObject;
15988 }
15989
15990 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
15992 #[repr(transparent)]
15993 pub struct WatchEvent {
15994 pub(crate) value: u8,
15995 }
15996
15997 impl ::fidl_next::Constrained for WatchEvent {
15998 type Constraint = ();
15999
16000 fn validate(
16001 _: ::fidl_next::Slot<'_, Self>,
16002 _: Self::Constraint,
16003 ) -> Result<(), ::fidl_next::ValidationError> {
16004 Ok(())
16005 }
16006 }
16007
16008 unsafe impl ::fidl_next::Wire for WatchEvent {
16009 type Narrowed<'de> = Self;
16010
16011 #[inline]
16012 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
16013 }
16015 }
16016
16017 impl WatchEvent {
16018 pub const DELETED: WatchEvent = WatchEvent { value: 0 };
16019
16020 pub const ADDED: WatchEvent = WatchEvent { value: 1 };
16021
16022 pub const REMOVED: WatchEvent = WatchEvent { value: 2 };
16023
16024 pub const EXISTING: WatchEvent = WatchEvent { value: 3 };
16025
16026 pub const IDLE: WatchEvent = WatchEvent { value: 4 };
16027 }
16028
16029 unsafe impl<___D> ::fidl_next::Decode<___D> for WatchEvent
16030 where
16031 ___D: ?Sized,
16032 {
16033 fn decode(
16034 slot: ::fidl_next::Slot<'_, Self>,
16035 _: &mut ___D,
16036 _: (),
16037 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
16038 ::fidl_next::munge!(let Self { value } = slot);
16039
16040 match u8::from(*value) {
16041 0 | 1 | 2 | 3 | 4 => (),
16042 unknown => {
16043 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
16044 }
16045 }
16046
16047 Ok(())
16048 }
16049 }
16050
16051 impl ::core::convert::From<crate::natural::WatchEvent> for WatchEvent {
16052 fn from(natural: crate::natural::WatchEvent) -> Self {
16053 match natural {
16054 crate::natural::WatchEvent::Deleted => WatchEvent::DELETED,
16055
16056 crate::natural::WatchEvent::Added => WatchEvent::ADDED,
16057
16058 crate::natural::WatchEvent::Removed => WatchEvent::REMOVED,
16059
16060 crate::natural::WatchEvent::Existing => WatchEvent::EXISTING,
16061
16062 crate::natural::WatchEvent::Idle => WatchEvent::IDLE,
16063 }
16064 }
16065 }
16066
16067 impl ::fidl_next::IntoNatural for WatchEvent {
16068 type Natural = crate::natural::WatchEvent;
16069 }
16070}
16071
16072pub mod wire_optional {
16073
16074 #[repr(transparent)]
16075 pub struct SelinuxContext<'de> {
16076 pub(crate) raw: ::fidl_next::wire::Union,
16077 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
16078 }
16079
16080 impl ::fidl_next::Constrained for SelinuxContext<'_> {
16081 type Constraint = ();
16082
16083 fn validate(
16084 _: ::fidl_next::Slot<'_, Self>,
16085 _: Self::Constraint,
16086 ) -> Result<(), ::fidl_next::ValidationError> {
16087 Ok(())
16088 }
16089 }
16090
16091 unsafe impl ::fidl_next::Wire for SelinuxContext<'static> {
16092 type Narrowed<'de> = SelinuxContext<'de>;
16093
16094 #[inline]
16095 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
16096 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
16097 ::fidl_next::wire::Union::zero_padding(raw);
16098 }
16099 }
16100
16101 impl<'de> SelinuxContext<'de> {
16102 pub fn is_some(&self) -> bool {
16103 self.raw.is_some()
16104 }
16105
16106 pub fn is_none(&self) -> bool {
16107 self.raw.is_none()
16108 }
16109
16110 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::SelinuxContext<'de>> {
16111 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
16112 }
16113
16114 pub fn into_option(self) -> ::core::option::Option<crate::wire::SelinuxContext<'de>> {
16115 if self.is_some() {
16116 Some(crate::wire::SelinuxContext {
16117 raw: self.raw,
16118 _phantom: ::core::marker::PhantomData,
16119 })
16120 } else {
16121 None
16122 }
16123 }
16124 }
16125
16126 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for SelinuxContext<'de>
16127 where
16128 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
16129 ___D: ::fidl_next::Decoder<'de>,
16130 {
16131 fn decode(
16132 mut slot: ::fidl_next::Slot<'_, Self>,
16133 decoder: &mut ___D,
16134 _: (),
16135 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
16136 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
16137 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
16138 1 => {
16139 ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Vector<'de, u8>>(
16140 raw,
16141 decoder,
16142 (256, ()),
16143 )?
16144 }
16145
16146 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::EmptyStruct>(
16147 raw,
16148 decoder,
16149 (),
16150 )?,
16151
16152 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
16153 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
16154 }
16155
16156 Ok(())
16157 }
16158 }
16159
16160 impl<'de> ::core::fmt::Debug for SelinuxContext<'de> {
16161 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16162 self.as_ref().fmt(f)
16163 }
16164 }
16165
16166 impl<'de> ::fidl_next::IntoNatural for SelinuxContext<'de> {
16167 type Natural = ::core::option::Option<crate::natural::SelinuxContext>;
16168 }
16169}
16170
16171pub mod generic {
16172
16173 pub struct AdvisoryLockRange<T0, T1, T2> {
16175 pub origin: T0,
16176
16177 pub offset: T1,
16178
16179 pub length: T2,
16180 }
16181
16182 unsafe impl<___E, T0, T1, T2> ::fidl_next::Encode<crate::wire::AdvisoryLockRange, ___E>
16183 for AdvisoryLockRange<T0, T1, T2>
16184 where
16185 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16186 T0: ::fidl_next::Encode<crate::wire::SeekOrigin, ___E>,
16187 T1: ::fidl_next::Encode<::fidl_next::wire::Int64, ___E>,
16188 T2: ::fidl_next::Encode<::fidl_next::wire::Int64, ___E>,
16189 {
16190 #[inline]
16191 fn encode(
16192 self,
16193 encoder_: &mut ___E,
16194 out_: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockRange>,
16195 _: (),
16196 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16197 ::fidl_next::munge! {
16198 let crate::wire::AdvisoryLockRange {
16199 origin,
16200 offset,
16201 length,
16202
16203 } = out_;
16204 }
16205
16206 ::fidl_next::Encode::encode(self.origin, encoder_, origin, ())?;
16207
16208 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
16209
16210 ::fidl_next::Encode::encode(self.length, encoder_, length, ())?;
16211
16212 Ok(())
16213 }
16214 }
16215
16216 pub struct AdvisoryLockingAdvisoryLockRequest<T0> {
16218 pub request: T0,
16219 }
16220
16221 unsafe impl<___E, T0>
16222 ::fidl_next::Encode<crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>, ___E>
16223 for AdvisoryLockingAdvisoryLockRequest<T0>
16224 where
16225 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16226 ___E: ::fidl_next::Encoder,
16227 T0: ::fidl_next::Encode<crate::wire::AdvisoryLockRequest<'static>, ___E>,
16228 {
16229 #[inline]
16230 fn encode(
16231 self,
16232 encoder_: &mut ___E,
16233 out_: &mut ::core::mem::MaybeUninit<
16234 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
16235 >,
16236 _: (),
16237 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16238 ::fidl_next::munge! {
16239 let crate::wire::AdvisoryLockingAdvisoryLockRequest {
16240 request,
16241
16242 } = out_;
16243 }
16244
16245 ::fidl_next::Encode::encode(self.request, encoder_, request, ())?;
16246
16247 Ok(())
16248 }
16249 }
16250
16251 pub type AdvisoryLockingAdvisoryLockResponse = ();
16253
16254 pub struct NodeAttributes<T0, T1, T2, T3, T4, T5, T6> {
16256 pub mode: T0,
16257
16258 pub id: T1,
16259
16260 pub content_size: T2,
16261
16262 pub storage_size: T3,
16263
16264 pub link_count: T4,
16265
16266 pub creation_time: T5,
16267
16268 pub modification_time: T6,
16269 }
16270
16271 unsafe impl<___E, T0, T1, T2, T3, T4, T5, T6>
16272 ::fidl_next::Encode<crate::wire::NodeAttributes, ___E>
16273 for NodeAttributes<T0, T1, T2, T3, T4, T5, T6>
16274 where
16275 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16276 T0: ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>,
16277 T1: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16278 T2: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16279 T3: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16280 T4: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16281 T5: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16282 T6: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16283 {
16284 #[inline]
16285 fn encode(
16286 self,
16287 encoder_: &mut ___E,
16288 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributes>,
16289 _: (),
16290 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16291 ::fidl_next::munge! {
16292 let crate::wire::NodeAttributes {
16293 mode,
16294 id,
16295 content_size,
16296 storage_size,
16297 link_count,
16298 creation_time,
16299 modification_time,
16300
16301 } = out_;
16302 }
16303
16304 ::fidl_next::Encode::encode(self.mode, encoder_, mode, ())?;
16305
16306 ::fidl_next::Encode::encode(self.id, encoder_, id, ())?;
16307
16308 ::fidl_next::Encode::encode(self.content_size, encoder_, content_size, ())?;
16309
16310 ::fidl_next::Encode::encode(self.storage_size, encoder_, storage_size, ())?;
16311
16312 ::fidl_next::Encode::encode(self.link_count, encoder_, link_count, ())?;
16313
16314 ::fidl_next::Encode::encode(self.creation_time, encoder_, creation_time, ())?;
16315
16316 ::fidl_next::Encode::encode(self.modification_time, encoder_, modification_time, ())?;
16317
16318 Ok(())
16319 }
16320 }
16321
16322 pub struct NodeQueryFilesystemResponse<T0, T1> {
16324 pub s: T0,
16325
16326 pub info: T1,
16327 }
16328
16329 unsafe impl<___E, T0, T1>
16330 ::fidl_next::Encode<crate::wire::NodeQueryFilesystemResponse<'static>, ___E>
16331 for NodeQueryFilesystemResponse<T0, T1>
16332 where
16333 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16334 ___E: ::fidl_next::Encoder,
16335 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16336 T1: ::fidl_next::Encode<::fidl_next::wire::Box<'static, crate::wire::FilesystemInfo>, ___E>,
16337 {
16338 #[inline]
16339 fn encode(
16340 self,
16341 encoder_: &mut ___E,
16342 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeQueryFilesystemResponse<'static>>,
16343 _: (),
16344 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16345 ::fidl_next::munge! {
16346 let crate::wire::NodeQueryFilesystemResponse {
16347 s,
16348 info,
16349
16350 } = out_;
16351 }
16352
16353 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16354
16355 ::fidl_next::Encode::encode(self.info, encoder_, info, ())?;
16356
16357 Ok(())
16358 }
16359 }
16360
16361 pub type NodeUpdateAttributesResponse = ();
16363
16364 pub type NodeSyncResponse = ();
16366
16367 pub struct DirectoryReadDirentsRequest<T0> {
16369 pub max_bytes: T0,
16370 }
16371
16372 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::DirectoryReadDirentsRequest, ___E>
16373 for DirectoryReadDirentsRequest<T0>
16374 where
16375 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16376 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16377 {
16378 #[inline]
16379 fn encode(
16380 self,
16381 encoder_: &mut ___E,
16382 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryReadDirentsRequest>,
16383 _: (),
16384 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16385 ::fidl_next::munge! {
16386 let crate::wire::DirectoryReadDirentsRequest {
16387 max_bytes,
16388
16389 } = out_;
16390 }
16391
16392 ::fidl_next::Encode::encode(self.max_bytes, encoder_, max_bytes, ())?;
16393
16394 Ok(())
16395 }
16396 }
16397
16398 pub struct DirectoryReadDirentsResponse<T0, T1> {
16400 pub s: T0,
16401
16402 pub dirents: T1,
16403 }
16404
16405 unsafe impl<___E, T0, T1>
16406 ::fidl_next::Encode<crate::wire::DirectoryReadDirentsResponse<'static>, ___E>
16407 for DirectoryReadDirentsResponse<T0, T1>
16408 where
16409 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16410 ___E: ::fidl_next::Encoder,
16411 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16412 T1: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
16413 {
16414 #[inline]
16415 fn encode(
16416 self,
16417 encoder_: &mut ___E,
16418 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryReadDirentsResponse<'static>>,
16419 _: (),
16420 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16421 ::fidl_next::munge! {
16422 let crate::wire::DirectoryReadDirentsResponse {
16423 s,
16424 dirents,
16425
16426 } = out_;
16427 }
16428
16429 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16430
16431 ::fidl_next::Encode::encode(self.dirents, encoder_, dirents, (8192, ()))?;
16432
16433 Ok(())
16434 }
16435 }
16436
16437 pub struct DirectoryRewindResponse<T0> {
16439 pub s: T0,
16440 }
16441
16442 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::DirectoryRewindResponse, ___E>
16443 for DirectoryRewindResponse<T0>
16444 where
16445 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16446 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16447 {
16448 #[inline]
16449 fn encode(
16450 self,
16451 encoder_: &mut ___E,
16452 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryRewindResponse>,
16453 _: (),
16454 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16455 ::fidl_next::munge! {
16456 let crate::wire::DirectoryRewindResponse {
16457 s,
16458
16459 } = out_;
16460 }
16461
16462 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16463
16464 Ok(())
16465 }
16466 }
16467
16468 pub struct DirectoryLinkResponse<T0> {
16470 pub s: T0,
16471 }
16472
16473 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::DirectoryLinkResponse, ___E>
16474 for DirectoryLinkResponse<T0>
16475 where
16476 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16477 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16478 {
16479 #[inline]
16480 fn encode(
16481 self,
16482 encoder_: &mut ___E,
16483 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryLinkResponse>,
16484 _: (),
16485 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16486 ::fidl_next::munge! {
16487 let crate::wire::DirectoryLinkResponse {
16488 s,
16489
16490 } = out_;
16491 }
16492
16493 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16494
16495 Ok(())
16496 }
16497 }
16498
16499 pub struct DirectoryUnlinkRequest<T0, T1> {
16501 pub name: T0,
16502
16503 pub options: T1,
16504 }
16505
16506 unsafe impl<___E, T0, T1>
16507 ::fidl_next::Encode<crate::wire::DirectoryUnlinkRequest<'static>, ___E>
16508 for DirectoryUnlinkRequest<T0, T1>
16509 where
16510 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16511 ___E: ::fidl_next::Encoder,
16512 T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
16513 T1: ::fidl_next::Encode<crate::wire::UnlinkOptions<'static>, ___E>,
16514 {
16515 #[inline]
16516 fn encode(
16517 self,
16518 encoder_: &mut ___E,
16519 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryUnlinkRequest<'static>>,
16520 _: (),
16521 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16522 ::fidl_next::munge! {
16523 let crate::wire::DirectoryUnlinkRequest {
16524 name,
16525 options,
16526
16527 } = out_;
16528 }
16529
16530 ::fidl_next::Encode::encode(self.name, encoder_, name, 255)?;
16531
16532 ::fidl_next::Encode::encode(self.options, encoder_, options, ())?;
16533
16534 Ok(())
16535 }
16536 }
16537
16538 pub type DirectoryUnlinkResponse = ();
16540
16541 pub type DirectoryRenameResponse = ();
16543
16544 pub struct DirectoryWatchResponse<T0> {
16546 pub s: T0,
16547 }
16548
16549 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::DirectoryWatchResponse, ___E>
16550 for DirectoryWatchResponse<T0>
16551 where
16552 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16553 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16554 {
16555 #[inline]
16556 fn encode(
16557 self,
16558 encoder_: &mut ___E,
16559 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryWatchResponse>,
16560 _: (),
16561 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16562 ::fidl_next::munge! {
16563 let crate::wire::DirectoryWatchResponse {
16564 s,
16565
16566 } = out_;
16567 }
16568
16569 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16570
16571 Ok(())
16572 }
16573 }
16574
16575 pub struct NodeGetExtendedAttributeRequest<T0> {
16577 pub name: T0,
16578 }
16579
16580 unsafe impl<___E, T0>
16581 ::fidl_next::Encode<crate::wire::NodeGetExtendedAttributeRequest<'static>, ___E>
16582 for NodeGetExtendedAttributeRequest<T0>
16583 where
16584 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16585 ___E: ::fidl_next::Encoder,
16586 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
16587 {
16588 #[inline]
16589 fn encode(
16590 self,
16591 encoder_: &mut ___E,
16592 out_: &mut ::core::mem::MaybeUninit<
16593 crate::wire::NodeGetExtendedAttributeRequest<'static>,
16594 >,
16595 _: (),
16596 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16597 ::fidl_next::munge! {
16598 let crate::wire::NodeGetExtendedAttributeRequest {
16599 name,
16600
16601 } = out_;
16602 }
16603
16604 ::fidl_next::Encode::encode(self.name, encoder_, name, (255, ()))?;
16605
16606 Ok(())
16607 }
16608 }
16609
16610 pub type NodeSetExtendedAttributeResponse = ();
16612
16613 pub struct NodeRemoveExtendedAttributeRequest<T0> {
16615 pub name: T0,
16616 }
16617
16618 unsafe impl<___E, T0>
16619 ::fidl_next::Encode<crate::wire::NodeRemoveExtendedAttributeRequest<'static>, ___E>
16620 for NodeRemoveExtendedAttributeRequest<T0>
16621 where
16622 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16623 ___E: ::fidl_next::Encoder,
16624 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
16625 {
16626 #[inline]
16627 fn encode(
16628 self,
16629 encoder_: &mut ___E,
16630 out_: &mut ::core::mem::MaybeUninit<
16631 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
16632 >,
16633 _: (),
16634 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16635 ::fidl_next::munge! {
16636 let crate::wire::NodeRemoveExtendedAttributeRequest {
16637 name,
16638
16639 } = out_;
16640 }
16641
16642 ::fidl_next::Encode::encode(self.name, encoder_, name, (255, ()))?;
16643
16644 Ok(())
16645 }
16646 }
16647
16648 pub type NodeRemoveExtendedAttributeResponse = ();
16650
16651 pub type DirectoryCreateSymlinkResponse = ();
16653
16654 pub type NodeSetFlagsResponse = ();
16656
16657 pub struct NodeDeprecatedGetAttrResponse<T0, T1> {
16659 pub s: T0,
16660
16661 pub attributes: T1,
16662 }
16663
16664 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::NodeDeprecatedGetAttrResponse, ___E>
16665 for NodeDeprecatedGetAttrResponse<T0, T1>
16666 where
16667 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16668 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16669 T1: ::fidl_next::Encode<crate::wire::NodeAttributes, ___E>,
16670 {
16671 #[inline]
16672 fn encode(
16673 self,
16674 encoder_: &mut ___E,
16675 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedGetAttrResponse>,
16676 _: (),
16677 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16678 ::fidl_next::munge! {
16679 let crate::wire::NodeDeprecatedGetAttrResponse {
16680 s,
16681 attributes,
16682
16683 } = out_;
16684 }
16685
16686 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16687
16688 ::fidl_next::Encode::encode(self.attributes, encoder_, attributes, ())?;
16689
16690 Ok(())
16691 }
16692 }
16693
16694 pub struct NodeDeprecatedSetAttrRequest<T0, T1> {
16696 pub flags: T0,
16697
16698 pub attributes: T1,
16699 }
16700
16701 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrRequest, ___E>
16702 for NodeDeprecatedSetAttrRequest<T0, T1>
16703 where
16704 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16705 T0: ::fidl_next::Encode<crate::wire::NodeAttributeFlags, ___E>,
16706 T1: ::fidl_next::Encode<crate::wire::NodeAttributes, ___E>,
16707 {
16708 #[inline]
16709 fn encode(
16710 self,
16711 encoder_: &mut ___E,
16712 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetAttrRequest>,
16713 _: (),
16714 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16715 ::fidl_next::munge! {
16716 let crate::wire::NodeDeprecatedSetAttrRequest {
16717 flags,
16718 attributes,
16719
16720 } = out_;
16721 }
16722
16723 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
16724
16725 ::fidl_next::Encode::encode(self.attributes, encoder_, attributes, ())?;
16726
16727 Ok(())
16728 }
16729 }
16730
16731 pub struct NodeDeprecatedSetAttrResponse<T0> {
16733 pub s: T0,
16734 }
16735
16736 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrResponse, ___E>
16737 for NodeDeprecatedSetAttrResponse<T0>
16738 where
16739 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16740 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16741 {
16742 #[inline]
16743 fn encode(
16744 self,
16745 encoder_: &mut ___E,
16746 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetAttrResponse>,
16747 _: (),
16748 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16749 ::fidl_next::munge! {
16750 let crate::wire::NodeDeprecatedSetAttrResponse {
16751 s,
16752
16753 } = out_;
16754 }
16755
16756 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16757
16758 Ok(())
16759 }
16760 }
16761
16762 pub struct NodeDeprecatedGetFlagsResponse<T0, T1> {
16764 pub s: T0,
16765
16766 pub flags: T1,
16767 }
16768
16769 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::NodeDeprecatedGetFlagsResponse, ___E>
16770 for NodeDeprecatedGetFlagsResponse<T0, T1>
16771 where
16772 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16773 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16774 T1: ::fidl_next::Encode<crate::wire::OpenFlags, ___E>,
16775 {
16776 #[inline]
16777 fn encode(
16778 self,
16779 encoder_: &mut ___E,
16780 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedGetFlagsResponse>,
16781 _: (),
16782 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16783 ::fidl_next::munge! {
16784 let crate::wire::NodeDeprecatedGetFlagsResponse {
16785 s,
16786 flags,
16787
16788 } = out_;
16789 }
16790
16791 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16792
16793 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
16794
16795 Ok(())
16796 }
16797 }
16798
16799 pub struct NodeDeprecatedSetFlagsRequest<T0> {
16801 pub flags: T0,
16802 }
16803
16804 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsRequest, ___E>
16805 for NodeDeprecatedSetFlagsRequest<T0>
16806 where
16807 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16808 T0: ::fidl_next::Encode<crate::wire::OpenFlags, ___E>,
16809 {
16810 #[inline]
16811 fn encode(
16812 self,
16813 encoder_: &mut ___E,
16814 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetFlagsRequest>,
16815 _: (),
16816 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16817 ::fidl_next::munge! {
16818 let crate::wire::NodeDeprecatedSetFlagsRequest {
16819 flags,
16820
16821 } = out_;
16822 }
16823
16824 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
16825
16826 Ok(())
16827 }
16828 }
16829
16830 pub struct NodeDeprecatedSetFlagsResponse<T0> {
16832 pub s: T0,
16833 }
16834
16835 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsResponse, ___E>
16836 for NodeDeprecatedSetFlagsResponse<T0>
16837 where
16838 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16839 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16840 {
16841 #[inline]
16842 fn encode(
16843 self,
16844 encoder_: &mut ___E,
16845 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetFlagsResponse>,
16846 _: (),
16847 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16848 ::fidl_next::munge! {
16849 let crate::wire::NodeDeprecatedSetFlagsResponse {
16850 s,
16851
16852 } = out_;
16853 }
16854
16855 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16856
16857 Ok(())
16858 }
16859 }
16860
16861 pub struct NodeGetFlagsResponse<T0> {
16863 pub flags: T0,
16864 }
16865
16866 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::NodeGetFlagsResponse, ___E>
16867 for NodeGetFlagsResponse<T0>
16868 where
16869 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16870 T0: ::fidl_next::Encode<crate::wire::Flags, ___E>,
16871 {
16872 #[inline]
16873 fn encode(
16874 self,
16875 encoder_: &mut ___E,
16876 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeGetFlagsResponse>,
16877 _: (),
16878 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16879 ::fidl_next::munge! {
16880 let crate::wire::NodeGetFlagsResponse {
16881 flags,
16882
16883 } = out_;
16884 }
16885
16886 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
16887
16888 Ok(())
16889 }
16890 }
16891
16892 pub struct NodeSetFlagsRequest<T0> {
16894 pub flags: T0,
16895 }
16896
16897 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::NodeSetFlagsRequest, ___E>
16898 for NodeSetFlagsRequest<T0>
16899 where
16900 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16901 T0: ::fidl_next::Encode<crate::wire::Flags, ___E>,
16902 {
16903 #[inline]
16904 fn encode(
16905 self,
16906 encoder_: &mut ___E,
16907 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeSetFlagsRequest>,
16908 _: (),
16909 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16910 ::fidl_next::munge! {
16911 let crate::wire::NodeSetFlagsRequest {
16912 flags,
16913
16914 } = out_;
16915 }
16916
16917 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
16918
16919 Ok(())
16920 }
16921 }
16922
16923 pub type EmptyStruct = ();
16925
16926 pub struct NodeAttributes2<T0, T1> {
16928 pub mutable_attributes: T0,
16929
16930 pub immutable_attributes: T1,
16931 }
16932
16933 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::NodeAttributes2<'static>, ___E>
16934 for NodeAttributes2<T0, T1>
16935 where
16936 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16937 ___E: ::fidl_next::Encoder,
16938 T0: ::fidl_next::Encode<crate::wire::MutableNodeAttributes<'static>, ___E>,
16939 T1: ::fidl_next::Encode<crate::wire::ImmutableNodeAttributes<'static>, ___E>,
16940 {
16941 #[inline]
16942 fn encode(
16943 self,
16944 encoder_: &mut ___E,
16945 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributes2<'static>>,
16946 _: (),
16947 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16948 ::fidl_next::munge! {
16949 let crate::wire::NodeAttributes2 {
16950 mutable_attributes,
16951 immutable_attributes,
16952
16953 } = out_;
16954 }
16955
16956 ::fidl_next::Encode::encode(self.mutable_attributes, encoder_, mutable_attributes, ())?;
16957
16958 ::fidl_next::Encode::encode(
16959 self.immutable_attributes,
16960 encoder_,
16961 immutable_attributes,
16962 (),
16963 )?;
16964
16965 Ok(())
16966 }
16967 }
16968
16969 pub struct NodeGetAttributesRequest<T0> {
16971 pub query: T0,
16972 }
16973
16974 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::NodeGetAttributesRequest, ___E>
16975 for NodeGetAttributesRequest<T0>
16976 where
16977 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16978 T0: ::fidl_next::Encode<crate::wire::NodeAttributesQuery, ___E>,
16979 {
16980 #[inline]
16981 fn encode(
16982 self,
16983 encoder_: &mut ___E,
16984 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeGetAttributesRequest>,
16985 _: (),
16986 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16987 ::fidl_next::munge! {
16988 let crate::wire::NodeGetAttributesRequest {
16989 query,
16990
16991 } = out_;
16992 }
16993
16994 ::fidl_next::Encode::encode(self.query, encoder_, query, ())?;
16995
16996 Ok(())
16997 }
16998 }
16999
17000 pub type DirectoryObject = ();
17002
17003 pub struct ExtendedAttributeIteratorGetNextResponse<T0, T1> {
17005 pub attributes: T0,
17006
17007 pub last: T1,
17008 }
17009
17010 unsafe impl<___E, T0, T1>
17011 ::fidl_next::Encode<crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>, ___E>
17012 for ExtendedAttributeIteratorGetNextResponse<T0, T1>
17013 where
17014 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17015 ___E: ::fidl_next::Encoder,
17016 T0: ::fidl_next::Encode<
17017 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Vector<'static, u8>>,
17018 ___E,
17019 >,
17020 T1: ::fidl_next::Encode<bool, ___E>,
17021 {
17022 #[inline]
17023 fn encode(
17024 self,
17025 encoder_: &mut ___E,
17026 out_: &mut ::core::mem::MaybeUninit<
17027 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
17028 >,
17029 _: (),
17030 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17031 ::fidl_next::munge! {
17032 let crate::wire::ExtendedAttributeIteratorGetNextResponse {
17033 attributes,
17034 last,
17035
17036 } = out_;
17037 }
17038
17039 ::fidl_next::Encode::encode(self.attributes, encoder_, attributes, (128, (255, ())))?;
17040
17041 ::fidl_next::Encode::encode(self.last, encoder_, last, ())?;
17042
17043 Ok(())
17044 }
17045 }
17046
17047 pub struct ReadableReadRequest<T0> {
17049 pub count: T0,
17050 }
17051
17052 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::ReadableReadRequest, ___E>
17053 for ReadableReadRequest<T0>
17054 where
17055 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17056 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17057 {
17058 #[inline]
17059 fn encode(
17060 self,
17061 encoder_: &mut ___E,
17062 out_: &mut ::core::mem::MaybeUninit<crate::wire::ReadableReadRequest>,
17063 _: (),
17064 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17065 ::fidl_next::munge! {
17066 let crate::wire::ReadableReadRequest {
17067 count,
17068
17069 } = out_;
17070 }
17071
17072 ::fidl_next::Encode::encode(self.count, encoder_, count, ())?;
17073
17074 Ok(())
17075 }
17076 }
17077
17078 pub struct ReadableReadResponse<T0> {
17080 pub data: T0,
17081 }
17082
17083 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::ReadableReadResponse<'static>, ___E>
17084 for ReadableReadResponse<T0>
17085 where
17086 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17087 ___E: ::fidl_next::Encoder,
17088 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
17089 {
17090 #[inline]
17091 fn encode(
17092 self,
17093 encoder_: &mut ___E,
17094 out_: &mut ::core::mem::MaybeUninit<crate::wire::ReadableReadResponse<'static>>,
17095 _: (),
17096 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17097 ::fidl_next::munge! {
17098 let crate::wire::ReadableReadResponse {
17099 data,
17100
17101 } = out_;
17102 }
17103
17104 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
17105
17106 Ok(())
17107 }
17108 }
17109
17110 pub struct WritableWriteRequest<T0> {
17112 pub data: T0,
17113 }
17114
17115 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::WritableWriteRequest<'static>, ___E>
17116 for WritableWriteRequest<T0>
17117 where
17118 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17119 ___E: ::fidl_next::Encoder,
17120 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
17121 {
17122 #[inline]
17123 fn encode(
17124 self,
17125 encoder_: &mut ___E,
17126 out_: &mut ::core::mem::MaybeUninit<crate::wire::WritableWriteRequest<'static>>,
17127 _: (),
17128 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17129 ::fidl_next::munge! {
17130 let crate::wire::WritableWriteRequest {
17131 data,
17132
17133 } = out_;
17134 }
17135
17136 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
17137
17138 Ok(())
17139 }
17140 }
17141
17142 pub struct WritableWriteResponse<T0> {
17144 pub actual_count: T0,
17145 }
17146
17147 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::WritableWriteResponse, ___E>
17148 for WritableWriteResponse<T0>
17149 where
17150 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17151 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17152 {
17153 #[inline]
17154 fn encode(
17155 self,
17156 encoder_: &mut ___E,
17157 out_: &mut ::core::mem::MaybeUninit<crate::wire::WritableWriteResponse>,
17158 _: (),
17159 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17160 ::fidl_next::munge! {
17161 let crate::wire::WritableWriteResponse {
17162 actual_count,
17163
17164 } = out_;
17165 }
17166
17167 ::fidl_next::Encode::encode(self.actual_count, encoder_, actual_count, ())?;
17168
17169 Ok(())
17170 }
17171 }
17172
17173 pub struct FileSeekRequest<T0, T1> {
17175 pub origin: T0,
17176
17177 pub offset: T1,
17178 }
17179
17180 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::FileSeekRequest, ___E>
17181 for FileSeekRequest<T0, T1>
17182 where
17183 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17184 T0: ::fidl_next::Encode<crate::wire::SeekOrigin, ___E>,
17185 T1: ::fidl_next::Encode<::fidl_next::wire::Int64, ___E>,
17186 {
17187 #[inline]
17188 fn encode(
17189 self,
17190 encoder_: &mut ___E,
17191 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileSeekRequest>,
17192 _: (),
17193 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17194 ::fidl_next::munge! {
17195 let crate::wire::FileSeekRequest {
17196 origin,
17197 offset,
17198
17199 } = out_;
17200 }
17201
17202 ::fidl_next::Encode::encode(self.origin, encoder_, origin, ())?;
17203
17204 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
17205
17206 Ok(())
17207 }
17208 }
17209
17210 pub struct FileSeekResponse<T0> {
17212 pub offset_from_start: T0,
17213 }
17214
17215 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::FileSeekResponse, ___E>
17216 for FileSeekResponse<T0>
17217 where
17218 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17219 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17220 {
17221 #[inline]
17222 fn encode(
17223 self,
17224 encoder_: &mut ___E,
17225 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileSeekResponse>,
17226 _: (),
17227 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17228 ::fidl_next::munge! {
17229 let crate::wire::FileSeekResponse {
17230 offset_from_start,
17231
17232 } = out_;
17233 }
17234
17235 ::fidl_next::Encode::encode(self.offset_from_start, encoder_, offset_from_start, ())?;
17236
17237 Ok(())
17238 }
17239 }
17240
17241 pub struct FileReadAtRequest<T0, T1> {
17243 pub count: T0,
17244
17245 pub offset: T1,
17246 }
17247
17248 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::FileReadAtRequest, ___E>
17249 for FileReadAtRequest<T0, T1>
17250 where
17251 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17252 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17253 T1: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17254 {
17255 #[inline]
17256 fn encode(
17257 self,
17258 encoder_: &mut ___E,
17259 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileReadAtRequest>,
17260 _: (),
17261 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17262 ::fidl_next::munge! {
17263 let crate::wire::FileReadAtRequest {
17264 count,
17265 offset,
17266
17267 } = out_;
17268 }
17269
17270 ::fidl_next::Encode::encode(self.count, encoder_, count, ())?;
17271
17272 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
17273
17274 Ok(())
17275 }
17276 }
17277
17278 pub struct FileReadAtResponse<T0> {
17280 pub data: T0,
17281 }
17282
17283 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::FileReadAtResponse<'static>, ___E>
17284 for FileReadAtResponse<T0>
17285 where
17286 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17287 ___E: ::fidl_next::Encoder,
17288 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
17289 {
17290 #[inline]
17291 fn encode(
17292 self,
17293 encoder_: &mut ___E,
17294 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileReadAtResponse<'static>>,
17295 _: (),
17296 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17297 ::fidl_next::munge! {
17298 let crate::wire::FileReadAtResponse {
17299 data,
17300
17301 } = out_;
17302 }
17303
17304 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
17305
17306 Ok(())
17307 }
17308 }
17309
17310 pub struct FileWriteAtRequest<T0, T1> {
17312 pub data: T0,
17313
17314 pub offset: T1,
17315 }
17316
17317 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::FileWriteAtRequest<'static>, ___E>
17318 for FileWriteAtRequest<T0, T1>
17319 where
17320 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17321 ___E: ::fidl_next::Encoder,
17322 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
17323 T1: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17324 {
17325 #[inline]
17326 fn encode(
17327 self,
17328 encoder_: &mut ___E,
17329 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileWriteAtRequest<'static>>,
17330 _: (),
17331 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17332 ::fidl_next::munge! {
17333 let crate::wire::FileWriteAtRequest {
17334 data,
17335 offset,
17336
17337 } = out_;
17338 }
17339
17340 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
17341
17342 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
17343
17344 Ok(())
17345 }
17346 }
17347
17348 pub struct FileWriteAtResponse<T0> {
17350 pub actual_count: T0,
17351 }
17352
17353 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::FileWriteAtResponse, ___E>
17354 for FileWriteAtResponse<T0>
17355 where
17356 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17357 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17358 {
17359 #[inline]
17360 fn encode(
17361 self,
17362 encoder_: &mut ___E,
17363 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileWriteAtResponse>,
17364 _: (),
17365 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17366 ::fidl_next::munge! {
17367 let crate::wire::FileWriteAtResponse {
17368 actual_count,
17369
17370 } = out_;
17371 }
17372
17373 ::fidl_next::Encode::encode(self.actual_count, encoder_, actual_count, ())?;
17374
17375 Ok(())
17376 }
17377 }
17378
17379 pub struct FileResizeRequest<T0> {
17381 pub length: T0,
17382 }
17383
17384 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::FileResizeRequest, ___E>
17385 for FileResizeRequest<T0>
17386 where
17387 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17388 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17389 {
17390 #[inline]
17391 fn encode(
17392 self,
17393 encoder_: &mut ___E,
17394 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileResizeRequest>,
17395 _: (),
17396 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17397 ::fidl_next::munge! {
17398 let crate::wire::FileResizeRequest {
17399 length,
17400
17401 } = out_;
17402 }
17403
17404 ::fidl_next::Encode::encode(self.length, encoder_, length, ())?;
17405
17406 Ok(())
17407 }
17408 }
17409
17410 pub type FileResizeResponse = ();
17412
17413 pub struct FileGetBackingMemoryRequest<T0> {
17415 pub flags: T0,
17416 }
17417
17418 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::FileGetBackingMemoryRequest, ___E>
17419 for FileGetBackingMemoryRequest<T0>
17420 where
17421 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17422 T0: ::fidl_next::Encode<crate::wire::VmoFlags, ___E>,
17423 {
17424 #[inline]
17425 fn encode(
17426 self,
17427 encoder_: &mut ___E,
17428 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileGetBackingMemoryRequest>,
17429 _: (),
17430 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17431 ::fidl_next::munge! {
17432 let crate::wire::FileGetBackingMemoryRequest {
17433 flags,
17434
17435 } = out_;
17436 }
17437
17438 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
17439
17440 Ok(())
17441 }
17442 }
17443
17444 pub type LinkableLinkIntoResponse = ();
17446
17447 pub type FileAllocateResponse = ();
17449
17450 pub type FileEnableVerityResponse = ();
17452
17453 pub struct FilesystemInfo<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> {
17455 pub total_bytes: T0,
17456
17457 pub used_bytes: T1,
17458
17459 pub total_nodes: T2,
17460
17461 pub used_nodes: T3,
17462
17463 pub free_shared_pool_bytes: T4,
17464
17465 pub fs_id: T5,
17466
17467 pub block_size: T6,
17468
17469 pub max_filename_size: T7,
17470
17471 pub fs_type: T8,
17472
17473 pub padding: T9,
17474
17475 pub name: T10,
17476 }
17477
17478 unsafe impl<___E, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
17479 ::fidl_next::Encode<crate::wire::FilesystemInfo, ___E>
17480 for FilesystemInfo<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
17481 where
17482 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17483 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17484 T1: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17485 T2: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17486 T3: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17487 T4: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17488 T5: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17489 T6: ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>,
17490 T7: ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>,
17491 T8: ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>,
17492 T9: ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>,
17493 T10: ::fidl_next::Encode<[i8; 32], ___E>,
17494 {
17495 #[inline]
17496 fn encode(
17497 self,
17498 encoder_: &mut ___E,
17499 out_: &mut ::core::mem::MaybeUninit<crate::wire::FilesystemInfo>,
17500 _: (),
17501 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17502 ::fidl_next::munge! {
17503 let crate::wire::FilesystemInfo {
17504 total_bytes,
17505 used_bytes,
17506 total_nodes,
17507 used_nodes,
17508 free_shared_pool_bytes,
17509 fs_id,
17510 block_size,
17511 max_filename_size,
17512 fs_type,
17513 padding,
17514 name,
17515
17516 } = out_;
17517 }
17518
17519 ::fidl_next::Encode::encode(self.total_bytes, encoder_, total_bytes, ())?;
17520
17521 ::fidl_next::Encode::encode(self.used_bytes, encoder_, used_bytes, ())?;
17522
17523 ::fidl_next::Encode::encode(self.total_nodes, encoder_, total_nodes, ())?;
17524
17525 ::fidl_next::Encode::encode(self.used_nodes, encoder_, used_nodes, ())?;
17526
17527 ::fidl_next::Encode::encode(
17528 self.free_shared_pool_bytes,
17529 encoder_,
17530 free_shared_pool_bytes,
17531 (),
17532 )?;
17533
17534 ::fidl_next::Encode::encode(self.fs_id, encoder_, fs_id, ())?;
17535
17536 ::fidl_next::Encode::encode(self.block_size, encoder_, block_size, ())?;
17537
17538 ::fidl_next::Encode::encode(self.max_filename_size, encoder_, max_filename_size, ())?;
17539
17540 ::fidl_next::Encode::encode(self.fs_type, encoder_, fs_type, ())?;
17541
17542 ::fidl_next::Encode::encode(self.padding, encoder_, padding, ())?;
17543
17544 ::fidl_next::Encode::encode(self.name, encoder_, name, ())?;
17545
17546 Ok(())
17547 }
17548 }
17549
17550 pub type Service = ();
17552
17553 pub struct SymlinkObject<T0> {
17555 pub target: T0,
17556 }
17557
17558 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::SymlinkObject<'static>, ___E>
17559 for SymlinkObject<T0>
17560 where
17561 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17562 ___E: ::fidl_next::Encoder,
17563 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
17564 {
17565 #[inline]
17566 fn encode(
17567 self,
17568 encoder_: &mut ___E,
17569 out_: &mut ::core::mem::MaybeUninit<crate::wire::SymlinkObject<'static>>,
17570 _: (),
17571 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17572 ::fidl_next::munge! {
17573 let crate::wire::SymlinkObject {
17574 target,
17575
17576 } = out_;
17577 }
17578
17579 ::fidl_next::Encode::encode(self.target, encoder_, target, (4095, ()))?;
17580
17581 Ok(())
17582 }
17583 }
17584}
17585
17586pub use self::natural::*;
17587
17588#[doc = " Advisory locking protocol.\n\n This protocol is intended to be composed into the |File| protocol to\n provide support for advisory locking.\n\n Advisory locks are purely advisory. They do not prevent actual read or\n write operations from occurring on the file, either through this\n connection or through other connections.\n\n These primitives are designed to support the flock() and fcntl(),\n specifically F_SETLK, F_SETLKW, and F_GETLK, functionality that code\n running on Fuchsia expects from other operating systems.\n"]
17590#[derive(PartialEq, Debug)]
17591pub struct AdvisoryLocking;
17592
17593#[cfg(target_os = "fuchsia")]
17594impl ::fidl_next::HasTransport for AdvisoryLocking {
17595 type Transport = ::fidl_next::fuchsia::zx::Channel;
17596}
17597
17598pub mod advisory_locking {
17599 pub mod prelude {
17600 pub use crate::{
17601 AdvisoryLocking, AdvisoryLockingClientHandler, AdvisoryLockingLocalClientHandler,
17602 AdvisoryLockingLocalServerHandler, AdvisoryLockingServerHandler, advisory_locking,
17603 };
17604
17605 pub use crate::natural::AdvisoryLockingAdvisoryLockRequest;
17606
17607 pub use crate::natural::AdvisoryLockingAdvisoryLockResponse;
17608 }
17609
17610 pub struct AdvisoryLock;
17611
17612 impl ::fidl_next::Method for AdvisoryLock {
17613 const ORDINAL: u64 = 7992130864415541162;
17614 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
17615 ::fidl_next::protocol::Flexibility::Strict;
17616
17617 type Protocol = crate::AdvisoryLocking;
17618
17619 type Request = crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>;
17620 }
17621
17622 impl ::fidl_next::TwoWayMethod for AdvisoryLock {
17623 type Response = ::fidl_next::wire::Result<
17624 'static,
17625 crate::wire::AdvisoryLockingAdvisoryLockResponse,
17626 ::fidl_next::wire::fuchsia::Status,
17627 >;
17628 }
17629
17630 impl<___R> ::fidl_next::Respond<___R> for AdvisoryLock {
17631 type Output = ::core::result::Result<___R, ::fidl_next::never::Never>;
17632
17633 fn respond(response: ___R) -> Self::Output {
17634 ::core::result::Result::Ok(response)
17635 }
17636 }
17637
17638 impl<___R> ::fidl_next::RespondErr<___R> for AdvisoryLock {
17639 type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
17640
17641 fn respond_err(response: ___R) -> Self::Output {
17642 ::core::result::Result::Err(response)
17643 }
17644 }
17645
17646 mod ___detail {
17647 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::AdvisoryLocking
17648 where
17649 ___T: ::fidl_next::Transport,
17650 {
17651 type Client = AdvisoryLockingClient<___T>;
17652 type Server = AdvisoryLockingServer<___T>;
17653 }
17654
17655 #[repr(transparent)]
17657 pub struct AdvisoryLockingClient<___T: ::fidl_next::Transport> {
17658 #[allow(dead_code)]
17659 client: ::fidl_next::protocol::Client<___T>,
17660 }
17661
17662 impl<___T> AdvisoryLockingClient<___T>
17663 where
17664 ___T: ::fidl_next::Transport,
17665 {
17666 #[doc = " Acquires an advisory lock on the underlying file.\n\n The lock lasts until either this connection is closed or\n this method is called with |AdvisoryLockType.UNLOCK| to release the lock\n explicitly.\n\n Advisory locks are purely advisory. They do not prevent actual read or\n write operations from occurring on the file, either through this\n connection or through other connections.\n\n This method requires the following rights:\n\n * [`Rights.READ_BYTES`] if `request.type` is [`AdvisoryLockType.READ`].\n * [`Rights.WRITE_BYTES`] if `request.type` is\n [`AdvisoryLockType.WRITE`].\n\n # Errors\n\n * `ZX_ERR_BAD_STATE` The specified type of lock cannot be acquired. For\n example, another connection might hold a conflicting lock type.\n * `ZX_ERR_NOT_SUPPORTED` This file does not support advisory locking.\n * `ZX_ERR_ACCESS_DENIED` This connection does not have sufficient rights\n to acquire the given type of lock.\n"]
17667 pub fn advisory_lock(
17668 &self,
17669
17670 request: impl ::fidl_next::Encode<
17671 crate::wire::AdvisoryLockRequest<'static>,
17672 <___T as ::fidl_next::Transport>::SendBuffer,
17673 >,
17674 ) -> ::fidl_next::TwoWayFuture<'_, super::AdvisoryLock, ___T>
17675 where
17676 <___T as ::fidl_next::Transport>::SendBuffer:
17677 ::fidl_next::encoder::InternalHandleEncoder,
17678 <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::Encoder,
17679 {
17680 self.advisory_lock_with(crate::generic::AdvisoryLockingAdvisoryLockRequest {
17681 request,
17682 })
17683 }
17684
17685 #[doc = " Acquires an advisory lock on the underlying file.\n\n The lock lasts until either this connection is closed or\n this method is called with |AdvisoryLockType.UNLOCK| to release the lock\n explicitly.\n\n Advisory locks are purely advisory. They do not prevent actual read or\n write operations from occurring on the file, either through this\n connection or through other connections.\n\n This method requires the following rights:\n\n * [`Rights.READ_BYTES`] if `request.type` is [`AdvisoryLockType.READ`].\n * [`Rights.WRITE_BYTES`] if `request.type` is\n [`AdvisoryLockType.WRITE`].\n\n # Errors\n\n * `ZX_ERR_BAD_STATE` The specified type of lock cannot be acquired. For\n example, another connection might hold a conflicting lock type.\n * `ZX_ERR_NOT_SUPPORTED` This file does not support advisory locking.\n * `ZX_ERR_ACCESS_DENIED` This connection does not have sufficient rights\n to acquire the given type of lock.\n"]
17686 pub fn advisory_lock_with<___R>(
17687 &self,
17688 request: ___R,
17689 ) -> ::fidl_next::TwoWayFuture<'_, super::AdvisoryLock, ___T>
17690 where
17691 ___R: ::fidl_next::Encode<
17692 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
17693 <___T as ::fidl_next::Transport>::SendBuffer,
17694 >,
17695 {
17696 ::fidl_next::TwoWayFuture::from_untyped(self.client.send_two_way(
17697 7992130864415541162,
17698 <super::AdvisoryLock as ::fidl_next::Method>::FLEXIBILITY,
17699 request,
17700 ))
17701 }
17702 }
17703
17704 #[repr(transparent)]
17706 pub struct AdvisoryLockingServer<___T: ::fidl_next::Transport> {
17707 server: ::fidl_next::protocol::Server<___T>,
17708 }
17709
17710 impl<___T> AdvisoryLockingServer<___T> where ___T: ::fidl_next::Transport {}
17711 }
17712}
17713
17714#[diagnostic::on_unimplemented(
17715 note = "If {Self} implements the non-local AdvisoryLockingClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
17716)]
17717
17718pub trait AdvisoryLockingLocalClientHandler<
17722 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
17723 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
17724>
17725{
17726}
17727
17728impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for AdvisoryLocking
17729where
17730 ___H: AdvisoryLockingLocalClientHandler<___T>,
17731 ___T: ::fidl_next::Transport,
17732{
17733 async fn on_event(
17734 handler: &mut ___H,
17735 mut message: ::fidl_next::Message<___T>,
17736 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
17737 match *message.header().ordinal {
17738 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
17739 }
17740 }
17741}
17742
17743#[diagnostic::on_unimplemented(
17744 note = "If {Self} implements the non-local AdvisoryLockingServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
17745)]
17746
17747pub trait AdvisoryLockingLocalServerHandler<
17751 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
17752 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
17753>
17754{
17755 #[doc = " Acquires an advisory lock on the underlying file.\n\n The lock lasts until either this connection is closed or\n this method is called with |AdvisoryLockType.UNLOCK| to release the lock\n explicitly.\n\n Advisory locks are purely advisory. They do not prevent actual read or\n write operations from occurring on the file, either through this\n connection or through other connections.\n\n This method requires the following rights:\n\n * [`Rights.READ_BYTES`] if `request.type` is [`AdvisoryLockType.READ`].\n * [`Rights.WRITE_BYTES`] if `request.type` is\n [`AdvisoryLockType.WRITE`].\n\n # Errors\n\n * `ZX_ERR_BAD_STATE` The specified type of lock cannot be acquired. For\n example, another connection might hold a conflicting lock type.\n * `ZX_ERR_NOT_SUPPORTED` This file does not support advisory locking.\n * `ZX_ERR_ACCESS_DENIED` This connection does not have sufficient rights\n to acquire the given type of lock.\n"]
17756 fn advisory_lock(
17757 &mut self,
17758
17759 request: ::fidl_next::Request<advisory_locking::AdvisoryLock, ___T>,
17760
17761 responder: ::fidl_next::Responder<advisory_locking::AdvisoryLock, ___T>,
17762 ) -> impl ::core::future::Future<Output = ()>;
17763}
17764
17765impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for AdvisoryLocking
17766where
17767 ___H: AdvisoryLockingLocalServerHandler<___T>,
17768 ___T: ::fidl_next::Transport,
17769 for<'de> crate::wire::AdvisoryLockingAdvisoryLockRequest<'de>: ::fidl_next::Decode<
17770 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
17771 Constraint = (),
17772 >,
17773{
17774 async fn on_one_way(
17775 handler: &mut ___H,
17776 mut message: ::fidl_next::Message<___T>,
17777 ) -> ::core::result::Result<
17778 (),
17779 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
17780 > {
17781 match *message.header().ordinal {
17782 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
17783 }
17784 }
17785
17786 async fn on_two_way(
17787 handler: &mut ___H,
17788 mut message: ::fidl_next::Message<___T>,
17789 responder: ::fidl_next::protocol::Responder<___T>,
17790 ) -> ::core::result::Result<
17791 (),
17792 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
17793 > {
17794 match *message.header().ordinal {
17795 7992130864415541162 => {
17796 let responder = ::fidl_next::Responder::from_untyped(responder);
17797
17798 match ::fidl_next::AsDecoderExt::into_decoded(message) {
17799 Ok(decoded) => {
17800 handler
17801 .advisory_lock(::fidl_next::Request::from_decoded(decoded), responder)
17802 .await;
17803 Ok(())
17804 }
17805 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
17806 ordinal: 7992130864415541162,
17807 error,
17808 }),
17809 }
17810 }
17811
17812 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
17813 }
17814 }
17815}
17816
17817pub trait AdvisoryLockingClientHandler<
17821 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
17822 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
17823>
17824{
17825}
17826
17827impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for AdvisoryLocking
17828where
17829 ___H: AdvisoryLockingClientHandler<___T> + ::core::marker::Send,
17830 ___T: ::fidl_next::Transport,
17831{
17832 async fn on_event(
17833 handler: &mut ___H,
17834 mut message: ::fidl_next::Message<___T>,
17835 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
17836 match *message.header().ordinal {
17837 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
17838 }
17839 }
17840}
17841
17842pub trait AdvisoryLockingServerHandler<
17846 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
17847 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
17848>
17849{
17850 #[doc = " Acquires an advisory lock on the underlying file.\n\n The lock lasts until either this connection is closed or\n this method is called with |AdvisoryLockType.UNLOCK| to release the lock\n explicitly.\n\n Advisory locks are purely advisory. They do not prevent actual read or\n write operations from occurring on the file, either through this\n connection or through other connections.\n\n This method requires the following rights:\n\n * [`Rights.READ_BYTES`] if `request.type` is [`AdvisoryLockType.READ`].\n * [`Rights.WRITE_BYTES`] if `request.type` is\n [`AdvisoryLockType.WRITE`].\n\n # Errors\n\n * `ZX_ERR_BAD_STATE` The specified type of lock cannot be acquired. For\n example, another connection might hold a conflicting lock type.\n * `ZX_ERR_NOT_SUPPORTED` This file does not support advisory locking.\n * `ZX_ERR_ACCESS_DENIED` This connection does not have sufficient rights\n to acquire the given type of lock.\n"]
17851 fn advisory_lock(
17852 &mut self,
17853
17854 request: ::fidl_next::Request<advisory_locking::AdvisoryLock, ___T>,
17855
17856 responder: ::fidl_next::Responder<advisory_locking::AdvisoryLock, ___T>,
17857 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
17858}
17859
17860impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for AdvisoryLocking
17861where
17862 ___H: AdvisoryLockingServerHandler<___T> + ::core::marker::Send,
17863 ___T: ::fidl_next::Transport,
17864 for<'de> crate::wire::AdvisoryLockingAdvisoryLockRequest<'de>: ::fidl_next::Decode<
17865 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
17866 Constraint = (),
17867 >,
17868{
17869 async fn on_one_way(
17870 handler: &mut ___H,
17871 mut message: ::fidl_next::Message<___T>,
17872 ) -> ::core::result::Result<
17873 (),
17874 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
17875 > {
17876 match *message.header().ordinal {
17877 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
17878 }
17879 }
17880
17881 async fn on_two_way(
17882 handler: &mut ___H,
17883 mut message: ::fidl_next::Message<___T>,
17884 responder: ::fidl_next::protocol::Responder<___T>,
17885 ) -> ::core::result::Result<
17886 (),
17887 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
17888 > {
17889 match *message.header().ordinal {
17890 7992130864415541162 => {
17891 let responder = ::fidl_next::Responder::from_untyped(responder);
17892
17893 match ::fidl_next::AsDecoderExt::into_decoded(message) {
17894 Ok(decoded) => {
17895 handler
17896 .advisory_lock(::fidl_next::Request::from_decoded(decoded), responder)
17897 .await;
17898 Ok(())
17899 }
17900 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
17901 ordinal: 7992130864415541162,
17902 error,
17903 }),
17904 }
17905 }
17906
17907 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
17908 }
17909 }
17910}
17911
17912impl<___T> AdvisoryLockingClientHandler<___T> for ::fidl_next::IgnoreEvents where
17913 ___T: ::fidl_next::Transport
17914{
17915}
17916
17917impl<___H, ___T> AdvisoryLockingLocalClientHandler<___T> for ::fidl_next::Local<___H>
17918where
17919 ___H: AdvisoryLockingClientHandler<___T>,
17920 ___T: ::fidl_next::Transport,
17921{
17922}
17923
17924impl<___H, ___T> AdvisoryLockingLocalServerHandler<___T> for ::fidl_next::Local<___H>
17925where
17926 ___H: AdvisoryLockingServerHandler<___T>,
17927 ___T: ::fidl_next::Transport,
17928{
17929 async fn advisory_lock(
17930 &mut self,
17931
17932 request: ::fidl_next::Request<advisory_locking::AdvisoryLock, ___T>,
17933
17934 responder: ::fidl_next::Responder<advisory_locking::AdvisoryLock, ___T>,
17935 ) {
17936 ___H::advisory_lock(&mut self.0, request, responder).await
17937 }
17938}
17939
17940pub const DIRECTORY_PROTOCOL_NAME: &str = "fuchsia.io/Directory";
17941
17942#[doc = " The maximum length, in bytes, of a filesystem path.\n"]
17943pub const MAX_PATH_LENGTH: u64 = 4095 as u64;
17944
17945#[doc = " The maximal buffer size which can be transmitted for buffered operations.\n This capacity is currently set somewhat arbitrarily.\n"]
17946pub const MAX_BUF: u64 = 8192 as u64;
17947
17948#[doc = " The maximum length, in bytes, of a single filesystem component.\n"]
17949pub const MAX_NAME_LENGTH: u64 = 255 as u64;
17950
17951#[doc = " The maximum size for an extended attribute name.\n"]
17952pub const MAX_ATTRIBUTE_NAME: u64 = 255 as u64;
17953
17954#[doc = " The maximum size for an extended attribute value to be included inline.\n Values larger than this size are passed in a vmo.\n"]
17955pub const MAX_INLINE_ATTRIBUTE_VALUE: u64 = 32768 as u64;
17956
17957#[doc = " The maximum size for passing the SELinux context as an attribute.\n"]
17958pub const MAX_SELINUX_CONTEXT_ATTRIBUTE_LEN: u64 = 256 as u64;
17959
17960#[doc = " DirectoryWatcher transmits messages from a filesystem server\n about events happening in the filesystem. Clients can register\n new watchers using the `Directory.Watch` method, where they can\n filter which events they want to receive notifications for.\n\n The DirectoryWatcher will send messages of the form:\n ```\n struct {\n uint8 event;\n uint8 len;\n char name[];\n };\n ```\n Where names are NOT null-terminated. The name is the relative\n path to the entry the event is refering to. It will be empty if\n the event isn\'t referencing a particular entry (e.g. for the\n `IDLE` event).\n"]
17962#[derive(PartialEq, Debug)]
17963pub struct DirectoryWatcher;
17964
17965#[cfg(target_os = "fuchsia")]
17966impl ::fidl_next::HasTransport for DirectoryWatcher {
17967 type Transport = ::fidl_next::fuchsia::zx::Channel;
17968}
17969
17970pub mod directory_watcher {
17971 pub mod prelude {
17972 pub use crate::{
17973 DirectoryWatcher, DirectoryWatcherClientHandler, DirectoryWatcherLocalClientHandler,
17974 DirectoryWatcherLocalServerHandler, DirectoryWatcherServerHandler, directory_watcher,
17975 };
17976 }
17977
17978 mod ___detail {
17979 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::DirectoryWatcher
17980 where
17981 ___T: ::fidl_next::Transport,
17982 {
17983 type Client = DirectoryWatcherClient<___T>;
17984 type Server = DirectoryWatcherServer<___T>;
17985 }
17986
17987 #[repr(transparent)]
17989 pub struct DirectoryWatcherClient<___T: ::fidl_next::Transport> {
17990 #[allow(dead_code)]
17991 client: ::fidl_next::protocol::Client<___T>,
17992 }
17993
17994 impl<___T> DirectoryWatcherClient<___T> where ___T: ::fidl_next::Transport {}
17995
17996 #[repr(transparent)]
17998 pub struct DirectoryWatcherServer<___T: ::fidl_next::Transport> {
17999 server: ::fidl_next::protocol::Server<___T>,
18000 }
18001
18002 impl<___T> DirectoryWatcherServer<___T> where ___T: ::fidl_next::Transport {}
18003 }
18004}
18005
18006#[diagnostic::on_unimplemented(
18007 note = "If {Self} implements the non-local DirectoryWatcherClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
18008)]
18009
18010pub trait DirectoryWatcherLocalClientHandler<
18014 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18015 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18016>
18017{
18018}
18019
18020impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for DirectoryWatcher
18021where
18022 ___H: DirectoryWatcherLocalClientHandler<___T>,
18023 ___T: ::fidl_next::Transport,
18024{
18025 async fn on_event(
18026 handler: &mut ___H,
18027 mut message: ::fidl_next::Message<___T>,
18028 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18029 match *message.header().ordinal {
18030 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18031 }
18032 }
18033}
18034
18035#[diagnostic::on_unimplemented(
18036 note = "If {Self} implements the non-local DirectoryWatcherServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
18037)]
18038
18039pub trait DirectoryWatcherLocalServerHandler<
18043 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18044 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18045>
18046{
18047}
18048
18049impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for DirectoryWatcher
18050where
18051 ___H: DirectoryWatcherLocalServerHandler<___T>,
18052 ___T: ::fidl_next::Transport,
18053{
18054 async fn on_one_way(
18055 handler: &mut ___H,
18056 mut message: ::fidl_next::Message<___T>,
18057 ) -> ::core::result::Result<
18058 (),
18059 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18060 > {
18061 match *message.header().ordinal {
18062 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18063 }
18064 }
18065
18066 async fn on_two_way(
18067 handler: &mut ___H,
18068 mut message: ::fidl_next::Message<___T>,
18069 responder: ::fidl_next::protocol::Responder<___T>,
18070 ) -> ::core::result::Result<
18071 (),
18072 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18073 > {
18074 match *message.header().ordinal {
18075 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18076 }
18077 }
18078}
18079
18080pub trait DirectoryWatcherClientHandler<
18084 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18085 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18086>
18087{
18088}
18089
18090impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for DirectoryWatcher
18091where
18092 ___H: DirectoryWatcherClientHandler<___T> + ::core::marker::Send,
18093 ___T: ::fidl_next::Transport,
18094{
18095 async fn on_event(
18096 handler: &mut ___H,
18097 mut message: ::fidl_next::Message<___T>,
18098 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18099 match *message.header().ordinal {
18100 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18101 }
18102 }
18103}
18104
18105pub trait DirectoryWatcherServerHandler<
18109 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18110 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18111>
18112{
18113}
18114
18115impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for DirectoryWatcher
18116where
18117 ___H: DirectoryWatcherServerHandler<___T> + ::core::marker::Send,
18118 ___T: ::fidl_next::Transport,
18119{
18120 async fn on_one_way(
18121 handler: &mut ___H,
18122 mut message: ::fidl_next::Message<___T>,
18123 ) -> ::core::result::Result<
18124 (),
18125 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18126 > {
18127 match *message.header().ordinal {
18128 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18129 }
18130 }
18131
18132 async fn on_two_way(
18133 handler: &mut ___H,
18134 mut message: ::fidl_next::Message<___T>,
18135 responder: ::fidl_next::protocol::Responder<___T>,
18136 ) -> ::core::result::Result<
18137 (),
18138 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18139 > {
18140 match *message.header().ordinal {
18141 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18142 }
18143 }
18144}
18145
18146impl<___T> DirectoryWatcherClientHandler<___T> for ::fidl_next::IgnoreEvents where
18147 ___T: ::fidl_next::Transport
18148{
18149}
18150
18151impl<___H, ___T> DirectoryWatcherLocalClientHandler<___T> for ::fidl_next::Local<___H>
18152where
18153 ___H: DirectoryWatcherClientHandler<___T>,
18154 ___T: ::fidl_next::Transport,
18155{
18156}
18157
18158impl<___H, ___T> DirectoryWatcherLocalServerHandler<___T> for ::fidl_next::Local<___H>
18159where
18160 ___H: DirectoryWatcherServerHandler<___T>,
18161 ___T: ::fidl_next::Transport,
18162{
18163}
18164
18165#[doc = " The maximum size of a chunk in the ListExtendedAttributes iterator.\n"]
18166pub const MAX_LIST_ATTRIBUTES_CHUNK: u64 = 128 as u64;
18167
18168#[derive(PartialEq, Debug)]
18170pub struct ExtendedAttributeIterator;
18171
18172#[cfg(target_os = "fuchsia")]
18173impl ::fidl_next::HasTransport for ExtendedAttributeIterator {
18174 type Transport = ::fidl_next::fuchsia::zx::Channel;
18175}
18176
18177pub mod extended_attribute_iterator {
18178 pub mod prelude {
18179 pub use crate::{
18180 ExtendedAttributeIterator, ExtendedAttributeIteratorClientHandler,
18181 ExtendedAttributeIteratorLocalClientHandler,
18182 ExtendedAttributeIteratorLocalServerHandler, ExtendedAttributeIteratorServerHandler,
18183 extended_attribute_iterator,
18184 };
18185
18186 pub use crate::natural::ExtendedAttributeIteratorGetNextResponse;
18187 }
18188
18189 pub struct GetNext;
18190
18191 impl ::fidl_next::Method for GetNext {
18192 const ORDINAL: u64 = 268639596268373415;
18193 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
18194 ::fidl_next::protocol::Flexibility::Strict;
18195
18196 type Protocol = crate::ExtendedAttributeIterator;
18197
18198 type Request = ::fidl_next::wire::EmptyMessageBody;
18199 }
18200
18201 impl ::fidl_next::TwoWayMethod for GetNext {
18202 type Response = ::fidl_next::wire::Result<
18203 'static,
18204 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
18205 ::fidl_next::wire::fuchsia::Status,
18206 >;
18207 }
18208
18209 impl<___R> ::fidl_next::Respond<___R> for GetNext {
18210 type Output = ::core::result::Result<___R, ::fidl_next::never::Never>;
18211
18212 fn respond(response: ___R) -> Self::Output {
18213 ::core::result::Result::Ok(response)
18214 }
18215 }
18216
18217 impl<___R> ::fidl_next::RespondErr<___R> for GetNext {
18218 type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
18219
18220 fn respond_err(response: ___R) -> Self::Output {
18221 ::core::result::Result::Err(response)
18222 }
18223 }
18224
18225 mod ___detail {
18226 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::ExtendedAttributeIterator
18227 where
18228 ___T: ::fidl_next::Transport,
18229 {
18230 type Client = ExtendedAttributeIteratorClient<___T>;
18231 type Server = ExtendedAttributeIteratorServer<___T>;
18232 }
18233
18234 #[repr(transparent)]
18236 pub struct ExtendedAttributeIteratorClient<___T: ::fidl_next::Transport> {
18237 #[allow(dead_code)]
18238 client: ::fidl_next::protocol::Client<___T>,
18239 }
18240
18241 impl<___T> ExtendedAttributeIteratorClient<___T>
18242 where
18243 ___T: ::fidl_next::Transport,
18244 {
18245 #[doc = " Get the next chunk of extended attribute names. If this is the last\n chunk, last will be true, and the channel will be closed after the\n call.\n"]
18246 pub fn get_next(&self) -> ::fidl_next::TwoWayFuture<'_, super::GetNext, ___T> {
18247 ::fidl_next::TwoWayFuture::from_untyped(
18248 self.client.send_two_way::<::fidl_next::wire::EmptyMessageBody>(
18249 268639596268373415,
18250 <super::GetNext as ::fidl_next::Method>::FLEXIBILITY,
18251 (),
18252 ),
18253 )
18254 }
18255 }
18256
18257 #[repr(transparent)]
18259 pub struct ExtendedAttributeIteratorServer<___T: ::fidl_next::Transport> {
18260 server: ::fidl_next::protocol::Server<___T>,
18261 }
18262
18263 impl<___T> ExtendedAttributeIteratorServer<___T> where ___T: ::fidl_next::Transport {}
18264 }
18265}
18266
18267#[diagnostic::on_unimplemented(
18268 note = "If {Self} implements the non-local ExtendedAttributeIteratorClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
18269)]
18270
18271pub trait ExtendedAttributeIteratorLocalClientHandler<
18275 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18276 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18277>
18278{
18279}
18280
18281impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for ExtendedAttributeIterator
18282where
18283 ___H: ExtendedAttributeIteratorLocalClientHandler<___T>,
18284 ___T: ::fidl_next::Transport,
18285{
18286 async fn on_event(
18287 handler: &mut ___H,
18288 mut message: ::fidl_next::Message<___T>,
18289 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18290 match *message.header().ordinal {
18291 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18292 }
18293 }
18294}
18295
18296#[diagnostic::on_unimplemented(
18297 note = "If {Self} implements the non-local ExtendedAttributeIteratorServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
18298)]
18299
18300pub trait ExtendedAttributeIteratorLocalServerHandler<
18304 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18305 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18306>
18307{
18308 #[doc = " Get the next chunk of extended attribute names. If this is the last\n chunk, last will be true, and the channel will be closed after the\n call.\n"]
18309 fn get_next(
18310 &mut self,
18311
18312 responder: ::fidl_next::Responder<extended_attribute_iterator::GetNext, ___T>,
18313 ) -> impl ::core::future::Future<Output = ()>;
18314}
18315
18316impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for ExtendedAttributeIterator
18317where
18318 ___H: ExtendedAttributeIteratorLocalServerHandler<___T>,
18319 ___T: ::fidl_next::Transport,
18320{
18321 async fn on_one_way(
18322 handler: &mut ___H,
18323 mut message: ::fidl_next::Message<___T>,
18324 ) -> ::core::result::Result<
18325 (),
18326 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18327 > {
18328 match *message.header().ordinal {
18329 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18330 }
18331 }
18332
18333 async fn on_two_way(
18334 handler: &mut ___H,
18335 mut message: ::fidl_next::Message<___T>,
18336 responder: ::fidl_next::protocol::Responder<___T>,
18337 ) -> ::core::result::Result<
18338 (),
18339 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18340 > {
18341 match *message.header().ordinal {
18342 268639596268373415 => {
18343 let responder = ::fidl_next::Responder::from_untyped(responder);
18344
18345 handler.get_next(responder).await;
18346 Ok(())
18347 }
18348
18349 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18350 }
18351 }
18352}
18353
18354pub trait ExtendedAttributeIteratorClientHandler<
18358 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18359 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18360>
18361{
18362}
18363
18364impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for ExtendedAttributeIterator
18365where
18366 ___H: ExtendedAttributeIteratorClientHandler<___T> + ::core::marker::Send,
18367 ___T: ::fidl_next::Transport,
18368{
18369 async fn on_event(
18370 handler: &mut ___H,
18371 mut message: ::fidl_next::Message<___T>,
18372 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18373 match *message.header().ordinal {
18374 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18375 }
18376 }
18377}
18378
18379pub trait ExtendedAttributeIteratorServerHandler<
18383 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18384 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18385>
18386{
18387 #[doc = " Get the next chunk of extended attribute names. If this is the last\n chunk, last will be true, and the channel will be closed after the\n call.\n"]
18388 fn get_next(
18389 &mut self,
18390
18391 responder: ::fidl_next::Responder<extended_attribute_iterator::GetNext, ___T>,
18392 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
18393}
18394
18395impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for ExtendedAttributeIterator
18396where
18397 ___H: ExtendedAttributeIteratorServerHandler<___T> + ::core::marker::Send,
18398 ___T: ::fidl_next::Transport,
18399{
18400 async fn on_one_way(
18401 handler: &mut ___H,
18402 mut message: ::fidl_next::Message<___T>,
18403 ) -> ::core::result::Result<
18404 (),
18405 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18406 > {
18407 match *message.header().ordinal {
18408 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18409 }
18410 }
18411
18412 async fn on_two_way(
18413 handler: &mut ___H,
18414 mut message: ::fidl_next::Message<___T>,
18415 responder: ::fidl_next::protocol::Responder<___T>,
18416 ) -> ::core::result::Result<
18417 (),
18418 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18419 > {
18420 match *message.header().ordinal {
18421 268639596268373415 => {
18422 let responder = ::fidl_next::Responder::from_untyped(responder);
18423
18424 handler.get_next(responder).await;
18425 Ok(())
18426 }
18427
18428 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18429 }
18430 }
18431}
18432
18433impl<___T> ExtendedAttributeIteratorClientHandler<___T> for ::fidl_next::IgnoreEvents where
18434 ___T: ::fidl_next::Transport
18435{
18436}
18437
18438impl<___H, ___T> ExtendedAttributeIteratorLocalClientHandler<___T> for ::fidl_next::Local<___H>
18439where
18440 ___H: ExtendedAttributeIteratorClientHandler<___T>,
18441 ___T: ::fidl_next::Transport,
18442{
18443}
18444
18445impl<___H, ___T> ExtendedAttributeIteratorLocalServerHandler<___T> for ::fidl_next::Local<___H>
18446where
18447 ___H: ExtendedAttributeIteratorServerHandler<___T>,
18448 ___T: ::fidl_next::Transport,
18449{
18450 async fn get_next(
18451 &mut self,
18452
18453 responder: ::fidl_next::Responder<extended_attribute_iterator::GetNext, ___T>,
18454 ) {
18455 ___H::get_next(&mut self.0, responder).await
18456 }
18457}
18458
18459pub const FILE_PROTOCOL_NAME: &str = "fuchsia.io/File";
18460
18461#[doc = " Specifies that this object is not linkable. This is only intended to be used in the context of\n creating a temporary unnamed objects. When that is not the case, the node protocol defines if it\n is linkable (i.e. if it composes the `Linkable` protocol). When this flag is set along with\n `Flags.FLAG_CREATE_AS_UNNAMED_TEMPORARY`, an unnamed temporary object will be created that\n cannot be linked into the filesystem. This would be similar to Linux `O_TMPFILE | O_EXCL`.\n\n CAUTION: if `Flags.FLAG_CREATE_AS_UNNAMED_TEMPORARY` is not specified, then this is treated as\n a \"must create\" flag.\n\n The reason for overloading `Flags.FLAG_MUST_CREATE` to mean \"not linkable\" in this context and\n \"must create\" in other contexts is due to the assumption that some POSIX flags are compatible\n with the members in `Flags`. In particular the POSIX `O_EXCL` has the same value as\n `Flags.FLAG_MUST_CREATE`. We are not able to define different bit members of the same value,\n hence it is defined separately outside of `Flags`.\n"]
18462pub const FLAG_TEMPORARY_AS_NOT_LINKABLE: crate::natural::Flags =
18463 crate::natural::Flags::FLAG_MUST_CREATE;
18464
18465#[doc = " The maximum I/O size that is allowed for read/write operations using\n byte vectors.\n"]
18466pub const MAX_TRANSFER_SIZE: u64 = 8192 as u64;
18467
18468#[derive(PartialEq, Debug)]
18470pub struct Readable;
18471
18472#[cfg(target_os = "fuchsia")]
18473impl ::fidl_next::HasTransport for Readable {
18474 type Transport = ::fidl_next::fuchsia::zx::Channel;
18475}
18476
18477pub mod readable {
18478 pub mod prelude {
18479 pub use crate::{
18480 Readable, ReadableClientHandler, ReadableLocalClientHandler,
18481 ReadableLocalServerHandler, ReadableServerHandler, readable,
18482 };
18483
18484 pub use crate::natural::ReadableReadRequest;
18485
18486 pub use crate::natural::ReadableReadResponse;
18487 }
18488
18489 pub struct Read;
18490
18491 impl ::fidl_next::Method for Read {
18492 const ORDINAL: u64 = 395825947633028830;
18493 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
18494 ::fidl_next::protocol::Flexibility::Strict;
18495
18496 type Protocol = crate::Readable;
18497
18498 type Request = crate::wire::ReadableReadRequest;
18499 }
18500
18501 impl ::fidl_next::TwoWayMethod for Read {
18502 type Response = ::fidl_next::wire::Result<
18503 'static,
18504 crate::wire::ReadableReadResponse<'static>,
18505 ::fidl_next::wire::fuchsia::Status,
18506 >;
18507 }
18508
18509 impl<___R> ::fidl_next::Respond<___R> for Read {
18510 type Output = ::core::result::Result<
18511 crate::generic::ReadableReadResponse<___R>,
18512 ::fidl_next::never::Never,
18513 >;
18514
18515 fn respond(response: ___R) -> Self::Output {
18516 ::core::result::Result::Ok(crate::generic::ReadableReadResponse { data: response })
18517 }
18518 }
18519
18520 impl<___R> ::fidl_next::RespondErr<___R> for Read {
18521 type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
18522
18523 fn respond_err(response: ___R) -> Self::Output {
18524 ::core::result::Result::Err(response)
18525 }
18526 }
18527
18528 mod ___detail {
18529 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::Readable
18530 where
18531 ___T: ::fidl_next::Transport,
18532 {
18533 type Client = ReadableClient<___T>;
18534 type Server = ReadableServer<___T>;
18535 }
18536
18537 #[repr(transparent)]
18539 pub struct ReadableClient<___T: ::fidl_next::Transport> {
18540 #[allow(dead_code)]
18541 client: ::fidl_next::protocol::Client<___T>,
18542 }
18543
18544 impl<___T> ReadableClient<___T>
18545 where
18546 ___T: ::fidl_next::Transport,
18547 {
18548 #[doc = " Reads up to \'count\' bytes at the seek offset.\n The seek offset is moved forward by the number of bytes read.\n\n ## Invariants\n\n * The returned `data.length` will never be greater than `count`.\n * If `data.length` is less than `count`, it means that the seek offset\n has reached the end of file as part of this operation.\n * If `data.length` is zero while `count` is not, it means that the\n seek offset is already at or beyond the end of file, and no data could\n be read.\n * If `count` is zero, the server should perform all the checks ensuring\n read access without actually read anything, and return an empty\n `data` vector.\n\n This method requires the [`Rights.READ_BYTES`] right.\n\n Returns `ZX_ERR_OUT_OF_RANGE` if `count` is greater than `MAX_TRANSFER_SIZE`.\n"]
18549 pub fn read(
18550 &self,
18551
18552 count: impl ::fidl_next::Encode<
18553 ::fidl_next::wire::Uint64,
18554 <___T as ::fidl_next::Transport>::SendBuffer,
18555 >,
18556 ) -> ::fidl_next::TwoWayFuture<'_, super::Read, ___T>
18557 where
18558 <___T as ::fidl_next::Transport>::SendBuffer:
18559 ::fidl_next::encoder::InternalHandleEncoder,
18560 {
18561 self.read_with(crate::generic::ReadableReadRequest { count })
18562 }
18563
18564 #[doc = " Reads up to \'count\' bytes at the seek offset.\n The seek offset is moved forward by the number of bytes read.\n\n ## Invariants\n\n * The returned `data.length` will never be greater than `count`.\n * If `data.length` is less than `count`, it means that the seek offset\n has reached the end of file as part of this operation.\n * If `data.length` is zero while `count` is not, it means that the\n seek offset is already at or beyond the end of file, and no data could\n be read.\n * If `count` is zero, the server should perform all the checks ensuring\n read access without actually read anything, and return an empty\n `data` vector.\n\n This method requires the [`Rights.READ_BYTES`] right.\n\n Returns `ZX_ERR_OUT_OF_RANGE` if `count` is greater than `MAX_TRANSFER_SIZE`.\n"]
18565 pub fn read_with<___R>(
18566 &self,
18567 request: ___R,
18568 ) -> ::fidl_next::TwoWayFuture<'_, super::Read, ___T>
18569 where
18570 ___R: ::fidl_next::Encode<
18571 crate::wire::ReadableReadRequest,
18572 <___T as ::fidl_next::Transport>::SendBuffer,
18573 >,
18574 {
18575 ::fidl_next::TwoWayFuture::from_untyped(self.client.send_two_way(
18576 395825947633028830,
18577 <super::Read as ::fidl_next::Method>::FLEXIBILITY,
18578 request,
18579 ))
18580 }
18581 }
18582
18583 #[repr(transparent)]
18585 pub struct ReadableServer<___T: ::fidl_next::Transport> {
18586 server: ::fidl_next::protocol::Server<___T>,
18587 }
18588
18589 impl<___T> ReadableServer<___T> where ___T: ::fidl_next::Transport {}
18590 }
18591}
18592
18593#[diagnostic::on_unimplemented(
18594 note = "If {Self} implements the non-local ReadableClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
18595)]
18596
18597pub trait ReadableLocalClientHandler<
18601 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18602 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18603>
18604{
18605}
18606
18607impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for Readable
18608where
18609 ___H: ReadableLocalClientHandler<___T>,
18610 ___T: ::fidl_next::Transport,
18611{
18612 async fn on_event(
18613 handler: &mut ___H,
18614 mut message: ::fidl_next::Message<___T>,
18615 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18616 match *message.header().ordinal {
18617 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18618 }
18619 }
18620}
18621
18622#[diagnostic::on_unimplemented(
18623 note = "If {Self} implements the non-local ReadableServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
18624)]
18625
18626pub trait ReadableLocalServerHandler<
18630 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18631 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18632>
18633{
18634 #[doc = " Reads up to \'count\' bytes at the seek offset.\n The seek offset is moved forward by the number of bytes read.\n\n ## Invariants\n\n * The returned `data.length` will never be greater than `count`.\n * If `data.length` is less than `count`, it means that the seek offset\n has reached the end of file as part of this operation.\n * If `data.length` is zero while `count` is not, it means that the\n seek offset is already at or beyond the end of file, and no data could\n be read.\n * If `count` is zero, the server should perform all the checks ensuring\n read access without actually read anything, and return an empty\n `data` vector.\n\n This method requires the [`Rights.READ_BYTES`] right.\n\n Returns `ZX_ERR_OUT_OF_RANGE` if `count` is greater than `MAX_TRANSFER_SIZE`.\n"]
18635 fn read(
18636 &mut self,
18637
18638 request: ::fidl_next::Request<readable::Read, ___T>,
18639
18640 responder: ::fidl_next::Responder<readable::Read, ___T>,
18641 ) -> impl ::core::future::Future<Output = ()>;
18642}
18643
18644impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for Readable
18645where
18646 ___H: ReadableLocalServerHandler<___T>,
18647 ___T: ::fidl_next::Transport,
18648 for<'de> crate::wire::ReadableReadRequest: ::fidl_next::Decode<
18649 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
18650 Constraint = (),
18651 >,
18652{
18653 async fn on_one_way(
18654 handler: &mut ___H,
18655 mut message: ::fidl_next::Message<___T>,
18656 ) -> ::core::result::Result<
18657 (),
18658 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18659 > {
18660 match *message.header().ordinal {
18661 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18662 }
18663 }
18664
18665 async fn on_two_way(
18666 handler: &mut ___H,
18667 mut message: ::fidl_next::Message<___T>,
18668 responder: ::fidl_next::protocol::Responder<___T>,
18669 ) -> ::core::result::Result<
18670 (),
18671 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18672 > {
18673 match *message.header().ordinal {
18674 395825947633028830 => {
18675 let responder = ::fidl_next::Responder::from_untyped(responder);
18676
18677 match ::fidl_next::AsDecoderExt::into_decoded(message) {
18678 Ok(decoded) => {
18679 handler.read(::fidl_next::Request::from_decoded(decoded), responder).await;
18680 Ok(())
18681 }
18682 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
18683 ordinal: 395825947633028830,
18684 error,
18685 }),
18686 }
18687 }
18688
18689 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18690 }
18691 }
18692}
18693
18694pub trait ReadableClientHandler<
18698 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18699 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18700>
18701{
18702}
18703
18704impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for Readable
18705where
18706 ___H: ReadableClientHandler<___T> + ::core::marker::Send,
18707 ___T: ::fidl_next::Transport,
18708{
18709 async fn on_event(
18710 handler: &mut ___H,
18711 mut message: ::fidl_next::Message<___T>,
18712 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18713 match *message.header().ordinal {
18714 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18715 }
18716 }
18717}
18718
18719pub trait ReadableServerHandler<
18723 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18724 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18725>
18726{
18727 #[doc = " Reads up to \'count\' bytes at the seek offset.\n The seek offset is moved forward by the number of bytes read.\n\n ## Invariants\n\n * The returned `data.length` will never be greater than `count`.\n * If `data.length` is less than `count`, it means that the seek offset\n has reached the end of file as part of this operation.\n * If `data.length` is zero while `count` is not, it means that the\n seek offset is already at or beyond the end of file, and no data could\n be read.\n * If `count` is zero, the server should perform all the checks ensuring\n read access without actually read anything, and return an empty\n `data` vector.\n\n This method requires the [`Rights.READ_BYTES`] right.\n\n Returns `ZX_ERR_OUT_OF_RANGE` if `count` is greater than `MAX_TRANSFER_SIZE`.\n"]
18728 fn read(
18729 &mut self,
18730
18731 request: ::fidl_next::Request<readable::Read, ___T>,
18732
18733 responder: ::fidl_next::Responder<readable::Read, ___T>,
18734 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
18735}
18736
18737impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for Readable
18738where
18739 ___H: ReadableServerHandler<___T> + ::core::marker::Send,
18740 ___T: ::fidl_next::Transport,
18741 for<'de> crate::wire::ReadableReadRequest: ::fidl_next::Decode<
18742 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
18743 Constraint = (),
18744 >,
18745{
18746 async fn on_one_way(
18747 handler: &mut ___H,
18748 mut message: ::fidl_next::Message<___T>,
18749 ) -> ::core::result::Result<
18750 (),
18751 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18752 > {
18753 match *message.header().ordinal {
18754 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18755 }
18756 }
18757
18758 async fn on_two_way(
18759 handler: &mut ___H,
18760 mut message: ::fidl_next::Message<___T>,
18761 responder: ::fidl_next::protocol::Responder<___T>,
18762 ) -> ::core::result::Result<
18763 (),
18764 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18765 > {
18766 match *message.header().ordinal {
18767 395825947633028830 => {
18768 let responder = ::fidl_next::Responder::from_untyped(responder);
18769
18770 match ::fidl_next::AsDecoderExt::into_decoded(message) {
18771 Ok(decoded) => {
18772 handler.read(::fidl_next::Request::from_decoded(decoded), responder).await;
18773 Ok(())
18774 }
18775 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
18776 ordinal: 395825947633028830,
18777 error,
18778 }),
18779 }
18780 }
18781
18782 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18783 }
18784 }
18785}
18786
18787impl<___T> ReadableClientHandler<___T> for ::fidl_next::IgnoreEvents where
18788 ___T: ::fidl_next::Transport
18789{
18790}
18791
18792impl<___H, ___T> ReadableLocalClientHandler<___T> for ::fidl_next::Local<___H>
18793where
18794 ___H: ReadableClientHandler<___T>,
18795 ___T: ::fidl_next::Transport,
18796{
18797}
18798
18799impl<___H, ___T> ReadableLocalServerHandler<___T> for ::fidl_next::Local<___H>
18800where
18801 ___H: ReadableServerHandler<___T>,
18802 ___T: ::fidl_next::Transport,
18803{
18804 async fn read(
18805 &mut self,
18806
18807 request: ::fidl_next::Request<readable::Read, ___T>,
18808
18809 responder: ::fidl_next::Responder<readable::Read, ___T>,
18810 ) {
18811 ___H::read(&mut self.0, request, responder).await
18812 }
18813}
18814
18815#[derive(PartialEq, Debug)]
18817pub struct Writable;
18818
18819#[cfg(target_os = "fuchsia")]
18820impl ::fidl_next::HasTransport for Writable {
18821 type Transport = ::fidl_next::fuchsia::zx::Channel;
18822}
18823
18824pub mod writable {
18825 pub mod prelude {
18826 pub use crate::{
18827 Writable, WritableClientHandler, WritableLocalClientHandler,
18828 WritableLocalServerHandler, WritableServerHandler, writable,
18829 };
18830
18831 pub use crate::natural::WritableWriteRequest;
18832
18833 pub use crate::natural::WritableWriteResponse;
18834 }
18835
18836 pub struct Write;
18837
18838 impl ::fidl_next::Method for Write {
18839 const ORDINAL: u64 = 7651971425397809026;
18840 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
18841 ::fidl_next::protocol::Flexibility::Strict;
18842
18843 type Protocol = crate::Writable;
18844
18845 type Request = crate::wire::WritableWriteRequest<'static>;
18846 }
18847
18848 impl ::fidl_next::TwoWayMethod for Write {
18849 type Response = ::fidl_next::wire::Result<
18850 'static,
18851 crate::wire::WritableWriteResponse,
18852 ::fidl_next::wire::fuchsia::Status,
18853 >;
18854 }
18855
18856 impl<___R> ::fidl_next::Respond<___R> for Write {
18857 type Output = ::core::result::Result<
18858 crate::generic::WritableWriteResponse<___R>,
18859 ::fidl_next::never::Never,
18860 >;
18861
18862 fn respond(response: ___R) -> Self::Output {
18863 ::core::result::Result::Ok(crate::generic::WritableWriteResponse {
18864 actual_count: response,
18865 })
18866 }
18867 }
18868
18869 impl<___R> ::fidl_next::RespondErr<___R> for Write {
18870 type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
18871
18872 fn respond_err(response: ___R) -> Self::Output {
18873 ::core::result::Result::Err(response)
18874 }
18875 }
18876
18877 mod ___detail {
18878 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::Writable
18879 where
18880 ___T: ::fidl_next::Transport,
18881 {
18882 type Client = WritableClient<___T>;
18883 type Server = WritableServer<___T>;
18884 }
18885
18886 #[repr(transparent)]
18888 pub struct WritableClient<___T: ::fidl_next::Transport> {
18889 #[allow(dead_code)]
18890 client: ::fidl_next::protocol::Client<___T>,
18891 }
18892
18893 impl<___T> WritableClient<___T>
18894 where
18895 ___T: ::fidl_next::Transport,
18896 {
18897 #[doc = " Writes data at the seek offset.\n The seek offset is moved forward by the number of bytes written.\n If the file is in append mode, the seek offset is first set to the end\n of the file, followed by the write, in one atomic step.\n\n The file size may grow if the seek offset plus `data.length` is beyond\n the current end of file.\n\n + request `data` the byte buffer to write to the file.\n - response `actual_count` the number of bytes written.\n\n ## Invariants\n\n * The returned `actual_count` will never be greater than `data.length`.\n * If the server is unable to write all the data due to e.g. not enough\n space, `actual_count` may be less than `data.length`. If no bytes\n could be written, an error is returned.\n * If `data.length` is zero, the server should perform all the checks\n ensuring write access without mutating the file and return a\n successful write of zero bytes. The seek offset is still updated if\n in append mode.\n\n This method requires the [`Rights.WRITE_BYTES`] right.\n"]
18898 pub fn write(
18899 &self,
18900
18901 data: impl ::fidl_next::Encode<
18902 ::fidl_next::wire::Vector<'static, u8>,
18903 <___T as ::fidl_next::Transport>::SendBuffer,
18904 >,
18905 ) -> ::fidl_next::TwoWayFuture<'_, super::Write, ___T>
18906 where
18907 <___T as ::fidl_next::Transport>::SendBuffer:
18908 ::fidl_next::encoder::InternalHandleEncoder,
18909 <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::Encoder,
18910 {
18911 self.write_with(crate::generic::WritableWriteRequest { data })
18912 }
18913
18914 #[doc = " Writes data at the seek offset.\n The seek offset is moved forward by the number of bytes written.\n If the file is in append mode, the seek offset is first set to the end\n of the file, followed by the write, in one atomic step.\n\n The file size may grow if the seek offset plus `data.length` is beyond\n the current end of file.\n\n + request `data` the byte buffer to write to the file.\n - response `actual_count` the number of bytes written.\n\n ## Invariants\n\n * The returned `actual_count` will never be greater than `data.length`.\n * If the server is unable to write all the data due to e.g. not enough\n space, `actual_count` may be less than `data.length`. If no bytes\n could be written, an error is returned.\n * If `data.length` is zero, the server should perform all the checks\n ensuring write access without mutating the file and return a\n successful write of zero bytes. The seek offset is still updated if\n in append mode.\n\n This method requires the [`Rights.WRITE_BYTES`] right.\n"]
18915 pub fn write_with<___R>(
18916 &self,
18917 request: ___R,
18918 ) -> ::fidl_next::TwoWayFuture<'_, super::Write, ___T>
18919 where
18920 ___R: ::fidl_next::Encode<
18921 crate::wire::WritableWriteRequest<'static>,
18922 <___T as ::fidl_next::Transport>::SendBuffer,
18923 >,
18924 {
18925 ::fidl_next::TwoWayFuture::from_untyped(self.client.send_two_way(
18926 7651971425397809026,
18927 <super::Write as ::fidl_next::Method>::FLEXIBILITY,
18928 request,
18929 ))
18930 }
18931 }
18932
18933 #[repr(transparent)]
18935 pub struct WritableServer<___T: ::fidl_next::Transport> {
18936 server: ::fidl_next::protocol::Server<___T>,
18937 }
18938
18939 impl<___T> WritableServer<___T> where ___T: ::fidl_next::Transport {}
18940 }
18941}
18942
18943#[diagnostic::on_unimplemented(
18944 note = "If {Self} implements the non-local WritableClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
18945)]
18946
18947pub trait WritableLocalClientHandler<
18951 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18952 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18953>
18954{
18955}
18956
18957impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for Writable
18958where
18959 ___H: WritableLocalClientHandler<___T>,
18960 ___T: ::fidl_next::Transport,
18961{
18962 async fn on_event(
18963 handler: &mut ___H,
18964 mut message: ::fidl_next::Message<___T>,
18965 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18966 match *message.header().ordinal {
18967 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18968 }
18969 }
18970}
18971
18972#[diagnostic::on_unimplemented(
18973 note = "If {Self} implements the non-local WritableServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
18974)]
18975
18976pub trait WritableLocalServerHandler<
18980 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18981 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18982>
18983{
18984 #[doc = " Writes data at the seek offset.\n The seek offset is moved forward by the number of bytes written.\n If the file is in append mode, the seek offset is first set to the end\n of the file, followed by the write, in one atomic step.\n\n The file size may grow if the seek offset plus `data.length` is beyond\n the current end of file.\n\n + request `data` the byte buffer to write to the file.\n - response `actual_count` the number of bytes written.\n\n ## Invariants\n\n * The returned `actual_count` will never be greater than `data.length`.\n * If the server is unable to write all the data due to e.g. not enough\n space, `actual_count` may be less than `data.length`. If no bytes\n could be written, an error is returned.\n * If `data.length` is zero, the server should perform all the checks\n ensuring write access without mutating the file and return a\n successful write of zero bytes. The seek offset is still updated if\n in append mode.\n\n This method requires the [`Rights.WRITE_BYTES`] right.\n"]
18985 fn write(
18986 &mut self,
18987
18988 request: ::fidl_next::Request<writable::Write, ___T>,
18989
18990 responder: ::fidl_next::Responder<writable::Write, ___T>,
18991 ) -> impl ::core::future::Future<Output = ()>;
18992}
18993
18994impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for Writable
18995where
18996 ___H: WritableLocalServerHandler<___T>,
18997 ___T: ::fidl_next::Transport,
18998 for<'de> crate::wire::WritableWriteRequest<'de>: ::fidl_next::Decode<
18999 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
19000 Constraint = (),
19001 >,
19002{
19003 async fn on_one_way(
19004 handler: &mut ___H,
19005 mut message: ::fidl_next::Message<___T>,
19006 ) -> ::core::result::Result<
19007 (),
19008 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
19009 > {
19010 match *message.header().ordinal {
19011 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
19012 }
19013 }
19014
19015 async fn on_two_way(
19016 handler: &mut ___H,
19017 mut message: ::fidl_next::Message<___T>,
19018 responder: ::fidl_next::protocol::Responder<___T>,
19019 ) -> ::core::result::Result<
19020 (),
19021 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
19022 > {
19023 match *message.header().ordinal {
19024 7651971425397809026 => {
19025 let responder = ::fidl_next::Responder::from_untyped(responder);
19026
19027 match ::fidl_next::AsDecoderExt::into_decoded(message) {
19028 Ok(decoded) => {
19029 handler.write(::fidl_next::Request::from_decoded(decoded), responder).await;
19030 Ok(())
19031 }
19032 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
19033 ordinal: 7651971425397809026,
19034 error,
19035 }),
19036 }
19037 }
19038
19039 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
19040 }
19041 }
19042}
19043
19044pub trait WritableClientHandler<
19048 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
19049 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
19050>
19051{
19052}
19053
19054impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for Writable
19055where
19056 ___H: WritableClientHandler<___T> + ::core::marker::Send,
19057 ___T: ::fidl_next::Transport,
19058{
19059 async fn on_event(
19060 handler: &mut ___H,
19061 mut message: ::fidl_next::Message<___T>,
19062 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
19063 match *message.header().ordinal {
19064 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
19065 }
19066 }
19067}
19068
19069pub trait WritableServerHandler<
19073 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
19074 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
19075>
19076{
19077 #[doc = " Writes data at the seek offset.\n The seek offset is moved forward by the number of bytes written.\n If the file is in append mode, the seek offset is first set to the end\n of the file, followed by the write, in one atomic step.\n\n The file size may grow if the seek offset plus `data.length` is beyond\n the current end of file.\n\n + request `data` the byte buffer to write to the file.\n - response `actual_count` the number of bytes written.\n\n ## Invariants\n\n * The returned `actual_count` will never be greater than `data.length`.\n * If the server is unable to write all the data due to e.g. not enough\n space, `actual_count` may be less than `data.length`. If no bytes\n could be written, an error is returned.\n * If `data.length` is zero, the server should perform all the checks\n ensuring write access without mutating the file and return a\n successful write of zero bytes. The seek offset is still updated if\n in append mode.\n\n This method requires the [`Rights.WRITE_BYTES`] right.\n"]
19078 fn write(
19079 &mut self,
19080
19081 request: ::fidl_next::Request<writable::Write, ___T>,
19082
19083 responder: ::fidl_next::Responder<writable::Write, ___T>,
19084 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
19085}
19086
19087impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for Writable
19088where
19089 ___H: WritableServerHandler<___T> + ::core::marker::Send,
19090 ___T: ::fidl_next::Transport,
19091 for<'de> crate::wire::WritableWriteRequest<'de>: ::fidl_next::Decode<
19092 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
19093 Constraint = (),
19094 >,
19095{
19096 async fn on_one_way(
19097 handler: &mut ___H,
19098 mut message: ::fidl_next::Message<___T>,
19099 ) -> ::core::result::Result<
19100 (),
19101 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
19102 > {
19103 match *message.header().ordinal {
19104 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
19105 }
19106 }
19107
19108 async fn on_two_way(
19109 handler: &mut ___H,
19110 mut message: ::fidl_next::Message<___T>,
19111 responder: ::fidl_next::protocol::Responder<___T>,
19112 ) -> ::core::result::Result<
19113 (),
19114 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
19115 > {
19116 match *message.header().ordinal {
19117 7651971425397809026 => {
19118 let responder = ::fidl_next::Responder::from_untyped(responder);
19119
19120 match ::fidl_next::AsDecoderExt::into_decoded(message) {
19121 Ok(decoded) => {
19122 handler.write(::fidl_next::Request::from_decoded(decoded), responder).await;
19123 Ok(())
19124 }
19125 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
19126 ordinal: 7651971425397809026,
19127 error,
19128 }),
19129 }
19130 }
19131
19132 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
19133 }
19134 }
19135}
19136
19137impl<___T> WritableClientHandler<___T> for ::fidl_next::IgnoreEvents where
19138 ___T: ::fidl_next::Transport
19139{
19140}
19141
19142impl<___H, ___T> WritableLocalClientHandler<___T> for ::fidl_next::Local<___H>
19143where
19144 ___H: WritableClientHandler<___T>,
19145 ___T: ::fidl_next::Transport,
19146{
19147}
19148
19149impl<___H, ___T> WritableLocalServerHandler<___T> for ::fidl_next::Local<___H>
19150where
19151 ___H: WritableServerHandler<___T>,
19152 ___T: ::fidl_next::Transport,
19153{
19154 async fn write(
19155 &mut self,
19156
19157 request: ::fidl_next::Request<writable::Write, ___T>,
19158
19159 responder: ::fidl_next::Responder<writable::Write, ___T>,
19160 ) {
19161 ___H::write(&mut self.0, request, responder).await
19162 }
19163}
19164
19165pub const MAX_FS_NAME_BUFFER: u64 = 32 as u64;
19166
19167#[doc = " Set of rights that [`Flags.PERM_INHERIT_WRITE`] will inherit from the parent connection if\n specified. Note that if any of these permissions are missing from the connection, none of these\n permissions will be inherited.\n"]
19168pub const INHERITED_WRITE_PERMISSIONS: crate::natural::Operations =
19169 crate::natural::Operations::from_bits_retain(356);
19170
19171#[doc = " Nodes which do not have ino values should return this value\n from Readdir and GetAttr.\n"]
19172pub const INO_UNKNOWN: u64 = 18446744073709551615 as u64;
19173
19174pub const MASK_KNOWN_PERMISSIONS: crate::natural::Flags =
19175 crate::natural::Flags::from_bits_retain(25087);
19176
19177pub const MASK_KNOWN_PROTOCOLS: crate::natural::Flags =
19178 crate::natural::Flags::from_bits_retain(30069489664);
19179
19180pub const MASK_PERMISSION_FLAGS: u64 = 65535 as u64;
19181
19182pub const MASK_POSIX_FLAGS: u64 = 4294967295 as u64;
19183
19184#[doc = " The maximum length, in bytes, of a single filesystem component.\n"]
19185pub const MAX_FILENAME: u64 = 255 as u64;
19186
19187pub const NODE_PROTOCOL_NAME: &str = "fuchsia.io/Node";
19188
19189#[doc = " Flags used when opening a node reference must fall within this mask.\n"]
19190pub const OPEN_FLAGS_ALLOWED_WITH_NODE_REFERENCE: crate::natural::OpenFlags =
19191 crate::natural::OpenFlags::from_bits_retain(46661632);
19192
19193#[doc = " All known rights.\n"]
19194pub const OPEN_RIGHTS: crate::natural::OpenFlags = crate::natural::OpenFlags::from_bits_retain(11);
19195
19196#[doc = " Set of permissions that are expected when opening a node as executable.\n"]
19197pub const PERM_EXECUTABLE: crate::natural::Flags = crate::natural::Flags::from_bits_retain(201);
19198
19199#[doc = " Set of permissions that are expected when opening a node as readable.\n"]
19200pub const PERM_READABLE: crate::natural::Flags = crate::natural::Flags::from_bits_retain(211);
19201
19202#[doc = " Set of permissions that are expected when opening a node as writable.\n"]
19203pub const PERM_WRITABLE: crate::natural::Flags = crate::natural::Flags::from_bits_retain(485);
19204
19205#[doc = " Alias for directory permission alias rw*\n"]
19206pub const RW_STAR_DIR: crate::natural::Operations =
19207 crate::natural::Operations::from_bits_retain(503);
19208
19209#[doc = " Alias for directory permission alias rx*\n"]
19210pub const RX_STAR_DIR: crate::natural::Operations =
19211 crate::natural::Operations::from_bits_retain(219);
19212
19213#[doc = " Alias for directory permission alias r*\n"]
19214pub const R_STAR_DIR: crate::natural::Operations =
19215 crate::natural::Operations::from_bits_retain(211);
19216
19217#[doc = " The name of the extended attribute accessible via the SELinux context attribute.\n"]
19218pub const SELINUX_CONTEXT_NAME: &str = "security.selinux";
19219
19220pub const SYMLINK_PROTOCOL_NAME: &str = "fuchsia.io/Symlink";
19221
19222#[doc = " Alias for directory permission alias w*\n"]
19223pub const W_STAR_DIR: crate::natural::Operations =
19224 crate::natural::Operations::from_bits_retain(485);
19225
19226#[doc = " Alias for directory permission alias x*\n"]
19227pub const X_STAR_DIR: crate::natural::Operations =
19228 crate::natural::Operations::from_bits_retain(201);