| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /*
- * Copyright (c) 2006-2025, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author notes
- * 2025-10-25 foxglove Component registry for unified component registration
- * 2025-10-29 foxglove Updated to demonstrate new modular macro interface
- */
- #![no_std]
- extern crate alloc;
- /* Demonstrate the new modular macro interface */
- use rt_macros::rt_component_export;
- use rt_rust::param::{Param, ParamItem};
- use rt_rust::println;
- /* Re-export component functionality for other modules */
- #[cfg(feature = "enable-log")]
- pub use em_component_log::*;
- #[cfg(feature = "enable-log")]
- use em_component_log::logging::Level;
- /** Unified component registration entrypoint */
- #[cfg(feature = "enable-log")]
- #[rt_component_export(name = "rust_component_registry")]
- fn init_registry_component() {
- println!("[logging component init] hello world");
- log!(Level::Info, "hello world");
- info!("hello world");
- warn!("hello world");
- error!("hello world");
- trace!("hello world");
- debug!("hello world");
- }
- /** Provide a no-op implementation when no component feature is enabled */
- #[cfg(not(feature = "enable-log"))]
- pub extern "C" fn component_init() {
- /* Empty implementation to ensure the library still links */
- }
|