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