1#![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 #[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 #[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 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 pub struct MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<T0, T1, T2> {
548 pub project_spec: T0,
549
550 pub experiment_ids: T1,
551
552 pub logger: T2,
553 }
554
555 unsafe impl<___E, T0, T1, T2>
556 ::fidl_next::Encode<
557 crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<
558 'static,
559 >,
560 ___E,
561 > for MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<T0, T1, T2>
562 where
563 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
564 ___E: ::fidl_next::Encoder,
565 ___E: ::fidl_next::fuchsia::HandleEncoder,
566 T0: ::fidl_next::Encode<crate::wire::ProjectSpec<'static>, ___E>,
567 T1: ::fidl_next::Encode<::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint32>, ___E>,
568 T2: ::fidl_next::Encode<
569 ::fidl_next::ServerEnd<
570 crate::MetricEventLogger,
571 ::fidl_next::wire::fuchsia::Channel,
572 >,
573 ___E,
574 >,
575 {
576 #[inline]
577 fn encode(
578 self,
579 encoder_: &mut ___E,
580 out_: &mut ::core::mem::MaybeUninit<
581 crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<
582 'static,
583 >,
584 >,
585 _: (),
586 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
587 ::fidl_next::munge! {
588 let crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest {
589 project_spec,
590 experiment_ids,
591 logger,
592
593 } = out_;
594 }
595
596 ::fidl_next::Encode::encode(self.project_spec, encoder_, project_spec, ())?;
597
598 ::fidl_next::Encode::encode(self.experiment_ids, encoder_, experiment_ids, (100, ()))?;
599
600 ::fidl_next::Encode::encode(self.logger, encoder_, logger, ())?;
601
602 Ok(())
603 }
604 }
605}
606
607pub use self::natural::*;
608
609#[doc = " A factory that is used to create a MetricEventLogger for a specific project.\n"]
611#[derive(PartialEq, Debug)]
612pub struct MetricEventLoggerFactory;
613
614impl ::fidl_next::Discoverable for MetricEventLoggerFactory {
615 const PROTOCOL_NAME: &'static str = "fuchsia.metrics.MetricEventLoggerFactory";
616}
617
618#[cfg(target_os = "fuchsia")]
619impl ::fidl_next::HasTransport for MetricEventLoggerFactory {
620 type Transport = ::fidl_next::fuchsia::zx::Channel;
621}
622
623pub mod metric_event_logger_factory {
624 pub mod prelude {
625 pub use crate::{
626 MetricEventLoggerFactory, MetricEventLoggerFactoryClientHandler,
627 MetricEventLoggerFactoryLocalClientHandler, MetricEventLoggerFactoryLocalServerHandler,
628 MetricEventLoggerFactoryServerHandler, metric_event_logger_factory,
629 };
630
631 pub use crate::natural::Error;
632
633 pub use crate::natural::MetricEventLoggerFactoryCreateMetricEventLoggerRequest;
634
635 pub use crate::natural::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest;
636
637 pub use crate::natural::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsResponse;
638
639 pub use crate::natural::MetricEventLoggerFactoryCreateMetricEventLoggerResponse;
640 }
641
642 pub struct CreateMetricEventLogger;
643
644 impl ::fidl_next::Method for CreateMetricEventLogger {
645 const ORDINAL: u64 = 967417524583938558;
646 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
647 ::fidl_next::protocol::Flexibility::Strict;
648
649 type Protocol = crate::MetricEventLoggerFactory;
650
651 type Request = crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'static>;
652 }
653
654 impl ::fidl_next::TwoWayMethod for CreateMetricEventLogger {
655 type Response = ::fidl_next::wire::Result<
656 'static,
657 crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerResponse,
658 crate::wire::Error,
659 >;
660 }
661
662 impl<___R> ::fidl_next::Respond<___R> for CreateMetricEventLogger {
663 type Output = ::core::result::Result<___R, ::fidl_next::util::Never>;
664
665 fn respond(response: ___R) -> Self::Output {
666 ::core::result::Result::Ok(response)
667 }
668 }
669
670 impl<___R> ::fidl_next::RespondErr<___R> for CreateMetricEventLogger {
671 type Output = ::core::result::Result<::fidl_next::util::Never, ___R>;
672
673 fn respond_err(response: ___R) -> Self::Output {
674 ::core::result::Result::Err(response)
675 }
676 }
677
678 pub struct CreateMetricEventLoggerWithExperiments;
679
680 impl ::fidl_next::Method for CreateMetricEventLoggerWithExperiments {
681 const ORDINAL: u64 = 9160168118327134458;
682 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
683 ::fidl_next::protocol::Flexibility::Strict;
684
685 type Protocol = crate::MetricEventLoggerFactory;
686
687 type Request =
688 crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<
689 'static,
690 >;
691 }
692
693 impl ::fidl_next::TwoWayMethod for CreateMetricEventLoggerWithExperiments {
694 type Response = ::fidl_next::wire::Result<
695 'static,
696 crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsResponse,
697 crate::wire::Error,
698 >;
699 }
700
701 impl<___R> ::fidl_next::Respond<___R> for CreateMetricEventLoggerWithExperiments {
702 type Output = ::core::result::Result<___R, ::fidl_next::util::Never>;
703
704 fn respond(response: ___R) -> Self::Output {
705 ::core::result::Result::Ok(response)
706 }
707 }
708
709 impl<___R> ::fidl_next::RespondErr<___R> for CreateMetricEventLoggerWithExperiments {
710 type Output = ::core::result::Result<::fidl_next::util::Never, ___R>;
711
712 fn respond_err(response: ___R) -> Self::Output {
713 ::core::result::Result::Err(response)
714 }
715 }
716
717 mod ___detail {
718 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::MetricEventLoggerFactory
719 where
720 ___T: ::fidl_next::Transport,
721 {
722 type Client = MetricEventLoggerFactoryClient<___T>;
723 type Server = MetricEventLoggerFactoryServer<___T>;
724 }
725
726 #[repr(transparent)]
728 pub struct MetricEventLoggerFactoryClient<___T: ::fidl_next::Transport> {
729 #[allow(dead_code)]
730 client: ::fidl_next::protocol::Client<___T>,
731 }
732
733 impl<___T> MetricEventLoggerFactoryClient<___T>
734 where
735 ___T: ::fidl_next::Transport,
736 {
737 #[doc = " Create a MetricEventLogger for the project specified by `project_spec`.\n"]
738 pub fn create_metric_event_logger(
739 &self,
740
741 project_spec: impl ::fidl_next::Encode<
742 crate::wire::ProjectSpec<'static>,
743 <___T as ::fidl_next::Transport>::SendBuffer,
744 >,
745
746 logger: impl ::fidl_next::Encode<
747 ::fidl_next::ServerEnd<
748 crate::MetricEventLogger,
749 ::fidl_next::wire::fuchsia::Channel,
750 >,
751 <___T as ::fidl_next::Transport>::SendBuffer,
752 >,
753 ) -> ::fidl_next::TwoWayFuture<'_, super::CreateMetricEventLogger, ___T>
754 where
755 <___T as ::fidl_next::Transport>::SendBuffer:
756 ::fidl_next::encoder::InternalHandleEncoder,
757 <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::Encoder,
758 <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::fuchsia::HandleEncoder,
759 {
760 self.create_metric_event_logger_with(
761 crate::generic::MetricEventLoggerFactoryCreateMetricEventLoggerRequest {
762 project_spec,
763
764 logger,
765 },
766 )
767 }
768
769 #[doc = " Create a MetricEventLogger for the project specified by `project_spec`.\n"]
770 pub fn create_metric_event_logger_with<___R>(
771 &self,
772 request: ___R,
773 ) -> ::fidl_next::TwoWayFuture<'_, super::CreateMetricEventLogger, ___T>
774 where
775 ___R: ::fidl_next::Encode<
776 crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<
777 'static,
778 >,
779 <___T as ::fidl_next::Transport>::SendBuffer,
780 >,
781 {
782 ::fidl_next::TwoWayFuture::from_untyped(self.client.send_two_way(
783 967417524583938558,
784 <super::CreateMetricEventLogger as ::fidl_next::Method>::FLEXIBILITY,
785 request,
786 ))
787 }
788
789 #[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"]
790 pub fn create_metric_event_logger_with_experiments(
791 &self,
792
793 project_spec: impl ::fidl_next::Encode<
794 crate::wire::ProjectSpec<'static>,
795 <___T as ::fidl_next::Transport>::SendBuffer,
796 >,
797
798 experiment_ids: impl ::fidl_next::Encode<
799 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint32>,
800 <___T as ::fidl_next::Transport>::SendBuffer,
801 >,
802
803 logger: impl ::fidl_next::Encode<
804 ::fidl_next::ServerEnd<
805 crate::MetricEventLogger,
806 ::fidl_next::wire::fuchsia::Channel,
807 >,
808 <___T as ::fidl_next::Transport>::SendBuffer,
809 >,
810 ) -> ::fidl_next::TwoWayFuture<'_, super::CreateMetricEventLoggerWithExperiments, ___T>
811 where
812 <___T as ::fidl_next::Transport>::SendBuffer:
813 ::fidl_next::encoder::InternalHandleEncoder,
814 <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::Encoder,
815 <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::fuchsia::HandleEncoder,
816 {
817 self.create_metric_event_logger_with_experiments_with(crate::generic::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest {
818
819 project_spec,
820
821 experiment_ids,
822
823 logger,
824
825 })
826 }
827
828 #[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"]
829 pub fn create_metric_event_logger_with_experiments_with<___R>(
830 &self,
831 request: ___R,
832 ) -> ::fidl_next::TwoWayFuture<'_, super::CreateMetricEventLoggerWithExperiments, ___T>
833 where
834 ___R: ::fidl_next::Encode<
835 crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'static>,
836 <___T as ::fidl_next::Transport>::SendBuffer,
837 >,
838 {
839 ::fidl_next::TwoWayFuture::from_untyped(
840 self.client.send_two_way(
841 9160168118327134458,
842 <super::CreateMetricEventLoggerWithExperiments as ::fidl_next::Method>::FLEXIBILITY,
843 request,
844 )
845 )
846 }
847 }
848
849 #[repr(transparent)]
851 pub struct MetricEventLoggerFactoryServer<___T: ::fidl_next::Transport> {
852 server: ::fidl_next::protocol::Server<___T>,
853 }
854
855 impl<___T> MetricEventLoggerFactoryServer<___T> where ___T: ::fidl_next::Transport {}
856 }
857}
858
859#[diagnostic::on_unimplemented(
860 note = "If {Self} implements the non-local MetricEventLoggerFactoryClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
861)]
862
863pub trait MetricEventLoggerFactoryLocalClientHandler<
867 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
868 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
869>
870{
871}
872
873impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for MetricEventLoggerFactory
874where
875 ___H: MetricEventLoggerFactoryLocalClientHandler<___T>,
876 ___T: ::fidl_next::Transport,
877{
878 async fn on_event(
879 handler: &mut ___H,
880 ordinal: u64,
881 flexibility: ::fidl_next::protocol::Flexibility,
882 body: ::fidl_next::Body<___T>,
883 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
884 match ordinal {
885 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
886 }
887 }
888}
889
890#[diagnostic::on_unimplemented(
891 note = "If {Self} implements the non-local MetricEventLoggerFactoryServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
892)]
893
894pub trait MetricEventLoggerFactoryLocalServerHandler<
898 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
899 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
900>
901{
902 #[doc = " Create a MetricEventLogger for the project specified by `project_spec`.\n"]
903 fn create_metric_event_logger(
904 &mut self,
905
906 request: ::fidl_next::Request<metric_event_logger_factory::CreateMetricEventLogger, ___T>,
907
908 responder: ::fidl_next::Responder<
909 metric_event_logger_factory::CreateMetricEventLogger,
910 ___T,
911 >,
912 ) -> impl ::core::future::Future<Output = ()>;
913
914 #[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"]
915 fn create_metric_event_logger_with_experiments(
916 &mut self,
917
918 request: ::fidl_next::Request<
919 metric_event_logger_factory::CreateMetricEventLoggerWithExperiments,
920 ___T,
921 >,
922
923 responder: ::fidl_next::Responder<
924 metric_event_logger_factory::CreateMetricEventLoggerWithExperiments,
925 ___T,
926 >,
927 ) -> impl ::core::future::Future<Output = ()>;
928}
929
930impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for MetricEventLoggerFactory
931where
932 ___H: MetricEventLoggerFactoryLocalServerHandler<___T> ,
933 ___T: ::fidl_next::Transport,
934
935
936 for<'de> crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'de>: ::fidl_next::Decode<
937 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
938 Constraint = (),
939 >,
940
941
942
943 for<'de> crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'de>: ::fidl_next::Decode<
944 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
945 Constraint = (),
946 >,
947
948
949{
950 async fn on_one_way(
951 handler: &mut ___H,
952 ordinal: u64,
953 flexibility: ::fidl_next::protocol::Flexibility,
954 body: ::fidl_next::Body<___T>,
955 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>> {
956 match ordinal {
957
958
959
960
961
962
963
964 ordinal => {
965
966 Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
967
968 }
969 }
970 }
971
972 async fn on_two_way(
973 handler: &mut ___H,
974 ordinal: u64,
975 flexibility: ::fidl_next::protocol::Flexibility,
976 body: ::fidl_next::Body<___T>,
977 responder: ::fidl_next::protocol::Responder<___T>,
978 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>> {
979 match ordinal {
980
981
982
983 967417524583938558 => {
984 let responder = ::fidl_next::Responder::from_untyped(responder);
985
986 match ::fidl_next::AsDecoderExt::into_decoded(body) {
987 Ok(decoded) => {
988 handler.create_metric_event_logger(::fidl_next::Request::from_decoded(decoded), responder).await;
989 Ok(())
990 }
991 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
992 ordinal: 967417524583938558,
993 error,
994 }),
995 }
996
997 }
998
999
1000
1001
1002 9160168118327134458 => {
1003 let responder = ::fidl_next::Responder::from_untyped(responder);
1004
1005 match ::fidl_next::AsDecoderExt::into_decoded(body) {
1006 Ok(decoded) => {
1007 handler.create_metric_event_logger_with_experiments(::fidl_next::Request::from_decoded(decoded), responder).await;
1008 Ok(())
1009 }
1010 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
1011 ordinal: 9160168118327134458,
1012 error,
1013 }),
1014 }
1015
1016 }
1017
1018
1019 ordinal => {
1020
1021 Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
1022
1023 }
1024 }
1025 }
1026}
1027
1028pub trait MetricEventLoggerFactoryClientHandler<
1032 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
1033 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
1034>
1035{
1036}
1037
1038impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for MetricEventLoggerFactory
1039where
1040 ___H: MetricEventLoggerFactoryClientHandler<___T> + ::core::marker::Send,
1041 ___T: ::fidl_next::Transport,
1042{
1043 async fn on_event(
1044 handler: &mut ___H,
1045 ordinal: u64,
1046 flexibility: ::fidl_next::protocol::Flexibility,
1047 body: ::fidl_next::Body<___T>,
1048 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
1049 match ordinal {
1050 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1051 }
1052 }
1053}
1054
1055pub trait MetricEventLoggerFactoryServerHandler<
1059 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
1060 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
1061>
1062{
1063 #[doc = " Create a MetricEventLogger for the project specified by `project_spec`.\n"]
1064 fn create_metric_event_logger(
1065 &mut self,
1066
1067 request: ::fidl_next::Request<metric_event_logger_factory::CreateMetricEventLogger, ___T>,
1068
1069 responder: ::fidl_next::Responder<
1070 metric_event_logger_factory::CreateMetricEventLogger,
1071 ___T,
1072 >,
1073 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
1074
1075 #[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"]
1076 fn create_metric_event_logger_with_experiments(
1077 &mut self,
1078
1079 request: ::fidl_next::Request<
1080 metric_event_logger_factory::CreateMetricEventLoggerWithExperiments,
1081 ___T,
1082 >,
1083
1084 responder: ::fidl_next::Responder<
1085 metric_event_logger_factory::CreateMetricEventLoggerWithExperiments,
1086 ___T,
1087 >,
1088 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
1089}
1090
1091impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for MetricEventLoggerFactory
1092where
1093 ___H: MetricEventLoggerFactoryServerHandler<___T> + ::core::marker::Send,
1094 ___T: ::fidl_next::Transport,
1095
1096
1097 for<'de> crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerRequest<'de>: ::fidl_next::Decode<
1098 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
1099 Constraint = (),
1100 >,
1101
1102
1103
1104 for<'de> crate::wire::MetricEventLoggerFactoryCreateMetricEventLoggerWithExperimentsRequest<'de>: ::fidl_next::Decode<
1105 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
1106 Constraint = (),
1107 >,
1108
1109
1110{
1111 async fn on_one_way(
1112 handler: &mut ___H,
1113 ordinal: u64,
1114 flexibility: ::fidl_next::protocol::Flexibility,
1115 body: ::fidl_next::Body<___T>,
1116 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>> {
1117 match ordinal {
1118
1119
1120
1121
1122
1123
1124
1125 ordinal => {
1126
1127 Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
1128
1129 }
1130 }
1131 }
1132
1133 async fn on_two_way(
1134 handler: &mut ___H,
1135 ordinal: u64,
1136 flexibility: ::fidl_next::protocol::Flexibility,
1137 body: ::fidl_next::Body<___T>,
1138 responder: ::fidl_next::protocol::Responder<___T>,
1139 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>> {
1140 match ordinal {
1141
1142
1143
1144 967417524583938558 => {
1145 let responder = ::fidl_next::Responder::from_untyped(responder);
1146
1147 match ::fidl_next::AsDecoderExt::into_decoded(body) {
1148 Ok(decoded) => {
1149 handler.create_metric_event_logger(::fidl_next::Request::from_decoded(decoded), responder).await;
1150 Ok(())
1151 }
1152 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
1153 ordinal: 967417524583938558,
1154 error,
1155 }),
1156 }
1157
1158 }
1159
1160
1161
1162
1163 9160168118327134458 => {
1164 let responder = ::fidl_next::Responder::from_untyped(responder);
1165
1166 match ::fidl_next::AsDecoderExt::into_decoded(body) {
1167 Ok(decoded) => {
1168 handler.create_metric_event_logger_with_experiments(::fidl_next::Request::from_decoded(decoded), responder).await;
1169 Ok(())
1170 }
1171 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
1172 ordinal: 9160168118327134458,
1173 error,
1174 }),
1175 }
1176
1177 }
1178
1179
1180 ordinal => {
1181
1182 Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
1183
1184 }
1185 }
1186 }
1187}
1188
1189impl<___T> MetricEventLoggerFactoryClientHandler<___T> for ::fidl_next::IgnoreEvents where
1190 ___T: ::fidl_next::Transport
1191{
1192}
1193
1194impl<___H, ___T> MetricEventLoggerFactoryLocalClientHandler<___T> for ::fidl_next::Local<___H>
1195where
1196 ___H: MetricEventLoggerFactoryClientHandler<___T>,
1197 ___T: ::fidl_next::Transport,
1198{
1199}
1200
1201impl<___H, ___T> MetricEventLoggerFactoryLocalServerHandler<___T> for ::fidl_next::Local<___H>
1202where
1203 ___H: MetricEventLoggerFactoryServerHandler<___T>,
1204 ___T: ::fidl_next::Transport,
1205{
1206 async fn create_metric_event_logger(
1207 &mut self,
1208
1209 request: ::fidl_next::Request<metric_event_logger_factory::CreateMetricEventLogger, ___T>,
1210
1211 responder: ::fidl_next::Responder<
1212 metric_event_logger_factory::CreateMetricEventLogger,
1213 ___T,
1214 >,
1215 ) {
1216 ___H::create_metric_event_logger(&mut self.0, request, responder).await
1217 }
1218
1219 async fn create_metric_event_logger_with_experiments(
1220 &mut self,
1221
1222 request: ::fidl_next::Request<
1223 metric_event_logger_factory::CreateMetricEventLoggerWithExperiments,
1224 ___T,
1225 >,
1226
1227 responder: ::fidl_next::Responder<
1228 metric_event_logger_factory::CreateMetricEventLoggerWithExperiments,
1229 ___T,
1230 >,
1231 ) {
1232 ___H::create_metric_event_logger_with_experiments(&mut self.0, request, responder).await
1233 }
1234}
1235
1236pub use fidl_next_common_fuchsia_metrics::*;