/*!
Per-part components of a parsed message body.
*/
use crateAttributedRange;
/// Component emitted for one logical message part.
///
/// # Component Types
///
/// A single iMessage contains data that may be represented across multiple bubbles.
/// Each bubble corresponds to one `__kIMMessagePartAttributeName` index in the
/// underlying [`NSAttributedString`](https://github.com/ReagentX/crabstep); the
/// [`Run`](Self::Run) groups every attributed range that shares that part index.