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
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 if ::fidl_next::bitflags::Flags::contains_unknown_bits(self) {
51 return Err(::fidl_next::EncodeError::InvalidStrictBits);
52 }
53
54 let _ = value.write(::fidl_next::wire::Uint64::from(self.bits()));
55 Ok(())
56 }
57 }
58
59 impl ::core::convert::From<crate::wire::Operations> for Operations {
60 fn from(wire: crate::wire::Operations) -> Self {
61 Self::from_bits_retain(u64::from(wire.value))
62 }
63 }
64
65 impl ::fidl_next::FromWire<crate::wire::Operations> for Operations {
66 #[inline]
67 fn from_wire(wire: crate::wire::Operations) -> Self {
68 Self::from(wire)
69 }
70 }
71
72 impl ::fidl_next::FromWireRef<crate::wire::Operations> for Operations {
73 #[inline]
74 fn from_wire_ref(wire: &crate::wire::Operations) -> Self {
75 Self::from(*wire)
76 }
77 }
78
79 #[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"]
80 pub type Abilities = crate::natural::Operations;
81
82 #[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"]
83 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
84 #[repr(u32)]
85 pub enum SeekOrigin {
86 Start = 0,
87 Current = 1,
88 End = 2,
89 }
90 impl ::core::convert::TryFrom<u32> for SeekOrigin {
91 type Error = ::fidl_next::UnknownStrictEnumMemberError;
92 fn try_from(
93 value: u32,
94 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
95 match value {
96 0 => Ok(Self::Start),
97 1 => Ok(Self::Current),
98 2 => Ok(Self::End),
99
100 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
101 }
102 }
103 }
104
105 unsafe impl<___E> ::fidl_next::Encode<crate::wire::SeekOrigin, ___E> for SeekOrigin
106 where
107 ___E: ?Sized,
108 {
109 #[inline]
110 fn encode(
111 self,
112 encoder: &mut ___E,
113 out: &mut ::core::mem::MaybeUninit<crate::wire::SeekOrigin>,
114 _: (),
115 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
116 ::fidl_next::Encode::encode(&self, encoder, out, ())
117 }
118 }
119
120 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::SeekOrigin, ___E> for &'a SeekOrigin
121 where
122 ___E: ?Sized,
123 {
124 #[inline]
125 fn encode(
126 self,
127 encoder: &mut ___E,
128 out: &mut ::core::mem::MaybeUninit<crate::wire::SeekOrigin>,
129 _: (),
130 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
131 ::fidl_next::munge!(let crate::wire::SeekOrigin { value } = out);
132 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
133 SeekOrigin::Start => 0,
134
135 SeekOrigin::Current => 1,
136
137 SeekOrigin::End => 2,
138 }));
139
140 Ok(())
141 }
142 }
143
144 impl ::core::convert::From<crate::wire::SeekOrigin> for SeekOrigin {
145 fn from(wire: crate::wire::SeekOrigin) -> Self {
146 match u32::from(wire.value) {
147 0 => Self::Start,
148
149 1 => Self::Current,
150
151 2 => Self::End,
152
153 _ => unsafe { ::core::hint::unreachable_unchecked() },
154 }
155 }
156 }
157
158 impl ::fidl_next::FromWire<crate::wire::SeekOrigin> for SeekOrigin {
159 #[inline]
160 fn from_wire(wire: crate::wire::SeekOrigin) -> Self {
161 Self::from(wire)
162 }
163 }
164
165 impl ::fidl_next::FromWireRef<crate::wire::SeekOrigin> for SeekOrigin {
166 #[inline]
167 fn from_wire_ref(wire: &crate::wire::SeekOrigin) -> Self {
168 Self::from(*wire)
169 }
170 }
171
172 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
173 pub struct AdvisoryLockRange {
174 pub origin: crate::natural::SeekOrigin,
175
176 pub offset: i64,
177
178 pub length: i64,
179 }
180
181 unsafe impl<___E> ::fidl_next::Encode<crate::wire::AdvisoryLockRange, ___E> for AdvisoryLockRange
182 where
183 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
184 {
185 #[inline]
186 fn encode(
187 self,
188 encoder_: &mut ___E,
189 out_: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockRange>,
190 _: (),
191 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
192 ::fidl_next::munge! {
193 let crate::wire::AdvisoryLockRange {
194 origin,
195 offset,
196 length,
197
198 } = out_;
199 }
200
201 ::fidl_next::Encode::encode(self.origin, encoder_, origin, ())?;
202
203 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(origin.as_mut_ptr()) };
204
205 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
206
207 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
208
209 ::fidl_next::Encode::encode(self.length, encoder_, length, ())?;
210
211 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(length.as_mut_ptr()) };
212
213 Ok(())
214 }
215 }
216
217 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::AdvisoryLockRange, ___E>
218 for &'a AdvisoryLockRange
219 where
220 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
221 {
222 #[inline]
223 fn encode(
224 self,
225 encoder_: &mut ___E,
226 out_: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockRange>,
227 _: (),
228 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
229 ::fidl_next::munge! {
230 let crate::wire::AdvisoryLockRange {
231 origin,
232 offset,
233 length,
234
235 } = out_;
236 }
237
238 ::fidl_next::Encode::encode(&self.origin, encoder_, origin, ())?;
239
240 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(origin.as_mut_ptr()) };
241
242 ::fidl_next::Encode::encode(&self.offset, encoder_, offset, ())?;
243
244 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
245
246 ::fidl_next::Encode::encode(&self.length, encoder_, length, ())?;
247
248 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(length.as_mut_ptr()) };
249
250 Ok(())
251 }
252 }
253
254 unsafe impl<___E>
255 ::fidl_next::EncodeOption<
256 ::fidl_next::wire::Box<'static, crate::wire::AdvisoryLockRange>,
257 ___E,
258 > for AdvisoryLockRange
259 where
260 ___E: ::fidl_next::Encoder + ?Sized,
261 AdvisoryLockRange: ::fidl_next::Encode<crate::wire::AdvisoryLockRange, ___E>,
262 {
263 #[inline]
264 fn encode_option(
265 this: ::core::option::Option<Self>,
266 encoder: &mut ___E,
267 out: &mut ::core::mem::MaybeUninit<
268 ::fidl_next::wire::Box<'static, crate::wire::AdvisoryLockRange>,
269 >,
270 _: (),
271 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
272 if let Some(inner) = this {
273 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
274 ::fidl_next::wire::Box::encode_present(out);
275 } else {
276 ::fidl_next::wire::Box::encode_absent(out);
277 }
278
279 Ok(())
280 }
281 }
282
283 unsafe impl<'a, ___E>
284 ::fidl_next::EncodeOption<
285 ::fidl_next::wire::Box<'static, crate::wire::AdvisoryLockRange>,
286 ___E,
287 > for &'a AdvisoryLockRange
288 where
289 ___E: ::fidl_next::Encoder + ?Sized,
290 &'a AdvisoryLockRange: ::fidl_next::Encode<crate::wire::AdvisoryLockRange, ___E>,
291 {
292 #[inline]
293 fn encode_option(
294 this: ::core::option::Option<Self>,
295 encoder: &mut ___E,
296 out: &mut ::core::mem::MaybeUninit<
297 ::fidl_next::wire::Box<'static, crate::wire::AdvisoryLockRange>,
298 >,
299 _: (),
300 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
301 if let Some(inner) = this {
302 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
303 ::fidl_next::wire::Box::encode_present(out);
304 } else {
305 ::fidl_next::wire::Box::encode_absent(out);
306 }
307
308 Ok(())
309 }
310 }
311
312 impl ::fidl_next::FromWire<crate::wire::AdvisoryLockRange> for AdvisoryLockRange {
313 #[inline]
314 fn from_wire(wire: crate::wire::AdvisoryLockRange) -> Self {
315 Self {
316 origin: ::fidl_next::FromWire::from_wire(wire.origin),
317
318 offset: ::fidl_next::FromWire::from_wire(wire.offset),
319
320 length: ::fidl_next::FromWire::from_wire(wire.length),
321 }
322 }
323 }
324
325 impl ::fidl_next::FromWireRef<crate::wire::AdvisoryLockRange> for AdvisoryLockRange {
326 #[inline]
327 fn from_wire_ref(wire: &crate::wire::AdvisoryLockRange) -> Self {
328 Self {
329 origin: ::fidl_next::FromWireRef::from_wire_ref(&wire.origin),
330
331 offset: ::fidl_next::FromWireRef::from_wire_ref(&wire.offset),
332
333 length: ::fidl_next::FromWireRef::from_wire_ref(&wire.length),
334 }
335 }
336 }
337
338 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
339 #[repr(u32)]
340 pub enum AdvisoryLockType {
341 Read = 1,
342 Write = 2,
343 Unlock = 3,
344 }
345 impl ::core::convert::TryFrom<u32> for AdvisoryLockType {
346 type Error = ::fidl_next::UnknownStrictEnumMemberError;
347 fn try_from(
348 value: u32,
349 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
350 match value {
351 1 => Ok(Self::Read),
352 2 => Ok(Self::Write),
353 3 => Ok(Self::Unlock),
354
355 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
356 }
357 }
358 }
359
360 unsafe impl<___E> ::fidl_next::Encode<crate::wire::AdvisoryLockType, ___E> for AdvisoryLockType
361 where
362 ___E: ?Sized,
363 {
364 #[inline]
365 fn encode(
366 self,
367 encoder: &mut ___E,
368 out: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockType>,
369 _: (),
370 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
371 ::fidl_next::Encode::encode(&self, encoder, out, ())
372 }
373 }
374
375 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::AdvisoryLockType, ___E>
376 for &'a AdvisoryLockType
377 where
378 ___E: ?Sized,
379 {
380 #[inline]
381 fn encode(
382 self,
383 encoder: &mut ___E,
384 out: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockType>,
385 _: (),
386 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
387 ::fidl_next::munge!(let crate::wire::AdvisoryLockType { value } = out);
388 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
389 AdvisoryLockType::Read => 1,
390
391 AdvisoryLockType::Write => 2,
392
393 AdvisoryLockType::Unlock => 3,
394 }));
395
396 Ok(())
397 }
398 }
399
400 impl ::core::convert::From<crate::wire::AdvisoryLockType> for AdvisoryLockType {
401 fn from(wire: crate::wire::AdvisoryLockType) -> Self {
402 match u32::from(wire.value) {
403 1 => Self::Read,
404
405 2 => Self::Write,
406
407 3 => Self::Unlock,
408
409 _ => unsafe { ::core::hint::unreachable_unchecked() },
410 }
411 }
412 }
413
414 impl ::fidl_next::FromWire<crate::wire::AdvisoryLockType> for AdvisoryLockType {
415 #[inline]
416 fn from_wire(wire: crate::wire::AdvisoryLockType) -> Self {
417 Self::from(wire)
418 }
419 }
420
421 impl ::fidl_next::FromWireRef<crate::wire::AdvisoryLockType> for AdvisoryLockType {
422 #[inline]
423 fn from_wire_ref(wire: &crate::wire::AdvisoryLockType) -> Self {
424 Self::from(*wire)
425 }
426 }
427
428 #[derive(Debug, Default, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
429 pub struct AdvisoryLockRequest {
430 pub type_: ::core::option::Option<crate::natural::AdvisoryLockType>,
431
432 pub range: ::core::option::Option<crate::natural::AdvisoryLockRange>,
433
434 pub wait: ::core::option::Option<bool>,
435 }
436
437 impl AdvisoryLockRequest {
438 fn __max_ordinal(&self) -> usize {
439 if self.wait.is_some() {
440 return 3;
441 }
442
443 if self.range.is_some() {
444 return 2;
445 }
446
447 if self.type_.is_some() {
448 return 1;
449 }
450
451 0
452 }
453 }
454
455 unsafe impl<___E> ::fidl_next::Encode<crate::wire::AdvisoryLockRequest<'static>, ___E>
456 for AdvisoryLockRequest
457 where
458 ___E: ::fidl_next::Encoder + ?Sized,
459 {
460 #[inline]
461 fn encode(
462 mut self,
463 encoder: &mut ___E,
464 out: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockRequest<'static>>,
465 _: (),
466 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
467 ::fidl_next::munge!(let crate::wire::AdvisoryLockRequest { table } = out);
468
469 let max_ord = self.__max_ordinal();
470
471 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
472 ::fidl_next::Wire::zero_padding(&mut out);
473
474 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
475 ::fidl_next::wire::Envelope,
476 >(encoder, max_ord);
477
478 for i in 1..=max_ord {
479 match i {
480 3 => {
481 if let Some(value) = self.wait.take() {
482 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
483 value,
484 preallocated.encoder,
485 &mut out,
486 (),
487 )?;
488 } else {
489 ::fidl_next::wire::Envelope::encode_zero(&mut out)
490 }
491 }
492
493 2 => {
494 if let Some(value) = self.range.take() {
495 ::fidl_next::wire::Envelope::encode_value::<
496 crate::wire::AdvisoryLockRange,
497 ___E,
498 >(
499 value, preallocated.encoder, &mut out, ()
500 )?;
501 } else {
502 ::fidl_next::wire::Envelope::encode_zero(&mut out)
503 }
504 }
505
506 1 => {
507 if let Some(value) = self.type_.take() {
508 ::fidl_next::wire::Envelope::encode_value::<
509 crate::wire::AdvisoryLockType,
510 ___E,
511 >(
512 value, preallocated.encoder, &mut out, ()
513 )?;
514 } else {
515 ::fidl_next::wire::Envelope::encode_zero(&mut out)
516 }
517 }
518
519 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
520 }
521 unsafe {
522 preallocated.write_next(out.assume_init_ref());
523 }
524 }
525
526 ::fidl_next::wire::Table::encode_len(table, max_ord);
527
528 Ok(())
529 }
530 }
531
532 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::AdvisoryLockRequest<'static>, ___E>
533 for &'a AdvisoryLockRequest
534 where
535 ___E: ::fidl_next::Encoder + ?Sized,
536 {
537 #[inline]
538 fn encode(
539 self,
540 encoder: &mut ___E,
541 out: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockRequest<'static>>,
542 _: (),
543 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
544 ::fidl_next::munge!(let crate::wire::AdvisoryLockRequest { table } = out);
545
546 let max_ord = self.__max_ordinal();
547
548 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
549 ::fidl_next::Wire::zero_padding(&mut out);
550
551 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
552 ::fidl_next::wire::Envelope,
553 >(encoder, max_ord);
554
555 for i in 1..=max_ord {
556 match i {
557 3 => {
558 if let Some(value) = &self.wait {
559 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
560 value,
561 preallocated.encoder,
562 &mut out,
563 (),
564 )?;
565 } else {
566 ::fidl_next::wire::Envelope::encode_zero(&mut out)
567 }
568 }
569
570 2 => {
571 if let Some(value) = &self.range {
572 ::fidl_next::wire::Envelope::encode_value::<
573 crate::wire::AdvisoryLockRange,
574 ___E,
575 >(
576 value, preallocated.encoder, &mut out, ()
577 )?;
578 } else {
579 ::fidl_next::wire::Envelope::encode_zero(&mut out)
580 }
581 }
582
583 1 => {
584 if let Some(value) = &self.type_ {
585 ::fidl_next::wire::Envelope::encode_value::<
586 crate::wire::AdvisoryLockType,
587 ___E,
588 >(
589 value, preallocated.encoder, &mut out, ()
590 )?;
591 } else {
592 ::fidl_next::wire::Envelope::encode_zero(&mut out)
593 }
594 }
595
596 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
597 }
598 unsafe {
599 preallocated.write_next(out.assume_init_ref());
600 }
601 }
602
603 ::fidl_next::wire::Table::encode_len(table, max_ord);
604
605 Ok(())
606 }
607 }
608
609 impl<'de> ::fidl_next::FromWire<crate::wire::AdvisoryLockRequest<'de>> for AdvisoryLockRequest {
610 #[inline]
611 fn from_wire(wire_: crate::wire::AdvisoryLockRequest<'de>) -> Self {
612 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
613
614 let type_ = wire_.table.get(1);
615
616 let range = wire_.table.get(2);
617
618 let wait = wire_.table.get(3);
619
620 Self {
621 type_: type_.map(|envelope| {
622 ::fidl_next::FromWire::from_wire(unsafe {
623 envelope.read_unchecked::<crate::wire::AdvisoryLockType>()
624 })
625 }),
626
627 range: range.map(|envelope| {
628 ::fidl_next::FromWire::from_wire(unsafe {
629 envelope.read_unchecked::<crate::wire::AdvisoryLockRange>()
630 })
631 }),
632
633 wait: wait.map(|envelope| {
634 ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<bool>() })
635 }),
636 }
637 }
638 }
639
640 impl<'de> ::fidl_next::FromWireRef<crate::wire::AdvisoryLockRequest<'de>> for AdvisoryLockRequest {
641 #[inline]
642 fn from_wire_ref(wire: &crate::wire::AdvisoryLockRequest<'de>) -> Self {
643 Self {
644 type_: wire.table.get(1).map(|envelope| {
645 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
646 envelope.deref_unchecked::<crate::wire::AdvisoryLockType>()
647 })
648 }),
649
650 range: wire.table.get(2).map(|envelope| {
651 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
652 envelope.deref_unchecked::<crate::wire::AdvisoryLockRange>()
653 })
654 }),
655
656 wait: wire.table.get(3).map(|envelope| {
657 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
658 envelope.deref_unchecked::<bool>()
659 })
660 }),
661 }
662 }
663 }
664
665 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
666 pub struct AdvisoryLockingAdvisoryLockRequest {
667 pub request: crate::natural::AdvisoryLockRequest,
668 }
669
670 unsafe impl<___E>
671 ::fidl_next::Encode<crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>, ___E>
672 for AdvisoryLockingAdvisoryLockRequest
673 where
674 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
675 ___E: ::fidl_next::Encoder,
676 {
677 #[inline]
678 fn encode(
679 self,
680 encoder_: &mut ___E,
681 out_: &mut ::core::mem::MaybeUninit<
682 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
683 >,
684 _: (),
685 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
686 ::fidl_next::munge! {
687 let crate::wire::AdvisoryLockingAdvisoryLockRequest {
688 request,
689
690 } = out_;
691 }
692
693 ::fidl_next::Encode::encode(self.request, encoder_, request, ())?;
694
695 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(request.as_mut_ptr()) };
696
697 Ok(())
698 }
699 }
700
701 unsafe impl<'a, ___E>
702 ::fidl_next::Encode<crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>, ___E>
703 for &'a AdvisoryLockingAdvisoryLockRequest
704 where
705 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
706 ___E: ::fidl_next::Encoder,
707 {
708 #[inline]
709 fn encode(
710 self,
711 encoder_: &mut ___E,
712 out_: &mut ::core::mem::MaybeUninit<
713 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
714 >,
715 _: (),
716 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
717 ::fidl_next::munge! {
718 let crate::wire::AdvisoryLockingAdvisoryLockRequest {
719 request,
720
721 } = out_;
722 }
723
724 ::fidl_next::Encode::encode(&self.request, encoder_, request, ())?;
725
726 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(request.as_mut_ptr()) };
727
728 Ok(())
729 }
730 }
731
732 unsafe impl<___E>
733 ::fidl_next::EncodeOption<
734 ::fidl_next::wire::Box<
735 'static,
736 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
737 >,
738 ___E,
739 > for AdvisoryLockingAdvisoryLockRequest
740 where
741 ___E: ::fidl_next::Encoder + ?Sized,
742 AdvisoryLockingAdvisoryLockRequest:
743 ::fidl_next::Encode<crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>, ___E>,
744 {
745 #[inline]
746 fn encode_option(
747 this: ::core::option::Option<Self>,
748 encoder: &mut ___E,
749 out: &mut ::core::mem::MaybeUninit<
750 ::fidl_next::wire::Box<
751 'static,
752 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
753 >,
754 >,
755 _: (),
756 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
757 if let Some(inner) = this {
758 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
759 ::fidl_next::wire::Box::encode_present(out);
760 } else {
761 ::fidl_next::wire::Box::encode_absent(out);
762 }
763
764 Ok(())
765 }
766 }
767
768 unsafe impl<'a, ___E>
769 ::fidl_next::EncodeOption<
770 ::fidl_next::wire::Box<
771 'static,
772 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
773 >,
774 ___E,
775 > for &'a AdvisoryLockingAdvisoryLockRequest
776 where
777 ___E: ::fidl_next::Encoder + ?Sized,
778 &'a AdvisoryLockingAdvisoryLockRequest:
779 ::fidl_next::Encode<crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>, ___E>,
780 {
781 #[inline]
782 fn encode_option(
783 this: ::core::option::Option<Self>,
784 encoder: &mut ___E,
785 out: &mut ::core::mem::MaybeUninit<
786 ::fidl_next::wire::Box<
787 'static,
788 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
789 >,
790 >,
791 _: (),
792 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
793 if let Some(inner) = this {
794 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
795 ::fidl_next::wire::Box::encode_present(out);
796 } else {
797 ::fidl_next::wire::Box::encode_absent(out);
798 }
799
800 Ok(())
801 }
802 }
803
804 impl<'de> ::fidl_next::FromWire<crate::wire::AdvisoryLockingAdvisoryLockRequest<'de>>
805 for AdvisoryLockingAdvisoryLockRequest
806 {
807 #[inline]
808 fn from_wire(wire: crate::wire::AdvisoryLockingAdvisoryLockRequest<'de>) -> Self {
809 Self { request: ::fidl_next::FromWire::from_wire(wire.request) }
810 }
811 }
812
813 impl<'de> ::fidl_next::FromWireRef<crate::wire::AdvisoryLockingAdvisoryLockRequest<'de>>
814 for AdvisoryLockingAdvisoryLockRequest
815 {
816 #[inline]
817 fn from_wire_ref(wire: &crate::wire::AdvisoryLockingAdvisoryLockRequest<'de>) -> Self {
818 Self { request: ::fidl_next::FromWireRef::from_wire_ref(&wire.request) }
819 }
820 }
821
822 pub type AdvisoryLockingAdvisoryLockResponse = ();
823
824 ::fidl_next::bitflags::bitflags! {
825 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct AllocateMode: u32 {
826 const KEEP_SIZE = 1;
827 const UNSHARE_RANGE = 2;
828 const PUNCH_HOLE = 4;
829 const COLLAPSE_RANGE = 8;
830 const ZERO_RANGE = 16;
831 const INSERT_RANGE = 32;
832 const _ = !0;
833 }
834 }
835
836 unsafe impl<___E> ::fidl_next::Encode<crate::wire::AllocateMode, ___E> for AllocateMode
837 where
838 ___E: ?Sized,
839 {
840 #[inline]
841 fn encode(
842 self,
843 encoder: &mut ___E,
844 out: &mut ::core::mem::MaybeUninit<crate::wire::AllocateMode>,
845 _: (),
846 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
847 ::fidl_next::Encode::encode(&self, encoder, out, ())
848 }
849 }
850
851 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::AllocateMode, ___E> for &'a AllocateMode
852 where
853 ___E: ?Sized,
854 {
855 #[inline]
856 fn encode(
857 self,
858 _: &mut ___E,
859 out: &mut ::core::mem::MaybeUninit<crate::wire::AllocateMode>,
860 _: (),
861 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
862 ::fidl_next::munge!(let crate::wire::AllocateMode { value } = out);
863
864 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
865 Ok(())
866 }
867 }
868
869 impl ::core::convert::From<crate::wire::AllocateMode> for AllocateMode {
870 fn from(wire: crate::wire::AllocateMode) -> Self {
871 Self::from_bits_retain(u32::from(wire.value))
872 }
873 }
874
875 impl ::fidl_next::FromWire<crate::wire::AllocateMode> for AllocateMode {
876 #[inline]
877 fn from_wire(wire: crate::wire::AllocateMode) -> Self {
878 Self::from(wire)
879 }
880 }
881
882 impl ::fidl_next::FromWireRef<crate::wire::AllocateMode> for AllocateMode {
883 #[inline]
884 fn from_wire_ref(wire: &crate::wire::AllocateMode) -> Self {
885 Self::from(*wire)
886 }
887 }
888
889 #[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"]
890 pub type Rights = crate::natural::Operations;
891
892 #[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"]
893 pub type Id = u64;
894
895 ::fidl_next::bitflags::bitflags! {
896 #[doc = " DEPRECATED - Use Flags instead.\n"]#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct OpenFlags: u32 {
897 #[doc = " Can read from target object.\n"]const RIGHT_READABLE = 1;
898 #[doc = " Can write to target object.\n"]const RIGHT_WRITABLE = 2;
899 #[doc = " Connection can map target object executable.\n"]const RIGHT_EXECUTABLE = 8;
900 #[doc = " Create the object if it doesn\'t exist.\n"]const CREATE = 65536;
901 #[doc = " (with Create) Fail if the object already exists.\n"]const CREATE_IF_ABSENT = 131072;
902 #[doc = " Truncate the object before usage.\n"]const TRUNCATE = 262144;
903 #[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;
904 #[doc = " Seek to the end of the object before all writes.\n"]const APPEND = 1048576;
905 #[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;
906 #[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;
907 #[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;
908 #[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;
909 #[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;
910 #[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;
911 #[doc = " Open the target object as a block device.\n"]const BLOCK_DEVICE = 16777216;
912
913 }
914 }
915
916 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OpenFlags, ___E> for OpenFlags
917 where
918 ___E: ?Sized,
919 {
920 #[inline]
921 fn encode(
922 self,
923 encoder: &mut ___E,
924 out: &mut ::core::mem::MaybeUninit<crate::wire::OpenFlags>,
925 _: (),
926 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
927 ::fidl_next::Encode::encode(&self, encoder, out, ())
928 }
929 }
930
931 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OpenFlags, ___E> for &'a OpenFlags
932 where
933 ___E: ?Sized,
934 {
935 #[inline]
936 fn encode(
937 self,
938 _: &mut ___E,
939 out: &mut ::core::mem::MaybeUninit<crate::wire::OpenFlags>,
940 _: (),
941 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
942 ::fidl_next::munge!(let crate::wire::OpenFlags { value } = out);
943
944 if ::fidl_next::bitflags::Flags::contains_unknown_bits(self) {
945 return Err(::fidl_next::EncodeError::InvalidStrictBits);
946 }
947
948 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
949 Ok(())
950 }
951 }
952
953 impl ::core::convert::From<crate::wire::OpenFlags> for OpenFlags {
954 fn from(wire: crate::wire::OpenFlags) -> Self {
955 Self::from_bits_retain(u32::from(wire.value))
956 }
957 }
958
959 impl ::fidl_next::FromWire<crate::wire::OpenFlags> for OpenFlags {
960 #[inline]
961 fn from_wire(wire: crate::wire::OpenFlags) -> Self {
962 Self::from(wire)
963 }
964 }
965
966 impl ::fidl_next::FromWireRef<crate::wire::OpenFlags> for OpenFlags {
967 #[inline]
968 fn from_wire_ref(wire: &crate::wire::OpenFlags) -> Self {
969 Self::from(*wire)
970 }
971 }
972
973 #[doc = " NodeAttributes defines generic information about a filesystem node.\n"]
974 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
975 pub struct NodeAttributes {
976 pub mode: u32,
977
978 pub id: u64,
979
980 pub content_size: u64,
981
982 pub storage_size: u64,
983
984 pub link_count: u64,
985
986 pub creation_time: u64,
987
988 pub modification_time: u64,
989 }
990
991 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeAttributes, ___E> for NodeAttributes
992 where
993 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
994 {
995 #[inline]
996 fn encode(
997 self,
998 encoder_: &mut ___E,
999 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributes>,
1000 _: (),
1001 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1002 ::fidl_next::munge! {
1003 let crate::wire::NodeAttributes {
1004 mode,
1005 id,
1006 content_size,
1007 storage_size,
1008 link_count,
1009 creation_time,
1010 modification_time,
1011
1012 } = out_;
1013 }
1014
1015 ::fidl_next::Encode::encode(self.mode, encoder_, mode, ())?;
1016
1017 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(mode.as_mut_ptr()) };
1018
1019 ::fidl_next::Encode::encode(self.id, encoder_, id, ())?;
1020
1021 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(id.as_mut_ptr()) };
1022
1023 ::fidl_next::Encode::encode(self.content_size, encoder_, content_size, ())?;
1024
1025 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(content_size.as_mut_ptr()) };
1026
1027 ::fidl_next::Encode::encode(self.storage_size, encoder_, storage_size, ())?;
1028
1029 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(storage_size.as_mut_ptr()) };
1030
1031 ::fidl_next::Encode::encode(self.link_count, encoder_, link_count, ())?;
1032
1033 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(link_count.as_mut_ptr()) };
1034
1035 ::fidl_next::Encode::encode(self.creation_time, encoder_, creation_time, ())?;
1036
1037 let mut _field =
1038 unsafe { ::fidl_next::Slot::new_unchecked(creation_time.as_mut_ptr()) };
1039
1040 ::fidl_next::Encode::encode(self.modification_time, encoder_, modification_time, ())?;
1041
1042 let mut _field =
1043 unsafe { ::fidl_next::Slot::new_unchecked(modification_time.as_mut_ptr()) };
1044
1045 Ok(())
1046 }
1047 }
1048
1049 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeAttributes, ___E> for &'a NodeAttributes
1050 where
1051 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1052 {
1053 #[inline]
1054 fn encode(
1055 self,
1056 encoder_: &mut ___E,
1057 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributes>,
1058 _: (),
1059 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1060 ::fidl_next::munge! {
1061 let crate::wire::NodeAttributes {
1062 mode,
1063 id,
1064 content_size,
1065 storage_size,
1066 link_count,
1067 creation_time,
1068 modification_time,
1069
1070 } = out_;
1071 }
1072
1073 ::fidl_next::Encode::encode(&self.mode, encoder_, mode, ())?;
1074
1075 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(mode.as_mut_ptr()) };
1076
1077 ::fidl_next::Encode::encode(&self.id, encoder_, id, ())?;
1078
1079 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(id.as_mut_ptr()) };
1080
1081 ::fidl_next::Encode::encode(&self.content_size, encoder_, content_size, ())?;
1082
1083 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(content_size.as_mut_ptr()) };
1084
1085 ::fidl_next::Encode::encode(&self.storage_size, encoder_, storage_size, ())?;
1086
1087 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(storage_size.as_mut_ptr()) };
1088
1089 ::fidl_next::Encode::encode(&self.link_count, encoder_, link_count, ())?;
1090
1091 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(link_count.as_mut_ptr()) };
1092
1093 ::fidl_next::Encode::encode(&self.creation_time, encoder_, creation_time, ())?;
1094
1095 let mut _field =
1096 unsafe { ::fidl_next::Slot::new_unchecked(creation_time.as_mut_ptr()) };
1097
1098 ::fidl_next::Encode::encode(&self.modification_time, encoder_, modification_time, ())?;
1099
1100 let mut _field =
1101 unsafe { ::fidl_next::Slot::new_unchecked(modification_time.as_mut_ptr()) };
1102
1103 Ok(())
1104 }
1105 }
1106
1107 unsafe impl<___E>
1108 ::fidl_next::EncodeOption<
1109 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes>,
1110 ___E,
1111 > for NodeAttributes
1112 where
1113 ___E: ::fidl_next::Encoder + ?Sized,
1114 NodeAttributes: ::fidl_next::Encode<crate::wire::NodeAttributes, ___E>,
1115 {
1116 #[inline]
1117 fn encode_option(
1118 this: ::core::option::Option<Self>,
1119 encoder: &mut ___E,
1120 out: &mut ::core::mem::MaybeUninit<
1121 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes>,
1122 >,
1123 _: (),
1124 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1125 if let Some(inner) = this {
1126 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1127 ::fidl_next::wire::Box::encode_present(out);
1128 } else {
1129 ::fidl_next::wire::Box::encode_absent(out);
1130 }
1131
1132 Ok(())
1133 }
1134 }
1135
1136 unsafe impl<'a, ___E>
1137 ::fidl_next::EncodeOption<
1138 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes>,
1139 ___E,
1140 > for &'a NodeAttributes
1141 where
1142 ___E: ::fidl_next::Encoder + ?Sized,
1143 &'a NodeAttributes: ::fidl_next::Encode<crate::wire::NodeAttributes, ___E>,
1144 {
1145 #[inline]
1146 fn encode_option(
1147 this: ::core::option::Option<Self>,
1148 encoder: &mut ___E,
1149 out: &mut ::core::mem::MaybeUninit<
1150 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes>,
1151 >,
1152 _: (),
1153 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1154 if let Some(inner) = this {
1155 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1156 ::fidl_next::wire::Box::encode_present(out);
1157 } else {
1158 ::fidl_next::wire::Box::encode_absent(out);
1159 }
1160
1161 Ok(())
1162 }
1163 }
1164
1165 impl ::fidl_next::FromWire<crate::wire::NodeAttributes> for NodeAttributes {
1166 #[inline]
1167 fn from_wire(wire: crate::wire::NodeAttributes) -> Self {
1168 Self {
1169 mode: ::fidl_next::FromWire::from_wire(wire.mode),
1170
1171 id: ::fidl_next::FromWire::from_wire(wire.id),
1172
1173 content_size: ::fidl_next::FromWire::from_wire(wire.content_size),
1174
1175 storage_size: ::fidl_next::FromWire::from_wire(wire.storage_size),
1176
1177 link_count: ::fidl_next::FromWire::from_wire(wire.link_count),
1178
1179 creation_time: ::fidl_next::FromWire::from_wire(wire.creation_time),
1180
1181 modification_time: ::fidl_next::FromWire::from_wire(wire.modification_time),
1182 }
1183 }
1184 }
1185
1186 impl ::fidl_next::FromWireRef<crate::wire::NodeAttributes> for NodeAttributes {
1187 #[inline]
1188 fn from_wire_ref(wire: &crate::wire::NodeAttributes) -> Self {
1189 Self {
1190 mode: ::fidl_next::FromWireRef::from_wire_ref(&wire.mode),
1191
1192 id: ::fidl_next::FromWireRef::from_wire_ref(&wire.id),
1193
1194 content_size: ::fidl_next::FromWireRef::from_wire_ref(&wire.content_size),
1195
1196 storage_size: ::fidl_next::FromWireRef::from_wire_ref(&wire.storage_size),
1197
1198 link_count: ::fidl_next::FromWireRef::from_wire_ref(&wire.link_count),
1199
1200 creation_time: ::fidl_next::FromWireRef::from_wire_ref(&wire.creation_time),
1201
1202 modification_time: ::fidl_next::FromWireRef::from_wire_ref(&wire.modification_time),
1203 }
1204 }
1205 }
1206
1207 ::fidl_next::bitflags::bitflags! {
1208 #[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 {
1209 const CREATION_TIME = 1;
1210 const MODIFICATION_TIME = 2;
1211
1212 }
1213 }
1214
1215 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeAttributeFlags, ___E> for NodeAttributeFlags
1216 where
1217 ___E: ?Sized,
1218 {
1219 #[inline]
1220 fn encode(
1221 self,
1222 encoder: &mut ___E,
1223 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributeFlags>,
1224 _: (),
1225 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1226 ::fidl_next::Encode::encode(&self, encoder, out, ())
1227 }
1228 }
1229
1230 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeAttributeFlags, ___E>
1231 for &'a NodeAttributeFlags
1232 where
1233 ___E: ?Sized,
1234 {
1235 #[inline]
1236 fn encode(
1237 self,
1238 _: &mut ___E,
1239 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributeFlags>,
1240 _: (),
1241 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1242 ::fidl_next::munge!(let crate::wire::NodeAttributeFlags { value } = out);
1243
1244 if ::fidl_next::bitflags::Flags::contains_unknown_bits(self) {
1245 return Err(::fidl_next::EncodeError::InvalidStrictBits);
1246 }
1247
1248 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
1249 Ok(())
1250 }
1251 }
1252
1253 impl ::core::convert::From<crate::wire::NodeAttributeFlags> for NodeAttributeFlags {
1254 fn from(wire: crate::wire::NodeAttributeFlags) -> Self {
1255 Self::from_bits_retain(u32::from(wire.value))
1256 }
1257 }
1258
1259 impl ::fidl_next::FromWire<crate::wire::NodeAttributeFlags> for NodeAttributeFlags {
1260 #[inline]
1261 fn from_wire(wire: crate::wire::NodeAttributeFlags) -> Self {
1262 Self::from(wire)
1263 }
1264 }
1265
1266 impl ::fidl_next::FromWireRef<crate::wire::NodeAttributeFlags> for NodeAttributeFlags {
1267 #[inline]
1268 fn from_wire_ref(wire: &crate::wire::NodeAttributeFlags) -> Self {
1269 Self::from(*wire)
1270 }
1271 }
1272
1273 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1274 pub struct NodeQueryFilesystemResponse {
1275 pub s: ::fidl_next::fuchsia::zx::Status,
1276
1277 pub info: ::core::option::Option<::std::boxed::Box<crate::natural::FilesystemInfo>>,
1278 }
1279
1280 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeQueryFilesystemResponse<'static>, ___E>
1281 for NodeQueryFilesystemResponse
1282 where
1283 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1284 ___E: ::fidl_next::Encoder,
1285 {
1286 #[inline]
1287 fn encode(
1288 self,
1289 encoder_: &mut ___E,
1290 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeQueryFilesystemResponse<'static>>,
1291 _: (),
1292 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1293 ::fidl_next::munge! {
1294 let crate::wire::NodeQueryFilesystemResponse {
1295 s,
1296 info,
1297
1298 } = out_;
1299 }
1300
1301 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
1302
1303 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
1304
1305 ::fidl_next::Encode::encode(self.info, encoder_, info, ())?;
1306
1307 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(info.as_mut_ptr()) };
1308
1309 Ok(())
1310 }
1311 }
1312
1313 unsafe impl<'a, ___E>
1314 ::fidl_next::Encode<crate::wire::NodeQueryFilesystemResponse<'static>, ___E>
1315 for &'a NodeQueryFilesystemResponse
1316 where
1317 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1318 ___E: ::fidl_next::Encoder,
1319 {
1320 #[inline]
1321 fn encode(
1322 self,
1323 encoder_: &mut ___E,
1324 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeQueryFilesystemResponse<'static>>,
1325 _: (),
1326 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1327 ::fidl_next::munge! {
1328 let crate::wire::NodeQueryFilesystemResponse {
1329 s,
1330 info,
1331
1332 } = out_;
1333 }
1334
1335 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
1336
1337 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
1338
1339 ::fidl_next::Encode::encode(&self.info, encoder_, info, ())?;
1340
1341 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(info.as_mut_ptr()) };
1342
1343 Ok(())
1344 }
1345 }
1346
1347 unsafe impl<___E>
1348 ::fidl_next::EncodeOption<
1349 ::fidl_next::wire::Box<'static, crate::wire::NodeQueryFilesystemResponse<'static>>,
1350 ___E,
1351 > for NodeQueryFilesystemResponse
1352 where
1353 ___E: ::fidl_next::Encoder + ?Sized,
1354 NodeQueryFilesystemResponse:
1355 ::fidl_next::Encode<crate::wire::NodeQueryFilesystemResponse<'static>, ___E>,
1356 {
1357 #[inline]
1358 fn encode_option(
1359 this: ::core::option::Option<Self>,
1360 encoder: &mut ___E,
1361 out: &mut ::core::mem::MaybeUninit<
1362 ::fidl_next::wire::Box<'static, crate::wire::NodeQueryFilesystemResponse<'static>>,
1363 >,
1364 _: (),
1365 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1366 if let Some(inner) = this {
1367 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1368 ::fidl_next::wire::Box::encode_present(out);
1369 } else {
1370 ::fidl_next::wire::Box::encode_absent(out);
1371 }
1372
1373 Ok(())
1374 }
1375 }
1376
1377 unsafe impl<'a, ___E>
1378 ::fidl_next::EncodeOption<
1379 ::fidl_next::wire::Box<'static, crate::wire::NodeQueryFilesystemResponse<'static>>,
1380 ___E,
1381 > for &'a NodeQueryFilesystemResponse
1382 where
1383 ___E: ::fidl_next::Encoder + ?Sized,
1384 &'a NodeQueryFilesystemResponse:
1385 ::fidl_next::Encode<crate::wire::NodeQueryFilesystemResponse<'static>, ___E>,
1386 {
1387 #[inline]
1388 fn encode_option(
1389 this: ::core::option::Option<Self>,
1390 encoder: &mut ___E,
1391 out: &mut ::core::mem::MaybeUninit<
1392 ::fidl_next::wire::Box<'static, crate::wire::NodeQueryFilesystemResponse<'static>>,
1393 >,
1394 _: (),
1395 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1396 if let Some(inner) = this {
1397 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1398 ::fidl_next::wire::Box::encode_present(out);
1399 } else {
1400 ::fidl_next::wire::Box::encode_absent(out);
1401 }
1402
1403 Ok(())
1404 }
1405 }
1406
1407 impl<'de> ::fidl_next::FromWire<crate::wire::NodeQueryFilesystemResponse<'de>>
1408 for NodeQueryFilesystemResponse
1409 {
1410 #[inline]
1411 fn from_wire(wire: crate::wire::NodeQueryFilesystemResponse<'de>) -> Self {
1412 Self {
1413 s: ::fidl_next::FromWire::from_wire(wire.s),
1414
1415 info: ::fidl_next::FromWire::from_wire(wire.info),
1416 }
1417 }
1418 }
1419
1420 impl<'de> ::fidl_next::FromWireRef<crate::wire::NodeQueryFilesystemResponse<'de>>
1421 for NodeQueryFilesystemResponse
1422 {
1423 #[inline]
1424 fn from_wire_ref(wire: &crate::wire::NodeQueryFilesystemResponse<'de>) -> Self {
1425 Self {
1426 s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s),
1427
1428 info: ::fidl_next::FromWireRef::from_wire_ref(&wire.info),
1429 }
1430 }
1431 }
1432
1433 pub type NodeUpdateAttributesResponse = ();
1434
1435 pub type NodeSyncResponse = ();
1436
1437 ::fidl_next::bitflags::bitflags! {
1438 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct ModeType: u32 {
1439 const DO_NOT_USE = 2147483648;
1440
1441 }
1442 }
1443
1444 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ModeType, ___E> for ModeType
1445 where
1446 ___E: ?Sized,
1447 {
1448 #[inline]
1449 fn encode(
1450 self,
1451 encoder: &mut ___E,
1452 out: &mut ::core::mem::MaybeUninit<crate::wire::ModeType>,
1453 _: (),
1454 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1455 ::fidl_next::Encode::encode(&self, encoder, out, ())
1456 }
1457 }
1458
1459 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ModeType, ___E> for &'a ModeType
1460 where
1461 ___E: ?Sized,
1462 {
1463 #[inline]
1464 fn encode(
1465 self,
1466 _: &mut ___E,
1467 out: &mut ::core::mem::MaybeUninit<crate::wire::ModeType>,
1468 _: (),
1469 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1470 ::fidl_next::munge!(let crate::wire::ModeType { value } = out);
1471
1472 if ::fidl_next::bitflags::Flags::contains_unknown_bits(self) {
1473 return Err(::fidl_next::EncodeError::InvalidStrictBits);
1474 }
1475
1476 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
1477 Ok(())
1478 }
1479 }
1480
1481 impl ::core::convert::From<crate::wire::ModeType> for ModeType {
1482 fn from(wire: crate::wire::ModeType) -> Self {
1483 Self::from_bits_retain(u32::from(wire.value))
1484 }
1485 }
1486
1487 impl ::fidl_next::FromWire<crate::wire::ModeType> for ModeType {
1488 #[inline]
1489 fn from_wire(wire: crate::wire::ModeType) -> Self {
1490 Self::from(wire)
1491 }
1492 }
1493
1494 impl ::fidl_next::FromWireRef<crate::wire::ModeType> for ModeType {
1495 #[inline]
1496 fn from_wire_ref(wire: &crate::wire::ModeType) -> Self {
1497 Self::from(*wire)
1498 }
1499 }
1500
1501 #[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"]
1502 pub type Path = ::std::string::String;
1503
1504 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1505 #[repr(C)]
1506 pub struct DirectoryReadDirentsRequest {
1507 pub max_bytes: u64,
1508 }
1509
1510 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryReadDirentsRequest, ___E>
1511 for DirectoryReadDirentsRequest
1512 where
1513 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1514 {
1515 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
1516 Self,
1517 crate::wire::DirectoryReadDirentsRequest,
1518 > = unsafe {
1519 ::fidl_next::CopyOptimization::enable_if(
1520 true
1521
1522 && <
1523 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
1524 >::COPY_OPTIMIZATION.is_enabled()
1525
1526 )
1527 };
1528
1529 #[inline]
1530 fn encode(
1531 self,
1532 encoder_: &mut ___E,
1533 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryReadDirentsRequest>,
1534 _: (),
1535 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1536 ::fidl_next::munge! {
1537 let crate::wire::DirectoryReadDirentsRequest {
1538 max_bytes,
1539
1540 } = out_;
1541 }
1542
1543 ::fidl_next::Encode::encode(self.max_bytes, encoder_, max_bytes, ())?;
1544
1545 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(max_bytes.as_mut_ptr()) };
1546
1547 Ok(())
1548 }
1549 }
1550
1551 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirectoryReadDirentsRequest, ___E>
1552 for &'a DirectoryReadDirentsRequest
1553 where
1554 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1555 {
1556 #[inline]
1557 fn encode(
1558 self,
1559 encoder_: &mut ___E,
1560 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryReadDirentsRequest>,
1561 _: (),
1562 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1563 ::fidl_next::munge! {
1564 let crate::wire::DirectoryReadDirentsRequest {
1565 max_bytes,
1566
1567 } = out_;
1568 }
1569
1570 ::fidl_next::Encode::encode(&self.max_bytes, encoder_, max_bytes, ())?;
1571
1572 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(max_bytes.as_mut_ptr()) };
1573
1574 Ok(())
1575 }
1576 }
1577
1578 unsafe impl<___E>
1579 ::fidl_next::EncodeOption<
1580 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsRequest>,
1581 ___E,
1582 > for DirectoryReadDirentsRequest
1583 where
1584 ___E: ::fidl_next::Encoder + ?Sized,
1585 DirectoryReadDirentsRequest:
1586 ::fidl_next::Encode<crate::wire::DirectoryReadDirentsRequest, ___E>,
1587 {
1588 #[inline]
1589 fn encode_option(
1590 this: ::core::option::Option<Self>,
1591 encoder: &mut ___E,
1592 out: &mut ::core::mem::MaybeUninit<
1593 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsRequest>,
1594 >,
1595 _: (),
1596 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1597 if let Some(inner) = this {
1598 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1599 ::fidl_next::wire::Box::encode_present(out);
1600 } else {
1601 ::fidl_next::wire::Box::encode_absent(out);
1602 }
1603
1604 Ok(())
1605 }
1606 }
1607
1608 unsafe impl<'a, ___E>
1609 ::fidl_next::EncodeOption<
1610 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsRequest>,
1611 ___E,
1612 > for &'a DirectoryReadDirentsRequest
1613 where
1614 ___E: ::fidl_next::Encoder + ?Sized,
1615 &'a DirectoryReadDirentsRequest:
1616 ::fidl_next::Encode<crate::wire::DirectoryReadDirentsRequest, ___E>,
1617 {
1618 #[inline]
1619 fn encode_option(
1620 this: ::core::option::Option<Self>,
1621 encoder: &mut ___E,
1622 out: &mut ::core::mem::MaybeUninit<
1623 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsRequest>,
1624 >,
1625 _: (),
1626 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1627 if let Some(inner) = this {
1628 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1629 ::fidl_next::wire::Box::encode_present(out);
1630 } else {
1631 ::fidl_next::wire::Box::encode_absent(out);
1632 }
1633
1634 Ok(())
1635 }
1636 }
1637
1638 impl ::fidl_next::FromWire<crate::wire::DirectoryReadDirentsRequest>
1639 for DirectoryReadDirentsRequest
1640 {
1641 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
1642 crate::wire::DirectoryReadDirentsRequest,
1643 Self,
1644 > = unsafe {
1645 ::fidl_next::CopyOptimization::enable_if(
1646 true
1647 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
1648 .is_enabled(),
1649 )
1650 };
1651
1652 #[inline]
1653 fn from_wire(wire: crate::wire::DirectoryReadDirentsRequest) -> Self {
1654 Self { max_bytes: ::fidl_next::FromWire::from_wire(wire.max_bytes) }
1655 }
1656 }
1657
1658 impl ::fidl_next::FromWireRef<crate::wire::DirectoryReadDirentsRequest>
1659 for DirectoryReadDirentsRequest
1660 {
1661 #[inline]
1662 fn from_wire_ref(wire: &crate::wire::DirectoryReadDirentsRequest) -> Self {
1663 Self { max_bytes: ::fidl_next::FromWireRef::from_wire_ref(&wire.max_bytes) }
1664 }
1665 }
1666
1667 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1668 pub struct DirectoryReadDirentsResponse {
1669 pub s: ::fidl_next::fuchsia::zx::Status,
1670
1671 pub dirents: ::std::vec::Vec<u8>,
1672 }
1673
1674 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryReadDirentsResponse<'static>, ___E>
1675 for DirectoryReadDirentsResponse
1676 where
1677 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1678 ___E: ::fidl_next::Encoder,
1679 {
1680 #[inline]
1681 fn encode(
1682 self,
1683 encoder_: &mut ___E,
1684 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryReadDirentsResponse<'static>>,
1685 _: (),
1686 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1687 ::fidl_next::munge! {
1688 let crate::wire::DirectoryReadDirentsResponse {
1689 s,
1690 dirents,
1691
1692 } = out_;
1693 }
1694
1695 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
1696
1697 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
1698
1699 ::fidl_next::Encode::encode(self.dirents, encoder_, dirents, (8192, ()))?;
1700
1701 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(dirents.as_mut_ptr()) };
1702 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
1703
1704 Ok(())
1705 }
1706 }
1707
1708 unsafe impl<'a, ___E>
1709 ::fidl_next::Encode<crate::wire::DirectoryReadDirentsResponse<'static>, ___E>
1710 for &'a DirectoryReadDirentsResponse
1711 where
1712 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1713 ___E: ::fidl_next::Encoder,
1714 {
1715 #[inline]
1716 fn encode(
1717 self,
1718 encoder_: &mut ___E,
1719 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryReadDirentsResponse<'static>>,
1720 _: (),
1721 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1722 ::fidl_next::munge! {
1723 let crate::wire::DirectoryReadDirentsResponse {
1724 s,
1725 dirents,
1726
1727 } = out_;
1728 }
1729
1730 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
1731
1732 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
1733
1734 ::fidl_next::Encode::encode(&self.dirents, encoder_, dirents, (8192, ()))?;
1735
1736 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(dirents.as_mut_ptr()) };
1737 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
1738
1739 Ok(())
1740 }
1741 }
1742
1743 unsafe impl<___E>
1744 ::fidl_next::EncodeOption<
1745 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsResponse<'static>>,
1746 ___E,
1747 > for DirectoryReadDirentsResponse
1748 where
1749 ___E: ::fidl_next::Encoder + ?Sized,
1750 DirectoryReadDirentsResponse:
1751 ::fidl_next::Encode<crate::wire::DirectoryReadDirentsResponse<'static>, ___E>,
1752 {
1753 #[inline]
1754 fn encode_option(
1755 this: ::core::option::Option<Self>,
1756 encoder: &mut ___E,
1757 out: &mut ::core::mem::MaybeUninit<
1758 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsResponse<'static>>,
1759 >,
1760 _: (),
1761 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1762 if let Some(inner) = this {
1763 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1764 ::fidl_next::wire::Box::encode_present(out);
1765 } else {
1766 ::fidl_next::wire::Box::encode_absent(out);
1767 }
1768
1769 Ok(())
1770 }
1771 }
1772
1773 unsafe impl<'a, ___E>
1774 ::fidl_next::EncodeOption<
1775 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsResponse<'static>>,
1776 ___E,
1777 > for &'a DirectoryReadDirentsResponse
1778 where
1779 ___E: ::fidl_next::Encoder + ?Sized,
1780 &'a DirectoryReadDirentsResponse:
1781 ::fidl_next::Encode<crate::wire::DirectoryReadDirentsResponse<'static>, ___E>,
1782 {
1783 #[inline]
1784 fn encode_option(
1785 this: ::core::option::Option<Self>,
1786 encoder: &mut ___E,
1787 out: &mut ::core::mem::MaybeUninit<
1788 ::fidl_next::wire::Box<'static, crate::wire::DirectoryReadDirentsResponse<'static>>,
1789 >,
1790 _: (),
1791 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1792 if let Some(inner) = this {
1793 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1794 ::fidl_next::wire::Box::encode_present(out);
1795 } else {
1796 ::fidl_next::wire::Box::encode_absent(out);
1797 }
1798
1799 Ok(())
1800 }
1801 }
1802
1803 impl<'de> ::fidl_next::FromWire<crate::wire::DirectoryReadDirentsResponse<'de>>
1804 for DirectoryReadDirentsResponse
1805 {
1806 #[inline]
1807 fn from_wire(wire: crate::wire::DirectoryReadDirentsResponse<'de>) -> Self {
1808 Self {
1809 s: ::fidl_next::FromWire::from_wire(wire.s),
1810
1811 dirents: ::fidl_next::FromWire::from_wire(wire.dirents),
1812 }
1813 }
1814 }
1815
1816 impl<'de> ::fidl_next::FromWireRef<crate::wire::DirectoryReadDirentsResponse<'de>>
1817 for DirectoryReadDirentsResponse
1818 {
1819 #[inline]
1820 fn from_wire_ref(wire: &crate::wire::DirectoryReadDirentsResponse<'de>) -> Self {
1821 Self {
1822 s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s),
1823
1824 dirents: ::fidl_next::FromWireRef::from_wire_ref(&wire.dirents),
1825 }
1826 }
1827 }
1828
1829 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1830 #[repr(C)]
1831 pub struct DirectoryRewindResponse {
1832 pub s: ::fidl_next::fuchsia::zx::Status,
1833 }
1834
1835 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryRewindResponse, ___E>
1836 for DirectoryRewindResponse
1837 where
1838 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1839 {
1840 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
1841 Self,
1842 crate::wire::DirectoryRewindResponse,
1843 > = unsafe {
1844 ::fidl_next::CopyOptimization::enable_if(
1845 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::Encode<
1846 ::fidl_next::wire::fuchsia::Status,
1847 ___E,
1848 >>::COPY_OPTIMIZATION
1849 .is_enabled(),
1850 )
1851 };
1852
1853 #[inline]
1854 fn encode(
1855 self,
1856 encoder_: &mut ___E,
1857 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryRewindResponse>,
1858 _: (),
1859 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1860 ::fidl_next::munge! {
1861 let crate::wire::DirectoryRewindResponse {
1862 s,
1863
1864 } = out_;
1865 }
1866
1867 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
1868
1869 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
1870
1871 Ok(())
1872 }
1873 }
1874
1875 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirectoryRewindResponse, ___E>
1876 for &'a DirectoryRewindResponse
1877 where
1878 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1879 {
1880 #[inline]
1881 fn encode(
1882 self,
1883 encoder_: &mut ___E,
1884 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryRewindResponse>,
1885 _: (),
1886 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1887 ::fidl_next::munge! {
1888 let crate::wire::DirectoryRewindResponse {
1889 s,
1890
1891 } = out_;
1892 }
1893
1894 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
1895
1896 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
1897
1898 Ok(())
1899 }
1900 }
1901
1902 unsafe impl<___E>
1903 ::fidl_next::EncodeOption<
1904 ::fidl_next::wire::Box<'static, crate::wire::DirectoryRewindResponse>,
1905 ___E,
1906 > for DirectoryRewindResponse
1907 where
1908 ___E: ::fidl_next::Encoder + ?Sized,
1909 DirectoryRewindResponse: ::fidl_next::Encode<crate::wire::DirectoryRewindResponse, ___E>,
1910 {
1911 #[inline]
1912 fn encode_option(
1913 this: ::core::option::Option<Self>,
1914 encoder: &mut ___E,
1915 out: &mut ::core::mem::MaybeUninit<
1916 ::fidl_next::wire::Box<'static, crate::wire::DirectoryRewindResponse>,
1917 >,
1918 _: (),
1919 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1920 if let Some(inner) = this {
1921 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1922 ::fidl_next::wire::Box::encode_present(out);
1923 } else {
1924 ::fidl_next::wire::Box::encode_absent(out);
1925 }
1926
1927 Ok(())
1928 }
1929 }
1930
1931 unsafe impl<'a, ___E>
1932 ::fidl_next::EncodeOption<
1933 ::fidl_next::wire::Box<'static, crate::wire::DirectoryRewindResponse>,
1934 ___E,
1935 > for &'a DirectoryRewindResponse
1936 where
1937 ___E: ::fidl_next::Encoder + ?Sized,
1938 &'a DirectoryRewindResponse:
1939 ::fidl_next::Encode<crate::wire::DirectoryRewindResponse, ___E>,
1940 {
1941 #[inline]
1942 fn encode_option(
1943 this: ::core::option::Option<Self>,
1944 encoder: &mut ___E,
1945 out: &mut ::core::mem::MaybeUninit<
1946 ::fidl_next::wire::Box<'static, crate::wire::DirectoryRewindResponse>,
1947 >,
1948 _: (),
1949 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1950 if let Some(inner) = this {
1951 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1952 ::fidl_next::wire::Box::encode_present(out);
1953 } else {
1954 ::fidl_next::wire::Box::encode_absent(out);
1955 }
1956
1957 Ok(())
1958 }
1959 }
1960
1961 impl ::fidl_next::FromWire<crate::wire::DirectoryRewindResponse> for DirectoryRewindResponse {
1962 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
1963 crate::wire::DirectoryRewindResponse,
1964 Self,
1965 > = unsafe {
1966 ::fidl_next::CopyOptimization::enable_if(
1967 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::FromWire<
1968 ::fidl_next::wire::fuchsia::Status,
1969 >>::COPY_OPTIMIZATION
1970 .is_enabled(),
1971 )
1972 };
1973
1974 #[inline]
1975 fn from_wire(wire: crate::wire::DirectoryRewindResponse) -> Self {
1976 Self { s: ::fidl_next::FromWire::from_wire(wire.s) }
1977 }
1978 }
1979
1980 impl ::fidl_next::FromWireRef<crate::wire::DirectoryRewindResponse> for DirectoryRewindResponse {
1981 #[inline]
1982 fn from_wire_ref(wire: &crate::wire::DirectoryRewindResponse) -> Self {
1983 Self { s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s) }
1984 }
1985 }
1986
1987 #[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"]
1988 pub type Name = ::std::string::String;
1989
1990 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1991 #[repr(C)]
1992 pub struct DirectoryLinkResponse {
1993 pub s: ::fidl_next::fuchsia::zx::Status,
1994 }
1995
1996 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryLinkResponse, ___E>
1997 for DirectoryLinkResponse
1998 where
1999 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2000 {
2001 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
2002 Self,
2003 crate::wire::DirectoryLinkResponse,
2004 > = unsafe {
2005 ::fidl_next::CopyOptimization::enable_if(
2006 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::Encode<
2007 ::fidl_next::wire::fuchsia::Status,
2008 ___E,
2009 >>::COPY_OPTIMIZATION
2010 .is_enabled(),
2011 )
2012 };
2013
2014 #[inline]
2015 fn encode(
2016 self,
2017 encoder_: &mut ___E,
2018 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryLinkResponse>,
2019 _: (),
2020 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2021 ::fidl_next::munge! {
2022 let crate::wire::DirectoryLinkResponse {
2023 s,
2024
2025 } = out_;
2026 }
2027
2028 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
2029
2030 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
2031
2032 Ok(())
2033 }
2034 }
2035
2036 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirectoryLinkResponse, ___E>
2037 for &'a DirectoryLinkResponse
2038 where
2039 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2040 {
2041 #[inline]
2042 fn encode(
2043 self,
2044 encoder_: &mut ___E,
2045 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryLinkResponse>,
2046 _: (),
2047 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2048 ::fidl_next::munge! {
2049 let crate::wire::DirectoryLinkResponse {
2050 s,
2051
2052 } = out_;
2053 }
2054
2055 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
2056
2057 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
2058
2059 Ok(())
2060 }
2061 }
2062
2063 unsafe impl<___E>
2064 ::fidl_next::EncodeOption<
2065 ::fidl_next::wire::Box<'static, crate::wire::DirectoryLinkResponse>,
2066 ___E,
2067 > for DirectoryLinkResponse
2068 where
2069 ___E: ::fidl_next::Encoder + ?Sized,
2070 DirectoryLinkResponse: ::fidl_next::Encode<crate::wire::DirectoryLinkResponse, ___E>,
2071 {
2072 #[inline]
2073 fn encode_option(
2074 this: ::core::option::Option<Self>,
2075 encoder: &mut ___E,
2076 out: &mut ::core::mem::MaybeUninit<
2077 ::fidl_next::wire::Box<'static, crate::wire::DirectoryLinkResponse>,
2078 >,
2079 _: (),
2080 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2081 if let Some(inner) = this {
2082 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2083 ::fidl_next::wire::Box::encode_present(out);
2084 } else {
2085 ::fidl_next::wire::Box::encode_absent(out);
2086 }
2087
2088 Ok(())
2089 }
2090 }
2091
2092 unsafe impl<'a, ___E>
2093 ::fidl_next::EncodeOption<
2094 ::fidl_next::wire::Box<'static, crate::wire::DirectoryLinkResponse>,
2095 ___E,
2096 > for &'a DirectoryLinkResponse
2097 where
2098 ___E: ::fidl_next::Encoder + ?Sized,
2099 &'a DirectoryLinkResponse: ::fidl_next::Encode<crate::wire::DirectoryLinkResponse, ___E>,
2100 {
2101 #[inline]
2102 fn encode_option(
2103 this: ::core::option::Option<Self>,
2104 encoder: &mut ___E,
2105 out: &mut ::core::mem::MaybeUninit<
2106 ::fidl_next::wire::Box<'static, crate::wire::DirectoryLinkResponse>,
2107 >,
2108 _: (),
2109 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2110 if let Some(inner) = this {
2111 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2112 ::fidl_next::wire::Box::encode_present(out);
2113 } else {
2114 ::fidl_next::wire::Box::encode_absent(out);
2115 }
2116
2117 Ok(())
2118 }
2119 }
2120
2121 impl ::fidl_next::FromWire<crate::wire::DirectoryLinkResponse> for DirectoryLinkResponse {
2122 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
2123 crate::wire::DirectoryLinkResponse,
2124 Self,
2125 > = unsafe {
2126 ::fidl_next::CopyOptimization::enable_if(
2127 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::FromWire<
2128 ::fidl_next::wire::fuchsia::Status,
2129 >>::COPY_OPTIMIZATION
2130 .is_enabled(),
2131 )
2132 };
2133
2134 #[inline]
2135 fn from_wire(wire: crate::wire::DirectoryLinkResponse) -> Self {
2136 Self { s: ::fidl_next::FromWire::from_wire(wire.s) }
2137 }
2138 }
2139
2140 impl ::fidl_next::FromWireRef<crate::wire::DirectoryLinkResponse> for DirectoryLinkResponse {
2141 #[inline]
2142 fn from_wire_ref(wire: &crate::wire::DirectoryLinkResponse) -> Self {
2143 Self { s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s) }
2144 }
2145 }
2146
2147 ::fidl_next::bitflags::bitflags! {
2148 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct UnlinkFlags: u64 {
2149 #[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;
2150 const _ = !0;
2151 }
2152 }
2153
2154 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UnlinkFlags, ___E> for UnlinkFlags
2155 where
2156 ___E: ?Sized,
2157 {
2158 #[inline]
2159 fn encode(
2160 self,
2161 encoder: &mut ___E,
2162 out: &mut ::core::mem::MaybeUninit<crate::wire::UnlinkFlags>,
2163 _: (),
2164 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2165 ::fidl_next::Encode::encode(&self, encoder, out, ())
2166 }
2167 }
2168
2169 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UnlinkFlags, ___E> for &'a UnlinkFlags
2170 where
2171 ___E: ?Sized,
2172 {
2173 #[inline]
2174 fn encode(
2175 self,
2176 _: &mut ___E,
2177 out: &mut ::core::mem::MaybeUninit<crate::wire::UnlinkFlags>,
2178 _: (),
2179 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2180 ::fidl_next::munge!(let crate::wire::UnlinkFlags { value } = out);
2181
2182 let _ = value.write(::fidl_next::wire::Uint64::from(self.bits()));
2183 Ok(())
2184 }
2185 }
2186
2187 impl ::core::convert::From<crate::wire::UnlinkFlags> for UnlinkFlags {
2188 fn from(wire: crate::wire::UnlinkFlags) -> Self {
2189 Self::from_bits_retain(u64::from(wire.value))
2190 }
2191 }
2192
2193 impl ::fidl_next::FromWire<crate::wire::UnlinkFlags> for UnlinkFlags {
2194 #[inline]
2195 fn from_wire(wire: crate::wire::UnlinkFlags) -> Self {
2196 Self::from(wire)
2197 }
2198 }
2199
2200 impl ::fidl_next::FromWireRef<crate::wire::UnlinkFlags> for UnlinkFlags {
2201 #[inline]
2202 fn from_wire_ref(wire: &crate::wire::UnlinkFlags) -> Self {
2203 Self::from(*wire)
2204 }
2205 }
2206
2207 #[derive(Debug, Default, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2208 pub struct UnlinkOptions {
2209 pub flags: ::core::option::Option<crate::natural::UnlinkFlags>,
2210 }
2211
2212 impl UnlinkOptions {
2213 fn __max_ordinal(&self) -> usize {
2214 if self.flags.is_some() {
2215 return 1;
2216 }
2217
2218 0
2219 }
2220 }
2221
2222 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UnlinkOptions<'static>, ___E> for UnlinkOptions
2223 where
2224 ___E: ::fidl_next::Encoder + ?Sized,
2225 {
2226 #[inline]
2227 fn encode(
2228 mut self,
2229 encoder: &mut ___E,
2230 out: &mut ::core::mem::MaybeUninit<crate::wire::UnlinkOptions<'static>>,
2231 _: (),
2232 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2233 ::fidl_next::munge!(let crate::wire::UnlinkOptions { table } = out);
2234
2235 let max_ord = self.__max_ordinal();
2236
2237 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
2238 ::fidl_next::Wire::zero_padding(&mut out);
2239
2240 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
2241 ::fidl_next::wire::Envelope,
2242 >(encoder, max_ord);
2243
2244 for i in 1..=max_ord {
2245 match i {
2246 1 => {
2247 if let Some(value) = self.flags.take() {
2248 ::fidl_next::wire::Envelope::encode_value::<
2249 crate::wire::UnlinkFlags,
2250 ___E,
2251 >(
2252 value, preallocated.encoder, &mut out, ()
2253 )?;
2254 } else {
2255 ::fidl_next::wire::Envelope::encode_zero(&mut out)
2256 }
2257 }
2258
2259 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
2260 }
2261 unsafe {
2262 preallocated.write_next(out.assume_init_ref());
2263 }
2264 }
2265
2266 ::fidl_next::wire::Table::encode_len(table, max_ord);
2267
2268 Ok(())
2269 }
2270 }
2271
2272 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UnlinkOptions<'static>, ___E>
2273 for &'a UnlinkOptions
2274 where
2275 ___E: ::fidl_next::Encoder + ?Sized,
2276 {
2277 #[inline]
2278 fn encode(
2279 self,
2280 encoder: &mut ___E,
2281 out: &mut ::core::mem::MaybeUninit<crate::wire::UnlinkOptions<'static>>,
2282 _: (),
2283 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2284 ::fidl_next::munge!(let crate::wire::UnlinkOptions { table } = out);
2285
2286 let max_ord = self.__max_ordinal();
2287
2288 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
2289 ::fidl_next::Wire::zero_padding(&mut out);
2290
2291 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
2292 ::fidl_next::wire::Envelope,
2293 >(encoder, max_ord);
2294
2295 for i in 1..=max_ord {
2296 match i {
2297 1 => {
2298 if let Some(value) = &self.flags {
2299 ::fidl_next::wire::Envelope::encode_value::<
2300 crate::wire::UnlinkFlags,
2301 ___E,
2302 >(
2303 value, preallocated.encoder, &mut out, ()
2304 )?;
2305 } else {
2306 ::fidl_next::wire::Envelope::encode_zero(&mut out)
2307 }
2308 }
2309
2310 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
2311 }
2312 unsafe {
2313 preallocated.write_next(out.assume_init_ref());
2314 }
2315 }
2316
2317 ::fidl_next::wire::Table::encode_len(table, max_ord);
2318
2319 Ok(())
2320 }
2321 }
2322
2323 impl<'de> ::fidl_next::FromWire<crate::wire::UnlinkOptions<'de>> for UnlinkOptions {
2324 #[inline]
2325 fn from_wire(wire_: crate::wire::UnlinkOptions<'de>) -> Self {
2326 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
2327
2328 let flags = wire_.table.get(1);
2329
2330 Self {
2331 flags: flags.map(|envelope| {
2332 ::fidl_next::FromWire::from_wire(unsafe {
2333 envelope.read_unchecked::<crate::wire::UnlinkFlags>()
2334 })
2335 }),
2336 }
2337 }
2338 }
2339
2340 impl<'de> ::fidl_next::FromWireRef<crate::wire::UnlinkOptions<'de>> for UnlinkOptions {
2341 #[inline]
2342 fn from_wire_ref(wire: &crate::wire::UnlinkOptions<'de>) -> Self {
2343 Self {
2344 flags: wire.table.get(1).map(|envelope| {
2345 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
2346 envelope.deref_unchecked::<crate::wire::UnlinkFlags>()
2347 })
2348 }),
2349 }
2350 }
2351 }
2352
2353 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2354 pub struct DirectoryUnlinkRequest {
2355 pub name: ::std::string::String,
2356
2357 pub options: crate::natural::UnlinkOptions,
2358 }
2359
2360 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryUnlinkRequest<'static>, ___E>
2361 for DirectoryUnlinkRequest
2362 where
2363 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2364 ___E: ::fidl_next::Encoder,
2365 {
2366 #[inline]
2367 fn encode(
2368 self,
2369 encoder_: &mut ___E,
2370 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryUnlinkRequest<'static>>,
2371 _: (),
2372 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2373 ::fidl_next::munge! {
2374 let crate::wire::DirectoryUnlinkRequest {
2375 name,
2376 options,
2377
2378 } = out_;
2379 }
2380
2381 ::fidl_next::Encode::encode(self.name, encoder_, name, 255)?;
2382
2383 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
2384 ::fidl_next::Constrained::validate(_field, 255)?;
2385
2386 ::fidl_next::Encode::encode(self.options, encoder_, options, ())?;
2387
2388 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(options.as_mut_ptr()) };
2389
2390 Ok(())
2391 }
2392 }
2393
2394 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirectoryUnlinkRequest<'static>, ___E>
2395 for &'a DirectoryUnlinkRequest
2396 where
2397 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2398 ___E: ::fidl_next::Encoder,
2399 {
2400 #[inline]
2401 fn encode(
2402 self,
2403 encoder_: &mut ___E,
2404 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryUnlinkRequest<'static>>,
2405 _: (),
2406 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2407 ::fidl_next::munge! {
2408 let crate::wire::DirectoryUnlinkRequest {
2409 name,
2410 options,
2411
2412 } = out_;
2413 }
2414
2415 ::fidl_next::Encode::encode(&self.name, encoder_, name, 255)?;
2416
2417 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
2418 ::fidl_next::Constrained::validate(_field, 255)?;
2419
2420 ::fidl_next::Encode::encode(&self.options, encoder_, options, ())?;
2421
2422 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(options.as_mut_ptr()) };
2423
2424 Ok(())
2425 }
2426 }
2427
2428 unsafe impl<___E>
2429 ::fidl_next::EncodeOption<
2430 ::fidl_next::wire::Box<'static, crate::wire::DirectoryUnlinkRequest<'static>>,
2431 ___E,
2432 > for DirectoryUnlinkRequest
2433 where
2434 ___E: ::fidl_next::Encoder + ?Sized,
2435 DirectoryUnlinkRequest:
2436 ::fidl_next::Encode<crate::wire::DirectoryUnlinkRequest<'static>, ___E>,
2437 {
2438 #[inline]
2439 fn encode_option(
2440 this: ::core::option::Option<Self>,
2441 encoder: &mut ___E,
2442 out: &mut ::core::mem::MaybeUninit<
2443 ::fidl_next::wire::Box<'static, crate::wire::DirectoryUnlinkRequest<'static>>,
2444 >,
2445 _: (),
2446 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2447 if let Some(inner) = this {
2448 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2449 ::fidl_next::wire::Box::encode_present(out);
2450 } else {
2451 ::fidl_next::wire::Box::encode_absent(out);
2452 }
2453
2454 Ok(())
2455 }
2456 }
2457
2458 unsafe impl<'a, ___E>
2459 ::fidl_next::EncodeOption<
2460 ::fidl_next::wire::Box<'static, crate::wire::DirectoryUnlinkRequest<'static>>,
2461 ___E,
2462 > for &'a DirectoryUnlinkRequest
2463 where
2464 ___E: ::fidl_next::Encoder + ?Sized,
2465 &'a DirectoryUnlinkRequest:
2466 ::fidl_next::Encode<crate::wire::DirectoryUnlinkRequest<'static>, ___E>,
2467 {
2468 #[inline]
2469 fn encode_option(
2470 this: ::core::option::Option<Self>,
2471 encoder: &mut ___E,
2472 out: &mut ::core::mem::MaybeUninit<
2473 ::fidl_next::wire::Box<'static, crate::wire::DirectoryUnlinkRequest<'static>>,
2474 >,
2475 _: (),
2476 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2477 if let Some(inner) = this {
2478 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2479 ::fidl_next::wire::Box::encode_present(out);
2480 } else {
2481 ::fidl_next::wire::Box::encode_absent(out);
2482 }
2483
2484 Ok(())
2485 }
2486 }
2487
2488 impl<'de> ::fidl_next::FromWire<crate::wire::DirectoryUnlinkRequest<'de>>
2489 for DirectoryUnlinkRequest
2490 {
2491 #[inline]
2492 fn from_wire(wire: crate::wire::DirectoryUnlinkRequest<'de>) -> Self {
2493 Self {
2494 name: ::fidl_next::FromWire::from_wire(wire.name),
2495
2496 options: ::fidl_next::FromWire::from_wire(wire.options),
2497 }
2498 }
2499 }
2500
2501 impl<'de> ::fidl_next::FromWireRef<crate::wire::DirectoryUnlinkRequest<'de>>
2502 for DirectoryUnlinkRequest
2503 {
2504 #[inline]
2505 fn from_wire_ref(wire: &crate::wire::DirectoryUnlinkRequest<'de>) -> Self {
2506 Self {
2507 name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name),
2508
2509 options: ::fidl_next::FromWireRef::from_wire_ref(&wire.options),
2510 }
2511 }
2512 }
2513
2514 pub type DirectoryUnlinkResponse = ();
2515
2516 pub type DirectoryRenameResponse = ();
2517
2518 ::fidl_next::bitflags::bitflags! {
2519 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct WatchMask: u32 {
2520 #[doc = " Used by `Directory.Watch`. Requests transmission of `WatchEvent.DELETED`.\n"]const DELETED = 1;
2521 #[doc = " Used by `Directory.Watch`. Requests transmission of `WatchEvent.ADDED`.\n"]const ADDED = 2;
2522 #[doc = " Used by `Directory.Watch`. Requests transmission of `WatchEvent.REMOVED`.\n"]const REMOVED = 4;
2523 #[doc = " Used by `Directory.Watch`. Requests transmission of `WatchEvent.EXISTING`.\n"]const EXISTING = 8;
2524 #[doc = " Used by `Directory.Watch`. Requests transmission of `WatchEvent.IDLE`.\n"]const IDLE = 16;
2525
2526 }
2527 }
2528
2529 unsafe impl<___E> ::fidl_next::Encode<crate::wire::WatchMask, ___E> for WatchMask
2530 where
2531 ___E: ?Sized,
2532 {
2533 #[inline]
2534 fn encode(
2535 self,
2536 encoder: &mut ___E,
2537 out: &mut ::core::mem::MaybeUninit<crate::wire::WatchMask>,
2538 _: (),
2539 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2540 ::fidl_next::Encode::encode(&self, encoder, out, ())
2541 }
2542 }
2543
2544 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::WatchMask, ___E> for &'a WatchMask
2545 where
2546 ___E: ?Sized,
2547 {
2548 #[inline]
2549 fn encode(
2550 self,
2551 _: &mut ___E,
2552 out: &mut ::core::mem::MaybeUninit<crate::wire::WatchMask>,
2553 _: (),
2554 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2555 ::fidl_next::munge!(let crate::wire::WatchMask { value } = out);
2556
2557 if ::fidl_next::bitflags::Flags::contains_unknown_bits(self) {
2558 return Err(::fidl_next::EncodeError::InvalidStrictBits);
2559 }
2560
2561 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
2562 Ok(())
2563 }
2564 }
2565
2566 impl ::core::convert::From<crate::wire::WatchMask> for WatchMask {
2567 fn from(wire: crate::wire::WatchMask) -> Self {
2568 Self::from_bits_retain(u32::from(wire.value))
2569 }
2570 }
2571
2572 impl ::fidl_next::FromWire<crate::wire::WatchMask> for WatchMask {
2573 #[inline]
2574 fn from_wire(wire: crate::wire::WatchMask) -> Self {
2575 Self::from(wire)
2576 }
2577 }
2578
2579 impl ::fidl_next::FromWireRef<crate::wire::WatchMask> for WatchMask {
2580 #[inline]
2581 fn from_wire_ref(wire: &crate::wire::WatchMask) -> Self {
2582 Self::from(*wire)
2583 }
2584 }
2585
2586 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2587 #[repr(C)]
2588 pub struct DirectoryWatchResponse {
2589 pub s: ::fidl_next::fuchsia::zx::Status,
2590 }
2591
2592 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryWatchResponse, ___E>
2593 for DirectoryWatchResponse
2594 where
2595 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2596 {
2597 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
2598 Self,
2599 crate::wire::DirectoryWatchResponse,
2600 > = unsafe {
2601 ::fidl_next::CopyOptimization::enable_if(
2602 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::Encode<
2603 ::fidl_next::wire::fuchsia::Status,
2604 ___E,
2605 >>::COPY_OPTIMIZATION
2606 .is_enabled(),
2607 )
2608 };
2609
2610 #[inline]
2611 fn encode(
2612 self,
2613 encoder_: &mut ___E,
2614 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryWatchResponse>,
2615 _: (),
2616 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2617 ::fidl_next::munge! {
2618 let crate::wire::DirectoryWatchResponse {
2619 s,
2620
2621 } = out_;
2622 }
2623
2624 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
2625
2626 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
2627
2628 Ok(())
2629 }
2630 }
2631
2632 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirectoryWatchResponse, ___E>
2633 for &'a DirectoryWatchResponse
2634 where
2635 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2636 {
2637 #[inline]
2638 fn encode(
2639 self,
2640 encoder_: &mut ___E,
2641 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryWatchResponse>,
2642 _: (),
2643 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2644 ::fidl_next::munge! {
2645 let crate::wire::DirectoryWatchResponse {
2646 s,
2647
2648 } = out_;
2649 }
2650
2651 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
2652
2653 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
2654
2655 Ok(())
2656 }
2657 }
2658
2659 unsafe impl<___E>
2660 ::fidl_next::EncodeOption<
2661 ::fidl_next::wire::Box<'static, crate::wire::DirectoryWatchResponse>,
2662 ___E,
2663 > for DirectoryWatchResponse
2664 where
2665 ___E: ::fidl_next::Encoder + ?Sized,
2666 DirectoryWatchResponse: ::fidl_next::Encode<crate::wire::DirectoryWatchResponse, ___E>,
2667 {
2668 #[inline]
2669 fn encode_option(
2670 this: ::core::option::Option<Self>,
2671 encoder: &mut ___E,
2672 out: &mut ::core::mem::MaybeUninit<
2673 ::fidl_next::wire::Box<'static, crate::wire::DirectoryWatchResponse>,
2674 >,
2675 _: (),
2676 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2677 if let Some(inner) = this {
2678 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2679 ::fidl_next::wire::Box::encode_present(out);
2680 } else {
2681 ::fidl_next::wire::Box::encode_absent(out);
2682 }
2683
2684 Ok(())
2685 }
2686 }
2687
2688 unsafe impl<'a, ___E>
2689 ::fidl_next::EncodeOption<
2690 ::fidl_next::wire::Box<'static, crate::wire::DirectoryWatchResponse>,
2691 ___E,
2692 > for &'a DirectoryWatchResponse
2693 where
2694 ___E: ::fidl_next::Encoder + ?Sized,
2695 &'a DirectoryWatchResponse: ::fidl_next::Encode<crate::wire::DirectoryWatchResponse, ___E>,
2696 {
2697 #[inline]
2698 fn encode_option(
2699 this: ::core::option::Option<Self>,
2700 encoder: &mut ___E,
2701 out: &mut ::core::mem::MaybeUninit<
2702 ::fidl_next::wire::Box<'static, crate::wire::DirectoryWatchResponse>,
2703 >,
2704 _: (),
2705 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2706 if let Some(inner) = this {
2707 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2708 ::fidl_next::wire::Box::encode_present(out);
2709 } else {
2710 ::fidl_next::wire::Box::encode_absent(out);
2711 }
2712
2713 Ok(())
2714 }
2715 }
2716
2717 impl ::fidl_next::FromWire<crate::wire::DirectoryWatchResponse> for DirectoryWatchResponse {
2718 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
2719 crate::wire::DirectoryWatchResponse,
2720 Self,
2721 > = unsafe {
2722 ::fidl_next::CopyOptimization::enable_if(
2723 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::FromWire<
2724 ::fidl_next::wire::fuchsia::Status,
2725 >>::COPY_OPTIMIZATION
2726 .is_enabled(),
2727 )
2728 };
2729
2730 #[inline]
2731 fn from_wire(wire: crate::wire::DirectoryWatchResponse) -> Self {
2732 Self { s: ::fidl_next::FromWire::from_wire(wire.s) }
2733 }
2734 }
2735
2736 impl ::fidl_next::FromWireRef<crate::wire::DirectoryWatchResponse> for DirectoryWatchResponse {
2737 #[inline]
2738 fn from_wire_ref(wire: &crate::wire::DirectoryWatchResponse) -> Self {
2739 Self { s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s) }
2740 }
2741 }
2742
2743 pub type SymlinkTarget = ::std::vec::Vec<u8>;
2744
2745 #[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"]
2746 pub type ExtendedAttributeName = ::std::vec::Vec<u8>;
2747
2748 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2749 pub struct NodeGetExtendedAttributeRequest {
2750 pub name: ::std::vec::Vec<u8>,
2751 }
2752
2753 unsafe impl<___E>
2754 ::fidl_next::Encode<crate::wire::NodeGetExtendedAttributeRequest<'static>, ___E>
2755 for NodeGetExtendedAttributeRequest
2756 where
2757 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2758 ___E: ::fidl_next::Encoder,
2759 {
2760 #[inline]
2761 fn encode(
2762 self,
2763 encoder_: &mut ___E,
2764 out_: &mut ::core::mem::MaybeUninit<
2765 crate::wire::NodeGetExtendedAttributeRequest<'static>,
2766 >,
2767 _: (),
2768 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2769 ::fidl_next::munge! {
2770 let crate::wire::NodeGetExtendedAttributeRequest {
2771 name,
2772
2773 } = out_;
2774 }
2775
2776 ::fidl_next::Encode::encode(self.name, encoder_, name, (255, ()))?;
2777
2778 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
2779 ::fidl_next::Constrained::validate(_field, (255, ()))?;
2780
2781 Ok(())
2782 }
2783 }
2784
2785 unsafe impl<'a, ___E>
2786 ::fidl_next::Encode<crate::wire::NodeGetExtendedAttributeRequest<'static>, ___E>
2787 for &'a NodeGetExtendedAttributeRequest
2788 where
2789 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2790 ___E: ::fidl_next::Encoder,
2791 {
2792 #[inline]
2793 fn encode(
2794 self,
2795 encoder_: &mut ___E,
2796 out_: &mut ::core::mem::MaybeUninit<
2797 crate::wire::NodeGetExtendedAttributeRequest<'static>,
2798 >,
2799 _: (),
2800 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2801 ::fidl_next::munge! {
2802 let crate::wire::NodeGetExtendedAttributeRequest {
2803 name,
2804
2805 } = out_;
2806 }
2807
2808 ::fidl_next::Encode::encode(&self.name, encoder_, name, (255, ()))?;
2809
2810 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
2811 ::fidl_next::Constrained::validate(_field, (255, ()))?;
2812
2813 Ok(())
2814 }
2815 }
2816
2817 unsafe impl<___E>
2818 ::fidl_next::EncodeOption<
2819 ::fidl_next::wire::Box<'static, crate::wire::NodeGetExtendedAttributeRequest<'static>>,
2820 ___E,
2821 > for NodeGetExtendedAttributeRequest
2822 where
2823 ___E: ::fidl_next::Encoder + ?Sized,
2824 NodeGetExtendedAttributeRequest:
2825 ::fidl_next::Encode<crate::wire::NodeGetExtendedAttributeRequest<'static>, ___E>,
2826 {
2827 #[inline]
2828 fn encode_option(
2829 this: ::core::option::Option<Self>,
2830 encoder: &mut ___E,
2831 out: &mut ::core::mem::MaybeUninit<
2832 ::fidl_next::wire::Box<
2833 'static,
2834 crate::wire::NodeGetExtendedAttributeRequest<'static>,
2835 >,
2836 >,
2837 _: (),
2838 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2839 if let Some(inner) = this {
2840 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2841 ::fidl_next::wire::Box::encode_present(out);
2842 } else {
2843 ::fidl_next::wire::Box::encode_absent(out);
2844 }
2845
2846 Ok(())
2847 }
2848 }
2849
2850 unsafe impl<'a, ___E>
2851 ::fidl_next::EncodeOption<
2852 ::fidl_next::wire::Box<'static, crate::wire::NodeGetExtendedAttributeRequest<'static>>,
2853 ___E,
2854 > for &'a NodeGetExtendedAttributeRequest
2855 where
2856 ___E: ::fidl_next::Encoder + ?Sized,
2857 &'a NodeGetExtendedAttributeRequest:
2858 ::fidl_next::Encode<crate::wire::NodeGetExtendedAttributeRequest<'static>, ___E>,
2859 {
2860 #[inline]
2861 fn encode_option(
2862 this: ::core::option::Option<Self>,
2863 encoder: &mut ___E,
2864 out: &mut ::core::mem::MaybeUninit<
2865 ::fidl_next::wire::Box<
2866 'static,
2867 crate::wire::NodeGetExtendedAttributeRequest<'static>,
2868 >,
2869 >,
2870 _: (),
2871 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2872 if let Some(inner) = this {
2873 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
2874 ::fidl_next::wire::Box::encode_present(out);
2875 } else {
2876 ::fidl_next::wire::Box::encode_absent(out);
2877 }
2878
2879 Ok(())
2880 }
2881 }
2882
2883 impl<'de> ::fidl_next::FromWire<crate::wire::NodeGetExtendedAttributeRequest<'de>>
2884 for NodeGetExtendedAttributeRequest
2885 {
2886 #[inline]
2887 fn from_wire(wire: crate::wire::NodeGetExtendedAttributeRequest<'de>) -> Self {
2888 Self { name: ::fidl_next::FromWire::from_wire(wire.name) }
2889 }
2890 }
2891
2892 impl<'de> ::fidl_next::FromWireRef<crate::wire::NodeGetExtendedAttributeRequest<'de>>
2893 for NodeGetExtendedAttributeRequest
2894 {
2895 #[inline]
2896 fn from_wire_ref(wire: &crate::wire::NodeGetExtendedAttributeRequest<'de>) -> Self {
2897 Self { name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name) }
2898 }
2899 }
2900
2901 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2902 #[repr(u32)]
2903 pub enum SetExtendedAttributeMode {
2904 Set = 1,
2905 Create = 2,
2906 Replace = 3,
2907 }
2908 impl ::core::convert::TryFrom<u32> for SetExtendedAttributeMode {
2909 type Error = ::fidl_next::UnknownStrictEnumMemberError;
2910 fn try_from(
2911 value: u32,
2912 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
2913 match value {
2914 1 => Ok(Self::Set),
2915 2 => Ok(Self::Create),
2916 3 => Ok(Self::Replace),
2917
2918 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
2919 }
2920 }
2921 }
2922
2923 unsafe impl<___E> ::fidl_next::Encode<crate::wire::SetExtendedAttributeMode, ___E>
2924 for SetExtendedAttributeMode
2925 where
2926 ___E: ?Sized,
2927 {
2928 #[inline]
2929 fn encode(
2930 self,
2931 encoder: &mut ___E,
2932 out: &mut ::core::mem::MaybeUninit<crate::wire::SetExtendedAttributeMode>,
2933 _: (),
2934 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2935 ::fidl_next::Encode::encode(&self, encoder, out, ())
2936 }
2937 }
2938
2939 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::SetExtendedAttributeMode, ___E>
2940 for &'a SetExtendedAttributeMode
2941 where
2942 ___E: ?Sized,
2943 {
2944 #[inline]
2945 fn encode(
2946 self,
2947 encoder: &mut ___E,
2948 out: &mut ::core::mem::MaybeUninit<crate::wire::SetExtendedAttributeMode>,
2949 _: (),
2950 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2951 ::fidl_next::munge!(let crate::wire::SetExtendedAttributeMode { value } = out);
2952 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
2953 SetExtendedAttributeMode::Set => 1,
2954
2955 SetExtendedAttributeMode::Create => 2,
2956
2957 SetExtendedAttributeMode::Replace => 3,
2958 }));
2959
2960 Ok(())
2961 }
2962 }
2963
2964 impl ::core::convert::From<crate::wire::SetExtendedAttributeMode> for SetExtendedAttributeMode {
2965 fn from(wire: crate::wire::SetExtendedAttributeMode) -> Self {
2966 match u32::from(wire.value) {
2967 1 => Self::Set,
2968
2969 2 => Self::Create,
2970
2971 3 => Self::Replace,
2972
2973 _ => unsafe { ::core::hint::unreachable_unchecked() },
2974 }
2975 }
2976 }
2977
2978 impl ::fidl_next::FromWire<crate::wire::SetExtendedAttributeMode> for SetExtendedAttributeMode {
2979 #[inline]
2980 fn from_wire(wire: crate::wire::SetExtendedAttributeMode) -> Self {
2981 Self::from(wire)
2982 }
2983 }
2984
2985 impl ::fidl_next::FromWireRef<crate::wire::SetExtendedAttributeMode> for SetExtendedAttributeMode {
2986 #[inline]
2987 fn from_wire_ref(wire: &crate::wire::SetExtendedAttributeMode) -> Self {
2988 Self::from(*wire)
2989 }
2990 }
2991
2992 pub type NodeSetExtendedAttributeResponse = ();
2993
2994 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2995 pub struct NodeRemoveExtendedAttributeRequest {
2996 pub name: ::std::vec::Vec<u8>,
2997 }
2998
2999 unsafe impl<___E>
3000 ::fidl_next::Encode<crate::wire::NodeRemoveExtendedAttributeRequest<'static>, ___E>
3001 for NodeRemoveExtendedAttributeRequest
3002 where
3003 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3004 ___E: ::fidl_next::Encoder,
3005 {
3006 #[inline]
3007 fn encode(
3008 self,
3009 encoder_: &mut ___E,
3010 out_: &mut ::core::mem::MaybeUninit<
3011 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
3012 >,
3013 _: (),
3014 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3015 ::fidl_next::munge! {
3016 let crate::wire::NodeRemoveExtendedAttributeRequest {
3017 name,
3018
3019 } = out_;
3020 }
3021
3022 ::fidl_next::Encode::encode(self.name, encoder_, name, (255, ()))?;
3023
3024 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
3025 ::fidl_next::Constrained::validate(_field, (255, ()))?;
3026
3027 Ok(())
3028 }
3029 }
3030
3031 unsafe impl<'a, ___E>
3032 ::fidl_next::Encode<crate::wire::NodeRemoveExtendedAttributeRequest<'static>, ___E>
3033 for &'a NodeRemoveExtendedAttributeRequest
3034 where
3035 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3036 ___E: ::fidl_next::Encoder,
3037 {
3038 #[inline]
3039 fn encode(
3040 self,
3041 encoder_: &mut ___E,
3042 out_: &mut ::core::mem::MaybeUninit<
3043 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
3044 >,
3045 _: (),
3046 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3047 ::fidl_next::munge! {
3048 let crate::wire::NodeRemoveExtendedAttributeRequest {
3049 name,
3050
3051 } = out_;
3052 }
3053
3054 ::fidl_next::Encode::encode(&self.name, encoder_, name, (255, ()))?;
3055
3056 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
3057 ::fidl_next::Constrained::validate(_field, (255, ()))?;
3058
3059 Ok(())
3060 }
3061 }
3062
3063 unsafe impl<___E>
3064 ::fidl_next::EncodeOption<
3065 ::fidl_next::wire::Box<
3066 'static,
3067 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
3068 >,
3069 ___E,
3070 > for NodeRemoveExtendedAttributeRequest
3071 where
3072 ___E: ::fidl_next::Encoder + ?Sized,
3073 NodeRemoveExtendedAttributeRequest:
3074 ::fidl_next::Encode<crate::wire::NodeRemoveExtendedAttributeRequest<'static>, ___E>,
3075 {
3076 #[inline]
3077 fn encode_option(
3078 this: ::core::option::Option<Self>,
3079 encoder: &mut ___E,
3080 out: &mut ::core::mem::MaybeUninit<
3081 ::fidl_next::wire::Box<
3082 'static,
3083 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
3084 >,
3085 >,
3086 _: (),
3087 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3088 if let Some(inner) = this {
3089 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3090 ::fidl_next::wire::Box::encode_present(out);
3091 } else {
3092 ::fidl_next::wire::Box::encode_absent(out);
3093 }
3094
3095 Ok(())
3096 }
3097 }
3098
3099 unsafe impl<'a, ___E>
3100 ::fidl_next::EncodeOption<
3101 ::fidl_next::wire::Box<
3102 'static,
3103 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
3104 >,
3105 ___E,
3106 > for &'a NodeRemoveExtendedAttributeRequest
3107 where
3108 ___E: ::fidl_next::Encoder + ?Sized,
3109 &'a NodeRemoveExtendedAttributeRequest:
3110 ::fidl_next::Encode<crate::wire::NodeRemoveExtendedAttributeRequest<'static>, ___E>,
3111 {
3112 #[inline]
3113 fn encode_option(
3114 this: ::core::option::Option<Self>,
3115 encoder: &mut ___E,
3116 out: &mut ::core::mem::MaybeUninit<
3117 ::fidl_next::wire::Box<
3118 'static,
3119 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
3120 >,
3121 >,
3122 _: (),
3123 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3124 if let Some(inner) = this {
3125 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3126 ::fidl_next::wire::Box::encode_present(out);
3127 } else {
3128 ::fidl_next::wire::Box::encode_absent(out);
3129 }
3130
3131 Ok(())
3132 }
3133 }
3134
3135 impl<'de> ::fidl_next::FromWire<crate::wire::NodeRemoveExtendedAttributeRequest<'de>>
3136 for NodeRemoveExtendedAttributeRequest
3137 {
3138 #[inline]
3139 fn from_wire(wire: crate::wire::NodeRemoveExtendedAttributeRequest<'de>) -> Self {
3140 Self { name: ::fidl_next::FromWire::from_wire(wire.name) }
3141 }
3142 }
3143
3144 impl<'de> ::fidl_next::FromWireRef<crate::wire::NodeRemoveExtendedAttributeRequest<'de>>
3145 for NodeRemoveExtendedAttributeRequest
3146 {
3147 #[inline]
3148 fn from_wire_ref(wire: &crate::wire::NodeRemoveExtendedAttributeRequest<'de>) -> Self {
3149 Self { name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name) }
3150 }
3151 }
3152
3153 pub type NodeRemoveExtendedAttributeResponse = ();
3154
3155 pub type DirectoryCreateSymlinkResponse = ();
3156
3157 pub type NodeSetFlagsResponse = ();
3158
3159 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3160 pub struct NodeDeprecatedGetAttrResponse {
3161 pub s: ::fidl_next::fuchsia::zx::Status,
3162
3163 pub attributes: crate::natural::NodeAttributes,
3164 }
3165
3166 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedGetAttrResponse, ___E>
3167 for NodeDeprecatedGetAttrResponse
3168 where
3169 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3170 {
3171 #[inline]
3172 fn encode(
3173 self,
3174 encoder_: &mut ___E,
3175 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedGetAttrResponse>,
3176 _: (),
3177 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3178 ::fidl_next::munge! {
3179 let crate::wire::NodeDeprecatedGetAttrResponse {
3180 s,
3181 attributes,
3182
3183 } = out_;
3184 }
3185
3186 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
3187
3188 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
3189
3190 ::fidl_next::Encode::encode(self.attributes, encoder_, attributes, ())?;
3191
3192 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(attributes.as_mut_ptr()) };
3193
3194 Ok(())
3195 }
3196 }
3197
3198 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedGetAttrResponse, ___E>
3199 for &'a NodeDeprecatedGetAttrResponse
3200 where
3201 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3202 {
3203 #[inline]
3204 fn encode(
3205 self,
3206 encoder_: &mut ___E,
3207 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedGetAttrResponse>,
3208 _: (),
3209 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3210 ::fidl_next::munge! {
3211 let crate::wire::NodeDeprecatedGetAttrResponse {
3212 s,
3213 attributes,
3214
3215 } = out_;
3216 }
3217
3218 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
3219
3220 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
3221
3222 ::fidl_next::Encode::encode(&self.attributes, encoder_, attributes, ())?;
3223
3224 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(attributes.as_mut_ptr()) };
3225
3226 Ok(())
3227 }
3228 }
3229
3230 unsafe impl<___E>
3231 ::fidl_next::EncodeOption<
3232 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetAttrResponse>,
3233 ___E,
3234 > for NodeDeprecatedGetAttrResponse
3235 where
3236 ___E: ::fidl_next::Encoder + ?Sized,
3237 NodeDeprecatedGetAttrResponse:
3238 ::fidl_next::Encode<crate::wire::NodeDeprecatedGetAttrResponse, ___E>,
3239 {
3240 #[inline]
3241 fn encode_option(
3242 this: ::core::option::Option<Self>,
3243 encoder: &mut ___E,
3244 out: &mut ::core::mem::MaybeUninit<
3245 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetAttrResponse>,
3246 >,
3247 _: (),
3248 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3249 if let Some(inner) = this {
3250 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3251 ::fidl_next::wire::Box::encode_present(out);
3252 } else {
3253 ::fidl_next::wire::Box::encode_absent(out);
3254 }
3255
3256 Ok(())
3257 }
3258 }
3259
3260 unsafe impl<'a, ___E>
3261 ::fidl_next::EncodeOption<
3262 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetAttrResponse>,
3263 ___E,
3264 > for &'a NodeDeprecatedGetAttrResponse
3265 where
3266 ___E: ::fidl_next::Encoder + ?Sized,
3267 &'a NodeDeprecatedGetAttrResponse:
3268 ::fidl_next::Encode<crate::wire::NodeDeprecatedGetAttrResponse, ___E>,
3269 {
3270 #[inline]
3271 fn encode_option(
3272 this: ::core::option::Option<Self>,
3273 encoder: &mut ___E,
3274 out: &mut ::core::mem::MaybeUninit<
3275 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetAttrResponse>,
3276 >,
3277 _: (),
3278 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3279 if let Some(inner) = this {
3280 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3281 ::fidl_next::wire::Box::encode_present(out);
3282 } else {
3283 ::fidl_next::wire::Box::encode_absent(out);
3284 }
3285
3286 Ok(())
3287 }
3288 }
3289
3290 impl ::fidl_next::FromWire<crate::wire::NodeDeprecatedGetAttrResponse>
3291 for NodeDeprecatedGetAttrResponse
3292 {
3293 #[inline]
3294 fn from_wire(wire: crate::wire::NodeDeprecatedGetAttrResponse) -> Self {
3295 Self {
3296 s: ::fidl_next::FromWire::from_wire(wire.s),
3297
3298 attributes: ::fidl_next::FromWire::from_wire(wire.attributes),
3299 }
3300 }
3301 }
3302
3303 impl ::fidl_next::FromWireRef<crate::wire::NodeDeprecatedGetAttrResponse>
3304 for NodeDeprecatedGetAttrResponse
3305 {
3306 #[inline]
3307 fn from_wire_ref(wire: &crate::wire::NodeDeprecatedGetAttrResponse) -> Self {
3308 Self {
3309 s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s),
3310
3311 attributes: ::fidl_next::FromWireRef::from_wire_ref(&wire.attributes),
3312 }
3313 }
3314 }
3315
3316 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3317 pub struct NodeDeprecatedSetAttrRequest {
3318 pub flags: crate::natural::NodeAttributeFlags,
3319
3320 pub attributes: crate::natural::NodeAttributes,
3321 }
3322
3323 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrRequest, ___E>
3324 for NodeDeprecatedSetAttrRequest
3325 where
3326 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3327 {
3328 #[inline]
3329 fn encode(
3330 self,
3331 encoder_: &mut ___E,
3332 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetAttrRequest>,
3333 _: (),
3334 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3335 ::fidl_next::munge! {
3336 let crate::wire::NodeDeprecatedSetAttrRequest {
3337 flags,
3338 attributes,
3339
3340 } = out_;
3341 }
3342
3343 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
3344
3345 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
3346
3347 ::fidl_next::Encode::encode(self.attributes, encoder_, attributes, ())?;
3348
3349 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(attributes.as_mut_ptr()) };
3350
3351 Ok(())
3352 }
3353 }
3354
3355 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrRequest, ___E>
3356 for &'a NodeDeprecatedSetAttrRequest
3357 where
3358 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3359 {
3360 #[inline]
3361 fn encode(
3362 self,
3363 encoder_: &mut ___E,
3364 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetAttrRequest>,
3365 _: (),
3366 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3367 ::fidl_next::munge! {
3368 let crate::wire::NodeDeprecatedSetAttrRequest {
3369 flags,
3370 attributes,
3371
3372 } = out_;
3373 }
3374
3375 ::fidl_next::Encode::encode(&self.flags, encoder_, flags, ())?;
3376
3377 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
3378
3379 ::fidl_next::Encode::encode(&self.attributes, encoder_, attributes, ())?;
3380
3381 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(attributes.as_mut_ptr()) };
3382
3383 Ok(())
3384 }
3385 }
3386
3387 unsafe impl<___E>
3388 ::fidl_next::EncodeOption<
3389 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrRequest>,
3390 ___E,
3391 > for NodeDeprecatedSetAttrRequest
3392 where
3393 ___E: ::fidl_next::Encoder + ?Sized,
3394 NodeDeprecatedSetAttrRequest:
3395 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrRequest, ___E>,
3396 {
3397 #[inline]
3398 fn encode_option(
3399 this: ::core::option::Option<Self>,
3400 encoder: &mut ___E,
3401 out: &mut ::core::mem::MaybeUninit<
3402 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrRequest>,
3403 >,
3404 _: (),
3405 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3406 if let Some(inner) = this {
3407 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3408 ::fidl_next::wire::Box::encode_present(out);
3409 } else {
3410 ::fidl_next::wire::Box::encode_absent(out);
3411 }
3412
3413 Ok(())
3414 }
3415 }
3416
3417 unsafe impl<'a, ___E>
3418 ::fidl_next::EncodeOption<
3419 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrRequest>,
3420 ___E,
3421 > for &'a NodeDeprecatedSetAttrRequest
3422 where
3423 ___E: ::fidl_next::Encoder + ?Sized,
3424 &'a NodeDeprecatedSetAttrRequest:
3425 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrRequest, ___E>,
3426 {
3427 #[inline]
3428 fn encode_option(
3429 this: ::core::option::Option<Self>,
3430 encoder: &mut ___E,
3431 out: &mut ::core::mem::MaybeUninit<
3432 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrRequest>,
3433 >,
3434 _: (),
3435 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3436 if let Some(inner) = this {
3437 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3438 ::fidl_next::wire::Box::encode_present(out);
3439 } else {
3440 ::fidl_next::wire::Box::encode_absent(out);
3441 }
3442
3443 Ok(())
3444 }
3445 }
3446
3447 impl ::fidl_next::FromWire<crate::wire::NodeDeprecatedSetAttrRequest>
3448 for NodeDeprecatedSetAttrRequest
3449 {
3450 #[inline]
3451 fn from_wire(wire: crate::wire::NodeDeprecatedSetAttrRequest) -> Self {
3452 Self {
3453 flags: ::fidl_next::FromWire::from_wire(wire.flags),
3454
3455 attributes: ::fidl_next::FromWire::from_wire(wire.attributes),
3456 }
3457 }
3458 }
3459
3460 impl ::fidl_next::FromWireRef<crate::wire::NodeDeprecatedSetAttrRequest>
3461 for NodeDeprecatedSetAttrRequest
3462 {
3463 #[inline]
3464 fn from_wire_ref(wire: &crate::wire::NodeDeprecatedSetAttrRequest) -> Self {
3465 Self {
3466 flags: ::fidl_next::FromWireRef::from_wire_ref(&wire.flags),
3467
3468 attributes: ::fidl_next::FromWireRef::from_wire_ref(&wire.attributes),
3469 }
3470 }
3471 }
3472
3473 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3474 #[repr(C)]
3475 pub struct NodeDeprecatedSetAttrResponse {
3476 pub s: ::fidl_next::fuchsia::zx::Status,
3477 }
3478
3479 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrResponse, ___E>
3480 for NodeDeprecatedSetAttrResponse
3481 where
3482 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3483 {
3484 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
3485 Self,
3486 crate::wire::NodeDeprecatedSetAttrResponse,
3487 > = unsafe {
3488 ::fidl_next::CopyOptimization::enable_if(
3489 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::Encode<
3490 ::fidl_next::wire::fuchsia::Status,
3491 ___E,
3492 >>::COPY_OPTIMIZATION
3493 .is_enabled(),
3494 )
3495 };
3496
3497 #[inline]
3498 fn encode(
3499 self,
3500 encoder_: &mut ___E,
3501 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetAttrResponse>,
3502 _: (),
3503 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3504 ::fidl_next::munge! {
3505 let crate::wire::NodeDeprecatedSetAttrResponse {
3506 s,
3507
3508 } = out_;
3509 }
3510
3511 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
3512
3513 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
3514
3515 Ok(())
3516 }
3517 }
3518
3519 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrResponse, ___E>
3520 for &'a NodeDeprecatedSetAttrResponse
3521 where
3522 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3523 {
3524 #[inline]
3525 fn encode(
3526 self,
3527 encoder_: &mut ___E,
3528 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetAttrResponse>,
3529 _: (),
3530 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3531 ::fidl_next::munge! {
3532 let crate::wire::NodeDeprecatedSetAttrResponse {
3533 s,
3534
3535 } = out_;
3536 }
3537
3538 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
3539
3540 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
3541
3542 Ok(())
3543 }
3544 }
3545
3546 unsafe impl<___E>
3547 ::fidl_next::EncodeOption<
3548 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrResponse>,
3549 ___E,
3550 > for NodeDeprecatedSetAttrResponse
3551 where
3552 ___E: ::fidl_next::Encoder + ?Sized,
3553 NodeDeprecatedSetAttrResponse:
3554 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrResponse, ___E>,
3555 {
3556 #[inline]
3557 fn encode_option(
3558 this: ::core::option::Option<Self>,
3559 encoder: &mut ___E,
3560 out: &mut ::core::mem::MaybeUninit<
3561 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrResponse>,
3562 >,
3563 _: (),
3564 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3565 if let Some(inner) = this {
3566 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3567 ::fidl_next::wire::Box::encode_present(out);
3568 } else {
3569 ::fidl_next::wire::Box::encode_absent(out);
3570 }
3571
3572 Ok(())
3573 }
3574 }
3575
3576 unsafe impl<'a, ___E>
3577 ::fidl_next::EncodeOption<
3578 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrResponse>,
3579 ___E,
3580 > for &'a NodeDeprecatedSetAttrResponse
3581 where
3582 ___E: ::fidl_next::Encoder + ?Sized,
3583 &'a NodeDeprecatedSetAttrResponse:
3584 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrResponse, ___E>,
3585 {
3586 #[inline]
3587 fn encode_option(
3588 this: ::core::option::Option<Self>,
3589 encoder: &mut ___E,
3590 out: &mut ::core::mem::MaybeUninit<
3591 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetAttrResponse>,
3592 >,
3593 _: (),
3594 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3595 if let Some(inner) = this {
3596 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3597 ::fidl_next::wire::Box::encode_present(out);
3598 } else {
3599 ::fidl_next::wire::Box::encode_absent(out);
3600 }
3601
3602 Ok(())
3603 }
3604 }
3605
3606 impl ::fidl_next::FromWire<crate::wire::NodeDeprecatedSetAttrResponse>
3607 for NodeDeprecatedSetAttrResponse
3608 {
3609 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
3610 crate::wire::NodeDeprecatedSetAttrResponse,
3611 Self,
3612 > = unsafe {
3613 ::fidl_next::CopyOptimization::enable_if(
3614 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::FromWire<
3615 ::fidl_next::wire::fuchsia::Status,
3616 >>::COPY_OPTIMIZATION
3617 .is_enabled(),
3618 )
3619 };
3620
3621 #[inline]
3622 fn from_wire(wire: crate::wire::NodeDeprecatedSetAttrResponse) -> Self {
3623 Self { s: ::fidl_next::FromWire::from_wire(wire.s) }
3624 }
3625 }
3626
3627 impl ::fidl_next::FromWireRef<crate::wire::NodeDeprecatedSetAttrResponse>
3628 for NodeDeprecatedSetAttrResponse
3629 {
3630 #[inline]
3631 fn from_wire_ref(wire: &crate::wire::NodeDeprecatedSetAttrResponse) -> Self {
3632 Self { s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s) }
3633 }
3634 }
3635
3636 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3637 #[repr(C)]
3638 pub struct NodeDeprecatedGetFlagsResponse {
3639 pub s: ::fidl_next::fuchsia::zx::Status,
3640
3641 pub flags: crate::natural::OpenFlags,
3642 }
3643
3644 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedGetFlagsResponse, ___E>
3645 for NodeDeprecatedGetFlagsResponse
3646 where
3647 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3648 {
3649 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
3650 Self,
3651 crate::wire::NodeDeprecatedGetFlagsResponse,
3652 > = unsafe {
3653 ::fidl_next::CopyOptimization::enable_if(
3654 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::Encode<
3655 ::fidl_next::wire::fuchsia::Status,
3656 ___E,
3657 >>::COPY_OPTIMIZATION
3658 .is_enabled()
3659 && <crate::natural::OpenFlags as ::fidl_next::Encode<
3660 crate::wire::OpenFlags,
3661 ___E,
3662 >>::COPY_OPTIMIZATION
3663 .is_enabled(),
3664 )
3665 };
3666
3667 #[inline]
3668 fn encode(
3669 self,
3670 encoder_: &mut ___E,
3671 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedGetFlagsResponse>,
3672 _: (),
3673 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3674 ::fidl_next::munge! {
3675 let crate::wire::NodeDeprecatedGetFlagsResponse {
3676 s,
3677 flags,
3678
3679 } = out_;
3680 }
3681
3682 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
3683
3684 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
3685
3686 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
3687
3688 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
3689
3690 Ok(())
3691 }
3692 }
3693
3694 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedGetFlagsResponse, ___E>
3695 for &'a NodeDeprecatedGetFlagsResponse
3696 where
3697 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3698 {
3699 #[inline]
3700 fn encode(
3701 self,
3702 encoder_: &mut ___E,
3703 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedGetFlagsResponse>,
3704 _: (),
3705 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3706 ::fidl_next::munge! {
3707 let crate::wire::NodeDeprecatedGetFlagsResponse {
3708 s,
3709 flags,
3710
3711 } = out_;
3712 }
3713
3714 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
3715
3716 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
3717
3718 ::fidl_next::Encode::encode(&self.flags, encoder_, flags, ())?;
3719
3720 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
3721
3722 Ok(())
3723 }
3724 }
3725
3726 unsafe impl<___E>
3727 ::fidl_next::EncodeOption<
3728 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetFlagsResponse>,
3729 ___E,
3730 > for NodeDeprecatedGetFlagsResponse
3731 where
3732 ___E: ::fidl_next::Encoder + ?Sized,
3733 NodeDeprecatedGetFlagsResponse:
3734 ::fidl_next::Encode<crate::wire::NodeDeprecatedGetFlagsResponse, ___E>,
3735 {
3736 #[inline]
3737 fn encode_option(
3738 this: ::core::option::Option<Self>,
3739 encoder: &mut ___E,
3740 out: &mut ::core::mem::MaybeUninit<
3741 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetFlagsResponse>,
3742 >,
3743 _: (),
3744 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3745 if let Some(inner) = this {
3746 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3747 ::fidl_next::wire::Box::encode_present(out);
3748 } else {
3749 ::fidl_next::wire::Box::encode_absent(out);
3750 }
3751
3752 Ok(())
3753 }
3754 }
3755
3756 unsafe impl<'a, ___E>
3757 ::fidl_next::EncodeOption<
3758 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetFlagsResponse>,
3759 ___E,
3760 > for &'a NodeDeprecatedGetFlagsResponse
3761 where
3762 ___E: ::fidl_next::Encoder + ?Sized,
3763 &'a NodeDeprecatedGetFlagsResponse:
3764 ::fidl_next::Encode<crate::wire::NodeDeprecatedGetFlagsResponse, ___E>,
3765 {
3766 #[inline]
3767 fn encode_option(
3768 this: ::core::option::Option<Self>,
3769 encoder: &mut ___E,
3770 out: &mut ::core::mem::MaybeUninit<
3771 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedGetFlagsResponse>,
3772 >,
3773 _: (),
3774 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3775 if let Some(inner) = this {
3776 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3777 ::fidl_next::wire::Box::encode_present(out);
3778 } else {
3779 ::fidl_next::wire::Box::encode_absent(out);
3780 }
3781
3782 Ok(())
3783 }
3784 }
3785
3786 impl ::fidl_next::FromWire<crate::wire::NodeDeprecatedGetFlagsResponse>
3787 for NodeDeprecatedGetFlagsResponse
3788 {
3789 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
3790 crate::wire::NodeDeprecatedGetFlagsResponse,
3791 Self,
3792 > = unsafe {
3793 ::fidl_next::CopyOptimization::enable_if(
3794 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::FromWire<
3795 ::fidl_next::wire::fuchsia::Status,
3796 >>::COPY_OPTIMIZATION
3797 .is_enabled()
3798 && <crate::natural::OpenFlags as ::fidl_next::FromWire<
3799 crate::wire::OpenFlags,
3800 >>::COPY_OPTIMIZATION
3801 .is_enabled(),
3802 )
3803 };
3804
3805 #[inline]
3806 fn from_wire(wire: crate::wire::NodeDeprecatedGetFlagsResponse) -> Self {
3807 Self {
3808 s: ::fidl_next::FromWire::from_wire(wire.s),
3809
3810 flags: ::fidl_next::FromWire::from_wire(wire.flags),
3811 }
3812 }
3813 }
3814
3815 impl ::fidl_next::FromWireRef<crate::wire::NodeDeprecatedGetFlagsResponse>
3816 for NodeDeprecatedGetFlagsResponse
3817 {
3818 #[inline]
3819 fn from_wire_ref(wire: &crate::wire::NodeDeprecatedGetFlagsResponse) -> Self {
3820 Self {
3821 s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s),
3822
3823 flags: ::fidl_next::FromWireRef::from_wire_ref(&wire.flags),
3824 }
3825 }
3826 }
3827
3828 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3829 #[repr(C)]
3830 pub struct NodeDeprecatedSetFlagsRequest {
3831 pub flags: crate::natural::OpenFlags,
3832 }
3833
3834 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsRequest, ___E>
3835 for NodeDeprecatedSetFlagsRequest
3836 where
3837 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3838 {
3839 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
3840 Self,
3841 crate::wire::NodeDeprecatedSetFlagsRequest,
3842 > = unsafe {
3843 ::fidl_next::CopyOptimization::enable_if(
3844 true && <crate::natural::OpenFlags as ::fidl_next::Encode<
3845 crate::wire::OpenFlags,
3846 ___E,
3847 >>::COPY_OPTIMIZATION
3848 .is_enabled(),
3849 )
3850 };
3851
3852 #[inline]
3853 fn encode(
3854 self,
3855 encoder_: &mut ___E,
3856 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetFlagsRequest>,
3857 _: (),
3858 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3859 ::fidl_next::munge! {
3860 let crate::wire::NodeDeprecatedSetFlagsRequest {
3861 flags,
3862
3863 } = out_;
3864 }
3865
3866 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
3867
3868 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
3869
3870 Ok(())
3871 }
3872 }
3873
3874 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsRequest, ___E>
3875 for &'a NodeDeprecatedSetFlagsRequest
3876 where
3877 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3878 {
3879 #[inline]
3880 fn encode(
3881 self,
3882 encoder_: &mut ___E,
3883 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetFlagsRequest>,
3884 _: (),
3885 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3886 ::fidl_next::munge! {
3887 let crate::wire::NodeDeprecatedSetFlagsRequest {
3888 flags,
3889
3890 } = out_;
3891 }
3892
3893 ::fidl_next::Encode::encode(&self.flags, encoder_, flags, ())?;
3894
3895 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
3896
3897 Ok(())
3898 }
3899 }
3900
3901 unsafe impl<___E>
3902 ::fidl_next::EncodeOption<
3903 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsRequest>,
3904 ___E,
3905 > for NodeDeprecatedSetFlagsRequest
3906 where
3907 ___E: ::fidl_next::Encoder + ?Sized,
3908 NodeDeprecatedSetFlagsRequest:
3909 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsRequest, ___E>,
3910 {
3911 #[inline]
3912 fn encode_option(
3913 this: ::core::option::Option<Self>,
3914 encoder: &mut ___E,
3915 out: &mut ::core::mem::MaybeUninit<
3916 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsRequest>,
3917 >,
3918 _: (),
3919 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3920 if let Some(inner) = this {
3921 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3922 ::fidl_next::wire::Box::encode_present(out);
3923 } else {
3924 ::fidl_next::wire::Box::encode_absent(out);
3925 }
3926
3927 Ok(())
3928 }
3929 }
3930
3931 unsafe impl<'a, ___E>
3932 ::fidl_next::EncodeOption<
3933 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsRequest>,
3934 ___E,
3935 > for &'a NodeDeprecatedSetFlagsRequest
3936 where
3937 ___E: ::fidl_next::Encoder + ?Sized,
3938 &'a NodeDeprecatedSetFlagsRequest:
3939 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsRequest, ___E>,
3940 {
3941 #[inline]
3942 fn encode_option(
3943 this: ::core::option::Option<Self>,
3944 encoder: &mut ___E,
3945 out: &mut ::core::mem::MaybeUninit<
3946 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsRequest>,
3947 >,
3948 _: (),
3949 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3950 if let Some(inner) = this {
3951 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
3952 ::fidl_next::wire::Box::encode_present(out);
3953 } else {
3954 ::fidl_next::wire::Box::encode_absent(out);
3955 }
3956
3957 Ok(())
3958 }
3959 }
3960
3961 impl ::fidl_next::FromWire<crate::wire::NodeDeprecatedSetFlagsRequest>
3962 for NodeDeprecatedSetFlagsRequest
3963 {
3964 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
3965 crate::wire::NodeDeprecatedSetFlagsRequest,
3966 Self,
3967 > = unsafe {
3968 ::fidl_next::CopyOptimization::enable_if(
3969 true && <crate::natural::OpenFlags as ::fidl_next::FromWire<
3970 crate::wire::OpenFlags,
3971 >>::COPY_OPTIMIZATION
3972 .is_enabled(),
3973 )
3974 };
3975
3976 #[inline]
3977 fn from_wire(wire: crate::wire::NodeDeprecatedSetFlagsRequest) -> Self {
3978 Self { flags: ::fidl_next::FromWire::from_wire(wire.flags) }
3979 }
3980 }
3981
3982 impl ::fidl_next::FromWireRef<crate::wire::NodeDeprecatedSetFlagsRequest>
3983 for NodeDeprecatedSetFlagsRequest
3984 {
3985 #[inline]
3986 fn from_wire_ref(wire: &crate::wire::NodeDeprecatedSetFlagsRequest) -> Self {
3987 Self { flags: ::fidl_next::FromWireRef::from_wire_ref(&wire.flags) }
3988 }
3989 }
3990
3991 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3992 #[repr(C)]
3993 pub struct NodeDeprecatedSetFlagsResponse {
3994 pub s: ::fidl_next::fuchsia::zx::Status,
3995 }
3996
3997 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsResponse, ___E>
3998 for NodeDeprecatedSetFlagsResponse
3999 where
4000 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4001 {
4002 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
4003 Self,
4004 crate::wire::NodeDeprecatedSetFlagsResponse,
4005 > = unsafe {
4006 ::fidl_next::CopyOptimization::enable_if(
4007 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::Encode<
4008 ::fidl_next::wire::fuchsia::Status,
4009 ___E,
4010 >>::COPY_OPTIMIZATION
4011 .is_enabled(),
4012 )
4013 };
4014
4015 #[inline]
4016 fn encode(
4017 self,
4018 encoder_: &mut ___E,
4019 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetFlagsResponse>,
4020 _: (),
4021 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4022 ::fidl_next::munge! {
4023 let crate::wire::NodeDeprecatedSetFlagsResponse {
4024 s,
4025
4026 } = out_;
4027 }
4028
4029 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
4030
4031 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
4032
4033 Ok(())
4034 }
4035 }
4036
4037 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsResponse, ___E>
4038 for &'a NodeDeprecatedSetFlagsResponse
4039 where
4040 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4041 {
4042 #[inline]
4043 fn encode(
4044 self,
4045 encoder_: &mut ___E,
4046 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetFlagsResponse>,
4047 _: (),
4048 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4049 ::fidl_next::munge! {
4050 let crate::wire::NodeDeprecatedSetFlagsResponse {
4051 s,
4052
4053 } = out_;
4054 }
4055
4056 ::fidl_next::Encode::encode(&self.s, encoder_, s, ())?;
4057
4058 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(s.as_mut_ptr()) };
4059
4060 Ok(())
4061 }
4062 }
4063
4064 unsafe impl<___E>
4065 ::fidl_next::EncodeOption<
4066 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsResponse>,
4067 ___E,
4068 > for NodeDeprecatedSetFlagsResponse
4069 where
4070 ___E: ::fidl_next::Encoder + ?Sized,
4071 NodeDeprecatedSetFlagsResponse:
4072 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsResponse, ___E>,
4073 {
4074 #[inline]
4075 fn encode_option(
4076 this: ::core::option::Option<Self>,
4077 encoder: &mut ___E,
4078 out: &mut ::core::mem::MaybeUninit<
4079 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsResponse>,
4080 >,
4081 _: (),
4082 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4083 if let Some(inner) = this {
4084 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
4085 ::fidl_next::wire::Box::encode_present(out);
4086 } else {
4087 ::fidl_next::wire::Box::encode_absent(out);
4088 }
4089
4090 Ok(())
4091 }
4092 }
4093
4094 unsafe impl<'a, ___E>
4095 ::fidl_next::EncodeOption<
4096 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsResponse>,
4097 ___E,
4098 > for &'a NodeDeprecatedSetFlagsResponse
4099 where
4100 ___E: ::fidl_next::Encoder + ?Sized,
4101 &'a NodeDeprecatedSetFlagsResponse:
4102 ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsResponse, ___E>,
4103 {
4104 #[inline]
4105 fn encode_option(
4106 this: ::core::option::Option<Self>,
4107 encoder: &mut ___E,
4108 out: &mut ::core::mem::MaybeUninit<
4109 ::fidl_next::wire::Box<'static, crate::wire::NodeDeprecatedSetFlagsResponse>,
4110 >,
4111 _: (),
4112 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4113 if let Some(inner) = this {
4114 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
4115 ::fidl_next::wire::Box::encode_present(out);
4116 } else {
4117 ::fidl_next::wire::Box::encode_absent(out);
4118 }
4119
4120 Ok(())
4121 }
4122 }
4123
4124 impl ::fidl_next::FromWire<crate::wire::NodeDeprecatedSetFlagsResponse>
4125 for NodeDeprecatedSetFlagsResponse
4126 {
4127 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
4128 crate::wire::NodeDeprecatedSetFlagsResponse,
4129 Self,
4130 > = unsafe {
4131 ::fidl_next::CopyOptimization::enable_if(
4132 true && <::fidl_next::fuchsia::zx::Status as ::fidl_next::FromWire<
4133 ::fidl_next::wire::fuchsia::Status,
4134 >>::COPY_OPTIMIZATION
4135 .is_enabled(),
4136 )
4137 };
4138
4139 #[inline]
4140 fn from_wire(wire: crate::wire::NodeDeprecatedSetFlagsResponse) -> Self {
4141 Self { s: ::fidl_next::FromWire::from_wire(wire.s) }
4142 }
4143 }
4144
4145 impl ::fidl_next::FromWireRef<crate::wire::NodeDeprecatedSetFlagsResponse>
4146 for NodeDeprecatedSetFlagsResponse
4147 {
4148 #[inline]
4149 fn from_wire_ref(wire: &crate::wire::NodeDeprecatedSetFlagsResponse) -> Self {
4150 Self { s: ::fidl_next::FromWireRef::from_wire_ref(&wire.s) }
4151 }
4152 }
4153
4154 ::fidl_next::bitflags::bitflags! {
4155 #[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 {
4156 #[doc = " Allows opening child nodes with [`PROTOCOL_SERVICE`].\n"]const PERM_CONNECT = 1;
4157 #[doc = " Read byte contents of a file.\n"]const PERM_READ_BYTES = 2;
4158 #[doc = " Write byte contents to a file.\n"]const PERM_WRITE_BYTES = 4;
4159 #[doc = " Execute byte contents of a file.\n"]const PERM_EXECUTE = 8;
4160 #[doc = " Get/query attributes of a node.\n"]const PERM_GET_ATTRIBUTES = 16;
4161 #[doc = " Set/update attributes of a node.\n"]const PERM_UPDATE_ATTRIBUTES = 32;
4162 #[doc = " Enumerate (list) directory entries.\n"]const PERM_ENUMERATE = 64;
4163 #[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;
4164 #[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;
4165 #[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;
4166 #[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;
4167 #[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;
4168 #[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;
4169 #[doc = " Caller accepts [`fuchsia.io/Directory`] protocol. Equivalent to POSIX `O_DIRECTORY`.\n"]const PROTOCOL_DIRECTORY = 524288;
4170 #[doc = " Caller accepts [`fuchsia.io/File`] protocol.\n"]const PROTOCOL_FILE = 8589934592;
4171 #[doc = " Caller accepts [`fuchsia.io/Symlink`] protocol.\n"]const PROTOCOL_SYMLINK = 17179869184;
4172 #[doc = " Caller requests a [`fuchsia.io/Node.OnRepresentation`] event on success.\n"]const FLAG_SEND_REPRESENTATION = 1099511627776;
4173 #[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;
4174 #[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;
4175 #[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;
4176 #[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;
4177 #[doc = " Truncate the file to zero length upon opening it. Equivalent to POSIX `O_TRUNC`.\n"]const FILE_TRUNCATE = 262144;
4178 const _ = !0;
4179 }
4180 }
4181
4182 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Flags, ___E> for Flags
4183 where
4184 ___E: ?Sized,
4185 {
4186 #[inline]
4187 fn encode(
4188 self,
4189 encoder: &mut ___E,
4190 out: &mut ::core::mem::MaybeUninit<crate::wire::Flags>,
4191 _: (),
4192 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4193 ::fidl_next::Encode::encode(&self, encoder, out, ())
4194 }
4195 }
4196
4197 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Flags, ___E> for &'a Flags
4198 where
4199 ___E: ?Sized,
4200 {
4201 #[inline]
4202 fn encode(
4203 self,
4204 _: &mut ___E,
4205 out: &mut ::core::mem::MaybeUninit<crate::wire::Flags>,
4206 _: (),
4207 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4208 ::fidl_next::munge!(let crate::wire::Flags { value } = out);
4209
4210 let _ = value.write(::fidl_next::wire::Uint64::from(self.bits()));
4211 Ok(())
4212 }
4213 }
4214
4215 impl ::core::convert::From<crate::wire::Flags> for Flags {
4216 fn from(wire: crate::wire::Flags) -> Self {
4217 Self::from_bits_retain(u64::from(wire.value))
4218 }
4219 }
4220
4221 impl ::fidl_next::FromWire<crate::wire::Flags> for Flags {
4222 #[inline]
4223 fn from_wire(wire: crate::wire::Flags) -> Self {
4224 Self::from(wire)
4225 }
4226 }
4227
4228 impl ::fidl_next::FromWireRef<crate::wire::Flags> for Flags {
4229 #[inline]
4230 fn from_wire_ref(wire: &crate::wire::Flags) -> Self {
4231 Self::from(*wire)
4232 }
4233 }
4234
4235 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4236 #[repr(C)]
4237 pub struct NodeGetFlagsResponse {
4238 pub flags: crate::natural::Flags,
4239 }
4240
4241 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeGetFlagsResponse, ___E>
4242 for NodeGetFlagsResponse
4243 where
4244 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4245 {
4246 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
4247 Self,
4248 crate::wire::NodeGetFlagsResponse,
4249 > = unsafe {
4250 ::fidl_next::CopyOptimization::enable_if(
4251 true
4252
4253 && <
4254 crate::natural::Flags as ::fidl_next::Encode<crate::wire::Flags, ___E>
4255 >::COPY_OPTIMIZATION.is_enabled()
4256
4257 )
4258 };
4259
4260 #[inline]
4261 fn encode(
4262 self,
4263 encoder_: &mut ___E,
4264 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeGetFlagsResponse>,
4265 _: (),
4266 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4267 ::fidl_next::munge! {
4268 let crate::wire::NodeGetFlagsResponse {
4269 flags,
4270
4271 } = out_;
4272 }
4273
4274 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
4275
4276 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
4277
4278 Ok(())
4279 }
4280 }
4281
4282 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeGetFlagsResponse, ___E>
4283 for &'a NodeGetFlagsResponse
4284 where
4285 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4286 {
4287 #[inline]
4288 fn encode(
4289 self,
4290 encoder_: &mut ___E,
4291 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeGetFlagsResponse>,
4292 _: (),
4293 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4294 ::fidl_next::munge! {
4295 let crate::wire::NodeGetFlagsResponse {
4296 flags,
4297
4298 } = out_;
4299 }
4300
4301 ::fidl_next::Encode::encode(&self.flags, encoder_, flags, ())?;
4302
4303 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
4304
4305 Ok(())
4306 }
4307 }
4308
4309 unsafe impl<___E>
4310 ::fidl_next::EncodeOption<
4311 ::fidl_next::wire::Box<'static, crate::wire::NodeGetFlagsResponse>,
4312 ___E,
4313 > for NodeGetFlagsResponse
4314 where
4315 ___E: ::fidl_next::Encoder + ?Sized,
4316 NodeGetFlagsResponse: ::fidl_next::Encode<crate::wire::NodeGetFlagsResponse, ___E>,
4317 {
4318 #[inline]
4319 fn encode_option(
4320 this: ::core::option::Option<Self>,
4321 encoder: &mut ___E,
4322 out: &mut ::core::mem::MaybeUninit<
4323 ::fidl_next::wire::Box<'static, crate::wire::NodeGetFlagsResponse>,
4324 >,
4325 _: (),
4326 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4327 if let Some(inner) = this {
4328 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
4329 ::fidl_next::wire::Box::encode_present(out);
4330 } else {
4331 ::fidl_next::wire::Box::encode_absent(out);
4332 }
4333
4334 Ok(())
4335 }
4336 }
4337
4338 unsafe impl<'a, ___E>
4339 ::fidl_next::EncodeOption<
4340 ::fidl_next::wire::Box<'static, crate::wire::NodeGetFlagsResponse>,
4341 ___E,
4342 > for &'a NodeGetFlagsResponse
4343 where
4344 ___E: ::fidl_next::Encoder + ?Sized,
4345 &'a NodeGetFlagsResponse: ::fidl_next::Encode<crate::wire::NodeGetFlagsResponse, ___E>,
4346 {
4347 #[inline]
4348 fn encode_option(
4349 this: ::core::option::Option<Self>,
4350 encoder: &mut ___E,
4351 out: &mut ::core::mem::MaybeUninit<
4352 ::fidl_next::wire::Box<'static, crate::wire::NodeGetFlagsResponse>,
4353 >,
4354 _: (),
4355 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4356 if let Some(inner) = this {
4357 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
4358 ::fidl_next::wire::Box::encode_present(out);
4359 } else {
4360 ::fidl_next::wire::Box::encode_absent(out);
4361 }
4362
4363 Ok(())
4364 }
4365 }
4366
4367 impl ::fidl_next::FromWire<crate::wire::NodeGetFlagsResponse> for NodeGetFlagsResponse {
4368 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
4369 crate::wire::NodeGetFlagsResponse,
4370 Self,
4371 > = unsafe {
4372 ::fidl_next::CopyOptimization::enable_if(
4373 true
4374
4375 && <
4376 crate::natural::Flags as ::fidl_next::FromWire<crate::wire::Flags>
4377 >::COPY_OPTIMIZATION.is_enabled()
4378
4379 )
4380 };
4381
4382 #[inline]
4383 fn from_wire(wire: crate::wire::NodeGetFlagsResponse) -> Self {
4384 Self { flags: ::fidl_next::FromWire::from_wire(wire.flags) }
4385 }
4386 }
4387
4388 impl ::fidl_next::FromWireRef<crate::wire::NodeGetFlagsResponse> for NodeGetFlagsResponse {
4389 #[inline]
4390 fn from_wire_ref(wire: &crate::wire::NodeGetFlagsResponse) -> Self {
4391 Self { flags: ::fidl_next::FromWireRef::from_wire_ref(&wire.flags) }
4392 }
4393 }
4394
4395 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4396 #[repr(C)]
4397 pub struct NodeSetFlagsRequest {
4398 pub flags: crate::natural::Flags,
4399 }
4400
4401 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeSetFlagsRequest, ___E>
4402 for NodeSetFlagsRequest
4403 where
4404 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4405 {
4406 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
4407 Self,
4408 crate::wire::NodeSetFlagsRequest,
4409 > = unsafe {
4410 ::fidl_next::CopyOptimization::enable_if(
4411 true
4412
4413 && <
4414 crate::natural::Flags as ::fidl_next::Encode<crate::wire::Flags, ___E>
4415 >::COPY_OPTIMIZATION.is_enabled()
4416
4417 )
4418 };
4419
4420 #[inline]
4421 fn encode(
4422 self,
4423 encoder_: &mut ___E,
4424 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeSetFlagsRequest>,
4425 _: (),
4426 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4427 ::fidl_next::munge! {
4428 let crate::wire::NodeSetFlagsRequest {
4429 flags,
4430
4431 } = out_;
4432 }
4433
4434 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
4435
4436 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
4437
4438 Ok(())
4439 }
4440 }
4441
4442 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeSetFlagsRequest, ___E>
4443 for &'a NodeSetFlagsRequest
4444 where
4445 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4446 {
4447 #[inline]
4448 fn encode(
4449 self,
4450 encoder_: &mut ___E,
4451 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeSetFlagsRequest>,
4452 _: (),
4453 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4454 ::fidl_next::munge! {
4455 let crate::wire::NodeSetFlagsRequest {
4456 flags,
4457
4458 } = out_;
4459 }
4460
4461 ::fidl_next::Encode::encode(&self.flags, encoder_, flags, ())?;
4462
4463 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
4464
4465 Ok(())
4466 }
4467 }
4468
4469 unsafe impl<___E>
4470 ::fidl_next::EncodeOption<
4471 ::fidl_next::wire::Box<'static, crate::wire::NodeSetFlagsRequest>,
4472 ___E,
4473 > for NodeSetFlagsRequest
4474 where
4475 ___E: ::fidl_next::Encoder + ?Sized,
4476 NodeSetFlagsRequest: ::fidl_next::Encode<crate::wire::NodeSetFlagsRequest, ___E>,
4477 {
4478 #[inline]
4479 fn encode_option(
4480 this: ::core::option::Option<Self>,
4481 encoder: &mut ___E,
4482 out: &mut ::core::mem::MaybeUninit<
4483 ::fidl_next::wire::Box<'static, crate::wire::NodeSetFlagsRequest>,
4484 >,
4485 _: (),
4486 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4487 if let Some(inner) = this {
4488 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
4489 ::fidl_next::wire::Box::encode_present(out);
4490 } else {
4491 ::fidl_next::wire::Box::encode_absent(out);
4492 }
4493
4494 Ok(())
4495 }
4496 }
4497
4498 unsafe impl<'a, ___E>
4499 ::fidl_next::EncodeOption<
4500 ::fidl_next::wire::Box<'static, crate::wire::NodeSetFlagsRequest>,
4501 ___E,
4502 > for &'a NodeSetFlagsRequest
4503 where
4504 ___E: ::fidl_next::Encoder + ?Sized,
4505 &'a NodeSetFlagsRequest: ::fidl_next::Encode<crate::wire::NodeSetFlagsRequest, ___E>,
4506 {
4507 #[inline]
4508 fn encode_option(
4509 this: ::core::option::Option<Self>,
4510 encoder: &mut ___E,
4511 out: &mut ::core::mem::MaybeUninit<
4512 ::fidl_next::wire::Box<'static, crate::wire::NodeSetFlagsRequest>,
4513 >,
4514 _: (),
4515 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4516 if let Some(inner) = this {
4517 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
4518 ::fidl_next::wire::Box::encode_present(out);
4519 } else {
4520 ::fidl_next::wire::Box::encode_absent(out);
4521 }
4522
4523 Ok(())
4524 }
4525 }
4526
4527 impl ::fidl_next::FromWire<crate::wire::NodeSetFlagsRequest> for NodeSetFlagsRequest {
4528 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
4529 crate::wire::NodeSetFlagsRequest,
4530 Self,
4531 > = unsafe {
4532 ::fidl_next::CopyOptimization::enable_if(
4533 true
4534
4535 && <
4536 crate::natural::Flags as ::fidl_next::FromWire<crate::wire::Flags>
4537 >::COPY_OPTIMIZATION.is_enabled()
4538
4539 )
4540 };
4541
4542 #[inline]
4543 fn from_wire(wire: crate::wire::NodeSetFlagsRequest) -> Self {
4544 Self { flags: ::fidl_next::FromWire::from_wire(wire.flags) }
4545 }
4546 }
4547
4548 impl ::fidl_next::FromWireRef<crate::wire::NodeSetFlagsRequest> for NodeSetFlagsRequest {
4549 #[inline]
4550 fn from_wire_ref(wire: &crate::wire::NodeSetFlagsRequest) -> Self {
4551 Self { flags: ::fidl_next::FromWireRef::from_wire_ref(&wire.flags) }
4552 }
4553 }
4554
4555 #[doc = " Used in places where empty structs are needed, such as empty union members, to avoid creating\n new struct types.\n"]
4556 pub type EmptyStruct = ();
4557
4558 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4559 pub enum SelinuxContext {
4560 Data(::std::vec::Vec<u8>),
4561
4562 UseExtendedAttributes(crate::natural::EmptyStruct),
4563
4564 UnknownOrdinal_(u64),
4565 }
4566
4567 impl SelinuxContext {
4568 pub fn is_unknown(&self) -> bool {
4569 #[allow(unreachable_patterns)]
4570 match self {
4571 Self::UnknownOrdinal_(_) => true,
4572 _ => false,
4573 }
4574 }
4575 }
4576
4577 unsafe impl<___E> ::fidl_next::Encode<crate::wire::SelinuxContext<'static>, ___E> for SelinuxContext
4578 where
4579 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4580 ___E: ::fidl_next::Encoder,
4581 {
4582 #[inline]
4583 fn encode(
4584 self,
4585 encoder: &mut ___E,
4586 out: &mut ::core::mem::MaybeUninit<crate::wire::SelinuxContext<'static>>,
4587 _: (),
4588 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4589 ::fidl_next::munge!(let crate::wire::SelinuxContext { raw, _phantom: _ } = out);
4590
4591 match self {
4592 Self::Data(value) => ::fidl_next::wire::Union::encode_as::<
4593 ___E,
4594 ::fidl_next::wire::Vector<'static, u8>,
4595 >(value, 1, encoder, raw, (256, ()))?,
4596
4597 Self::UseExtendedAttributes(value) => ::fidl_next::wire::Union::encode_as::<
4598 ___E,
4599 crate::wire::EmptyStruct,
4600 >(value, 2, encoder, raw, ())?,
4601
4602 Self::UnknownOrdinal_(ordinal) => {
4603 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
4604 }
4605 }
4606
4607 Ok(())
4608 }
4609 }
4610
4611 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::SelinuxContext<'static>, ___E>
4612 for &'a SelinuxContext
4613 where
4614 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4615 ___E: ::fidl_next::Encoder,
4616 {
4617 #[inline]
4618 fn encode(
4619 self,
4620 encoder: &mut ___E,
4621 out: &mut ::core::mem::MaybeUninit<crate::wire::SelinuxContext<'static>>,
4622 _: (),
4623 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4624 ::fidl_next::munge!(let crate::wire::SelinuxContext { raw, _phantom: _ } = out);
4625
4626 match self {
4627 SelinuxContext::Data(value) => ::fidl_next::wire::Union::encode_as::<
4628 ___E,
4629 ::fidl_next::wire::Vector<'static, u8>,
4630 >(value, 1, encoder, raw, (256, ()))?,
4631
4632 SelinuxContext::UseExtendedAttributes(value) => {
4633 ::fidl_next::wire::Union::encode_as::<___E, crate::wire::EmptyStruct>(
4634 value,
4635 2,
4636 encoder,
4637 raw,
4638 (),
4639 )?
4640 }
4641
4642 SelinuxContext::UnknownOrdinal_(ordinal) => {
4643 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
4644 }
4645 }
4646
4647 Ok(())
4648 }
4649 }
4650
4651 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::SelinuxContext<'static>, ___E>
4652 for SelinuxContext
4653 where
4654 ___E: ?Sized,
4655 SelinuxContext: ::fidl_next::Encode<crate::wire::SelinuxContext<'static>, ___E>,
4656 {
4657 #[inline]
4658 fn encode_option(
4659 this: ::core::option::Option<Self>,
4660 encoder: &mut ___E,
4661 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::SelinuxContext<'static>>,
4662 _: (),
4663 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4664 ::fidl_next::munge!(let crate::wire_optional::SelinuxContext { raw, _phantom: _ } = &mut *out);
4665
4666 if let Some(inner) = this {
4667 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
4668 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
4669 } else {
4670 ::fidl_next::wire::Union::encode_absent(raw);
4671 }
4672
4673 Ok(())
4674 }
4675 }
4676
4677 unsafe impl<'a, ___E>
4678 ::fidl_next::EncodeOption<crate::wire_optional::SelinuxContext<'static>, ___E>
4679 for &'a SelinuxContext
4680 where
4681 ___E: ?Sized,
4682 &'a SelinuxContext: ::fidl_next::Encode<crate::wire::SelinuxContext<'static>, ___E>,
4683 {
4684 #[inline]
4685 fn encode_option(
4686 this: ::core::option::Option<Self>,
4687 encoder: &mut ___E,
4688 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::SelinuxContext<'static>>,
4689 _: (),
4690 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4691 ::fidl_next::munge!(let crate::wire_optional::SelinuxContext { raw, _phantom: _ } = &mut *out);
4692
4693 if let Some(inner) = this {
4694 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
4695 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
4696 } else {
4697 ::fidl_next::wire::Union::encode_absent(raw);
4698 }
4699
4700 Ok(())
4701 }
4702 }
4703
4704 impl<'de> ::fidl_next::FromWire<crate::wire::SelinuxContext<'de>> for SelinuxContext {
4705 #[inline]
4706 fn from_wire(wire: crate::wire::SelinuxContext<'de>) -> Self {
4707 let wire = ::core::mem::ManuallyDrop::new(wire);
4708 match wire.raw.ordinal() {
4709 1 => Self::Data(::fidl_next::FromWire::from_wire(unsafe {
4710 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
4711 })),
4712
4713 2 => Self::UseExtendedAttributes(::fidl_next::FromWire::from_wire(unsafe {
4714 wire.raw.get().read_unchecked::<crate::wire::EmptyStruct>()
4715 })),
4716
4717 ord => return Self::UnknownOrdinal_(ord as u64),
4718 }
4719 }
4720 }
4721
4722 impl<'de> ::fidl_next::FromWireRef<crate::wire::SelinuxContext<'de>> for SelinuxContext {
4723 #[inline]
4724 fn from_wire_ref(wire: &crate::wire::SelinuxContext<'de>) -> Self {
4725 match wire.raw.ordinal() {
4726 1 => Self::Data(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4727 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
4728 })),
4729
4730 2 => Self::UseExtendedAttributes(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4731 wire.raw.get().deref_unchecked::<crate::wire::EmptyStruct>()
4732 })),
4733
4734 ord => return Self::UnknownOrdinal_(ord as u64),
4735 }
4736 }
4737 }
4738
4739 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::SelinuxContext<'de>>
4740 for SelinuxContext
4741 {
4742 #[inline]
4743 fn from_wire_option(
4744 wire: crate::wire_optional::SelinuxContext<'de>,
4745 ) -> ::core::option::Option<Self> {
4746 if let Some(inner) = wire.into_option() {
4747 Some(::fidl_next::FromWire::from_wire(inner))
4748 } else {
4749 None
4750 }
4751 }
4752 }
4753
4754 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::SelinuxContext<'de>>
4755 for Box<SelinuxContext>
4756 {
4757 #[inline]
4758 fn from_wire_option(
4759 wire: crate::wire_optional::SelinuxContext<'de>,
4760 ) -> ::core::option::Option<Self> {
4761 <SelinuxContext as ::fidl_next::FromWireOption<
4762 crate::wire_optional::SelinuxContext<'de>,
4763 >>::from_wire_option(wire)
4764 .map(Box::new)
4765 }
4766 }
4767
4768 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::SelinuxContext<'de>>
4769 for Box<SelinuxContext>
4770 {
4771 #[inline]
4772 fn from_wire_option_ref(
4773 wire: &crate::wire_optional::SelinuxContext<'de>,
4774 ) -> ::core::option::Option<Self> {
4775 if let Some(inner) = wire.as_ref() {
4776 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
4777 } else {
4778 None
4779 }
4780 }
4781 }
4782
4783 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4784 pub struct MutableNodeAttributes {
4785 pub creation_time: ::core::option::Option<u64>,
4786
4787 pub modification_time: ::core::option::Option<u64>,
4788
4789 pub mode: ::core::option::Option<u32>,
4790
4791 pub uid: ::core::option::Option<u32>,
4792
4793 pub gid: ::core::option::Option<u32>,
4794
4795 pub rdev: ::core::option::Option<u64>,
4796
4797 pub access_time: ::core::option::Option<u64>,
4798
4799 pub casefold: ::core::option::Option<bool>,
4800
4801 pub selinux_context: ::core::option::Option<crate::natural::SelinuxContext>,
4802
4803 pub wrapping_key_id: ::core::option::Option<[u8; 16]>,
4804 }
4805
4806 impl MutableNodeAttributes {
4807 fn __max_ordinal(&self) -> usize {
4808 if self.wrapping_key_id.is_some() {
4809 return 10;
4810 }
4811
4812 if self.selinux_context.is_some() {
4813 return 9;
4814 }
4815
4816 if self.casefold.is_some() {
4817 return 8;
4818 }
4819
4820 if self.access_time.is_some() {
4821 return 7;
4822 }
4823
4824 if self.rdev.is_some() {
4825 return 6;
4826 }
4827
4828 if self.gid.is_some() {
4829 return 5;
4830 }
4831
4832 if self.uid.is_some() {
4833 return 4;
4834 }
4835
4836 if self.mode.is_some() {
4837 return 3;
4838 }
4839
4840 if self.modification_time.is_some() {
4841 return 2;
4842 }
4843
4844 if self.creation_time.is_some() {
4845 return 1;
4846 }
4847
4848 0
4849 }
4850 }
4851
4852 unsafe impl<___E> ::fidl_next::Encode<crate::wire::MutableNodeAttributes<'static>, ___E>
4853 for MutableNodeAttributes
4854 where
4855 ___E: ::fidl_next::Encoder + ?Sized,
4856 {
4857 #[inline]
4858 fn encode(
4859 mut self,
4860 encoder: &mut ___E,
4861 out: &mut ::core::mem::MaybeUninit<crate::wire::MutableNodeAttributes<'static>>,
4862 _: (),
4863 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4864 ::fidl_next::munge!(let crate::wire::MutableNodeAttributes { table } = out);
4865
4866 let max_ord = self.__max_ordinal();
4867
4868 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
4869 ::fidl_next::Wire::zero_padding(&mut out);
4870
4871 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
4872 ::fidl_next::wire::Envelope,
4873 >(encoder, max_ord);
4874
4875 for i in 1..=max_ord {
4876 match i {
4877 10 => {
4878 if let Some(value) = self.wrapping_key_id.take() {
4879 ::fidl_next::wire::Envelope::encode_value::<[u8; 16], ___E>(
4880 value,
4881 preallocated.encoder,
4882 &mut out,
4883 (),
4884 )?;
4885 } else {
4886 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4887 }
4888 }
4889
4890 9 => {
4891 if let Some(value) = self.selinux_context.take() {
4892 ::fidl_next::wire::Envelope::encode_value::<
4893 crate::wire::SelinuxContext<'static>,
4894 ___E,
4895 >(
4896 value, preallocated.encoder, &mut out, ()
4897 )?;
4898 } else {
4899 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4900 }
4901 }
4902
4903 8 => {
4904 if let Some(value) = self.casefold.take() {
4905 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
4906 value,
4907 preallocated.encoder,
4908 &mut out,
4909 (),
4910 )?;
4911 } else {
4912 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4913 }
4914 }
4915
4916 7 => {
4917 if let Some(value) = self.access_time.take() {
4918 ::fidl_next::wire::Envelope::encode_value::<
4919 ::fidl_next::wire::Uint64,
4920 ___E,
4921 >(
4922 value, preallocated.encoder, &mut out, ()
4923 )?;
4924 } else {
4925 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4926 }
4927 }
4928
4929 6 => {
4930 if let Some(value) = self.rdev.take() {
4931 ::fidl_next::wire::Envelope::encode_value::<
4932 ::fidl_next::wire::Uint64,
4933 ___E,
4934 >(
4935 value, preallocated.encoder, &mut out, ()
4936 )?;
4937 } else {
4938 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4939 }
4940 }
4941
4942 5 => {
4943 if let Some(value) = self.gid.take() {
4944 ::fidl_next::wire::Envelope::encode_value::<
4945 ::fidl_next::wire::Uint32,
4946 ___E,
4947 >(
4948 value, preallocated.encoder, &mut out, ()
4949 )?;
4950 } else {
4951 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4952 }
4953 }
4954
4955 4 => {
4956 if let Some(value) = self.uid.take() {
4957 ::fidl_next::wire::Envelope::encode_value::<
4958 ::fidl_next::wire::Uint32,
4959 ___E,
4960 >(
4961 value, preallocated.encoder, &mut out, ()
4962 )?;
4963 } else {
4964 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4965 }
4966 }
4967
4968 3 => {
4969 if let Some(value) = self.mode.take() {
4970 ::fidl_next::wire::Envelope::encode_value::<
4971 ::fidl_next::wire::Uint32,
4972 ___E,
4973 >(
4974 value, preallocated.encoder, &mut out, ()
4975 )?;
4976 } else {
4977 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4978 }
4979 }
4980
4981 2 => {
4982 if let Some(value) = self.modification_time.take() {
4983 ::fidl_next::wire::Envelope::encode_value::<
4984 ::fidl_next::wire::Uint64,
4985 ___E,
4986 >(
4987 value, preallocated.encoder, &mut out, ()
4988 )?;
4989 } else {
4990 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4991 }
4992 }
4993
4994 1 => {
4995 if let Some(value) = self.creation_time.take() {
4996 ::fidl_next::wire::Envelope::encode_value::<
4997 ::fidl_next::wire::Uint64,
4998 ___E,
4999 >(
5000 value, preallocated.encoder, &mut out, ()
5001 )?;
5002 } else {
5003 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5004 }
5005 }
5006
5007 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5008 }
5009 unsafe {
5010 preallocated.write_next(out.assume_init_ref());
5011 }
5012 }
5013
5014 ::fidl_next::wire::Table::encode_len(table, max_ord);
5015
5016 Ok(())
5017 }
5018 }
5019
5020 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::MutableNodeAttributes<'static>, ___E>
5021 for &'a MutableNodeAttributes
5022 where
5023 ___E: ::fidl_next::Encoder + ?Sized,
5024 {
5025 #[inline]
5026 fn encode(
5027 self,
5028 encoder: &mut ___E,
5029 out: &mut ::core::mem::MaybeUninit<crate::wire::MutableNodeAttributes<'static>>,
5030 _: (),
5031 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5032 ::fidl_next::munge!(let crate::wire::MutableNodeAttributes { table } = out);
5033
5034 let max_ord = self.__max_ordinal();
5035
5036 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5037 ::fidl_next::Wire::zero_padding(&mut out);
5038
5039 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5040 ::fidl_next::wire::Envelope,
5041 >(encoder, max_ord);
5042
5043 for i in 1..=max_ord {
5044 match i {
5045 10 => {
5046 if let Some(value) = &self.wrapping_key_id {
5047 ::fidl_next::wire::Envelope::encode_value::<[u8; 16], ___E>(
5048 value,
5049 preallocated.encoder,
5050 &mut out,
5051 (),
5052 )?;
5053 } else {
5054 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5055 }
5056 }
5057
5058 9 => {
5059 if let Some(value) = &self.selinux_context {
5060 ::fidl_next::wire::Envelope::encode_value::<
5061 crate::wire::SelinuxContext<'static>,
5062 ___E,
5063 >(
5064 value, preallocated.encoder, &mut out, ()
5065 )?;
5066 } else {
5067 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5068 }
5069 }
5070
5071 8 => {
5072 if let Some(value) = &self.casefold {
5073 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5074 value,
5075 preallocated.encoder,
5076 &mut out,
5077 (),
5078 )?;
5079 } else {
5080 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5081 }
5082 }
5083
5084 7 => {
5085 if let Some(value) = &self.access_time {
5086 ::fidl_next::wire::Envelope::encode_value::<
5087 ::fidl_next::wire::Uint64,
5088 ___E,
5089 >(
5090 value, preallocated.encoder, &mut out, ()
5091 )?;
5092 } else {
5093 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5094 }
5095 }
5096
5097 6 => {
5098 if let Some(value) = &self.rdev {
5099 ::fidl_next::wire::Envelope::encode_value::<
5100 ::fidl_next::wire::Uint64,
5101 ___E,
5102 >(
5103 value, preallocated.encoder, &mut out, ()
5104 )?;
5105 } else {
5106 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5107 }
5108 }
5109
5110 5 => {
5111 if let Some(value) = &self.gid {
5112 ::fidl_next::wire::Envelope::encode_value::<
5113 ::fidl_next::wire::Uint32,
5114 ___E,
5115 >(
5116 value, preallocated.encoder, &mut out, ()
5117 )?;
5118 } else {
5119 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5120 }
5121 }
5122
5123 4 => {
5124 if let Some(value) = &self.uid {
5125 ::fidl_next::wire::Envelope::encode_value::<
5126 ::fidl_next::wire::Uint32,
5127 ___E,
5128 >(
5129 value, preallocated.encoder, &mut out, ()
5130 )?;
5131 } else {
5132 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5133 }
5134 }
5135
5136 3 => {
5137 if let Some(value) = &self.mode {
5138 ::fidl_next::wire::Envelope::encode_value::<
5139 ::fidl_next::wire::Uint32,
5140 ___E,
5141 >(
5142 value, preallocated.encoder, &mut out, ()
5143 )?;
5144 } else {
5145 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5146 }
5147 }
5148
5149 2 => {
5150 if let Some(value) = &self.modification_time {
5151 ::fidl_next::wire::Envelope::encode_value::<
5152 ::fidl_next::wire::Uint64,
5153 ___E,
5154 >(
5155 value, preallocated.encoder, &mut out, ()
5156 )?;
5157 } else {
5158 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5159 }
5160 }
5161
5162 1 => {
5163 if let Some(value) = &self.creation_time {
5164 ::fidl_next::wire::Envelope::encode_value::<
5165 ::fidl_next::wire::Uint64,
5166 ___E,
5167 >(
5168 value, preallocated.encoder, &mut out, ()
5169 )?;
5170 } else {
5171 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5172 }
5173 }
5174
5175 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5176 }
5177 unsafe {
5178 preallocated.write_next(out.assume_init_ref());
5179 }
5180 }
5181
5182 ::fidl_next::wire::Table::encode_len(table, max_ord);
5183
5184 Ok(())
5185 }
5186 }
5187
5188 impl<'de> ::fidl_next::FromWire<crate::wire::MutableNodeAttributes<'de>> for MutableNodeAttributes {
5189 #[inline]
5190 fn from_wire(wire_: crate::wire::MutableNodeAttributes<'de>) -> Self {
5191 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
5192
5193 let creation_time = wire_.table.get(1);
5194
5195 let modification_time = wire_.table.get(2);
5196
5197 let mode = wire_.table.get(3);
5198
5199 let uid = wire_.table.get(4);
5200
5201 let gid = wire_.table.get(5);
5202
5203 let rdev = wire_.table.get(6);
5204
5205 let access_time = wire_.table.get(7);
5206
5207 let casefold = wire_.table.get(8);
5208
5209 let selinux_context = wire_.table.get(9);
5210
5211 let wrapping_key_id = wire_.table.get(10);
5212
5213 Self {
5214 creation_time: creation_time.map(|envelope| {
5215 ::fidl_next::FromWire::from_wire(unsafe {
5216 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
5217 })
5218 }),
5219
5220 modification_time: modification_time.map(|envelope| {
5221 ::fidl_next::FromWire::from_wire(unsafe {
5222 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
5223 })
5224 }),
5225
5226 mode: mode.map(|envelope| {
5227 ::fidl_next::FromWire::from_wire(unsafe {
5228 envelope.read_unchecked::<::fidl_next::wire::Uint32>()
5229 })
5230 }),
5231
5232 uid: uid.map(|envelope| {
5233 ::fidl_next::FromWire::from_wire(unsafe {
5234 envelope.read_unchecked::<::fidl_next::wire::Uint32>()
5235 })
5236 }),
5237
5238 gid: gid.map(|envelope| {
5239 ::fidl_next::FromWire::from_wire(unsafe {
5240 envelope.read_unchecked::<::fidl_next::wire::Uint32>()
5241 })
5242 }),
5243
5244 rdev: rdev.map(|envelope| {
5245 ::fidl_next::FromWire::from_wire(unsafe {
5246 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
5247 })
5248 }),
5249
5250 access_time: access_time.map(|envelope| {
5251 ::fidl_next::FromWire::from_wire(unsafe {
5252 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
5253 })
5254 }),
5255
5256 casefold: casefold.map(|envelope| {
5257 ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<bool>() })
5258 }),
5259
5260 selinux_context: selinux_context.map(|envelope| {
5261 ::fidl_next::FromWire::from_wire(unsafe {
5262 envelope.read_unchecked::<crate::wire::SelinuxContext<'de>>()
5263 })
5264 }),
5265
5266 wrapping_key_id: wrapping_key_id.map(|envelope| {
5267 ::fidl_next::FromWire::from_wire(unsafe {
5268 envelope.read_unchecked::<[u8; 16]>()
5269 })
5270 }),
5271 }
5272 }
5273 }
5274
5275 impl<'de> ::fidl_next::FromWireRef<crate::wire::MutableNodeAttributes<'de>>
5276 for MutableNodeAttributes
5277 {
5278 #[inline]
5279 fn from_wire_ref(wire: &crate::wire::MutableNodeAttributes<'de>) -> Self {
5280 Self {
5281 creation_time: wire.table.get(1).map(|envelope| {
5282 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5283 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
5284 })
5285 }),
5286
5287 modification_time: wire.table.get(2).map(|envelope| {
5288 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5289 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
5290 })
5291 }),
5292
5293 mode: wire.table.get(3).map(|envelope| {
5294 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5295 envelope.deref_unchecked::<::fidl_next::wire::Uint32>()
5296 })
5297 }),
5298
5299 uid: wire.table.get(4).map(|envelope| {
5300 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5301 envelope.deref_unchecked::<::fidl_next::wire::Uint32>()
5302 })
5303 }),
5304
5305 gid: wire.table.get(5).map(|envelope| {
5306 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5307 envelope.deref_unchecked::<::fidl_next::wire::Uint32>()
5308 })
5309 }),
5310
5311 rdev: wire.table.get(6).map(|envelope| {
5312 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5313 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
5314 })
5315 }),
5316
5317 access_time: wire.table.get(7).map(|envelope| {
5318 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5319 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
5320 })
5321 }),
5322
5323 casefold: wire.table.get(8).map(|envelope| {
5324 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5325 envelope.deref_unchecked::<bool>()
5326 })
5327 }),
5328
5329 selinux_context: wire.table.get(9).map(|envelope| {
5330 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5331 envelope.deref_unchecked::<crate::wire::SelinuxContext<'de>>()
5332 })
5333 }),
5334
5335 wrapping_key_id: wire.table.get(10).map(|envelope| {
5336 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5337 envelope.deref_unchecked::<[u8; 16]>()
5338 })
5339 }),
5340 }
5341 }
5342 }
5343
5344 ::fidl_next::bitflags::bitflags! {
5345 #[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 {
5346 #[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;
5347 #[doc = " The directory representation of a node.\n\n The connection will speak the [`Directory`] protocol.\n"]const DIRECTORY = 2;
5348 #[doc = " The file representation of a node.\n\n The connection will speak the [`File`] protocol.\n"]const FILE = 4;
5349 #[doc = " The symlink representation of a node.\n\n The connection will speak the [`Symlink`] protocol.\n"]const SYMLINK = 8;
5350 const _ = !0;
5351 }
5352 }
5353
5354 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeProtocolKinds, ___E> for NodeProtocolKinds
5355 where
5356 ___E: ?Sized,
5357 {
5358 #[inline]
5359 fn encode(
5360 self,
5361 encoder: &mut ___E,
5362 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeProtocolKinds>,
5363 _: (),
5364 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5365 ::fidl_next::Encode::encode(&self, encoder, out, ())
5366 }
5367 }
5368
5369 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeProtocolKinds, ___E>
5370 for &'a NodeProtocolKinds
5371 where
5372 ___E: ?Sized,
5373 {
5374 #[inline]
5375 fn encode(
5376 self,
5377 _: &mut ___E,
5378 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeProtocolKinds>,
5379 _: (),
5380 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5381 ::fidl_next::munge!(let crate::wire::NodeProtocolKinds { value } = out);
5382
5383 let _ = value.write(::fidl_next::wire::Uint64::from(self.bits()));
5384 Ok(())
5385 }
5386 }
5387
5388 impl ::core::convert::From<crate::wire::NodeProtocolKinds> for NodeProtocolKinds {
5389 fn from(wire: crate::wire::NodeProtocolKinds) -> Self {
5390 Self::from_bits_retain(u64::from(wire.value))
5391 }
5392 }
5393
5394 impl ::fidl_next::FromWire<crate::wire::NodeProtocolKinds> for NodeProtocolKinds {
5395 #[inline]
5396 fn from_wire(wire: crate::wire::NodeProtocolKinds) -> Self {
5397 Self::from(wire)
5398 }
5399 }
5400
5401 impl ::fidl_next::FromWireRef<crate::wire::NodeProtocolKinds> for NodeProtocolKinds {
5402 #[inline]
5403 fn from_wire_ref(wire: &crate::wire::NodeProtocolKinds) -> Self {
5404 Self::from(*wire)
5405 }
5406 }
5407
5408 #[doc = " Denotes which hash algorithm is used to build the merkle tree for\n fsverity-enabled files.\n"]
5409 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5410 #[repr(u8)]
5411 pub enum HashAlgorithm {
5412 Sha256 = 1,
5413 Sha512 = 2,
5414 UnknownOrdinal_(u8) = 3,
5415 }
5416 impl ::std::convert::From<u8> for HashAlgorithm {
5417 fn from(value: u8) -> Self {
5418 match value {
5419 1 => Self::Sha256,
5420 2 => Self::Sha512,
5421
5422 _ => Self::UnknownOrdinal_(value),
5423 }
5424 }
5425 }
5426
5427 unsafe impl<___E> ::fidl_next::Encode<crate::wire::HashAlgorithm, ___E> for HashAlgorithm
5428 where
5429 ___E: ?Sized,
5430 {
5431 #[inline]
5432 fn encode(
5433 self,
5434 encoder: &mut ___E,
5435 out: &mut ::core::mem::MaybeUninit<crate::wire::HashAlgorithm>,
5436 _: (),
5437 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5438 ::fidl_next::Encode::encode(&self, encoder, out, ())
5439 }
5440 }
5441
5442 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::HashAlgorithm, ___E> for &'a HashAlgorithm
5443 where
5444 ___E: ?Sized,
5445 {
5446 #[inline]
5447 fn encode(
5448 self,
5449 encoder: &mut ___E,
5450 out: &mut ::core::mem::MaybeUninit<crate::wire::HashAlgorithm>,
5451 _: (),
5452 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5453 ::fidl_next::munge!(let crate::wire::HashAlgorithm { value } = out);
5454 let _ = value.write(u8::from(match *self {
5455 HashAlgorithm::Sha256 => 1,
5456
5457 HashAlgorithm::Sha512 => 2,
5458
5459 HashAlgorithm::UnknownOrdinal_(value) => value,
5460 }));
5461
5462 Ok(())
5463 }
5464 }
5465
5466 impl ::core::convert::From<crate::wire::HashAlgorithm> for HashAlgorithm {
5467 fn from(wire: crate::wire::HashAlgorithm) -> Self {
5468 match u8::from(wire.value) {
5469 1 => Self::Sha256,
5470
5471 2 => Self::Sha512,
5472
5473 value => Self::UnknownOrdinal_(value),
5474 }
5475 }
5476 }
5477
5478 impl ::fidl_next::FromWire<crate::wire::HashAlgorithm> for HashAlgorithm {
5479 #[inline]
5480 fn from_wire(wire: crate::wire::HashAlgorithm) -> Self {
5481 Self::from(wire)
5482 }
5483 }
5484
5485 impl ::fidl_next::FromWireRef<crate::wire::HashAlgorithm> for HashAlgorithm {
5486 #[inline]
5487 fn from_wire_ref(wire: &crate::wire::HashAlgorithm) -> Self {
5488 Self::from(*wire)
5489 }
5490 }
5491
5492 #[doc = " Set of options used to enable verity on a file.\n"]
5493 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5494 pub struct VerificationOptions {
5495 pub hash_algorithm: ::core::option::Option<crate::natural::HashAlgorithm>,
5496
5497 pub salt: ::core::option::Option<::std::vec::Vec<u8>>,
5498 }
5499
5500 impl VerificationOptions {
5501 fn __max_ordinal(&self) -> usize {
5502 if self.salt.is_some() {
5503 return 2;
5504 }
5505
5506 if self.hash_algorithm.is_some() {
5507 return 1;
5508 }
5509
5510 0
5511 }
5512 }
5513
5514 unsafe impl<___E> ::fidl_next::Encode<crate::wire::VerificationOptions<'static>, ___E>
5515 for VerificationOptions
5516 where
5517 ___E: ::fidl_next::Encoder + ?Sized,
5518 {
5519 #[inline]
5520 fn encode(
5521 mut self,
5522 encoder: &mut ___E,
5523 out: &mut ::core::mem::MaybeUninit<crate::wire::VerificationOptions<'static>>,
5524 _: (),
5525 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5526 ::fidl_next::munge!(let crate::wire::VerificationOptions { table } = out);
5527
5528 let max_ord = self.__max_ordinal();
5529
5530 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5531 ::fidl_next::Wire::zero_padding(&mut out);
5532
5533 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5534 ::fidl_next::wire::Envelope,
5535 >(encoder, max_ord);
5536
5537 for i in 1..=max_ord {
5538 match i {
5539 2 => {
5540 if let Some(value) = self.salt.take() {
5541 ::fidl_next::wire::Envelope::encode_value::<
5542 ::fidl_next::wire::Vector<'static, u8>,
5543 ___E,
5544 >(
5545 value, preallocated.encoder, &mut out, (32, ())
5546 )?;
5547 } else {
5548 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5549 }
5550 }
5551
5552 1 => {
5553 if let Some(value) = self.hash_algorithm.take() {
5554 ::fidl_next::wire::Envelope::encode_value::<
5555 crate::wire::HashAlgorithm,
5556 ___E,
5557 >(
5558 value, preallocated.encoder, &mut out, ()
5559 )?;
5560 } else {
5561 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5562 }
5563 }
5564
5565 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5566 }
5567 unsafe {
5568 preallocated.write_next(out.assume_init_ref());
5569 }
5570 }
5571
5572 ::fidl_next::wire::Table::encode_len(table, max_ord);
5573
5574 Ok(())
5575 }
5576 }
5577
5578 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::VerificationOptions<'static>, ___E>
5579 for &'a VerificationOptions
5580 where
5581 ___E: ::fidl_next::Encoder + ?Sized,
5582 {
5583 #[inline]
5584 fn encode(
5585 self,
5586 encoder: &mut ___E,
5587 out: &mut ::core::mem::MaybeUninit<crate::wire::VerificationOptions<'static>>,
5588 _: (),
5589 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5590 ::fidl_next::munge!(let crate::wire::VerificationOptions { table } = out);
5591
5592 let max_ord = self.__max_ordinal();
5593
5594 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5595 ::fidl_next::Wire::zero_padding(&mut out);
5596
5597 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5598 ::fidl_next::wire::Envelope,
5599 >(encoder, max_ord);
5600
5601 for i in 1..=max_ord {
5602 match i {
5603 2 => {
5604 if let Some(value) = &self.salt {
5605 ::fidl_next::wire::Envelope::encode_value::<
5606 ::fidl_next::wire::Vector<'static, u8>,
5607 ___E,
5608 >(
5609 value, preallocated.encoder, &mut out, (32, ())
5610 )?;
5611 } else {
5612 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5613 }
5614 }
5615
5616 1 => {
5617 if let Some(value) = &self.hash_algorithm {
5618 ::fidl_next::wire::Envelope::encode_value::<
5619 crate::wire::HashAlgorithm,
5620 ___E,
5621 >(
5622 value, preallocated.encoder, &mut out, ()
5623 )?;
5624 } else {
5625 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5626 }
5627 }
5628
5629 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5630 }
5631 unsafe {
5632 preallocated.write_next(out.assume_init_ref());
5633 }
5634 }
5635
5636 ::fidl_next::wire::Table::encode_len(table, max_ord);
5637
5638 Ok(())
5639 }
5640 }
5641
5642 impl<'de> ::fidl_next::FromWire<crate::wire::VerificationOptions<'de>> for VerificationOptions {
5643 #[inline]
5644 fn from_wire(wire_: crate::wire::VerificationOptions<'de>) -> Self {
5645 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
5646
5647 let hash_algorithm = wire_.table.get(1);
5648
5649 let salt = wire_.table.get(2);
5650
5651 Self {
5652 hash_algorithm: hash_algorithm.map(|envelope| {
5653 ::fidl_next::FromWire::from_wire(unsafe {
5654 envelope.read_unchecked::<crate::wire::HashAlgorithm>()
5655 })
5656 }),
5657
5658 salt: salt.map(|envelope| {
5659 ::fidl_next::FromWire::from_wire(unsafe {
5660 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
5661 })
5662 }),
5663 }
5664 }
5665 }
5666
5667 impl<'de> ::fidl_next::FromWireRef<crate::wire::VerificationOptions<'de>> for VerificationOptions {
5668 #[inline]
5669 fn from_wire_ref(wire: &crate::wire::VerificationOptions<'de>) -> Self {
5670 Self {
5671 hash_algorithm: wire.table.get(1).map(|envelope| {
5672 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5673 envelope.deref_unchecked::<crate::wire::HashAlgorithm>()
5674 })
5675 }),
5676
5677 salt: wire.table.get(2).map(|envelope| {
5678 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5679 envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
5680 })
5681 }),
5682 }
5683 }
5684 }
5685
5686 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5687 pub struct ImmutableNodeAttributes {
5688 pub protocols: ::core::option::Option<crate::natural::NodeProtocolKinds>,
5689
5690 pub abilities: ::core::option::Option<crate::natural::Operations>,
5691
5692 pub content_size: ::core::option::Option<u64>,
5693
5694 pub storage_size: ::core::option::Option<u64>,
5695
5696 pub link_count: ::core::option::Option<u64>,
5697
5698 pub id: ::core::option::Option<u64>,
5699
5700 pub change_time: ::core::option::Option<u64>,
5701
5702 pub options: ::core::option::Option<crate::natural::VerificationOptions>,
5703
5704 pub root_hash: ::core::option::Option<::std::vec::Vec<u8>>,
5705
5706 pub verity_enabled: ::core::option::Option<bool>,
5707 }
5708
5709 impl ImmutableNodeAttributes {
5710 fn __max_ordinal(&self) -> usize {
5711 if self.verity_enabled.is_some() {
5712 return 10;
5713 }
5714
5715 if self.root_hash.is_some() {
5716 return 9;
5717 }
5718
5719 if self.options.is_some() {
5720 return 8;
5721 }
5722
5723 if self.change_time.is_some() {
5724 return 7;
5725 }
5726
5727 if self.id.is_some() {
5728 return 6;
5729 }
5730
5731 if self.link_count.is_some() {
5732 return 5;
5733 }
5734
5735 if self.storage_size.is_some() {
5736 return 4;
5737 }
5738
5739 if self.content_size.is_some() {
5740 return 3;
5741 }
5742
5743 if self.abilities.is_some() {
5744 return 2;
5745 }
5746
5747 if self.protocols.is_some() {
5748 return 1;
5749 }
5750
5751 0
5752 }
5753 }
5754
5755 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ImmutableNodeAttributes<'static>, ___E>
5756 for ImmutableNodeAttributes
5757 where
5758 ___E: ::fidl_next::Encoder + ?Sized,
5759 {
5760 #[inline]
5761 fn encode(
5762 mut self,
5763 encoder: &mut ___E,
5764 out: &mut ::core::mem::MaybeUninit<crate::wire::ImmutableNodeAttributes<'static>>,
5765 _: (),
5766 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5767 ::fidl_next::munge!(let crate::wire::ImmutableNodeAttributes { table } = out);
5768
5769 let max_ord = self.__max_ordinal();
5770
5771 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5772 ::fidl_next::Wire::zero_padding(&mut out);
5773
5774 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5775 ::fidl_next::wire::Envelope,
5776 >(encoder, max_ord);
5777
5778 for i in 1..=max_ord {
5779 match i {
5780 10 => {
5781 if let Some(value) = self.verity_enabled.take() {
5782 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5783 value,
5784 preallocated.encoder,
5785 &mut out,
5786 (),
5787 )?;
5788 } else {
5789 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5790 }
5791 }
5792
5793 9 => {
5794 if let Some(value) = self.root_hash.take() {
5795 ::fidl_next::wire::Envelope::encode_value::<
5796 ::fidl_next::wire::Vector<'static, u8>,
5797 ___E,
5798 >(
5799 value, preallocated.encoder, &mut out, (64, ())
5800 )?;
5801 } else {
5802 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5803 }
5804 }
5805
5806 8 => {
5807 if let Some(value) = self.options.take() {
5808 ::fidl_next::wire::Envelope::encode_value::<
5809 crate::wire::VerificationOptions<'static>,
5810 ___E,
5811 >(
5812 value, preallocated.encoder, &mut out, ()
5813 )?;
5814 } else {
5815 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5816 }
5817 }
5818
5819 7 => {
5820 if let Some(value) = self.change_time.take() {
5821 ::fidl_next::wire::Envelope::encode_value::<
5822 ::fidl_next::wire::Uint64,
5823 ___E,
5824 >(
5825 value, preallocated.encoder, &mut out, ()
5826 )?;
5827 } else {
5828 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5829 }
5830 }
5831
5832 6 => {
5833 if let Some(value) = self.id.take() {
5834 ::fidl_next::wire::Envelope::encode_value::<
5835 ::fidl_next::wire::Uint64,
5836 ___E,
5837 >(
5838 value, preallocated.encoder, &mut out, ()
5839 )?;
5840 } else {
5841 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5842 }
5843 }
5844
5845 5 => {
5846 if let Some(value) = self.link_count.take() {
5847 ::fidl_next::wire::Envelope::encode_value::<
5848 ::fidl_next::wire::Uint64,
5849 ___E,
5850 >(
5851 value, preallocated.encoder, &mut out, ()
5852 )?;
5853 } else {
5854 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5855 }
5856 }
5857
5858 4 => {
5859 if let Some(value) = self.storage_size.take() {
5860 ::fidl_next::wire::Envelope::encode_value::<
5861 ::fidl_next::wire::Uint64,
5862 ___E,
5863 >(
5864 value, preallocated.encoder, &mut out, ()
5865 )?;
5866 } else {
5867 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5868 }
5869 }
5870
5871 3 => {
5872 if let Some(value) = self.content_size.take() {
5873 ::fidl_next::wire::Envelope::encode_value::<
5874 ::fidl_next::wire::Uint64,
5875 ___E,
5876 >(
5877 value, preallocated.encoder, &mut out, ()
5878 )?;
5879 } else {
5880 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5881 }
5882 }
5883
5884 2 => {
5885 if let Some(value) = self.abilities.take() {
5886 ::fidl_next::wire::Envelope::encode_value::<
5887 crate::wire::Operations,
5888 ___E,
5889 >(
5890 value, preallocated.encoder, &mut out, ()
5891 )?;
5892 } else {
5893 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5894 }
5895 }
5896
5897 1 => {
5898 if let Some(value) = self.protocols.take() {
5899 ::fidl_next::wire::Envelope::encode_value::<
5900 crate::wire::NodeProtocolKinds,
5901 ___E,
5902 >(
5903 value, preallocated.encoder, &mut out, ()
5904 )?;
5905 } else {
5906 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5907 }
5908 }
5909
5910 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5911 }
5912 unsafe {
5913 preallocated.write_next(out.assume_init_ref());
5914 }
5915 }
5916
5917 ::fidl_next::wire::Table::encode_len(table, max_ord);
5918
5919 Ok(())
5920 }
5921 }
5922
5923 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ImmutableNodeAttributes<'static>, ___E>
5924 for &'a ImmutableNodeAttributes
5925 where
5926 ___E: ::fidl_next::Encoder + ?Sized,
5927 {
5928 #[inline]
5929 fn encode(
5930 self,
5931 encoder: &mut ___E,
5932 out: &mut ::core::mem::MaybeUninit<crate::wire::ImmutableNodeAttributes<'static>>,
5933 _: (),
5934 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5935 ::fidl_next::munge!(let crate::wire::ImmutableNodeAttributes { table } = out);
5936
5937 let max_ord = self.__max_ordinal();
5938
5939 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5940 ::fidl_next::Wire::zero_padding(&mut out);
5941
5942 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5943 ::fidl_next::wire::Envelope,
5944 >(encoder, max_ord);
5945
5946 for i in 1..=max_ord {
5947 match i {
5948 10 => {
5949 if let Some(value) = &self.verity_enabled {
5950 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5951 value,
5952 preallocated.encoder,
5953 &mut out,
5954 (),
5955 )?;
5956 } else {
5957 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5958 }
5959 }
5960
5961 9 => {
5962 if let Some(value) = &self.root_hash {
5963 ::fidl_next::wire::Envelope::encode_value::<
5964 ::fidl_next::wire::Vector<'static, u8>,
5965 ___E,
5966 >(
5967 value, preallocated.encoder, &mut out, (64, ())
5968 )?;
5969 } else {
5970 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5971 }
5972 }
5973
5974 8 => {
5975 if let Some(value) = &self.options {
5976 ::fidl_next::wire::Envelope::encode_value::<
5977 crate::wire::VerificationOptions<'static>,
5978 ___E,
5979 >(
5980 value, preallocated.encoder, &mut out, ()
5981 )?;
5982 } else {
5983 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5984 }
5985 }
5986
5987 7 => {
5988 if let Some(value) = &self.change_time {
5989 ::fidl_next::wire::Envelope::encode_value::<
5990 ::fidl_next::wire::Uint64,
5991 ___E,
5992 >(
5993 value, preallocated.encoder, &mut out, ()
5994 )?;
5995 } else {
5996 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5997 }
5998 }
5999
6000 6 => {
6001 if let Some(value) = &self.id {
6002 ::fidl_next::wire::Envelope::encode_value::<
6003 ::fidl_next::wire::Uint64,
6004 ___E,
6005 >(
6006 value, preallocated.encoder, &mut out, ()
6007 )?;
6008 } else {
6009 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6010 }
6011 }
6012
6013 5 => {
6014 if let Some(value) = &self.link_count {
6015 ::fidl_next::wire::Envelope::encode_value::<
6016 ::fidl_next::wire::Uint64,
6017 ___E,
6018 >(
6019 value, preallocated.encoder, &mut out, ()
6020 )?;
6021 } else {
6022 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6023 }
6024 }
6025
6026 4 => {
6027 if let Some(value) = &self.storage_size {
6028 ::fidl_next::wire::Envelope::encode_value::<
6029 ::fidl_next::wire::Uint64,
6030 ___E,
6031 >(
6032 value, preallocated.encoder, &mut out, ()
6033 )?;
6034 } else {
6035 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6036 }
6037 }
6038
6039 3 => {
6040 if let Some(value) = &self.content_size {
6041 ::fidl_next::wire::Envelope::encode_value::<
6042 ::fidl_next::wire::Uint64,
6043 ___E,
6044 >(
6045 value, preallocated.encoder, &mut out, ()
6046 )?;
6047 } else {
6048 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6049 }
6050 }
6051
6052 2 => {
6053 if let Some(value) = &self.abilities {
6054 ::fidl_next::wire::Envelope::encode_value::<
6055 crate::wire::Operations,
6056 ___E,
6057 >(
6058 value, preallocated.encoder, &mut out, ()
6059 )?;
6060 } else {
6061 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6062 }
6063 }
6064
6065 1 => {
6066 if let Some(value) = &self.protocols {
6067 ::fidl_next::wire::Envelope::encode_value::<
6068 crate::wire::NodeProtocolKinds,
6069 ___E,
6070 >(
6071 value, preallocated.encoder, &mut out, ()
6072 )?;
6073 } else {
6074 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6075 }
6076 }
6077
6078 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6079 }
6080 unsafe {
6081 preallocated.write_next(out.assume_init_ref());
6082 }
6083 }
6084
6085 ::fidl_next::wire::Table::encode_len(table, max_ord);
6086
6087 Ok(())
6088 }
6089 }
6090
6091 impl<'de> ::fidl_next::FromWire<crate::wire::ImmutableNodeAttributes<'de>>
6092 for ImmutableNodeAttributes
6093 {
6094 #[inline]
6095 fn from_wire(wire_: crate::wire::ImmutableNodeAttributes<'de>) -> Self {
6096 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
6097
6098 let protocols = wire_.table.get(1);
6099
6100 let abilities = wire_.table.get(2);
6101
6102 let content_size = wire_.table.get(3);
6103
6104 let storage_size = wire_.table.get(4);
6105
6106 let link_count = wire_.table.get(5);
6107
6108 let id = wire_.table.get(6);
6109
6110 let change_time = wire_.table.get(7);
6111
6112 let options = wire_.table.get(8);
6113
6114 let root_hash = wire_.table.get(9);
6115
6116 let verity_enabled = wire_.table.get(10);
6117
6118 Self {
6119 protocols: protocols.map(|envelope| {
6120 ::fidl_next::FromWire::from_wire(unsafe {
6121 envelope.read_unchecked::<crate::wire::NodeProtocolKinds>()
6122 })
6123 }),
6124
6125 abilities: abilities.map(|envelope| {
6126 ::fidl_next::FromWire::from_wire(unsafe {
6127 envelope.read_unchecked::<crate::wire::Operations>()
6128 })
6129 }),
6130
6131 content_size: content_size.map(|envelope| {
6132 ::fidl_next::FromWire::from_wire(unsafe {
6133 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
6134 })
6135 }),
6136
6137 storage_size: storage_size.map(|envelope| {
6138 ::fidl_next::FromWire::from_wire(unsafe {
6139 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
6140 })
6141 }),
6142
6143 link_count: link_count.map(|envelope| {
6144 ::fidl_next::FromWire::from_wire(unsafe {
6145 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
6146 })
6147 }),
6148
6149 id: id.map(|envelope| {
6150 ::fidl_next::FromWire::from_wire(unsafe {
6151 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
6152 })
6153 }),
6154
6155 change_time: change_time.map(|envelope| {
6156 ::fidl_next::FromWire::from_wire(unsafe {
6157 envelope.read_unchecked::<::fidl_next::wire::Uint64>()
6158 })
6159 }),
6160
6161 options: options.map(|envelope| {
6162 ::fidl_next::FromWire::from_wire(unsafe {
6163 envelope.read_unchecked::<crate::wire::VerificationOptions<'de>>()
6164 })
6165 }),
6166
6167 root_hash: root_hash.map(|envelope| {
6168 ::fidl_next::FromWire::from_wire(unsafe {
6169 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
6170 })
6171 }),
6172
6173 verity_enabled: verity_enabled.map(|envelope| {
6174 ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<bool>() })
6175 }),
6176 }
6177 }
6178 }
6179
6180 impl<'de> ::fidl_next::FromWireRef<crate::wire::ImmutableNodeAttributes<'de>>
6181 for ImmutableNodeAttributes
6182 {
6183 #[inline]
6184 fn from_wire_ref(wire: &crate::wire::ImmutableNodeAttributes<'de>) -> Self {
6185 Self {
6186 protocols: wire.table.get(1).map(|envelope| {
6187 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6188 envelope.deref_unchecked::<crate::wire::NodeProtocolKinds>()
6189 })
6190 }),
6191
6192 abilities: wire.table.get(2).map(|envelope| {
6193 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6194 envelope.deref_unchecked::<crate::wire::Operations>()
6195 })
6196 }),
6197
6198 content_size: wire.table.get(3).map(|envelope| {
6199 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6200 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
6201 })
6202 }),
6203
6204 storage_size: wire.table.get(4).map(|envelope| {
6205 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6206 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
6207 })
6208 }),
6209
6210 link_count: wire.table.get(5).map(|envelope| {
6211 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6212 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
6213 })
6214 }),
6215
6216 id: wire.table.get(6).map(|envelope| {
6217 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6218 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
6219 })
6220 }),
6221
6222 change_time: wire.table.get(7).map(|envelope| {
6223 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6224 envelope.deref_unchecked::<::fidl_next::wire::Uint64>()
6225 })
6226 }),
6227
6228 options: wire.table.get(8).map(|envelope| {
6229 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6230 envelope.deref_unchecked::<crate::wire::VerificationOptions<'de>>()
6231 })
6232 }),
6233
6234 root_hash: wire.table.get(9).map(|envelope| {
6235 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6236 envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
6237 })
6238 }),
6239
6240 verity_enabled: wire.table.get(10).map(|envelope| {
6241 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6242 envelope.deref_unchecked::<bool>()
6243 })
6244 }),
6245 }
6246 }
6247 }
6248
6249 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6250 pub struct NodeAttributes2 {
6251 pub mutable_attributes: crate::natural::MutableNodeAttributes,
6252
6253 pub immutable_attributes: crate::natural::ImmutableNodeAttributes,
6254 }
6255
6256 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeAttributes2<'static>, ___E>
6257 for NodeAttributes2
6258 where
6259 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6260 ___E: ::fidl_next::Encoder,
6261 {
6262 #[inline]
6263 fn encode(
6264 self,
6265 encoder_: &mut ___E,
6266 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributes2<'static>>,
6267 _: (),
6268 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6269 ::fidl_next::munge! {
6270 let crate::wire::NodeAttributes2 {
6271 mutable_attributes,
6272 immutable_attributes,
6273
6274 } = out_;
6275 }
6276
6277 ::fidl_next::Encode::encode(self.mutable_attributes, encoder_, mutable_attributes, ())?;
6278
6279 let mut _field =
6280 unsafe { ::fidl_next::Slot::new_unchecked(mutable_attributes.as_mut_ptr()) };
6281
6282 ::fidl_next::Encode::encode(
6283 self.immutable_attributes,
6284 encoder_,
6285 immutable_attributes,
6286 (),
6287 )?;
6288
6289 let mut _field =
6290 unsafe { ::fidl_next::Slot::new_unchecked(immutable_attributes.as_mut_ptr()) };
6291
6292 Ok(())
6293 }
6294 }
6295
6296 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeAttributes2<'static>, ___E>
6297 for &'a NodeAttributes2
6298 where
6299 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6300 ___E: ::fidl_next::Encoder,
6301 {
6302 #[inline]
6303 fn encode(
6304 self,
6305 encoder_: &mut ___E,
6306 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributes2<'static>>,
6307 _: (),
6308 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6309 ::fidl_next::munge! {
6310 let crate::wire::NodeAttributes2 {
6311 mutable_attributes,
6312 immutable_attributes,
6313
6314 } = out_;
6315 }
6316
6317 ::fidl_next::Encode::encode(
6318 &self.mutable_attributes,
6319 encoder_,
6320 mutable_attributes,
6321 (),
6322 )?;
6323
6324 let mut _field =
6325 unsafe { ::fidl_next::Slot::new_unchecked(mutable_attributes.as_mut_ptr()) };
6326
6327 ::fidl_next::Encode::encode(
6328 &self.immutable_attributes,
6329 encoder_,
6330 immutable_attributes,
6331 (),
6332 )?;
6333
6334 let mut _field =
6335 unsafe { ::fidl_next::Slot::new_unchecked(immutable_attributes.as_mut_ptr()) };
6336
6337 Ok(())
6338 }
6339 }
6340
6341 unsafe impl<___E>
6342 ::fidl_next::EncodeOption<
6343 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes2<'static>>,
6344 ___E,
6345 > for NodeAttributes2
6346 where
6347 ___E: ::fidl_next::Encoder + ?Sized,
6348 NodeAttributes2: ::fidl_next::Encode<crate::wire::NodeAttributes2<'static>, ___E>,
6349 {
6350 #[inline]
6351 fn encode_option(
6352 this: ::core::option::Option<Self>,
6353 encoder: &mut ___E,
6354 out: &mut ::core::mem::MaybeUninit<
6355 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes2<'static>>,
6356 >,
6357 _: (),
6358 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6359 if let Some(inner) = this {
6360 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
6361 ::fidl_next::wire::Box::encode_present(out);
6362 } else {
6363 ::fidl_next::wire::Box::encode_absent(out);
6364 }
6365
6366 Ok(())
6367 }
6368 }
6369
6370 unsafe impl<'a, ___E>
6371 ::fidl_next::EncodeOption<
6372 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes2<'static>>,
6373 ___E,
6374 > for &'a NodeAttributes2
6375 where
6376 ___E: ::fidl_next::Encoder + ?Sized,
6377 &'a NodeAttributes2: ::fidl_next::Encode<crate::wire::NodeAttributes2<'static>, ___E>,
6378 {
6379 #[inline]
6380 fn encode_option(
6381 this: ::core::option::Option<Self>,
6382 encoder: &mut ___E,
6383 out: &mut ::core::mem::MaybeUninit<
6384 ::fidl_next::wire::Box<'static, crate::wire::NodeAttributes2<'static>>,
6385 >,
6386 _: (),
6387 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6388 if let Some(inner) = this {
6389 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
6390 ::fidl_next::wire::Box::encode_present(out);
6391 } else {
6392 ::fidl_next::wire::Box::encode_absent(out);
6393 }
6394
6395 Ok(())
6396 }
6397 }
6398
6399 impl<'de> ::fidl_next::FromWire<crate::wire::NodeAttributes2<'de>> for NodeAttributes2 {
6400 #[inline]
6401 fn from_wire(wire: crate::wire::NodeAttributes2<'de>) -> Self {
6402 Self {
6403 mutable_attributes: ::fidl_next::FromWire::from_wire(wire.mutable_attributes),
6404
6405 immutable_attributes: ::fidl_next::FromWire::from_wire(wire.immutable_attributes),
6406 }
6407 }
6408 }
6409
6410 impl<'de> ::fidl_next::FromWireRef<crate::wire::NodeAttributes2<'de>> for NodeAttributes2 {
6411 #[inline]
6412 fn from_wire_ref(wire: &crate::wire::NodeAttributes2<'de>) -> Self {
6413 Self {
6414 mutable_attributes: ::fidl_next::FromWireRef::from_wire_ref(
6415 &wire.mutable_attributes,
6416 ),
6417
6418 immutable_attributes: ::fidl_next::FromWireRef::from_wire_ref(
6419 &wire.immutable_attributes,
6420 ),
6421 }
6422 }
6423 }
6424
6425 #[doc = " Information that describes the target node.\n"]
6426 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6427 pub struct NodeInfo {
6428 pub attributes: ::core::option::Option<crate::natural::NodeAttributes2>,
6429 }
6430
6431 impl NodeInfo {
6432 fn __max_ordinal(&self) -> usize {
6433 if self.attributes.is_some() {
6434 return 1;
6435 }
6436
6437 0
6438 }
6439 }
6440
6441 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeInfo<'static>, ___E> for NodeInfo
6442 where
6443 ___E: ::fidl_next::Encoder + ?Sized,
6444 {
6445 #[inline]
6446 fn encode(
6447 mut self,
6448 encoder: &mut ___E,
6449 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeInfo<'static>>,
6450 _: (),
6451 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6452 ::fidl_next::munge!(let crate::wire::NodeInfo { table } = out);
6453
6454 let max_ord = self.__max_ordinal();
6455
6456 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6457 ::fidl_next::Wire::zero_padding(&mut out);
6458
6459 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6460 ::fidl_next::wire::Envelope,
6461 >(encoder, max_ord);
6462
6463 for i in 1..=max_ord {
6464 match i {
6465 1 => {
6466 if let Some(value) = self.attributes.take() {
6467 ::fidl_next::wire::Envelope::encode_value::<
6468 crate::wire::NodeAttributes2<'static>,
6469 ___E,
6470 >(
6471 value, preallocated.encoder, &mut out, ()
6472 )?;
6473 } else {
6474 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6475 }
6476 }
6477
6478 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6479 }
6480 unsafe {
6481 preallocated.write_next(out.assume_init_ref());
6482 }
6483 }
6484
6485 ::fidl_next::wire::Table::encode_len(table, max_ord);
6486
6487 Ok(())
6488 }
6489 }
6490
6491 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeInfo<'static>, ___E> for &'a NodeInfo
6492 where
6493 ___E: ::fidl_next::Encoder + ?Sized,
6494 {
6495 #[inline]
6496 fn encode(
6497 self,
6498 encoder: &mut ___E,
6499 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeInfo<'static>>,
6500 _: (),
6501 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6502 ::fidl_next::munge!(let crate::wire::NodeInfo { table } = out);
6503
6504 let max_ord = self.__max_ordinal();
6505
6506 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6507 ::fidl_next::Wire::zero_padding(&mut out);
6508
6509 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6510 ::fidl_next::wire::Envelope,
6511 >(encoder, max_ord);
6512
6513 for i in 1..=max_ord {
6514 match i {
6515 1 => {
6516 if let Some(value) = &self.attributes {
6517 ::fidl_next::wire::Envelope::encode_value::<
6518 crate::wire::NodeAttributes2<'static>,
6519 ___E,
6520 >(
6521 value, preallocated.encoder, &mut out, ()
6522 )?;
6523 } else {
6524 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6525 }
6526 }
6527
6528 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6529 }
6530 unsafe {
6531 preallocated.write_next(out.assume_init_ref());
6532 }
6533 }
6534
6535 ::fidl_next::wire::Table::encode_len(table, max_ord);
6536
6537 Ok(())
6538 }
6539 }
6540
6541 impl<'de> ::fidl_next::FromWire<crate::wire::NodeInfo<'de>> for NodeInfo {
6542 #[inline]
6543 fn from_wire(wire_: crate::wire::NodeInfo<'de>) -> Self {
6544 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
6545
6546 let attributes = wire_.table.get(1);
6547
6548 Self {
6549 attributes: attributes.map(|envelope| {
6550 ::fidl_next::FromWire::from_wire(unsafe {
6551 envelope.read_unchecked::<crate::wire::NodeAttributes2<'de>>()
6552 })
6553 }),
6554 }
6555 }
6556 }
6557
6558 impl<'de> ::fidl_next::FromWireRef<crate::wire::NodeInfo<'de>> for NodeInfo {
6559 #[inline]
6560 fn from_wire_ref(wire: &crate::wire::NodeInfo<'de>) -> Self {
6561 Self {
6562 attributes: wire.table.get(1).map(|envelope| {
6563 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6564 envelope.deref_unchecked::<crate::wire::NodeAttributes2<'de>>()
6565 })
6566 }),
6567 }
6568 }
6569 }
6570
6571 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6572 pub struct DirectoryInfo {
6573 pub attributes: ::core::option::Option<crate::natural::NodeAttributes2>,
6574 }
6575
6576 impl DirectoryInfo {
6577 fn __max_ordinal(&self) -> usize {
6578 if self.attributes.is_some() {
6579 return 1;
6580 }
6581
6582 0
6583 }
6584 }
6585
6586 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirectoryInfo<'static>, ___E> for DirectoryInfo
6587 where
6588 ___E: ::fidl_next::Encoder + ?Sized,
6589 {
6590 #[inline]
6591 fn encode(
6592 mut self,
6593 encoder: &mut ___E,
6594 out: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryInfo<'static>>,
6595 _: (),
6596 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6597 ::fidl_next::munge!(let crate::wire::DirectoryInfo { table } = out);
6598
6599 let max_ord = self.__max_ordinal();
6600
6601 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6602 ::fidl_next::Wire::zero_padding(&mut out);
6603
6604 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6605 ::fidl_next::wire::Envelope,
6606 >(encoder, max_ord);
6607
6608 for i in 1..=max_ord {
6609 match i {
6610 1 => {
6611 if let Some(value) = self.attributes.take() {
6612 ::fidl_next::wire::Envelope::encode_value::<
6613 crate::wire::NodeAttributes2<'static>,
6614 ___E,
6615 >(
6616 value, preallocated.encoder, &mut out, ()
6617 )?;
6618 } else {
6619 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6620 }
6621 }
6622
6623 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6624 }
6625 unsafe {
6626 preallocated.write_next(out.assume_init_ref());
6627 }
6628 }
6629
6630 ::fidl_next::wire::Table::encode_len(table, max_ord);
6631
6632 Ok(())
6633 }
6634 }
6635
6636 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirectoryInfo<'static>, ___E>
6637 for &'a DirectoryInfo
6638 where
6639 ___E: ::fidl_next::Encoder + ?Sized,
6640 {
6641 #[inline]
6642 fn encode(
6643 self,
6644 encoder: &mut ___E,
6645 out: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryInfo<'static>>,
6646 _: (),
6647 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6648 ::fidl_next::munge!(let crate::wire::DirectoryInfo { table } = out);
6649
6650 let max_ord = self.__max_ordinal();
6651
6652 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6653 ::fidl_next::Wire::zero_padding(&mut out);
6654
6655 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6656 ::fidl_next::wire::Envelope,
6657 >(encoder, max_ord);
6658
6659 for i in 1..=max_ord {
6660 match i {
6661 1 => {
6662 if let Some(value) = &self.attributes {
6663 ::fidl_next::wire::Envelope::encode_value::<
6664 crate::wire::NodeAttributes2<'static>,
6665 ___E,
6666 >(
6667 value, preallocated.encoder, &mut out, ()
6668 )?;
6669 } else {
6670 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6671 }
6672 }
6673
6674 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6675 }
6676 unsafe {
6677 preallocated.write_next(out.assume_init_ref());
6678 }
6679 }
6680
6681 ::fidl_next::wire::Table::encode_len(table, max_ord);
6682
6683 Ok(())
6684 }
6685 }
6686
6687 impl<'de> ::fidl_next::FromWire<crate::wire::DirectoryInfo<'de>> for DirectoryInfo {
6688 #[inline]
6689 fn from_wire(wire_: crate::wire::DirectoryInfo<'de>) -> Self {
6690 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
6691
6692 let attributes = wire_.table.get(1);
6693
6694 Self {
6695 attributes: attributes.map(|envelope| {
6696 ::fidl_next::FromWire::from_wire(unsafe {
6697 envelope.read_unchecked::<crate::wire::NodeAttributes2<'de>>()
6698 })
6699 }),
6700 }
6701 }
6702 }
6703
6704 impl<'de> ::fidl_next::FromWireRef<crate::wire::DirectoryInfo<'de>> for DirectoryInfo {
6705 #[inline]
6706 fn from_wire_ref(wire: &crate::wire::DirectoryInfo<'de>) -> Self {
6707 Self {
6708 attributes: wire.table.get(1).map(|envelope| {
6709 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6710 envelope.deref_unchecked::<crate::wire::NodeAttributes2<'de>>()
6711 })
6712 }),
6713 }
6714 }
6715 }
6716
6717 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6718 pub struct SymlinkInfo {
6719 pub target: ::core::option::Option<::std::vec::Vec<u8>>,
6720
6721 pub attributes: ::core::option::Option<crate::natural::NodeAttributes2>,
6722 }
6723
6724 impl SymlinkInfo {
6725 fn __max_ordinal(&self) -> usize {
6726 if self.attributes.is_some() {
6727 return 2;
6728 }
6729
6730 if self.target.is_some() {
6731 return 1;
6732 }
6733
6734 0
6735 }
6736 }
6737
6738 unsafe impl<___E> ::fidl_next::Encode<crate::wire::SymlinkInfo<'static>, ___E> for SymlinkInfo
6739 where
6740 ___E: ::fidl_next::Encoder + ?Sized,
6741 {
6742 #[inline]
6743 fn encode(
6744 mut self,
6745 encoder: &mut ___E,
6746 out: &mut ::core::mem::MaybeUninit<crate::wire::SymlinkInfo<'static>>,
6747 _: (),
6748 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6749 ::fidl_next::munge!(let crate::wire::SymlinkInfo { table } = out);
6750
6751 let max_ord = self.__max_ordinal();
6752
6753 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6754 ::fidl_next::Wire::zero_padding(&mut out);
6755
6756 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6757 ::fidl_next::wire::Envelope,
6758 >(encoder, max_ord);
6759
6760 for i in 1..=max_ord {
6761 match i {
6762 2 => {
6763 if let Some(value) = self.attributes.take() {
6764 ::fidl_next::wire::Envelope::encode_value::<
6765 crate::wire::NodeAttributes2<'static>,
6766 ___E,
6767 >(
6768 value, preallocated.encoder, &mut out, ()
6769 )?;
6770 } else {
6771 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6772 }
6773 }
6774
6775 1 => {
6776 if let Some(value) = self.target.take() {
6777 ::fidl_next::wire::Envelope::encode_value::<
6778 ::fidl_next::wire::Vector<'static, u8>,
6779 ___E,
6780 >(
6781 value, preallocated.encoder, &mut out, (4095, ())
6782 )?;
6783 } else {
6784 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6785 }
6786 }
6787
6788 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6789 }
6790 unsafe {
6791 preallocated.write_next(out.assume_init_ref());
6792 }
6793 }
6794
6795 ::fidl_next::wire::Table::encode_len(table, max_ord);
6796
6797 Ok(())
6798 }
6799 }
6800
6801 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::SymlinkInfo<'static>, ___E>
6802 for &'a SymlinkInfo
6803 where
6804 ___E: ::fidl_next::Encoder + ?Sized,
6805 {
6806 #[inline]
6807 fn encode(
6808 self,
6809 encoder: &mut ___E,
6810 out: &mut ::core::mem::MaybeUninit<crate::wire::SymlinkInfo<'static>>,
6811 _: (),
6812 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6813 ::fidl_next::munge!(let crate::wire::SymlinkInfo { table } = out);
6814
6815 let max_ord = self.__max_ordinal();
6816
6817 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6818 ::fidl_next::Wire::zero_padding(&mut out);
6819
6820 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6821 ::fidl_next::wire::Envelope,
6822 >(encoder, max_ord);
6823
6824 for i in 1..=max_ord {
6825 match i {
6826 2 => {
6827 if let Some(value) = &self.attributes {
6828 ::fidl_next::wire::Envelope::encode_value::<
6829 crate::wire::NodeAttributes2<'static>,
6830 ___E,
6831 >(
6832 value, preallocated.encoder, &mut out, ()
6833 )?;
6834 } else {
6835 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6836 }
6837 }
6838
6839 1 => {
6840 if let Some(value) = &self.target {
6841 ::fidl_next::wire::Envelope::encode_value::<
6842 ::fidl_next::wire::Vector<'static, u8>,
6843 ___E,
6844 >(
6845 value, preallocated.encoder, &mut out, (4095, ())
6846 )?;
6847 } else {
6848 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6849 }
6850 }
6851
6852 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6853 }
6854 unsafe {
6855 preallocated.write_next(out.assume_init_ref());
6856 }
6857 }
6858
6859 ::fidl_next::wire::Table::encode_len(table, max_ord);
6860
6861 Ok(())
6862 }
6863 }
6864
6865 impl<'de> ::fidl_next::FromWire<crate::wire::SymlinkInfo<'de>> for SymlinkInfo {
6866 #[inline]
6867 fn from_wire(wire_: crate::wire::SymlinkInfo<'de>) -> Self {
6868 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
6869
6870 let target = wire_.table.get(1);
6871
6872 let attributes = wire_.table.get(2);
6873
6874 Self {
6875 target: target.map(|envelope| {
6876 ::fidl_next::FromWire::from_wire(unsafe {
6877 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
6878 })
6879 }),
6880
6881 attributes: attributes.map(|envelope| {
6882 ::fidl_next::FromWire::from_wire(unsafe {
6883 envelope.read_unchecked::<crate::wire::NodeAttributes2<'de>>()
6884 })
6885 }),
6886 }
6887 }
6888 }
6889
6890 impl<'de> ::fidl_next::FromWireRef<crate::wire::SymlinkInfo<'de>> for SymlinkInfo {
6891 #[inline]
6892 fn from_wire_ref(wire: &crate::wire::SymlinkInfo<'de>) -> Self {
6893 Self {
6894 target: wire.table.get(1).map(|envelope| {
6895 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6896 envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
6897 })
6898 }),
6899
6900 attributes: wire.table.get(2).map(|envelope| {
6901 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6902 envelope.deref_unchecked::<crate::wire::NodeAttributes2<'de>>()
6903 })
6904 }),
6905 }
6906 }
6907 }
6908
6909 ::fidl_next::bitflags::bitflags! {
6910 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct NodeAttributesQuery: u64 {
6911 #[doc = " Requests [`NodeAttributes.protocols`].\n"]const PROTOCOLS = 1;
6912 #[doc = " Requests [`NodeAttributes.abilities`].\n"]const ABILITIES = 2;
6913 #[doc = " Requests [`NodeAttributes.content_size`].\n"]const CONTENT_SIZE = 4;
6914 #[doc = " Requests [`NodeAttributes.storage_size`].\n"]const STORAGE_SIZE = 8;
6915 #[doc = " Requests [`NodeAttributes.link_count`].\n"]const LINK_COUNT = 16;
6916 #[doc = " Requests [`NodeAttributes.id`].\n"]const ID = 32;
6917 #[doc = " Requests [`NodeAttributes.creation_time`].\n"]const CREATION_TIME = 64;
6918 #[doc = " Requests [`NodeAttributes.modification_time`].\n"]const MODIFICATION_TIME = 128;
6919 #[doc = " Posix attributes.\n"]const MODE = 256;
6920 const UID = 512;
6921 const GID = 1024;
6922 const RDEV = 2048;
6923 const ACCESS_TIME = 4096;
6924 const CHANGE_TIME = 8192;
6925 #[doc = " Verity attributes.\n"]const OPTIONS = 16384;
6926 const ROOT_HASH = 32768;
6927 const VERITY_ENABLED = 65536;
6928 #[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;
6929 #[doc = " Requests [`MutableNodeAttributes.selinux_context`]. See that field for more detail.\n"]const SELINUX_CONTEXT = 262144;
6930 #[doc = " fscrypt attribute.\n"]const WRAPPING_KEY_ID = 524288;
6931 #[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;
6932 const _ = !0;
6933 }
6934 }
6935
6936 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeAttributesQuery, ___E>
6937 for NodeAttributesQuery
6938 where
6939 ___E: ?Sized,
6940 {
6941 #[inline]
6942 fn encode(
6943 self,
6944 encoder: &mut ___E,
6945 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributesQuery>,
6946 _: (),
6947 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6948 ::fidl_next::Encode::encode(&self, encoder, out, ())
6949 }
6950 }
6951
6952 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeAttributesQuery, ___E>
6953 for &'a NodeAttributesQuery
6954 where
6955 ___E: ?Sized,
6956 {
6957 #[inline]
6958 fn encode(
6959 self,
6960 _: &mut ___E,
6961 out: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributesQuery>,
6962 _: (),
6963 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6964 ::fidl_next::munge!(let crate::wire::NodeAttributesQuery { value } = out);
6965
6966 let _ = value.write(::fidl_next::wire::Uint64::from(self.bits()));
6967 Ok(())
6968 }
6969 }
6970
6971 impl ::core::convert::From<crate::wire::NodeAttributesQuery> for NodeAttributesQuery {
6972 fn from(wire: crate::wire::NodeAttributesQuery) -> Self {
6973 Self::from_bits_retain(u64::from(wire.value))
6974 }
6975 }
6976
6977 impl ::fidl_next::FromWire<crate::wire::NodeAttributesQuery> for NodeAttributesQuery {
6978 #[inline]
6979 fn from_wire(wire: crate::wire::NodeAttributesQuery) -> Self {
6980 Self::from(wire)
6981 }
6982 }
6983
6984 impl ::fidl_next::FromWireRef<crate::wire::NodeAttributesQuery> for NodeAttributesQuery {
6985 #[inline]
6986 fn from_wire_ref(wire: &crate::wire::NodeAttributesQuery) -> Self {
6987 Self::from(*wire)
6988 }
6989 }
6990
6991 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6992 #[repr(C)]
6993 pub struct NodeGetAttributesRequest {
6994 pub query: crate::natural::NodeAttributesQuery,
6995 }
6996
6997 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NodeGetAttributesRequest, ___E>
6998 for NodeGetAttributesRequest
6999 where
7000 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7001 {
7002 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
7003 Self,
7004 crate::wire::NodeGetAttributesRequest,
7005 > = unsafe {
7006 ::fidl_next::CopyOptimization::enable_if(
7007 true && <crate::natural::NodeAttributesQuery as ::fidl_next::Encode<
7008 crate::wire::NodeAttributesQuery,
7009 ___E,
7010 >>::COPY_OPTIMIZATION
7011 .is_enabled(),
7012 )
7013 };
7014
7015 #[inline]
7016 fn encode(
7017 self,
7018 encoder_: &mut ___E,
7019 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeGetAttributesRequest>,
7020 _: (),
7021 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7022 ::fidl_next::munge! {
7023 let crate::wire::NodeGetAttributesRequest {
7024 query,
7025
7026 } = out_;
7027 }
7028
7029 ::fidl_next::Encode::encode(self.query, encoder_, query, ())?;
7030
7031 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(query.as_mut_ptr()) };
7032
7033 Ok(())
7034 }
7035 }
7036
7037 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NodeGetAttributesRequest, ___E>
7038 for &'a NodeGetAttributesRequest
7039 where
7040 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7041 {
7042 #[inline]
7043 fn encode(
7044 self,
7045 encoder_: &mut ___E,
7046 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeGetAttributesRequest>,
7047 _: (),
7048 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7049 ::fidl_next::munge! {
7050 let crate::wire::NodeGetAttributesRequest {
7051 query,
7052
7053 } = out_;
7054 }
7055
7056 ::fidl_next::Encode::encode(&self.query, encoder_, query, ())?;
7057
7058 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(query.as_mut_ptr()) };
7059
7060 Ok(())
7061 }
7062 }
7063
7064 unsafe impl<___E>
7065 ::fidl_next::EncodeOption<
7066 ::fidl_next::wire::Box<'static, crate::wire::NodeGetAttributesRequest>,
7067 ___E,
7068 > for NodeGetAttributesRequest
7069 where
7070 ___E: ::fidl_next::Encoder + ?Sized,
7071 NodeGetAttributesRequest: ::fidl_next::Encode<crate::wire::NodeGetAttributesRequest, ___E>,
7072 {
7073 #[inline]
7074 fn encode_option(
7075 this: ::core::option::Option<Self>,
7076 encoder: &mut ___E,
7077 out: &mut ::core::mem::MaybeUninit<
7078 ::fidl_next::wire::Box<'static, crate::wire::NodeGetAttributesRequest>,
7079 >,
7080 _: (),
7081 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7082 if let Some(inner) = this {
7083 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7084 ::fidl_next::wire::Box::encode_present(out);
7085 } else {
7086 ::fidl_next::wire::Box::encode_absent(out);
7087 }
7088
7089 Ok(())
7090 }
7091 }
7092
7093 unsafe impl<'a, ___E>
7094 ::fidl_next::EncodeOption<
7095 ::fidl_next::wire::Box<'static, crate::wire::NodeGetAttributesRequest>,
7096 ___E,
7097 > for &'a NodeGetAttributesRequest
7098 where
7099 ___E: ::fidl_next::Encoder + ?Sized,
7100 &'a NodeGetAttributesRequest:
7101 ::fidl_next::Encode<crate::wire::NodeGetAttributesRequest, ___E>,
7102 {
7103 #[inline]
7104 fn encode_option(
7105 this: ::core::option::Option<Self>,
7106 encoder: &mut ___E,
7107 out: &mut ::core::mem::MaybeUninit<
7108 ::fidl_next::wire::Box<'static, crate::wire::NodeGetAttributesRequest>,
7109 >,
7110 _: (),
7111 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7112 if let Some(inner) = this {
7113 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7114 ::fidl_next::wire::Box::encode_present(out);
7115 } else {
7116 ::fidl_next::wire::Box::encode_absent(out);
7117 }
7118
7119 Ok(())
7120 }
7121 }
7122
7123 impl ::fidl_next::FromWire<crate::wire::NodeGetAttributesRequest> for NodeGetAttributesRequest {
7124 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
7125 crate::wire::NodeGetAttributesRequest,
7126 Self,
7127 > = unsafe {
7128 ::fidl_next::CopyOptimization::enable_if(
7129 true && <crate::natural::NodeAttributesQuery as ::fidl_next::FromWire<
7130 crate::wire::NodeAttributesQuery,
7131 >>::COPY_OPTIMIZATION
7132 .is_enabled(),
7133 )
7134 };
7135
7136 #[inline]
7137 fn from_wire(wire: crate::wire::NodeGetAttributesRequest) -> Self {
7138 Self { query: ::fidl_next::FromWire::from_wire(wire.query) }
7139 }
7140 }
7141
7142 impl ::fidl_next::FromWireRef<crate::wire::NodeGetAttributesRequest> for NodeGetAttributesRequest {
7143 #[inline]
7144 fn from_wire_ref(wire: &crate::wire::NodeGetAttributesRequest) -> Self {
7145 Self { query: ::fidl_next::FromWireRef::from_wire_ref(&wire.query) }
7146 }
7147 }
7148
7149 #[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"]
7150 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7151 pub struct Options {
7152 pub attributes: ::core::option::Option<crate::natural::NodeAttributesQuery>,
7153
7154 pub create_attributes: ::core::option::Option<crate::natural::MutableNodeAttributes>,
7155 }
7156
7157 impl Options {
7158 fn __max_ordinal(&self) -> usize {
7159 if self.create_attributes.is_some() {
7160 return 2;
7161 }
7162
7163 if self.attributes.is_some() {
7164 return 1;
7165 }
7166
7167 0
7168 }
7169 }
7170
7171 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Options<'static>, ___E> for Options
7172 where
7173 ___E: ::fidl_next::Encoder + ?Sized,
7174 {
7175 #[inline]
7176 fn encode(
7177 mut self,
7178 encoder: &mut ___E,
7179 out: &mut ::core::mem::MaybeUninit<crate::wire::Options<'static>>,
7180 _: (),
7181 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7182 ::fidl_next::munge!(let crate::wire::Options { table } = out);
7183
7184 let max_ord = self.__max_ordinal();
7185
7186 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7187 ::fidl_next::Wire::zero_padding(&mut out);
7188
7189 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7190 ::fidl_next::wire::Envelope,
7191 >(encoder, max_ord);
7192
7193 for i in 1..=max_ord {
7194 match i {
7195 2 => {
7196 if let Some(value) = self.create_attributes.take() {
7197 ::fidl_next::wire::Envelope::encode_value::<
7198 crate::wire::MutableNodeAttributes<'static>,
7199 ___E,
7200 >(
7201 value, preallocated.encoder, &mut out, ()
7202 )?;
7203 } else {
7204 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7205 }
7206 }
7207
7208 1 => {
7209 if let Some(value) = self.attributes.take() {
7210 ::fidl_next::wire::Envelope::encode_value::<
7211 crate::wire::NodeAttributesQuery,
7212 ___E,
7213 >(
7214 value, preallocated.encoder, &mut out, ()
7215 )?;
7216 } else {
7217 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7218 }
7219 }
7220
7221 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7222 }
7223 unsafe {
7224 preallocated.write_next(out.assume_init_ref());
7225 }
7226 }
7227
7228 ::fidl_next::wire::Table::encode_len(table, max_ord);
7229
7230 Ok(())
7231 }
7232 }
7233
7234 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Options<'static>, ___E> for &'a Options
7235 where
7236 ___E: ::fidl_next::Encoder + ?Sized,
7237 {
7238 #[inline]
7239 fn encode(
7240 self,
7241 encoder: &mut ___E,
7242 out: &mut ::core::mem::MaybeUninit<crate::wire::Options<'static>>,
7243 _: (),
7244 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7245 ::fidl_next::munge!(let crate::wire::Options { table } = out);
7246
7247 let max_ord = self.__max_ordinal();
7248
7249 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7250 ::fidl_next::Wire::zero_padding(&mut out);
7251
7252 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7253 ::fidl_next::wire::Envelope,
7254 >(encoder, max_ord);
7255
7256 for i in 1..=max_ord {
7257 match i {
7258 2 => {
7259 if let Some(value) = &self.create_attributes {
7260 ::fidl_next::wire::Envelope::encode_value::<
7261 crate::wire::MutableNodeAttributes<'static>,
7262 ___E,
7263 >(
7264 value, preallocated.encoder, &mut out, ()
7265 )?;
7266 } else {
7267 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7268 }
7269 }
7270
7271 1 => {
7272 if let Some(value) = &self.attributes {
7273 ::fidl_next::wire::Envelope::encode_value::<
7274 crate::wire::NodeAttributesQuery,
7275 ___E,
7276 >(
7277 value, preallocated.encoder, &mut out, ()
7278 )?;
7279 } else {
7280 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7281 }
7282 }
7283
7284 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7285 }
7286 unsafe {
7287 preallocated.write_next(out.assume_init_ref());
7288 }
7289 }
7290
7291 ::fidl_next::wire::Table::encode_len(table, max_ord);
7292
7293 Ok(())
7294 }
7295 }
7296
7297 impl<'de> ::fidl_next::FromWire<crate::wire::Options<'de>> for Options {
7298 #[inline]
7299 fn from_wire(wire_: crate::wire::Options<'de>) -> Self {
7300 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
7301
7302 let attributes = wire_.table.get(1);
7303
7304 let create_attributes = wire_.table.get(2);
7305
7306 Self {
7307 attributes: attributes.map(|envelope| {
7308 ::fidl_next::FromWire::from_wire(unsafe {
7309 envelope.read_unchecked::<crate::wire::NodeAttributesQuery>()
7310 })
7311 }),
7312
7313 create_attributes: create_attributes.map(|envelope| {
7314 ::fidl_next::FromWire::from_wire(unsafe {
7315 envelope.read_unchecked::<crate::wire::MutableNodeAttributes<'de>>()
7316 })
7317 }),
7318 }
7319 }
7320 }
7321
7322 impl<'de> ::fidl_next::FromWireRef<crate::wire::Options<'de>> for Options {
7323 #[inline]
7324 fn from_wire_ref(wire: &crate::wire::Options<'de>) -> Self {
7325 Self {
7326 attributes: wire.table.get(1).map(|envelope| {
7327 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7328 envelope.deref_unchecked::<crate::wire::NodeAttributesQuery>()
7329 })
7330 }),
7331
7332 create_attributes: wire.table.get(2).map(|envelope| {
7333 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7334 envelope.deref_unchecked::<crate::wire::MutableNodeAttributes<'de>>()
7335 })
7336 }),
7337 }
7338 }
7339 }
7340
7341 pub type DirectoryObject = ();
7342
7343 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7344 #[repr(u8)]
7345 pub enum DirentType {
7346 Unknown = 0,
7347 Directory = 4,
7348 BlockDevice = 6,
7349 File = 8,
7350 Symlink = 10,
7351 Service = 16,
7352 UnknownOrdinal_(u8) = 17,
7353 }
7354 impl ::std::convert::From<u8> for DirentType {
7355 fn from(value: u8) -> Self {
7356 match value {
7357 0 => Self::Unknown,
7358 4 => Self::Directory,
7359 6 => Self::BlockDevice,
7360 8 => Self::File,
7361 10 => Self::Symlink,
7362 16 => Self::Service,
7363
7364 _ => Self::UnknownOrdinal_(value),
7365 }
7366 }
7367 }
7368
7369 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DirentType, ___E> for DirentType
7370 where
7371 ___E: ?Sized,
7372 {
7373 #[inline]
7374 fn encode(
7375 self,
7376 encoder: &mut ___E,
7377 out: &mut ::core::mem::MaybeUninit<crate::wire::DirentType>,
7378 _: (),
7379 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7380 ::fidl_next::Encode::encode(&self, encoder, out, ())
7381 }
7382 }
7383
7384 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DirentType, ___E> for &'a DirentType
7385 where
7386 ___E: ?Sized,
7387 {
7388 #[inline]
7389 fn encode(
7390 self,
7391 encoder: &mut ___E,
7392 out: &mut ::core::mem::MaybeUninit<crate::wire::DirentType>,
7393 _: (),
7394 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7395 ::fidl_next::munge!(let crate::wire::DirentType { value } = out);
7396 let _ = value.write(u8::from(match *self {
7397 DirentType::Unknown => 0,
7398
7399 DirentType::Directory => 4,
7400
7401 DirentType::BlockDevice => 6,
7402
7403 DirentType::File => 8,
7404
7405 DirentType::Symlink => 10,
7406
7407 DirentType::Service => 16,
7408
7409 DirentType::UnknownOrdinal_(value) => value,
7410 }));
7411
7412 Ok(())
7413 }
7414 }
7415
7416 impl ::core::convert::From<crate::wire::DirentType> for DirentType {
7417 fn from(wire: crate::wire::DirentType) -> Self {
7418 match u8::from(wire.value) {
7419 0 => Self::Unknown,
7420
7421 4 => Self::Directory,
7422
7423 6 => Self::BlockDevice,
7424
7425 8 => Self::File,
7426
7427 10 => Self::Symlink,
7428
7429 16 => Self::Service,
7430
7431 value => Self::UnknownOrdinal_(value),
7432 }
7433 }
7434 }
7435
7436 impl ::fidl_next::FromWire<crate::wire::DirentType> for DirentType {
7437 #[inline]
7438 fn from_wire(wire: crate::wire::DirentType) -> Self {
7439 Self::from(wire)
7440 }
7441 }
7442
7443 impl ::fidl_next::FromWireRef<crate::wire::DirentType> for DirentType {
7444 #[inline]
7445 fn from_wire_ref(wire: &crate::wire::DirentType) -> Self {
7446 Self::from(*wire)
7447 }
7448 }
7449
7450 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7451 pub struct ExtendedAttributeIteratorGetNextResponse {
7452 pub attributes: ::std::vec::Vec<::std::vec::Vec<u8>>,
7453
7454 pub last: bool,
7455 }
7456
7457 unsafe impl<___E>
7458 ::fidl_next::Encode<crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>, ___E>
7459 for ExtendedAttributeIteratorGetNextResponse
7460 where
7461 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7462 ___E: ::fidl_next::Encoder,
7463 {
7464 #[inline]
7465 fn encode(
7466 self,
7467 encoder_: &mut ___E,
7468 out_: &mut ::core::mem::MaybeUninit<
7469 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7470 >,
7471 _: (),
7472 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7473 ::fidl_next::munge! {
7474 let crate::wire::ExtendedAttributeIteratorGetNextResponse {
7475 attributes,
7476 last,
7477
7478 } = out_;
7479 }
7480
7481 ::fidl_next::Encode::encode(self.attributes, encoder_, attributes, (128, (255, ())))?;
7482
7483 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(attributes.as_mut_ptr()) };
7484 ::fidl_next::Constrained::validate(_field, (128, (255, ())))?;
7485
7486 ::fidl_next::Encode::encode(self.last, encoder_, last, ())?;
7487
7488 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(last.as_mut_ptr()) };
7489
7490 Ok(())
7491 }
7492 }
7493
7494 unsafe impl<'a, ___E>
7495 ::fidl_next::Encode<crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>, ___E>
7496 for &'a ExtendedAttributeIteratorGetNextResponse
7497 where
7498 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7499 ___E: ::fidl_next::Encoder,
7500 {
7501 #[inline]
7502 fn encode(
7503 self,
7504 encoder_: &mut ___E,
7505 out_: &mut ::core::mem::MaybeUninit<
7506 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7507 >,
7508 _: (),
7509 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7510 ::fidl_next::munge! {
7511 let crate::wire::ExtendedAttributeIteratorGetNextResponse {
7512 attributes,
7513 last,
7514
7515 } = out_;
7516 }
7517
7518 ::fidl_next::Encode::encode(&self.attributes, encoder_, attributes, (128, (255, ())))?;
7519
7520 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(attributes.as_mut_ptr()) };
7521 ::fidl_next::Constrained::validate(_field, (128, (255, ())))?;
7522
7523 ::fidl_next::Encode::encode(&self.last, encoder_, last, ())?;
7524
7525 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(last.as_mut_ptr()) };
7526
7527 Ok(())
7528 }
7529 }
7530
7531 unsafe impl<___E>
7532 ::fidl_next::EncodeOption<
7533 ::fidl_next::wire::Box<
7534 'static,
7535 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7536 >,
7537 ___E,
7538 > for ExtendedAttributeIteratorGetNextResponse
7539 where
7540 ___E: ::fidl_next::Encoder + ?Sized,
7541 ExtendedAttributeIteratorGetNextResponse: ::fidl_next::Encode<
7542 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7543 ___E,
7544 >,
7545 {
7546 #[inline]
7547 fn encode_option(
7548 this: ::core::option::Option<Self>,
7549 encoder: &mut ___E,
7550 out: &mut ::core::mem::MaybeUninit<
7551 ::fidl_next::wire::Box<
7552 'static,
7553 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7554 >,
7555 >,
7556 _: (),
7557 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7558 if let Some(inner) = this {
7559 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7560 ::fidl_next::wire::Box::encode_present(out);
7561 } else {
7562 ::fidl_next::wire::Box::encode_absent(out);
7563 }
7564
7565 Ok(())
7566 }
7567 }
7568
7569 unsafe impl<'a, ___E>
7570 ::fidl_next::EncodeOption<
7571 ::fidl_next::wire::Box<
7572 'static,
7573 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7574 >,
7575 ___E,
7576 > for &'a ExtendedAttributeIteratorGetNextResponse
7577 where
7578 ___E: ::fidl_next::Encoder + ?Sized,
7579 &'a ExtendedAttributeIteratorGetNextResponse: ::fidl_next::Encode<
7580 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7581 ___E,
7582 >,
7583 {
7584 #[inline]
7585 fn encode_option(
7586 this: ::core::option::Option<Self>,
7587 encoder: &mut ___E,
7588 out: &mut ::core::mem::MaybeUninit<
7589 ::fidl_next::wire::Box<
7590 'static,
7591 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
7592 >,
7593 >,
7594 _: (),
7595 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7596 if let Some(inner) = this {
7597 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7598 ::fidl_next::wire::Box::encode_present(out);
7599 } else {
7600 ::fidl_next::wire::Box::encode_absent(out);
7601 }
7602
7603 Ok(())
7604 }
7605 }
7606
7607 impl<'de> ::fidl_next::FromWire<crate::wire::ExtendedAttributeIteratorGetNextResponse<'de>>
7608 for ExtendedAttributeIteratorGetNextResponse
7609 {
7610 #[inline]
7611 fn from_wire(wire: crate::wire::ExtendedAttributeIteratorGetNextResponse<'de>) -> Self {
7612 Self {
7613 attributes: ::fidl_next::FromWire::from_wire(wire.attributes),
7614
7615 last: ::fidl_next::FromWire::from_wire(wire.last),
7616 }
7617 }
7618 }
7619
7620 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExtendedAttributeIteratorGetNextResponse<'de>>
7621 for ExtendedAttributeIteratorGetNextResponse
7622 {
7623 #[inline]
7624 fn from_wire_ref(
7625 wire: &crate::wire::ExtendedAttributeIteratorGetNextResponse<'de>,
7626 ) -> Self {
7627 Self {
7628 attributes: ::fidl_next::FromWireRef::from_wire_ref(&wire.attributes),
7629
7630 last: ::fidl_next::FromWireRef::from_wire_ref(&wire.last),
7631 }
7632 }
7633 }
7634
7635 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7636 #[repr(C)]
7637 pub struct ReadableReadRequest {
7638 pub count: u64,
7639 }
7640
7641 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ReadableReadRequest, ___E>
7642 for ReadableReadRequest
7643 where
7644 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7645 {
7646 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
7647 Self,
7648 crate::wire::ReadableReadRequest,
7649 > = unsafe {
7650 ::fidl_next::CopyOptimization::enable_if(
7651 true
7652
7653 && <
7654 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
7655 >::COPY_OPTIMIZATION.is_enabled()
7656
7657 )
7658 };
7659
7660 #[inline]
7661 fn encode(
7662 self,
7663 encoder_: &mut ___E,
7664 out_: &mut ::core::mem::MaybeUninit<crate::wire::ReadableReadRequest>,
7665 _: (),
7666 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7667 ::fidl_next::munge! {
7668 let crate::wire::ReadableReadRequest {
7669 count,
7670
7671 } = out_;
7672 }
7673
7674 ::fidl_next::Encode::encode(self.count, encoder_, count, ())?;
7675
7676 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(count.as_mut_ptr()) };
7677
7678 Ok(())
7679 }
7680 }
7681
7682 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ReadableReadRequest, ___E>
7683 for &'a ReadableReadRequest
7684 where
7685 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7686 {
7687 #[inline]
7688 fn encode(
7689 self,
7690 encoder_: &mut ___E,
7691 out_: &mut ::core::mem::MaybeUninit<crate::wire::ReadableReadRequest>,
7692 _: (),
7693 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7694 ::fidl_next::munge! {
7695 let crate::wire::ReadableReadRequest {
7696 count,
7697
7698 } = out_;
7699 }
7700
7701 ::fidl_next::Encode::encode(&self.count, encoder_, count, ())?;
7702
7703 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(count.as_mut_ptr()) };
7704
7705 Ok(())
7706 }
7707 }
7708
7709 unsafe impl<___E>
7710 ::fidl_next::EncodeOption<
7711 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadRequest>,
7712 ___E,
7713 > for ReadableReadRequest
7714 where
7715 ___E: ::fidl_next::Encoder + ?Sized,
7716 ReadableReadRequest: ::fidl_next::Encode<crate::wire::ReadableReadRequest, ___E>,
7717 {
7718 #[inline]
7719 fn encode_option(
7720 this: ::core::option::Option<Self>,
7721 encoder: &mut ___E,
7722 out: &mut ::core::mem::MaybeUninit<
7723 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadRequest>,
7724 >,
7725 _: (),
7726 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7727 if let Some(inner) = this {
7728 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7729 ::fidl_next::wire::Box::encode_present(out);
7730 } else {
7731 ::fidl_next::wire::Box::encode_absent(out);
7732 }
7733
7734 Ok(())
7735 }
7736 }
7737
7738 unsafe impl<'a, ___E>
7739 ::fidl_next::EncodeOption<
7740 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadRequest>,
7741 ___E,
7742 > for &'a ReadableReadRequest
7743 where
7744 ___E: ::fidl_next::Encoder + ?Sized,
7745 &'a ReadableReadRequest: ::fidl_next::Encode<crate::wire::ReadableReadRequest, ___E>,
7746 {
7747 #[inline]
7748 fn encode_option(
7749 this: ::core::option::Option<Self>,
7750 encoder: &mut ___E,
7751 out: &mut ::core::mem::MaybeUninit<
7752 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadRequest>,
7753 >,
7754 _: (),
7755 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7756 if let Some(inner) = this {
7757 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7758 ::fidl_next::wire::Box::encode_present(out);
7759 } else {
7760 ::fidl_next::wire::Box::encode_absent(out);
7761 }
7762
7763 Ok(())
7764 }
7765 }
7766
7767 impl ::fidl_next::FromWire<crate::wire::ReadableReadRequest> for ReadableReadRequest {
7768 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
7769 crate::wire::ReadableReadRequest,
7770 Self,
7771 > = unsafe {
7772 ::fidl_next::CopyOptimization::enable_if(
7773 true
7774 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
7775 .is_enabled(),
7776 )
7777 };
7778
7779 #[inline]
7780 fn from_wire(wire: crate::wire::ReadableReadRequest) -> Self {
7781 Self { count: ::fidl_next::FromWire::from_wire(wire.count) }
7782 }
7783 }
7784
7785 impl ::fidl_next::FromWireRef<crate::wire::ReadableReadRequest> for ReadableReadRequest {
7786 #[inline]
7787 fn from_wire_ref(wire: &crate::wire::ReadableReadRequest) -> Self {
7788 Self { count: ::fidl_next::FromWireRef::from_wire_ref(&wire.count) }
7789 }
7790 }
7791
7792 #[doc = " The byte vector type used for read/write operations.\n"]
7793 pub type Transfer = ::std::vec::Vec<u8>;
7794
7795 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7796 pub struct ReadableReadResponse {
7797 pub data: ::std::vec::Vec<u8>,
7798 }
7799
7800 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ReadableReadResponse<'static>, ___E>
7801 for ReadableReadResponse
7802 where
7803 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7804 ___E: ::fidl_next::Encoder,
7805 {
7806 #[inline]
7807 fn encode(
7808 self,
7809 encoder_: &mut ___E,
7810 out_: &mut ::core::mem::MaybeUninit<crate::wire::ReadableReadResponse<'static>>,
7811 _: (),
7812 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7813 ::fidl_next::munge! {
7814 let crate::wire::ReadableReadResponse {
7815 data,
7816
7817 } = out_;
7818 }
7819
7820 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
7821
7822 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
7823 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
7824
7825 Ok(())
7826 }
7827 }
7828
7829 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ReadableReadResponse<'static>, ___E>
7830 for &'a ReadableReadResponse
7831 where
7832 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7833 ___E: ::fidl_next::Encoder,
7834 {
7835 #[inline]
7836 fn encode(
7837 self,
7838 encoder_: &mut ___E,
7839 out_: &mut ::core::mem::MaybeUninit<crate::wire::ReadableReadResponse<'static>>,
7840 _: (),
7841 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7842 ::fidl_next::munge! {
7843 let crate::wire::ReadableReadResponse {
7844 data,
7845
7846 } = out_;
7847 }
7848
7849 ::fidl_next::Encode::encode(&self.data, encoder_, data, (8192, ()))?;
7850
7851 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
7852 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
7853
7854 Ok(())
7855 }
7856 }
7857
7858 unsafe impl<___E>
7859 ::fidl_next::EncodeOption<
7860 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadResponse<'static>>,
7861 ___E,
7862 > for ReadableReadResponse
7863 where
7864 ___E: ::fidl_next::Encoder + ?Sized,
7865 ReadableReadResponse: ::fidl_next::Encode<crate::wire::ReadableReadResponse<'static>, ___E>,
7866 {
7867 #[inline]
7868 fn encode_option(
7869 this: ::core::option::Option<Self>,
7870 encoder: &mut ___E,
7871 out: &mut ::core::mem::MaybeUninit<
7872 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadResponse<'static>>,
7873 >,
7874 _: (),
7875 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7876 if let Some(inner) = this {
7877 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7878 ::fidl_next::wire::Box::encode_present(out);
7879 } else {
7880 ::fidl_next::wire::Box::encode_absent(out);
7881 }
7882
7883 Ok(())
7884 }
7885 }
7886
7887 unsafe impl<'a, ___E>
7888 ::fidl_next::EncodeOption<
7889 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadResponse<'static>>,
7890 ___E,
7891 > for &'a ReadableReadResponse
7892 where
7893 ___E: ::fidl_next::Encoder + ?Sized,
7894 &'a ReadableReadResponse:
7895 ::fidl_next::Encode<crate::wire::ReadableReadResponse<'static>, ___E>,
7896 {
7897 #[inline]
7898 fn encode_option(
7899 this: ::core::option::Option<Self>,
7900 encoder: &mut ___E,
7901 out: &mut ::core::mem::MaybeUninit<
7902 ::fidl_next::wire::Box<'static, crate::wire::ReadableReadResponse<'static>>,
7903 >,
7904 _: (),
7905 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7906 if let Some(inner) = this {
7907 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
7908 ::fidl_next::wire::Box::encode_present(out);
7909 } else {
7910 ::fidl_next::wire::Box::encode_absent(out);
7911 }
7912
7913 Ok(())
7914 }
7915 }
7916
7917 impl<'de> ::fidl_next::FromWire<crate::wire::ReadableReadResponse<'de>> for ReadableReadResponse {
7918 #[inline]
7919 fn from_wire(wire: crate::wire::ReadableReadResponse<'de>) -> Self {
7920 Self { data: ::fidl_next::FromWire::from_wire(wire.data) }
7921 }
7922 }
7923
7924 impl<'de> ::fidl_next::FromWireRef<crate::wire::ReadableReadResponse<'de>>
7925 for ReadableReadResponse
7926 {
7927 #[inline]
7928 fn from_wire_ref(wire: &crate::wire::ReadableReadResponse<'de>) -> Self {
7929 Self { data: ::fidl_next::FromWireRef::from_wire_ref(&wire.data) }
7930 }
7931 }
7932
7933 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7934 pub struct WritableWriteRequest {
7935 pub data: ::std::vec::Vec<u8>,
7936 }
7937
7938 unsafe impl<___E> ::fidl_next::Encode<crate::wire::WritableWriteRequest<'static>, ___E>
7939 for WritableWriteRequest
7940 where
7941 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7942 ___E: ::fidl_next::Encoder,
7943 {
7944 #[inline]
7945 fn encode(
7946 self,
7947 encoder_: &mut ___E,
7948 out_: &mut ::core::mem::MaybeUninit<crate::wire::WritableWriteRequest<'static>>,
7949 _: (),
7950 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7951 ::fidl_next::munge! {
7952 let crate::wire::WritableWriteRequest {
7953 data,
7954
7955 } = out_;
7956 }
7957
7958 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
7959
7960 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
7961 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
7962
7963 Ok(())
7964 }
7965 }
7966
7967 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::WritableWriteRequest<'static>, ___E>
7968 for &'a WritableWriteRequest
7969 where
7970 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7971 ___E: ::fidl_next::Encoder,
7972 {
7973 #[inline]
7974 fn encode(
7975 self,
7976 encoder_: &mut ___E,
7977 out_: &mut ::core::mem::MaybeUninit<crate::wire::WritableWriteRequest<'static>>,
7978 _: (),
7979 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7980 ::fidl_next::munge! {
7981 let crate::wire::WritableWriteRequest {
7982 data,
7983
7984 } = out_;
7985 }
7986
7987 ::fidl_next::Encode::encode(&self.data, encoder_, data, (8192, ()))?;
7988
7989 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
7990 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
7991
7992 Ok(())
7993 }
7994 }
7995
7996 unsafe impl<___E>
7997 ::fidl_next::EncodeOption<
7998 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteRequest<'static>>,
7999 ___E,
8000 > for WritableWriteRequest
8001 where
8002 ___E: ::fidl_next::Encoder + ?Sized,
8003 WritableWriteRequest: ::fidl_next::Encode<crate::wire::WritableWriteRequest<'static>, ___E>,
8004 {
8005 #[inline]
8006 fn encode_option(
8007 this: ::core::option::Option<Self>,
8008 encoder: &mut ___E,
8009 out: &mut ::core::mem::MaybeUninit<
8010 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteRequest<'static>>,
8011 >,
8012 _: (),
8013 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8014 if let Some(inner) = this {
8015 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8016 ::fidl_next::wire::Box::encode_present(out);
8017 } else {
8018 ::fidl_next::wire::Box::encode_absent(out);
8019 }
8020
8021 Ok(())
8022 }
8023 }
8024
8025 unsafe impl<'a, ___E>
8026 ::fidl_next::EncodeOption<
8027 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteRequest<'static>>,
8028 ___E,
8029 > for &'a WritableWriteRequest
8030 where
8031 ___E: ::fidl_next::Encoder + ?Sized,
8032 &'a WritableWriteRequest:
8033 ::fidl_next::Encode<crate::wire::WritableWriteRequest<'static>, ___E>,
8034 {
8035 #[inline]
8036 fn encode_option(
8037 this: ::core::option::Option<Self>,
8038 encoder: &mut ___E,
8039 out: &mut ::core::mem::MaybeUninit<
8040 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteRequest<'static>>,
8041 >,
8042 _: (),
8043 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8044 if let Some(inner) = this {
8045 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8046 ::fidl_next::wire::Box::encode_present(out);
8047 } else {
8048 ::fidl_next::wire::Box::encode_absent(out);
8049 }
8050
8051 Ok(())
8052 }
8053 }
8054
8055 impl<'de> ::fidl_next::FromWire<crate::wire::WritableWriteRequest<'de>> for WritableWriteRequest {
8056 #[inline]
8057 fn from_wire(wire: crate::wire::WritableWriteRequest<'de>) -> Self {
8058 Self { data: ::fidl_next::FromWire::from_wire(wire.data) }
8059 }
8060 }
8061
8062 impl<'de> ::fidl_next::FromWireRef<crate::wire::WritableWriteRequest<'de>>
8063 for WritableWriteRequest
8064 {
8065 #[inline]
8066 fn from_wire_ref(wire: &crate::wire::WritableWriteRequest<'de>) -> Self {
8067 Self { data: ::fidl_next::FromWireRef::from_wire_ref(&wire.data) }
8068 }
8069 }
8070
8071 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8072 #[repr(C)]
8073 pub struct WritableWriteResponse {
8074 pub actual_count: u64,
8075 }
8076
8077 unsafe impl<___E> ::fidl_next::Encode<crate::wire::WritableWriteResponse, ___E>
8078 for WritableWriteResponse
8079 where
8080 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8081 {
8082 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
8083 Self,
8084 crate::wire::WritableWriteResponse,
8085 > = unsafe {
8086 ::fidl_next::CopyOptimization::enable_if(
8087 true
8088
8089 && <
8090 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
8091 >::COPY_OPTIMIZATION.is_enabled()
8092
8093 )
8094 };
8095
8096 #[inline]
8097 fn encode(
8098 self,
8099 encoder_: &mut ___E,
8100 out_: &mut ::core::mem::MaybeUninit<crate::wire::WritableWriteResponse>,
8101 _: (),
8102 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8103 ::fidl_next::munge! {
8104 let crate::wire::WritableWriteResponse {
8105 actual_count,
8106
8107 } = out_;
8108 }
8109
8110 ::fidl_next::Encode::encode(self.actual_count, encoder_, actual_count, ())?;
8111
8112 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(actual_count.as_mut_ptr()) };
8113
8114 Ok(())
8115 }
8116 }
8117
8118 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::WritableWriteResponse, ___E>
8119 for &'a WritableWriteResponse
8120 where
8121 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8122 {
8123 #[inline]
8124 fn encode(
8125 self,
8126 encoder_: &mut ___E,
8127 out_: &mut ::core::mem::MaybeUninit<crate::wire::WritableWriteResponse>,
8128 _: (),
8129 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8130 ::fidl_next::munge! {
8131 let crate::wire::WritableWriteResponse {
8132 actual_count,
8133
8134 } = out_;
8135 }
8136
8137 ::fidl_next::Encode::encode(&self.actual_count, encoder_, actual_count, ())?;
8138
8139 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(actual_count.as_mut_ptr()) };
8140
8141 Ok(())
8142 }
8143 }
8144
8145 unsafe impl<___E>
8146 ::fidl_next::EncodeOption<
8147 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteResponse>,
8148 ___E,
8149 > for WritableWriteResponse
8150 where
8151 ___E: ::fidl_next::Encoder + ?Sized,
8152 WritableWriteResponse: ::fidl_next::Encode<crate::wire::WritableWriteResponse, ___E>,
8153 {
8154 #[inline]
8155 fn encode_option(
8156 this: ::core::option::Option<Self>,
8157 encoder: &mut ___E,
8158 out: &mut ::core::mem::MaybeUninit<
8159 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteResponse>,
8160 >,
8161 _: (),
8162 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8163 if let Some(inner) = this {
8164 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8165 ::fidl_next::wire::Box::encode_present(out);
8166 } else {
8167 ::fidl_next::wire::Box::encode_absent(out);
8168 }
8169
8170 Ok(())
8171 }
8172 }
8173
8174 unsafe impl<'a, ___E>
8175 ::fidl_next::EncodeOption<
8176 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteResponse>,
8177 ___E,
8178 > for &'a WritableWriteResponse
8179 where
8180 ___E: ::fidl_next::Encoder + ?Sized,
8181 &'a WritableWriteResponse: ::fidl_next::Encode<crate::wire::WritableWriteResponse, ___E>,
8182 {
8183 #[inline]
8184 fn encode_option(
8185 this: ::core::option::Option<Self>,
8186 encoder: &mut ___E,
8187 out: &mut ::core::mem::MaybeUninit<
8188 ::fidl_next::wire::Box<'static, crate::wire::WritableWriteResponse>,
8189 >,
8190 _: (),
8191 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8192 if let Some(inner) = this {
8193 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8194 ::fidl_next::wire::Box::encode_present(out);
8195 } else {
8196 ::fidl_next::wire::Box::encode_absent(out);
8197 }
8198
8199 Ok(())
8200 }
8201 }
8202
8203 impl ::fidl_next::FromWire<crate::wire::WritableWriteResponse> for WritableWriteResponse {
8204 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
8205 crate::wire::WritableWriteResponse,
8206 Self,
8207 > = unsafe {
8208 ::fidl_next::CopyOptimization::enable_if(
8209 true
8210 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
8211 .is_enabled(),
8212 )
8213 };
8214
8215 #[inline]
8216 fn from_wire(wire: crate::wire::WritableWriteResponse) -> Self {
8217 Self { actual_count: ::fidl_next::FromWire::from_wire(wire.actual_count) }
8218 }
8219 }
8220
8221 impl ::fidl_next::FromWireRef<crate::wire::WritableWriteResponse> for WritableWriteResponse {
8222 #[inline]
8223 fn from_wire_ref(wire: &crate::wire::WritableWriteResponse) -> Self {
8224 Self { actual_count: ::fidl_next::FromWireRef::from_wire_ref(&wire.actual_count) }
8225 }
8226 }
8227
8228 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8229 pub struct FileSeekRequest {
8230 pub origin: crate::natural::SeekOrigin,
8231
8232 pub offset: i64,
8233 }
8234
8235 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileSeekRequest, ___E> for FileSeekRequest
8236 where
8237 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8238 {
8239 #[inline]
8240 fn encode(
8241 self,
8242 encoder_: &mut ___E,
8243 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileSeekRequest>,
8244 _: (),
8245 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8246 ::fidl_next::munge! {
8247 let crate::wire::FileSeekRequest {
8248 origin,
8249 offset,
8250
8251 } = out_;
8252 }
8253
8254 ::fidl_next::Encode::encode(self.origin, encoder_, origin, ())?;
8255
8256 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(origin.as_mut_ptr()) };
8257
8258 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
8259
8260 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
8261
8262 Ok(())
8263 }
8264 }
8265
8266 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileSeekRequest, ___E>
8267 for &'a FileSeekRequest
8268 where
8269 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8270 {
8271 #[inline]
8272 fn encode(
8273 self,
8274 encoder_: &mut ___E,
8275 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileSeekRequest>,
8276 _: (),
8277 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8278 ::fidl_next::munge! {
8279 let crate::wire::FileSeekRequest {
8280 origin,
8281 offset,
8282
8283 } = out_;
8284 }
8285
8286 ::fidl_next::Encode::encode(&self.origin, encoder_, origin, ())?;
8287
8288 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(origin.as_mut_ptr()) };
8289
8290 ::fidl_next::Encode::encode(&self.offset, encoder_, offset, ())?;
8291
8292 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
8293
8294 Ok(())
8295 }
8296 }
8297
8298 unsafe impl<___E>
8299 ::fidl_next::EncodeOption<
8300 ::fidl_next::wire::Box<'static, crate::wire::FileSeekRequest>,
8301 ___E,
8302 > for FileSeekRequest
8303 where
8304 ___E: ::fidl_next::Encoder + ?Sized,
8305 FileSeekRequest: ::fidl_next::Encode<crate::wire::FileSeekRequest, ___E>,
8306 {
8307 #[inline]
8308 fn encode_option(
8309 this: ::core::option::Option<Self>,
8310 encoder: &mut ___E,
8311 out: &mut ::core::mem::MaybeUninit<
8312 ::fidl_next::wire::Box<'static, crate::wire::FileSeekRequest>,
8313 >,
8314 _: (),
8315 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8316 if let Some(inner) = this {
8317 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8318 ::fidl_next::wire::Box::encode_present(out);
8319 } else {
8320 ::fidl_next::wire::Box::encode_absent(out);
8321 }
8322
8323 Ok(())
8324 }
8325 }
8326
8327 unsafe impl<'a, ___E>
8328 ::fidl_next::EncodeOption<
8329 ::fidl_next::wire::Box<'static, crate::wire::FileSeekRequest>,
8330 ___E,
8331 > for &'a FileSeekRequest
8332 where
8333 ___E: ::fidl_next::Encoder + ?Sized,
8334 &'a FileSeekRequest: ::fidl_next::Encode<crate::wire::FileSeekRequest, ___E>,
8335 {
8336 #[inline]
8337 fn encode_option(
8338 this: ::core::option::Option<Self>,
8339 encoder: &mut ___E,
8340 out: &mut ::core::mem::MaybeUninit<
8341 ::fidl_next::wire::Box<'static, crate::wire::FileSeekRequest>,
8342 >,
8343 _: (),
8344 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8345 if let Some(inner) = this {
8346 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8347 ::fidl_next::wire::Box::encode_present(out);
8348 } else {
8349 ::fidl_next::wire::Box::encode_absent(out);
8350 }
8351
8352 Ok(())
8353 }
8354 }
8355
8356 impl ::fidl_next::FromWire<crate::wire::FileSeekRequest> for FileSeekRequest {
8357 #[inline]
8358 fn from_wire(wire: crate::wire::FileSeekRequest) -> Self {
8359 Self {
8360 origin: ::fidl_next::FromWire::from_wire(wire.origin),
8361
8362 offset: ::fidl_next::FromWire::from_wire(wire.offset),
8363 }
8364 }
8365 }
8366
8367 impl ::fidl_next::FromWireRef<crate::wire::FileSeekRequest> for FileSeekRequest {
8368 #[inline]
8369 fn from_wire_ref(wire: &crate::wire::FileSeekRequest) -> Self {
8370 Self {
8371 origin: ::fidl_next::FromWireRef::from_wire_ref(&wire.origin),
8372
8373 offset: ::fidl_next::FromWireRef::from_wire_ref(&wire.offset),
8374 }
8375 }
8376 }
8377
8378 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8379 #[repr(C)]
8380 pub struct FileSeekResponse {
8381 pub offset_from_start: u64,
8382 }
8383
8384 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileSeekResponse, ___E> for FileSeekResponse
8385 where
8386 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8387 {
8388 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
8389 Self,
8390 crate::wire::FileSeekResponse,
8391 > = unsafe {
8392 ::fidl_next::CopyOptimization::enable_if(
8393 true
8394
8395 && <
8396 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
8397 >::COPY_OPTIMIZATION.is_enabled()
8398
8399 )
8400 };
8401
8402 #[inline]
8403 fn encode(
8404 self,
8405 encoder_: &mut ___E,
8406 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileSeekResponse>,
8407 _: (),
8408 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8409 ::fidl_next::munge! {
8410 let crate::wire::FileSeekResponse {
8411 offset_from_start,
8412
8413 } = out_;
8414 }
8415
8416 ::fidl_next::Encode::encode(self.offset_from_start, encoder_, offset_from_start, ())?;
8417
8418 let mut _field =
8419 unsafe { ::fidl_next::Slot::new_unchecked(offset_from_start.as_mut_ptr()) };
8420
8421 Ok(())
8422 }
8423 }
8424
8425 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileSeekResponse, ___E>
8426 for &'a FileSeekResponse
8427 where
8428 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8429 {
8430 #[inline]
8431 fn encode(
8432 self,
8433 encoder_: &mut ___E,
8434 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileSeekResponse>,
8435 _: (),
8436 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8437 ::fidl_next::munge! {
8438 let crate::wire::FileSeekResponse {
8439 offset_from_start,
8440
8441 } = out_;
8442 }
8443
8444 ::fidl_next::Encode::encode(&self.offset_from_start, encoder_, offset_from_start, ())?;
8445
8446 let mut _field =
8447 unsafe { ::fidl_next::Slot::new_unchecked(offset_from_start.as_mut_ptr()) };
8448
8449 Ok(())
8450 }
8451 }
8452
8453 unsafe impl<___E>
8454 ::fidl_next::EncodeOption<
8455 ::fidl_next::wire::Box<'static, crate::wire::FileSeekResponse>,
8456 ___E,
8457 > for FileSeekResponse
8458 where
8459 ___E: ::fidl_next::Encoder + ?Sized,
8460 FileSeekResponse: ::fidl_next::Encode<crate::wire::FileSeekResponse, ___E>,
8461 {
8462 #[inline]
8463 fn encode_option(
8464 this: ::core::option::Option<Self>,
8465 encoder: &mut ___E,
8466 out: &mut ::core::mem::MaybeUninit<
8467 ::fidl_next::wire::Box<'static, crate::wire::FileSeekResponse>,
8468 >,
8469 _: (),
8470 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8471 if let Some(inner) = this {
8472 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8473 ::fidl_next::wire::Box::encode_present(out);
8474 } else {
8475 ::fidl_next::wire::Box::encode_absent(out);
8476 }
8477
8478 Ok(())
8479 }
8480 }
8481
8482 unsafe impl<'a, ___E>
8483 ::fidl_next::EncodeOption<
8484 ::fidl_next::wire::Box<'static, crate::wire::FileSeekResponse>,
8485 ___E,
8486 > for &'a FileSeekResponse
8487 where
8488 ___E: ::fidl_next::Encoder + ?Sized,
8489 &'a FileSeekResponse: ::fidl_next::Encode<crate::wire::FileSeekResponse, ___E>,
8490 {
8491 #[inline]
8492 fn encode_option(
8493 this: ::core::option::Option<Self>,
8494 encoder: &mut ___E,
8495 out: &mut ::core::mem::MaybeUninit<
8496 ::fidl_next::wire::Box<'static, crate::wire::FileSeekResponse>,
8497 >,
8498 _: (),
8499 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8500 if let Some(inner) = this {
8501 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8502 ::fidl_next::wire::Box::encode_present(out);
8503 } else {
8504 ::fidl_next::wire::Box::encode_absent(out);
8505 }
8506
8507 Ok(())
8508 }
8509 }
8510
8511 impl ::fidl_next::FromWire<crate::wire::FileSeekResponse> for FileSeekResponse {
8512 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
8513 crate::wire::FileSeekResponse,
8514 Self,
8515 > = unsafe {
8516 ::fidl_next::CopyOptimization::enable_if(
8517 true
8518 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
8519 .is_enabled(),
8520 )
8521 };
8522
8523 #[inline]
8524 fn from_wire(wire: crate::wire::FileSeekResponse) -> Self {
8525 Self { offset_from_start: ::fidl_next::FromWire::from_wire(wire.offset_from_start) }
8526 }
8527 }
8528
8529 impl ::fidl_next::FromWireRef<crate::wire::FileSeekResponse> for FileSeekResponse {
8530 #[inline]
8531 fn from_wire_ref(wire: &crate::wire::FileSeekResponse) -> Self {
8532 Self {
8533 offset_from_start: ::fidl_next::FromWireRef::from_wire_ref(&wire.offset_from_start),
8534 }
8535 }
8536 }
8537
8538 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8539 #[repr(C)]
8540 pub struct FileReadAtRequest {
8541 pub count: u64,
8542
8543 pub offset: u64,
8544 }
8545
8546 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileReadAtRequest, ___E> for FileReadAtRequest
8547 where
8548 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8549 {
8550 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
8551 Self,
8552 crate::wire::FileReadAtRequest,
8553 > = unsafe {
8554 ::fidl_next::CopyOptimization::enable_if(
8555 true
8556
8557 && <
8558 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
8559 >::COPY_OPTIMIZATION.is_enabled()
8560
8561 && <
8562 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
8563 >::COPY_OPTIMIZATION.is_enabled()
8564
8565 )
8566 };
8567
8568 #[inline]
8569 fn encode(
8570 self,
8571 encoder_: &mut ___E,
8572 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileReadAtRequest>,
8573 _: (),
8574 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8575 ::fidl_next::munge! {
8576 let crate::wire::FileReadAtRequest {
8577 count,
8578 offset,
8579
8580 } = out_;
8581 }
8582
8583 ::fidl_next::Encode::encode(self.count, encoder_, count, ())?;
8584
8585 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(count.as_mut_ptr()) };
8586
8587 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
8588
8589 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
8590
8591 Ok(())
8592 }
8593 }
8594
8595 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileReadAtRequest, ___E>
8596 for &'a FileReadAtRequest
8597 where
8598 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8599 {
8600 #[inline]
8601 fn encode(
8602 self,
8603 encoder_: &mut ___E,
8604 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileReadAtRequest>,
8605 _: (),
8606 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8607 ::fidl_next::munge! {
8608 let crate::wire::FileReadAtRequest {
8609 count,
8610 offset,
8611
8612 } = out_;
8613 }
8614
8615 ::fidl_next::Encode::encode(&self.count, encoder_, count, ())?;
8616
8617 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(count.as_mut_ptr()) };
8618
8619 ::fidl_next::Encode::encode(&self.offset, encoder_, offset, ())?;
8620
8621 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
8622
8623 Ok(())
8624 }
8625 }
8626
8627 unsafe impl<___E>
8628 ::fidl_next::EncodeOption<
8629 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtRequest>,
8630 ___E,
8631 > for FileReadAtRequest
8632 where
8633 ___E: ::fidl_next::Encoder + ?Sized,
8634 FileReadAtRequest: ::fidl_next::Encode<crate::wire::FileReadAtRequest, ___E>,
8635 {
8636 #[inline]
8637 fn encode_option(
8638 this: ::core::option::Option<Self>,
8639 encoder: &mut ___E,
8640 out: &mut ::core::mem::MaybeUninit<
8641 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtRequest>,
8642 >,
8643 _: (),
8644 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8645 if let Some(inner) = this {
8646 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8647 ::fidl_next::wire::Box::encode_present(out);
8648 } else {
8649 ::fidl_next::wire::Box::encode_absent(out);
8650 }
8651
8652 Ok(())
8653 }
8654 }
8655
8656 unsafe impl<'a, ___E>
8657 ::fidl_next::EncodeOption<
8658 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtRequest>,
8659 ___E,
8660 > for &'a FileReadAtRequest
8661 where
8662 ___E: ::fidl_next::Encoder + ?Sized,
8663 &'a FileReadAtRequest: ::fidl_next::Encode<crate::wire::FileReadAtRequest, ___E>,
8664 {
8665 #[inline]
8666 fn encode_option(
8667 this: ::core::option::Option<Self>,
8668 encoder: &mut ___E,
8669 out: &mut ::core::mem::MaybeUninit<
8670 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtRequest>,
8671 >,
8672 _: (),
8673 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8674 if let Some(inner) = this {
8675 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8676 ::fidl_next::wire::Box::encode_present(out);
8677 } else {
8678 ::fidl_next::wire::Box::encode_absent(out);
8679 }
8680
8681 Ok(())
8682 }
8683 }
8684
8685 impl ::fidl_next::FromWire<crate::wire::FileReadAtRequest> for FileReadAtRequest {
8686 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
8687 crate::wire::FileReadAtRequest,
8688 Self,
8689 > = unsafe {
8690 ::fidl_next::CopyOptimization::enable_if(
8691 true
8692 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
8693 .is_enabled()
8694 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
8695 .is_enabled(),
8696 )
8697 };
8698
8699 #[inline]
8700 fn from_wire(wire: crate::wire::FileReadAtRequest) -> Self {
8701 Self {
8702 count: ::fidl_next::FromWire::from_wire(wire.count),
8703
8704 offset: ::fidl_next::FromWire::from_wire(wire.offset),
8705 }
8706 }
8707 }
8708
8709 impl ::fidl_next::FromWireRef<crate::wire::FileReadAtRequest> for FileReadAtRequest {
8710 #[inline]
8711 fn from_wire_ref(wire: &crate::wire::FileReadAtRequest) -> Self {
8712 Self {
8713 count: ::fidl_next::FromWireRef::from_wire_ref(&wire.count),
8714
8715 offset: ::fidl_next::FromWireRef::from_wire_ref(&wire.offset),
8716 }
8717 }
8718 }
8719
8720 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8721 pub struct FileReadAtResponse {
8722 pub data: ::std::vec::Vec<u8>,
8723 }
8724
8725 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileReadAtResponse<'static>, ___E>
8726 for FileReadAtResponse
8727 where
8728 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8729 ___E: ::fidl_next::Encoder,
8730 {
8731 #[inline]
8732 fn encode(
8733 self,
8734 encoder_: &mut ___E,
8735 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileReadAtResponse<'static>>,
8736 _: (),
8737 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8738 ::fidl_next::munge! {
8739 let crate::wire::FileReadAtResponse {
8740 data,
8741
8742 } = out_;
8743 }
8744
8745 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
8746
8747 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
8748 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
8749
8750 Ok(())
8751 }
8752 }
8753
8754 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileReadAtResponse<'static>, ___E>
8755 for &'a FileReadAtResponse
8756 where
8757 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8758 ___E: ::fidl_next::Encoder,
8759 {
8760 #[inline]
8761 fn encode(
8762 self,
8763 encoder_: &mut ___E,
8764 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileReadAtResponse<'static>>,
8765 _: (),
8766 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8767 ::fidl_next::munge! {
8768 let crate::wire::FileReadAtResponse {
8769 data,
8770
8771 } = out_;
8772 }
8773
8774 ::fidl_next::Encode::encode(&self.data, encoder_, data, (8192, ()))?;
8775
8776 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
8777 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
8778
8779 Ok(())
8780 }
8781 }
8782
8783 unsafe impl<___E>
8784 ::fidl_next::EncodeOption<
8785 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtResponse<'static>>,
8786 ___E,
8787 > for FileReadAtResponse
8788 where
8789 ___E: ::fidl_next::Encoder + ?Sized,
8790 FileReadAtResponse: ::fidl_next::Encode<crate::wire::FileReadAtResponse<'static>, ___E>,
8791 {
8792 #[inline]
8793 fn encode_option(
8794 this: ::core::option::Option<Self>,
8795 encoder: &mut ___E,
8796 out: &mut ::core::mem::MaybeUninit<
8797 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtResponse<'static>>,
8798 >,
8799 _: (),
8800 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8801 if let Some(inner) = this {
8802 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8803 ::fidl_next::wire::Box::encode_present(out);
8804 } else {
8805 ::fidl_next::wire::Box::encode_absent(out);
8806 }
8807
8808 Ok(())
8809 }
8810 }
8811
8812 unsafe impl<'a, ___E>
8813 ::fidl_next::EncodeOption<
8814 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtResponse<'static>>,
8815 ___E,
8816 > for &'a FileReadAtResponse
8817 where
8818 ___E: ::fidl_next::Encoder + ?Sized,
8819 &'a FileReadAtResponse: ::fidl_next::Encode<crate::wire::FileReadAtResponse<'static>, ___E>,
8820 {
8821 #[inline]
8822 fn encode_option(
8823 this: ::core::option::Option<Self>,
8824 encoder: &mut ___E,
8825 out: &mut ::core::mem::MaybeUninit<
8826 ::fidl_next::wire::Box<'static, crate::wire::FileReadAtResponse<'static>>,
8827 >,
8828 _: (),
8829 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8830 if let Some(inner) = this {
8831 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8832 ::fidl_next::wire::Box::encode_present(out);
8833 } else {
8834 ::fidl_next::wire::Box::encode_absent(out);
8835 }
8836
8837 Ok(())
8838 }
8839 }
8840
8841 impl<'de> ::fidl_next::FromWire<crate::wire::FileReadAtResponse<'de>> for FileReadAtResponse {
8842 #[inline]
8843 fn from_wire(wire: crate::wire::FileReadAtResponse<'de>) -> Self {
8844 Self { data: ::fidl_next::FromWire::from_wire(wire.data) }
8845 }
8846 }
8847
8848 impl<'de> ::fidl_next::FromWireRef<crate::wire::FileReadAtResponse<'de>> for FileReadAtResponse {
8849 #[inline]
8850 fn from_wire_ref(wire: &crate::wire::FileReadAtResponse<'de>) -> Self {
8851 Self { data: ::fidl_next::FromWireRef::from_wire_ref(&wire.data) }
8852 }
8853 }
8854
8855 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8856 pub struct FileWriteAtRequest {
8857 pub data: ::std::vec::Vec<u8>,
8858
8859 pub offset: u64,
8860 }
8861
8862 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileWriteAtRequest<'static>, ___E>
8863 for FileWriteAtRequest
8864 where
8865 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8866 ___E: ::fidl_next::Encoder,
8867 {
8868 #[inline]
8869 fn encode(
8870 self,
8871 encoder_: &mut ___E,
8872 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileWriteAtRequest<'static>>,
8873 _: (),
8874 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8875 ::fidl_next::munge! {
8876 let crate::wire::FileWriteAtRequest {
8877 data,
8878 offset,
8879
8880 } = out_;
8881 }
8882
8883 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
8884
8885 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
8886 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
8887
8888 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
8889
8890 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
8891
8892 Ok(())
8893 }
8894 }
8895
8896 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileWriteAtRequest<'static>, ___E>
8897 for &'a FileWriteAtRequest
8898 where
8899 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
8900 ___E: ::fidl_next::Encoder,
8901 {
8902 #[inline]
8903 fn encode(
8904 self,
8905 encoder_: &mut ___E,
8906 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileWriteAtRequest<'static>>,
8907 _: (),
8908 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8909 ::fidl_next::munge! {
8910 let crate::wire::FileWriteAtRequest {
8911 data,
8912 offset,
8913
8914 } = out_;
8915 }
8916
8917 ::fidl_next::Encode::encode(&self.data, encoder_, data, (8192, ()))?;
8918
8919 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(data.as_mut_ptr()) };
8920 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
8921
8922 ::fidl_next::Encode::encode(&self.offset, encoder_, offset, ())?;
8923
8924 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(offset.as_mut_ptr()) };
8925
8926 Ok(())
8927 }
8928 }
8929
8930 unsafe impl<___E>
8931 ::fidl_next::EncodeOption<
8932 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtRequest<'static>>,
8933 ___E,
8934 > for FileWriteAtRequest
8935 where
8936 ___E: ::fidl_next::Encoder + ?Sized,
8937 FileWriteAtRequest: ::fidl_next::Encode<crate::wire::FileWriteAtRequest<'static>, ___E>,
8938 {
8939 #[inline]
8940 fn encode_option(
8941 this: ::core::option::Option<Self>,
8942 encoder: &mut ___E,
8943 out: &mut ::core::mem::MaybeUninit<
8944 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtRequest<'static>>,
8945 >,
8946 _: (),
8947 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8948 if let Some(inner) = this {
8949 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8950 ::fidl_next::wire::Box::encode_present(out);
8951 } else {
8952 ::fidl_next::wire::Box::encode_absent(out);
8953 }
8954
8955 Ok(())
8956 }
8957 }
8958
8959 unsafe impl<'a, ___E>
8960 ::fidl_next::EncodeOption<
8961 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtRequest<'static>>,
8962 ___E,
8963 > for &'a FileWriteAtRequest
8964 where
8965 ___E: ::fidl_next::Encoder + ?Sized,
8966 &'a FileWriteAtRequest: ::fidl_next::Encode<crate::wire::FileWriteAtRequest<'static>, ___E>,
8967 {
8968 #[inline]
8969 fn encode_option(
8970 this: ::core::option::Option<Self>,
8971 encoder: &mut ___E,
8972 out: &mut ::core::mem::MaybeUninit<
8973 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtRequest<'static>>,
8974 >,
8975 _: (),
8976 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8977 if let Some(inner) = this {
8978 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
8979 ::fidl_next::wire::Box::encode_present(out);
8980 } else {
8981 ::fidl_next::wire::Box::encode_absent(out);
8982 }
8983
8984 Ok(())
8985 }
8986 }
8987
8988 impl<'de> ::fidl_next::FromWire<crate::wire::FileWriteAtRequest<'de>> for FileWriteAtRequest {
8989 #[inline]
8990 fn from_wire(wire: crate::wire::FileWriteAtRequest<'de>) -> Self {
8991 Self {
8992 data: ::fidl_next::FromWire::from_wire(wire.data),
8993
8994 offset: ::fidl_next::FromWire::from_wire(wire.offset),
8995 }
8996 }
8997 }
8998
8999 impl<'de> ::fidl_next::FromWireRef<crate::wire::FileWriteAtRequest<'de>> for FileWriteAtRequest {
9000 #[inline]
9001 fn from_wire_ref(wire: &crate::wire::FileWriteAtRequest<'de>) -> Self {
9002 Self {
9003 data: ::fidl_next::FromWireRef::from_wire_ref(&wire.data),
9004
9005 offset: ::fidl_next::FromWireRef::from_wire_ref(&wire.offset),
9006 }
9007 }
9008 }
9009
9010 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9011 #[repr(C)]
9012 pub struct FileWriteAtResponse {
9013 pub actual_count: u64,
9014 }
9015
9016 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileWriteAtResponse, ___E>
9017 for FileWriteAtResponse
9018 where
9019 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9020 {
9021 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
9022 Self,
9023 crate::wire::FileWriteAtResponse,
9024 > = unsafe {
9025 ::fidl_next::CopyOptimization::enable_if(
9026 true
9027
9028 && <
9029 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
9030 >::COPY_OPTIMIZATION.is_enabled()
9031
9032 )
9033 };
9034
9035 #[inline]
9036 fn encode(
9037 self,
9038 encoder_: &mut ___E,
9039 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileWriteAtResponse>,
9040 _: (),
9041 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9042 ::fidl_next::munge! {
9043 let crate::wire::FileWriteAtResponse {
9044 actual_count,
9045
9046 } = out_;
9047 }
9048
9049 ::fidl_next::Encode::encode(self.actual_count, encoder_, actual_count, ())?;
9050
9051 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(actual_count.as_mut_ptr()) };
9052
9053 Ok(())
9054 }
9055 }
9056
9057 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileWriteAtResponse, ___E>
9058 for &'a FileWriteAtResponse
9059 where
9060 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9061 {
9062 #[inline]
9063 fn encode(
9064 self,
9065 encoder_: &mut ___E,
9066 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileWriteAtResponse>,
9067 _: (),
9068 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9069 ::fidl_next::munge! {
9070 let crate::wire::FileWriteAtResponse {
9071 actual_count,
9072
9073 } = out_;
9074 }
9075
9076 ::fidl_next::Encode::encode(&self.actual_count, encoder_, actual_count, ())?;
9077
9078 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(actual_count.as_mut_ptr()) };
9079
9080 Ok(())
9081 }
9082 }
9083
9084 unsafe impl<___E>
9085 ::fidl_next::EncodeOption<
9086 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtResponse>,
9087 ___E,
9088 > for FileWriteAtResponse
9089 where
9090 ___E: ::fidl_next::Encoder + ?Sized,
9091 FileWriteAtResponse: ::fidl_next::Encode<crate::wire::FileWriteAtResponse, ___E>,
9092 {
9093 #[inline]
9094 fn encode_option(
9095 this: ::core::option::Option<Self>,
9096 encoder: &mut ___E,
9097 out: &mut ::core::mem::MaybeUninit<
9098 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtResponse>,
9099 >,
9100 _: (),
9101 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9102 if let Some(inner) = this {
9103 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9104 ::fidl_next::wire::Box::encode_present(out);
9105 } else {
9106 ::fidl_next::wire::Box::encode_absent(out);
9107 }
9108
9109 Ok(())
9110 }
9111 }
9112
9113 unsafe impl<'a, ___E>
9114 ::fidl_next::EncodeOption<
9115 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtResponse>,
9116 ___E,
9117 > for &'a FileWriteAtResponse
9118 where
9119 ___E: ::fidl_next::Encoder + ?Sized,
9120 &'a FileWriteAtResponse: ::fidl_next::Encode<crate::wire::FileWriteAtResponse, ___E>,
9121 {
9122 #[inline]
9123 fn encode_option(
9124 this: ::core::option::Option<Self>,
9125 encoder: &mut ___E,
9126 out: &mut ::core::mem::MaybeUninit<
9127 ::fidl_next::wire::Box<'static, crate::wire::FileWriteAtResponse>,
9128 >,
9129 _: (),
9130 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9131 if let Some(inner) = this {
9132 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9133 ::fidl_next::wire::Box::encode_present(out);
9134 } else {
9135 ::fidl_next::wire::Box::encode_absent(out);
9136 }
9137
9138 Ok(())
9139 }
9140 }
9141
9142 impl ::fidl_next::FromWire<crate::wire::FileWriteAtResponse> for FileWriteAtResponse {
9143 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
9144 crate::wire::FileWriteAtResponse,
9145 Self,
9146 > = unsafe {
9147 ::fidl_next::CopyOptimization::enable_if(
9148 true
9149 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
9150 .is_enabled(),
9151 )
9152 };
9153
9154 #[inline]
9155 fn from_wire(wire: crate::wire::FileWriteAtResponse) -> Self {
9156 Self { actual_count: ::fidl_next::FromWire::from_wire(wire.actual_count) }
9157 }
9158 }
9159
9160 impl ::fidl_next::FromWireRef<crate::wire::FileWriteAtResponse> for FileWriteAtResponse {
9161 #[inline]
9162 fn from_wire_ref(wire: &crate::wire::FileWriteAtResponse) -> Self {
9163 Self { actual_count: ::fidl_next::FromWireRef::from_wire_ref(&wire.actual_count) }
9164 }
9165 }
9166
9167 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9168 #[repr(C)]
9169 pub struct FileResizeRequest {
9170 pub length: u64,
9171 }
9172
9173 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileResizeRequest, ___E> for FileResizeRequest
9174 where
9175 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9176 {
9177 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
9178 Self,
9179 crate::wire::FileResizeRequest,
9180 > = unsafe {
9181 ::fidl_next::CopyOptimization::enable_if(
9182 true
9183
9184 && <
9185 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>
9186 >::COPY_OPTIMIZATION.is_enabled()
9187
9188 )
9189 };
9190
9191 #[inline]
9192 fn encode(
9193 self,
9194 encoder_: &mut ___E,
9195 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileResizeRequest>,
9196 _: (),
9197 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9198 ::fidl_next::munge! {
9199 let crate::wire::FileResizeRequest {
9200 length,
9201
9202 } = out_;
9203 }
9204
9205 ::fidl_next::Encode::encode(self.length, encoder_, length, ())?;
9206
9207 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(length.as_mut_ptr()) };
9208
9209 Ok(())
9210 }
9211 }
9212
9213 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileResizeRequest, ___E>
9214 for &'a FileResizeRequest
9215 where
9216 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9217 {
9218 #[inline]
9219 fn encode(
9220 self,
9221 encoder_: &mut ___E,
9222 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileResizeRequest>,
9223 _: (),
9224 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9225 ::fidl_next::munge! {
9226 let crate::wire::FileResizeRequest {
9227 length,
9228
9229 } = out_;
9230 }
9231
9232 ::fidl_next::Encode::encode(&self.length, encoder_, length, ())?;
9233
9234 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(length.as_mut_ptr()) };
9235
9236 Ok(())
9237 }
9238 }
9239
9240 unsafe impl<___E>
9241 ::fidl_next::EncodeOption<
9242 ::fidl_next::wire::Box<'static, crate::wire::FileResizeRequest>,
9243 ___E,
9244 > for FileResizeRequest
9245 where
9246 ___E: ::fidl_next::Encoder + ?Sized,
9247 FileResizeRequest: ::fidl_next::Encode<crate::wire::FileResizeRequest, ___E>,
9248 {
9249 #[inline]
9250 fn encode_option(
9251 this: ::core::option::Option<Self>,
9252 encoder: &mut ___E,
9253 out: &mut ::core::mem::MaybeUninit<
9254 ::fidl_next::wire::Box<'static, crate::wire::FileResizeRequest>,
9255 >,
9256 _: (),
9257 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9258 if let Some(inner) = this {
9259 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9260 ::fidl_next::wire::Box::encode_present(out);
9261 } else {
9262 ::fidl_next::wire::Box::encode_absent(out);
9263 }
9264
9265 Ok(())
9266 }
9267 }
9268
9269 unsafe impl<'a, ___E>
9270 ::fidl_next::EncodeOption<
9271 ::fidl_next::wire::Box<'static, crate::wire::FileResizeRequest>,
9272 ___E,
9273 > for &'a FileResizeRequest
9274 where
9275 ___E: ::fidl_next::Encoder + ?Sized,
9276 &'a FileResizeRequest: ::fidl_next::Encode<crate::wire::FileResizeRequest, ___E>,
9277 {
9278 #[inline]
9279 fn encode_option(
9280 this: ::core::option::Option<Self>,
9281 encoder: &mut ___E,
9282 out: &mut ::core::mem::MaybeUninit<
9283 ::fidl_next::wire::Box<'static, crate::wire::FileResizeRequest>,
9284 >,
9285 _: (),
9286 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9287 if let Some(inner) = this {
9288 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9289 ::fidl_next::wire::Box::encode_present(out);
9290 } else {
9291 ::fidl_next::wire::Box::encode_absent(out);
9292 }
9293
9294 Ok(())
9295 }
9296 }
9297
9298 impl ::fidl_next::FromWire<crate::wire::FileResizeRequest> for FileResizeRequest {
9299 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
9300 crate::wire::FileResizeRequest,
9301 Self,
9302 > = unsafe {
9303 ::fidl_next::CopyOptimization::enable_if(
9304 true
9305 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
9306 .is_enabled(),
9307 )
9308 };
9309
9310 #[inline]
9311 fn from_wire(wire: crate::wire::FileResizeRequest) -> Self {
9312 Self { length: ::fidl_next::FromWire::from_wire(wire.length) }
9313 }
9314 }
9315
9316 impl ::fidl_next::FromWireRef<crate::wire::FileResizeRequest> for FileResizeRequest {
9317 #[inline]
9318 fn from_wire_ref(wire: &crate::wire::FileResizeRequest) -> Self {
9319 Self { length: ::fidl_next::FromWireRef::from_wire_ref(&wire.length) }
9320 }
9321 }
9322
9323 pub type FileResizeResponse = ();
9324
9325 ::fidl_next::bitflags::bitflags! {
9326 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct VmoFlags: u32 {
9327 #[doc = " Requests that the VMO be readable.\n"]const READ = 1;
9328 #[doc = " Requests that the VMO be writable.\n"]const WRITE = 2;
9329 #[doc = " Request that the VMO be executable.\n"]const EXECUTE = 4;
9330 #[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;
9331 #[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;
9332
9333 }
9334 }
9335
9336 unsafe impl<___E> ::fidl_next::Encode<crate::wire::VmoFlags, ___E> for VmoFlags
9337 where
9338 ___E: ?Sized,
9339 {
9340 #[inline]
9341 fn encode(
9342 self,
9343 encoder: &mut ___E,
9344 out: &mut ::core::mem::MaybeUninit<crate::wire::VmoFlags>,
9345 _: (),
9346 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9347 ::fidl_next::Encode::encode(&self, encoder, out, ())
9348 }
9349 }
9350
9351 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::VmoFlags, ___E> for &'a VmoFlags
9352 where
9353 ___E: ?Sized,
9354 {
9355 #[inline]
9356 fn encode(
9357 self,
9358 _: &mut ___E,
9359 out: &mut ::core::mem::MaybeUninit<crate::wire::VmoFlags>,
9360 _: (),
9361 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9362 ::fidl_next::munge!(let crate::wire::VmoFlags { value } = out);
9363
9364 if ::fidl_next::bitflags::Flags::contains_unknown_bits(self) {
9365 return Err(::fidl_next::EncodeError::InvalidStrictBits);
9366 }
9367
9368 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
9369 Ok(())
9370 }
9371 }
9372
9373 impl ::core::convert::From<crate::wire::VmoFlags> for VmoFlags {
9374 fn from(wire: crate::wire::VmoFlags) -> Self {
9375 Self::from_bits_retain(u32::from(wire.value))
9376 }
9377 }
9378
9379 impl ::fidl_next::FromWire<crate::wire::VmoFlags> for VmoFlags {
9380 #[inline]
9381 fn from_wire(wire: crate::wire::VmoFlags) -> Self {
9382 Self::from(wire)
9383 }
9384 }
9385
9386 impl ::fidl_next::FromWireRef<crate::wire::VmoFlags> for VmoFlags {
9387 #[inline]
9388 fn from_wire_ref(wire: &crate::wire::VmoFlags) -> Self {
9389 Self::from(*wire)
9390 }
9391 }
9392
9393 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9394 #[repr(C)]
9395 pub struct FileGetBackingMemoryRequest {
9396 pub flags: crate::natural::VmoFlags,
9397 }
9398
9399 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileGetBackingMemoryRequest, ___E>
9400 for FileGetBackingMemoryRequest
9401 where
9402 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9403 {
9404 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
9405 Self,
9406 crate::wire::FileGetBackingMemoryRequest,
9407 > = unsafe {
9408 ::fidl_next::CopyOptimization::enable_if(
9409 true && <crate::natural::VmoFlags as ::fidl_next::Encode<
9410 crate::wire::VmoFlags,
9411 ___E,
9412 >>::COPY_OPTIMIZATION
9413 .is_enabled(),
9414 )
9415 };
9416
9417 #[inline]
9418 fn encode(
9419 self,
9420 encoder_: &mut ___E,
9421 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileGetBackingMemoryRequest>,
9422 _: (),
9423 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9424 ::fidl_next::munge! {
9425 let crate::wire::FileGetBackingMemoryRequest {
9426 flags,
9427
9428 } = out_;
9429 }
9430
9431 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
9432
9433 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
9434
9435 Ok(())
9436 }
9437 }
9438
9439 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileGetBackingMemoryRequest, ___E>
9440 for &'a FileGetBackingMemoryRequest
9441 where
9442 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9443 {
9444 #[inline]
9445 fn encode(
9446 self,
9447 encoder_: &mut ___E,
9448 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileGetBackingMemoryRequest>,
9449 _: (),
9450 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9451 ::fidl_next::munge! {
9452 let crate::wire::FileGetBackingMemoryRequest {
9453 flags,
9454
9455 } = out_;
9456 }
9457
9458 ::fidl_next::Encode::encode(&self.flags, encoder_, flags, ())?;
9459
9460 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(flags.as_mut_ptr()) };
9461
9462 Ok(())
9463 }
9464 }
9465
9466 unsafe impl<___E>
9467 ::fidl_next::EncodeOption<
9468 ::fidl_next::wire::Box<'static, crate::wire::FileGetBackingMemoryRequest>,
9469 ___E,
9470 > for FileGetBackingMemoryRequest
9471 where
9472 ___E: ::fidl_next::Encoder + ?Sized,
9473 FileGetBackingMemoryRequest:
9474 ::fidl_next::Encode<crate::wire::FileGetBackingMemoryRequest, ___E>,
9475 {
9476 #[inline]
9477 fn encode_option(
9478 this: ::core::option::Option<Self>,
9479 encoder: &mut ___E,
9480 out: &mut ::core::mem::MaybeUninit<
9481 ::fidl_next::wire::Box<'static, crate::wire::FileGetBackingMemoryRequest>,
9482 >,
9483 _: (),
9484 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9485 if let Some(inner) = this {
9486 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9487 ::fidl_next::wire::Box::encode_present(out);
9488 } else {
9489 ::fidl_next::wire::Box::encode_absent(out);
9490 }
9491
9492 Ok(())
9493 }
9494 }
9495
9496 unsafe impl<'a, ___E>
9497 ::fidl_next::EncodeOption<
9498 ::fidl_next::wire::Box<'static, crate::wire::FileGetBackingMemoryRequest>,
9499 ___E,
9500 > for &'a FileGetBackingMemoryRequest
9501 where
9502 ___E: ::fidl_next::Encoder + ?Sized,
9503 &'a FileGetBackingMemoryRequest:
9504 ::fidl_next::Encode<crate::wire::FileGetBackingMemoryRequest, ___E>,
9505 {
9506 #[inline]
9507 fn encode_option(
9508 this: ::core::option::Option<Self>,
9509 encoder: &mut ___E,
9510 out: &mut ::core::mem::MaybeUninit<
9511 ::fidl_next::wire::Box<'static, crate::wire::FileGetBackingMemoryRequest>,
9512 >,
9513 _: (),
9514 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9515 if let Some(inner) = this {
9516 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9517 ::fidl_next::wire::Box::encode_present(out);
9518 } else {
9519 ::fidl_next::wire::Box::encode_absent(out);
9520 }
9521
9522 Ok(())
9523 }
9524 }
9525
9526 impl ::fidl_next::FromWire<crate::wire::FileGetBackingMemoryRequest>
9527 for FileGetBackingMemoryRequest
9528 {
9529 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
9530 crate::wire::FileGetBackingMemoryRequest,
9531 Self,
9532 > = unsafe {
9533 ::fidl_next::CopyOptimization::enable_if(
9534 true && <crate::natural::VmoFlags as ::fidl_next::FromWire<
9535 crate::wire::VmoFlags,
9536 >>::COPY_OPTIMIZATION
9537 .is_enabled(),
9538 )
9539 };
9540
9541 #[inline]
9542 fn from_wire(wire: crate::wire::FileGetBackingMemoryRequest) -> Self {
9543 Self { flags: ::fidl_next::FromWire::from_wire(wire.flags) }
9544 }
9545 }
9546
9547 impl ::fidl_next::FromWireRef<crate::wire::FileGetBackingMemoryRequest>
9548 for FileGetBackingMemoryRequest
9549 {
9550 #[inline]
9551 fn from_wire_ref(wire: &crate::wire::FileGetBackingMemoryRequest) -> Self {
9552 Self { flags: ::fidl_next::FromWireRef::from_wire_ref(&wire.flags) }
9553 }
9554 }
9555
9556 pub type LinkableLinkIntoResponse = ();
9557
9558 pub type FileAllocateResponse = ();
9559
9560 pub type FileEnableVerityResponse = ();
9561
9562 ::fidl_next::bitflags::bitflags! {
9563 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct FileSignal: u32 {
9564 #[doc = " Indicates the file is ready for reading.\n"]const READABLE = 16777216;
9565 #[doc = " Indicates the file is ready for writing.\n"]const WRITABLE = 33554432;
9566
9567 }
9568 }
9569
9570 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FileSignal, ___E> for FileSignal
9571 where
9572 ___E: ?Sized,
9573 {
9574 #[inline]
9575 fn encode(
9576 self,
9577 encoder: &mut ___E,
9578 out: &mut ::core::mem::MaybeUninit<crate::wire::FileSignal>,
9579 _: (),
9580 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9581 ::fidl_next::Encode::encode(&self, encoder, out, ())
9582 }
9583 }
9584
9585 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FileSignal, ___E> for &'a FileSignal
9586 where
9587 ___E: ?Sized,
9588 {
9589 #[inline]
9590 fn encode(
9591 self,
9592 _: &mut ___E,
9593 out: &mut ::core::mem::MaybeUninit<crate::wire::FileSignal>,
9594 _: (),
9595 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9596 ::fidl_next::munge!(let crate::wire::FileSignal { value } = out);
9597
9598 if ::fidl_next::bitflags::Flags::contains_unknown_bits(self) {
9599 return Err(::fidl_next::EncodeError::InvalidStrictBits);
9600 }
9601
9602 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
9603 Ok(())
9604 }
9605 }
9606
9607 impl ::core::convert::From<crate::wire::FileSignal> for FileSignal {
9608 fn from(wire: crate::wire::FileSignal) -> Self {
9609 Self::from_bits_retain(u32::from(wire.value))
9610 }
9611 }
9612
9613 impl ::fidl_next::FromWire<crate::wire::FileSignal> for FileSignal {
9614 #[inline]
9615 fn from_wire(wire: crate::wire::FileSignal) -> Self {
9616 Self::from(wire)
9617 }
9618 }
9619
9620 impl ::fidl_next::FromWireRef<crate::wire::FileSignal> for FileSignal {
9621 #[inline]
9622 fn from_wire_ref(wire: &crate::wire::FileSignal) -> Self {
9623 Self::from(*wire)
9624 }
9625 }
9626
9627 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9628 #[repr(C)]
9629 pub struct FilesystemInfo {
9630 pub total_bytes: u64,
9631
9632 pub used_bytes: u64,
9633
9634 pub total_nodes: u64,
9635
9636 pub used_nodes: u64,
9637
9638 pub free_shared_pool_bytes: u64,
9639
9640 pub fs_id: u64,
9641
9642 pub block_size: u32,
9643
9644 pub max_filename_size: u32,
9645
9646 pub fs_type: u32,
9647
9648 pub padding: u32,
9649
9650 pub name: [i8; 32],
9651 }
9652
9653 unsafe impl<___E> ::fidl_next::Encode<crate::wire::FilesystemInfo, ___E> for FilesystemInfo
9654 where
9655 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9656 {
9657 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<Self, crate::wire::FilesystemInfo> = unsafe {
9658 ::fidl_next::CopyOptimization::enable_if(
9659 true
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 u64 as ::fidl_next::Encode<::fidl_next::wire::Uint64, ___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 u32 as ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>
9699 >::COPY_OPTIMIZATION.is_enabled()
9700
9701 && <
9702 [i8; 32] as ::fidl_next::Encode<[i8; 32], ___E>
9703 >::COPY_OPTIMIZATION.is_enabled()
9704
9705 )
9706 };
9707
9708 #[inline]
9709 fn encode(
9710 self,
9711 encoder_: &mut ___E,
9712 out_: &mut ::core::mem::MaybeUninit<crate::wire::FilesystemInfo>,
9713 _: (),
9714 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9715 ::fidl_next::munge! {
9716 let crate::wire::FilesystemInfo {
9717 total_bytes,
9718 used_bytes,
9719 total_nodes,
9720 used_nodes,
9721 free_shared_pool_bytes,
9722 fs_id,
9723 block_size,
9724 max_filename_size,
9725 fs_type,
9726 padding,
9727 name,
9728
9729 } = out_;
9730 }
9731
9732 ::fidl_next::Encode::encode(self.total_bytes, encoder_, total_bytes, ())?;
9733
9734 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(total_bytes.as_mut_ptr()) };
9735
9736 ::fidl_next::Encode::encode(self.used_bytes, encoder_, used_bytes, ())?;
9737
9738 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(used_bytes.as_mut_ptr()) };
9739
9740 ::fidl_next::Encode::encode(self.total_nodes, encoder_, total_nodes, ())?;
9741
9742 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(total_nodes.as_mut_ptr()) };
9743
9744 ::fidl_next::Encode::encode(self.used_nodes, encoder_, used_nodes, ())?;
9745
9746 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(used_nodes.as_mut_ptr()) };
9747
9748 ::fidl_next::Encode::encode(
9749 self.free_shared_pool_bytes,
9750 encoder_,
9751 free_shared_pool_bytes,
9752 (),
9753 )?;
9754
9755 let mut _field =
9756 unsafe { ::fidl_next::Slot::new_unchecked(free_shared_pool_bytes.as_mut_ptr()) };
9757
9758 ::fidl_next::Encode::encode(self.fs_id, encoder_, fs_id, ())?;
9759
9760 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fs_id.as_mut_ptr()) };
9761
9762 ::fidl_next::Encode::encode(self.block_size, encoder_, block_size, ())?;
9763
9764 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(block_size.as_mut_ptr()) };
9765
9766 ::fidl_next::Encode::encode(self.max_filename_size, encoder_, max_filename_size, ())?;
9767
9768 let mut _field =
9769 unsafe { ::fidl_next::Slot::new_unchecked(max_filename_size.as_mut_ptr()) };
9770
9771 ::fidl_next::Encode::encode(self.fs_type, encoder_, fs_type, ())?;
9772
9773 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fs_type.as_mut_ptr()) };
9774
9775 ::fidl_next::Encode::encode(self.padding, encoder_, padding, ())?;
9776
9777 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(padding.as_mut_ptr()) };
9778
9779 ::fidl_next::Encode::encode(self.name, encoder_, name, ())?;
9780
9781 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
9782
9783 Ok(())
9784 }
9785 }
9786
9787 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FilesystemInfo, ___E> for &'a FilesystemInfo
9788 where
9789 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
9790 {
9791 #[inline]
9792 fn encode(
9793 self,
9794 encoder_: &mut ___E,
9795 out_: &mut ::core::mem::MaybeUninit<crate::wire::FilesystemInfo>,
9796 _: (),
9797 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9798 ::fidl_next::munge! {
9799 let crate::wire::FilesystemInfo {
9800 total_bytes,
9801 used_bytes,
9802 total_nodes,
9803 used_nodes,
9804 free_shared_pool_bytes,
9805 fs_id,
9806 block_size,
9807 max_filename_size,
9808 fs_type,
9809 padding,
9810 name,
9811
9812 } = out_;
9813 }
9814
9815 ::fidl_next::Encode::encode(&self.total_bytes, encoder_, total_bytes, ())?;
9816
9817 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(total_bytes.as_mut_ptr()) };
9818
9819 ::fidl_next::Encode::encode(&self.used_bytes, encoder_, used_bytes, ())?;
9820
9821 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(used_bytes.as_mut_ptr()) };
9822
9823 ::fidl_next::Encode::encode(&self.total_nodes, encoder_, total_nodes, ())?;
9824
9825 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(total_nodes.as_mut_ptr()) };
9826
9827 ::fidl_next::Encode::encode(&self.used_nodes, encoder_, used_nodes, ())?;
9828
9829 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(used_nodes.as_mut_ptr()) };
9830
9831 ::fidl_next::Encode::encode(
9832 &self.free_shared_pool_bytes,
9833 encoder_,
9834 free_shared_pool_bytes,
9835 (),
9836 )?;
9837
9838 let mut _field =
9839 unsafe { ::fidl_next::Slot::new_unchecked(free_shared_pool_bytes.as_mut_ptr()) };
9840
9841 ::fidl_next::Encode::encode(&self.fs_id, encoder_, fs_id, ())?;
9842
9843 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fs_id.as_mut_ptr()) };
9844
9845 ::fidl_next::Encode::encode(&self.block_size, encoder_, block_size, ())?;
9846
9847 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(block_size.as_mut_ptr()) };
9848
9849 ::fidl_next::Encode::encode(&self.max_filename_size, encoder_, max_filename_size, ())?;
9850
9851 let mut _field =
9852 unsafe { ::fidl_next::Slot::new_unchecked(max_filename_size.as_mut_ptr()) };
9853
9854 ::fidl_next::Encode::encode(&self.fs_type, encoder_, fs_type, ())?;
9855
9856 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fs_type.as_mut_ptr()) };
9857
9858 ::fidl_next::Encode::encode(&self.padding, encoder_, padding, ())?;
9859
9860 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(padding.as_mut_ptr()) };
9861
9862 ::fidl_next::Encode::encode(&self.name, encoder_, name, ())?;
9863
9864 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
9865
9866 Ok(())
9867 }
9868 }
9869
9870 unsafe impl<___E>
9871 ::fidl_next::EncodeOption<
9872 ::fidl_next::wire::Box<'static, crate::wire::FilesystemInfo>,
9873 ___E,
9874 > for FilesystemInfo
9875 where
9876 ___E: ::fidl_next::Encoder + ?Sized,
9877 FilesystemInfo: ::fidl_next::Encode<crate::wire::FilesystemInfo, ___E>,
9878 {
9879 #[inline]
9880 fn encode_option(
9881 this: ::core::option::Option<Self>,
9882 encoder: &mut ___E,
9883 out: &mut ::core::mem::MaybeUninit<
9884 ::fidl_next::wire::Box<'static, crate::wire::FilesystemInfo>,
9885 >,
9886 _: (),
9887 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9888 if let Some(inner) = this {
9889 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9890 ::fidl_next::wire::Box::encode_present(out);
9891 } else {
9892 ::fidl_next::wire::Box::encode_absent(out);
9893 }
9894
9895 Ok(())
9896 }
9897 }
9898
9899 unsafe impl<'a, ___E>
9900 ::fidl_next::EncodeOption<
9901 ::fidl_next::wire::Box<'static, crate::wire::FilesystemInfo>,
9902 ___E,
9903 > for &'a FilesystemInfo
9904 where
9905 ___E: ::fidl_next::Encoder + ?Sized,
9906 &'a FilesystemInfo: ::fidl_next::Encode<crate::wire::FilesystemInfo, ___E>,
9907 {
9908 #[inline]
9909 fn encode_option(
9910 this: ::core::option::Option<Self>,
9911 encoder: &mut ___E,
9912 out: &mut ::core::mem::MaybeUninit<
9913 ::fidl_next::wire::Box<'static, crate::wire::FilesystemInfo>,
9914 >,
9915 _: (),
9916 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9917 if let Some(inner) = this {
9918 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
9919 ::fidl_next::wire::Box::encode_present(out);
9920 } else {
9921 ::fidl_next::wire::Box::encode_absent(out);
9922 }
9923
9924 Ok(())
9925 }
9926 }
9927
9928 impl ::fidl_next::FromWire<crate::wire::FilesystemInfo> for FilesystemInfo {
9929 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<crate::wire::FilesystemInfo, Self> = unsafe {
9930 ::fidl_next::CopyOptimization::enable_if(
9931 true
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 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::COPY_OPTIMIZATION
9941 .is_enabled()
9942 && <u64 as ::fidl_next::FromWire<::fidl_next::wire::Uint64>>::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 && <u32 as ::fidl_next::FromWire<::fidl_next::wire::Uint32>>::COPY_OPTIMIZATION
9949 .is_enabled()
9950 && <u32 as ::fidl_next::FromWire<::fidl_next::wire::Uint32>>::COPY_OPTIMIZATION
9951 .is_enabled()
9952 && <[i8; 32] as ::fidl_next::FromWire<[i8; 32]>>::COPY_OPTIMIZATION
9953 .is_enabled(),
9954 )
9955 };
9956
9957 #[inline]
9958 fn from_wire(wire: crate::wire::FilesystemInfo) -> Self {
9959 Self {
9960 total_bytes: ::fidl_next::FromWire::from_wire(wire.total_bytes),
9961
9962 used_bytes: ::fidl_next::FromWire::from_wire(wire.used_bytes),
9963
9964 total_nodes: ::fidl_next::FromWire::from_wire(wire.total_nodes),
9965
9966 used_nodes: ::fidl_next::FromWire::from_wire(wire.used_nodes),
9967
9968 free_shared_pool_bytes: ::fidl_next::FromWire::from_wire(
9969 wire.free_shared_pool_bytes,
9970 ),
9971
9972 fs_id: ::fidl_next::FromWire::from_wire(wire.fs_id),
9973
9974 block_size: ::fidl_next::FromWire::from_wire(wire.block_size),
9975
9976 max_filename_size: ::fidl_next::FromWire::from_wire(wire.max_filename_size),
9977
9978 fs_type: ::fidl_next::FromWire::from_wire(wire.fs_type),
9979
9980 padding: ::fidl_next::FromWire::from_wire(wire.padding),
9981
9982 name: ::fidl_next::FromWire::from_wire(wire.name),
9983 }
9984 }
9985 }
9986
9987 impl ::fidl_next::FromWireRef<crate::wire::FilesystemInfo> for FilesystemInfo {
9988 #[inline]
9989 fn from_wire_ref(wire: &crate::wire::FilesystemInfo) -> Self {
9990 Self {
9991 total_bytes: ::fidl_next::FromWireRef::from_wire_ref(&wire.total_bytes),
9992
9993 used_bytes: ::fidl_next::FromWireRef::from_wire_ref(&wire.used_bytes),
9994
9995 total_nodes: ::fidl_next::FromWireRef::from_wire_ref(&wire.total_nodes),
9996
9997 used_nodes: ::fidl_next::FromWireRef::from_wire_ref(&wire.used_nodes),
9998
9999 free_shared_pool_bytes: ::fidl_next::FromWireRef::from_wire_ref(
10000 &wire.free_shared_pool_bytes,
10001 ),
10002
10003 fs_id: ::fidl_next::FromWireRef::from_wire_ref(&wire.fs_id),
10004
10005 block_size: ::fidl_next::FromWireRef::from_wire_ref(&wire.block_size),
10006
10007 max_filename_size: ::fidl_next::FromWireRef::from_wire_ref(&wire.max_filename_size),
10008
10009 fs_type: ::fidl_next::FromWireRef::from_wire_ref(&wire.fs_type),
10010
10011 padding: ::fidl_next::FromWireRef::from_wire_ref(&wire.padding),
10012
10013 name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name),
10014 }
10015 }
10016 }
10017
10018 pub type Service = ();
10019
10020 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
10021 pub struct SymlinkObject {
10022 pub target: ::std::vec::Vec<u8>,
10023 }
10024
10025 unsafe impl<___E> ::fidl_next::Encode<crate::wire::SymlinkObject<'static>, ___E> for SymlinkObject
10026 where
10027 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
10028 ___E: ::fidl_next::Encoder,
10029 {
10030 #[inline]
10031 fn encode(
10032 self,
10033 encoder_: &mut ___E,
10034 out_: &mut ::core::mem::MaybeUninit<crate::wire::SymlinkObject<'static>>,
10035 _: (),
10036 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10037 ::fidl_next::munge! {
10038 let crate::wire::SymlinkObject {
10039 target,
10040
10041 } = out_;
10042 }
10043
10044 ::fidl_next::Encode::encode(self.target, encoder_, target, (4095, ()))?;
10045
10046 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(target.as_mut_ptr()) };
10047 ::fidl_next::Constrained::validate(_field, (4095, ()))?;
10048
10049 Ok(())
10050 }
10051 }
10052
10053 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::SymlinkObject<'static>, ___E>
10054 for &'a SymlinkObject
10055 where
10056 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
10057 ___E: ::fidl_next::Encoder,
10058 {
10059 #[inline]
10060 fn encode(
10061 self,
10062 encoder_: &mut ___E,
10063 out_: &mut ::core::mem::MaybeUninit<crate::wire::SymlinkObject<'static>>,
10064 _: (),
10065 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10066 ::fidl_next::munge! {
10067 let crate::wire::SymlinkObject {
10068 target,
10069
10070 } = out_;
10071 }
10072
10073 ::fidl_next::Encode::encode(&self.target, encoder_, target, (4095, ()))?;
10074
10075 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(target.as_mut_ptr()) };
10076 ::fidl_next::Constrained::validate(_field, (4095, ()))?;
10077
10078 Ok(())
10079 }
10080 }
10081
10082 unsafe impl<___E>
10083 ::fidl_next::EncodeOption<
10084 ::fidl_next::wire::Box<'static, crate::wire::SymlinkObject<'static>>,
10085 ___E,
10086 > for SymlinkObject
10087 where
10088 ___E: ::fidl_next::Encoder + ?Sized,
10089 SymlinkObject: ::fidl_next::Encode<crate::wire::SymlinkObject<'static>, ___E>,
10090 {
10091 #[inline]
10092 fn encode_option(
10093 this: ::core::option::Option<Self>,
10094 encoder: &mut ___E,
10095 out: &mut ::core::mem::MaybeUninit<
10096 ::fidl_next::wire::Box<'static, crate::wire::SymlinkObject<'static>>,
10097 >,
10098 _: (),
10099 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10100 if let Some(inner) = this {
10101 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
10102 ::fidl_next::wire::Box::encode_present(out);
10103 } else {
10104 ::fidl_next::wire::Box::encode_absent(out);
10105 }
10106
10107 Ok(())
10108 }
10109 }
10110
10111 unsafe impl<'a, ___E>
10112 ::fidl_next::EncodeOption<
10113 ::fidl_next::wire::Box<'static, crate::wire::SymlinkObject<'static>>,
10114 ___E,
10115 > for &'a SymlinkObject
10116 where
10117 ___E: ::fidl_next::Encoder + ?Sized,
10118 &'a SymlinkObject: ::fidl_next::Encode<crate::wire::SymlinkObject<'static>, ___E>,
10119 {
10120 #[inline]
10121 fn encode_option(
10122 this: ::core::option::Option<Self>,
10123 encoder: &mut ___E,
10124 out: &mut ::core::mem::MaybeUninit<
10125 ::fidl_next::wire::Box<'static, crate::wire::SymlinkObject<'static>>,
10126 >,
10127 _: (),
10128 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10129 if let Some(inner) = this {
10130 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
10131 ::fidl_next::wire::Box::encode_present(out);
10132 } else {
10133 ::fidl_next::wire::Box::encode_absent(out);
10134 }
10135
10136 Ok(())
10137 }
10138 }
10139
10140 impl<'de> ::fidl_next::FromWire<crate::wire::SymlinkObject<'de>> for SymlinkObject {
10141 #[inline]
10142 fn from_wire(wire: crate::wire::SymlinkObject<'de>) -> Self {
10143 Self { target: ::fidl_next::FromWire::from_wire(wire.target) }
10144 }
10145 }
10146
10147 impl<'de> ::fidl_next::FromWireRef<crate::wire::SymlinkObject<'de>> for SymlinkObject {
10148 #[inline]
10149 fn from_wire_ref(wire: &crate::wire::SymlinkObject<'de>) -> Self {
10150 Self { target: ::fidl_next::FromWireRef::from_wire_ref(&wire.target) }
10151 }
10152 }
10153
10154 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
10155 #[repr(u8)]
10156 pub enum WatchEvent {
10157 Deleted = 0,
10158 Added = 1,
10159 Removed = 2,
10160 Existing = 3,
10161 Idle = 4,
10162 }
10163 impl ::core::convert::TryFrom<u8> for WatchEvent {
10164 type Error = ::fidl_next::UnknownStrictEnumMemberError;
10165 fn try_from(
10166 value: u8,
10167 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
10168 match value {
10169 0 => Ok(Self::Deleted),
10170 1 => Ok(Self::Added),
10171 2 => Ok(Self::Removed),
10172 3 => Ok(Self::Existing),
10173 4 => Ok(Self::Idle),
10174
10175 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
10176 }
10177 }
10178 }
10179
10180 unsafe impl<___E> ::fidl_next::Encode<crate::wire::WatchEvent, ___E> for WatchEvent
10181 where
10182 ___E: ?Sized,
10183 {
10184 #[inline]
10185 fn encode(
10186 self,
10187 encoder: &mut ___E,
10188 out: &mut ::core::mem::MaybeUninit<crate::wire::WatchEvent>,
10189 _: (),
10190 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10191 ::fidl_next::Encode::encode(&self, encoder, out, ())
10192 }
10193 }
10194
10195 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::WatchEvent, ___E> for &'a WatchEvent
10196 where
10197 ___E: ?Sized,
10198 {
10199 #[inline]
10200 fn encode(
10201 self,
10202 encoder: &mut ___E,
10203 out: &mut ::core::mem::MaybeUninit<crate::wire::WatchEvent>,
10204 _: (),
10205 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10206 ::fidl_next::munge!(let crate::wire::WatchEvent { value } = out);
10207 let _ = value.write(u8::from(match *self {
10208 WatchEvent::Deleted => 0,
10209
10210 WatchEvent::Added => 1,
10211
10212 WatchEvent::Removed => 2,
10213
10214 WatchEvent::Existing => 3,
10215
10216 WatchEvent::Idle => 4,
10217 }));
10218
10219 Ok(())
10220 }
10221 }
10222
10223 impl ::core::convert::From<crate::wire::WatchEvent> for WatchEvent {
10224 fn from(wire: crate::wire::WatchEvent) -> Self {
10225 match u8::from(wire.value) {
10226 0 => Self::Deleted,
10227
10228 1 => Self::Added,
10229
10230 2 => Self::Removed,
10231
10232 3 => Self::Existing,
10233
10234 4 => Self::Idle,
10235
10236 _ => unsafe { ::core::hint::unreachable_unchecked() },
10237 }
10238 }
10239 }
10240
10241 impl ::fidl_next::FromWire<crate::wire::WatchEvent> for WatchEvent {
10242 #[inline]
10243 fn from_wire(wire: crate::wire::WatchEvent) -> Self {
10244 Self::from(wire)
10245 }
10246 }
10247
10248 impl ::fidl_next::FromWireRef<crate::wire::WatchEvent> for WatchEvent {
10249 #[inline]
10250 fn from_wire_ref(wire: &crate::wire::WatchEvent) -> Self {
10251 Self::from(*wire)
10252 }
10253 }
10254}
10255
10256pub mod wire {
10257
10258 #[derive(Clone, Copy, Debug)]
10260 #[repr(transparent)]
10261 pub struct Operations {
10262 pub(crate) value: ::fidl_next::wire::Uint64,
10263 }
10264
10265 impl ::fidl_next::Constrained for Operations {
10266 type Constraint = ();
10267
10268 fn validate(
10269 _: ::fidl_next::Slot<'_, Self>,
10270 _: Self::Constraint,
10271 ) -> Result<(), ::fidl_next::ValidationError> {
10272 Ok(())
10273 }
10274 }
10275
10276 unsafe impl ::fidl_next::Wire for Operations {
10277 type Narrowed<'de> = Self;
10278
10279 #[inline]
10280 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
10281 }
10283 }
10284
10285 unsafe impl<___D> ::fidl_next::Decode<___D> for Operations
10286 where
10287 ___D: ?Sized,
10288 {
10289 fn decode(
10290 slot: ::fidl_next::Slot<'_, Self>,
10291 _: &mut ___D,
10292 _: (),
10293 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10294 ::fidl_next::munge!(let Self { value } = slot);
10295 let set = u64::from(*value);
10296 if set & !crate::natural::Operations::all().bits() != 0 {
10297 return Err(::fidl_next::DecodeError::InvalidBits {
10298 expected: crate::natural::Operations::all().bits() as usize,
10299 actual: set as usize,
10300 });
10301 }
10302
10303 Ok(())
10304 }
10305 }
10306
10307 impl ::core::convert::From<crate::natural::Operations> for Operations {
10308 fn from(natural: crate::natural::Operations) -> Self {
10309 Self { value: ::fidl_next::wire::Uint64::from(natural.bits()) }
10310 }
10311 }
10312
10313 impl ::fidl_next::IntoNatural for Operations {
10314 type Natural = crate::natural::Operations;
10315 }
10316
10317 pub type Abilities = crate::wire::Operations;
10319
10320 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
10322 #[repr(transparent)]
10323 pub struct SeekOrigin {
10324 pub(crate) value: ::fidl_next::wire::Uint32,
10325 }
10326
10327 impl ::fidl_next::Constrained for SeekOrigin {
10328 type Constraint = ();
10329
10330 fn validate(
10331 _: ::fidl_next::Slot<'_, Self>,
10332 _: Self::Constraint,
10333 ) -> Result<(), ::fidl_next::ValidationError> {
10334 Ok(())
10335 }
10336 }
10337
10338 unsafe impl ::fidl_next::Wire for SeekOrigin {
10339 type Narrowed<'de> = Self;
10340
10341 #[inline]
10342 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
10343 }
10345 }
10346
10347 impl SeekOrigin {
10348 pub const START: SeekOrigin = SeekOrigin { value: ::fidl_next::wire::Uint32(0) };
10349
10350 pub const CURRENT: SeekOrigin = SeekOrigin { value: ::fidl_next::wire::Uint32(1) };
10351
10352 pub const END: SeekOrigin = SeekOrigin { value: ::fidl_next::wire::Uint32(2) };
10353 }
10354
10355 unsafe impl<___D> ::fidl_next::Decode<___D> for SeekOrigin
10356 where
10357 ___D: ?Sized,
10358 {
10359 fn decode(
10360 slot: ::fidl_next::Slot<'_, Self>,
10361 _: &mut ___D,
10362 _: (),
10363 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10364 ::fidl_next::munge!(let Self { value } = slot);
10365
10366 match u32::from(*value) {
10367 0 | 1 | 2 => (),
10368 unknown => {
10369 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
10370 }
10371 }
10372
10373 Ok(())
10374 }
10375 }
10376
10377 impl ::core::convert::From<crate::natural::SeekOrigin> for SeekOrigin {
10378 fn from(natural: crate::natural::SeekOrigin) -> Self {
10379 match natural {
10380 crate::natural::SeekOrigin::Start => SeekOrigin::START,
10381
10382 crate::natural::SeekOrigin::Current => SeekOrigin::CURRENT,
10383
10384 crate::natural::SeekOrigin::End => SeekOrigin::END,
10385 }
10386 }
10387 }
10388
10389 impl ::fidl_next::IntoNatural for SeekOrigin {
10390 type Natural = crate::natural::SeekOrigin;
10391 }
10392
10393 #[derive(Clone, Debug)]
10395 #[repr(C)]
10396 pub struct AdvisoryLockRange {
10397 pub origin: crate::wire::SeekOrigin,
10398
10399 pub offset: ::fidl_next::wire::Int64,
10400
10401 pub length: ::fidl_next::wire::Int64,
10402 }
10403
10404 static_assertions::const_assert_eq!(std::mem::size_of::<AdvisoryLockRange>(), 24);
10405 static_assertions::const_assert_eq!(std::mem::align_of::<AdvisoryLockRange>(), 8);
10406
10407 static_assertions::const_assert_eq!(std::mem::offset_of!(AdvisoryLockRange, origin), 0);
10408
10409 static_assertions::const_assert_eq!(std::mem::offset_of!(AdvisoryLockRange, offset), 8);
10410
10411 static_assertions::const_assert_eq!(std::mem::offset_of!(AdvisoryLockRange, length), 16);
10412
10413 impl ::fidl_next::Constrained for AdvisoryLockRange {
10414 type Constraint = ();
10415
10416 fn validate(
10417 _: ::fidl_next::Slot<'_, Self>,
10418 _: Self::Constraint,
10419 ) -> Result<(), ::fidl_next::ValidationError> {
10420 Ok(())
10421 }
10422 }
10423
10424 unsafe impl ::fidl_next::Wire for AdvisoryLockRange {
10425 type Narrowed<'de> = AdvisoryLockRange;
10426
10427 #[inline]
10428 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
10429 ::fidl_next::munge! {
10430 let Self {
10431 origin,
10432 offset,
10433 length,
10434
10435 } = &mut *out_;
10436 }
10437
10438 ::fidl_next::Wire::zero_padding(origin);
10439
10440 ::fidl_next::Wire::zero_padding(offset);
10441
10442 ::fidl_next::Wire::zero_padding(length);
10443
10444 unsafe {
10445 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
10446 }
10447 }
10448 }
10449
10450 unsafe impl<___D> ::fidl_next::Decode<___D> for AdvisoryLockRange
10451 where
10452 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
10453 {
10454 fn decode(
10455 slot_: ::fidl_next::Slot<'_, Self>,
10456 decoder_: &mut ___D,
10457 _: (),
10458 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10459 if slot_.as_bytes()[4..8] != [0u8; 4] {
10460 return Err(::fidl_next::DecodeError::InvalidPadding);
10461 }
10462
10463 ::fidl_next::munge! {
10464 let Self {
10465 mut origin,
10466 mut offset,
10467 mut length,
10468
10469 } = slot_;
10470 }
10471
10472 let _field = origin.as_mut();
10473
10474 ::fidl_next::Decode::decode(origin.as_mut(), decoder_, ())?;
10475
10476 let _field = offset.as_mut();
10477
10478 ::fidl_next::Decode::decode(offset.as_mut(), decoder_, ())?;
10479
10480 let _field = length.as_mut();
10481
10482 ::fidl_next::Decode::decode(length.as_mut(), decoder_, ())?;
10483
10484 Ok(())
10485 }
10486 }
10487
10488 impl ::fidl_next::IntoNatural for AdvisoryLockRange {
10489 type Natural = crate::natural::AdvisoryLockRange;
10490 }
10491
10492 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
10494 #[repr(transparent)]
10495 pub struct AdvisoryLockType {
10496 pub(crate) value: ::fidl_next::wire::Uint32,
10497 }
10498
10499 impl ::fidl_next::Constrained for AdvisoryLockType {
10500 type Constraint = ();
10501
10502 fn validate(
10503 _: ::fidl_next::Slot<'_, Self>,
10504 _: Self::Constraint,
10505 ) -> Result<(), ::fidl_next::ValidationError> {
10506 Ok(())
10507 }
10508 }
10509
10510 unsafe impl ::fidl_next::Wire for AdvisoryLockType {
10511 type Narrowed<'de> = Self;
10512
10513 #[inline]
10514 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
10515 }
10517 }
10518
10519 impl AdvisoryLockType {
10520 pub const READ: AdvisoryLockType = AdvisoryLockType { value: ::fidl_next::wire::Uint32(1) };
10521
10522 pub const WRITE: AdvisoryLockType =
10523 AdvisoryLockType { value: ::fidl_next::wire::Uint32(2) };
10524
10525 pub const UNLOCK: AdvisoryLockType =
10526 AdvisoryLockType { value: ::fidl_next::wire::Uint32(3) };
10527 }
10528
10529 unsafe impl<___D> ::fidl_next::Decode<___D> for AdvisoryLockType
10530 where
10531 ___D: ?Sized,
10532 {
10533 fn decode(
10534 slot: ::fidl_next::Slot<'_, Self>,
10535 _: &mut ___D,
10536 _: (),
10537 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10538 ::fidl_next::munge!(let Self { value } = slot);
10539
10540 match u32::from(*value) {
10541 1 | 2 | 3 => (),
10542 unknown => {
10543 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
10544 }
10545 }
10546
10547 Ok(())
10548 }
10549 }
10550
10551 impl ::core::convert::From<crate::natural::AdvisoryLockType> for AdvisoryLockType {
10552 fn from(natural: crate::natural::AdvisoryLockType) -> Self {
10553 match natural {
10554 crate::natural::AdvisoryLockType::Read => AdvisoryLockType::READ,
10555
10556 crate::natural::AdvisoryLockType::Write => AdvisoryLockType::WRITE,
10557
10558 crate::natural::AdvisoryLockType::Unlock => AdvisoryLockType::UNLOCK,
10559 }
10560 }
10561 }
10562
10563 impl ::fidl_next::IntoNatural for AdvisoryLockType {
10564 type Natural = crate::natural::AdvisoryLockType;
10565 }
10566
10567 #[repr(C)]
10569 pub struct AdvisoryLockRequest<'de> {
10570 pub(crate) table: ::fidl_next::wire::Table<'de>,
10571 }
10572
10573 impl<'de> Drop for AdvisoryLockRequest<'de> {
10574 fn drop(&mut self) {
10575 let _ = self.table.get(1).map(|envelope| unsafe {
10576 envelope.read_unchecked::<crate::wire::AdvisoryLockType>()
10577 });
10578
10579 let _ = self.table.get(2).map(|envelope| unsafe {
10580 envelope.read_unchecked::<crate::wire::AdvisoryLockRange>()
10581 });
10582
10583 let _ = self.table.get(3).map(|envelope| unsafe { envelope.read_unchecked::<bool>() });
10584 }
10585 }
10586
10587 impl ::fidl_next::Constrained for AdvisoryLockRequest<'_> {
10588 type Constraint = ();
10589
10590 fn validate(
10591 _: ::fidl_next::Slot<'_, Self>,
10592 _: Self::Constraint,
10593 ) -> Result<(), ::fidl_next::ValidationError> {
10594 Ok(())
10595 }
10596 }
10597
10598 unsafe impl ::fidl_next::Wire for AdvisoryLockRequest<'static> {
10599 type Narrowed<'de> = AdvisoryLockRequest<'de>;
10600
10601 #[inline]
10602 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
10603 ::fidl_next::munge!(let Self { table } = out);
10604 ::fidl_next::wire::Table::zero_padding(table);
10605 }
10606 }
10607
10608 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for AdvisoryLockRequest<'de>
10609 where
10610 ___D: ::fidl_next::Decoder<'de> + ?Sized,
10611 {
10612 fn decode(
10613 slot: ::fidl_next::Slot<'_, Self>,
10614 decoder: &mut ___D,
10615 _: (),
10616 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10617 ::fidl_next::munge!(let Self { table } = slot);
10618
10619 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
10620 match ordinal {
10621 0 => unsafe { ::core::hint::unreachable_unchecked() },
10622
10623 1 => {
10624 ::fidl_next::wire::Envelope::decode_as::<
10625 ___D,
10626 crate::wire::AdvisoryLockType,
10627 >(slot.as_mut(), decoder, ())?;
10628
10629 Ok(())
10630 }
10631
10632 2 => {
10633 ::fidl_next::wire::Envelope::decode_as::<
10634 ___D,
10635 crate::wire::AdvisoryLockRange,
10636 >(slot.as_mut(), decoder, ())?;
10637
10638 Ok(())
10639 }
10640
10641 3 => {
10642 ::fidl_next::wire::Envelope::decode_as::<___D, bool>(
10643 slot.as_mut(),
10644 decoder,
10645 (),
10646 )?;
10647
10648 Ok(())
10649 }
10650
10651 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
10652 }
10653 })
10654 }
10655 }
10656
10657 impl<'de> AdvisoryLockRequest<'de> {
10658 pub fn type_(&self) -> ::core::option::Option<&crate::wire::AdvisoryLockType> {
10659 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
10660 }
10661
10662 pub fn take_type_(&mut self) -> ::core::option::Option<crate::wire::AdvisoryLockType> {
10663 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
10664 }
10665
10666 pub fn range(&self) -> ::core::option::Option<&crate::wire::AdvisoryLockRange> {
10667 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
10668 }
10669
10670 pub fn take_range(&mut self) -> ::core::option::Option<crate::wire::AdvisoryLockRange> {
10671 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
10672 }
10673
10674 pub fn wait(&self) -> ::core::option::Option<&bool> {
10675 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
10676 }
10677
10678 pub fn take_wait(&mut self) -> ::core::option::Option<bool> {
10679 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
10680 }
10681 }
10682
10683 impl<'de> ::core::fmt::Debug for AdvisoryLockRequest<'de> {
10684 fn fmt(
10685 &self,
10686 f: &mut ::core::fmt::Formatter<'_>,
10687 ) -> ::core::result::Result<(), ::core::fmt::Error> {
10688 f.debug_struct("AdvisoryLockRequest")
10689 .field("type_", &self.type_())
10690 .field("range", &self.range())
10691 .field("wait", &self.wait())
10692 .finish()
10693 }
10694 }
10695
10696 impl<'de> ::fidl_next::IntoNatural for AdvisoryLockRequest<'de> {
10697 type Natural = crate::natural::AdvisoryLockRequest;
10698 }
10699
10700 #[derive(Debug)]
10702 #[repr(C)]
10703 pub struct AdvisoryLockingAdvisoryLockRequest<'de> {
10704 pub request: crate::wire::AdvisoryLockRequest<'de>,
10705 }
10706
10707 static_assertions::const_assert_eq!(
10708 std::mem::size_of::<AdvisoryLockingAdvisoryLockRequest<'_>>(),
10709 16
10710 );
10711 static_assertions::const_assert_eq!(
10712 std::mem::align_of::<AdvisoryLockingAdvisoryLockRequest<'_>>(),
10713 8
10714 );
10715
10716 static_assertions::const_assert_eq!(
10717 std::mem::offset_of!(AdvisoryLockingAdvisoryLockRequest<'_>, request),
10718 0
10719 );
10720
10721 impl ::fidl_next::Constrained for AdvisoryLockingAdvisoryLockRequest<'_> {
10722 type Constraint = ();
10723
10724 fn validate(
10725 _: ::fidl_next::Slot<'_, Self>,
10726 _: Self::Constraint,
10727 ) -> Result<(), ::fidl_next::ValidationError> {
10728 Ok(())
10729 }
10730 }
10731
10732 unsafe impl ::fidl_next::Wire for AdvisoryLockingAdvisoryLockRequest<'static> {
10733 type Narrowed<'de> = AdvisoryLockingAdvisoryLockRequest<'de>;
10734
10735 #[inline]
10736 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
10737 ::fidl_next::munge! {
10738 let Self {
10739 request,
10740
10741 } = &mut *out_;
10742 }
10743
10744 ::fidl_next::Wire::zero_padding(request);
10745 }
10746 }
10747
10748 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for AdvisoryLockingAdvisoryLockRequest<'de>
10749 where
10750 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
10751 ___D: ::fidl_next::Decoder<'de>,
10752 {
10753 fn decode(
10754 slot_: ::fidl_next::Slot<'_, Self>,
10755 decoder_: &mut ___D,
10756 _: (),
10757 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10758 ::fidl_next::munge! {
10759 let Self {
10760 mut request,
10761
10762 } = slot_;
10763 }
10764
10765 let _field = request.as_mut();
10766
10767 ::fidl_next::Decode::decode(request.as_mut(), decoder_, ())?;
10768
10769 Ok(())
10770 }
10771 }
10772
10773 impl<'de> ::fidl_next::IntoNatural for AdvisoryLockingAdvisoryLockRequest<'de> {
10774 type Natural = crate::natural::AdvisoryLockingAdvisoryLockRequest;
10775 }
10776
10777 pub type AdvisoryLockingAdvisoryLockResponse = ::fidl_next::wire::Unit;
10779
10780 #[derive(Clone, Copy, Debug)]
10782 #[repr(transparent)]
10783 pub struct AllocateMode {
10784 pub(crate) value: ::fidl_next::wire::Uint32,
10785 }
10786
10787 impl ::fidl_next::Constrained for AllocateMode {
10788 type Constraint = ();
10789
10790 fn validate(
10791 _: ::fidl_next::Slot<'_, Self>,
10792 _: Self::Constraint,
10793 ) -> Result<(), ::fidl_next::ValidationError> {
10794 Ok(())
10795 }
10796 }
10797
10798 unsafe impl ::fidl_next::Wire for AllocateMode {
10799 type Narrowed<'de> = Self;
10800
10801 #[inline]
10802 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
10803 }
10805 }
10806
10807 unsafe impl<___D> ::fidl_next::Decode<___D> for AllocateMode
10808 where
10809 ___D: ?Sized,
10810 {
10811 fn decode(
10812 slot: ::fidl_next::Slot<'_, Self>,
10813 _: &mut ___D,
10814 _: (),
10815 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10816 Ok(())
10817 }
10818 }
10819
10820 impl ::core::convert::From<crate::natural::AllocateMode> for AllocateMode {
10821 fn from(natural: crate::natural::AllocateMode) -> Self {
10822 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
10823 }
10824 }
10825
10826 impl ::fidl_next::IntoNatural for AllocateMode {
10827 type Natural = crate::natural::AllocateMode;
10828 }
10829
10830 pub type Rights = crate::wire::Operations;
10832
10833 pub type Id = ::fidl_next::wire::Uint64;
10835
10836 #[derive(Clone, Copy, Debug)]
10838 #[repr(transparent)]
10839 pub struct OpenFlags {
10840 pub(crate) value: ::fidl_next::wire::Uint32,
10841 }
10842
10843 impl ::fidl_next::Constrained for OpenFlags {
10844 type Constraint = ();
10845
10846 fn validate(
10847 _: ::fidl_next::Slot<'_, Self>,
10848 _: Self::Constraint,
10849 ) -> Result<(), ::fidl_next::ValidationError> {
10850 Ok(())
10851 }
10852 }
10853
10854 unsafe impl ::fidl_next::Wire for OpenFlags {
10855 type Narrowed<'de> = Self;
10856
10857 #[inline]
10858 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
10859 }
10861 }
10862
10863 unsafe impl<___D> ::fidl_next::Decode<___D> for OpenFlags
10864 where
10865 ___D: ?Sized,
10866 {
10867 fn decode(
10868 slot: ::fidl_next::Slot<'_, Self>,
10869 _: &mut ___D,
10870 _: (),
10871 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10872 ::fidl_next::munge!(let Self { value } = slot);
10873 let set = u32::from(*value);
10874 if set & !crate::natural::OpenFlags::all().bits() != 0 {
10875 return Err(::fidl_next::DecodeError::InvalidBits {
10876 expected: crate::natural::OpenFlags::all().bits() as usize,
10877 actual: set as usize,
10878 });
10879 }
10880
10881 Ok(())
10882 }
10883 }
10884
10885 impl ::core::convert::From<crate::natural::OpenFlags> for OpenFlags {
10886 fn from(natural: crate::natural::OpenFlags) -> Self {
10887 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
10888 }
10889 }
10890
10891 impl ::fidl_next::IntoNatural for OpenFlags {
10892 type Natural = crate::natural::OpenFlags;
10893 }
10894
10895 #[derive(Clone, Debug)]
10897 #[repr(C)]
10898 pub struct NodeAttributes {
10899 pub mode: ::fidl_next::wire::Uint32,
10900
10901 pub id: ::fidl_next::wire::Uint64,
10902
10903 pub content_size: ::fidl_next::wire::Uint64,
10904
10905 pub storage_size: ::fidl_next::wire::Uint64,
10906
10907 pub link_count: ::fidl_next::wire::Uint64,
10908
10909 pub creation_time: ::fidl_next::wire::Uint64,
10910
10911 pub modification_time: ::fidl_next::wire::Uint64,
10912 }
10913
10914 static_assertions::const_assert_eq!(std::mem::size_of::<NodeAttributes>(), 56);
10915 static_assertions::const_assert_eq!(std::mem::align_of::<NodeAttributes>(), 8);
10916
10917 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeAttributes, mode), 0);
10918
10919 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeAttributes, id), 8);
10920
10921 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeAttributes, content_size), 16);
10922
10923 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeAttributes, storage_size), 24);
10924
10925 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeAttributes, link_count), 32);
10926
10927 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeAttributes, creation_time), 40);
10928
10929 static_assertions::const_assert_eq!(
10930 std::mem::offset_of!(NodeAttributes, modification_time),
10931 48
10932 );
10933
10934 impl ::fidl_next::Constrained for NodeAttributes {
10935 type Constraint = ();
10936
10937 fn validate(
10938 _: ::fidl_next::Slot<'_, Self>,
10939 _: Self::Constraint,
10940 ) -> Result<(), ::fidl_next::ValidationError> {
10941 Ok(())
10942 }
10943 }
10944
10945 unsafe impl ::fidl_next::Wire for NodeAttributes {
10946 type Narrowed<'de> = NodeAttributes;
10947
10948 #[inline]
10949 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
10950 ::fidl_next::munge! {
10951 let Self {
10952 mode,
10953 id,
10954 content_size,
10955 storage_size,
10956 link_count,
10957 creation_time,
10958 modification_time,
10959
10960 } = &mut *out_;
10961 }
10962
10963 ::fidl_next::Wire::zero_padding(mode);
10964
10965 ::fidl_next::Wire::zero_padding(id);
10966
10967 ::fidl_next::Wire::zero_padding(content_size);
10968
10969 ::fidl_next::Wire::zero_padding(storage_size);
10970
10971 ::fidl_next::Wire::zero_padding(link_count);
10972
10973 ::fidl_next::Wire::zero_padding(creation_time);
10974
10975 ::fidl_next::Wire::zero_padding(modification_time);
10976
10977 unsafe {
10978 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
10979 }
10980 }
10981 }
10982
10983 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeAttributes
10984 where
10985 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
10986 {
10987 fn decode(
10988 slot_: ::fidl_next::Slot<'_, Self>,
10989 decoder_: &mut ___D,
10990 _: (),
10991 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
10992 if slot_.as_bytes()[4..8] != [0u8; 4] {
10993 return Err(::fidl_next::DecodeError::InvalidPadding);
10994 }
10995
10996 ::fidl_next::munge! {
10997 let Self {
10998 mut mode,
10999 mut id,
11000 mut content_size,
11001 mut storage_size,
11002 mut link_count,
11003 mut creation_time,
11004 mut modification_time,
11005
11006 } = slot_;
11007 }
11008
11009 let _field = mode.as_mut();
11010
11011 ::fidl_next::Decode::decode(mode.as_mut(), decoder_, ())?;
11012
11013 let _field = id.as_mut();
11014
11015 ::fidl_next::Decode::decode(id.as_mut(), decoder_, ())?;
11016
11017 let _field = content_size.as_mut();
11018
11019 ::fidl_next::Decode::decode(content_size.as_mut(), decoder_, ())?;
11020
11021 let _field = storage_size.as_mut();
11022
11023 ::fidl_next::Decode::decode(storage_size.as_mut(), decoder_, ())?;
11024
11025 let _field = link_count.as_mut();
11026
11027 ::fidl_next::Decode::decode(link_count.as_mut(), decoder_, ())?;
11028
11029 let _field = creation_time.as_mut();
11030
11031 ::fidl_next::Decode::decode(creation_time.as_mut(), decoder_, ())?;
11032
11033 let _field = modification_time.as_mut();
11034
11035 ::fidl_next::Decode::decode(modification_time.as_mut(), decoder_, ())?;
11036
11037 Ok(())
11038 }
11039 }
11040
11041 impl ::fidl_next::IntoNatural for NodeAttributes {
11042 type Natural = crate::natural::NodeAttributes;
11043 }
11044
11045 #[derive(Clone, Copy, Debug)]
11047 #[repr(transparent)]
11048 pub struct NodeAttributeFlags {
11049 pub(crate) value: ::fidl_next::wire::Uint32,
11050 }
11051
11052 impl ::fidl_next::Constrained for NodeAttributeFlags {
11053 type Constraint = ();
11054
11055 fn validate(
11056 _: ::fidl_next::Slot<'_, Self>,
11057 _: Self::Constraint,
11058 ) -> Result<(), ::fidl_next::ValidationError> {
11059 Ok(())
11060 }
11061 }
11062
11063 unsafe impl ::fidl_next::Wire for NodeAttributeFlags {
11064 type Narrowed<'de> = Self;
11065
11066 #[inline]
11067 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
11068 }
11070 }
11071
11072 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeAttributeFlags
11073 where
11074 ___D: ?Sized,
11075 {
11076 fn decode(
11077 slot: ::fidl_next::Slot<'_, Self>,
11078 _: &mut ___D,
11079 _: (),
11080 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11081 ::fidl_next::munge!(let Self { value } = slot);
11082 let set = u32::from(*value);
11083 if set & !crate::natural::NodeAttributeFlags::all().bits() != 0 {
11084 return Err(::fidl_next::DecodeError::InvalidBits {
11085 expected: crate::natural::NodeAttributeFlags::all().bits() as usize,
11086 actual: set as usize,
11087 });
11088 }
11089
11090 Ok(())
11091 }
11092 }
11093
11094 impl ::core::convert::From<crate::natural::NodeAttributeFlags> for NodeAttributeFlags {
11095 fn from(natural: crate::natural::NodeAttributeFlags) -> Self {
11096 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
11097 }
11098 }
11099
11100 impl ::fidl_next::IntoNatural for NodeAttributeFlags {
11101 type Natural = crate::natural::NodeAttributeFlags;
11102 }
11103
11104 #[derive(Debug)]
11106 #[repr(C)]
11107 pub struct NodeQueryFilesystemResponse<'de> {
11108 pub s: ::fidl_next::wire::fuchsia::Status,
11109
11110 pub info: ::fidl_next::wire::Box<'de, crate::wire::FilesystemInfo>,
11111 }
11112
11113 static_assertions::const_assert_eq!(std::mem::size_of::<NodeQueryFilesystemResponse<'_>>(), 16);
11114 static_assertions::const_assert_eq!(std::mem::align_of::<NodeQueryFilesystemResponse<'_>>(), 8);
11115
11116 static_assertions::const_assert_eq!(
11117 std::mem::offset_of!(NodeQueryFilesystemResponse<'_>, s),
11118 0
11119 );
11120
11121 static_assertions::const_assert_eq!(
11122 std::mem::offset_of!(NodeQueryFilesystemResponse<'_>, info),
11123 8
11124 );
11125
11126 impl ::fidl_next::Constrained for NodeQueryFilesystemResponse<'_> {
11127 type Constraint = ();
11128
11129 fn validate(
11130 _: ::fidl_next::Slot<'_, Self>,
11131 _: Self::Constraint,
11132 ) -> Result<(), ::fidl_next::ValidationError> {
11133 Ok(())
11134 }
11135 }
11136
11137 unsafe impl ::fidl_next::Wire for NodeQueryFilesystemResponse<'static> {
11138 type Narrowed<'de> = NodeQueryFilesystemResponse<'de>;
11139
11140 #[inline]
11141 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11142 ::fidl_next::munge! {
11143 let Self {
11144 s,
11145 info,
11146
11147 } = &mut *out_;
11148 }
11149
11150 ::fidl_next::Wire::zero_padding(s);
11151
11152 ::fidl_next::Wire::zero_padding(info);
11153
11154 unsafe {
11155 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
11156 }
11157 }
11158 }
11159
11160 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for NodeQueryFilesystemResponse<'de>
11161 where
11162 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11163 ___D: ::fidl_next::Decoder<'de>,
11164 {
11165 fn decode(
11166 slot_: ::fidl_next::Slot<'_, Self>,
11167 decoder_: &mut ___D,
11168 _: (),
11169 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11170 if slot_.as_bytes()[4..8] != [0u8; 4] {
11171 return Err(::fidl_next::DecodeError::InvalidPadding);
11172 }
11173
11174 ::fidl_next::munge! {
11175 let Self {
11176 mut s,
11177 mut info,
11178
11179 } = slot_;
11180 }
11181
11182 let _field = s.as_mut();
11183
11184 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
11185
11186 let _field = info.as_mut();
11187
11188 ::fidl_next::Decode::decode(info.as_mut(), decoder_, ())?;
11189
11190 Ok(())
11191 }
11192 }
11193
11194 impl<'de> ::fidl_next::IntoNatural for NodeQueryFilesystemResponse<'de> {
11195 type Natural = crate::natural::NodeQueryFilesystemResponse;
11196 }
11197
11198 pub type NodeUpdateAttributesResponse = ::fidl_next::wire::Unit;
11200
11201 pub type NodeSyncResponse = ::fidl_next::wire::Unit;
11203
11204 #[derive(Clone, Copy, Debug)]
11206 #[repr(transparent)]
11207 pub struct ModeType {
11208 pub(crate) value: ::fidl_next::wire::Uint32,
11209 }
11210
11211 impl ::fidl_next::Constrained for ModeType {
11212 type Constraint = ();
11213
11214 fn validate(
11215 _: ::fidl_next::Slot<'_, Self>,
11216 _: Self::Constraint,
11217 ) -> Result<(), ::fidl_next::ValidationError> {
11218 Ok(())
11219 }
11220 }
11221
11222 unsafe impl ::fidl_next::Wire for ModeType {
11223 type Narrowed<'de> = Self;
11224
11225 #[inline]
11226 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
11227 }
11229 }
11230
11231 unsafe impl<___D> ::fidl_next::Decode<___D> for ModeType
11232 where
11233 ___D: ?Sized,
11234 {
11235 fn decode(
11236 slot: ::fidl_next::Slot<'_, Self>,
11237 _: &mut ___D,
11238 _: (),
11239 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11240 ::fidl_next::munge!(let Self { value } = slot);
11241 let set = u32::from(*value);
11242 if set & !crate::natural::ModeType::all().bits() != 0 {
11243 return Err(::fidl_next::DecodeError::InvalidBits {
11244 expected: crate::natural::ModeType::all().bits() as usize,
11245 actual: set as usize,
11246 });
11247 }
11248
11249 Ok(())
11250 }
11251 }
11252
11253 impl ::core::convert::From<crate::natural::ModeType> for ModeType {
11254 fn from(natural: crate::natural::ModeType) -> Self {
11255 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
11256 }
11257 }
11258
11259 impl ::fidl_next::IntoNatural for ModeType {
11260 type Natural = crate::natural::ModeType;
11261 }
11262
11263 pub type Path<'de> = ::fidl_next::wire::String<'de>;
11265
11266 #[derive(Clone, Debug)]
11268 #[repr(C)]
11269 pub struct DirectoryReadDirentsRequest {
11270 pub max_bytes: ::fidl_next::wire::Uint64,
11271 }
11272
11273 static_assertions::const_assert_eq!(std::mem::size_of::<DirectoryReadDirentsRequest>(), 8);
11274 static_assertions::const_assert_eq!(std::mem::align_of::<DirectoryReadDirentsRequest>(), 8);
11275
11276 static_assertions::const_assert_eq!(
11277 std::mem::offset_of!(DirectoryReadDirentsRequest, max_bytes),
11278 0
11279 );
11280
11281 impl ::fidl_next::Constrained for DirectoryReadDirentsRequest {
11282 type Constraint = ();
11283
11284 fn validate(
11285 _: ::fidl_next::Slot<'_, Self>,
11286 _: Self::Constraint,
11287 ) -> Result<(), ::fidl_next::ValidationError> {
11288 Ok(())
11289 }
11290 }
11291
11292 unsafe impl ::fidl_next::Wire for DirectoryReadDirentsRequest {
11293 type Narrowed<'de> = DirectoryReadDirentsRequest;
11294
11295 #[inline]
11296 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11297 ::fidl_next::munge! {
11298 let Self {
11299 max_bytes,
11300
11301 } = &mut *out_;
11302 }
11303
11304 ::fidl_next::Wire::zero_padding(max_bytes);
11305 }
11306 }
11307
11308 unsafe impl<___D> ::fidl_next::Decode<___D> for DirectoryReadDirentsRequest
11309 where
11310 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11311 {
11312 fn decode(
11313 slot_: ::fidl_next::Slot<'_, Self>,
11314 decoder_: &mut ___D,
11315 _: (),
11316 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11317 ::fidl_next::munge! {
11318 let Self {
11319 mut max_bytes,
11320
11321 } = slot_;
11322 }
11323
11324 let _field = max_bytes.as_mut();
11325
11326 ::fidl_next::Decode::decode(max_bytes.as_mut(), decoder_, ())?;
11327
11328 Ok(())
11329 }
11330 }
11331
11332 impl ::fidl_next::IntoNatural for DirectoryReadDirentsRequest {
11333 type Natural = crate::natural::DirectoryReadDirentsRequest;
11334 }
11335
11336 #[derive(Debug)]
11338 #[repr(C)]
11339 pub struct DirectoryReadDirentsResponse<'de> {
11340 pub s: ::fidl_next::wire::fuchsia::Status,
11341
11342 pub dirents: ::fidl_next::wire::Vector<'de, u8>,
11343 }
11344
11345 static_assertions::const_assert_eq!(
11346 std::mem::size_of::<DirectoryReadDirentsResponse<'_>>(),
11347 24
11348 );
11349 static_assertions::const_assert_eq!(
11350 std::mem::align_of::<DirectoryReadDirentsResponse<'_>>(),
11351 8
11352 );
11353
11354 static_assertions::const_assert_eq!(
11355 std::mem::offset_of!(DirectoryReadDirentsResponse<'_>, s),
11356 0
11357 );
11358
11359 static_assertions::const_assert_eq!(
11360 std::mem::offset_of!(DirectoryReadDirentsResponse<'_>, dirents),
11361 8
11362 );
11363
11364 impl ::fidl_next::Constrained for DirectoryReadDirentsResponse<'_> {
11365 type Constraint = ();
11366
11367 fn validate(
11368 _: ::fidl_next::Slot<'_, Self>,
11369 _: Self::Constraint,
11370 ) -> Result<(), ::fidl_next::ValidationError> {
11371 Ok(())
11372 }
11373 }
11374
11375 unsafe impl ::fidl_next::Wire for DirectoryReadDirentsResponse<'static> {
11376 type Narrowed<'de> = DirectoryReadDirentsResponse<'de>;
11377
11378 #[inline]
11379 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11380 ::fidl_next::munge! {
11381 let Self {
11382 s,
11383 dirents,
11384
11385 } = &mut *out_;
11386 }
11387
11388 ::fidl_next::Wire::zero_padding(s);
11389
11390 ::fidl_next::Wire::zero_padding(dirents);
11391
11392 unsafe {
11393 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
11394 }
11395 }
11396 }
11397
11398 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DirectoryReadDirentsResponse<'de>
11399 where
11400 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11401 ___D: ::fidl_next::Decoder<'de>,
11402 {
11403 fn decode(
11404 slot_: ::fidl_next::Slot<'_, Self>,
11405 decoder_: &mut ___D,
11406 _: (),
11407 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11408 if slot_.as_bytes()[4..8] != [0u8; 4] {
11409 return Err(::fidl_next::DecodeError::InvalidPadding);
11410 }
11411
11412 ::fidl_next::munge! {
11413 let Self {
11414 mut s,
11415 mut dirents,
11416
11417 } = slot_;
11418 }
11419
11420 let _field = s.as_mut();
11421
11422 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
11423
11424 let _field = dirents.as_mut();
11425 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
11426 ::fidl_next::Decode::decode(dirents.as_mut(), decoder_, (8192, ()))?;
11427
11428 let dirents = unsafe { dirents.deref_unchecked() };
11429
11430 if dirents.len() > 8192 {
11431 return Err(::fidl_next::DecodeError::VectorTooLong {
11432 size: dirents.len() as u64,
11433 limit: 8192,
11434 });
11435 }
11436
11437 Ok(())
11438 }
11439 }
11440
11441 impl<'de> ::fidl_next::IntoNatural for DirectoryReadDirentsResponse<'de> {
11442 type Natural = crate::natural::DirectoryReadDirentsResponse;
11443 }
11444
11445 #[derive(Clone, Debug)]
11447 #[repr(C)]
11448 pub struct DirectoryRewindResponse {
11449 pub s: ::fidl_next::wire::fuchsia::Status,
11450 }
11451
11452 static_assertions::const_assert_eq!(std::mem::size_of::<DirectoryRewindResponse>(), 4);
11453 static_assertions::const_assert_eq!(std::mem::align_of::<DirectoryRewindResponse>(), 4);
11454
11455 static_assertions::const_assert_eq!(std::mem::offset_of!(DirectoryRewindResponse, s), 0);
11456
11457 impl ::fidl_next::Constrained for DirectoryRewindResponse {
11458 type Constraint = ();
11459
11460 fn validate(
11461 _: ::fidl_next::Slot<'_, Self>,
11462 _: Self::Constraint,
11463 ) -> Result<(), ::fidl_next::ValidationError> {
11464 Ok(())
11465 }
11466 }
11467
11468 unsafe impl ::fidl_next::Wire for DirectoryRewindResponse {
11469 type Narrowed<'de> = DirectoryRewindResponse;
11470
11471 #[inline]
11472 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11473 ::fidl_next::munge! {
11474 let Self {
11475 s,
11476
11477 } = &mut *out_;
11478 }
11479
11480 ::fidl_next::Wire::zero_padding(s);
11481 }
11482 }
11483
11484 unsafe impl<___D> ::fidl_next::Decode<___D> for DirectoryRewindResponse
11485 where
11486 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11487 {
11488 fn decode(
11489 slot_: ::fidl_next::Slot<'_, Self>,
11490 decoder_: &mut ___D,
11491 _: (),
11492 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11493 ::fidl_next::munge! {
11494 let Self {
11495 mut s,
11496
11497 } = slot_;
11498 }
11499
11500 let _field = s.as_mut();
11501
11502 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
11503
11504 Ok(())
11505 }
11506 }
11507
11508 impl ::fidl_next::IntoNatural for DirectoryRewindResponse {
11509 type Natural = crate::natural::DirectoryRewindResponse;
11510 }
11511
11512 pub type Name<'de> = ::fidl_next::wire::String<'de>;
11514
11515 #[derive(Clone, Debug)]
11517 #[repr(C)]
11518 pub struct DirectoryLinkResponse {
11519 pub s: ::fidl_next::wire::fuchsia::Status,
11520 }
11521
11522 static_assertions::const_assert_eq!(std::mem::size_of::<DirectoryLinkResponse>(), 4);
11523 static_assertions::const_assert_eq!(std::mem::align_of::<DirectoryLinkResponse>(), 4);
11524
11525 static_assertions::const_assert_eq!(std::mem::offset_of!(DirectoryLinkResponse, s), 0);
11526
11527 impl ::fidl_next::Constrained for DirectoryLinkResponse {
11528 type Constraint = ();
11529
11530 fn validate(
11531 _: ::fidl_next::Slot<'_, Self>,
11532 _: Self::Constraint,
11533 ) -> Result<(), ::fidl_next::ValidationError> {
11534 Ok(())
11535 }
11536 }
11537
11538 unsafe impl ::fidl_next::Wire for DirectoryLinkResponse {
11539 type Narrowed<'de> = DirectoryLinkResponse;
11540
11541 #[inline]
11542 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11543 ::fidl_next::munge! {
11544 let Self {
11545 s,
11546
11547 } = &mut *out_;
11548 }
11549
11550 ::fidl_next::Wire::zero_padding(s);
11551 }
11552 }
11553
11554 unsafe impl<___D> ::fidl_next::Decode<___D> for DirectoryLinkResponse
11555 where
11556 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11557 {
11558 fn decode(
11559 slot_: ::fidl_next::Slot<'_, Self>,
11560 decoder_: &mut ___D,
11561 _: (),
11562 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11563 ::fidl_next::munge! {
11564 let Self {
11565 mut s,
11566
11567 } = slot_;
11568 }
11569
11570 let _field = s.as_mut();
11571
11572 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
11573
11574 Ok(())
11575 }
11576 }
11577
11578 impl ::fidl_next::IntoNatural for DirectoryLinkResponse {
11579 type Natural = crate::natural::DirectoryLinkResponse;
11580 }
11581
11582 #[derive(Clone, Copy, Debug)]
11584 #[repr(transparent)]
11585 pub struct UnlinkFlags {
11586 pub(crate) value: ::fidl_next::wire::Uint64,
11587 }
11588
11589 impl ::fidl_next::Constrained for UnlinkFlags {
11590 type Constraint = ();
11591
11592 fn validate(
11593 _: ::fidl_next::Slot<'_, Self>,
11594 _: Self::Constraint,
11595 ) -> Result<(), ::fidl_next::ValidationError> {
11596 Ok(())
11597 }
11598 }
11599
11600 unsafe impl ::fidl_next::Wire for UnlinkFlags {
11601 type Narrowed<'de> = Self;
11602
11603 #[inline]
11604 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
11605 }
11607 }
11608
11609 unsafe impl<___D> ::fidl_next::Decode<___D> for UnlinkFlags
11610 where
11611 ___D: ?Sized,
11612 {
11613 fn decode(
11614 slot: ::fidl_next::Slot<'_, Self>,
11615 _: &mut ___D,
11616 _: (),
11617 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11618 Ok(())
11619 }
11620 }
11621
11622 impl ::core::convert::From<crate::natural::UnlinkFlags> for UnlinkFlags {
11623 fn from(natural: crate::natural::UnlinkFlags) -> Self {
11624 Self { value: ::fidl_next::wire::Uint64::from(natural.bits()) }
11625 }
11626 }
11627
11628 impl ::fidl_next::IntoNatural for UnlinkFlags {
11629 type Natural = crate::natural::UnlinkFlags;
11630 }
11631
11632 #[repr(C)]
11634 pub struct UnlinkOptions<'de> {
11635 pub(crate) table: ::fidl_next::wire::Table<'de>,
11636 }
11637
11638 impl<'de> Drop for UnlinkOptions<'de> {
11639 fn drop(&mut self) {
11640 let _ = self
11641 .table
11642 .get(1)
11643 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::UnlinkFlags>() });
11644 }
11645 }
11646
11647 impl ::fidl_next::Constrained for UnlinkOptions<'_> {
11648 type Constraint = ();
11649
11650 fn validate(
11651 _: ::fidl_next::Slot<'_, Self>,
11652 _: Self::Constraint,
11653 ) -> Result<(), ::fidl_next::ValidationError> {
11654 Ok(())
11655 }
11656 }
11657
11658 unsafe impl ::fidl_next::Wire for UnlinkOptions<'static> {
11659 type Narrowed<'de> = UnlinkOptions<'de>;
11660
11661 #[inline]
11662 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
11663 ::fidl_next::munge!(let Self { table } = out);
11664 ::fidl_next::wire::Table::zero_padding(table);
11665 }
11666 }
11667
11668 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UnlinkOptions<'de>
11669 where
11670 ___D: ::fidl_next::Decoder<'de> + ?Sized,
11671 {
11672 fn decode(
11673 slot: ::fidl_next::Slot<'_, Self>,
11674 decoder: &mut ___D,
11675 _: (),
11676 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11677 ::fidl_next::munge!(let Self { table } = slot);
11678
11679 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
11680 match ordinal {
11681 0 => unsafe { ::core::hint::unreachable_unchecked() },
11682
11683 1 => {
11684 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::UnlinkFlags>(
11685 slot.as_mut(),
11686 decoder,
11687 (),
11688 )?;
11689
11690 Ok(())
11691 }
11692
11693 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
11694 }
11695 })
11696 }
11697 }
11698
11699 impl<'de> UnlinkOptions<'de> {
11700 pub fn flags(&self) -> ::core::option::Option<&crate::wire::UnlinkFlags> {
11701 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
11702 }
11703
11704 pub fn take_flags(&mut self) -> ::core::option::Option<crate::wire::UnlinkFlags> {
11705 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
11706 }
11707 }
11708
11709 impl<'de> ::core::fmt::Debug for UnlinkOptions<'de> {
11710 fn fmt(
11711 &self,
11712 f: &mut ::core::fmt::Formatter<'_>,
11713 ) -> ::core::result::Result<(), ::core::fmt::Error> {
11714 f.debug_struct("UnlinkOptions").field("flags", &self.flags()).finish()
11715 }
11716 }
11717
11718 impl<'de> ::fidl_next::IntoNatural for UnlinkOptions<'de> {
11719 type Natural = crate::natural::UnlinkOptions;
11720 }
11721
11722 #[derive(Debug)]
11724 #[repr(C)]
11725 pub struct DirectoryUnlinkRequest<'de> {
11726 pub name: ::fidl_next::wire::String<'de>,
11727
11728 pub options: crate::wire::UnlinkOptions<'de>,
11729 }
11730
11731 static_assertions::const_assert_eq!(std::mem::size_of::<DirectoryUnlinkRequest<'_>>(), 32);
11732 static_assertions::const_assert_eq!(std::mem::align_of::<DirectoryUnlinkRequest<'_>>(), 8);
11733
11734 static_assertions::const_assert_eq!(std::mem::offset_of!(DirectoryUnlinkRequest<'_>, name), 0);
11735
11736 static_assertions::const_assert_eq!(
11737 std::mem::offset_of!(DirectoryUnlinkRequest<'_>, options),
11738 16
11739 );
11740
11741 impl ::fidl_next::Constrained for DirectoryUnlinkRequest<'_> {
11742 type Constraint = ();
11743
11744 fn validate(
11745 _: ::fidl_next::Slot<'_, Self>,
11746 _: Self::Constraint,
11747 ) -> Result<(), ::fidl_next::ValidationError> {
11748 Ok(())
11749 }
11750 }
11751
11752 unsafe impl ::fidl_next::Wire for DirectoryUnlinkRequest<'static> {
11753 type Narrowed<'de> = DirectoryUnlinkRequest<'de>;
11754
11755 #[inline]
11756 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11757 ::fidl_next::munge! {
11758 let Self {
11759 name,
11760 options,
11761
11762 } = &mut *out_;
11763 }
11764
11765 ::fidl_next::Wire::zero_padding(name);
11766
11767 ::fidl_next::Wire::zero_padding(options);
11768 }
11769 }
11770
11771 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DirectoryUnlinkRequest<'de>
11772 where
11773 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11774 ___D: ::fidl_next::Decoder<'de>,
11775 {
11776 fn decode(
11777 slot_: ::fidl_next::Slot<'_, Self>,
11778 decoder_: &mut ___D,
11779 _: (),
11780 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11781 ::fidl_next::munge! {
11782 let Self {
11783 mut name,
11784 mut options,
11785
11786 } = slot_;
11787 }
11788
11789 let _field = name.as_mut();
11790 ::fidl_next::Constrained::validate(_field, 255)?;
11791 ::fidl_next::Decode::decode(name.as_mut(), decoder_, 255)?;
11792
11793 let name = unsafe { name.deref_unchecked() };
11794
11795 if name.len() > 255 {
11796 return Err(::fidl_next::DecodeError::VectorTooLong {
11797 size: name.len() as u64,
11798 limit: 255,
11799 });
11800 }
11801
11802 let _field = options.as_mut();
11803
11804 ::fidl_next::Decode::decode(options.as_mut(), decoder_, ())?;
11805
11806 Ok(())
11807 }
11808 }
11809
11810 impl<'de> ::fidl_next::IntoNatural for DirectoryUnlinkRequest<'de> {
11811 type Natural = crate::natural::DirectoryUnlinkRequest;
11812 }
11813
11814 pub type DirectoryUnlinkResponse = ::fidl_next::wire::Unit;
11816
11817 pub type DirectoryRenameResponse = ::fidl_next::wire::Unit;
11819
11820 #[derive(Clone, Copy, Debug)]
11822 #[repr(transparent)]
11823 pub struct WatchMask {
11824 pub(crate) value: ::fidl_next::wire::Uint32,
11825 }
11826
11827 impl ::fidl_next::Constrained for WatchMask {
11828 type Constraint = ();
11829
11830 fn validate(
11831 _: ::fidl_next::Slot<'_, Self>,
11832 _: Self::Constraint,
11833 ) -> Result<(), ::fidl_next::ValidationError> {
11834 Ok(())
11835 }
11836 }
11837
11838 unsafe impl ::fidl_next::Wire for WatchMask {
11839 type Narrowed<'de> = Self;
11840
11841 #[inline]
11842 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
11843 }
11845 }
11846
11847 unsafe impl<___D> ::fidl_next::Decode<___D> for WatchMask
11848 where
11849 ___D: ?Sized,
11850 {
11851 fn decode(
11852 slot: ::fidl_next::Slot<'_, Self>,
11853 _: &mut ___D,
11854 _: (),
11855 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11856 ::fidl_next::munge!(let Self { value } = slot);
11857 let set = u32::from(*value);
11858 if set & !crate::natural::WatchMask::all().bits() != 0 {
11859 return Err(::fidl_next::DecodeError::InvalidBits {
11860 expected: crate::natural::WatchMask::all().bits() as usize,
11861 actual: set as usize,
11862 });
11863 }
11864
11865 Ok(())
11866 }
11867 }
11868
11869 impl ::core::convert::From<crate::natural::WatchMask> for WatchMask {
11870 fn from(natural: crate::natural::WatchMask) -> Self {
11871 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
11872 }
11873 }
11874
11875 impl ::fidl_next::IntoNatural for WatchMask {
11876 type Natural = crate::natural::WatchMask;
11877 }
11878
11879 #[derive(Clone, Debug)]
11881 #[repr(C)]
11882 pub struct DirectoryWatchResponse {
11883 pub s: ::fidl_next::wire::fuchsia::Status,
11884 }
11885
11886 static_assertions::const_assert_eq!(std::mem::size_of::<DirectoryWatchResponse>(), 4);
11887 static_assertions::const_assert_eq!(std::mem::align_of::<DirectoryWatchResponse>(), 4);
11888
11889 static_assertions::const_assert_eq!(std::mem::offset_of!(DirectoryWatchResponse, s), 0);
11890
11891 impl ::fidl_next::Constrained for DirectoryWatchResponse {
11892 type Constraint = ();
11893
11894 fn validate(
11895 _: ::fidl_next::Slot<'_, Self>,
11896 _: Self::Constraint,
11897 ) -> Result<(), ::fidl_next::ValidationError> {
11898 Ok(())
11899 }
11900 }
11901
11902 unsafe impl ::fidl_next::Wire for DirectoryWatchResponse {
11903 type Narrowed<'de> = DirectoryWatchResponse;
11904
11905 #[inline]
11906 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11907 ::fidl_next::munge! {
11908 let Self {
11909 s,
11910
11911 } = &mut *out_;
11912 }
11913
11914 ::fidl_next::Wire::zero_padding(s);
11915 }
11916 }
11917
11918 unsafe impl<___D> ::fidl_next::Decode<___D> for DirectoryWatchResponse
11919 where
11920 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
11921 {
11922 fn decode(
11923 slot_: ::fidl_next::Slot<'_, Self>,
11924 decoder_: &mut ___D,
11925 _: (),
11926 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
11927 ::fidl_next::munge! {
11928 let Self {
11929 mut s,
11930
11931 } = slot_;
11932 }
11933
11934 let _field = s.as_mut();
11935
11936 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
11937
11938 Ok(())
11939 }
11940 }
11941
11942 impl ::fidl_next::IntoNatural for DirectoryWatchResponse {
11943 type Natural = crate::natural::DirectoryWatchResponse;
11944 }
11945
11946 pub type SymlinkTarget<'de> = ::fidl_next::wire::Vector<'de, u8>;
11948
11949 pub type ExtendedAttributeName<'de> = ::fidl_next::wire::Vector<'de, u8>;
11951
11952 #[derive(Debug)]
11954 #[repr(C)]
11955 pub struct NodeGetExtendedAttributeRequest<'de> {
11956 pub name: ::fidl_next::wire::Vector<'de, u8>,
11957 }
11958
11959 static_assertions::const_assert_eq!(
11960 std::mem::size_of::<NodeGetExtendedAttributeRequest<'_>>(),
11961 16
11962 );
11963 static_assertions::const_assert_eq!(
11964 std::mem::align_of::<NodeGetExtendedAttributeRequest<'_>>(),
11965 8
11966 );
11967
11968 static_assertions::const_assert_eq!(
11969 std::mem::offset_of!(NodeGetExtendedAttributeRequest<'_>, name),
11970 0
11971 );
11972
11973 impl ::fidl_next::Constrained for NodeGetExtendedAttributeRequest<'_> {
11974 type Constraint = ();
11975
11976 fn validate(
11977 _: ::fidl_next::Slot<'_, Self>,
11978 _: Self::Constraint,
11979 ) -> Result<(), ::fidl_next::ValidationError> {
11980 Ok(())
11981 }
11982 }
11983
11984 unsafe impl ::fidl_next::Wire for NodeGetExtendedAttributeRequest<'static> {
11985 type Narrowed<'de> = NodeGetExtendedAttributeRequest<'de>;
11986
11987 #[inline]
11988 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
11989 ::fidl_next::munge! {
11990 let Self {
11991 name,
11992
11993 } = &mut *out_;
11994 }
11995
11996 ::fidl_next::Wire::zero_padding(name);
11997 }
11998 }
11999
12000 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for NodeGetExtendedAttributeRequest<'de>
12001 where
12002 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12003 ___D: ::fidl_next::Decoder<'de>,
12004 {
12005 fn decode(
12006 slot_: ::fidl_next::Slot<'_, Self>,
12007 decoder_: &mut ___D,
12008 _: (),
12009 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12010 ::fidl_next::munge! {
12011 let Self {
12012 mut name,
12013
12014 } = slot_;
12015 }
12016
12017 let _field = name.as_mut();
12018 ::fidl_next::Constrained::validate(_field, (255, ()))?;
12019 ::fidl_next::Decode::decode(name.as_mut(), decoder_, (255, ()))?;
12020
12021 let name = unsafe { name.deref_unchecked() };
12022
12023 if name.len() > 255 {
12024 return Err(::fidl_next::DecodeError::VectorTooLong {
12025 size: name.len() as u64,
12026 limit: 255,
12027 });
12028 }
12029
12030 Ok(())
12031 }
12032 }
12033
12034 impl<'de> ::fidl_next::IntoNatural for NodeGetExtendedAttributeRequest<'de> {
12035 type Natural = crate::natural::NodeGetExtendedAttributeRequest;
12036 }
12037
12038 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
12040 #[repr(transparent)]
12041 pub struct SetExtendedAttributeMode {
12042 pub(crate) value: ::fidl_next::wire::Uint32,
12043 }
12044
12045 impl ::fidl_next::Constrained for SetExtendedAttributeMode {
12046 type Constraint = ();
12047
12048 fn validate(
12049 _: ::fidl_next::Slot<'_, Self>,
12050 _: Self::Constraint,
12051 ) -> Result<(), ::fidl_next::ValidationError> {
12052 Ok(())
12053 }
12054 }
12055
12056 unsafe impl ::fidl_next::Wire for SetExtendedAttributeMode {
12057 type Narrowed<'de> = Self;
12058
12059 #[inline]
12060 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
12061 }
12063 }
12064
12065 impl SetExtendedAttributeMode {
12066 pub const SET: SetExtendedAttributeMode =
12067 SetExtendedAttributeMode { value: ::fidl_next::wire::Uint32(1) };
12068
12069 pub const CREATE: SetExtendedAttributeMode =
12070 SetExtendedAttributeMode { value: ::fidl_next::wire::Uint32(2) };
12071
12072 pub const REPLACE: SetExtendedAttributeMode =
12073 SetExtendedAttributeMode { value: ::fidl_next::wire::Uint32(3) };
12074 }
12075
12076 unsafe impl<___D> ::fidl_next::Decode<___D> for SetExtendedAttributeMode
12077 where
12078 ___D: ?Sized,
12079 {
12080 fn decode(
12081 slot: ::fidl_next::Slot<'_, Self>,
12082 _: &mut ___D,
12083 _: (),
12084 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12085 ::fidl_next::munge!(let Self { value } = slot);
12086
12087 match u32::from(*value) {
12088 1 | 2 | 3 => (),
12089 unknown => {
12090 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
12091 }
12092 }
12093
12094 Ok(())
12095 }
12096 }
12097
12098 impl ::core::convert::From<crate::natural::SetExtendedAttributeMode> for SetExtendedAttributeMode {
12099 fn from(natural: crate::natural::SetExtendedAttributeMode) -> Self {
12100 match natural {
12101 crate::natural::SetExtendedAttributeMode::Set => SetExtendedAttributeMode::SET,
12102
12103 crate::natural::SetExtendedAttributeMode::Create => {
12104 SetExtendedAttributeMode::CREATE
12105 }
12106
12107 crate::natural::SetExtendedAttributeMode::Replace => {
12108 SetExtendedAttributeMode::REPLACE
12109 }
12110 }
12111 }
12112 }
12113
12114 impl ::fidl_next::IntoNatural for SetExtendedAttributeMode {
12115 type Natural = crate::natural::SetExtendedAttributeMode;
12116 }
12117
12118 pub type NodeSetExtendedAttributeResponse = ::fidl_next::wire::Unit;
12120
12121 #[derive(Debug)]
12123 #[repr(C)]
12124 pub struct NodeRemoveExtendedAttributeRequest<'de> {
12125 pub name: ::fidl_next::wire::Vector<'de, u8>,
12126 }
12127
12128 static_assertions::const_assert_eq!(
12129 std::mem::size_of::<NodeRemoveExtendedAttributeRequest<'_>>(),
12130 16
12131 );
12132 static_assertions::const_assert_eq!(
12133 std::mem::align_of::<NodeRemoveExtendedAttributeRequest<'_>>(),
12134 8
12135 );
12136
12137 static_assertions::const_assert_eq!(
12138 std::mem::offset_of!(NodeRemoveExtendedAttributeRequest<'_>, name),
12139 0
12140 );
12141
12142 impl ::fidl_next::Constrained for NodeRemoveExtendedAttributeRequest<'_> {
12143 type Constraint = ();
12144
12145 fn validate(
12146 _: ::fidl_next::Slot<'_, Self>,
12147 _: Self::Constraint,
12148 ) -> Result<(), ::fidl_next::ValidationError> {
12149 Ok(())
12150 }
12151 }
12152
12153 unsafe impl ::fidl_next::Wire for NodeRemoveExtendedAttributeRequest<'static> {
12154 type Narrowed<'de> = NodeRemoveExtendedAttributeRequest<'de>;
12155
12156 #[inline]
12157 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12158 ::fidl_next::munge! {
12159 let Self {
12160 name,
12161
12162 } = &mut *out_;
12163 }
12164
12165 ::fidl_next::Wire::zero_padding(name);
12166 }
12167 }
12168
12169 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for NodeRemoveExtendedAttributeRequest<'de>
12170 where
12171 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12172 ___D: ::fidl_next::Decoder<'de>,
12173 {
12174 fn decode(
12175 slot_: ::fidl_next::Slot<'_, Self>,
12176 decoder_: &mut ___D,
12177 _: (),
12178 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12179 ::fidl_next::munge! {
12180 let Self {
12181 mut name,
12182
12183 } = slot_;
12184 }
12185
12186 let _field = name.as_mut();
12187 ::fidl_next::Constrained::validate(_field, (255, ()))?;
12188 ::fidl_next::Decode::decode(name.as_mut(), decoder_, (255, ()))?;
12189
12190 let name = unsafe { name.deref_unchecked() };
12191
12192 if name.len() > 255 {
12193 return Err(::fidl_next::DecodeError::VectorTooLong {
12194 size: name.len() as u64,
12195 limit: 255,
12196 });
12197 }
12198
12199 Ok(())
12200 }
12201 }
12202
12203 impl<'de> ::fidl_next::IntoNatural for NodeRemoveExtendedAttributeRequest<'de> {
12204 type Natural = crate::natural::NodeRemoveExtendedAttributeRequest;
12205 }
12206
12207 pub type NodeRemoveExtendedAttributeResponse = ::fidl_next::wire::Unit;
12209
12210 pub type DirectoryCreateSymlinkResponse = ::fidl_next::wire::Unit;
12212
12213 pub type NodeSetFlagsResponse = ::fidl_next::wire::Unit;
12215
12216 #[derive(Clone, Debug)]
12218 #[repr(C)]
12219 pub struct NodeDeprecatedGetAttrResponse {
12220 pub s: ::fidl_next::wire::fuchsia::Status,
12221
12222 pub attributes: crate::wire::NodeAttributes,
12223 }
12224
12225 static_assertions::const_assert_eq!(std::mem::size_of::<NodeDeprecatedGetAttrResponse>(), 64);
12226 static_assertions::const_assert_eq!(std::mem::align_of::<NodeDeprecatedGetAttrResponse>(), 8);
12227
12228 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeDeprecatedGetAttrResponse, s), 0);
12229
12230 static_assertions::const_assert_eq!(
12231 std::mem::offset_of!(NodeDeprecatedGetAttrResponse, attributes),
12232 8
12233 );
12234
12235 impl ::fidl_next::Constrained for NodeDeprecatedGetAttrResponse {
12236 type Constraint = ();
12237
12238 fn validate(
12239 _: ::fidl_next::Slot<'_, Self>,
12240 _: Self::Constraint,
12241 ) -> Result<(), ::fidl_next::ValidationError> {
12242 Ok(())
12243 }
12244 }
12245
12246 unsafe impl ::fidl_next::Wire for NodeDeprecatedGetAttrResponse {
12247 type Narrowed<'de> = NodeDeprecatedGetAttrResponse;
12248
12249 #[inline]
12250 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12251 ::fidl_next::munge! {
12252 let Self {
12253 s,
12254 attributes,
12255
12256 } = &mut *out_;
12257 }
12258
12259 ::fidl_next::Wire::zero_padding(s);
12260
12261 ::fidl_next::Wire::zero_padding(attributes);
12262
12263 unsafe {
12264 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
12265 }
12266 }
12267 }
12268
12269 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeDeprecatedGetAttrResponse
12270 where
12271 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12272 {
12273 fn decode(
12274 slot_: ::fidl_next::Slot<'_, Self>,
12275 decoder_: &mut ___D,
12276 _: (),
12277 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12278 if slot_.as_bytes()[4..8] != [0u8; 4] {
12279 return Err(::fidl_next::DecodeError::InvalidPadding);
12280 }
12281
12282 ::fidl_next::munge! {
12283 let Self {
12284 mut s,
12285 mut attributes,
12286
12287 } = slot_;
12288 }
12289
12290 let _field = s.as_mut();
12291
12292 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
12293
12294 let _field = attributes.as_mut();
12295
12296 ::fidl_next::Decode::decode(attributes.as_mut(), decoder_, ())?;
12297
12298 Ok(())
12299 }
12300 }
12301
12302 impl ::fidl_next::IntoNatural for NodeDeprecatedGetAttrResponse {
12303 type Natural = crate::natural::NodeDeprecatedGetAttrResponse;
12304 }
12305
12306 #[derive(Clone, Debug)]
12308 #[repr(C)]
12309 pub struct NodeDeprecatedSetAttrRequest {
12310 pub flags: crate::wire::NodeAttributeFlags,
12311
12312 pub attributes: crate::wire::NodeAttributes,
12313 }
12314
12315 static_assertions::const_assert_eq!(std::mem::size_of::<NodeDeprecatedSetAttrRequest>(), 64);
12316 static_assertions::const_assert_eq!(std::mem::align_of::<NodeDeprecatedSetAttrRequest>(), 8);
12317
12318 static_assertions::const_assert_eq!(
12319 std::mem::offset_of!(NodeDeprecatedSetAttrRequest, flags),
12320 0
12321 );
12322
12323 static_assertions::const_assert_eq!(
12324 std::mem::offset_of!(NodeDeprecatedSetAttrRequest, attributes),
12325 8
12326 );
12327
12328 impl ::fidl_next::Constrained for NodeDeprecatedSetAttrRequest {
12329 type Constraint = ();
12330
12331 fn validate(
12332 _: ::fidl_next::Slot<'_, Self>,
12333 _: Self::Constraint,
12334 ) -> Result<(), ::fidl_next::ValidationError> {
12335 Ok(())
12336 }
12337 }
12338
12339 unsafe impl ::fidl_next::Wire for NodeDeprecatedSetAttrRequest {
12340 type Narrowed<'de> = NodeDeprecatedSetAttrRequest;
12341
12342 #[inline]
12343 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12344 ::fidl_next::munge! {
12345 let Self {
12346 flags,
12347 attributes,
12348
12349 } = &mut *out_;
12350 }
12351
12352 ::fidl_next::Wire::zero_padding(flags);
12353
12354 ::fidl_next::Wire::zero_padding(attributes);
12355
12356 unsafe {
12357 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
12358 }
12359 }
12360 }
12361
12362 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeDeprecatedSetAttrRequest
12363 where
12364 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12365 {
12366 fn decode(
12367 slot_: ::fidl_next::Slot<'_, Self>,
12368 decoder_: &mut ___D,
12369 _: (),
12370 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12371 if slot_.as_bytes()[4..8] != [0u8; 4] {
12372 return Err(::fidl_next::DecodeError::InvalidPadding);
12373 }
12374
12375 ::fidl_next::munge! {
12376 let Self {
12377 mut flags,
12378 mut attributes,
12379
12380 } = slot_;
12381 }
12382
12383 let _field = flags.as_mut();
12384
12385 ::fidl_next::Decode::decode(flags.as_mut(), decoder_, ())?;
12386
12387 let _field = attributes.as_mut();
12388
12389 ::fidl_next::Decode::decode(attributes.as_mut(), decoder_, ())?;
12390
12391 Ok(())
12392 }
12393 }
12394
12395 impl ::fidl_next::IntoNatural for NodeDeprecatedSetAttrRequest {
12396 type Natural = crate::natural::NodeDeprecatedSetAttrRequest;
12397 }
12398
12399 #[derive(Clone, Debug)]
12401 #[repr(C)]
12402 pub struct NodeDeprecatedSetAttrResponse {
12403 pub s: ::fidl_next::wire::fuchsia::Status,
12404 }
12405
12406 static_assertions::const_assert_eq!(std::mem::size_of::<NodeDeprecatedSetAttrResponse>(), 4);
12407 static_assertions::const_assert_eq!(std::mem::align_of::<NodeDeprecatedSetAttrResponse>(), 4);
12408
12409 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeDeprecatedSetAttrResponse, s), 0);
12410
12411 impl ::fidl_next::Constrained for NodeDeprecatedSetAttrResponse {
12412 type Constraint = ();
12413
12414 fn validate(
12415 _: ::fidl_next::Slot<'_, Self>,
12416 _: Self::Constraint,
12417 ) -> Result<(), ::fidl_next::ValidationError> {
12418 Ok(())
12419 }
12420 }
12421
12422 unsafe impl ::fidl_next::Wire for NodeDeprecatedSetAttrResponse {
12423 type Narrowed<'de> = NodeDeprecatedSetAttrResponse;
12424
12425 #[inline]
12426 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12427 ::fidl_next::munge! {
12428 let Self {
12429 s,
12430
12431 } = &mut *out_;
12432 }
12433
12434 ::fidl_next::Wire::zero_padding(s);
12435 }
12436 }
12437
12438 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeDeprecatedSetAttrResponse
12439 where
12440 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12441 {
12442 fn decode(
12443 slot_: ::fidl_next::Slot<'_, Self>,
12444 decoder_: &mut ___D,
12445 _: (),
12446 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12447 ::fidl_next::munge! {
12448 let Self {
12449 mut s,
12450
12451 } = slot_;
12452 }
12453
12454 let _field = s.as_mut();
12455
12456 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
12457
12458 Ok(())
12459 }
12460 }
12461
12462 impl ::fidl_next::IntoNatural for NodeDeprecatedSetAttrResponse {
12463 type Natural = crate::natural::NodeDeprecatedSetAttrResponse;
12464 }
12465
12466 #[derive(Clone, Debug)]
12468 #[repr(C)]
12469 pub struct NodeDeprecatedGetFlagsResponse {
12470 pub s: ::fidl_next::wire::fuchsia::Status,
12471
12472 pub flags: crate::wire::OpenFlags,
12473 }
12474
12475 static_assertions::const_assert_eq!(std::mem::size_of::<NodeDeprecatedGetFlagsResponse>(), 8);
12476 static_assertions::const_assert_eq!(std::mem::align_of::<NodeDeprecatedGetFlagsResponse>(), 4);
12477
12478 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeDeprecatedGetFlagsResponse, s), 0);
12479
12480 static_assertions::const_assert_eq!(
12481 std::mem::offset_of!(NodeDeprecatedGetFlagsResponse, flags),
12482 4
12483 );
12484
12485 impl ::fidl_next::Constrained for NodeDeprecatedGetFlagsResponse {
12486 type Constraint = ();
12487
12488 fn validate(
12489 _: ::fidl_next::Slot<'_, Self>,
12490 _: Self::Constraint,
12491 ) -> Result<(), ::fidl_next::ValidationError> {
12492 Ok(())
12493 }
12494 }
12495
12496 unsafe impl ::fidl_next::Wire for NodeDeprecatedGetFlagsResponse {
12497 type Narrowed<'de> = NodeDeprecatedGetFlagsResponse;
12498
12499 #[inline]
12500 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12501 ::fidl_next::munge! {
12502 let Self {
12503 s,
12504 flags,
12505
12506 } = &mut *out_;
12507 }
12508
12509 ::fidl_next::Wire::zero_padding(s);
12510
12511 ::fidl_next::Wire::zero_padding(flags);
12512 }
12513 }
12514
12515 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeDeprecatedGetFlagsResponse
12516 where
12517 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12518 {
12519 fn decode(
12520 slot_: ::fidl_next::Slot<'_, Self>,
12521 decoder_: &mut ___D,
12522 _: (),
12523 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12524 ::fidl_next::munge! {
12525 let Self {
12526 mut s,
12527 mut flags,
12528
12529 } = slot_;
12530 }
12531
12532 let _field = s.as_mut();
12533
12534 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
12535
12536 let _field = flags.as_mut();
12537
12538 ::fidl_next::Decode::decode(flags.as_mut(), decoder_, ())?;
12539
12540 Ok(())
12541 }
12542 }
12543
12544 impl ::fidl_next::IntoNatural for NodeDeprecatedGetFlagsResponse {
12545 type Natural = crate::natural::NodeDeprecatedGetFlagsResponse;
12546 }
12547
12548 #[derive(Clone, Debug)]
12550 #[repr(C)]
12551 pub struct NodeDeprecatedSetFlagsRequest {
12552 pub flags: crate::wire::OpenFlags,
12553 }
12554
12555 static_assertions::const_assert_eq!(std::mem::size_of::<NodeDeprecatedSetFlagsRequest>(), 4);
12556 static_assertions::const_assert_eq!(std::mem::align_of::<NodeDeprecatedSetFlagsRequest>(), 4);
12557
12558 static_assertions::const_assert_eq!(
12559 std::mem::offset_of!(NodeDeprecatedSetFlagsRequest, flags),
12560 0
12561 );
12562
12563 impl ::fidl_next::Constrained for NodeDeprecatedSetFlagsRequest {
12564 type Constraint = ();
12565
12566 fn validate(
12567 _: ::fidl_next::Slot<'_, Self>,
12568 _: Self::Constraint,
12569 ) -> Result<(), ::fidl_next::ValidationError> {
12570 Ok(())
12571 }
12572 }
12573
12574 unsafe impl ::fidl_next::Wire for NodeDeprecatedSetFlagsRequest {
12575 type Narrowed<'de> = NodeDeprecatedSetFlagsRequest;
12576
12577 #[inline]
12578 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12579 ::fidl_next::munge! {
12580 let Self {
12581 flags,
12582
12583 } = &mut *out_;
12584 }
12585
12586 ::fidl_next::Wire::zero_padding(flags);
12587 }
12588 }
12589
12590 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeDeprecatedSetFlagsRequest
12591 where
12592 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12593 {
12594 fn decode(
12595 slot_: ::fidl_next::Slot<'_, Self>,
12596 decoder_: &mut ___D,
12597 _: (),
12598 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12599 ::fidl_next::munge! {
12600 let Self {
12601 mut flags,
12602
12603 } = slot_;
12604 }
12605
12606 let _field = flags.as_mut();
12607
12608 ::fidl_next::Decode::decode(flags.as_mut(), decoder_, ())?;
12609
12610 Ok(())
12611 }
12612 }
12613
12614 impl ::fidl_next::IntoNatural for NodeDeprecatedSetFlagsRequest {
12615 type Natural = crate::natural::NodeDeprecatedSetFlagsRequest;
12616 }
12617
12618 #[derive(Clone, Debug)]
12620 #[repr(C)]
12621 pub struct NodeDeprecatedSetFlagsResponse {
12622 pub s: ::fidl_next::wire::fuchsia::Status,
12623 }
12624
12625 static_assertions::const_assert_eq!(std::mem::size_of::<NodeDeprecatedSetFlagsResponse>(), 4);
12626 static_assertions::const_assert_eq!(std::mem::align_of::<NodeDeprecatedSetFlagsResponse>(), 4);
12627
12628 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeDeprecatedSetFlagsResponse, s), 0);
12629
12630 impl ::fidl_next::Constrained for NodeDeprecatedSetFlagsResponse {
12631 type Constraint = ();
12632
12633 fn validate(
12634 _: ::fidl_next::Slot<'_, Self>,
12635 _: Self::Constraint,
12636 ) -> Result<(), ::fidl_next::ValidationError> {
12637 Ok(())
12638 }
12639 }
12640
12641 unsafe impl ::fidl_next::Wire for NodeDeprecatedSetFlagsResponse {
12642 type Narrowed<'de> = NodeDeprecatedSetFlagsResponse;
12643
12644 #[inline]
12645 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12646 ::fidl_next::munge! {
12647 let Self {
12648 s,
12649
12650 } = &mut *out_;
12651 }
12652
12653 ::fidl_next::Wire::zero_padding(s);
12654 }
12655 }
12656
12657 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeDeprecatedSetFlagsResponse
12658 where
12659 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12660 {
12661 fn decode(
12662 slot_: ::fidl_next::Slot<'_, Self>,
12663 decoder_: &mut ___D,
12664 _: (),
12665 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12666 ::fidl_next::munge! {
12667 let Self {
12668 mut s,
12669
12670 } = slot_;
12671 }
12672
12673 let _field = s.as_mut();
12674
12675 ::fidl_next::Decode::decode(s.as_mut(), decoder_, ())?;
12676
12677 Ok(())
12678 }
12679 }
12680
12681 impl ::fidl_next::IntoNatural for NodeDeprecatedSetFlagsResponse {
12682 type Natural = crate::natural::NodeDeprecatedSetFlagsResponse;
12683 }
12684
12685 #[derive(Clone, Copy, Debug)]
12687 #[repr(transparent)]
12688 pub struct Flags {
12689 pub(crate) value: ::fidl_next::wire::Uint64,
12690 }
12691
12692 impl ::fidl_next::Constrained for Flags {
12693 type Constraint = ();
12694
12695 fn validate(
12696 _: ::fidl_next::Slot<'_, Self>,
12697 _: Self::Constraint,
12698 ) -> Result<(), ::fidl_next::ValidationError> {
12699 Ok(())
12700 }
12701 }
12702
12703 unsafe impl ::fidl_next::Wire for Flags {
12704 type Narrowed<'de> = Self;
12705
12706 #[inline]
12707 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
12708 }
12710 }
12711
12712 unsafe impl<___D> ::fidl_next::Decode<___D> for Flags
12713 where
12714 ___D: ?Sized,
12715 {
12716 fn decode(
12717 slot: ::fidl_next::Slot<'_, Self>,
12718 _: &mut ___D,
12719 _: (),
12720 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12721 Ok(())
12722 }
12723 }
12724
12725 impl ::core::convert::From<crate::natural::Flags> for Flags {
12726 fn from(natural: crate::natural::Flags) -> Self {
12727 Self { value: ::fidl_next::wire::Uint64::from(natural.bits()) }
12728 }
12729 }
12730
12731 impl ::fidl_next::IntoNatural for Flags {
12732 type Natural = crate::natural::Flags;
12733 }
12734
12735 #[derive(Clone, Debug)]
12737 #[repr(C)]
12738 pub struct NodeGetFlagsResponse {
12739 pub flags: crate::wire::Flags,
12740 }
12741
12742 static_assertions::const_assert_eq!(std::mem::size_of::<NodeGetFlagsResponse>(), 8);
12743 static_assertions::const_assert_eq!(std::mem::align_of::<NodeGetFlagsResponse>(), 8);
12744
12745 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeGetFlagsResponse, flags), 0);
12746
12747 impl ::fidl_next::Constrained for NodeGetFlagsResponse {
12748 type Constraint = ();
12749
12750 fn validate(
12751 _: ::fidl_next::Slot<'_, Self>,
12752 _: Self::Constraint,
12753 ) -> Result<(), ::fidl_next::ValidationError> {
12754 Ok(())
12755 }
12756 }
12757
12758 unsafe impl ::fidl_next::Wire for NodeGetFlagsResponse {
12759 type Narrowed<'de> = NodeGetFlagsResponse;
12760
12761 #[inline]
12762 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12763 ::fidl_next::munge! {
12764 let Self {
12765 flags,
12766
12767 } = &mut *out_;
12768 }
12769
12770 ::fidl_next::Wire::zero_padding(flags);
12771 }
12772 }
12773
12774 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeGetFlagsResponse
12775 where
12776 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12777 {
12778 fn decode(
12779 slot_: ::fidl_next::Slot<'_, Self>,
12780 decoder_: &mut ___D,
12781 _: (),
12782 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12783 ::fidl_next::munge! {
12784 let Self {
12785 mut flags,
12786
12787 } = slot_;
12788 }
12789
12790 let _field = flags.as_mut();
12791
12792 ::fidl_next::Decode::decode(flags.as_mut(), decoder_, ())?;
12793
12794 Ok(())
12795 }
12796 }
12797
12798 impl ::fidl_next::IntoNatural for NodeGetFlagsResponse {
12799 type Natural = crate::natural::NodeGetFlagsResponse;
12800 }
12801
12802 #[derive(Clone, Debug)]
12804 #[repr(C)]
12805 pub struct NodeSetFlagsRequest {
12806 pub flags: crate::wire::Flags,
12807 }
12808
12809 static_assertions::const_assert_eq!(std::mem::size_of::<NodeSetFlagsRequest>(), 8);
12810 static_assertions::const_assert_eq!(std::mem::align_of::<NodeSetFlagsRequest>(), 8);
12811
12812 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeSetFlagsRequest, flags), 0);
12813
12814 impl ::fidl_next::Constrained for NodeSetFlagsRequest {
12815 type Constraint = ();
12816
12817 fn validate(
12818 _: ::fidl_next::Slot<'_, Self>,
12819 _: Self::Constraint,
12820 ) -> Result<(), ::fidl_next::ValidationError> {
12821 Ok(())
12822 }
12823 }
12824
12825 unsafe impl ::fidl_next::Wire for NodeSetFlagsRequest {
12826 type Narrowed<'de> = NodeSetFlagsRequest;
12827
12828 #[inline]
12829 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
12830 ::fidl_next::munge! {
12831 let Self {
12832 flags,
12833
12834 } = &mut *out_;
12835 }
12836
12837 ::fidl_next::Wire::zero_padding(flags);
12838 }
12839 }
12840
12841 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeSetFlagsRequest
12842 where
12843 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12844 {
12845 fn decode(
12846 slot_: ::fidl_next::Slot<'_, Self>,
12847 decoder_: &mut ___D,
12848 _: (),
12849 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12850 ::fidl_next::munge! {
12851 let Self {
12852 mut flags,
12853
12854 } = slot_;
12855 }
12856
12857 let _field = flags.as_mut();
12858
12859 ::fidl_next::Decode::decode(flags.as_mut(), decoder_, ())?;
12860
12861 Ok(())
12862 }
12863 }
12864
12865 impl ::fidl_next::IntoNatural for NodeSetFlagsRequest {
12866 type Natural = crate::natural::NodeSetFlagsRequest;
12867 }
12868
12869 pub type EmptyStruct = ::fidl_next::wire::Unit;
12871
12872 #[repr(transparent)]
12874 pub struct SelinuxContext<'de> {
12875 pub(crate) raw: ::fidl_next::wire::Union,
12876 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
12877 }
12878
12879 impl<'de> Drop for SelinuxContext<'de> {
12880 fn drop(&mut self) {
12881 match self.raw.ordinal() {
12882 1 => {
12883 let _ = unsafe {
12884 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
12885 };
12886 }
12887
12888 2 => {
12889 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::EmptyStruct>() };
12890 }
12891
12892 _ => (),
12893 }
12894 }
12895 }
12896
12897 impl ::fidl_next::Constrained for SelinuxContext<'_> {
12898 type Constraint = ();
12899
12900 fn validate(
12901 _: ::fidl_next::Slot<'_, Self>,
12902 _: Self::Constraint,
12903 ) -> Result<(), ::fidl_next::ValidationError> {
12904 Ok(())
12905 }
12906 }
12907
12908 unsafe impl ::fidl_next::Wire for SelinuxContext<'static> {
12909 type Narrowed<'de> = SelinuxContext<'de>;
12910
12911 #[inline]
12912 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
12913 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
12914 ::fidl_next::wire::Union::zero_padding(raw);
12915 }
12916 }
12917
12918 pub mod selinux_context {
12919 pub enum Ref<'de> {
12920 Data(&'de ::fidl_next::wire::Vector<'de, u8>),
12921
12922 UseExtendedAttributes(&'de crate::wire::EmptyStruct),
12923
12924 UnknownOrdinal_(u64),
12925 }
12926
12927 pub enum Value<'de> {
12928 Data(::fidl_next::wire::Vector<'de, u8>),
12929
12930 UseExtendedAttributes(crate::wire::EmptyStruct),
12931
12932 UnknownOrdinal_(u64),
12933 }
12934 }
12935
12936 impl<'de> SelinuxContext<'de> {
12937 pub fn as_ref(&self) -> crate::wire::selinux_context::Ref<'_> {
12938 match self.raw.ordinal() {
12939 1 => crate::wire::selinux_context::Ref::Data(unsafe {
12940 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>()
12941 }),
12942
12943 2 => crate::wire::selinux_context::Ref::UseExtendedAttributes(unsafe {
12944 self.raw.get().deref_unchecked::<crate::wire::EmptyStruct>()
12945 }),
12946
12947 unknown => crate::wire::selinux_context::Ref::UnknownOrdinal_(unknown),
12948 }
12949 }
12950
12951 pub fn into_inner(self) -> crate::wire::selinux_context::Value<'de> {
12952 let this = ::core::mem::ManuallyDrop::new(self);
12953
12954 match this.raw.ordinal() {
12955 1 => crate::wire::selinux_context::Value::Data(unsafe {
12956 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
12957 }),
12958
12959 2 => crate::wire::selinux_context::Value::UseExtendedAttributes(unsafe {
12960 this.raw.get().read_unchecked::<crate::wire::EmptyStruct>()
12961 }),
12962
12963 unknown => crate::wire::selinux_context::Value::UnknownOrdinal_(unknown),
12964 }
12965 }
12966 }
12967
12968 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for SelinuxContext<'de>
12969 where
12970 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
12971 ___D: ::fidl_next::Decoder<'de>,
12972 {
12973 fn decode(
12974 mut slot: ::fidl_next::Slot<'_, Self>,
12975 decoder: &mut ___D,
12976 _: (),
12977 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
12978 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
12979 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
12980 1 => {
12981 ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Vector<'de, u8>>(
12982 raw,
12983 decoder,
12984 (256, ()),
12985 )?
12986 }
12987
12988 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::EmptyStruct>(
12989 raw,
12990 decoder,
12991 (),
12992 )?,
12993
12994 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
12995 }
12996
12997 Ok(())
12998 }
12999 }
13000
13001 impl<'de> ::core::fmt::Debug for SelinuxContext<'de> {
13002 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13003 match self.raw.ordinal() {
13004 1 => unsafe {
13005 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>().fmt(f)
13006 },
13007 2 => unsafe { self.raw.get().deref_unchecked::<crate::wire::EmptyStruct>().fmt(f) },
13008 _ => unsafe { ::core::hint::unreachable_unchecked() },
13009 }
13010 }
13011 }
13012
13013 impl<'de> ::fidl_next::IntoNatural for SelinuxContext<'de> {
13014 type Natural = crate::natural::SelinuxContext;
13015 }
13016
13017 #[repr(C)]
13019 pub struct MutableNodeAttributes<'de> {
13020 pub(crate) table: ::fidl_next::wire::Table<'de>,
13021 }
13022
13023 impl<'de> Drop for MutableNodeAttributes<'de> {
13024 fn drop(&mut self) {
13025 let _ = self
13026 .table
13027 .get(1)
13028 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13029
13030 let _ = self
13031 .table
13032 .get(2)
13033 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13034
13035 let _ = self
13036 .table
13037 .get(3)
13038 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint32>() });
13039
13040 let _ = self
13041 .table
13042 .get(4)
13043 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint32>() });
13044
13045 let _ = self
13046 .table
13047 .get(5)
13048 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint32>() });
13049
13050 let _ = self
13051 .table
13052 .get(6)
13053 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13054
13055 let _ = self
13056 .table
13057 .get(7)
13058 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13059
13060 let _ = self.table.get(8).map(|envelope| unsafe { envelope.read_unchecked::<bool>() });
13061
13062 let _ = self.table.get(9).map(|envelope| unsafe {
13063 envelope.read_unchecked::<crate::wire::SelinuxContext<'de>>()
13064 });
13065
13066 let _ =
13067 self.table.get(10).map(|envelope| unsafe { envelope.read_unchecked::<[u8; 16]>() });
13068 }
13069 }
13070
13071 impl ::fidl_next::Constrained for MutableNodeAttributes<'_> {
13072 type Constraint = ();
13073
13074 fn validate(
13075 _: ::fidl_next::Slot<'_, Self>,
13076 _: Self::Constraint,
13077 ) -> Result<(), ::fidl_next::ValidationError> {
13078 Ok(())
13079 }
13080 }
13081
13082 unsafe impl ::fidl_next::Wire for MutableNodeAttributes<'static> {
13083 type Narrowed<'de> = MutableNodeAttributes<'de>;
13084
13085 #[inline]
13086 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
13087 ::fidl_next::munge!(let Self { table } = out);
13088 ::fidl_next::wire::Table::zero_padding(table);
13089 }
13090 }
13091
13092 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for MutableNodeAttributes<'de>
13093 where
13094 ___D: ::fidl_next::Decoder<'de> + ?Sized,
13095 {
13096 fn decode(
13097 slot: ::fidl_next::Slot<'_, Self>,
13098 decoder: &mut ___D,
13099 _: (),
13100 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
13101 ::fidl_next::munge!(let Self { table } = slot);
13102
13103 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
13104 match ordinal {
13105 0 => unsafe { ::core::hint::unreachable_unchecked() },
13106
13107 1 => {
13108 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13109 slot.as_mut(),
13110 decoder,
13111 (),
13112 )?;
13113
13114 Ok(())
13115 }
13116
13117 2 => {
13118 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13119 slot.as_mut(),
13120 decoder,
13121 (),
13122 )?;
13123
13124 Ok(())
13125 }
13126
13127 3 => {
13128 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint32>(
13129 slot.as_mut(),
13130 decoder,
13131 (),
13132 )?;
13133
13134 Ok(())
13135 }
13136
13137 4 => {
13138 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint32>(
13139 slot.as_mut(),
13140 decoder,
13141 (),
13142 )?;
13143
13144 Ok(())
13145 }
13146
13147 5 => {
13148 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint32>(
13149 slot.as_mut(),
13150 decoder,
13151 (),
13152 )?;
13153
13154 Ok(())
13155 }
13156
13157 6 => {
13158 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13159 slot.as_mut(),
13160 decoder,
13161 (),
13162 )?;
13163
13164 Ok(())
13165 }
13166
13167 7 => {
13168 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13169 slot.as_mut(),
13170 decoder,
13171 (),
13172 )?;
13173
13174 Ok(())
13175 }
13176
13177 8 => {
13178 ::fidl_next::wire::Envelope::decode_as::<___D, bool>(
13179 slot.as_mut(),
13180 decoder,
13181 (),
13182 )?;
13183
13184 Ok(())
13185 }
13186
13187 9 => {
13188 ::fidl_next::wire::Envelope::decode_as::<
13189 ___D,
13190 crate::wire::SelinuxContext<'de>,
13191 >(slot.as_mut(), decoder, ())?;
13192
13193 Ok(())
13194 }
13195
13196 10 => {
13197 ::fidl_next::wire::Envelope::decode_as::<___D, [u8; 16]>(
13198 slot.as_mut(),
13199 decoder,
13200 (),
13201 )?;
13202
13203 Ok(())
13204 }
13205
13206 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
13207 }
13208 })
13209 }
13210 }
13211
13212 impl<'de> MutableNodeAttributes<'de> {
13213 pub fn creation_time(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13214 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
13215 }
13216
13217 pub fn take_creation_time(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13218 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
13219 }
13220
13221 pub fn modification_time(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13222 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
13223 }
13224
13225 pub fn take_modification_time(
13226 &mut self,
13227 ) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13228 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
13229 }
13230
13231 pub fn mode(&self) -> ::core::option::Option<&::fidl_next::wire::Uint32> {
13232 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
13233 }
13234
13235 pub fn take_mode(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint32> {
13236 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
13237 }
13238
13239 pub fn uid(&self) -> ::core::option::Option<&::fidl_next::wire::Uint32> {
13240 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
13241 }
13242
13243 pub fn take_uid(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint32> {
13244 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
13245 }
13246
13247 pub fn gid(&self) -> ::core::option::Option<&::fidl_next::wire::Uint32> {
13248 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
13249 }
13250
13251 pub fn take_gid(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint32> {
13252 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
13253 }
13254
13255 pub fn rdev(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13256 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
13257 }
13258
13259 pub fn take_rdev(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13260 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
13261 }
13262
13263 pub fn access_time(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13264 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
13265 }
13266
13267 pub fn take_access_time(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13268 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
13269 }
13270
13271 pub fn casefold(&self) -> ::core::option::Option<&bool> {
13272 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
13273 }
13274
13275 pub fn take_casefold(&mut self) -> ::core::option::Option<bool> {
13276 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
13277 }
13278
13279 pub fn selinux_context(&self) -> ::core::option::Option<&crate::wire::SelinuxContext<'de>> {
13280 unsafe { Some(self.table.get(9)?.deref_unchecked()) }
13281 }
13282
13283 pub fn take_selinux_context(
13284 &mut self,
13285 ) -> ::core::option::Option<crate::wire::SelinuxContext<'de>> {
13286 unsafe { Some(self.table.get_mut(9)?.take_unchecked()) }
13287 }
13288
13289 pub fn wrapping_key_id(&self) -> ::core::option::Option<&[u8; 16]> {
13290 unsafe { Some(self.table.get(10)?.deref_unchecked()) }
13291 }
13292
13293 pub fn take_wrapping_key_id(&mut self) -> ::core::option::Option<[u8; 16]> {
13294 unsafe { Some(self.table.get_mut(10)?.take_unchecked()) }
13295 }
13296 }
13297
13298 impl<'de> ::core::fmt::Debug for MutableNodeAttributes<'de> {
13299 fn fmt(
13300 &self,
13301 f: &mut ::core::fmt::Formatter<'_>,
13302 ) -> ::core::result::Result<(), ::core::fmt::Error> {
13303 f.debug_struct("MutableNodeAttributes")
13304 .field("creation_time", &self.creation_time())
13305 .field("modification_time", &self.modification_time())
13306 .field("mode", &self.mode())
13307 .field("uid", &self.uid())
13308 .field("gid", &self.gid())
13309 .field("rdev", &self.rdev())
13310 .field("access_time", &self.access_time())
13311 .field("casefold", &self.casefold())
13312 .field("selinux_context", &self.selinux_context())
13313 .field("wrapping_key_id", &self.wrapping_key_id())
13314 .finish()
13315 }
13316 }
13317
13318 impl<'de> ::fidl_next::IntoNatural for MutableNodeAttributes<'de> {
13319 type Natural = crate::natural::MutableNodeAttributes;
13320 }
13321
13322 #[derive(Clone, Copy, Debug)]
13324 #[repr(transparent)]
13325 pub struct NodeProtocolKinds {
13326 pub(crate) value: ::fidl_next::wire::Uint64,
13327 }
13328
13329 impl ::fidl_next::Constrained for NodeProtocolKinds {
13330 type Constraint = ();
13331
13332 fn validate(
13333 _: ::fidl_next::Slot<'_, Self>,
13334 _: Self::Constraint,
13335 ) -> Result<(), ::fidl_next::ValidationError> {
13336 Ok(())
13337 }
13338 }
13339
13340 unsafe impl ::fidl_next::Wire for NodeProtocolKinds {
13341 type Narrowed<'de> = Self;
13342
13343 #[inline]
13344 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
13345 }
13347 }
13348
13349 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeProtocolKinds
13350 where
13351 ___D: ?Sized,
13352 {
13353 fn decode(
13354 slot: ::fidl_next::Slot<'_, Self>,
13355 _: &mut ___D,
13356 _: (),
13357 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
13358 Ok(())
13359 }
13360 }
13361
13362 impl ::core::convert::From<crate::natural::NodeProtocolKinds> for NodeProtocolKinds {
13363 fn from(natural: crate::natural::NodeProtocolKinds) -> Self {
13364 Self { value: ::fidl_next::wire::Uint64::from(natural.bits()) }
13365 }
13366 }
13367
13368 impl ::fidl_next::IntoNatural for NodeProtocolKinds {
13369 type Natural = crate::natural::NodeProtocolKinds;
13370 }
13371
13372 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
13374 #[repr(transparent)]
13375 pub struct HashAlgorithm {
13376 pub(crate) value: u8,
13377 }
13378
13379 impl ::fidl_next::Constrained for HashAlgorithm {
13380 type Constraint = ();
13381
13382 fn validate(
13383 _: ::fidl_next::Slot<'_, Self>,
13384 _: Self::Constraint,
13385 ) -> Result<(), ::fidl_next::ValidationError> {
13386 Ok(())
13387 }
13388 }
13389
13390 unsafe impl ::fidl_next::Wire for HashAlgorithm {
13391 type Narrowed<'de> = Self;
13392
13393 #[inline]
13394 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
13395 }
13397 }
13398
13399 impl HashAlgorithm {
13400 pub const SHA256: HashAlgorithm = HashAlgorithm { value: 1 };
13401
13402 pub const SHA512: HashAlgorithm = HashAlgorithm { value: 2 };
13403 }
13404
13405 unsafe impl<___D> ::fidl_next::Decode<___D> for HashAlgorithm
13406 where
13407 ___D: ?Sized,
13408 {
13409 fn decode(
13410 slot: ::fidl_next::Slot<'_, Self>,
13411 _: &mut ___D,
13412 _: (),
13413 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
13414 Ok(())
13415 }
13416 }
13417
13418 impl ::core::convert::From<crate::natural::HashAlgorithm> for HashAlgorithm {
13419 fn from(natural: crate::natural::HashAlgorithm) -> Self {
13420 match natural {
13421 crate::natural::HashAlgorithm::Sha256 => HashAlgorithm::SHA256,
13422
13423 crate::natural::HashAlgorithm::Sha512 => HashAlgorithm::SHA512,
13424
13425 crate::natural::HashAlgorithm::UnknownOrdinal_(value) => {
13426 HashAlgorithm { value: u8::from(value) }
13427 }
13428 }
13429 }
13430 }
13431
13432 impl ::fidl_next::IntoNatural for HashAlgorithm {
13433 type Natural = crate::natural::HashAlgorithm;
13434 }
13435
13436 #[repr(C)]
13438 pub struct VerificationOptions<'de> {
13439 pub(crate) table: ::fidl_next::wire::Table<'de>,
13440 }
13441
13442 impl<'de> Drop for VerificationOptions<'de> {
13443 fn drop(&mut self) {
13444 let _ = self
13445 .table
13446 .get(1)
13447 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::HashAlgorithm>() });
13448
13449 let _ = self.table.get(2).map(|envelope| unsafe {
13450 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
13451 });
13452 }
13453 }
13454
13455 impl ::fidl_next::Constrained for VerificationOptions<'_> {
13456 type Constraint = ();
13457
13458 fn validate(
13459 _: ::fidl_next::Slot<'_, Self>,
13460 _: Self::Constraint,
13461 ) -> Result<(), ::fidl_next::ValidationError> {
13462 Ok(())
13463 }
13464 }
13465
13466 unsafe impl ::fidl_next::Wire for VerificationOptions<'static> {
13467 type Narrowed<'de> = VerificationOptions<'de>;
13468
13469 #[inline]
13470 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
13471 ::fidl_next::munge!(let Self { table } = out);
13472 ::fidl_next::wire::Table::zero_padding(table);
13473 }
13474 }
13475
13476 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for VerificationOptions<'de>
13477 where
13478 ___D: ::fidl_next::Decoder<'de> + ?Sized,
13479 {
13480 fn decode(
13481 slot: ::fidl_next::Slot<'_, Self>,
13482 decoder: &mut ___D,
13483 _: (),
13484 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
13485 ::fidl_next::munge!(let Self { table } = slot);
13486
13487 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
13488 match ordinal {
13489 0 => unsafe { ::core::hint::unreachable_unchecked() },
13490
13491 1 => {
13492 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::HashAlgorithm>(
13493 slot.as_mut(),
13494 decoder,
13495 (),
13496 )?;
13497
13498 Ok(())
13499 }
13500
13501 2 => {
13502 ::fidl_next::wire::Envelope::decode_as::<
13503 ___D,
13504 ::fidl_next::wire::Vector<'de, u8>,
13505 >(slot.as_mut(), decoder, (32, ()))?;
13506
13507 let value = unsafe {
13508 slot.deref_unchecked()
13509 .deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>()
13510 };
13511
13512 if value.len() > 32 {
13513 return Err(::fidl_next::DecodeError::VectorTooLong {
13514 size: value.len() as u64,
13515 limit: 32,
13516 });
13517 }
13518
13519 Ok(())
13520 }
13521
13522 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
13523 }
13524 })
13525 }
13526 }
13527
13528 impl<'de> VerificationOptions<'de> {
13529 pub fn hash_algorithm(&self) -> ::core::option::Option<&crate::wire::HashAlgorithm> {
13530 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
13531 }
13532
13533 pub fn take_hash_algorithm(
13534 &mut self,
13535 ) -> ::core::option::Option<crate::wire::HashAlgorithm> {
13536 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
13537 }
13538
13539 pub fn salt(&self) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, u8>> {
13540 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
13541 }
13542
13543 pub fn take_salt(&mut self) -> ::core::option::Option<::fidl_next::wire::Vector<'de, u8>> {
13544 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
13545 }
13546 }
13547
13548 impl<'de> ::core::fmt::Debug for VerificationOptions<'de> {
13549 fn fmt(
13550 &self,
13551 f: &mut ::core::fmt::Formatter<'_>,
13552 ) -> ::core::result::Result<(), ::core::fmt::Error> {
13553 f.debug_struct("VerificationOptions")
13554 .field("hash_algorithm", &self.hash_algorithm())
13555 .field("salt", &self.salt())
13556 .finish()
13557 }
13558 }
13559
13560 impl<'de> ::fidl_next::IntoNatural for VerificationOptions<'de> {
13561 type Natural = crate::natural::VerificationOptions;
13562 }
13563
13564 #[repr(C)]
13566 pub struct ImmutableNodeAttributes<'de> {
13567 pub(crate) table: ::fidl_next::wire::Table<'de>,
13568 }
13569
13570 impl<'de> Drop for ImmutableNodeAttributes<'de> {
13571 fn drop(&mut self) {
13572 let _ = self.table.get(1).map(|envelope| unsafe {
13573 envelope.read_unchecked::<crate::wire::NodeProtocolKinds>()
13574 });
13575
13576 let _ = self
13577 .table
13578 .get(2)
13579 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Operations>() });
13580
13581 let _ = self
13582 .table
13583 .get(3)
13584 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13585
13586 let _ = self
13587 .table
13588 .get(4)
13589 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13590
13591 let _ = self
13592 .table
13593 .get(5)
13594 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13595
13596 let _ = self
13597 .table
13598 .get(6)
13599 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13600
13601 let _ = self
13602 .table
13603 .get(7)
13604 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint64>() });
13605
13606 let _ = self.table.get(8).map(|envelope| unsafe {
13607 envelope.read_unchecked::<crate::wire::VerificationOptions<'de>>()
13608 });
13609
13610 let _ = self.table.get(9).map(|envelope| unsafe {
13611 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
13612 });
13613
13614 let _ = self.table.get(10).map(|envelope| unsafe { envelope.read_unchecked::<bool>() });
13615 }
13616 }
13617
13618 impl ::fidl_next::Constrained for ImmutableNodeAttributes<'_> {
13619 type Constraint = ();
13620
13621 fn validate(
13622 _: ::fidl_next::Slot<'_, Self>,
13623 _: Self::Constraint,
13624 ) -> Result<(), ::fidl_next::ValidationError> {
13625 Ok(())
13626 }
13627 }
13628
13629 unsafe impl ::fidl_next::Wire for ImmutableNodeAttributes<'static> {
13630 type Narrowed<'de> = ImmutableNodeAttributes<'de>;
13631
13632 #[inline]
13633 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
13634 ::fidl_next::munge!(let Self { table } = out);
13635 ::fidl_next::wire::Table::zero_padding(table);
13636 }
13637 }
13638
13639 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ImmutableNodeAttributes<'de>
13640 where
13641 ___D: ::fidl_next::Decoder<'de> + ?Sized,
13642 {
13643 fn decode(
13644 slot: ::fidl_next::Slot<'_, Self>,
13645 decoder: &mut ___D,
13646 _: (),
13647 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
13648 ::fidl_next::munge!(let Self { table } = slot);
13649
13650 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
13651 match ordinal {
13652 0 => unsafe { ::core::hint::unreachable_unchecked() },
13653
13654 1 => {
13655 ::fidl_next::wire::Envelope::decode_as::<
13656 ___D,
13657 crate::wire::NodeProtocolKinds,
13658 >(slot.as_mut(), decoder, ())?;
13659
13660 Ok(())
13661 }
13662
13663 2 => {
13664 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Operations>(
13665 slot.as_mut(),
13666 decoder,
13667 (),
13668 )?;
13669
13670 Ok(())
13671 }
13672
13673 3 => {
13674 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13675 slot.as_mut(),
13676 decoder,
13677 (),
13678 )?;
13679
13680 Ok(())
13681 }
13682
13683 4 => {
13684 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13685 slot.as_mut(),
13686 decoder,
13687 (),
13688 )?;
13689
13690 Ok(())
13691 }
13692
13693 5 => {
13694 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13695 slot.as_mut(),
13696 decoder,
13697 (),
13698 )?;
13699
13700 Ok(())
13701 }
13702
13703 6 => {
13704 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13705 slot.as_mut(),
13706 decoder,
13707 (),
13708 )?;
13709
13710 Ok(())
13711 }
13712
13713 7 => {
13714 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint64>(
13715 slot.as_mut(),
13716 decoder,
13717 (),
13718 )?;
13719
13720 Ok(())
13721 }
13722
13723 8 => {
13724 ::fidl_next::wire::Envelope::decode_as::<
13725 ___D,
13726 crate::wire::VerificationOptions<'de>,
13727 >(slot.as_mut(), decoder, ())?;
13728
13729 Ok(())
13730 }
13731
13732 9 => {
13733 ::fidl_next::wire::Envelope::decode_as::<
13734 ___D,
13735 ::fidl_next::wire::Vector<'de, u8>,
13736 >(slot.as_mut(), decoder, (64, ()))?;
13737
13738 let value = unsafe {
13739 slot.deref_unchecked()
13740 .deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>()
13741 };
13742
13743 if value.len() > 64 {
13744 return Err(::fidl_next::DecodeError::VectorTooLong {
13745 size: value.len() as u64,
13746 limit: 64,
13747 });
13748 }
13749
13750 Ok(())
13751 }
13752
13753 10 => {
13754 ::fidl_next::wire::Envelope::decode_as::<___D, bool>(
13755 slot.as_mut(),
13756 decoder,
13757 (),
13758 )?;
13759
13760 Ok(())
13761 }
13762
13763 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
13764 }
13765 })
13766 }
13767 }
13768
13769 impl<'de> ImmutableNodeAttributes<'de> {
13770 pub fn protocols(&self) -> ::core::option::Option<&crate::wire::NodeProtocolKinds> {
13771 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
13772 }
13773
13774 pub fn take_protocols(&mut self) -> ::core::option::Option<crate::wire::NodeProtocolKinds> {
13775 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
13776 }
13777
13778 pub fn abilities(&self) -> ::core::option::Option<&crate::wire::Operations> {
13779 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
13780 }
13781
13782 pub fn take_abilities(&mut self) -> ::core::option::Option<crate::wire::Operations> {
13783 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
13784 }
13785
13786 pub fn content_size(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13787 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
13788 }
13789
13790 pub fn take_content_size(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13791 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
13792 }
13793
13794 pub fn storage_size(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13795 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
13796 }
13797
13798 pub fn take_storage_size(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13799 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
13800 }
13801
13802 pub fn link_count(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13803 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
13804 }
13805
13806 pub fn take_link_count(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13807 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
13808 }
13809
13810 pub fn id(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13811 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
13812 }
13813
13814 pub fn take_id(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13815 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
13816 }
13817
13818 pub fn change_time(&self) -> ::core::option::Option<&::fidl_next::wire::Uint64> {
13819 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
13820 }
13821
13822 pub fn take_change_time(&mut self) -> ::core::option::Option<::fidl_next::wire::Uint64> {
13823 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
13824 }
13825
13826 pub fn options(&self) -> ::core::option::Option<&crate::wire::VerificationOptions<'de>> {
13827 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
13828 }
13829
13830 pub fn take_options(
13831 &mut self,
13832 ) -> ::core::option::Option<crate::wire::VerificationOptions<'de>> {
13833 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
13834 }
13835
13836 pub fn root_hash(&self) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, u8>> {
13837 unsafe { Some(self.table.get(9)?.deref_unchecked()) }
13838 }
13839
13840 pub fn take_root_hash(
13841 &mut self,
13842 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, u8>> {
13843 unsafe { Some(self.table.get_mut(9)?.take_unchecked()) }
13844 }
13845
13846 pub fn verity_enabled(&self) -> ::core::option::Option<&bool> {
13847 unsafe { Some(self.table.get(10)?.deref_unchecked()) }
13848 }
13849
13850 pub fn take_verity_enabled(&mut self) -> ::core::option::Option<bool> {
13851 unsafe { Some(self.table.get_mut(10)?.take_unchecked()) }
13852 }
13853 }
13854
13855 impl<'de> ::core::fmt::Debug for ImmutableNodeAttributes<'de> {
13856 fn fmt(
13857 &self,
13858 f: &mut ::core::fmt::Formatter<'_>,
13859 ) -> ::core::result::Result<(), ::core::fmt::Error> {
13860 f.debug_struct("ImmutableNodeAttributes")
13861 .field("protocols", &self.protocols())
13862 .field("abilities", &self.abilities())
13863 .field("content_size", &self.content_size())
13864 .field("storage_size", &self.storage_size())
13865 .field("link_count", &self.link_count())
13866 .field("id", &self.id())
13867 .field("change_time", &self.change_time())
13868 .field("options", &self.options())
13869 .field("root_hash", &self.root_hash())
13870 .field("verity_enabled", &self.verity_enabled())
13871 .finish()
13872 }
13873 }
13874
13875 impl<'de> ::fidl_next::IntoNatural for ImmutableNodeAttributes<'de> {
13876 type Natural = crate::natural::ImmutableNodeAttributes;
13877 }
13878
13879 #[derive(Debug)]
13881 #[repr(C)]
13882 pub struct NodeAttributes2<'de> {
13883 pub mutable_attributes: crate::wire::MutableNodeAttributes<'de>,
13884
13885 pub immutable_attributes: crate::wire::ImmutableNodeAttributes<'de>,
13886 }
13887
13888 static_assertions::const_assert_eq!(std::mem::size_of::<NodeAttributes2<'_>>(), 32);
13889 static_assertions::const_assert_eq!(std::mem::align_of::<NodeAttributes2<'_>>(), 8);
13890
13891 static_assertions::const_assert_eq!(
13892 std::mem::offset_of!(NodeAttributes2<'_>, mutable_attributes),
13893 0
13894 );
13895
13896 static_assertions::const_assert_eq!(
13897 std::mem::offset_of!(NodeAttributes2<'_>, immutable_attributes),
13898 16
13899 );
13900
13901 impl ::fidl_next::Constrained for NodeAttributes2<'_> {
13902 type Constraint = ();
13903
13904 fn validate(
13905 _: ::fidl_next::Slot<'_, Self>,
13906 _: Self::Constraint,
13907 ) -> Result<(), ::fidl_next::ValidationError> {
13908 Ok(())
13909 }
13910 }
13911
13912 unsafe impl ::fidl_next::Wire for NodeAttributes2<'static> {
13913 type Narrowed<'de> = NodeAttributes2<'de>;
13914
13915 #[inline]
13916 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
13917 ::fidl_next::munge! {
13918 let Self {
13919 mutable_attributes,
13920 immutable_attributes,
13921
13922 } = &mut *out_;
13923 }
13924
13925 ::fidl_next::Wire::zero_padding(mutable_attributes);
13926
13927 ::fidl_next::Wire::zero_padding(immutable_attributes);
13928 }
13929 }
13930
13931 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for NodeAttributes2<'de>
13932 where
13933 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
13934 ___D: ::fidl_next::Decoder<'de>,
13935 {
13936 fn decode(
13937 slot_: ::fidl_next::Slot<'_, Self>,
13938 decoder_: &mut ___D,
13939 _: (),
13940 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
13941 ::fidl_next::munge! {
13942 let Self {
13943 mut mutable_attributes,
13944 mut immutable_attributes,
13945
13946 } = slot_;
13947 }
13948
13949 let _field = mutable_attributes.as_mut();
13950
13951 ::fidl_next::Decode::decode(mutable_attributes.as_mut(), decoder_, ())?;
13952
13953 let _field = immutable_attributes.as_mut();
13954
13955 ::fidl_next::Decode::decode(immutable_attributes.as_mut(), decoder_, ())?;
13956
13957 Ok(())
13958 }
13959 }
13960
13961 impl<'de> ::fidl_next::IntoNatural for NodeAttributes2<'de> {
13962 type Natural = crate::natural::NodeAttributes2;
13963 }
13964
13965 #[repr(C)]
13967 pub struct NodeInfo<'de> {
13968 pub(crate) table: ::fidl_next::wire::Table<'de>,
13969 }
13970
13971 impl<'de> Drop for NodeInfo<'de> {
13972 fn drop(&mut self) {
13973 let _ = self.table.get(1).map(|envelope| unsafe {
13974 envelope.read_unchecked::<crate::wire::NodeAttributes2<'de>>()
13975 });
13976 }
13977 }
13978
13979 impl ::fidl_next::Constrained for NodeInfo<'_> {
13980 type Constraint = ();
13981
13982 fn validate(
13983 _: ::fidl_next::Slot<'_, Self>,
13984 _: Self::Constraint,
13985 ) -> Result<(), ::fidl_next::ValidationError> {
13986 Ok(())
13987 }
13988 }
13989
13990 unsafe impl ::fidl_next::Wire for NodeInfo<'static> {
13991 type Narrowed<'de> = NodeInfo<'de>;
13992
13993 #[inline]
13994 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
13995 ::fidl_next::munge!(let Self { table } = out);
13996 ::fidl_next::wire::Table::zero_padding(table);
13997 }
13998 }
13999
14000 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for NodeInfo<'de>
14001 where
14002 ___D: ::fidl_next::Decoder<'de> + ?Sized,
14003 {
14004 fn decode(
14005 slot: ::fidl_next::Slot<'_, Self>,
14006 decoder: &mut ___D,
14007 _: (),
14008 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14009 ::fidl_next::munge!(let Self { table } = slot);
14010
14011 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
14012 match ordinal {
14013 0 => unsafe { ::core::hint::unreachable_unchecked() },
14014
14015 1 => {
14016 ::fidl_next::wire::Envelope::decode_as::<
14017 ___D,
14018 crate::wire::NodeAttributes2<'de>,
14019 >(slot.as_mut(), decoder, ())?;
14020
14021 Ok(())
14022 }
14023
14024 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
14025 }
14026 })
14027 }
14028 }
14029
14030 impl<'de> NodeInfo<'de> {
14031 pub fn attributes(&self) -> ::core::option::Option<&crate::wire::NodeAttributes2<'de>> {
14032 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
14033 }
14034
14035 pub fn take_attributes(
14036 &mut self,
14037 ) -> ::core::option::Option<crate::wire::NodeAttributes2<'de>> {
14038 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
14039 }
14040 }
14041
14042 impl<'de> ::core::fmt::Debug for NodeInfo<'de> {
14043 fn fmt(
14044 &self,
14045 f: &mut ::core::fmt::Formatter<'_>,
14046 ) -> ::core::result::Result<(), ::core::fmt::Error> {
14047 f.debug_struct("NodeInfo").field("attributes", &self.attributes()).finish()
14048 }
14049 }
14050
14051 impl<'de> ::fidl_next::IntoNatural for NodeInfo<'de> {
14052 type Natural = crate::natural::NodeInfo;
14053 }
14054
14055 #[repr(C)]
14057 pub struct DirectoryInfo<'de> {
14058 pub(crate) table: ::fidl_next::wire::Table<'de>,
14059 }
14060
14061 impl<'de> Drop for DirectoryInfo<'de> {
14062 fn drop(&mut self) {
14063 let _ = self.table.get(1).map(|envelope| unsafe {
14064 envelope.read_unchecked::<crate::wire::NodeAttributes2<'de>>()
14065 });
14066 }
14067 }
14068
14069 impl ::fidl_next::Constrained for DirectoryInfo<'_> {
14070 type Constraint = ();
14071
14072 fn validate(
14073 _: ::fidl_next::Slot<'_, Self>,
14074 _: Self::Constraint,
14075 ) -> Result<(), ::fidl_next::ValidationError> {
14076 Ok(())
14077 }
14078 }
14079
14080 unsafe impl ::fidl_next::Wire for DirectoryInfo<'static> {
14081 type Narrowed<'de> = DirectoryInfo<'de>;
14082
14083 #[inline]
14084 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
14085 ::fidl_next::munge!(let Self { table } = out);
14086 ::fidl_next::wire::Table::zero_padding(table);
14087 }
14088 }
14089
14090 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DirectoryInfo<'de>
14091 where
14092 ___D: ::fidl_next::Decoder<'de> + ?Sized,
14093 {
14094 fn decode(
14095 slot: ::fidl_next::Slot<'_, Self>,
14096 decoder: &mut ___D,
14097 _: (),
14098 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14099 ::fidl_next::munge!(let Self { table } = slot);
14100
14101 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
14102 match ordinal {
14103 0 => unsafe { ::core::hint::unreachable_unchecked() },
14104
14105 1 => {
14106 ::fidl_next::wire::Envelope::decode_as::<
14107 ___D,
14108 crate::wire::NodeAttributes2<'de>,
14109 >(slot.as_mut(), decoder, ())?;
14110
14111 Ok(())
14112 }
14113
14114 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
14115 }
14116 })
14117 }
14118 }
14119
14120 impl<'de> DirectoryInfo<'de> {
14121 pub fn attributes(&self) -> ::core::option::Option<&crate::wire::NodeAttributes2<'de>> {
14122 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
14123 }
14124
14125 pub fn take_attributes(
14126 &mut self,
14127 ) -> ::core::option::Option<crate::wire::NodeAttributes2<'de>> {
14128 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
14129 }
14130 }
14131
14132 impl<'de> ::core::fmt::Debug for DirectoryInfo<'de> {
14133 fn fmt(
14134 &self,
14135 f: &mut ::core::fmt::Formatter<'_>,
14136 ) -> ::core::result::Result<(), ::core::fmt::Error> {
14137 f.debug_struct("DirectoryInfo").field("attributes", &self.attributes()).finish()
14138 }
14139 }
14140
14141 impl<'de> ::fidl_next::IntoNatural for DirectoryInfo<'de> {
14142 type Natural = crate::natural::DirectoryInfo;
14143 }
14144
14145 #[repr(C)]
14147 pub struct SymlinkInfo<'de> {
14148 pub(crate) table: ::fidl_next::wire::Table<'de>,
14149 }
14150
14151 impl<'de> Drop for SymlinkInfo<'de> {
14152 fn drop(&mut self) {
14153 let _ = self.table.get(1).map(|envelope| unsafe {
14154 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
14155 });
14156
14157 let _ = self.table.get(2).map(|envelope| unsafe {
14158 envelope.read_unchecked::<crate::wire::NodeAttributes2<'de>>()
14159 });
14160 }
14161 }
14162
14163 impl ::fidl_next::Constrained for SymlinkInfo<'_> {
14164 type Constraint = ();
14165
14166 fn validate(
14167 _: ::fidl_next::Slot<'_, Self>,
14168 _: Self::Constraint,
14169 ) -> Result<(), ::fidl_next::ValidationError> {
14170 Ok(())
14171 }
14172 }
14173
14174 unsafe impl ::fidl_next::Wire for SymlinkInfo<'static> {
14175 type Narrowed<'de> = SymlinkInfo<'de>;
14176
14177 #[inline]
14178 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
14179 ::fidl_next::munge!(let Self { table } = out);
14180 ::fidl_next::wire::Table::zero_padding(table);
14181 }
14182 }
14183
14184 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for SymlinkInfo<'de>
14185 where
14186 ___D: ::fidl_next::Decoder<'de> + ?Sized,
14187 {
14188 fn decode(
14189 slot: ::fidl_next::Slot<'_, Self>,
14190 decoder: &mut ___D,
14191 _: (),
14192 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14193 ::fidl_next::munge!(let Self { table } = slot);
14194
14195 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
14196 match ordinal {
14197 0 => unsafe { ::core::hint::unreachable_unchecked() },
14198
14199 1 => {
14200 ::fidl_next::wire::Envelope::decode_as::<
14201 ___D,
14202 ::fidl_next::wire::Vector<'de, u8>,
14203 >(slot.as_mut(), decoder, (4095, ()))?;
14204
14205 let value = unsafe {
14206 slot.deref_unchecked()
14207 .deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>()
14208 };
14209
14210 if value.len() > 4095 {
14211 return Err(::fidl_next::DecodeError::VectorTooLong {
14212 size: value.len() as u64,
14213 limit: 4095,
14214 });
14215 }
14216
14217 Ok(())
14218 }
14219
14220 2 => {
14221 ::fidl_next::wire::Envelope::decode_as::<
14222 ___D,
14223 crate::wire::NodeAttributes2<'de>,
14224 >(slot.as_mut(), decoder, ())?;
14225
14226 Ok(())
14227 }
14228
14229 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
14230 }
14231 })
14232 }
14233 }
14234
14235 impl<'de> SymlinkInfo<'de> {
14236 pub fn target(&self) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, u8>> {
14237 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
14238 }
14239
14240 pub fn take_target(
14241 &mut self,
14242 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, u8>> {
14243 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
14244 }
14245
14246 pub fn attributes(&self) -> ::core::option::Option<&crate::wire::NodeAttributes2<'de>> {
14247 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
14248 }
14249
14250 pub fn take_attributes(
14251 &mut self,
14252 ) -> ::core::option::Option<crate::wire::NodeAttributes2<'de>> {
14253 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
14254 }
14255 }
14256
14257 impl<'de> ::core::fmt::Debug for SymlinkInfo<'de> {
14258 fn fmt(
14259 &self,
14260 f: &mut ::core::fmt::Formatter<'_>,
14261 ) -> ::core::result::Result<(), ::core::fmt::Error> {
14262 f.debug_struct("SymlinkInfo")
14263 .field("target", &self.target())
14264 .field("attributes", &self.attributes())
14265 .finish()
14266 }
14267 }
14268
14269 impl<'de> ::fidl_next::IntoNatural for SymlinkInfo<'de> {
14270 type Natural = crate::natural::SymlinkInfo;
14271 }
14272
14273 #[derive(Clone, Copy, Debug)]
14275 #[repr(transparent)]
14276 pub struct NodeAttributesQuery {
14277 pub(crate) value: ::fidl_next::wire::Uint64,
14278 }
14279
14280 impl ::fidl_next::Constrained for NodeAttributesQuery {
14281 type Constraint = ();
14282
14283 fn validate(
14284 _: ::fidl_next::Slot<'_, Self>,
14285 _: Self::Constraint,
14286 ) -> Result<(), ::fidl_next::ValidationError> {
14287 Ok(())
14288 }
14289 }
14290
14291 unsafe impl ::fidl_next::Wire for NodeAttributesQuery {
14292 type Narrowed<'de> = Self;
14293
14294 #[inline]
14295 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
14296 }
14298 }
14299
14300 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeAttributesQuery
14301 where
14302 ___D: ?Sized,
14303 {
14304 fn decode(
14305 slot: ::fidl_next::Slot<'_, Self>,
14306 _: &mut ___D,
14307 _: (),
14308 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14309 Ok(())
14310 }
14311 }
14312
14313 impl ::core::convert::From<crate::natural::NodeAttributesQuery> for NodeAttributesQuery {
14314 fn from(natural: crate::natural::NodeAttributesQuery) -> Self {
14315 Self { value: ::fidl_next::wire::Uint64::from(natural.bits()) }
14316 }
14317 }
14318
14319 impl ::fidl_next::IntoNatural for NodeAttributesQuery {
14320 type Natural = crate::natural::NodeAttributesQuery;
14321 }
14322
14323 #[derive(Clone, Debug)]
14325 #[repr(C)]
14326 pub struct NodeGetAttributesRequest {
14327 pub query: crate::wire::NodeAttributesQuery,
14328 }
14329
14330 static_assertions::const_assert_eq!(std::mem::size_of::<NodeGetAttributesRequest>(), 8);
14331 static_assertions::const_assert_eq!(std::mem::align_of::<NodeGetAttributesRequest>(), 8);
14332
14333 static_assertions::const_assert_eq!(std::mem::offset_of!(NodeGetAttributesRequest, query), 0);
14334
14335 impl ::fidl_next::Constrained for NodeGetAttributesRequest {
14336 type Constraint = ();
14337
14338 fn validate(
14339 _: ::fidl_next::Slot<'_, Self>,
14340 _: Self::Constraint,
14341 ) -> Result<(), ::fidl_next::ValidationError> {
14342 Ok(())
14343 }
14344 }
14345
14346 unsafe impl ::fidl_next::Wire for NodeGetAttributesRequest {
14347 type Narrowed<'de> = NodeGetAttributesRequest;
14348
14349 #[inline]
14350 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
14351 ::fidl_next::munge! {
14352 let Self {
14353 query,
14354
14355 } = &mut *out_;
14356 }
14357
14358 ::fidl_next::Wire::zero_padding(query);
14359 }
14360 }
14361
14362 unsafe impl<___D> ::fidl_next::Decode<___D> for NodeGetAttributesRequest
14363 where
14364 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
14365 {
14366 fn decode(
14367 slot_: ::fidl_next::Slot<'_, Self>,
14368 decoder_: &mut ___D,
14369 _: (),
14370 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14371 ::fidl_next::munge! {
14372 let Self {
14373 mut query,
14374
14375 } = slot_;
14376 }
14377
14378 let _field = query.as_mut();
14379
14380 ::fidl_next::Decode::decode(query.as_mut(), decoder_, ())?;
14381
14382 Ok(())
14383 }
14384 }
14385
14386 impl ::fidl_next::IntoNatural for NodeGetAttributesRequest {
14387 type Natural = crate::natural::NodeGetAttributesRequest;
14388 }
14389
14390 #[repr(C)]
14392 pub struct Options<'de> {
14393 pub(crate) table: ::fidl_next::wire::Table<'de>,
14394 }
14395
14396 impl<'de> Drop for Options<'de> {
14397 fn drop(&mut self) {
14398 let _ = self.table.get(1).map(|envelope| unsafe {
14399 envelope.read_unchecked::<crate::wire::NodeAttributesQuery>()
14400 });
14401
14402 let _ = self.table.get(2).map(|envelope| unsafe {
14403 envelope.read_unchecked::<crate::wire::MutableNodeAttributes<'de>>()
14404 });
14405 }
14406 }
14407
14408 impl ::fidl_next::Constrained for Options<'_> {
14409 type Constraint = ();
14410
14411 fn validate(
14412 _: ::fidl_next::Slot<'_, Self>,
14413 _: Self::Constraint,
14414 ) -> Result<(), ::fidl_next::ValidationError> {
14415 Ok(())
14416 }
14417 }
14418
14419 unsafe impl ::fidl_next::Wire for Options<'static> {
14420 type Narrowed<'de> = Options<'de>;
14421
14422 #[inline]
14423 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
14424 ::fidl_next::munge!(let Self { table } = out);
14425 ::fidl_next::wire::Table::zero_padding(table);
14426 }
14427 }
14428
14429 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Options<'de>
14430 where
14431 ___D: ::fidl_next::Decoder<'de> + ?Sized,
14432 {
14433 fn decode(
14434 slot: ::fidl_next::Slot<'_, Self>,
14435 decoder: &mut ___D,
14436 _: (),
14437 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14438 ::fidl_next::munge!(let Self { table } = slot);
14439
14440 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
14441 match ordinal {
14442 0 => unsafe { ::core::hint::unreachable_unchecked() },
14443
14444 1 => {
14445 ::fidl_next::wire::Envelope::decode_as::<
14446 ___D,
14447 crate::wire::NodeAttributesQuery,
14448 >(slot.as_mut(), decoder, ())?;
14449
14450 Ok(())
14451 }
14452
14453 2 => {
14454 ::fidl_next::wire::Envelope::decode_as::<
14455 ___D,
14456 crate::wire::MutableNodeAttributes<'de>,
14457 >(slot.as_mut(), decoder, ())?;
14458
14459 Ok(())
14460 }
14461
14462 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
14463 }
14464 })
14465 }
14466 }
14467
14468 impl<'de> Options<'de> {
14469 pub fn attributes(&self) -> ::core::option::Option<&crate::wire::NodeAttributesQuery> {
14470 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
14471 }
14472
14473 pub fn take_attributes(
14474 &mut self,
14475 ) -> ::core::option::Option<crate::wire::NodeAttributesQuery> {
14476 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
14477 }
14478
14479 pub fn create_attributes(
14480 &self,
14481 ) -> ::core::option::Option<&crate::wire::MutableNodeAttributes<'de>> {
14482 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
14483 }
14484
14485 pub fn take_create_attributes(
14486 &mut self,
14487 ) -> ::core::option::Option<crate::wire::MutableNodeAttributes<'de>> {
14488 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
14489 }
14490 }
14491
14492 impl<'de> ::core::fmt::Debug for Options<'de> {
14493 fn fmt(
14494 &self,
14495 f: &mut ::core::fmt::Formatter<'_>,
14496 ) -> ::core::result::Result<(), ::core::fmt::Error> {
14497 f.debug_struct("Options")
14498 .field("attributes", &self.attributes())
14499 .field("create_attributes", &self.create_attributes())
14500 .finish()
14501 }
14502 }
14503
14504 impl<'de> ::fidl_next::IntoNatural for Options<'de> {
14505 type Natural = crate::natural::Options;
14506 }
14507
14508 pub type DirectoryObject = ::fidl_next::wire::Unit;
14510
14511 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
14513 #[repr(transparent)]
14514 pub struct DirentType {
14515 pub(crate) value: u8,
14516 }
14517
14518 impl ::fidl_next::Constrained for DirentType {
14519 type Constraint = ();
14520
14521 fn validate(
14522 _: ::fidl_next::Slot<'_, Self>,
14523 _: Self::Constraint,
14524 ) -> Result<(), ::fidl_next::ValidationError> {
14525 Ok(())
14526 }
14527 }
14528
14529 unsafe impl ::fidl_next::Wire for DirentType {
14530 type Narrowed<'de> = Self;
14531
14532 #[inline]
14533 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
14534 }
14536 }
14537
14538 impl DirentType {
14539 pub const UNKNOWN: DirentType = DirentType { value: 0 };
14540
14541 pub const DIRECTORY: DirentType = DirentType { value: 4 };
14542
14543 pub const BLOCK_DEVICE: DirentType = DirentType { value: 6 };
14544
14545 pub const FILE: DirentType = DirentType { value: 8 };
14546
14547 pub const SYMLINK: DirentType = DirentType { value: 10 };
14548
14549 pub const SERVICE: DirentType = DirentType { value: 16 };
14550 }
14551
14552 unsafe impl<___D> ::fidl_next::Decode<___D> for DirentType
14553 where
14554 ___D: ?Sized,
14555 {
14556 fn decode(
14557 slot: ::fidl_next::Slot<'_, Self>,
14558 _: &mut ___D,
14559 _: (),
14560 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14561 Ok(())
14562 }
14563 }
14564
14565 impl ::core::convert::From<crate::natural::DirentType> for DirentType {
14566 fn from(natural: crate::natural::DirentType) -> Self {
14567 match natural {
14568 crate::natural::DirentType::Unknown => DirentType::UNKNOWN,
14569
14570 crate::natural::DirentType::Directory => DirentType::DIRECTORY,
14571
14572 crate::natural::DirentType::BlockDevice => DirentType::BLOCK_DEVICE,
14573
14574 crate::natural::DirentType::File => DirentType::FILE,
14575
14576 crate::natural::DirentType::Symlink => DirentType::SYMLINK,
14577
14578 crate::natural::DirentType::Service => DirentType::SERVICE,
14579
14580 crate::natural::DirentType::UnknownOrdinal_(value) => {
14581 DirentType { value: u8::from(value) }
14582 }
14583 }
14584 }
14585 }
14586
14587 impl ::fidl_next::IntoNatural for DirentType {
14588 type Natural = crate::natural::DirentType;
14589 }
14590
14591 #[derive(Debug)]
14593 #[repr(C)]
14594 pub struct ExtendedAttributeIteratorGetNextResponse<'de> {
14595 pub attributes: ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Vector<'de, u8>>,
14596
14597 pub last: bool,
14598 }
14599
14600 static_assertions::const_assert_eq!(
14601 std::mem::size_of::<ExtendedAttributeIteratorGetNextResponse<'_>>(),
14602 24
14603 );
14604 static_assertions::const_assert_eq!(
14605 std::mem::align_of::<ExtendedAttributeIteratorGetNextResponse<'_>>(),
14606 8
14607 );
14608
14609 static_assertions::const_assert_eq!(
14610 std::mem::offset_of!(ExtendedAttributeIteratorGetNextResponse<'_>, attributes),
14611 0
14612 );
14613
14614 static_assertions::const_assert_eq!(
14615 std::mem::offset_of!(ExtendedAttributeIteratorGetNextResponse<'_>, last),
14616 16
14617 );
14618
14619 impl ::fidl_next::Constrained for ExtendedAttributeIteratorGetNextResponse<'_> {
14620 type Constraint = ();
14621
14622 fn validate(
14623 _: ::fidl_next::Slot<'_, Self>,
14624 _: Self::Constraint,
14625 ) -> Result<(), ::fidl_next::ValidationError> {
14626 Ok(())
14627 }
14628 }
14629
14630 unsafe impl ::fidl_next::Wire for ExtendedAttributeIteratorGetNextResponse<'static> {
14631 type Narrowed<'de> = ExtendedAttributeIteratorGetNextResponse<'de>;
14632
14633 #[inline]
14634 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
14635 ::fidl_next::munge! {
14636 let Self {
14637 attributes,
14638 last,
14639
14640 } = &mut *out_;
14641 }
14642
14643 ::fidl_next::Wire::zero_padding(attributes);
14644
14645 ::fidl_next::Wire::zero_padding(last);
14646
14647 unsafe {
14648 out_.as_mut_ptr().cast::<u8>().add(17).write_bytes(0, 7);
14649 }
14650 }
14651 }
14652
14653 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExtendedAttributeIteratorGetNextResponse<'de>
14654 where
14655 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
14656 ___D: ::fidl_next::Decoder<'de>,
14657 {
14658 fn decode(
14659 slot_: ::fidl_next::Slot<'_, Self>,
14660 decoder_: &mut ___D,
14661 _: (),
14662 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14663 if slot_.as_bytes()[17..24] != [0u8; 7] {
14664 return Err(::fidl_next::DecodeError::InvalidPadding);
14665 }
14666
14667 ::fidl_next::munge! {
14668 let Self {
14669 mut attributes,
14670 mut last,
14671
14672 } = slot_;
14673 }
14674
14675 let _field = attributes.as_mut();
14676 ::fidl_next::Constrained::validate(_field, (128, (255, ())))?;
14677 ::fidl_next::Decode::decode(attributes.as_mut(), decoder_, (128, (255, ())))?;
14678
14679 let attributes = unsafe { attributes.deref_unchecked() };
14680
14681 if attributes.len() > 128 {
14682 return Err(::fidl_next::DecodeError::VectorTooLong {
14683 size: attributes.len() as u64,
14684 limit: 128,
14685 });
14686 }
14687
14688 let _field = last.as_mut();
14689
14690 ::fidl_next::Decode::decode(last.as_mut(), decoder_, ())?;
14691
14692 Ok(())
14693 }
14694 }
14695
14696 impl<'de> ::fidl_next::IntoNatural for ExtendedAttributeIteratorGetNextResponse<'de> {
14697 type Natural = crate::natural::ExtendedAttributeIteratorGetNextResponse;
14698 }
14699
14700 #[derive(Clone, Debug)]
14702 #[repr(C)]
14703 pub struct ReadableReadRequest {
14704 pub count: ::fidl_next::wire::Uint64,
14705 }
14706
14707 static_assertions::const_assert_eq!(std::mem::size_of::<ReadableReadRequest>(), 8);
14708 static_assertions::const_assert_eq!(std::mem::align_of::<ReadableReadRequest>(), 8);
14709
14710 static_assertions::const_assert_eq!(std::mem::offset_of!(ReadableReadRequest, count), 0);
14711
14712 impl ::fidl_next::Constrained for ReadableReadRequest {
14713 type Constraint = ();
14714
14715 fn validate(
14716 _: ::fidl_next::Slot<'_, Self>,
14717 _: Self::Constraint,
14718 ) -> Result<(), ::fidl_next::ValidationError> {
14719 Ok(())
14720 }
14721 }
14722
14723 unsafe impl ::fidl_next::Wire for ReadableReadRequest {
14724 type Narrowed<'de> = ReadableReadRequest;
14725
14726 #[inline]
14727 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
14728 ::fidl_next::munge! {
14729 let Self {
14730 count,
14731
14732 } = &mut *out_;
14733 }
14734
14735 ::fidl_next::Wire::zero_padding(count);
14736 }
14737 }
14738
14739 unsafe impl<___D> ::fidl_next::Decode<___D> for ReadableReadRequest
14740 where
14741 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
14742 {
14743 fn decode(
14744 slot_: ::fidl_next::Slot<'_, Self>,
14745 decoder_: &mut ___D,
14746 _: (),
14747 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14748 ::fidl_next::munge! {
14749 let Self {
14750 mut count,
14751
14752 } = slot_;
14753 }
14754
14755 let _field = count.as_mut();
14756
14757 ::fidl_next::Decode::decode(count.as_mut(), decoder_, ())?;
14758
14759 Ok(())
14760 }
14761 }
14762
14763 impl ::fidl_next::IntoNatural for ReadableReadRequest {
14764 type Natural = crate::natural::ReadableReadRequest;
14765 }
14766
14767 pub type Transfer<'de> = ::fidl_next::wire::Vector<'de, u8>;
14769
14770 #[derive(Debug)]
14772 #[repr(C)]
14773 pub struct ReadableReadResponse<'de> {
14774 pub data: ::fidl_next::wire::Vector<'de, u8>,
14775 }
14776
14777 static_assertions::const_assert_eq!(std::mem::size_of::<ReadableReadResponse<'_>>(), 16);
14778 static_assertions::const_assert_eq!(std::mem::align_of::<ReadableReadResponse<'_>>(), 8);
14779
14780 static_assertions::const_assert_eq!(std::mem::offset_of!(ReadableReadResponse<'_>, data), 0);
14781
14782 impl ::fidl_next::Constrained for ReadableReadResponse<'_> {
14783 type Constraint = ();
14784
14785 fn validate(
14786 _: ::fidl_next::Slot<'_, Self>,
14787 _: Self::Constraint,
14788 ) -> Result<(), ::fidl_next::ValidationError> {
14789 Ok(())
14790 }
14791 }
14792
14793 unsafe impl ::fidl_next::Wire for ReadableReadResponse<'static> {
14794 type Narrowed<'de> = ReadableReadResponse<'de>;
14795
14796 #[inline]
14797 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
14798 ::fidl_next::munge! {
14799 let Self {
14800 data,
14801
14802 } = &mut *out_;
14803 }
14804
14805 ::fidl_next::Wire::zero_padding(data);
14806 }
14807 }
14808
14809 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ReadableReadResponse<'de>
14810 where
14811 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
14812 ___D: ::fidl_next::Decoder<'de>,
14813 {
14814 fn decode(
14815 slot_: ::fidl_next::Slot<'_, Self>,
14816 decoder_: &mut ___D,
14817 _: (),
14818 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14819 ::fidl_next::munge! {
14820 let Self {
14821 mut data,
14822
14823 } = slot_;
14824 }
14825
14826 let _field = data.as_mut();
14827 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
14828 ::fidl_next::Decode::decode(data.as_mut(), decoder_, (8192, ()))?;
14829
14830 let data = unsafe { data.deref_unchecked() };
14831
14832 if data.len() > 8192 {
14833 return Err(::fidl_next::DecodeError::VectorTooLong {
14834 size: data.len() as u64,
14835 limit: 8192,
14836 });
14837 }
14838
14839 Ok(())
14840 }
14841 }
14842
14843 impl<'de> ::fidl_next::IntoNatural for ReadableReadResponse<'de> {
14844 type Natural = crate::natural::ReadableReadResponse;
14845 }
14846
14847 #[derive(Debug)]
14849 #[repr(C)]
14850 pub struct WritableWriteRequest<'de> {
14851 pub data: ::fidl_next::wire::Vector<'de, u8>,
14852 }
14853
14854 static_assertions::const_assert_eq!(std::mem::size_of::<WritableWriteRequest<'_>>(), 16);
14855 static_assertions::const_assert_eq!(std::mem::align_of::<WritableWriteRequest<'_>>(), 8);
14856
14857 static_assertions::const_assert_eq!(std::mem::offset_of!(WritableWriteRequest<'_>, data), 0);
14858
14859 impl ::fidl_next::Constrained for WritableWriteRequest<'_> {
14860 type Constraint = ();
14861
14862 fn validate(
14863 _: ::fidl_next::Slot<'_, Self>,
14864 _: Self::Constraint,
14865 ) -> Result<(), ::fidl_next::ValidationError> {
14866 Ok(())
14867 }
14868 }
14869
14870 unsafe impl ::fidl_next::Wire for WritableWriteRequest<'static> {
14871 type Narrowed<'de> = WritableWriteRequest<'de>;
14872
14873 #[inline]
14874 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
14875 ::fidl_next::munge! {
14876 let Self {
14877 data,
14878
14879 } = &mut *out_;
14880 }
14881
14882 ::fidl_next::Wire::zero_padding(data);
14883 }
14884 }
14885
14886 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for WritableWriteRequest<'de>
14887 where
14888 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
14889 ___D: ::fidl_next::Decoder<'de>,
14890 {
14891 fn decode(
14892 slot_: ::fidl_next::Slot<'_, Self>,
14893 decoder_: &mut ___D,
14894 _: (),
14895 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14896 ::fidl_next::munge! {
14897 let Self {
14898 mut data,
14899
14900 } = slot_;
14901 }
14902
14903 let _field = data.as_mut();
14904 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
14905 ::fidl_next::Decode::decode(data.as_mut(), decoder_, (8192, ()))?;
14906
14907 let data = unsafe { data.deref_unchecked() };
14908
14909 if data.len() > 8192 {
14910 return Err(::fidl_next::DecodeError::VectorTooLong {
14911 size: data.len() as u64,
14912 limit: 8192,
14913 });
14914 }
14915
14916 Ok(())
14917 }
14918 }
14919
14920 impl<'de> ::fidl_next::IntoNatural for WritableWriteRequest<'de> {
14921 type Natural = crate::natural::WritableWriteRequest;
14922 }
14923
14924 #[derive(Clone, Debug)]
14926 #[repr(C)]
14927 pub struct WritableWriteResponse {
14928 pub actual_count: ::fidl_next::wire::Uint64,
14929 }
14930
14931 static_assertions::const_assert_eq!(std::mem::size_of::<WritableWriteResponse>(), 8);
14932 static_assertions::const_assert_eq!(std::mem::align_of::<WritableWriteResponse>(), 8);
14933
14934 static_assertions::const_assert_eq!(
14935 std::mem::offset_of!(WritableWriteResponse, actual_count),
14936 0
14937 );
14938
14939 impl ::fidl_next::Constrained for WritableWriteResponse {
14940 type Constraint = ();
14941
14942 fn validate(
14943 _: ::fidl_next::Slot<'_, Self>,
14944 _: Self::Constraint,
14945 ) -> Result<(), ::fidl_next::ValidationError> {
14946 Ok(())
14947 }
14948 }
14949
14950 unsafe impl ::fidl_next::Wire for WritableWriteResponse {
14951 type Narrowed<'de> = WritableWriteResponse;
14952
14953 #[inline]
14954 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
14955 ::fidl_next::munge! {
14956 let Self {
14957 actual_count,
14958
14959 } = &mut *out_;
14960 }
14961
14962 ::fidl_next::Wire::zero_padding(actual_count);
14963 }
14964 }
14965
14966 unsafe impl<___D> ::fidl_next::Decode<___D> for WritableWriteResponse
14967 where
14968 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
14969 {
14970 fn decode(
14971 slot_: ::fidl_next::Slot<'_, Self>,
14972 decoder_: &mut ___D,
14973 _: (),
14974 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
14975 ::fidl_next::munge! {
14976 let Self {
14977 mut actual_count,
14978
14979 } = slot_;
14980 }
14981
14982 let _field = actual_count.as_mut();
14983
14984 ::fidl_next::Decode::decode(actual_count.as_mut(), decoder_, ())?;
14985
14986 Ok(())
14987 }
14988 }
14989
14990 impl ::fidl_next::IntoNatural for WritableWriteResponse {
14991 type Natural = crate::natural::WritableWriteResponse;
14992 }
14993
14994 #[derive(Clone, Debug)]
14996 #[repr(C)]
14997 pub struct FileSeekRequest {
14998 pub origin: crate::wire::SeekOrigin,
14999
15000 pub offset: ::fidl_next::wire::Int64,
15001 }
15002
15003 static_assertions::const_assert_eq!(std::mem::size_of::<FileSeekRequest>(), 16);
15004 static_assertions::const_assert_eq!(std::mem::align_of::<FileSeekRequest>(), 8);
15005
15006 static_assertions::const_assert_eq!(std::mem::offset_of!(FileSeekRequest, origin), 0);
15007
15008 static_assertions::const_assert_eq!(std::mem::offset_of!(FileSeekRequest, offset), 8);
15009
15010 impl ::fidl_next::Constrained for FileSeekRequest {
15011 type Constraint = ();
15012
15013 fn validate(
15014 _: ::fidl_next::Slot<'_, Self>,
15015 _: Self::Constraint,
15016 ) -> Result<(), ::fidl_next::ValidationError> {
15017 Ok(())
15018 }
15019 }
15020
15021 unsafe impl ::fidl_next::Wire for FileSeekRequest {
15022 type Narrowed<'de> = FileSeekRequest;
15023
15024 #[inline]
15025 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15026 ::fidl_next::munge! {
15027 let Self {
15028 origin,
15029 offset,
15030
15031 } = &mut *out_;
15032 }
15033
15034 ::fidl_next::Wire::zero_padding(origin);
15035
15036 ::fidl_next::Wire::zero_padding(offset);
15037
15038 unsafe {
15039 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
15040 }
15041 }
15042 }
15043
15044 unsafe impl<___D> ::fidl_next::Decode<___D> for FileSeekRequest
15045 where
15046 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15047 {
15048 fn decode(
15049 slot_: ::fidl_next::Slot<'_, Self>,
15050 decoder_: &mut ___D,
15051 _: (),
15052 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15053 if slot_.as_bytes()[4..8] != [0u8; 4] {
15054 return Err(::fidl_next::DecodeError::InvalidPadding);
15055 }
15056
15057 ::fidl_next::munge! {
15058 let Self {
15059 mut origin,
15060 mut offset,
15061
15062 } = slot_;
15063 }
15064
15065 let _field = origin.as_mut();
15066
15067 ::fidl_next::Decode::decode(origin.as_mut(), decoder_, ())?;
15068
15069 let _field = offset.as_mut();
15070
15071 ::fidl_next::Decode::decode(offset.as_mut(), decoder_, ())?;
15072
15073 Ok(())
15074 }
15075 }
15076
15077 impl ::fidl_next::IntoNatural for FileSeekRequest {
15078 type Natural = crate::natural::FileSeekRequest;
15079 }
15080
15081 #[derive(Clone, Debug)]
15083 #[repr(C)]
15084 pub struct FileSeekResponse {
15085 pub offset_from_start: ::fidl_next::wire::Uint64,
15086 }
15087
15088 static_assertions::const_assert_eq!(std::mem::size_of::<FileSeekResponse>(), 8);
15089 static_assertions::const_assert_eq!(std::mem::align_of::<FileSeekResponse>(), 8);
15090
15091 static_assertions::const_assert_eq!(
15092 std::mem::offset_of!(FileSeekResponse, offset_from_start),
15093 0
15094 );
15095
15096 impl ::fidl_next::Constrained for FileSeekResponse {
15097 type Constraint = ();
15098
15099 fn validate(
15100 _: ::fidl_next::Slot<'_, Self>,
15101 _: Self::Constraint,
15102 ) -> Result<(), ::fidl_next::ValidationError> {
15103 Ok(())
15104 }
15105 }
15106
15107 unsafe impl ::fidl_next::Wire for FileSeekResponse {
15108 type Narrowed<'de> = FileSeekResponse;
15109
15110 #[inline]
15111 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15112 ::fidl_next::munge! {
15113 let Self {
15114 offset_from_start,
15115
15116 } = &mut *out_;
15117 }
15118
15119 ::fidl_next::Wire::zero_padding(offset_from_start);
15120 }
15121 }
15122
15123 unsafe impl<___D> ::fidl_next::Decode<___D> for FileSeekResponse
15124 where
15125 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15126 {
15127 fn decode(
15128 slot_: ::fidl_next::Slot<'_, Self>,
15129 decoder_: &mut ___D,
15130 _: (),
15131 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15132 ::fidl_next::munge! {
15133 let Self {
15134 mut offset_from_start,
15135
15136 } = slot_;
15137 }
15138
15139 let _field = offset_from_start.as_mut();
15140
15141 ::fidl_next::Decode::decode(offset_from_start.as_mut(), decoder_, ())?;
15142
15143 Ok(())
15144 }
15145 }
15146
15147 impl ::fidl_next::IntoNatural for FileSeekResponse {
15148 type Natural = crate::natural::FileSeekResponse;
15149 }
15150
15151 #[derive(Clone, Debug)]
15153 #[repr(C)]
15154 pub struct FileReadAtRequest {
15155 pub count: ::fidl_next::wire::Uint64,
15156
15157 pub offset: ::fidl_next::wire::Uint64,
15158 }
15159
15160 static_assertions::const_assert_eq!(std::mem::size_of::<FileReadAtRequest>(), 16);
15161 static_assertions::const_assert_eq!(std::mem::align_of::<FileReadAtRequest>(), 8);
15162
15163 static_assertions::const_assert_eq!(std::mem::offset_of!(FileReadAtRequest, count), 0);
15164
15165 static_assertions::const_assert_eq!(std::mem::offset_of!(FileReadAtRequest, offset), 8);
15166
15167 impl ::fidl_next::Constrained for FileReadAtRequest {
15168 type Constraint = ();
15169
15170 fn validate(
15171 _: ::fidl_next::Slot<'_, Self>,
15172 _: Self::Constraint,
15173 ) -> Result<(), ::fidl_next::ValidationError> {
15174 Ok(())
15175 }
15176 }
15177
15178 unsafe impl ::fidl_next::Wire for FileReadAtRequest {
15179 type Narrowed<'de> = FileReadAtRequest;
15180
15181 #[inline]
15182 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15183 ::fidl_next::munge! {
15184 let Self {
15185 count,
15186 offset,
15187
15188 } = &mut *out_;
15189 }
15190
15191 ::fidl_next::Wire::zero_padding(count);
15192
15193 ::fidl_next::Wire::zero_padding(offset);
15194 }
15195 }
15196
15197 unsafe impl<___D> ::fidl_next::Decode<___D> for FileReadAtRequest
15198 where
15199 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15200 {
15201 fn decode(
15202 slot_: ::fidl_next::Slot<'_, Self>,
15203 decoder_: &mut ___D,
15204 _: (),
15205 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15206 ::fidl_next::munge! {
15207 let Self {
15208 mut count,
15209 mut offset,
15210
15211 } = slot_;
15212 }
15213
15214 let _field = count.as_mut();
15215
15216 ::fidl_next::Decode::decode(count.as_mut(), decoder_, ())?;
15217
15218 let _field = offset.as_mut();
15219
15220 ::fidl_next::Decode::decode(offset.as_mut(), decoder_, ())?;
15221
15222 Ok(())
15223 }
15224 }
15225
15226 impl ::fidl_next::IntoNatural for FileReadAtRequest {
15227 type Natural = crate::natural::FileReadAtRequest;
15228 }
15229
15230 #[derive(Debug)]
15232 #[repr(C)]
15233 pub struct FileReadAtResponse<'de> {
15234 pub data: ::fidl_next::wire::Vector<'de, u8>,
15235 }
15236
15237 static_assertions::const_assert_eq!(std::mem::size_of::<FileReadAtResponse<'_>>(), 16);
15238 static_assertions::const_assert_eq!(std::mem::align_of::<FileReadAtResponse<'_>>(), 8);
15239
15240 static_assertions::const_assert_eq!(std::mem::offset_of!(FileReadAtResponse<'_>, data), 0);
15241
15242 impl ::fidl_next::Constrained for FileReadAtResponse<'_> {
15243 type Constraint = ();
15244
15245 fn validate(
15246 _: ::fidl_next::Slot<'_, Self>,
15247 _: Self::Constraint,
15248 ) -> Result<(), ::fidl_next::ValidationError> {
15249 Ok(())
15250 }
15251 }
15252
15253 unsafe impl ::fidl_next::Wire for FileReadAtResponse<'static> {
15254 type Narrowed<'de> = FileReadAtResponse<'de>;
15255
15256 #[inline]
15257 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15258 ::fidl_next::munge! {
15259 let Self {
15260 data,
15261
15262 } = &mut *out_;
15263 }
15264
15265 ::fidl_next::Wire::zero_padding(data);
15266 }
15267 }
15268
15269 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for FileReadAtResponse<'de>
15270 where
15271 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15272 ___D: ::fidl_next::Decoder<'de>,
15273 {
15274 fn decode(
15275 slot_: ::fidl_next::Slot<'_, Self>,
15276 decoder_: &mut ___D,
15277 _: (),
15278 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15279 ::fidl_next::munge! {
15280 let Self {
15281 mut data,
15282
15283 } = slot_;
15284 }
15285
15286 let _field = data.as_mut();
15287 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
15288 ::fidl_next::Decode::decode(data.as_mut(), decoder_, (8192, ()))?;
15289
15290 let data = unsafe { data.deref_unchecked() };
15291
15292 if data.len() > 8192 {
15293 return Err(::fidl_next::DecodeError::VectorTooLong {
15294 size: data.len() as u64,
15295 limit: 8192,
15296 });
15297 }
15298
15299 Ok(())
15300 }
15301 }
15302
15303 impl<'de> ::fidl_next::IntoNatural for FileReadAtResponse<'de> {
15304 type Natural = crate::natural::FileReadAtResponse;
15305 }
15306
15307 #[derive(Debug)]
15309 #[repr(C)]
15310 pub struct FileWriteAtRequest<'de> {
15311 pub data: ::fidl_next::wire::Vector<'de, u8>,
15312
15313 pub offset: ::fidl_next::wire::Uint64,
15314 }
15315
15316 static_assertions::const_assert_eq!(std::mem::size_of::<FileWriteAtRequest<'_>>(), 24);
15317 static_assertions::const_assert_eq!(std::mem::align_of::<FileWriteAtRequest<'_>>(), 8);
15318
15319 static_assertions::const_assert_eq!(std::mem::offset_of!(FileWriteAtRequest<'_>, data), 0);
15320
15321 static_assertions::const_assert_eq!(std::mem::offset_of!(FileWriteAtRequest<'_>, offset), 16);
15322
15323 impl ::fidl_next::Constrained for FileWriteAtRequest<'_> {
15324 type Constraint = ();
15325
15326 fn validate(
15327 _: ::fidl_next::Slot<'_, Self>,
15328 _: Self::Constraint,
15329 ) -> Result<(), ::fidl_next::ValidationError> {
15330 Ok(())
15331 }
15332 }
15333
15334 unsafe impl ::fidl_next::Wire for FileWriteAtRequest<'static> {
15335 type Narrowed<'de> = FileWriteAtRequest<'de>;
15336
15337 #[inline]
15338 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15339 ::fidl_next::munge! {
15340 let Self {
15341 data,
15342 offset,
15343
15344 } = &mut *out_;
15345 }
15346
15347 ::fidl_next::Wire::zero_padding(data);
15348
15349 ::fidl_next::Wire::zero_padding(offset);
15350 }
15351 }
15352
15353 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for FileWriteAtRequest<'de>
15354 where
15355 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15356 ___D: ::fidl_next::Decoder<'de>,
15357 {
15358 fn decode(
15359 slot_: ::fidl_next::Slot<'_, Self>,
15360 decoder_: &mut ___D,
15361 _: (),
15362 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15363 ::fidl_next::munge! {
15364 let Self {
15365 mut data,
15366 mut offset,
15367
15368 } = slot_;
15369 }
15370
15371 let _field = data.as_mut();
15372 ::fidl_next::Constrained::validate(_field, (8192, ()))?;
15373 ::fidl_next::Decode::decode(data.as_mut(), decoder_, (8192, ()))?;
15374
15375 let data = unsafe { data.deref_unchecked() };
15376
15377 if data.len() > 8192 {
15378 return Err(::fidl_next::DecodeError::VectorTooLong {
15379 size: data.len() as u64,
15380 limit: 8192,
15381 });
15382 }
15383
15384 let _field = offset.as_mut();
15385
15386 ::fidl_next::Decode::decode(offset.as_mut(), decoder_, ())?;
15387
15388 Ok(())
15389 }
15390 }
15391
15392 impl<'de> ::fidl_next::IntoNatural for FileWriteAtRequest<'de> {
15393 type Natural = crate::natural::FileWriteAtRequest;
15394 }
15395
15396 #[derive(Clone, Debug)]
15398 #[repr(C)]
15399 pub struct FileWriteAtResponse {
15400 pub actual_count: ::fidl_next::wire::Uint64,
15401 }
15402
15403 static_assertions::const_assert_eq!(std::mem::size_of::<FileWriteAtResponse>(), 8);
15404 static_assertions::const_assert_eq!(std::mem::align_of::<FileWriteAtResponse>(), 8);
15405
15406 static_assertions::const_assert_eq!(std::mem::offset_of!(FileWriteAtResponse, actual_count), 0);
15407
15408 impl ::fidl_next::Constrained for FileWriteAtResponse {
15409 type Constraint = ();
15410
15411 fn validate(
15412 _: ::fidl_next::Slot<'_, Self>,
15413 _: Self::Constraint,
15414 ) -> Result<(), ::fidl_next::ValidationError> {
15415 Ok(())
15416 }
15417 }
15418
15419 unsafe impl ::fidl_next::Wire for FileWriteAtResponse {
15420 type Narrowed<'de> = FileWriteAtResponse;
15421
15422 #[inline]
15423 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15424 ::fidl_next::munge! {
15425 let Self {
15426 actual_count,
15427
15428 } = &mut *out_;
15429 }
15430
15431 ::fidl_next::Wire::zero_padding(actual_count);
15432 }
15433 }
15434
15435 unsafe impl<___D> ::fidl_next::Decode<___D> for FileWriteAtResponse
15436 where
15437 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15438 {
15439 fn decode(
15440 slot_: ::fidl_next::Slot<'_, Self>,
15441 decoder_: &mut ___D,
15442 _: (),
15443 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15444 ::fidl_next::munge! {
15445 let Self {
15446 mut actual_count,
15447
15448 } = slot_;
15449 }
15450
15451 let _field = actual_count.as_mut();
15452
15453 ::fidl_next::Decode::decode(actual_count.as_mut(), decoder_, ())?;
15454
15455 Ok(())
15456 }
15457 }
15458
15459 impl ::fidl_next::IntoNatural for FileWriteAtResponse {
15460 type Natural = crate::natural::FileWriteAtResponse;
15461 }
15462
15463 #[derive(Clone, Debug)]
15465 #[repr(C)]
15466 pub struct FileResizeRequest {
15467 pub length: ::fidl_next::wire::Uint64,
15468 }
15469
15470 static_assertions::const_assert_eq!(std::mem::size_of::<FileResizeRequest>(), 8);
15471 static_assertions::const_assert_eq!(std::mem::align_of::<FileResizeRequest>(), 8);
15472
15473 static_assertions::const_assert_eq!(std::mem::offset_of!(FileResizeRequest, length), 0);
15474
15475 impl ::fidl_next::Constrained for FileResizeRequest {
15476 type Constraint = ();
15477
15478 fn validate(
15479 _: ::fidl_next::Slot<'_, Self>,
15480 _: Self::Constraint,
15481 ) -> Result<(), ::fidl_next::ValidationError> {
15482 Ok(())
15483 }
15484 }
15485
15486 unsafe impl ::fidl_next::Wire for FileResizeRequest {
15487 type Narrowed<'de> = FileResizeRequest;
15488
15489 #[inline]
15490 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15491 ::fidl_next::munge! {
15492 let Self {
15493 length,
15494
15495 } = &mut *out_;
15496 }
15497
15498 ::fidl_next::Wire::zero_padding(length);
15499 }
15500 }
15501
15502 unsafe impl<___D> ::fidl_next::Decode<___D> for FileResizeRequest
15503 where
15504 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15505 {
15506 fn decode(
15507 slot_: ::fidl_next::Slot<'_, Self>,
15508 decoder_: &mut ___D,
15509 _: (),
15510 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15511 ::fidl_next::munge! {
15512 let Self {
15513 mut length,
15514
15515 } = slot_;
15516 }
15517
15518 let _field = length.as_mut();
15519
15520 ::fidl_next::Decode::decode(length.as_mut(), decoder_, ())?;
15521
15522 Ok(())
15523 }
15524 }
15525
15526 impl ::fidl_next::IntoNatural for FileResizeRequest {
15527 type Natural = crate::natural::FileResizeRequest;
15528 }
15529
15530 pub type FileResizeResponse = ::fidl_next::wire::Unit;
15532
15533 #[derive(Clone, Copy, Debug)]
15535 #[repr(transparent)]
15536 pub struct VmoFlags {
15537 pub(crate) value: ::fidl_next::wire::Uint32,
15538 }
15539
15540 impl ::fidl_next::Constrained for VmoFlags {
15541 type Constraint = ();
15542
15543 fn validate(
15544 _: ::fidl_next::Slot<'_, Self>,
15545 _: Self::Constraint,
15546 ) -> Result<(), ::fidl_next::ValidationError> {
15547 Ok(())
15548 }
15549 }
15550
15551 unsafe impl ::fidl_next::Wire for VmoFlags {
15552 type Narrowed<'de> = Self;
15553
15554 #[inline]
15555 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
15556 }
15558 }
15559
15560 unsafe impl<___D> ::fidl_next::Decode<___D> for VmoFlags
15561 where
15562 ___D: ?Sized,
15563 {
15564 fn decode(
15565 slot: ::fidl_next::Slot<'_, Self>,
15566 _: &mut ___D,
15567 _: (),
15568 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15569 ::fidl_next::munge!(let Self { value } = slot);
15570 let set = u32::from(*value);
15571 if set & !crate::natural::VmoFlags::all().bits() != 0 {
15572 return Err(::fidl_next::DecodeError::InvalidBits {
15573 expected: crate::natural::VmoFlags::all().bits() as usize,
15574 actual: set as usize,
15575 });
15576 }
15577
15578 Ok(())
15579 }
15580 }
15581
15582 impl ::core::convert::From<crate::natural::VmoFlags> for VmoFlags {
15583 fn from(natural: crate::natural::VmoFlags) -> Self {
15584 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
15585 }
15586 }
15587
15588 impl ::fidl_next::IntoNatural for VmoFlags {
15589 type Natural = crate::natural::VmoFlags;
15590 }
15591
15592 #[derive(Clone, Debug)]
15594 #[repr(C)]
15595 pub struct FileGetBackingMemoryRequest {
15596 pub flags: crate::wire::VmoFlags,
15597 }
15598
15599 static_assertions::const_assert_eq!(std::mem::size_of::<FileGetBackingMemoryRequest>(), 4);
15600 static_assertions::const_assert_eq!(std::mem::align_of::<FileGetBackingMemoryRequest>(), 4);
15601
15602 static_assertions::const_assert_eq!(
15603 std::mem::offset_of!(FileGetBackingMemoryRequest, flags),
15604 0
15605 );
15606
15607 impl ::fidl_next::Constrained for FileGetBackingMemoryRequest {
15608 type Constraint = ();
15609
15610 fn validate(
15611 _: ::fidl_next::Slot<'_, Self>,
15612 _: Self::Constraint,
15613 ) -> Result<(), ::fidl_next::ValidationError> {
15614 Ok(())
15615 }
15616 }
15617
15618 unsafe impl ::fidl_next::Wire for FileGetBackingMemoryRequest {
15619 type Narrowed<'de> = FileGetBackingMemoryRequest;
15620
15621 #[inline]
15622 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15623 ::fidl_next::munge! {
15624 let Self {
15625 flags,
15626
15627 } = &mut *out_;
15628 }
15629
15630 ::fidl_next::Wire::zero_padding(flags);
15631 }
15632 }
15633
15634 unsafe impl<___D> ::fidl_next::Decode<___D> for FileGetBackingMemoryRequest
15635 where
15636 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15637 {
15638 fn decode(
15639 slot_: ::fidl_next::Slot<'_, Self>,
15640 decoder_: &mut ___D,
15641 _: (),
15642 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15643 ::fidl_next::munge! {
15644 let Self {
15645 mut flags,
15646
15647 } = slot_;
15648 }
15649
15650 let _field = flags.as_mut();
15651
15652 ::fidl_next::Decode::decode(flags.as_mut(), decoder_, ())?;
15653
15654 Ok(())
15655 }
15656 }
15657
15658 impl ::fidl_next::IntoNatural for FileGetBackingMemoryRequest {
15659 type Natural = crate::natural::FileGetBackingMemoryRequest;
15660 }
15661
15662 pub type LinkableLinkIntoResponse = ::fidl_next::wire::Unit;
15664
15665 pub type FileAllocateResponse = ::fidl_next::wire::Unit;
15667
15668 pub type FileEnableVerityResponse = ::fidl_next::wire::Unit;
15670
15671 #[derive(Clone, Copy, Debug)]
15673 #[repr(transparent)]
15674 pub struct FileSignal {
15675 pub(crate) value: ::fidl_next::wire::Uint32,
15676 }
15677
15678 impl ::fidl_next::Constrained for FileSignal {
15679 type Constraint = ();
15680
15681 fn validate(
15682 _: ::fidl_next::Slot<'_, Self>,
15683 _: Self::Constraint,
15684 ) -> Result<(), ::fidl_next::ValidationError> {
15685 Ok(())
15686 }
15687 }
15688
15689 unsafe impl ::fidl_next::Wire for FileSignal {
15690 type Narrowed<'de> = Self;
15691
15692 #[inline]
15693 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
15694 }
15696 }
15697
15698 unsafe impl<___D> ::fidl_next::Decode<___D> for FileSignal
15699 where
15700 ___D: ?Sized,
15701 {
15702 fn decode(
15703 slot: ::fidl_next::Slot<'_, Self>,
15704 _: &mut ___D,
15705 _: (),
15706 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15707 ::fidl_next::munge!(let Self { value } = slot);
15708 let set = u32::from(*value);
15709 if set & !crate::natural::FileSignal::all().bits() != 0 {
15710 return Err(::fidl_next::DecodeError::InvalidBits {
15711 expected: crate::natural::FileSignal::all().bits() as usize,
15712 actual: set as usize,
15713 });
15714 }
15715
15716 Ok(())
15717 }
15718 }
15719
15720 impl ::core::convert::From<crate::natural::FileSignal> for FileSignal {
15721 fn from(natural: crate::natural::FileSignal) -> Self {
15722 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
15723 }
15724 }
15725
15726 impl ::fidl_next::IntoNatural for FileSignal {
15727 type Natural = crate::natural::FileSignal;
15728 }
15729
15730 #[derive(Clone, Debug)]
15732 #[repr(C)]
15733 pub struct FilesystemInfo {
15734 pub total_bytes: ::fidl_next::wire::Uint64,
15735
15736 pub used_bytes: ::fidl_next::wire::Uint64,
15737
15738 pub total_nodes: ::fidl_next::wire::Uint64,
15739
15740 pub used_nodes: ::fidl_next::wire::Uint64,
15741
15742 pub free_shared_pool_bytes: ::fidl_next::wire::Uint64,
15743
15744 pub fs_id: ::fidl_next::wire::Uint64,
15745
15746 pub block_size: ::fidl_next::wire::Uint32,
15747
15748 pub max_filename_size: ::fidl_next::wire::Uint32,
15749
15750 pub fs_type: ::fidl_next::wire::Uint32,
15751
15752 pub padding: ::fidl_next::wire::Uint32,
15753
15754 pub name: [i8; 32],
15755 }
15756
15757 static_assertions::const_assert_eq!(std::mem::size_of::<FilesystemInfo>(), 96);
15758 static_assertions::const_assert_eq!(std::mem::align_of::<FilesystemInfo>(), 8);
15759
15760 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, total_bytes), 0);
15761
15762 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, used_bytes), 8);
15763
15764 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, total_nodes), 16);
15765
15766 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, used_nodes), 24);
15767
15768 static_assertions::const_assert_eq!(
15769 std::mem::offset_of!(FilesystemInfo, free_shared_pool_bytes),
15770 32
15771 );
15772
15773 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, fs_id), 40);
15774
15775 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, block_size), 48);
15776
15777 static_assertions::const_assert_eq!(
15778 std::mem::offset_of!(FilesystemInfo, max_filename_size),
15779 52
15780 );
15781
15782 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, fs_type), 56);
15783
15784 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, padding), 60);
15785
15786 static_assertions::const_assert_eq!(std::mem::offset_of!(FilesystemInfo, name), 64);
15787
15788 impl ::fidl_next::Constrained for FilesystemInfo {
15789 type Constraint = ();
15790
15791 fn validate(
15792 _: ::fidl_next::Slot<'_, Self>,
15793 _: Self::Constraint,
15794 ) -> Result<(), ::fidl_next::ValidationError> {
15795 Ok(())
15796 }
15797 }
15798
15799 unsafe impl ::fidl_next::Wire for FilesystemInfo {
15800 type Narrowed<'de> = FilesystemInfo;
15801
15802 #[inline]
15803 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15804 ::fidl_next::munge! {
15805 let Self {
15806 total_bytes,
15807 used_bytes,
15808 total_nodes,
15809 used_nodes,
15810 free_shared_pool_bytes,
15811 fs_id,
15812 block_size,
15813 max_filename_size,
15814 fs_type,
15815 padding,
15816 name,
15817
15818 } = &mut *out_;
15819 }
15820
15821 ::fidl_next::Wire::zero_padding(total_bytes);
15822
15823 ::fidl_next::Wire::zero_padding(used_bytes);
15824
15825 ::fidl_next::Wire::zero_padding(total_nodes);
15826
15827 ::fidl_next::Wire::zero_padding(used_nodes);
15828
15829 ::fidl_next::Wire::zero_padding(free_shared_pool_bytes);
15830
15831 ::fidl_next::Wire::zero_padding(fs_id);
15832
15833 ::fidl_next::Wire::zero_padding(block_size);
15834
15835 ::fidl_next::Wire::zero_padding(max_filename_size);
15836
15837 ::fidl_next::Wire::zero_padding(fs_type);
15838
15839 ::fidl_next::Wire::zero_padding(padding);
15840
15841 ::fidl_next::Wire::zero_padding(name);
15842 }
15843 }
15844
15845 unsafe impl<___D> ::fidl_next::Decode<___D> for FilesystemInfo
15846 where
15847 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15848 {
15849 fn decode(
15850 slot_: ::fidl_next::Slot<'_, Self>,
15851 decoder_: &mut ___D,
15852 _: (),
15853 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15854 ::fidl_next::munge! {
15855 let Self {
15856 mut total_bytes,
15857 mut used_bytes,
15858 mut total_nodes,
15859 mut used_nodes,
15860 mut free_shared_pool_bytes,
15861 mut fs_id,
15862 mut block_size,
15863 mut max_filename_size,
15864 mut fs_type,
15865 mut padding,
15866 mut name,
15867
15868 } = slot_;
15869 }
15870
15871 let _field = total_bytes.as_mut();
15872
15873 ::fidl_next::Decode::decode(total_bytes.as_mut(), decoder_, ())?;
15874
15875 let _field = used_bytes.as_mut();
15876
15877 ::fidl_next::Decode::decode(used_bytes.as_mut(), decoder_, ())?;
15878
15879 let _field = total_nodes.as_mut();
15880
15881 ::fidl_next::Decode::decode(total_nodes.as_mut(), decoder_, ())?;
15882
15883 let _field = used_nodes.as_mut();
15884
15885 ::fidl_next::Decode::decode(used_nodes.as_mut(), decoder_, ())?;
15886
15887 let _field = free_shared_pool_bytes.as_mut();
15888
15889 ::fidl_next::Decode::decode(free_shared_pool_bytes.as_mut(), decoder_, ())?;
15890
15891 let _field = fs_id.as_mut();
15892
15893 ::fidl_next::Decode::decode(fs_id.as_mut(), decoder_, ())?;
15894
15895 let _field = block_size.as_mut();
15896
15897 ::fidl_next::Decode::decode(block_size.as_mut(), decoder_, ())?;
15898
15899 let _field = max_filename_size.as_mut();
15900
15901 ::fidl_next::Decode::decode(max_filename_size.as_mut(), decoder_, ())?;
15902
15903 let _field = fs_type.as_mut();
15904
15905 ::fidl_next::Decode::decode(fs_type.as_mut(), decoder_, ())?;
15906
15907 let _field = padding.as_mut();
15908
15909 ::fidl_next::Decode::decode(padding.as_mut(), decoder_, ())?;
15910
15911 let _field = name.as_mut();
15912
15913 ::fidl_next::Decode::decode(name.as_mut(), decoder_, ())?;
15914
15915 Ok(())
15916 }
15917 }
15918
15919 impl ::fidl_next::IntoNatural for FilesystemInfo {
15920 type Natural = crate::natural::FilesystemInfo;
15921 }
15922
15923 pub type Service = ::fidl_next::wire::Unit;
15925
15926 #[derive(Debug)]
15928 #[repr(C)]
15929 pub struct SymlinkObject<'de> {
15930 pub target: ::fidl_next::wire::Vector<'de, u8>,
15931 }
15932
15933 static_assertions::const_assert_eq!(std::mem::size_of::<SymlinkObject<'_>>(), 16);
15934 static_assertions::const_assert_eq!(std::mem::align_of::<SymlinkObject<'_>>(), 8);
15935
15936 static_assertions::const_assert_eq!(std::mem::offset_of!(SymlinkObject<'_>, target), 0);
15937
15938 impl ::fidl_next::Constrained for SymlinkObject<'_> {
15939 type Constraint = ();
15940
15941 fn validate(
15942 _: ::fidl_next::Slot<'_, Self>,
15943 _: Self::Constraint,
15944 ) -> Result<(), ::fidl_next::ValidationError> {
15945 Ok(())
15946 }
15947 }
15948
15949 unsafe impl ::fidl_next::Wire for SymlinkObject<'static> {
15950 type Narrowed<'de> = SymlinkObject<'de>;
15951
15952 #[inline]
15953 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
15954 ::fidl_next::munge! {
15955 let Self {
15956 target,
15957
15958 } = &mut *out_;
15959 }
15960
15961 ::fidl_next::Wire::zero_padding(target);
15962 }
15963 }
15964
15965 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for SymlinkObject<'de>
15966 where
15967 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
15968 ___D: ::fidl_next::Decoder<'de>,
15969 {
15970 fn decode(
15971 slot_: ::fidl_next::Slot<'_, Self>,
15972 decoder_: &mut ___D,
15973 _: (),
15974 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
15975 ::fidl_next::munge! {
15976 let Self {
15977 mut target,
15978
15979 } = slot_;
15980 }
15981
15982 let _field = target.as_mut();
15983 ::fidl_next::Constrained::validate(_field, (4095, ()))?;
15984 ::fidl_next::Decode::decode(target.as_mut(), decoder_, (4095, ()))?;
15985
15986 let target = unsafe { target.deref_unchecked() };
15987
15988 if target.len() > 4095 {
15989 return Err(::fidl_next::DecodeError::VectorTooLong {
15990 size: target.len() as u64,
15991 limit: 4095,
15992 });
15993 }
15994
15995 Ok(())
15996 }
15997 }
15998
15999 impl<'de> ::fidl_next::IntoNatural for SymlinkObject<'de> {
16000 type Natural = crate::natural::SymlinkObject;
16001 }
16002
16003 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
16005 #[repr(transparent)]
16006 pub struct WatchEvent {
16007 pub(crate) value: u8,
16008 }
16009
16010 impl ::fidl_next::Constrained for WatchEvent {
16011 type Constraint = ();
16012
16013 fn validate(
16014 _: ::fidl_next::Slot<'_, Self>,
16015 _: Self::Constraint,
16016 ) -> Result<(), ::fidl_next::ValidationError> {
16017 Ok(())
16018 }
16019 }
16020
16021 unsafe impl ::fidl_next::Wire for WatchEvent {
16022 type Narrowed<'de> = Self;
16023
16024 #[inline]
16025 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
16026 }
16028 }
16029
16030 impl WatchEvent {
16031 pub const DELETED: WatchEvent = WatchEvent { value: 0 };
16032
16033 pub const ADDED: WatchEvent = WatchEvent { value: 1 };
16034
16035 pub const REMOVED: WatchEvent = WatchEvent { value: 2 };
16036
16037 pub const EXISTING: WatchEvent = WatchEvent { value: 3 };
16038
16039 pub const IDLE: WatchEvent = WatchEvent { value: 4 };
16040 }
16041
16042 unsafe impl<___D> ::fidl_next::Decode<___D> for WatchEvent
16043 where
16044 ___D: ?Sized,
16045 {
16046 fn decode(
16047 slot: ::fidl_next::Slot<'_, Self>,
16048 _: &mut ___D,
16049 _: (),
16050 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
16051 ::fidl_next::munge!(let Self { value } = slot);
16052
16053 match u8::from(*value) {
16054 0 | 1 | 2 | 3 | 4 => (),
16055 unknown => {
16056 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
16057 }
16058 }
16059
16060 Ok(())
16061 }
16062 }
16063
16064 impl ::core::convert::From<crate::natural::WatchEvent> for WatchEvent {
16065 fn from(natural: crate::natural::WatchEvent) -> Self {
16066 match natural {
16067 crate::natural::WatchEvent::Deleted => WatchEvent::DELETED,
16068
16069 crate::natural::WatchEvent::Added => WatchEvent::ADDED,
16070
16071 crate::natural::WatchEvent::Removed => WatchEvent::REMOVED,
16072
16073 crate::natural::WatchEvent::Existing => WatchEvent::EXISTING,
16074
16075 crate::natural::WatchEvent::Idle => WatchEvent::IDLE,
16076 }
16077 }
16078 }
16079
16080 impl ::fidl_next::IntoNatural for WatchEvent {
16081 type Natural = crate::natural::WatchEvent;
16082 }
16083}
16084
16085pub mod wire_optional {
16086
16087 #[repr(transparent)]
16088 pub struct SelinuxContext<'de> {
16089 pub(crate) raw: ::fidl_next::wire::Union,
16090 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
16091 }
16092
16093 impl ::fidl_next::Constrained for SelinuxContext<'_> {
16094 type Constraint = ();
16095
16096 fn validate(
16097 _: ::fidl_next::Slot<'_, Self>,
16098 _: Self::Constraint,
16099 ) -> Result<(), ::fidl_next::ValidationError> {
16100 Ok(())
16101 }
16102 }
16103
16104 unsafe impl ::fidl_next::Wire for SelinuxContext<'static> {
16105 type Narrowed<'de> = SelinuxContext<'de>;
16106
16107 #[inline]
16108 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
16109 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
16110 ::fidl_next::wire::Union::zero_padding(raw);
16111 }
16112 }
16113
16114 impl<'de> SelinuxContext<'de> {
16115 pub fn is_some(&self) -> bool {
16116 self.raw.is_some()
16117 }
16118
16119 pub fn is_none(&self) -> bool {
16120 self.raw.is_none()
16121 }
16122
16123 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::SelinuxContext<'de>> {
16124 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
16125 }
16126
16127 pub fn into_option(self) -> ::core::option::Option<crate::wire::SelinuxContext<'de>> {
16128 if self.is_some() {
16129 Some(crate::wire::SelinuxContext {
16130 raw: self.raw,
16131 _phantom: ::core::marker::PhantomData,
16132 })
16133 } else {
16134 None
16135 }
16136 }
16137 }
16138
16139 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for SelinuxContext<'de>
16140 where
16141 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
16142 ___D: ::fidl_next::Decoder<'de>,
16143 {
16144 fn decode(
16145 mut slot: ::fidl_next::Slot<'_, Self>,
16146 decoder: &mut ___D,
16147 _: (),
16148 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
16149 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
16150 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
16151 1 => {
16152 ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Vector<'de, u8>>(
16153 raw,
16154 decoder,
16155 (256, ()),
16156 )?
16157 }
16158
16159 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::EmptyStruct>(
16160 raw,
16161 decoder,
16162 (),
16163 )?,
16164
16165 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
16166 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
16167 }
16168
16169 Ok(())
16170 }
16171 }
16172
16173 impl<'de> ::core::fmt::Debug for SelinuxContext<'de> {
16174 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16175 self.as_ref().fmt(f)
16176 }
16177 }
16178
16179 impl<'de> ::fidl_next::IntoNatural for SelinuxContext<'de> {
16180 type Natural = ::core::option::Option<crate::natural::SelinuxContext>;
16181 }
16182}
16183
16184pub mod generic {
16185
16186 pub struct AdvisoryLockRange<T0, T1, T2> {
16188 pub origin: T0,
16189
16190 pub offset: T1,
16191
16192 pub length: T2,
16193 }
16194
16195 unsafe impl<___E, T0, T1, T2> ::fidl_next::Encode<crate::wire::AdvisoryLockRange, ___E>
16196 for AdvisoryLockRange<T0, T1, T2>
16197 where
16198 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16199 T0: ::fidl_next::Encode<crate::wire::SeekOrigin, ___E>,
16200 T1: ::fidl_next::Encode<::fidl_next::wire::Int64, ___E>,
16201 T2: ::fidl_next::Encode<::fidl_next::wire::Int64, ___E>,
16202 {
16203 #[inline]
16204 fn encode(
16205 self,
16206 encoder_: &mut ___E,
16207 out_: &mut ::core::mem::MaybeUninit<crate::wire::AdvisoryLockRange>,
16208 _: (),
16209 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16210 ::fidl_next::munge! {
16211 let crate::wire::AdvisoryLockRange {
16212 origin,
16213 offset,
16214 length,
16215
16216 } = out_;
16217 }
16218
16219 ::fidl_next::Encode::encode(self.origin, encoder_, origin, ())?;
16220
16221 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
16222
16223 ::fidl_next::Encode::encode(self.length, encoder_, length, ())?;
16224
16225 Ok(())
16226 }
16227 }
16228
16229 pub struct AdvisoryLockingAdvisoryLockRequest<T0> {
16231 pub request: T0,
16232 }
16233
16234 unsafe impl<___E, T0>
16235 ::fidl_next::Encode<crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>, ___E>
16236 for AdvisoryLockingAdvisoryLockRequest<T0>
16237 where
16238 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16239 ___E: ::fidl_next::Encoder,
16240 T0: ::fidl_next::Encode<crate::wire::AdvisoryLockRequest<'static>, ___E>,
16241 {
16242 #[inline]
16243 fn encode(
16244 self,
16245 encoder_: &mut ___E,
16246 out_: &mut ::core::mem::MaybeUninit<
16247 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
16248 >,
16249 _: (),
16250 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16251 ::fidl_next::munge! {
16252 let crate::wire::AdvisoryLockingAdvisoryLockRequest {
16253 request,
16254
16255 } = out_;
16256 }
16257
16258 ::fidl_next::Encode::encode(self.request, encoder_, request, ())?;
16259
16260 Ok(())
16261 }
16262 }
16263
16264 pub type AdvisoryLockingAdvisoryLockResponse = ();
16266
16267 pub struct NodeAttributes<T0, T1, T2, T3, T4, T5, T6> {
16269 pub mode: T0,
16270
16271 pub id: T1,
16272
16273 pub content_size: T2,
16274
16275 pub storage_size: T3,
16276
16277 pub link_count: T4,
16278
16279 pub creation_time: T5,
16280
16281 pub modification_time: T6,
16282 }
16283
16284 unsafe impl<___E, T0, T1, T2, T3, T4, T5, T6>
16285 ::fidl_next::Encode<crate::wire::NodeAttributes, ___E>
16286 for NodeAttributes<T0, T1, T2, T3, T4, T5, T6>
16287 where
16288 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16289 T0: ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>,
16290 T1: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16291 T2: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16292 T3: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16293 T4: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16294 T5: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16295 T6: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16296 {
16297 #[inline]
16298 fn encode(
16299 self,
16300 encoder_: &mut ___E,
16301 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributes>,
16302 _: (),
16303 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16304 ::fidl_next::munge! {
16305 let crate::wire::NodeAttributes {
16306 mode,
16307 id,
16308 content_size,
16309 storage_size,
16310 link_count,
16311 creation_time,
16312 modification_time,
16313
16314 } = out_;
16315 }
16316
16317 ::fidl_next::Encode::encode(self.mode, encoder_, mode, ())?;
16318
16319 ::fidl_next::Encode::encode(self.id, encoder_, id, ())?;
16320
16321 ::fidl_next::Encode::encode(self.content_size, encoder_, content_size, ())?;
16322
16323 ::fidl_next::Encode::encode(self.storage_size, encoder_, storage_size, ())?;
16324
16325 ::fidl_next::Encode::encode(self.link_count, encoder_, link_count, ())?;
16326
16327 ::fidl_next::Encode::encode(self.creation_time, encoder_, creation_time, ())?;
16328
16329 ::fidl_next::Encode::encode(self.modification_time, encoder_, modification_time, ())?;
16330
16331 Ok(())
16332 }
16333 }
16334
16335 pub struct NodeQueryFilesystemResponse<T0, T1> {
16337 pub s: T0,
16338
16339 pub info: T1,
16340 }
16341
16342 unsafe impl<___E, T0, T1>
16343 ::fidl_next::Encode<crate::wire::NodeQueryFilesystemResponse<'static>, ___E>
16344 for NodeQueryFilesystemResponse<T0, T1>
16345 where
16346 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16347 ___E: ::fidl_next::Encoder,
16348 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16349 T1: ::fidl_next::Encode<::fidl_next::wire::Box<'static, crate::wire::FilesystemInfo>, ___E>,
16350 {
16351 #[inline]
16352 fn encode(
16353 self,
16354 encoder_: &mut ___E,
16355 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeQueryFilesystemResponse<'static>>,
16356 _: (),
16357 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16358 ::fidl_next::munge! {
16359 let crate::wire::NodeQueryFilesystemResponse {
16360 s,
16361 info,
16362
16363 } = out_;
16364 }
16365
16366 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16367
16368 ::fidl_next::Encode::encode(self.info, encoder_, info, ())?;
16369
16370 Ok(())
16371 }
16372 }
16373
16374 pub type NodeUpdateAttributesResponse = ();
16376
16377 pub type NodeSyncResponse = ();
16379
16380 pub struct DirectoryReadDirentsRequest<T0> {
16382 pub max_bytes: T0,
16383 }
16384
16385 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::DirectoryReadDirentsRequest, ___E>
16386 for DirectoryReadDirentsRequest<T0>
16387 where
16388 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16389 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
16390 {
16391 #[inline]
16392 fn encode(
16393 self,
16394 encoder_: &mut ___E,
16395 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryReadDirentsRequest>,
16396 _: (),
16397 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16398 ::fidl_next::munge! {
16399 let crate::wire::DirectoryReadDirentsRequest {
16400 max_bytes,
16401
16402 } = out_;
16403 }
16404
16405 ::fidl_next::Encode::encode(self.max_bytes, encoder_, max_bytes, ())?;
16406
16407 Ok(())
16408 }
16409 }
16410
16411 pub struct DirectoryReadDirentsResponse<T0, T1> {
16413 pub s: T0,
16414
16415 pub dirents: T1,
16416 }
16417
16418 unsafe impl<___E, T0, T1>
16419 ::fidl_next::Encode<crate::wire::DirectoryReadDirentsResponse<'static>, ___E>
16420 for DirectoryReadDirentsResponse<T0, T1>
16421 where
16422 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16423 ___E: ::fidl_next::Encoder,
16424 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16425 T1: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
16426 {
16427 #[inline]
16428 fn encode(
16429 self,
16430 encoder_: &mut ___E,
16431 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryReadDirentsResponse<'static>>,
16432 _: (),
16433 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16434 ::fidl_next::munge! {
16435 let crate::wire::DirectoryReadDirentsResponse {
16436 s,
16437 dirents,
16438
16439 } = out_;
16440 }
16441
16442 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16443
16444 ::fidl_next::Encode::encode(self.dirents, encoder_, dirents, (8192, ()))?;
16445
16446 Ok(())
16447 }
16448 }
16449
16450 pub struct DirectoryRewindResponse<T0> {
16452 pub s: T0,
16453 }
16454
16455 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::DirectoryRewindResponse, ___E>
16456 for DirectoryRewindResponse<T0>
16457 where
16458 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16459 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16460 {
16461 #[inline]
16462 fn encode(
16463 self,
16464 encoder_: &mut ___E,
16465 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryRewindResponse>,
16466 _: (),
16467 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16468 ::fidl_next::munge! {
16469 let crate::wire::DirectoryRewindResponse {
16470 s,
16471
16472 } = out_;
16473 }
16474
16475 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16476
16477 Ok(())
16478 }
16479 }
16480
16481 pub struct DirectoryLinkResponse<T0> {
16483 pub s: T0,
16484 }
16485
16486 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::DirectoryLinkResponse, ___E>
16487 for DirectoryLinkResponse<T0>
16488 where
16489 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16490 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16491 {
16492 #[inline]
16493 fn encode(
16494 self,
16495 encoder_: &mut ___E,
16496 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryLinkResponse>,
16497 _: (),
16498 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16499 ::fidl_next::munge! {
16500 let crate::wire::DirectoryLinkResponse {
16501 s,
16502
16503 } = out_;
16504 }
16505
16506 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16507
16508 Ok(())
16509 }
16510 }
16511
16512 pub struct DirectoryUnlinkRequest<T0, T1> {
16514 pub name: T0,
16515
16516 pub options: T1,
16517 }
16518
16519 unsafe impl<___E, T0, T1>
16520 ::fidl_next::Encode<crate::wire::DirectoryUnlinkRequest<'static>, ___E>
16521 for DirectoryUnlinkRequest<T0, T1>
16522 where
16523 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16524 ___E: ::fidl_next::Encoder,
16525 T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
16526 T1: ::fidl_next::Encode<crate::wire::UnlinkOptions<'static>, ___E>,
16527 {
16528 #[inline]
16529 fn encode(
16530 self,
16531 encoder_: &mut ___E,
16532 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryUnlinkRequest<'static>>,
16533 _: (),
16534 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16535 ::fidl_next::munge! {
16536 let crate::wire::DirectoryUnlinkRequest {
16537 name,
16538 options,
16539
16540 } = out_;
16541 }
16542
16543 ::fidl_next::Encode::encode(self.name, encoder_, name, 255)?;
16544
16545 ::fidl_next::Encode::encode(self.options, encoder_, options, ())?;
16546
16547 Ok(())
16548 }
16549 }
16550
16551 pub type DirectoryUnlinkResponse = ();
16553
16554 pub type DirectoryRenameResponse = ();
16556
16557 pub struct DirectoryWatchResponse<T0> {
16559 pub s: T0,
16560 }
16561
16562 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::DirectoryWatchResponse, ___E>
16563 for DirectoryWatchResponse<T0>
16564 where
16565 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16566 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16567 {
16568 #[inline]
16569 fn encode(
16570 self,
16571 encoder_: &mut ___E,
16572 out_: &mut ::core::mem::MaybeUninit<crate::wire::DirectoryWatchResponse>,
16573 _: (),
16574 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16575 ::fidl_next::munge! {
16576 let crate::wire::DirectoryWatchResponse {
16577 s,
16578
16579 } = out_;
16580 }
16581
16582 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16583
16584 Ok(())
16585 }
16586 }
16587
16588 pub struct NodeGetExtendedAttributeRequest<T0> {
16590 pub name: T0,
16591 }
16592
16593 unsafe impl<___E, T0>
16594 ::fidl_next::Encode<crate::wire::NodeGetExtendedAttributeRequest<'static>, ___E>
16595 for NodeGetExtendedAttributeRequest<T0>
16596 where
16597 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16598 ___E: ::fidl_next::Encoder,
16599 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
16600 {
16601 #[inline]
16602 fn encode(
16603 self,
16604 encoder_: &mut ___E,
16605 out_: &mut ::core::mem::MaybeUninit<
16606 crate::wire::NodeGetExtendedAttributeRequest<'static>,
16607 >,
16608 _: (),
16609 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16610 ::fidl_next::munge! {
16611 let crate::wire::NodeGetExtendedAttributeRequest {
16612 name,
16613
16614 } = out_;
16615 }
16616
16617 ::fidl_next::Encode::encode(self.name, encoder_, name, (255, ()))?;
16618
16619 Ok(())
16620 }
16621 }
16622
16623 pub type NodeSetExtendedAttributeResponse = ();
16625
16626 pub struct NodeRemoveExtendedAttributeRequest<T0> {
16628 pub name: T0,
16629 }
16630
16631 unsafe impl<___E, T0>
16632 ::fidl_next::Encode<crate::wire::NodeRemoveExtendedAttributeRequest<'static>, ___E>
16633 for NodeRemoveExtendedAttributeRequest<T0>
16634 where
16635 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16636 ___E: ::fidl_next::Encoder,
16637 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
16638 {
16639 #[inline]
16640 fn encode(
16641 self,
16642 encoder_: &mut ___E,
16643 out_: &mut ::core::mem::MaybeUninit<
16644 crate::wire::NodeRemoveExtendedAttributeRequest<'static>,
16645 >,
16646 _: (),
16647 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16648 ::fidl_next::munge! {
16649 let crate::wire::NodeRemoveExtendedAttributeRequest {
16650 name,
16651
16652 } = out_;
16653 }
16654
16655 ::fidl_next::Encode::encode(self.name, encoder_, name, (255, ()))?;
16656
16657 Ok(())
16658 }
16659 }
16660
16661 pub type NodeRemoveExtendedAttributeResponse = ();
16663
16664 pub type DirectoryCreateSymlinkResponse = ();
16666
16667 pub type NodeSetFlagsResponse = ();
16669
16670 pub struct NodeDeprecatedGetAttrResponse<T0, T1> {
16672 pub s: T0,
16673
16674 pub attributes: T1,
16675 }
16676
16677 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::NodeDeprecatedGetAttrResponse, ___E>
16678 for NodeDeprecatedGetAttrResponse<T0, T1>
16679 where
16680 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16681 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16682 T1: ::fidl_next::Encode<crate::wire::NodeAttributes, ___E>,
16683 {
16684 #[inline]
16685 fn encode(
16686 self,
16687 encoder_: &mut ___E,
16688 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedGetAttrResponse>,
16689 _: (),
16690 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16691 ::fidl_next::munge! {
16692 let crate::wire::NodeDeprecatedGetAttrResponse {
16693 s,
16694 attributes,
16695
16696 } = out_;
16697 }
16698
16699 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16700
16701 ::fidl_next::Encode::encode(self.attributes, encoder_, attributes, ())?;
16702
16703 Ok(())
16704 }
16705 }
16706
16707 pub struct NodeDeprecatedSetAttrRequest<T0, T1> {
16709 pub flags: T0,
16710
16711 pub attributes: T1,
16712 }
16713
16714 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrRequest, ___E>
16715 for NodeDeprecatedSetAttrRequest<T0, T1>
16716 where
16717 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16718 T0: ::fidl_next::Encode<crate::wire::NodeAttributeFlags, ___E>,
16719 T1: ::fidl_next::Encode<crate::wire::NodeAttributes, ___E>,
16720 {
16721 #[inline]
16722 fn encode(
16723 self,
16724 encoder_: &mut ___E,
16725 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetAttrRequest>,
16726 _: (),
16727 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16728 ::fidl_next::munge! {
16729 let crate::wire::NodeDeprecatedSetAttrRequest {
16730 flags,
16731 attributes,
16732
16733 } = out_;
16734 }
16735
16736 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
16737
16738 ::fidl_next::Encode::encode(self.attributes, encoder_, attributes, ())?;
16739
16740 Ok(())
16741 }
16742 }
16743
16744 pub struct NodeDeprecatedSetAttrResponse<T0> {
16746 pub s: T0,
16747 }
16748
16749 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetAttrResponse, ___E>
16750 for NodeDeprecatedSetAttrResponse<T0>
16751 where
16752 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16753 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16754 {
16755 #[inline]
16756 fn encode(
16757 self,
16758 encoder_: &mut ___E,
16759 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetAttrResponse>,
16760 _: (),
16761 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16762 ::fidl_next::munge! {
16763 let crate::wire::NodeDeprecatedSetAttrResponse {
16764 s,
16765
16766 } = out_;
16767 }
16768
16769 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16770
16771 Ok(())
16772 }
16773 }
16774
16775 pub struct NodeDeprecatedGetFlagsResponse<T0, T1> {
16777 pub s: T0,
16778
16779 pub flags: T1,
16780 }
16781
16782 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::NodeDeprecatedGetFlagsResponse, ___E>
16783 for NodeDeprecatedGetFlagsResponse<T0, T1>
16784 where
16785 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16786 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16787 T1: ::fidl_next::Encode<crate::wire::OpenFlags, ___E>,
16788 {
16789 #[inline]
16790 fn encode(
16791 self,
16792 encoder_: &mut ___E,
16793 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedGetFlagsResponse>,
16794 _: (),
16795 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16796 ::fidl_next::munge! {
16797 let crate::wire::NodeDeprecatedGetFlagsResponse {
16798 s,
16799 flags,
16800
16801 } = out_;
16802 }
16803
16804 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16805
16806 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
16807
16808 Ok(())
16809 }
16810 }
16811
16812 pub struct NodeDeprecatedSetFlagsRequest<T0> {
16814 pub flags: T0,
16815 }
16816
16817 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsRequest, ___E>
16818 for NodeDeprecatedSetFlagsRequest<T0>
16819 where
16820 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16821 T0: ::fidl_next::Encode<crate::wire::OpenFlags, ___E>,
16822 {
16823 #[inline]
16824 fn encode(
16825 self,
16826 encoder_: &mut ___E,
16827 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetFlagsRequest>,
16828 _: (),
16829 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16830 ::fidl_next::munge! {
16831 let crate::wire::NodeDeprecatedSetFlagsRequest {
16832 flags,
16833
16834 } = out_;
16835 }
16836
16837 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
16838
16839 Ok(())
16840 }
16841 }
16842
16843 pub struct NodeDeprecatedSetFlagsResponse<T0> {
16845 pub s: T0,
16846 }
16847
16848 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::NodeDeprecatedSetFlagsResponse, ___E>
16849 for NodeDeprecatedSetFlagsResponse<T0>
16850 where
16851 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16852 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Status, ___E>,
16853 {
16854 #[inline]
16855 fn encode(
16856 self,
16857 encoder_: &mut ___E,
16858 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeDeprecatedSetFlagsResponse>,
16859 _: (),
16860 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16861 ::fidl_next::munge! {
16862 let crate::wire::NodeDeprecatedSetFlagsResponse {
16863 s,
16864
16865 } = out_;
16866 }
16867
16868 ::fidl_next::Encode::encode(self.s, encoder_, s, ())?;
16869
16870 Ok(())
16871 }
16872 }
16873
16874 pub struct NodeGetFlagsResponse<T0> {
16876 pub flags: T0,
16877 }
16878
16879 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::NodeGetFlagsResponse, ___E>
16880 for NodeGetFlagsResponse<T0>
16881 where
16882 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16883 T0: ::fidl_next::Encode<crate::wire::Flags, ___E>,
16884 {
16885 #[inline]
16886 fn encode(
16887 self,
16888 encoder_: &mut ___E,
16889 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeGetFlagsResponse>,
16890 _: (),
16891 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16892 ::fidl_next::munge! {
16893 let crate::wire::NodeGetFlagsResponse {
16894 flags,
16895
16896 } = out_;
16897 }
16898
16899 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
16900
16901 Ok(())
16902 }
16903 }
16904
16905 pub struct NodeSetFlagsRequest<T0> {
16907 pub flags: T0,
16908 }
16909
16910 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::NodeSetFlagsRequest, ___E>
16911 for NodeSetFlagsRequest<T0>
16912 where
16913 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16914 T0: ::fidl_next::Encode<crate::wire::Flags, ___E>,
16915 {
16916 #[inline]
16917 fn encode(
16918 self,
16919 encoder_: &mut ___E,
16920 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeSetFlagsRequest>,
16921 _: (),
16922 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16923 ::fidl_next::munge! {
16924 let crate::wire::NodeSetFlagsRequest {
16925 flags,
16926
16927 } = out_;
16928 }
16929
16930 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
16931
16932 Ok(())
16933 }
16934 }
16935
16936 pub type EmptyStruct = ();
16938
16939 pub struct NodeAttributes2<T0, T1> {
16941 pub mutable_attributes: T0,
16942
16943 pub immutable_attributes: T1,
16944 }
16945
16946 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::NodeAttributes2<'static>, ___E>
16947 for NodeAttributes2<T0, T1>
16948 where
16949 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16950 ___E: ::fidl_next::Encoder,
16951 T0: ::fidl_next::Encode<crate::wire::MutableNodeAttributes<'static>, ___E>,
16952 T1: ::fidl_next::Encode<crate::wire::ImmutableNodeAttributes<'static>, ___E>,
16953 {
16954 #[inline]
16955 fn encode(
16956 self,
16957 encoder_: &mut ___E,
16958 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeAttributes2<'static>>,
16959 _: (),
16960 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16961 ::fidl_next::munge! {
16962 let crate::wire::NodeAttributes2 {
16963 mutable_attributes,
16964 immutable_attributes,
16965
16966 } = out_;
16967 }
16968
16969 ::fidl_next::Encode::encode(self.mutable_attributes, encoder_, mutable_attributes, ())?;
16970
16971 ::fidl_next::Encode::encode(
16972 self.immutable_attributes,
16973 encoder_,
16974 immutable_attributes,
16975 (),
16976 )?;
16977
16978 Ok(())
16979 }
16980 }
16981
16982 pub struct NodeGetAttributesRequest<T0> {
16984 pub query: T0,
16985 }
16986
16987 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::NodeGetAttributesRequest, ___E>
16988 for NodeGetAttributesRequest<T0>
16989 where
16990 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
16991 T0: ::fidl_next::Encode<crate::wire::NodeAttributesQuery, ___E>,
16992 {
16993 #[inline]
16994 fn encode(
16995 self,
16996 encoder_: &mut ___E,
16997 out_: &mut ::core::mem::MaybeUninit<crate::wire::NodeGetAttributesRequest>,
16998 _: (),
16999 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17000 ::fidl_next::munge! {
17001 let crate::wire::NodeGetAttributesRequest {
17002 query,
17003
17004 } = out_;
17005 }
17006
17007 ::fidl_next::Encode::encode(self.query, encoder_, query, ())?;
17008
17009 Ok(())
17010 }
17011 }
17012
17013 pub type DirectoryObject = ();
17015
17016 pub struct ExtendedAttributeIteratorGetNextResponse<T0, T1> {
17018 pub attributes: T0,
17019
17020 pub last: T1,
17021 }
17022
17023 unsafe impl<___E, T0, T1>
17024 ::fidl_next::Encode<crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>, ___E>
17025 for ExtendedAttributeIteratorGetNextResponse<T0, T1>
17026 where
17027 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17028 ___E: ::fidl_next::Encoder,
17029 T0: ::fidl_next::Encode<
17030 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Vector<'static, u8>>,
17031 ___E,
17032 >,
17033 T1: ::fidl_next::Encode<bool, ___E>,
17034 {
17035 #[inline]
17036 fn encode(
17037 self,
17038 encoder_: &mut ___E,
17039 out_: &mut ::core::mem::MaybeUninit<
17040 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
17041 >,
17042 _: (),
17043 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17044 ::fidl_next::munge! {
17045 let crate::wire::ExtendedAttributeIteratorGetNextResponse {
17046 attributes,
17047 last,
17048
17049 } = out_;
17050 }
17051
17052 ::fidl_next::Encode::encode(self.attributes, encoder_, attributes, (128, (255, ())))?;
17053
17054 ::fidl_next::Encode::encode(self.last, encoder_, last, ())?;
17055
17056 Ok(())
17057 }
17058 }
17059
17060 pub struct ReadableReadRequest<T0> {
17062 pub count: T0,
17063 }
17064
17065 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::ReadableReadRequest, ___E>
17066 for ReadableReadRequest<T0>
17067 where
17068 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17069 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17070 {
17071 #[inline]
17072 fn encode(
17073 self,
17074 encoder_: &mut ___E,
17075 out_: &mut ::core::mem::MaybeUninit<crate::wire::ReadableReadRequest>,
17076 _: (),
17077 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17078 ::fidl_next::munge! {
17079 let crate::wire::ReadableReadRequest {
17080 count,
17081
17082 } = out_;
17083 }
17084
17085 ::fidl_next::Encode::encode(self.count, encoder_, count, ())?;
17086
17087 Ok(())
17088 }
17089 }
17090
17091 pub struct ReadableReadResponse<T0> {
17093 pub data: T0,
17094 }
17095
17096 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::ReadableReadResponse<'static>, ___E>
17097 for ReadableReadResponse<T0>
17098 where
17099 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17100 ___E: ::fidl_next::Encoder,
17101 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
17102 {
17103 #[inline]
17104 fn encode(
17105 self,
17106 encoder_: &mut ___E,
17107 out_: &mut ::core::mem::MaybeUninit<crate::wire::ReadableReadResponse<'static>>,
17108 _: (),
17109 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17110 ::fidl_next::munge! {
17111 let crate::wire::ReadableReadResponse {
17112 data,
17113
17114 } = out_;
17115 }
17116
17117 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
17118
17119 Ok(())
17120 }
17121 }
17122
17123 pub struct WritableWriteRequest<T0> {
17125 pub data: T0,
17126 }
17127
17128 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::WritableWriteRequest<'static>, ___E>
17129 for WritableWriteRequest<T0>
17130 where
17131 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17132 ___E: ::fidl_next::Encoder,
17133 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
17134 {
17135 #[inline]
17136 fn encode(
17137 self,
17138 encoder_: &mut ___E,
17139 out_: &mut ::core::mem::MaybeUninit<crate::wire::WritableWriteRequest<'static>>,
17140 _: (),
17141 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17142 ::fidl_next::munge! {
17143 let crate::wire::WritableWriteRequest {
17144 data,
17145
17146 } = out_;
17147 }
17148
17149 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
17150
17151 Ok(())
17152 }
17153 }
17154
17155 pub struct WritableWriteResponse<T0> {
17157 pub actual_count: T0,
17158 }
17159
17160 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::WritableWriteResponse, ___E>
17161 for WritableWriteResponse<T0>
17162 where
17163 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17164 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17165 {
17166 #[inline]
17167 fn encode(
17168 self,
17169 encoder_: &mut ___E,
17170 out_: &mut ::core::mem::MaybeUninit<crate::wire::WritableWriteResponse>,
17171 _: (),
17172 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17173 ::fidl_next::munge! {
17174 let crate::wire::WritableWriteResponse {
17175 actual_count,
17176
17177 } = out_;
17178 }
17179
17180 ::fidl_next::Encode::encode(self.actual_count, encoder_, actual_count, ())?;
17181
17182 Ok(())
17183 }
17184 }
17185
17186 pub struct FileSeekRequest<T0, T1> {
17188 pub origin: T0,
17189
17190 pub offset: T1,
17191 }
17192
17193 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::FileSeekRequest, ___E>
17194 for FileSeekRequest<T0, T1>
17195 where
17196 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17197 T0: ::fidl_next::Encode<crate::wire::SeekOrigin, ___E>,
17198 T1: ::fidl_next::Encode<::fidl_next::wire::Int64, ___E>,
17199 {
17200 #[inline]
17201 fn encode(
17202 self,
17203 encoder_: &mut ___E,
17204 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileSeekRequest>,
17205 _: (),
17206 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17207 ::fidl_next::munge! {
17208 let crate::wire::FileSeekRequest {
17209 origin,
17210 offset,
17211
17212 } = out_;
17213 }
17214
17215 ::fidl_next::Encode::encode(self.origin, encoder_, origin, ())?;
17216
17217 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
17218
17219 Ok(())
17220 }
17221 }
17222
17223 pub struct FileSeekResponse<T0> {
17225 pub offset_from_start: T0,
17226 }
17227
17228 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::FileSeekResponse, ___E>
17229 for FileSeekResponse<T0>
17230 where
17231 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17232 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17233 {
17234 #[inline]
17235 fn encode(
17236 self,
17237 encoder_: &mut ___E,
17238 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileSeekResponse>,
17239 _: (),
17240 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17241 ::fidl_next::munge! {
17242 let crate::wire::FileSeekResponse {
17243 offset_from_start,
17244
17245 } = out_;
17246 }
17247
17248 ::fidl_next::Encode::encode(self.offset_from_start, encoder_, offset_from_start, ())?;
17249
17250 Ok(())
17251 }
17252 }
17253
17254 pub struct FileReadAtRequest<T0, T1> {
17256 pub count: T0,
17257
17258 pub offset: T1,
17259 }
17260
17261 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::FileReadAtRequest, ___E>
17262 for FileReadAtRequest<T0, T1>
17263 where
17264 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17265 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17266 T1: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17267 {
17268 #[inline]
17269 fn encode(
17270 self,
17271 encoder_: &mut ___E,
17272 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileReadAtRequest>,
17273 _: (),
17274 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17275 ::fidl_next::munge! {
17276 let crate::wire::FileReadAtRequest {
17277 count,
17278 offset,
17279
17280 } = out_;
17281 }
17282
17283 ::fidl_next::Encode::encode(self.count, encoder_, count, ())?;
17284
17285 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
17286
17287 Ok(())
17288 }
17289 }
17290
17291 pub struct FileReadAtResponse<T0> {
17293 pub data: T0,
17294 }
17295
17296 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::FileReadAtResponse<'static>, ___E>
17297 for FileReadAtResponse<T0>
17298 where
17299 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17300 ___E: ::fidl_next::Encoder,
17301 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
17302 {
17303 #[inline]
17304 fn encode(
17305 self,
17306 encoder_: &mut ___E,
17307 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileReadAtResponse<'static>>,
17308 _: (),
17309 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17310 ::fidl_next::munge! {
17311 let crate::wire::FileReadAtResponse {
17312 data,
17313
17314 } = out_;
17315 }
17316
17317 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
17318
17319 Ok(())
17320 }
17321 }
17322
17323 pub struct FileWriteAtRequest<T0, T1> {
17325 pub data: T0,
17326
17327 pub offset: T1,
17328 }
17329
17330 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::FileWriteAtRequest<'static>, ___E>
17331 for FileWriteAtRequest<T0, T1>
17332 where
17333 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17334 ___E: ::fidl_next::Encoder,
17335 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
17336 T1: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17337 {
17338 #[inline]
17339 fn encode(
17340 self,
17341 encoder_: &mut ___E,
17342 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileWriteAtRequest<'static>>,
17343 _: (),
17344 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17345 ::fidl_next::munge! {
17346 let crate::wire::FileWriteAtRequest {
17347 data,
17348 offset,
17349
17350 } = out_;
17351 }
17352
17353 ::fidl_next::Encode::encode(self.data, encoder_, data, (8192, ()))?;
17354
17355 ::fidl_next::Encode::encode(self.offset, encoder_, offset, ())?;
17356
17357 Ok(())
17358 }
17359 }
17360
17361 pub struct FileWriteAtResponse<T0> {
17363 pub actual_count: T0,
17364 }
17365
17366 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::FileWriteAtResponse, ___E>
17367 for FileWriteAtResponse<T0>
17368 where
17369 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17370 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17371 {
17372 #[inline]
17373 fn encode(
17374 self,
17375 encoder_: &mut ___E,
17376 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileWriteAtResponse>,
17377 _: (),
17378 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17379 ::fidl_next::munge! {
17380 let crate::wire::FileWriteAtResponse {
17381 actual_count,
17382
17383 } = out_;
17384 }
17385
17386 ::fidl_next::Encode::encode(self.actual_count, encoder_, actual_count, ())?;
17387
17388 Ok(())
17389 }
17390 }
17391
17392 pub struct FileResizeRequest<T0> {
17394 pub length: T0,
17395 }
17396
17397 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::FileResizeRequest, ___E>
17398 for FileResizeRequest<T0>
17399 where
17400 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17401 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17402 {
17403 #[inline]
17404 fn encode(
17405 self,
17406 encoder_: &mut ___E,
17407 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileResizeRequest>,
17408 _: (),
17409 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17410 ::fidl_next::munge! {
17411 let crate::wire::FileResizeRequest {
17412 length,
17413
17414 } = out_;
17415 }
17416
17417 ::fidl_next::Encode::encode(self.length, encoder_, length, ())?;
17418
17419 Ok(())
17420 }
17421 }
17422
17423 pub type FileResizeResponse = ();
17425
17426 pub struct FileGetBackingMemoryRequest<T0> {
17428 pub flags: T0,
17429 }
17430
17431 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::FileGetBackingMemoryRequest, ___E>
17432 for FileGetBackingMemoryRequest<T0>
17433 where
17434 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17435 T0: ::fidl_next::Encode<crate::wire::VmoFlags, ___E>,
17436 {
17437 #[inline]
17438 fn encode(
17439 self,
17440 encoder_: &mut ___E,
17441 out_: &mut ::core::mem::MaybeUninit<crate::wire::FileGetBackingMemoryRequest>,
17442 _: (),
17443 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17444 ::fidl_next::munge! {
17445 let crate::wire::FileGetBackingMemoryRequest {
17446 flags,
17447
17448 } = out_;
17449 }
17450
17451 ::fidl_next::Encode::encode(self.flags, encoder_, flags, ())?;
17452
17453 Ok(())
17454 }
17455 }
17456
17457 pub type LinkableLinkIntoResponse = ();
17459
17460 pub type FileAllocateResponse = ();
17462
17463 pub type FileEnableVerityResponse = ();
17465
17466 pub struct FilesystemInfo<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> {
17468 pub total_bytes: T0,
17469
17470 pub used_bytes: T1,
17471
17472 pub total_nodes: T2,
17473
17474 pub used_nodes: T3,
17475
17476 pub free_shared_pool_bytes: T4,
17477
17478 pub fs_id: T5,
17479
17480 pub block_size: T6,
17481
17482 pub max_filename_size: T7,
17483
17484 pub fs_type: T8,
17485
17486 pub padding: T9,
17487
17488 pub name: T10,
17489 }
17490
17491 unsafe impl<___E, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
17492 ::fidl_next::Encode<crate::wire::FilesystemInfo, ___E>
17493 for FilesystemInfo<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
17494 where
17495 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17496 T0: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17497 T1: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17498 T2: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17499 T3: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17500 T4: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17501 T5: ::fidl_next::Encode<::fidl_next::wire::Uint64, ___E>,
17502 T6: ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>,
17503 T7: ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>,
17504 T8: ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>,
17505 T9: ::fidl_next::Encode<::fidl_next::wire::Uint32, ___E>,
17506 T10: ::fidl_next::Encode<[i8; 32], ___E>,
17507 {
17508 #[inline]
17509 fn encode(
17510 self,
17511 encoder_: &mut ___E,
17512 out_: &mut ::core::mem::MaybeUninit<crate::wire::FilesystemInfo>,
17513 _: (),
17514 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17515 ::fidl_next::munge! {
17516 let crate::wire::FilesystemInfo {
17517 total_bytes,
17518 used_bytes,
17519 total_nodes,
17520 used_nodes,
17521 free_shared_pool_bytes,
17522 fs_id,
17523 block_size,
17524 max_filename_size,
17525 fs_type,
17526 padding,
17527 name,
17528
17529 } = out_;
17530 }
17531
17532 ::fidl_next::Encode::encode(self.total_bytes, encoder_, total_bytes, ())?;
17533
17534 ::fidl_next::Encode::encode(self.used_bytes, encoder_, used_bytes, ())?;
17535
17536 ::fidl_next::Encode::encode(self.total_nodes, encoder_, total_nodes, ())?;
17537
17538 ::fidl_next::Encode::encode(self.used_nodes, encoder_, used_nodes, ())?;
17539
17540 ::fidl_next::Encode::encode(
17541 self.free_shared_pool_bytes,
17542 encoder_,
17543 free_shared_pool_bytes,
17544 (),
17545 )?;
17546
17547 ::fidl_next::Encode::encode(self.fs_id, encoder_, fs_id, ())?;
17548
17549 ::fidl_next::Encode::encode(self.block_size, encoder_, block_size, ())?;
17550
17551 ::fidl_next::Encode::encode(self.max_filename_size, encoder_, max_filename_size, ())?;
17552
17553 ::fidl_next::Encode::encode(self.fs_type, encoder_, fs_type, ())?;
17554
17555 ::fidl_next::Encode::encode(self.padding, encoder_, padding, ())?;
17556
17557 ::fidl_next::Encode::encode(self.name, encoder_, name, ())?;
17558
17559 Ok(())
17560 }
17561 }
17562
17563 pub type Service = ();
17565
17566 pub struct SymlinkObject<T0> {
17568 pub target: T0,
17569 }
17570
17571 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::SymlinkObject<'static>, ___E>
17572 for SymlinkObject<T0>
17573 where
17574 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17575 ___E: ::fidl_next::Encoder,
17576 T0: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, u8>, ___E>,
17577 {
17578 #[inline]
17579 fn encode(
17580 self,
17581 encoder_: &mut ___E,
17582 out_: &mut ::core::mem::MaybeUninit<crate::wire::SymlinkObject<'static>>,
17583 _: (),
17584 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17585 ::fidl_next::munge! {
17586 let crate::wire::SymlinkObject {
17587 target,
17588
17589 } = out_;
17590 }
17591
17592 ::fidl_next::Encode::encode(self.target, encoder_, target, (4095, ()))?;
17593
17594 Ok(())
17595 }
17596 }
17597}
17598
17599pub use self::natural::*;
17600
17601#[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"]
17603#[derive(PartialEq, Debug)]
17604pub struct AdvisoryLocking;
17605
17606#[cfg(target_os = "fuchsia")]
17607impl ::fidl_next::HasTransport for AdvisoryLocking {
17608 type Transport = ::fidl_next::fuchsia::zx::Channel;
17609}
17610
17611pub mod advisory_locking {
17612 pub mod prelude {
17613 pub use crate::{
17614 AdvisoryLocking, AdvisoryLockingClientHandler, AdvisoryLockingLocalClientHandler,
17615 AdvisoryLockingLocalServerHandler, AdvisoryLockingServerHandler, advisory_locking,
17616 };
17617
17618 pub use crate::natural::AdvisoryLockingAdvisoryLockRequest;
17619
17620 pub use crate::natural::AdvisoryLockingAdvisoryLockResponse;
17621 }
17622
17623 pub struct AdvisoryLock;
17624
17625 impl ::fidl_next::Method for AdvisoryLock {
17626 const ORDINAL: u64 = 7992130864415541162;
17627 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
17628 ::fidl_next::protocol::Flexibility::Strict;
17629
17630 type Protocol = crate::AdvisoryLocking;
17631
17632 type Request = crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>;
17633 }
17634
17635 impl ::fidl_next::TwoWayMethod for AdvisoryLock {
17636 type Response = ::fidl_next::wire::Result<
17637 'static,
17638 crate::wire::AdvisoryLockingAdvisoryLockResponse,
17639 ::fidl_next::wire::fuchsia::Status,
17640 >;
17641 }
17642
17643 impl<___R> ::fidl_next::Respond<___R> for AdvisoryLock {
17644 type Output = ::core::result::Result<___R, ::fidl_next::never::Never>;
17645
17646 fn respond(response: ___R) -> Self::Output {
17647 ::core::result::Result::Ok(response)
17648 }
17649 }
17650
17651 impl<___R> ::fidl_next::RespondErr<___R> for AdvisoryLock {
17652 type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
17653
17654 fn respond_err(response: ___R) -> Self::Output {
17655 ::core::result::Result::Err(response)
17656 }
17657 }
17658
17659 mod ___detail {
17660 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::AdvisoryLocking
17661 where
17662 ___T: ::fidl_next::Transport,
17663 {
17664 type Client = AdvisoryLockingClient<___T>;
17665 type Server = AdvisoryLockingServer<___T>;
17666 }
17667
17668 #[repr(transparent)]
17670 pub struct AdvisoryLockingClient<___T: ::fidl_next::Transport> {
17671 #[allow(dead_code)]
17672 client: ::fidl_next::protocol::Client<___T>,
17673 }
17674
17675 impl<___T> AdvisoryLockingClient<___T>
17676 where
17677 ___T: ::fidl_next::Transport,
17678 {
17679 #[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"]
17680 pub fn advisory_lock(
17681 &self,
17682
17683 request: impl ::fidl_next::Encode<
17684 crate::wire::AdvisoryLockRequest<'static>,
17685 <___T as ::fidl_next::Transport>::SendBuffer,
17686 >,
17687 ) -> ::fidl_next::TwoWayFuture<'_, super::AdvisoryLock, ___T>
17688 where
17689 <___T as ::fidl_next::Transport>::SendBuffer:
17690 ::fidl_next::encoder::InternalHandleEncoder,
17691 <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::Encoder,
17692 {
17693 self.advisory_lock_with(crate::generic::AdvisoryLockingAdvisoryLockRequest {
17694 request,
17695 })
17696 }
17697
17698 #[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"]
17699 pub fn advisory_lock_with<___R>(
17700 &self,
17701 request: ___R,
17702 ) -> ::fidl_next::TwoWayFuture<'_, super::AdvisoryLock, ___T>
17703 where
17704 ___R: ::fidl_next::Encode<
17705 crate::wire::AdvisoryLockingAdvisoryLockRequest<'static>,
17706 <___T as ::fidl_next::Transport>::SendBuffer,
17707 >,
17708 {
17709 ::fidl_next::TwoWayFuture::from_untyped(self.client.send_two_way(
17710 7992130864415541162,
17711 <super::AdvisoryLock as ::fidl_next::Method>::FLEXIBILITY,
17712 request,
17713 ))
17714 }
17715 }
17716
17717 #[repr(transparent)]
17719 pub struct AdvisoryLockingServer<___T: ::fidl_next::Transport> {
17720 server: ::fidl_next::protocol::Server<___T>,
17721 }
17722
17723 impl<___T> AdvisoryLockingServer<___T> where ___T: ::fidl_next::Transport {}
17724 }
17725}
17726
17727#[diagnostic::on_unimplemented(
17728 note = "If {Self} implements the non-local AdvisoryLockingClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
17729)]
17730
17731pub trait AdvisoryLockingLocalClientHandler<
17735 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
17736 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
17737>
17738{
17739}
17740
17741impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for AdvisoryLocking
17742where
17743 ___H: AdvisoryLockingLocalClientHandler<___T>,
17744 ___T: ::fidl_next::Transport,
17745{
17746 async fn on_event(
17747 handler: &mut ___H,
17748 mut message: ::fidl_next::Message<___T>,
17749 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
17750 match *message.header().ordinal {
17751 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
17752 }
17753 }
17754}
17755
17756#[diagnostic::on_unimplemented(
17757 note = "If {Self} implements the non-local AdvisoryLockingServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
17758)]
17759
17760pub trait AdvisoryLockingLocalServerHandler<
17764 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
17765 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
17766>
17767{
17768 #[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"]
17769 fn advisory_lock(
17770 &mut self,
17771
17772 request: ::fidl_next::Request<advisory_locking::AdvisoryLock, ___T>,
17773
17774 responder: ::fidl_next::Responder<advisory_locking::AdvisoryLock, ___T>,
17775 ) -> impl ::core::future::Future<Output = ()>;
17776}
17777
17778impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for AdvisoryLocking
17779where
17780 ___H: AdvisoryLockingLocalServerHandler<___T>,
17781 ___T: ::fidl_next::Transport,
17782 for<'de> crate::wire::AdvisoryLockingAdvisoryLockRequest<'de>: ::fidl_next::Decode<
17783 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
17784 Constraint = (),
17785 >,
17786{
17787 async fn on_one_way(
17788 handler: &mut ___H,
17789 mut message: ::fidl_next::Message<___T>,
17790 ) -> ::core::result::Result<
17791 (),
17792 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
17793 > {
17794 match *message.header().ordinal {
17795 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
17796 }
17797 }
17798
17799 async fn on_two_way(
17800 handler: &mut ___H,
17801 mut message: ::fidl_next::Message<___T>,
17802 responder: ::fidl_next::protocol::Responder<___T>,
17803 ) -> ::core::result::Result<
17804 (),
17805 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
17806 > {
17807 match *message.header().ordinal {
17808 7992130864415541162 => {
17809 let responder = ::fidl_next::Responder::from_untyped(responder);
17810
17811 match ::fidl_next::AsDecoderExt::into_decoded(message) {
17812 Ok(decoded) => {
17813 handler
17814 .advisory_lock(::fidl_next::Request::from_decoded(decoded), responder)
17815 .await;
17816 Ok(())
17817 }
17818 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
17819 ordinal: 7992130864415541162,
17820 error,
17821 }),
17822 }
17823 }
17824
17825 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
17826 }
17827 }
17828}
17829
17830pub trait AdvisoryLockingClientHandler<
17834 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
17835 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
17836>
17837{
17838}
17839
17840impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for AdvisoryLocking
17841where
17842 ___H: AdvisoryLockingClientHandler<___T> + ::core::marker::Send,
17843 ___T: ::fidl_next::Transport,
17844{
17845 async fn on_event(
17846 handler: &mut ___H,
17847 mut message: ::fidl_next::Message<___T>,
17848 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
17849 match *message.header().ordinal {
17850 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
17851 }
17852 }
17853}
17854
17855pub trait AdvisoryLockingServerHandler<
17859 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
17860 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
17861>
17862{
17863 #[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"]
17864 fn advisory_lock(
17865 &mut self,
17866
17867 request: ::fidl_next::Request<advisory_locking::AdvisoryLock, ___T>,
17868
17869 responder: ::fidl_next::Responder<advisory_locking::AdvisoryLock, ___T>,
17870 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
17871}
17872
17873impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for AdvisoryLocking
17874where
17875 ___H: AdvisoryLockingServerHandler<___T> + ::core::marker::Send,
17876 ___T: ::fidl_next::Transport,
17877 for<'de> crate::wire::AdvisoryLockingAdvisoryLockRequest<'de>: ::fidl_next::Decode<
17878 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
17879 Constraint = (),
17880 >,
17881{
17882 async fn on_one_way(
17883 handler: &mut ___H,
17884 mut message: ::fidl_next::Message<___T>,
17885 ) -> ::core::result::Result<
17886 (),
17887 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
17888 > {
17889 match *message.header().ordinal {
17890 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
17891 }
17892 }
17893
17894 async fn on_two_way(
17895 handler: &mut ___H,
17896 mut message: ::fidl_next::Message<___T>,
17897 responder: ::fidl_next::protocol::Responder<___T>,
17898 ) -> ::core::result::Result<
17899 (),
17900 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
17901 > {
17902 match *message.header().ordinal {
17903 7992130864415541162 => {
17904 let responder = ::fidl_next::Responder::from_untyped(responder);
17905
17906 match ::fidl_next::AsDecoderExt::into_decoded(message) {
17907 Ok(decoded) => {
17908 handler
17909 .advisory_lock(::fidl_next::Request::from_decoded(decoded), responder)
17910 .await;
17911 Ok(())
17912 }
17913 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
17914 ordinal: 7992130864415541162,
17915 error,
17916 }),
17917 }
17918 }
17919
17920 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
17921 }
17922 }
17923}
17924
17925impl<___T> AdvisoryLockingClientHandler<___T> for ::fidl_next::IgnoreEvents where
17926 ___T: ::fidl_next::Transport
17927{
17928}
17929
17930impl<___H, ___T> AdvisoryLockingLocalClientHandler<___T> for ::fidl_next::Local<___H>
17931where
17932 ___H: AdvisoryLockingClientHandler<___T>,
17933 ___T: ::fidl_next::Transport,
17934{
17935}
17936
17937impl<___H, ___T> AdvisoryLockingLocalServerHandler<___T> for ::fidl_next::Local<___H>
17938where
17939 ___H: AdvisoryLockingServerHandler<___T>,
17940 ___T: ::fidl_next::Transport,
17941{
17942 async fn advisory_lock(
17943 &mut self,
17944
17945 request: ::fidl_next::Request<advisory_locking::AdvisoryLock, ___T>,
17946
17947 responder: ::fidl_next::Responder<advisory_locking::AdvisoryLock, ___T>,
17948 ) {
17949 ___H::advisory_lock(&mut self.0, request, responder).await
17950 }
17951}
17952
17953pub const DIRECTORY_PROTOCOL_NAME: &str = "fuchsia.io/Directory";
17954
17955#[doc = " The maximum length, in bytes, of a filesystem path.\n"]
17956pub const MAX_PATH_LENGTH: u64 = 4095 as u64;
17957
17958#[doc = " The maximal buffer size which can be transmitted for buffered operations.\n This capacity is currently set somewhat arbitrarily.\n"]
17959pub const MAX_BUF: u64 = 8192 as u64;
17960
17961#[doc = " The maximum length, in bytes, of a single filesystem component.\n"]
17962pub const MAX_NAME_LENGTH: u64 = 255 as u64;
17963
17964#[doc = " The maximum size for an extended attribute name.\n"]
17965pub const MAX_ATTRIBUTE_NAME: u64 = 255 as u64;
17966
17967#[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"]
17968pub const MAX_INLINE_ATTRIBUTE_VALUE: u64 = 32768 as u64;
17969
17970#[doc = " The maximum size for passing the SELinux context as an attribute.\n"]
17971pub const MAX_SELINUX_CONTEXT_ATTRIBUTE_LEN: u64 = 256 as u64;
17972
17973#[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"]
17975#[derive(PartialEq, Debug)]
17976pub struct DirectoryWatcher;
17977
17978#[cfg(target_os = "fuchsia")]
17979impl ::fidl_next::HasTransport for DirectoryWatcher {
17980 type Transport = ::fidl_next::fuchsia::zx::Channel;
17981}
17982
17983pub mod directory_watcher {
17984 pub mod prelude {
17985 pub use crate::{
17986 DirectoryWatcher, DirectoryWatcherClientHandler, DirectoryWatcherLocalClientHandler,
17987 DirectoryWatcherLocalServerHandler, DirectoryWatcherServerHandler, directory_watcher,
17988 };
17989 }
17990
17991 mod ___detail {
17992 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::DirectoryWatcher
17993 where
17994 ___T: ::fidl_next::Transport,
17995 {
17996 type Client = DirectoryWatcherClient<___T>;
17997 type Server = DirectoryWatcherServer<___T>;
17998 }
17999
18000 #[repr(transparent)]
18002 pub struct DirectoryWatcherClient<___T: ::fidl_next::Transport> {
18003 #[allow(dead_code)]
18004 client: ::fidl_next::protocol::Client<___T>,
18005 }
18006
18007 impl<___T> DirectoryWatcherClient<___T> where ___T: ::fidl_next::Transport {}
18008
18009 #[repr(transparent)]
18011 pub struct DirectoryWatcherServer<___T: ::fidl_next::Transport> {
18012 server: ::fidl_next::protocol::Server<___T>,
18013 }
18014
18015 impl<___T> DirectoryWatcherServer<___T> where ___T: ::fidl_next::Transport {}
18016 }
18017}
18018
18019#[diagnostic::on_unimplemented(
18020 note = "If {Self} implements the non-local DirectoryWatcherClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
18021)]
18022
18023pub trait DirectoryWatcherLocalClientHandler<
18027 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18028 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18029>
18030{
18031}
18032
18033impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for DirectoryWatcher
18034where
18035 ___H: DirectoryWatcherLocalClientHandler<___T>,
18036 ___T: ::fidl_next::Transport,
18037{
18038 async fn on_event(
18039 handler: &mut ___H,
18040 mut message: ::fidl_next::Message<___T>,
18041 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18042 match *message.header().ordinal {
18043 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18044 }
18045 }
18046}
18047
18048#[diagnostic::on_unimplemented(
18049 note = "If {Self} implements the non-local DirectoryWatcherServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
18050)]
18051
18052pub trait DirectoryWatcherLocalServerHandler<
18056 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18057 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18058>
18059{
18060}
18061
18062impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for DirectoryWatcher
18063where
18064 ___H: DirectoryWatcherLocalServerHandler<___T>,
18065 ___T: ::fidl_next::Transport,
18066{
18067 async fn on_one_way(
18068 handler: &mut ___H,
18069 mut message: ::fidl_next::Message<___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 async fn on_two_way(
18080 handler: &mut ___H,
18081 mut message: ::fidl_next::Message<___T>,
18082 responder: ::fidl_next::protocol::Responder<___T>,
18083 ) -> ::core::result::Result<
18084 (),
18085 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18086 > {
18087 match *message.header().ordinal {
18088 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18089 }
18090 }
18091}
18092
18093pub trait DirectoryWatcherClientHandler<
18097 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18098 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18099>
18100{
18101}
18102
18103impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for DirectoryWatcher
18104where
18105 ___H: DirectoryWatcherClientHandler<___T> + ::core::marker::Send,
18106 ___T: ::fidl_next::Transport,
18107{
18108 async fn on_event(
18109 handler: &mut ___H,
18110 mut message: ::fidl_next::Message<___T>,
18111 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18112 match *message.header().ordinal {
18113 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18114 }
18115 }
18116}
18117
18118pub trait DirectoryWatcherServerHandler<
18122 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18123 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18124>
18125{
18126}
18127
18128impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for DirectoryWatcher
18129where
18130 ___H: DirectoryWatcherServerHandler<___T> + ::core::marker::Send,
18131 ___T: ::fidl_next::Transport,
18132{
18133 async fn on_one_way(
18134 handler: &mut ___H,
18135 mut message: ::fidl_next::Message<___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 async fn on_two_way(
18146 handler: &mut ___H,
18147 mut message: ::fidl_next::Message<___T>,
18148 responder: ::fidl_next::protocol::Responder<___T>,
18149 ) -> ::core::result::Result<
18150 (),
18151 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18152 > {
18153 match *message.header().ordinal {
18154 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18155 }
18156 }
18157}
18158
18159impl<___T> DirectoryWatcherClientHandler<___T> for ::fidl_next::IgnoreEvents where
18160 ___T: ::fidl_next::Transport
18161{
18162}
18163
18164impl<___H, ___T> DirectoryWatcherLocalClientHandler<___T> for ::fidl_next::Local<___H>
18165where
18166 ___H: DirectoryWatcherClientHandler<___T>,
18167 ___T: ::fidl_next::Transport,
18168{
18169}
18170
18171impl<___H, ___T> DirectoryWatcherLocalServerHandler<___T> for ::fidl_next::Local<___H>
18172where
18173 ___H: DirectoryWatcherServerHandler<___T>,
18174 ___T: ::fidl_next::Transport,
18175{
18176}
18177
18178#[doc = " The maximum size of a chunk in the ListExtendedAttributes iterator.\n"]
18179pub const MAX_LIST_ATTRIBUTES_CHUNK: u64 = 128 as u64;
18180
18181#[derive(PartialEq, Debug)]
18183pub struct ExtendedAttributeIterator;
18184
18185#[cfg(target_os = "fuchsia")]
18186impl ::fidl_next::HasTransport for ExtendedAttributeIterator {
18187 type Transport = ::fidl_next::fuchsia::zx::Channel;
18188}
18189
18190pub mod extended_attribute_iterator {
18191 pub mod prelude {
18192 pub use crate::{
18193 ExtendedAttributeIterator, ExtendedAttributeIteratorClientHandler,
18194 ExtendedAttributeIteratorLocalClientHandler,
18195 ExtendedAttributeIteratorLocalServerHandler, ExtendedAttributeIteratorServerHandler,
18196 extended_attribute_iterator,
18197 };
18198
18199 pub use crate::natural::ExtendedAttributeIteratorGetNextResponse;
18200 }
18201
18202 pub struct GetNext;
18203
18204 impl ::fidl_next::Method for GetNext {
18205 const ORDINAL: u64 = 268639596268373415;
18206 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
18207 ::fidl_next::protocol::Flexibility::Strict;
18208
18209 type Protocol = crate::ExtendedAttributeIterator;
18210
18211 type Request = ::fidl_next::wire::EmptyMessageBody;
18212 }
18213
18214 impl ::fidl_next::TwoWayMethod for GetNext {
18215 type Response = ::fidl_next::wire::Result<
18216 'static,
18217 crate::wire::ExtendedAttributeIteratorGetNextResponse<'static>,
18218 ::fidl_next::wire::fuchsia::Status,
18219 >;
18220 }
18221
18222 impl<___R> ::fidl_next::Respond<___R> for GetNext {
18223 type Output = ::core::result::Result<___R, ::fidl_next::never::Never>;
18224
18225 fn respond(response: ___R) -> Self::Output {
18226 ::core::result::Result::Ok(response)
18227 }
18228 }
18229
18230 impl<___R> ::fidl_next::RespondErr<___R> for GetNext {
18231 type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
18232
18233 fn respond_err(response: ___R) -> Self::Output {
18234 ::core::result::Result::Err(response)
18235 }
18236 }
18237
18238 mod ___detail {
18239 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::ExtendedAttributeIterator
18240 where
18241 ___T: ::fidl_next::Transport,
18242 {
18243 type Client = ExtendedAttributeIteratorClient<___T>;
18244 type Server = ExtendedAttributeIteratorServer<___T>;
18245 }
18246
18247 #[repr(transparent)]
18249 pub struct ExtendedAttributeIteratorClient<___T: ::fidl_next::Transport> {
18250 #[allow(dead_code)]
18251 client: ::fidl_next::protocol::Client<___T>,
18252 }
18253
18254 impl<___T> ExtendedAttributeIteratorClient<___T>
18255 where
18256 ___T: ::fidl_next::Transport,
18257 {
18258 #[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"]
18259 pub fn get_next(&self) -> ::fidl_next::TwoWayFuture<'_, super::GetNext, ___T> {
18260 ::fidl_next::TwoWayFuture::from_untyped(
18261 self.client.send_two_way::<::fidl_next::wire::EmptyMessageBody>(
18262 268639596268373415,
18263 <super::GetNext as ::fidl_next::Method>::FLEXIBILITY,
18264 (),
18265 ),
18266 )
18267 }
18268 }
18269
18270 #[repr(transparent)]
18272 pub struct ExtendedAttributeIteratorServer<___T: ::fidl_next::Transport> {
18273 server: ::fidl_next::protocol::Server<___T>,
18274 }
18275
18276 impl<___T> ExtendedAttributeIteratorServer<___T> where ___T: ::fidl_next::Transport {}
18277 }
18278}
18279
18280#[diagnostic::on_unimplemented(
18281 note = "If {Self} implements the non-local ExtendedAttributeIteratorClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
18282)]
18283
18284pub trait ExtendedAttributeIteratorLocalClientHandler<
18288 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18289 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18290>
18291{
18292}
18293
18294impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for ExtendedAttributeIterator
18295where
18296 ___H: ExtendedAttributeIteratorLocalClientHandler<___T>,
18297 ___T: ::fidl_next::Transport,
18298{
18299 async fn on_event(
18300 handler: &mut ___H,
18301 mut message: ::fidl_next::Message<___T>,
18302 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18303 match *message.header().ordinal {
18304 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18305 }
18306 }
18307}
18308
18309#[diagnostic::on_unimplemented(
18310 note = "If {Self} implements the non-local ExtendedAttributeIteratorServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
18311)]
18312
18313pub trait ExtendedAttributeIteratorLocalServerHandler<
18317 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18318 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18319>
18320{
18321 #[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"]
18322 fn get_next(
18323 &mut self,
18324
18325 responder: ::fidl_next::Responder<extended_attribute_iterator::GetNext, ___T>,
18326 ) -> impl ::core::future::Future<Output = ()>;
18327}
18328
18329impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for ExtendedAttributeIterator
18330where
18331 ___H: ExtendedAttributeIteratorLocalServerHandler<___T>,
18332 ___T: ::fidl_next::Transport,
18333{
18334 async fn on_one_way(
18335 handler: &mut ___H,
18336 mut message: ::fidl_next::Message<___T>,
18337 ) -> ::core::result::Result<
18338 (),
18339 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18340 > {
18341 match *message.header().ordinal {
18342 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18343 }
18344 }
18345
18346 async fn on_two_way(
18347 handler: &mut ___H,
18348 mut message: ::fidl_next::Message<___T>,
18349 responder: ::fidl_next::protocol::Responder<___T>,
18350 ) -> ::core::result::Result<
18351 (),
18352 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18353 > {
18354 match *message.header().ordinal {
18355 268639596268373415 => {
18356 let responder = ::fidl_next::Responder::from_untyped(responder);
18357
18358 handler.get_next(responder).await;
18359 Ok(())
18360 }
18361
18362 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18363 }
18364 }
18365}
18366
18367pub trait ExtendedAttributeIteratorClientHandler<
18371 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18372 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18373>
18374{
18375}
18376
18377impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for ExtendedAttributeIterator
18378where
18379 ___H: ExtendedAttributeIteratorClientHandler<___T> + ::core::marker::Send,
18380 ___T: ::fidl_next::Transport,
18381{
18382 async fn on_event(
18383 handler: &mut ___H,
18384 mut message: ::fidl_next::Message<___T>,
18385 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18386 match *message.header().ordinal {
18387 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18388 }
18389 }
18390}
18391
18392pub trait ExtendedAttributeIteratorServerHandler<
18396 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18397 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18398>
18399{
18400 #[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"]
18401 fn get_next(
18402 &mut self,
18403
18404 responder: ::fidl_next::Responder<extended_attribute_iterator::GetNext, ___T>,
18405 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
18406}
18407
18408impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for ExtendedAttributeIterator
18409where
18410 ___H: ExtendedAttributeIteratorServerHandler<___T> + ::core::marker::Send,
18411 ___T: ::fidl_next::Transport,
18412{
18413 async fn on_one_way(
18414 handler: &mut ___H,
18415 mut message: ::fidl_next::Message<___T>,
18416 ) -> ::core::result::Result<
18417 (),
18418 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18419 > {
18420 match *message.header().ordinal {
18421 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18422 }
18423 }
18424
18425 async fn on_two_way(
18426 handler: &mut ___H,
18427 mut message: ::fidl_next::Message<___T>,
18428 responder: ::fidl_next::protocol::Responder<___T>,
18429 ) -> ::core::result::Result<
18430 (),
18431 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18432 > {
18433 match *message.header().ordinal {
18434 268639596268373415 => {
18435 let responder = ::fidl_next::Responder::from_untyped(responder);
18436
18437 handler.get_next(responder).await;
18438 Ok(())
18439 }
18440
18441 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18442 }
18443 }
18444}
18445
18446impl<___T> ExtendedAttributeIteratorClientHandler<___T> for ::fidl_next::IgnoreEvents where
18447 ___T: ::fidl_next::Transport
18448{
18449}
18450
18451impl<___H, ___T> ExtendedAttributeIteratorLocalClientHandler<___T> for ::fidl_next::Local<___H>
18452where
18453 ___H: ExtendedAttributeIteratorClientHandler<___T>,
18454 ___T: ::fidl_next::Transport,
18455{
18456}
18457
18458impl<___H, ___T> ExtendedAttributeIteratorLocalServerHandler<___T> for ::fidl_next::Local<___H>
18459where
18460 ___H: ExtendedAttributeIteratorServerHandler<___T>,
18461 ___T: ::fidl_next::Transport,
18462{
18463 async fn get_next(
18464 &mut self,
18465
18466 responder: ::fidl_next::Responder<extended_attribute_iterator::GetNext, ___T>,
18467 ) {
18468 ___H::get_next(&mut self.0, responder).await
18469 }
18470}
18471
18472pub const FILE_PROTOCOL_NAME: &str = "fuchsia.io/File";
18473
18474#[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"]
18475pub const FLAG_TEMPORARY_AS_NOT_LINKABLE: crate::natural::Flags =
18476 crate::natural::Flags::FLAG_MUST_CREATE;
18477
18478#[doc = " The maximum I/O size that is allowed for read/write operations using\n byte vectors.\n"]
18479pub const MAX_TRANSFER_SIZE: u64 = 8192 as u64;
18480
18481#[derive(PartialEq, Debug)]
18483pub struct Readable;
18484
18485#[cfg(target_os = "fuchsia")]
18486impl ::fidl_next::HasTransport for Readable {
18487 type Transport = ::fidl_next::fuchsia::zx::Channel;
18488}
18489
18490pub mod readable {
18491 pub mod prelude {
18492 pub use crate::{
18493 Readable, ReadableClientHandler, ReadableLocalClientHandler,
18494 ReadableLocalServerHandler, ReadableServerHandler, readable,
18495 };
18496
18497 pub use crate::natural::ReadableReadRequest;
18498
18499 pub use crate::natural::ReadableReadResponse;
18500 }
18501
18502 pub struct Read;
18503
18504 impl ::fidl_next::Method for Read {
18505 const ORDINAL: u64 = 395825947633028830;
18506 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
18507 ::fidl_next::protocol::Flexibility::Strict;
18508
18509 type Protocol = crate::Readable;
18510
18511 type Request = crate::wire::ReadableReadRequest;
18512 }
18513
18514 impl ::fidl_next::TwoWayMethod for Read {
18515 type Response = ::fidl_next::wire::Result<
18516 'static,
18517 crate::wire::ReadableReadResponse<'static>,
18518 ::fidl_next::wire::fuchsia::Status,
18519 >;
18520 }
18521
18522 impl<___R> ::fidl_next::Respond<___R> for Read {
18523 type Output = ::core::result::Result<
18524 crate::generic::ReadableReadResponse<___R>,
18525 ::fidl_next::never::Never,
18526 >;
18527
18528 fn respond(response: ___R) -> Self::Output {
18529 ::core::result::Result::Ok(crate::generic::ReadableReadResponse { data: response })
18530 }
18531 }
18532
18533 impl<___R> ::fidl_next::RespondErr<___R> for Read {
18534 type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
18535
18536 fn respond_err(response: ___R) -> Self::Output {
18537 ::core::result::Result::Err(response)
18538 }
18539 }
18540
18541 mod ___detail {
18542 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::Readable
18543 where
18544 ___T: ::fidl_next::Transport,
18545 {
18546 type Client = ReadableClient<___T>;
18547 type Server = ReadableServer<___T>;
18548 }
18549
18550 #[repr(transparent)]
18552 pub struct ReadableClient<___T: ::fidl_next::Transport> {
18553 #[allow(dead_code)]
18554 client: ::fidl_next::protocol::Client<___T>,
18555 }
18556
18557 impl<___T> ReadableClient<___T>
18558 where
18559 ___T: ::fidl_next::Transport,
18560 {
18561 #[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"]
18562 pub fn read(
18563 &self,
18564
18565 count: impl ::fidl_next::Encode<
18566 ::fidl_next::wire::Uint64,
18567 <___T as ::fidl_next::Transport>::SendBuffer,
18568 >,
18569 ) -> ::fidl_next::TwoWayFuture<'_, super::Read, ___T>
18570 where
18571 <___T as ::fidl_next::Transport>::SendBuffer:
18572 ::fidl_next::encoder::InternalHandleEncoder,
18573 {
18574 self.read_with(crate::generic::ReadableReadRequest { count })
18575 }
18576
18577 #[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"]
18578 pub fn read_with<___R>(
18579 &self,
18580 request: ___R,
18581 ) -> ::fidl_next::TwoWayFuture<'_, super::Read, ___T>
18582 where
18583 ___R: ::fidl_next::Encode<
18584 crate::wire::ReadableReadRequest,
18585 <___T as ::fidl_next::Transport>::SendBuffer,
18586 >,
18587 {
18588 ::fidl_next::TwoWayFuture::from_untyped(self.client.send_two_way(
18589 395825947633028830,
18590 <super::Read as ::fidl_next::Method>::FLEXIBILITY,
18591 request,
18592 ))
18593 }
18594 }
18595
18596 #[repr(transparent)]
18598 pub struct ReadableServer<___T: ::fidl_next::Transport> {
18599 server: ::fidl_next::protocol::Server<___T>,
18600 }
18601
18602 impl<___T> ReadableServer<___T> where ___T: ::fidl_next::Transport {}
18603 }
18604}
18605
18606#[diagnostic::on_unimplemented(
18607 note = "If {Self} implements the non-local ReadableClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
18608)]
18609
18610pub trait ReadableLocalClientHandler<
18614 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18615 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18616>
18617{
18618}
18619
18620impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for Readable
18621where
18622 ___H: ReadableLocalClientHandler<___T>,
18623 ___T: ::fidl_next::Transport,
18624{
18625 async fn on_event(
18626 handler: &mut ___H,
18627 mut message: ::fidl_next::Message<___T>,
18628 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18629 match *message.header().ordinal {
18630 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18631 }
18632 }
18633}
18634
18635#[diagnostic::on_unimplemented(
18636 note = "If {Self} implements the non-local ReadableServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
18637)]
18638
18639pub trait ReadableLocalServerHandler<
18643 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18644 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18645>
18646{
18647 #[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"]
18648 fn read(
18649 &mut self,
18650
18651 request: ::fidl_next::Request<readable::Read, ___T>,
18652
18653 responder: ::fidl_next::Responder<readable::Read, ___T>,
18654 ) -> impl ::core::future::Future<Output = ()>;
18655}
18656
18657impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for Readable
18658where
18659 ___H: ReadableLocalServerHandler<___T>,
18660 ___T: ::fidl_next::Transport,
18661 for<'de> crate::wire::ReadableReadRequest: ::fidl_next::Decode<
18662 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
18663 Constraint = (),
18664 >,
18665{
18666 async fn on_one_way(
18667 handler: &mut ___H,
18668 mut message: ::fidl_next::Message<___T>,
18669 ) -> ::core::result::Result<
18670 (),
18671 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18672 > {
18673 match *message.header().ordinal {
18674 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18675 }
18676 }
18677
18678 async fn on_two_way(
18679 handler: &mut ___H,
18680 mut message: ::fidl_next::Message<___T>,
18681 responder: ::fidl_next::protocol::Responder<___T>,
18682 ) -> ::core::result::Result<
18683 (),
18684 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18685 > {
18686 match *message.header().ordinal {
18687 395825947633028830 => {
18688 let responder = ::fidl_next::Responder::from_untyped(responder);
18689
18690 match ::fidl_next::AsDecoderExt::into_decoded(message) {
18691 Ok(decoded) => {
18692 handler.read(::fidl_next::Request::from_decoded(decoded), responder).await;
18693 Ok(())
18694 }
18695 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
18696 ordinal: 395825947633028830,
18697 error,
18698 }),
18699 }
18700 }
18701
18702 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18703 }
18704 }
18705}
18706
18707pub trait ReadableClientHandler<
18711 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18712 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18713>
18714{
18715}
18716
18717impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for Readable
18718where
18719 ___H: ReadableClientHandler<___T> + ::core::marker::Send,
18720 ___T: ::fidl_next::Transport,
18721{
18722 async fn on_event(
18723 handler: &mut ___H,
18724 mut message: ::fidl_next::Message<___T>,
18725 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18726 match *message.header().ordinal {
18727 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18728 }
18729 }
18730}
18731
18732pub trait ReadableServerHandler<
18736 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18737 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18738>
18739{
18740 #[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"]
18741 fn read(
18742 &mut self,
18743
18744 request: ::fidl_next::Request<readable::Read, ___T>,
18745
18746 responder: ::fidl_next::Responder<readable::Read, ___T>,
18747 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
18748}
18749
18750impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for Readable
18751where
18752 ___H: ReadableServerHandler<___T> + ::core::marker::Send,
18753 ___T: ::fidl_next::Transport,
18754 for<'de> crate::wire::ReadableReadRequest: ::fidl_next::Decode<
18755 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
18756 Constraint = (),
18757 >,
18758{
18759 async fn on_one_way(
18760 handler: &mut ___H,
18761 mut message: ::fidl_next::Message<___T>,
18762 ) -> ::core::result::Result<
18763 (),
18764 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18765 > {
18766 match *message.header().ordinal {
18767 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18768 }
18769 }
18770
18771 async fn on_two_way(
18772 handler: &mut ___H,
18773 mut message: ::fidl_next::Message<___T>,
18774 responder: ::fidl_next::protocol::Responder<___T>,
18775 ) -> ::core::result::Result<
18776 (),
18777 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
18778 > {
18779 match *message.header().ordinal {
18780 395825947633028830 => {
18781 let responder = ::fidl_next::Responder::from_untyped(responder);
18782
18783 match ::fidl_next::AsDecoderExt::into_decoded(message) {
18784 Ok(decoded) => {
18785 handler.read(::fidl_next::Request::from_decoded(decoded), responder).await;
18786 Ok(())
18787 }
18788 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
18789 ordinal: 395825947633028830,
18790 error,
18791 }),
18792 }
18793 }
18794
18795 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18796 }
18797 }
18798}
18799
18800impl<___T> ReadableClientHandler<___T> for ::fidl_next::IgnoreEvents where
18801 ___T: ::fidl_next::Transport
18802{
18803}
18804
18805impl<___H, ___T> ReadableLocalClientHandler<___T> for ::fidl_next::Local<___H>
18806where
18807 ___H: ReadableClientHandler<___T>,
18808 ___T: ::fidl_next::Transport,
18809{
18810}
18811
18812impl<___H, ___T> ReadableLocalServerHandler<___T> for ::fidl_next::Local<___H>
18813where
18814 ___H: ReadableServerHandler<___T>,
18815 ___T: ::fidl_next::Transport,
18816{
18817 async fn read(
18818 &mut self,
18819
18820 request: ::fidl_next::Request<readable::Read, ___T>,
18821
18822 responder: ::fidl_next::Responder<readable::Read, ___T>,
18823 ) {
18824 ___H::read(&mut self.0, request, responder).await
18825 }
18826}
18827
18828#[derive(PartialEq, Debug)]
18830pub struct Writable;
18831
18832#[cfg(target_os = "fuchsia")]
18833impl ::fidl_next::HasTransport for Writable {
18834 type Transport = ::fidl_next::fuchsia::zx::Channel;
18835}
18836
18837pub mod writable {
18838 pub mod prelude {
18839 pub use crate::{
18840 Writable, WritableClientHandler, WritableLocalClientHandler,
18841 WritableLocalServerHandler, WritableServerHandler, writable,
18842 };
18843
18844 pub use crate::natural::WritableWriteRequest;
18845
18846 pub use crate::natural::WritableWriteResponse;
18847 }
18848
18849 pub struct Write;
18850
18851 impl ::fidl_next::Method for Write {
18852 const ORDINAL: u64 = 7651971425397809026;
18853 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
18854 ::fidl_next::protocol::Flexibility::Strict;
18855
18856 type Protocol = crate::Writable;
18857
18858 type Request = crate::wire::WritableWriteRequest<'static>;
18859 }
18860
18861 impl ::fidl_next::TwoWayMethod for Write {
18862 type Response = ::fidl_next::wire::Result<
18863 'static,
18864 crate::wire::WritableWriteResponse,
18865 ::fidl_next::wire::fuchsia::Status,
18866 >;
18867 }
18868
18869 impl<___R> ::fidl_next::Respond<___R> for Write {
18870 type Output = ::core::result::Result<
18871 crate::generic::WritableWriteResponse<___R>,
18872 ::fidl_next::never::Never,
18873 >;
18874
18875 fn respond(response: ___R) -> Self::Output {
18876 ::core::result::Result::Ok(crate::generic::WritableWriteResponse {
18877 actual_count: response,
18878 })
18879 }
18880 }
18881
18882 impl<___R> ::fidl_next::RespondErr<___R> for Write {
18883 type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
18884
18885 fn respond_err(response: ___R) -> Self::Output {
18886 ::core::result::Result::Err(response)
18887 }
18888 }
18889
18890 mod ___detail {
18891 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::Writable
18892 where
18893 ___T: ::fidl_next::Transport,
18894 {
18895 type Client = WritableClient<___T>;
18896 type Server = WritableServer<___T>;
18897 }
18898
18899 #[repr(transparent)]
18901 pub struct WritableClient<___T: ::fidl_next::Transport> {
18902 #[allow(dead_code)]
18903 client: ::fidl_next::protocol::Client<___T>,
18904 }
18905
18906 impl<___T> WritableClient<___T>
18907 where
18908 ___T: ::fidl_next::Transport,
18909 {
18910 #[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"]
18911 pub fn write(
18912 &self,
18913
18914 data: impl ::fidl_next::Encode<
18915 ::fidl_next::wire::Vector<'static, u8>,
18916 <___T as ::fidl_next::Transport>::SendBuffer,
18917 >,
18918 ) -> ::fidl_next::TwoWayFuture<'_, super::Write, ___T>
18919 where
18920 <___T as ::fidl_next::Transport>::SendBuffer:
18921 ::fidl_next::encoder::InternalHandleEncoder,
18922 <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::Encoder,
18923 {
18924 self.write_with(crate::generic::WritableWriteRequest { data })
18925 }
18926
18927 #[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"]
18928 pub fn write_with<___R>(
18929 &self,
18930 request: ___R,
18931 ) -> ::fidl_next::TwoWayFuture<'_, super::Write, ___T>
18932 where
18933 ___R: ::fidl_next::Encode<
18934 crate::wire::WritableWriteRequest<'static>,
18935 <___T as ::fidl_next::Transport>::SendBuffer,
18936 >,
18937 {
18938 ::fidl_next::TwoWayFuture::from_untyped(self.client.send_two_way(
18939 7651971425397809026,
18940 <super::Write as ::fidl_next::Method>::FLEXIBILITY,
18941 request,
18942 ))
18943 }
18944 }
18945
18946 #[repr(transparent)]
18948 pub struct WritableServer<___T: ::fidl_next::Transport> {
18949 server: ::fidl_next::protocol::Server<___T>,
18950 }
18951
18952 impl<___T> WritableServer<___T> where ___T: ::fidl_next::Transport {}
18953 }
18954}
18955
18956#[diagnostic::on_unimplemented(
18957 note = "If {Self} implements the non-local WritableClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
18958)]
18959
18960pub trait WritableLocalClientHandler<
18964 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18965 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18966>
18967{
18968}
18969
18970impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for Writable
18971where
18972 ___H: WritableLocalClientHandler<___T>,
18973 ___T: ::fidl_next::Transport,
18974{
18975 async fn on_event(
18976 handler: &mut ___H,
18977 mut message: ::fidl_next::Message<___T>,
18978 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
18979 match *message.header().ordinal {
18980 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
18981 }
18982 }
18983}
18984
18985#[diagnostic::on_unimplemented(
18986 note = "If {Self} implements the non-local WritableServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
18987)]
18988
18989pub trait WritableLocalServerHandler<
18993 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
18994 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
18995>
18996{
18997 #[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"]
18998 fn write(
18999 &mut self,
19000
19001 request: ::fidl_next::Request<writable::Write, ___T>,
19002
19003 responder: ::fidl_next::Responder<writable::Write, ___T>,
19004 ) -> impl ::core::future::Future<Output = ()>;
19005}
19006
19007impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for Writable
19008where
19009 ___H: WritableLocalServerHandler<___T>,
19010 ___T: ::fidl_next::Transport,
19011 for<'de> crate::wire::WritableWriteRequest<'de>: ::fidl_next::Decode<
19012 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
19013 Constraint = (),
19014 >,
19015{
19016 async fn on_one_way(
19017 handler: &mut ___H,
19018 mut message: ::fidl_next::Message<___T>,
19019 ) -> ::core::result::Result<
19020 (),
19021 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
19022 > {
19023 match *message.header().ordinal {
19024 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
19025 }
19026 }
19027
19028 async fn on_two_way(
19029 handler: &mut ___H,
19030 mut message: ::fidl_next::Message<___T>,
19031 responder: ::fidl_next::protocol::Responder<___T>,
19032 ) -> ::core::result::Result<
19033 (),
19034 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
19035 > {
19036 match *message.header().ordinal {
19037 7651971425397809026 => {
19038 let responder = ::fidl_next::Responder::from_untyped(responder);
19039
19040 match ::fidl_next::AsDecoderExt::into_decoded(message) {
19041 Ok(decoded) => {
19042 handler.write(::fidl_next::Request::from_decoded(decoded), responder).await;
19043 Ok(())
19044 }
19045 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
19046 ordinal: 7651971425397809026,
19047 error,
19048 }),
19049 }
19050 }
19051
19052 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
19053 }
19054 }
19055}
19056
19057pub trait WritableClientHandler<
19061 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
19062 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
19063>
19064{
19065}
19066
19067impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for Writable
19068where
19069 ___H: WritableClientHandler<___T> + ::core::marker::Send,
19070 ___T: ::fidl_next::Transport,
19071{
19072 async fn on_event(
19073 handler: &mut ___H,
19074 mut message: ::fidl_next::Message<___T>,
19075 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
19076 match *message.header().ordinal {
19077 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
19078 }
19079 }
19080}
19081
19082pub trait WritableServerHandler<
19086 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
19087 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
19088>
19089{
19090 #[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"]
19091 fn write(
19092 &mut self,
19093
19094 request: ::fidl_next::Request<writable::Write, ___T>,
19095
19096 responder: ::fidl_next::Responder<writable::Write, ___T>,
19097 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
19098}
19099
19100impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for Writable
19101where
19102 ___H: WritableServerHandler<___T> + ::core::marker::Send,
19103 ___T: ::fidl_next::Transport,
19104 for<'de> crate::wire::WritableWriteRequest<'de>: ::fidl_next::Decode<
19105 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
19106 Constraint = (),
19107 >,
19108{
19109 async fn on_one_way(
19110 handler: &mut ___H,
19111 mut message: ::fidl_next::Message<___T>,
19112 ) -> ::core::result::Result<
19113 (),
19114 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
19115 > {
19116 match *message.header().ordinal {
19117 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
19118 }
19119 }
19120
19121 async fn on_two_way(
19122 handler: &mut ___H,
19123 mut message: ::fidl_next::Message<___T>,
19124 responder: ::fidl_next::protocol::Responder<___T>,
19125 ) -> ::core::result::Result<
19126 (),
19127 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
19128 > {
19129 match *message.header().ordinal {
19130 7651971425397809026 => {
19131 let responder = ::fidl_next::Responder::from_untyped(responder);
19132
19133 match ::fidl_next::AsDecoderExt::into_decoded(message) {
19134 Ok(decoded) => {
19135 handler.write(::fidl_next::Request::from_decoded(decoded), responder).await;
19136 Ok(())
19137 }
19138 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
19139 ordinal: 7651971425397809026,
19140 error,
19141 }),
19142 }
19143 }
19144
19145 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
19146 }
19147 }
19148}
19149
19150impl<___T> WritableClientHandler<___T> for ::fidl_next::IgnoreEvents where
19151 ___T: ::fidl_next::Transport
19152{
19153}
19154
19155impl<___H, ___T> WritableLocalClientHandler<___T> for ::fidl_next::Local<___H>
19156where
19157 ___H: WritableClientHandler<___T>,
19158 ___T: ::fidl_next::Transport,
19159{
19160}
19161
19162impl<___H, ___T> WritableLocalServerHandler<___T> for ::fidl_next::Local<___H>
19163where
19164 ___H: WritableServerHandler<___T>,
19165 ___T: ::fidl_next::Transport,
19166{
19167 async fn write(
19168 &mut self,
19169
19170 request: ::fidl_next::Request<writable::Write, ___T>,
19171
19172 responder: ::fidl_next::Responder<writable::Write, ___T>,
19173 ) {
19174 ___H::write(&mut self.0, request, responder).await
19175 }
19176}
19177
19178pub const MAX_FS_NAME_BUFFER: u64 = 32 as u64;
19179
19180#[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"]
19181pub const INHERITED_WRITE_PERMISSIONS: crate::natural::Operations =
19182 crate::natural::Operations::from_bits_retain(356);
19183
19184#[doc = " Nodes which do not have ino values should return this value\n from Readdir and GetAttr.\n"]
19185pub const INO_UNKNOWN: u64 = 18446744073709551615 as u64;
19186
19187pub const MASK_KNOWN_PERMISSIONS: crate::natural::Flags =
19188 crate::natural::Flags::from_bits_retain(25087);
19189
19190pub const MASK_KNOWN_PROTOCOLS: crate::natural::Flags =
19191 crate::natural::Flags::from_bits_retain(30069489664);
19192
19193pub const MASK_PERMISSION_FLAGS: u64 = 65535 as u64;
19194
19195pub const MASK_POSIX_FLAGS: u64 = 4294967295 as u64;
19196
19197#[doc = " The maximum length, in bytes, of a single filesystem component.\n"]
19198pub const MAX_FILENAME: u64 = 255 as u64;
19199
19200pub const NODE_PROTOCOL_NAME: &str = "fuchsia.io/Node";
19201
19202#[doc = " Flags used when opening a node reference must fall within this mask.\n"]
19203pub const OPEN_FLAGS_ALLOWED_WITH_NODE_REFERENCE: crate::natural::OpenFlags =
19204 crate::natural::OpenFlags::from_bits_retain(46661632);
19205
19206#[doc = " All known rights.\n"]
19207pub const OPEN_RIGHTS: crate::natural::OpenFlags = crate::natural::OpenFlags::from_bits_retain(11);
19208
19209#[doc = " Set of permissions that are expected when opening a node as executable.\n"]
19210pub const PERM_EXECUTABLE: crate::natural::Flags = crate::natural::Flags::from_bits_retain(201);
19211
19212#[doc = " Set of permissions that are expected when opening a node as readable.\n"]
19213pub const PERM_READABLE: crate::natural::Flags = crate::natural::Flags::from_bits_retain(211);
19214
19215#[doc = " Set of permissions that are expected when opening a node as writable.\n"]
19216pub const PERM_WRITABLE: crate::natural::Flags = crate::natural::Flags::from_bits_retain(485);
19217
19218#[doc = " Alias for directory permission alias rw*\n"]
19219pub const RW_STAR_DIR: crate::natural::Operations =
19220 crate::natural::Operations::from_bits_retain(503);
19221
19222#[doc = " Alias for directory permission alias rx*\n"]
19223pub const RX_STAR_DIR: crate::natural::Operations =
19224 crate::natural::Operations::from_bits_retain(219);
19225
19226#[doc = " Alias for directory permission alias r*\n"]
19227pub const R_STAR_DIR: crate::natural::Operations =
19228 crate::natural::Operations::from_bits_retain(211);
19229
19230#[doc = " The name of the extended attribute accessible via the SELinux context attribute.\n"]
19231pub const SELINUX_CONTEXT_NAME: &str = "security.selinux";
19232
19233pub const SYMLINK_PROTOCOL_NAME: &str = "fuchsia.io/Symlink";
19234
19235#[doc = " Alias for directory permission alias w*\n"]
19236pub const W_STAR_DIR: crate::natural::Operations =
19237 crate::natural::Operations::from_bits_retain(485);
19238
19239#[doc = " Alias for directory permission alias x*\n"]
19240pub const X_STAR_DIR: crate::natural::Operations =
19241 crate::natural::Operations::from_bits_retain(201);