Skip to main content

fidl_next_fuchsia_metrics/
fidl_next_fuchsia_metrics.rs

1// DO NOT EDIT: This file is machine-generated by fidlgen
2#![warn(clippy::all)]
3#![allow(unused_parens, unused_variables, unused_mut, unused_imports, unreachable_code)]
4
5pub mod natural {
6
7    pub use fidl_next_common_fuchsia_metrics::natural::*;
8
9    #[derive(Debug, PartialEq)]
10    pub struct MetricEventLoggerFactoryCreateMetricEventLoggerRequest {
11        pub project_spec: crate::natural::ProjectSpec,
12
13        pub logger:
14            ::fidl_next::ServerEnd<crate::MetricEventLogger, ::fidl_next::fuchsia::zx::Channel>,
15    }
16
17    unsafe impl<___E>
18        ::fidl_next::Encode<
19            crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'static>,
20            ___E,
21        > for MetricEventLoggerFactoryCreateMetricEventLoggerRequest
22    where
23        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
24        ___E: ::fidl_next::Encoder,
25        ___E: ::fidl_next::fuchsia::HandleEncoder,
26    {
27        #[inline]
28        fn encode(
29            self,
30            encoder_: &mut ___E,
31            out_: &mut ::core::mem::MaybeUninit<
32                crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'static>,
33            >,
34            _: (),
35        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
36            ::fidl_next::munge! {
37                let crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest {
38                    project_spec,
39                    logger,
40
41                } = out_;
42            }
43
44            ::fidl_next::Encode::encode(self.project_spec, encoder_, project_spec, ())?;
45
46            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(project_spec.as_mut_ptr()) };
47
48            ::fidl_next::Encode::encode(self.logger, encoder_, logger, ())?;
49
50            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(logger.as_mut_ptr()) };
51
52            Ok(())
53        }
54    }
55
56    unsafe impl<___E>
57        ::fidl_next::EncodeOption<
58            ::fidl_next::wire::Box<
59                'static,
60                crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'static>,
61            >,
62            ___E,
63        > for MetricEventLoggerFactoryCreateMetricEventLoggerRequest
64    where
65        ___E: ::fidl_next::Encoder + ?Sized,
66        MetricEventLoggerFactoryCreateMetricEventLoggerRequest: ::fidl_next::Encode<
67                crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'static>,
68                ___E,
69            >,
70    {
71        #[inline]
72        fn encode_option(
73            this: ::core::option::Option<Self>,
74            encoder: &mut ___E,
75            out: &mut ::core::mem::MaybeUninit<
76                ::fidl_next::wire::Box<
77                    'static,
78                    crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'static>,
79                >,
80            >,
81            _: (),
82        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
83            if let Some(inner) = this {
84                ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
85                ::fidl_next::wire::Box::encode_present(out);
86            } else {
87                ::fidl_next::wire::Box::encode_absent(out);
88            }
89
90            Ok(())
91        }
92    }
93
94    impl<'de>
95        ::fidl_next::FromWire<
96            crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'de>,
97        > for MetricEventLoggerFactoryCreateMetricEventLoggerRequest
98    {
99        #[inline]
100        fn from_wire(
101            wire: crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'de>,
102        ) -> Self {
103            Self {
104                project_spec: ::fidl_next::FromWire::from_wire(wire.project_spec),
105
106                logger: ::fidl_next::FromWire::from_wire(wire.logger),
107            }
108        }
109    }
110
111    #[derive(Debug, PartialEq)]
112    pub struct MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest {
113        pub project_spec: crate::natural::ProjectSpec,
114
115        pub experiment_ids: ::std::vec::Vec<u32>,
116
117        pub logger:
118            ::fidl_next::ServerEnd<crate::MetricEventLogger, ::fidl_next::fuchsia::zx::Channel>,
119    }
120
121    unsafe impl<___E>
122        ::fidl_next::Encode<
123            crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<
124                'static,
125            >,
126            ___E,
127        > for MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest
128    where
129        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
130        ___E: ::fidl_next::Encoder,
131        ___E: ::fidl_next::fuchsia::HandleEncoder,
132    {
133        #[inline]
134        fn encode(
135            self,
136            encoder_: &mut ___E,
137            out_: &mut ::core::mem::MaybeUninit<
138                crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<
139                    'static,
140                >,
141            >,
142            _: (),
143        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
144            ::fidl_next::munge! {
145                let crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest {
146                    project_spec,
147                    experiment_ids,
148                    logger,
149
150                } = out_;
151            }
152
153            ::fidl_next::Encode::encode(self.project_spec, encoder_, project_spec, ())?;
154
155            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(project_spec.as_mut_ptr()) };
156
157            ::fidl_next::Encode::encode(self.experiment_ids, encoder_, experiment_ids, (100, ()))?;
158
159            let mut _field =
160                unsafe { ::fidl_next::Slot::new_unchecked(experiment_ids.as_mut_ptr()) };
161            ::fidl_next::Constrained::validate(_field, (100, ()))?;
162
163            ::fidl_next::Encode::encode(self.logger, encoder_, logger, ())?;
164
165            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(logger.as_mut_ptr()) };
166
167            Ok(())
168        }
169    }
170
171    unsafe impl<___E>
172        ::fidl_next::EncodeOption<
173            ::fidl_next::wire::Box<
174                'static,
175                crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<
176                    'static,
177                >,
178            >,
179            ___E,
180        > for MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest
181    where
182        ___E: ::fidl_next::Encoder + ?Sized,
183        MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest: ::fidl_next::Encode<
184                crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<
185                    'static,
186                >,
187                ___E,
188            >,
189    {
190        #[inline]
191        fn encode_option(
192            this: ::core::option::Option<Self>,
193            encoder: &mut ___E,
194            out: &mut ::core::mem::MaybeUninit<::fidl_next::wire::Box<'static, crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'static>>>,
195            _: (),
196        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
197            if let Some(inner) = this {
198                ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
199                ::fidl_next::wire::Box::encode_present(out);
200            } else {
201                ::fidl_next::wire::Box::encode_absent(out);
202            }
203
204            Ok(())
205        }
206    }
207
208    impl<'de>
209        ::fidl_next::FromWire<
210            crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'de>,
211        > for MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest
212    {
213        #[inline]
214        fn from_wire(
215            wire: crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'de>,
216        ) -> Self {
217            Self {
218                project_spec: ::fidl_next::FromWire::from_wire(wire.project_spec),
219
220                experiment_ids: ::fidl_next::FromWire::from_wire(wire.experiment_ids),
221
222                logger: ::fidl_next::FromWire::from_wire(wire.logger),
223            }
224        }
225    }
226}
227
228pub mod wire {
229
230    pub use fidl_next_common_fuchsia_metrics::wire::*;
231
232    /// The wire type corresponding to [`MetricEventLoggerFactoryCreateMetricEventLoggerRequest`].
233    #[derive(Debug)]
234    #[repr(C)]
235    pub struct MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'de> {
236        pub project_spec: crate::wire::ProjectSpec<'de>,
237
238        pub logger:
239            ::fidl_next::ServerEnd<crate::MetricEventLogger, ::fidl_next::wire::fuchsia::Channel>,
240    }
241
242    static_assertions::const_assert_eq!(
243        std::mem::size_of::<MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'_>>(),
244        24
245    );
246    static_assertions::const_assert_eq!(
247        std::mem::align_of::<MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'_>>(),
248        8
249    );
250
251    static_assertions::const_assert_eq!(
252        std::mem::offset_of!(
253            MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'_>,
254            project_spec
255        ),
256        0
257    );
258
259    static_assertions::const_assert_eq!(
260        std::mem::offset_of!(MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'_>, logger),
261        16
262    );
263
264    impl ::fidl_next::Constrained for MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'_> {
265        type Constraint = ();
266
267        fn validate(
268            _: ::fidl_next::Slot<'_, Self>,
269            _: Self::Constraint,
270        ) -> Result<(), ::fidl_next::ValidationError> {
271            Ok(())
272        }
273    }
274
275    unsafe impl ::fidl_next::Wire for MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'static> {
276        type Narrowed<'de> = MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'de>;
277
278        #[inline]
279        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
280            ::fidl_next::munge! {
281                let Self {
282                    project_spec,
283                    logger,
284
285                } = &mut *out_;
286            }
287
288            ::fidl_next::Wire::zero_padding(project_spec);
289
290            ::fidl_next::Wire::zero_padding(logger);
291
292            unsafe {
293                out_.as_mut_ptr().cast::<u8>().add(20).write_bytes(0, 4);
294            }
295        }
296    }
297
298    unsafe impl<'de, ___D> ::fidl_next::Decode<___D>
299        for MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'de>
300    where
301        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
302        ___D: ::fidl_next::Decoder<'de>,
303        ___D: ::fidl_next::fuchsia::HandleDecoder,
304    {
305        fn decode(
306            slot_: ::fidl_next::Slot<'_, Self>,
307            decoder_: &mut ___D,
308            _: (),
309        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
310            if slot_.as_bytes()[20..24] != [0u8; 4] {
311                return Err(::fidl_next::DecodeError::InvalidPadding);
312            }
313
314            ::fidl_next::munge! {
315                let Self {
316                    mut project_spec,
317                    mut logger,
318
319                } = slot_;
320            }
321
322            let _field = project_spec.as_mut();
323
324            ::fidl_next::Decode::decode(project_spec.as_mut(), decoder_, ())?;
325
326            let _field = logger.as_mut();
327
328            ::fidl_next::Decode::decode(logger.as_mut(), decoder_, ())?;
329
330            Ok(())
331        }
332    }
333
334    impl<'de> ::fidl_next::IntoNatural for MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'de> {
335        type Natural = crate::natural::MetricEventLoggerFactoryCreateMetricEventLoggerRequest;
336    }
337
338    /// The wire type corresponding to [`MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest`].
339    #[derive(Debug)]
340    #[repr(C)]
341    pub struct MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'de> {
342        pub project_spec: crate::wire::ProjectSpec<'de>,
343
344        pub experiment_ids: ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>,
345
346        pub logger:
347            ::fidl_next::ServerEnd<crate::MetricEventLogger, ::fidl_next::wire::fuchsia::Channel>,
348    }
349
350    static_assertions::const_assert_eq!(
351        std::mem::size_of::<
352            MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'_>,
353        >(),
354        40
355    );
356    static_assertions::const_assert_eq!(
357        std::mem::align_of::<
358            MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'_>,
359        >(),
360        8
361    );
362
363    static_assertions::const_assert_eq!(
364        std::mem::offset_of!(
365            MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'_>,
366            project_spec
367        ),
368        0
369    );
370
371    static_assertions::const_assert_eq!(
372        std::mem::offset_of!(
373            MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'_>,
374            experiment_ids
375        ),
376        16
377    );
378
379    static_assertions::const_assert_eq!(
380        std::mem::offset_of!(
381            MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'_>,
382            logger
383        ),
384        32
385    );
386
387    impl ::fidl_next::Constrained
388        for MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'_>
389    {
390        type Constraint = ();
391
392        fn validate(
393            _: ::fidl_next::Slot<'_, Self>,
394            _: Self::Constraint,
395        ) -> Result<(), ::fidl_next::ValidationError> {
396            Ok(())
397        }
398    }
399
400    unsafe impl ::fidl_next::Wire
401        for MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'static>
402    {
403        type Narrowed<'de> =
404            MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'de>;
405
406        #[inline]
407        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
408            ::fidl_next::munge! {
409                let Self {
410                    project_spec,
411                    experiment_ids,
412                    logger,
413
414                } = &mut *out_;
415            }
416
417            ::fidl_next::Wire::zero_padding(project_spec);
418
419            ::fidl_next::Wire::zero_padding(experiment_ids);
420
421            ::fidl_next::Wire::zero_padding(logger);
422
423            unsafe {
424                out_.as_mut_ptr().cast::<u8>().add(36).write_bytes(0, 4);
425            }
426        }
427    }
428
429    unsafe impl<'de, ___D> ::fidl_next::Decode<___D>
430        for MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'de>
431    where
432        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
433        ___D: ::fidl_next::Decoder<'de>,
434        ___D: ::fidl_next::fuchsia::HandleDecoder,
435    {
436        fn decode(
437            slot_: ::fidl_next::Slot<'_, Self>,
438            decoder_: &mut ___D,
439            _: (),
440        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
441            if slot_.as_bytes()[36..40] != [0u8; 4] {
442                return Err(::fidl_next::DecodeError::InvalidPadding);
443            }
444
445            ::fidl_next::munge! {
446                let Self {
447                    mut project_spec,
448                    mut experiment_ids,
449                    mut logger,
450
451                } = slot_;
452            }
453
454            let _field = project_spec.as_mut();
455
456            ::fidl_next::Decode::decode(project_spec.as_mut(), decoder_, ())?;
457
458            let _field = experiment_ids.as_mut();
459            ::fidl_next::Constrained::validate(_field, (100, ()))?;
460            ::fidl_next::Decode::decode(experiment_ids.as_mut(), decoder_, (100, ()))?;
461
462            let experiment_ids = unsafe { experiment_ids.deref_unchecked() };
463
464            if experiment_ids.len() > 100 {
465                return Err(::fidl_next::DecodeError::VectorTooLong {
466                    size: experiment_ids.len() as u64,
467                    limit: 100,
468                });
469            }
470
471            let _field = logger.as_mut();
472
473            ::fidl_next::Decode::decode(logger.as_mut(), decoder_, ())?;
474
475            Ok(())
476        }
477    }
478
479    impl<'de> ::fidl_next::IntoNatural
480        for MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'de>
481    {
482        type Natural =
483            crate::natural::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest;
484    }
485}
486
487pub mod wire_optional {
488
489    pub use fidl_next_common_fuchsia_metrics::wire_optional::*;
490}
491
492pub mod generic {
493
494    pub use fidl_next_common_fuchsia_metrics::generic::*;
495
496    /// The generic type corresponding to [`MetricEventLoggerFactoryCreateMetricEventLoggerRequest`].
497    pub struct MetricEventLoggerFactoryCreateMetricEventLoggerRequest<T0, T1> {
498        pub project_spec: T0,
499
500        pub logger: T1,
501    }
502
503    unsafe impl<___E, T0, T1>
504        ::fidl_next::Encode<
505            crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'static>,
506            ___E,
507        > for MetricEventLoggerFactoryCreateMetricEventLoggerRequest<T0, T1>
508    where
509        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
510        ___E: ::fidl_next::Encoder,
511        ___E: ::fidl_next::fuchsia::HandleEncoder,
512        T0: ::fidl_next::Encode<crate::wire::ProjectSpec<'static>, ___E>,
513        T1: ::fidl_next::Encode<
514                ::fidl_next::ServerEnd<
515                    crate::MetricEventLogger,
516                    ::fidl_next::wire::fuchsia::Channel,
517                >,
518                ___E,
519            >,
520    {
521        #[inline]
522        fn encode(
523            self,
524            encoder_: &mut ___E,
525            out_: &mut ::core::mem::MaybeUninit<
526                crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'static>,
527            >,
528            _: (),
529        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
530            ::fidl_next::munge! {
531                let crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest {
532                    project_spec,
533                    logger,
534
535                } = out_;
536            }
537
538            ::fidl_next::Encode::encode(self.project_spec, encoder_, project_spec, ())?;
539
540            ::fidl_next::Encode::encode(self.logger, encoder_, logger, ())?;
541
542            Ok(())
543        }
544    }
545
546    unsafe impl<'a, ___E, T0, T1>
547        ::fidl_next::Encode<
548            crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'static>,
549            ___E,
550        > for &'a MetricEventLoggerFactoryCreateMetricEventLoggerRequest<T0, T1>
551    where
552        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
553        ___E: ::fidl_next::Encoder,
554        ___E: ::fidl_next::fuchsia::HandleEncoder,
555        &'a T0: ::fidl_next::Encode<crate::wire::ProjectSpec<'static>, ___E>,
556        &'a T1: ::fidl_next::Encode<
557                ::fidl_next::ServerEnd<
558                    crate::MetricEventLogger,
559                    ::fidl_next::wire::fuchsia::Channel,
560                >,
561                ___E,
562            >,
563    {
564        #[inline]
565        fn encode(
566            self,
567            encoder_: &mut ___E,
568            out_: &mut ::core::mem::MaybeUninit<
569                crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'static>,
570            >,
571            _: (),
572        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
573            ::fidl_next::munge! {
574                let crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest {
575                    project_spec,
576                    logger,
577
578                } = out_;
579            }
580
581            ::fidl_next::Encode::encode(&self.project_spec, encoder_, project_spec, ())?;
582
583            ::fidl_next::Encode::encode(&self.logger, encoder_, logger, ())?;
584
585            Ok(())
586        }
587    }
588
589    /// The generic type corresponding to [`MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest`].
590    pub struct MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<T0, T1, T2> {
591        pub project_spec: T0,
592
593        pub experiment_ids: T1,
594
595        pub logger: T2,
596    }
597
598    unsafe impl<___E, T0, T1, T2>
599        ::fidl_next::Encode<
600            crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<
601                'static,
602            >,
603            ___E,
604        > for MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<T0, T1, T2>
605    where
606        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
607        ___E: ::fidl_next::Encoder,
608        ___E: ::fidl_next::fuchsia::HandleEncoder,
609        T0: ::fidl_next::Encode<crate::wire::ProjectSpec<'static>, ___E>,
610        T1: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint32>, ___E>,
611        T2: ::fidl_next::Encode<
612                ::fidl_next::ServerEnd<
613                    crate::MetricEventLogger,
614                    ::fidl_next::wire::fuchsia::Channel,
615                >,
616                ___E,
617            >,
618    {
619        #[inline]
620        fn encode(
621            self,
622            encoder_: &mut ___E,
623            out_: &mut ::core::mem::MaybeUninit<
624                crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<
625                    'static,
626                >,
627            >,
628            _: (),
629        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
630            ::fidl_next::munge! {
631                let crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest {
632                    project_spec,
633                    experiment_ids,
634                    logger,
635
636                } = out_;
637            }
638
639            ::fidl_next::Encode::encode(self.project_spec, encoder_, project_spec, ())?;
640
641            ::fidl_next::Encode::encode(self.experiment_ids, encoder_, experiment_ids, (100, ()))?;
642
643            ::fidl_next::Encode::encode(self.logger, encoder_, logger, ())?;
644
645            Ok(())
646        }
647    }
648
649    unsafe impl<'a, ___E, T0, T1, T2>
650        ::fidl_next::Encode<
651            crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<
652                'static,
653            >,
654            ___E,
655        > for &'a MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<T0, T1, T2>
656    where
657        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
658        ___E: ::fidl_next::Encoder,
659        ___E: ::fidl_next::fuchsia::HandleEncoder,
660        &'a T0: ::fidl_next::Encode<crate::wire::ProjectSpec<'static>, ___E>,
661        &'a T1: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint32>, ___E>,
662        &'a T2: ::fidl_next::Encode<
663                ::fidl_next::ServerEnd<
664                    crate::MetricEventLogger,
665                    ::fidl_next::wire::fuchsia::Channel,
666                >,
667                ___E,
668            >,
669    {
670        #[inline]
671        fn encode(
672            self,
673            encoder_: &mut ___E,
674            out_: &mut ::core::mem::MaybeUninit<
675                crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<
676                    'static,
677                >,
678            >,
679            _: (),
680        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
681            ::fidl_next::munge! {
682                let crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest {
683                    project_spec,
684                    experiment_ids,
685                    logger,
686
687                } = out_;
688            }
689
690            ::fidl_next::Encode::encode(&self.project_spec, encoder_, project_spec, ())?;
691
692            ::fidl_next::Encode::encode(&self.experiment_ids, encoder_, experiment_ids, (100, ()))?;
693
694            ::fidl_next::Encode::encode(&self.logger, encoder_, logger, ())?;
695
696            Ok(())
697        }
698    }
699}
700
701pub use self::natural::*;
702
703/// The type corresponding to the MetricEventLoggerFactory protocol.
704#[doc = " A factory that is used to create a MetricEventLogger for a specific project.\n"]
705#[derive(PartialEq, Debug)]
706pub struct MetricEventLoggerFactory;
707
708impl ::fidl_next::Discoverable for MetricEventLoggerFactory {
709    const PROTOCOL_NAME: &'static str = "fuchsia.metrics.MetricEventLoggerFactory";
710}
711
712#[cfg(target_os = "fuchsia")]
713impl ::fidl_next::HasTransport for MetricEventLoggerFactory {
714    type Transport = ::fidl_next::fuchsia::zx::Channel;
715}
716
717pub mod metric_event_logger_factory {
718    pub mod prelude {
719        pub use crate::{
720            MetricEventLoggerFactory, MetricEventLoggerFactoryClientHandler,
721            MetricEventLoggerFactoryLocalClientHandler, MetricEventLoggerFactoryLocalServerHandler,
722            MetricEventLoggerFactoryServerHandler, metric_event_logger_factory,
723        };
724
725        pub use crate::natural::Error;
726
727        pub use crate::natural::MetricEventLoggerFactoryCreateMetricEventLoggerRequest;
728
729        pub use crate::natural::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest;
730
731        pub use crate::natural::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsResponse;
732
733        pub use crate::natural::MetricEventLoggerFactoryCreateMetricEventLoggerResponse;
734    }
735
736    pub struct CreateMetricEventLogger;
737
738    impl ::fidl_next::Method for CreateMetricEventLogger {
739        const ORDINAL: u64 = 967417524583938558;
740        const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
741            ::fidl_next::protocol::Flexibility::Strict;
742
743        type Protocol = crate::MetricEventLoggerFactory;
744
745        type Request = crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'static>;
746    }
747
748    impl ::fidl_next::TwoWayMethod for CreateMetricEventLogger {
749        type Response = ::fidl_next::wire::Result<
750            'static,
751            crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerResponse,
752            crate::wire::Error,
753        >;
754    }
755
756    impl<___R> ::fidl_next::Respond<___R> for CreateMetricEventLogger {
757        type Output = ::core::result::Result<___R, ::fidl_next::never::Never>;
758
759        fn respond(response: ___R) -> Self::Output {
760            ::core::result::Result::Ok(response)
761        }
762    }
763
764    impl<___R> ::fidl_next::RespondErr<___R> for CreateMetricEventLogger {
765        type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
766
767        fn respond_err(response: ___R) -> Self::Output {
768            ::core::result::Result::Err(response)
769        }
770    }
771
772    pub struct CreateMetricEventLoggerWithExperiments;
773
774    impl ::fidl_next::Method for CreateMetricEventLoggerWithExperiments {
775        const ORDINAL: u64 = 9160168118327134458;
776        const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
777            ::fidl_next::protocol::Flexibility::Strict;
778
779        type Protocol = crate::MetricEventLoggerFactory;
780
781        type Request =
782            crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<
783                'static,
784            >;
785    }
786
787    impl ::fidl_next::TwoWayMethod for CreateMetricEventLoggerWithExperiments {
788        type Response = ::fidl_next::wire::Result<
789            'static,
790            crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsResponse,
791            crate::wire::Error,
792        >;
793    }
794
795    impl<___R> ::fidl_next::Respond<___R> for CreateMetricEventLoggerWithExperiments {
796        type Output = ::core::result::Result<___R, ::fidl_next::never::Never>;
797
798        fn respond(response: ___R) -> Self::Output {
799            ::core::result::Result::Ok(response)
800        }
801    }
802
803    impl<___R> ::fidl_next::RespondErr<___R> for CreateMetricEventLoggerWithExperiments {
804        type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
805
806        fn respond_err(response: ___R) -> Self::Output {
807            ::core::result::Result::Err(response)
808        }
809    }
810
811    mod ___detail {
812        unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::MetricEventLoggerFactory
813        where
814            ___T: ::fidl_next::Transport,
815        {
816            type Client = MetricEventLoggerFactoryClient<___T>;
817            type Server = MetricEventLoggerFactoryServer<___T>;
818        }
819
820        /// The client for the `MetricEventLoggerFactory` protocol.
821        #[repr(transparent)]
822        pub struct MetricEventLoggerFactoryClient<___T: ::fidl_next::Transport> {
823            #[allow(dead_code)]
824            client: ::fidl_next::protocol::Client<___T>,
825        }
826
827        impl<___T> MetricEventLoggerFactoryClient<___T>
828        where
829            ___T: ::fidl_next::Transport,
830        {
831            #[doc = " Create a MetricEventLogger for the project specified by `project_spec`.\n"]
832            pub fn create_metric_event_logger(
833                &self,
834
835                project_spec: impl ::fidl_next::Encode<
836                    crate::wire::ProjectSpec<'static>,
837                    <___T as ::fidl_next::Transport>::SendBuffer,
838                >,
839
840                logger: impl ::fidl_next::Encode<
841                    ::fidl_next::ServerEnd<
842                        crate::MetricEventLogger,
843                        ::fidl_next::wire::fuchsia::Channel,
844                    >,
845                    <___T as ::fidl_next::Transport>::SendBuffer,
846                >,
847            ) -> ::fidl_next::TwoWayFuture<'_, super::CreateMetricEventLogger, ___T>
848            where
849                <___T as ::fidl_next::Transport>::SendBuffer:
850                    ::fidl_next::encoder::InternalHandleEncoder,
851                <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::Encoder,
852                <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::fuchsia::HandleEncoder,
853            {
854                self.create_metric_event_logger_with(
855                    crate::generic::MetricEventLoggerFactoryCreateMetricEventLoggerRequest {
856                        project_spec,
857
858                        logger,
859                    },
860                )
861            }
862
863            #[doc = " Create a MetricEventLogger for the project specified by `project_spec`.\n"]
864            pub fn create_metric_event_logger_with<___R>(
865                &self,
866                request: ___R,
867            ) -> ::fidl_next::TwoWayFuture<'_, super::CreateMetricEventLogger, ___T>
868            where
869                ___R: ::fidl_next::Encode<
870                        crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<
871                            'static,
872                        >,
873                        <___T as ::fidl_next::Transport>::SendBuffer,
874                    >,
875            {
876                ::fidl_next::TwoWayFuture::from_untyped(self.client.send_two_way(
877                    967417524583938558,
878                    <super::CreateMetricEventLogger as ::fidl_next::Method>::FLEXIBILITY,
879                    request,
880                ))
881            }
882
883            #[doc = " Create a MetricEventLogger with experiment metadata.\n\n This temporary method exposes experiment data to Cobalt directly from\n components. In the future, experiment state will be managed by the\n system and passed directly to Cobalt. Contact the Cobalt team before\n using this interface.\n\n To update experiment state create a new logger.\n"]
884            pub fn create_metric_event_logger_with_experiments(
885                &self,
886
887                project_spec: impl ::fidl_next::Encode<
888                    crate::wire::ProjectSpec<'static>,
889                    <___T as ::fidl_next::Transport>::SendBuffer,
890                >,
891
892                experiment_ids: impl ::fidl_next::Encode<
893                    ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint32>,
894                    <___T as ::fidl_next::Transport>::SendBuffer,
895                >,
896
897                logger: impl ::fidl_next::Encode<
898                    ::fidl_next::ServerEnd<
899                        crate::MetricEventLogger,
900                        ::fidl_next::wire::fuchsia::Channel,
901                    >,
902                    <___T as ::fidl_next::Transport>::SendBuffer,
903                >,
904            ) -> ::fidl_next::TwoWayFuture<'_, super::CreateMetricEventLoggerWithExperiments, ___T>
905            where
906                <___T as ::fidl_next::Transport>::SendBuffer:
907                    ::fidl_next::encoder::InternalHandleEncoder,
908                <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::Encoder,
909                <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::fuchsia::HandleEncoder,
910            {
911                self.create_metric_event_logger_with_experiments_with(crate::generic::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest {
912
913                                        project_spec,
914
915                                        experiment_ids,
916
917                                        logger,
918
919                                })
920            }
921
922            #[doc = " Create a MetricEventLogger with experiment metadata.\n\n This temporary method exposes experiment data to Cobalt directly from\n components. In the future, experiment state will be managed by the\n system and passed directly to Cobalt. Contact the Cobalt team before\n using this interface.\n\n To update experiment state create a new logger.\n"]
923                            pub fn create_metric_event_logger_with_experiments_with<___R>(
924                                &self,
925                                request: ___R,
926                            ) -> ::fidl_next::TwoWayFuture<'_, super::CreateMetricEventLoggerWithExperiments, ___T>
927                            where
928                                ___R: ::fidl_next::Encode<
929                                    crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'static>,
930                                    <___T as ::fidl_next::Transport>::SendBuffer,
931                                >,
932{
933                ::fidl_next::TwoWayFuture::from_untyped(
934                                    self.client.send_two_way(
935                                        9160168118327134458,
936                                        <super::CreateMetricEventLoggerWithExperiments as ::fidl_next::Method>::FLEXIBILITY,
937                                        request,
938                                    )
939                                )
940            }
941        }
942
943        /// The server for the `MetricEventLoggerFactory` protocol.
944        #[repr(transparent)]
945        pub struct MetricEventLoggerFactoryServer<___T: ::fidl_next::Transport> {
946            server: ::fidl_next::protocol::Server<___T>,
947        }
948
949        impl<___T> MetricEventLoggerFactoryServer<___T> where ___T: ::fidl_next::Transport {}
950    }
951}
952
953#[diagnostic::on_unimplemented(
954    note = "If {Self} implements the non-local MetricEventLoggerFactoryClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
955)]
956
957/// A client handler for the MetricEventLoggerFactory protocol.
958///
959/// See [`MetricEventLoggerFactory`] for more details.
960pub trait MetricEventLoggerFactoryLocalClientHandler<
961    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
962    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
963>
964{
965}
966
967impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for MetricEventLoggerFactory
968where
969    ___H: MetricEventLoggerFactoryLocalClientHandler<___T>,
970    ___T: ::fidl_next::Transport,
971{
972    async fn on_event(
973        handler: &mut ___H,
974        mut message: ::fidl_next::Message<___T>,
975    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
976        match *message.header().ordinal {
977            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
978        }
979    }
980}
981
982#[diagnostic::on_unimplemented(
983    note = "If {Self} implements the non-local MetricEventLoggerFactoryServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
984)]
985
986/// A server handler for the MetricEventLoggerFactory protocol.
987///
988/// See [`MetricEventLoggerFactory`] for more details.
989pub trait MetricEventLoggerFactoryLocalServerHandler<
990    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
991    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
992>
993{
994    #[doc = " Create a MetricEventLogger for the project specified by `project_spec`.\n"]
995    fn create_metric_event_logger(
996        &mut self,
997
998        request: ::fidl_next::Request<metric_event_logger_factory::CreateMetricEventLogger, ___T>,
999
1000        responder: ::fidl_next::Responder<
1001            metric_event_logger_factory::CreateMetricEventLogger,
1002            ___T,
1003        >,
1004    ) -> impl ::core::future::Future<Output = ()>;
1005
1006    #[doc = " Create a MetricEventLogger with experiment metadata.\n\n This temporary method exposes experiment data to Cobalt directly from\n components. In the future, experiment state will be managed by the\n system and passed directly to Cobalt. Contact the Cobalt team before\n using this interface.\n\n To update experiment state create a new logger.\n"]
1007    fn create_metric_event_logger_with_experiments(
1008        &mut self,
1009
1010        request: ::fidl_next::Request<
1011            metric_event_logger_factory::CreateMetricEventLoggerWithExperiments,
1012            ___T,
1013        >,
1014
1015        responder: ::fidl_next::Responder<
1016            metric_event_logger_factory::CreateMetricEventLoggerWithExperiments,
1017            ___T,
1018        >,
1019    ) -> impl ::core::future::Future<Output = ()>;
1020}
1021
1022impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for MetricEventLoggerFactory
1023where
1024    ___H: MetricEventLoggerFactoryLocalServerHandler<___T> ,
1025    ___T: ::fidl_next::Transport,
1026
1027
1028            for<'de> crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'de>: ::fidl_next::Decode<
1029                <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
1030                Constraint = (),
1031            >,
1032
1033
1034
1035            for<'de> crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'de>: ::fidl_next::Decode<
1036                <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
1037                Constraint = (),
1038            >,
1039
1040
1041{
1042    async fn on_one_way(
1043        handler: &mut ___H,
1044        mut message: ::fidl_next::Message<___T>,
1045    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>> {
1046        match *message.header().ordinal {
1047
1048
1049
1050
1051
1052
1053
1054            ordinal => {
1055
1056                    Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
1057
1058            }
1059        }
1060    }
1061
1062    async fn on_two_way(
1063        handler: &mut ___H,
1064        mut message: ::fidl_next::Message<___T>,
1065        responder: ::fidl_next::protocol::Responder<___T>,
1066    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>> {
1067        match *message.header().ordinal {
1068
1069
1070
1071                    967417524583938558 => {
1072                        let responder = ::fidl_next::Responder::from_untyped(responder);
1073
1074                            match ::fidl_next::AsDecoderExt::into_decoded(message) {
1075                                Ok(decoded) => {
1076                                    handler.create_metric_event_logger(::fidl_next::Request::from_decoded(decoded), responder).await;
1077                                    Ok(())
1078                                }
1079                                Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
1080                                    ordinal: 967417524583938558,
1081                                    error,
1082                                }),
1083                            }
1084
1085                    }
1086
1087
1088
1089
1090                    9160168118327134458 => {
1091                        let responder = ::fidl_next::Responder::from_untyped(responder);
1092
1093                            match ::fidl_next::AsDecoderExt::into_decoded(message) {
1094                                Ok(decoded) => {
1095                                    handler.create_metric_event_logger_with_experiments(::fidl_next::Request::from_decoded(decoded), responder).await;
1096                                    Ok(())
1097                                }
1098                                Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
1099                                    ordinal: 9160168118327134458,
1100                                    error,
1101                                }),
1102                            }
1103
1104                    }
1105
1106
1107            ordinal => {
1108
1109                        Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
1110
1111            }
1112        }
1113    }
1114}
1115
1116/// A client handler for the MetricEventLoggerFactory protocol.
1117///
1118/// See [`MetricEventLoggerFactory`] for more details.
1119pub trait MetricEventLoggerFactoryClientHandler<
1120    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
1121    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
1122>
1123{
1124}
1125
1126impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for MetricEventLoggerFactory
1127where
1128    ___H: MetricEventLoggerFactoryClientHandler<___T> + ::core::marker::Send,
1129    ___T: ::fidl_next::Transport,
1130{
1131    async fn on_event(
1132        handler: &mut ___H,
1133        mut message: ::fidl_next::Message<___T>,
1134    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
1135        match *message.header().ordinal {
1136            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1137        }
1138    }
1139}
1140
1141/// A server handler for the MetricEventLoggerFactory protocol.
1142///
1143/// See [`MetricEventLoggerFactory`] for more details.
1144pub trait MetricEventLoggerFactoryServerHandler<
1145    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
1146    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
1147>
1148{
1149    #[doc = " Create a MetricEventLogger for the project specified by `project_spec`.\n"]
1150    fn create_metric_event_logger(
1151        &mut self,
1152
1153        request: ::fidl_next::Request<metric_event_logger_factory::CreateMetricEventLogger, ___T>,
1154
1155        responder: ::fidl_next::Responder<
1156            metric_event_logger_factory::CreateMetricEventLogger,
1157            ___T,
1158        >,
1159    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
1160
1161    #[doc = " Create a MetricEventLogger with experiment metadata.\n\n This temporary method exposes experiment data to Cobalt directly from\n components. In the future, experiment state will be managed by the\n system and passed directly to Cobalt. Contact the Cobalt team before\n using this interface.\n\n To update experiment state create a new logger.\n"]
1162    fn create_metric_event_logger_with_experiments(
1163        &mut self,
1164
1165        request: ::fidl_next::Request<
1166            metric_event_logger_factory::CreateMetricEventLoggerWithExperiments,
1167            ___T,
1168        >,
1169
1170        responder: ::fidl_next::Responder<
1171            metric_event_logger_factory::CreateMetricEventLoggerWithExperiments,
1172            ___T,
1173        >,
1174    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
1175}
1176
1177impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for MetricEventLoggerFactory
1178where
1179    ___H: MetricEventLoggerFactoryServerHandler<___T> + ::core::marker::Send,
1180    ___T: ::fidl_next::Transport,
1181
1182
1183            for<'de> crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'de>: ::fidl_next::Decode<
1184                <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
1185                Constraint = (),
1186            >,
1187
1188
1189
1190            for<'de> crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'de>: ::fidl_next::Decode<
1191                <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
1192                Constraint = (),
1193            >,
1194
1195
1196{
1197    async fn on_one_way(
1198        handler: &mut ___H,
1199        mut message: ::fidl_next::Message<___T>,
1200    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>> {
1201        match *message.header().ordinal {
1202
1203
1204
1205
1206
1207
1208
1209            ordinal => {
1210
1211                    Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
1212
1213            }
1214        }
1215    }
1216
1217    async fn on_two_way(
1218        handler: &mut ___H,
1219        mut message: ::fidl_next::Message<___T>,
1220        responder: ::fidl_next::protocol::Responder<___T>,
1221    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>> {
1222        match *message.header().ordinal {
1223
1224
1225
1226                    967417524583938558 => {
1227                        let responder = ::fidl_next::Responder::from_untyped(responder);
1228
1229                            match ::fidl_next::AsDecoderExt::into_decoded(message) {
1230                                Ok(decoded) => {
1231                                    handler.create_metric_event_logger(::fidl_next::Request::from_decoded(decoded), responder).await;
1232                                    Ok(())
1233                                }
1234                                Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
1235                                    ordinal: 967417524583938558,
1236                                    error,
1237                                }),
1238                            }
1239
1240                    }
1241
1242
1243
1244
1245                    9160168118327134458 => {
1246                        let responder = ::fidl_next::Responder::from_untyped(responder);
1247
1248                            match ::fidl_next::AsDecoderExt::into_decoded(message) {
1249                                Ok(decoded) => {
1250                                    handler.create_metric_event_logger_with_experiments(::fidl_next::Request::from_decoded(decoded), responder).await;
1251                                    Ok(())
1252                                }
1253                                Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
1254                                    ordinal: 9160168118327134458,
1255                                    error,
1256                                }),
1257                            }
1258
1259                    }
1260
1261
1262            ordinal => {
1263
1264                        Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
1265
1266            }
1267        }
1268    }
1269}
1270
1271impl<___T> MetricEventLoggerFactoryClientHandler<___T> for ::fidl_next::IgnoreEvents where
1272    ___T: ::fidl_next::Transport
1273{
1274}
1275
1276impl<___H, ___T> MetricEventLoggerFactoryLocalClientHandler<___T> for ::fidl_next::Local<___H>
1277where
1278    ___H: MetricEventLoggerFactoryClientHandler<___T>,
1279    ___T: ::fidl_next::Transport,
1280{
1281}
1282
1283impl<___H, ___T> MetricEventLoggerFactoryLocalServerHandler<___T> for ::fidl_next::Local<___H>
1284where
1285    ___H: MetricEventLoggerFactoryServerHandler<___T>,
1286    ___T: ::fidl_next::Transport,
1287{
1288    async fn create_metric_event_logger(
1289        &mut self,
1290
1291        request: ::fidl_next::Request<metric_event_logger_factory::CreateMetricEventLogger, ___T>,
1292
1293        responder: ::fidl_next::Responder<
1294            metric_event_logger_factory::CreateMetricEventLogger,
1295            ___T,
1296        >,
1297    ) {
1298        ___H::create_metric_event_logger(&mut self.0, request, responder).await
1299    }
1300
1301    async fn create_metric_event_logger_with_experiments(
1302        &mut self,
1303
1304        request: ::fidl_next::Request<
1305            metric_event_logger_factory::CreateMetricEventLoggerWithExperiments,
1306            ___T,
1307        >,
1308
1309        responder: ::fidl_next::Responder<
1310            metric_event_logger_factory::CreateMetricEventLoggerWithExperiments,
1311            ___T,
1312        >,
1313    ) {
1314        ___H::create_metric_event_logger_with_experiments(&mut self.0, request, responder).await
1315    }
1316}
1317
1318pub use fidl_next_common_fuchsia_metrics::*;