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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
//! Panic handling subsystem.
//!
//! Linux equivalent: `kernel/panic.c`
//!
//! Provides custom panic handlers, crash recovery, and state dumping.
//!
//! # Architecture
//!
//! ```text
//! ┌─────────────────────────────────────────────────────────────┐
//! │ Panic Subsystem │
//! │ │
//! │ ┌─────────────────┐ ┌─────────────────┐ │
//! │ │ Handler │ │ Recovery │ │
//! │ │ (panic hook, │ │ (buffer save, │ │
//! │ │ recovery cb) │ │ file mgmt) │ │
//! │ └─────────────────┘ └─────────────────┘ │
//! │ │
//! │ ┌─────────────────┐ │
//! │ │ Report │ │
//! │ │ (crash report │ │
//! │ │ generation) │ │
//! │ └─────────────────┘ │
//! │ │
//! └─────────────────────────────────────────────────────────────┘
//! ```
//!
//! # Components
//!
//! - [`handler`] - Custom panic handler installation
//! - [`recovery`] - Buffer recovery utilities
//! - [`report`] - Crash report generation
//!
//! # Example
//!
//! ```ignore
//! use reovim_kernel::panic::{
//! install_panic_handler,
//! set_recovery_callback,
//! save_buffer_for_recovery,
//! };
//!
//! // Set up recovery callback
//! set_recovery_callback(Box::new(|_info| {
//! // Save unsaved buffers
//! for buffer in get_unsaved_buffers() {
//! save_buffer_for_recovery(
//! buffer.id,
//! buffer.path.as_deref(),
//! &buffer.content,
//! ).ok();
//! }
//! }));
//!
//! // Install the panic handler
//! install_panic_handler();
//! ```
// Re-export handler types
pub use ;
// Re-export recovery types
pub use ;
// Re-export report types
pub use ;