1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//! Rust drivers for PSOC devices
//!
//! This crate implements peripheral drivers for SoCs from Infineon's ModusToolbox platform. Do not
//! depend on this crate directly; use the `psoc-rs` crate instead, which configures and reexports
//! the appropriate drivers for your specific device.
//!
// Copyright (c) 2026, Infineon Technologies AG or an affiliate of Infineon Technologies AG.
// SPDX-License-Identifier: Apache-2.0
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
// in compliance with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software distributed under the
// License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
// express or implied. See the License for the specific language governing permissions and
// limitations under the License.
/// Helper type used to mark structures as non-exhaustive without disabling struct update syntax.
///
/// This type is used within configuration structures whose fields may vary across driver and
/// hardware revisions. Instead of creating such a structure directly, use the `new()` or
/// `default()` function to obtain the default configuration and apply updates to that so that your
/// code will not break if ported to a different device or driver version.
///
/// ```rust
/// use mtb_drivers:::gpio::{PinConfig, PinState};
///
/// let my_pin_config = PinConfig {
/// initial_state: PinState::High,
/// ..PinConfig::new()
/// };
/// ```
;
hsiom!;