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
//! # Hopper Manager
//!
//! Schema-driven inspector library for Hopper programs.
//!
//! The manager is an **inspector, not an engine**. It consumes the canonical
//! runtime/layout/schema truth published by Hopper programs and returns
//! human-readable reports. It never invents its own semantics, every byte,
//! offset, and label comes from `hopper_schema::ProgramManifest` or the raw
//! account bytes themselves.
//!
//! ## Design
//!
//! This crate exposes **pure functions** that take a `ProgramManifest` plus
//! some input and return a `String` or a structured report. They do no I/O,
//! no argv parsing, no RPC calls, and no `process::exit`. Those concerns
//! belong to the caller (typically `hopper-cli` or a custom tool).
//!
//! ## Modules
//!
//! - [`inspect`], identify accounts, decode headers and fields
//! - [`summary`], render layouts, policies, events, fingerprint tables
//! - [`analyze`], compatibility verdicts, semantic diffs, migration plans
//!
//! ## Example
//!
//! ```ignore
//! use hopper_manager as mgr;
//!
//! let report = mgr::inspect::identify(&manifest, &raw_bytes)?;
//! println!("{}", report);
//! ```
pub use ;
pub use ;
pub use ;
/// One-stop human-readable overview of a program manifest.
///
/// Equivalent to the CLI's `hopper manager summary`, the default
/// `Display` impl on `ProgramManifest`. Exposed here so downstream tools
/// can get the same formatting without reaching into schema internals.