···4242///
4343/// The bytes are cloned into an `Arc<str>`/`Arc<[u8]>` via miette's constructor,
4444/// so callers may drop the original slice after this returns.
4545-pub fn named_source_from_bytes(name: impl Into<String>, bytes: &[u8]) -> NamedSource<Arc<[u8]>> {
4545+pub fn named_source_from_bytes(name: impl AsRef<str>, bytes: &[u8]) -> NamedSource<Arc<[u8]>> {
4646 NamedSource::new(name, Arc::<[u8]>::from(bytes))
4747}
48484949/// Build a `NamedSource` from a name and a UTF-8 string slice.
5050-pub fn named_source_from_str(name: impl Into<String>, text: &str) -> NamedSource<String> {
5050+pub fn named_source_from_str(name: impl AsRef<str>, text: &str) -> NamedSource<String> {
5151 NamedSource::new(name, text.to_string())
5252}
+9
src/lib.rs
···11+//! `atproto-devtool` library crate.
22+//!
33+//! The binary at `src/main.rs` is a thin tokio bootstrap over [`cli::run`].
44+//! All pipeline modules are re-exported here so integration tests under
55+//! `tests/*.rs` can reach them as `atproto_devtool::commands::test::labeler::...`.
66+77+pub mod cli;
88+pub mod commands;
99+pub mod common;