1#![cfg_attr(not(feature = "std"), no_std)]
2#![doc = include_str!("../README.md")]
3
4const _: () = {
5 if option_env!("CARGO_PRIMARY_PACKAGE").is_none() {
6 panic!(
7 r#"`cu29-helpers` was retired. Port your app to the generated App builder API.
8
9Old pattern:
10 let ctx = cu29_helpers::basic_copper_setup(log_path, slab_size, text_log, Some(clock))?;
11 let mut app = MyApp::new(clock.clone(), ctx.unified_logger.clone(), config_override)?;
12
13New pattern:
14 let mut app = MyApp::builder()
15 .with_clock(clock) // optional; defaults to RobotClock::default()
16 .with_config(config_override) // optional
17 .with_log_path(log_path, slab_size)?
18 .build()?;
19
20If you already constructed the unified logger yourself:
21 let mut app = MyApp::builder()
22 .with_clock(clock)
23 .with_logger::<MmapSectionStorage, UnifiedLoggerWrite>(unified_logger)
24 .build()?;
25
26Notes:
27 - Drop `basic_copper_setup(...)`.
28 - Drop `App::new(...)` / `App::new_with_resources(...)` in favor of `App::builder()`.
29 - The app now owns logging setup.
30 - See `templates/cu_project/src/main.rs` or `examples/cu_caterpillar/src/main.rs`.
31"#
32 );
33 }
34};
35
36pub mod compatibility_stub {}