Skip to main content

cu29_helpers/
lib.rs

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
36/// Compatibility stub for workspace builds.
37///
38/// When `cu29-helpers` is used as a dependency, this crate emits a compile
39/// error with migration instructions to the app-builder API.
40pub mod compatibility_stub {}