Skip to main content

fidl_cf_sc_internal_timekeeperconfig__common/
fidl_cf_sc_internal_timekeeperconfig__common.rs

1// WARNING: This file is machine generated by fidlgen.
2
3#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
12pub struct Config {
13    pub back_off_time_between_pull_samples_sec: i64,
14    pub disable_delays: bool,
15    pub early_exit: bool,
16    pub first_sampling_delay_sec: i64,
17    pub has_always_on_counter: bool,
18    pub has_real_time_clock: bool,
19    pub initial_frequency_ppm: u32,
20    pub max_frequency_error_ppm: u32,
21    pub min_utc_reference_to_backstop_diff_minutes: u64,
22    pub monitor_time_source_url: String,
23    pub monitor_uses_pull: bool,
24    pub oscillator_error_std_dev_ppm: u32,
25    pub periodic_rtc_update_interval_minutes: u32,
26    pub power_topology_integration_enabled: bool,
27    pub primary_time_source_url: String,
28    pub primary_uses_pull: bool,
29    pub rtc_allow_setting_past_utc: String,
30    pub serve_fuchsia_time_alarms: bool,
31    pub serve_fuchsia_time_external_adjust: bool,
32    pub serve_test_protocols: bool,
33    pub use_connectivity: bool,
34    pub utc_max_allowed_delta_future_sec: i64,
35    pub utc_max_allowed_delta_past_sec: i64,
36    pub utc_start_at_startup: bool,
37    pub utc_start_at_startup_when_invalid_rtc: bool,
38}
39
40impl fidl::Persistable for Config {}
41
42mod internal {
43    use super::*;
44
45    impl fidl::encoding::ValueTypeMarker for Config {
46        type Borrowed<'a> = &'a Self;
47        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
48            value
49        }
50    }
51
52    unsafe impl fidl::encoding::TypeMarker for Config {
53        type Owned = Self;
54
55        #[inline(always)]
56        fn inline_align(_context: fidl::encoding::Context) -> usize {
57            8
58        }
59
60        #[inline(always)]
61        fn inline_size(_context: fidl::encoding::Context) -> usize {
62            152
63        }
64    }
65
66    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
67        #[inline]
68        unsafe fn encode(
69            self,
70            encoder: &mut fidl::encoding::Encoder<'_, D>,
71            offset: usize,
72            _depth: fidl::encoding::Depth,
73        ) -> fidl::Result<()> {
74            encoder.debug_check_bounds::<Config>(offset);
75            // Delegate to tuple encoding.
76            fidl::encoding::Encode::<Config, D>::encode(
77                (
78                    <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.back_off_time_between_pull_samples_sec),
79                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.disable_delays),
80                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.early_exit),
81                    <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.first_sampling_delay_sec),
82                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.has_always_on_counter),
83                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.has_real_time_clock),
84                    <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.initial_frequency_ppm),
85                    <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.max_frequency_error_ppm),
86                    <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.min_utc_reference_to_backstop_diff_minutes),
87                    <fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(&self.monitor_time_source_url),
88                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.monitor_uses_pull),
89                    <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.oscillator_error_std_dev_ppm),
90                    <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.periodic_rtc_update_interval_minutes),
91                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.power_topology_integration_enabled),
92                    <fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_time_source_url),
93                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_uses_pull),
94                    <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow(&self.rtc_allow_setting_past_utc),
95                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.serve_fuchsia_time_alarms),
96                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.serve_fuchsia_time_external_adjust),
97                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.serve_test_protocols),
98                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.use_connectivity),
99                    <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.utc_max_allowed_delta_future_sec),
100                    <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.utc_max_allowed_delta_past_sec),
101                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.utc_start_at_startup),
102                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.utc_start_at_startup_when_invalid_rtc),
103                ),
104                encoder, offset, _depth
105            )
106        }
107    }
108    unsafe impl<
109        D: fidl::encoding::ResourceDialect,
110        T0: fidl::encoding::Encode<i64, D>,
111        T1: fidl::encoding::Encode<bool, D>,
112        T2: fidl::encoding::Encode<bool, D>,
113        T3: fidl::encoding::Encode<i64, D>,
114        T4: fidl::encoding::Encode<bool, D>,
115        T5: fidl::encoding::Encode<bool, D>,
116        T6: fidl::encoding::Encode<u32, D>,
117        T7: fidl::encoding::Encode<u32, D>,
118        T8: fidl::encoding::Encode<u64, D>,
119        T9: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
120        T10: fidl::encoding::Encode<bool, D>,
121        T11: fidl::encoding::Encode<u32, D>,
122        T12: fidl::encoding::Encode<u32, D>,
123        T13: fidl::encoding::Encode<bool, D>,
124        T14: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
125        T15: fidl::encoding::Encode<bool, D>,
126        T16: fidl::encoding::Encode<fidl::encoding::BoundedString<64>, D>,
127        T17: fidl::encoding::Encode<bool, D>,
128        T18: fidl::encoding::Encode<bool, D>,
129        T19: fidl::encoding::Encode<bool, D>,
130        T20: fidl::encoding::Encode<bool, D>,
131        T21: fidl::encoding::Encode<i64, D>,
132        T22: fidl::encoding::Encode<i64, D>,
133        T23: fidl::encoding::Encode<bool, D>,
134        T24: fidl::encoding::Encode<bool, D>,
135    > fidl::encoding::Encode<Config, D>
136        for (
137            T0,
138            T1,
139            T2,
140            T3,
141            T4,
142            T5,
143            T6,
144            T7,
145            T8,
146            T9,
147            T10,
148            T11,
149            T12,
150            T13,
151            T14,
152            T15,
153            T16,
154            T17,
155            T18,
156            T19,
157            T20,
158            T21,
159            T22,
160            T23,
161            T24,
162        )
163    {
164        #[inline]
165        unsafe fn encode(
166            self,
167            encoder: &mut fidl::encoding::Encoder<'_, D>,
168            offset: usize,
169            depth: fidl::encoding::Depth,
170        ) -> fidl::Result<()> {
171            encoder.debug_check_bounds::<Config>(offset);
172            // Zero out padding regions. There's no need to apply masks
173            // because the unmasked parts will be overwritten by fields.
174            unsafe {
175                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
176                (ptr as *mut u64).write_unaligned(0);
177            }
178            unsafe {
179                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(24);
180                (ptr as *mut u64).write_unaligned(0);
181            }
182            unsafe {
183                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
184                (ptr as *mut u64).write_unaligned(0);
185            }
186            unsafe {
187                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(64);
188                (ptr as *mut u64).write_unaligned(0);
189            }
190            unsafe {
191                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(72);
192                (ptr as *mut u64).write_unaligned(0);
193            }
194            unsafe {
195                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(96);
196                (ptr as *mut u64).write_unaligned(0);
197            }
198            unsafe {
199                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(120);
200                (ptr as *mut u64).write_unaligned(0);
201            }
202            unsafe {
203                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(144);
204                (ptr as *mut u64).write_unaligned(0);
205            }
206            // Write the fields.
207            self.0.encode(encoder, offset + 0, depth)?;
208            self.1.encode(encoder, offset + 8, depth)?;
209            self.2.encode(encoder, offset + 9, depth)?;
210            self.3.encode(encoder, offset + 16, depth)?;
211            self.4.encode(encoder, offset + 24, depth)?;
212            self.5.encode(encoder, offset + 25, depth)?;
213            self.6.encode(encoder, offset + 28, depth)?;
214            self.7.encode(encoder, offset + 32, depth)?;
215            self.8.encode(encoder, offset + 40, depth)?;
216            self.9.encode(encoder, offset + 48, depth)?;
217            self.10.encode(encoder, offset + 64, depth)?;
218            self.11.encode(encoder, offset + 68, depth)?;
219            self.12.encode(encoder, offset + 72, depth)?;
220            self.13.encode(encoder, offset + 76, depth)?;
221            self.14.encode(encoder, offset + 80, depth)?;
222            self.15.encode(encoder, offset + 96, depth)?;
223            self.16.encode(encoder, offset + 104, depth)?;
224            self.17.encode(encoder, offset + 120, depth)?;
225            self.18.encode(encoder, offset + 121, depth)?;
226            self.19.encode(encoder, offset + 122, depth)?;
227            self.20.encode(encoder, offset + 123, depth)?;
228            self.21.encode(encoder, offset + 128, depth)?;
229            self.22.encode(encoder, offset + 136, depth)?;
230            self.23.encode(encoder, offset + 144, depth)?;
231            self.24.encode(encoder, offset + 145, depth)?;
232            Ok(())
233        }
234    }
235
236    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
237        #[inline(always)]
238        fn new_empty() -> Self {
239            Self {
240                back_off_time_between_pull_samples_sec: fidl::new_empty!(i64, D),
241                disable_delays: fidl::new_empty!(bool, D),
242                early_exit: fidl::new_empty!(bool, D),
243                first_sampling_delay_sec: fidl::new_empty!(i64, D),
244                has_always_on_counter: fidl::new_empty!(bool, D),
245                has_real_time_clock: fidl::new_empty!(bool, D),
246                initial_frequency_ppm: fidl::new_empty!(u32, D),
247                max_frequency_error_ppm: fidl::new_empty!(u32, D),
248                min_utc_reference_to_backstop_diff_minutes: fidl::new_empty!(u64, D),
249                monitor_time_source_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D),
250                monitor_uses_pull: fidl::new_empty!(bool, D),
251                oscillator_error_std_dev_ppm: fidl::new_empty!(u32, D),
252                periodic_rtc_update_interval_minutes: fidl::new_empty!(u32, D),
253                power_topology_integration_enabled: fidl::new_empty!(bool, D),
254                primary_time_source_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D),
255                primary_uses_pull: fidl::new_empty!(bool, D),
256                rtc_allow_setting_past_utc: fidl::new_empty!(fidl::encoding::BoundedString<64>, D),
257                serve_fuchsia_time_alarms: fidl::new_empty!(bool, D),
258                serve_fuchsia_time_external_adjust: fidl::new_empty!(bool, D),
259                serve_test_protocols: fidl::new_empty!(bool, D),
260                use_connectivity: fidl::new_empty!(bool, D),
261                utc_max_allowed_delta_future_sec: fidl::new_empty!(i64, D),
262                utc_max_allowed_delta_past_sec: fidl::new_empty!(i64, D),
263                utc_start_at_startup: fidl::new_empty!(bool, D),
264                utc_start_at_startup_when_invalid_rtc: fidl::new_empty!(bool, D),
265            }
266        }
267
268        #[inline]
269        unsafe fn decode(
270            &mut self,
271            decoder: &mut fidl::encoding::Decoder<'_, D>,
272            offset: usize,
273            _depth: fidl::encoding::Depth,
274        ) -> fidl::Result<()> {
275            decoder.debug_check_bounds::<Self>(offset);
276            // Verify that padding bytes are zero.
277            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
278            let padval = unsafe { (ptr as *const u64).read_unaligned() };
279            let mask = 0xffffffffffff0000u64;
280            let maskedval = padval & mask;
281            if maskedval != 0 {
282                return Err(fidl::Error::NonZeroPadding {
283                    padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
284                });
285            }
286            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(24) };
287            let padval = unsafe { (ptr as *const u64).read_unaligned() };
288            let mask = 0xffff0000u64;
289            let maskedval = padval & mask;
290            if maskedval != 0 {
291                return Err(fidl::Error::NonZeroPadding {
292                    padding_start: offset + 24 + ((mask as u64).trailing_zeros() / 8) as usize,
293                });
294            }
295            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
296            let padval = unsafe { (ptr as *const u64).read_unaligned() };
297            let mask = 0xffffffff00000000u64;
298            let maskedval = padval & mask;
299            if maskedval != 0 {
300                return Err(fidl::Error::NonZeroPadding {
301                    padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
302                });
303            }
304            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(64) };
305            let padval = unsafe { (ptr as *const u64).read_unaligned() };
306            let mask = 0xffffff00u64;
307            let maskedval = padval & mask;
308            if maskedval != 0 {
309                return Err(fidl::Error::NonZeroPadding {
310                    padding_start: offset + 64 + ((mask as u64).trailing_zeros() / 8) as usize,
311                });
312            }
313            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(72) };
314            let padval = unsafe { (ptr as *const u64).read_unaligned() };
315            let mask = 0xffffff0000000000u64;
316            let maskedval = padval & mask;
317            if maskedval != 0 {
318                return Err(fidl::Error::NonZeroPadding {
319                    padding_start: offset + 72 + ((mask as u64).trailing_zeros() / 8) as usize,
320                });
321            }
322            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(96) };
323            let padval = unsafe { (ptr as *const u64).read_unaligned() };
324            let mask = 0xffffffffffffff00u64;
325            let maskedval = padval & mask;
326            if maskedval != 0 {
327                return Err(fidl::Error::NonZeroPadding {
328                    padding_start: offset + 96 + ((mask as u64).trailing_zeros() / 8) as usize,
329                });
330            }
331            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(120) };
332            let padval = unsafe { (ptr as *const u64).read_unaligned() };
333            let mask = 0xffffffff00000000u64;
334            let maskedval = padval & mask;
335            if maskedval != 0 {
336                return Err(fidl::Error::NonZeroPadding {
337                    padding_start: offset + 120 + ((mask as u64).trailing_zeros() / 8) as usize,
338                });
339            }
340            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(144) };
341            let padval = unsafe { (ptr as *const u64).read_unaligned() };
342            let mask = 0xffffffffffff0000u64;
343            let maskedval = padval & mask;
344            if maskedval != 0 {
345                return Err(fidl::Error::NonZeroPadding {
346                    padding_start: offset + 144 + ((mask as u64).trailing_zeros() / 8) as usize,
347                });
348            }
349            fidl::decode!(
350                i64,
351                D,
352                &mut self.back_off_time_between_pull_samples_sec,
353                decoder,
354                offset + 0,
355                _depth
356            )?;
357            fidl::decode!(bool, D, &mut self.disable_delays, decoder, offset + 8, _depth)?;
358            fidl::decode!(bool, D, &mut self.early_exit, decoder, offset + 9, _depth)?;
359            fidl::decode!(
360                i64,
361                D,
362                &mut self.first_sampling_delay_sec,
363                decoder,
364                offset + 16,
365                _depth
366            )?;
367            fidl::decode!(bool, D, &mut self.has_always_on_counter, decoder, offset + 24, _depth)?;
368            fidl::decode!(bool, D, &mut self.has_real_time_clock, decoder, offset + 25, _depth)?;
369            fidl::decode!(u32, D, &mut self.initial_frequency_ppm, decoder, offset + 28, _depth)?;
370            fidl::decode!(u32, D, &mut self.max_frequency_error_ppm, decoder, offset + 32, _depth)?;
371            fidl::decode!(
372                u64,
373                D,
374                &mut self.min_utc_reference_to_backstop_diff_minutes,
375                decoder,
376                offset + 40,
377                _depth
378            )?;
379            fidl::decode!(
380                fidl::encoding::BoundedString<4096>,
381                D,
382                &mut self.monitor_time_source_url,
383                decoder,
384                offset + 48,
385                _depth
386            )?;
387            fidl::decode!(bool, D, &mut self.monitor_uses_pull, decoder, offset + 64, _depth)?;
388            fidl::decode!(
389                u32,
390                D,
391                &mut self.oscillator_error_std_dev_ppm,
392                decoder,
393                offset + 68,
394                _depth
395            )?;
396            fidl::decode!(
397                u32,
398                D,
399                &mut self.periodic_rtc_update_interval_minutes,
400                decoder,
401                offset + 72,
402                _depth
403            )?;
404            fidl::decode!(
405                bool,
406                D,
407                &mut self.power_topology_integration_enabled,
408                decoder,
409                offset + 76,
410                _depth
411            )?;
412            fidl::decode!(
413                fidl::encoding::BoundedString<4096>,
414                D,
415                &mut self.primary_time_source_url,
416                decoder,
417                offset + 80,
418                _depth
419            )?;
420            fidl::decode!(bool, D, &mut self.primary_uses_pull, decoder, offset + 96, _depth)?;
421            fidl::decode!(
422                fidl::encoding::BoundedString<64>,
423                D,
424                &mut self.rtc_allow_setting_past_utc,
425                decoder,
426                offset + 104,
427                _depth
428            )?;
429            fidl::decode!(
430                bool,
431                D,
432                &mut self.serve_fuchsia_time_alarms,
433                decoder,
434                offset + 120,
435                _depth
436            )?;
437            fidl::decode!(
438                bool,
439                D,
440                &mut self.serve_fuchsia_time_external_adjust,
441                decoder,
442                offset + 121,
443                _depth
444            )?;
445            fidl::decode!(bool, D, &mut self.serve_test_protocols, decoder, offset + 122, _depth)?;
446            fidl::decode!(bool, D, &mut self.use_connectivity, decoder, offset + 123, _depth)?;
447            fidl::decode!(
448                i64,
449                D,
450                &mut self.utc_max_allowed_delta_future_sec,
451                decoder,
452                offset + 128,
453                _depth
454            )?;
455            fidl::decode!(
456                i64,
457                D,
458                &mut self.utc_max_allowed_delta_past_sec,
459                decoder,
460                offset + 136,
461                _depth
462            )?;
463            fidl::decode!(bool, D, &mut self.utc_start_at_startup, decoder, offset + 144, _depth)?;
464            fidl::decode!(
465                bool,
466                D,
467                &mut self.utc_start_at_startup_when_invalid_rtc,
468                decoder,
469                offset + 145,
470                _depth
471            )?;
472            Ok(())
473        }
474    }
475}