refactor(lib): keep the actors inside the crate and mark the growing enums
Every release since 14 has been a major, because the actor mailboxes, the share index's struct and the CLI's command enum were all exhaustive public API: adding a peer message, a scanned field or a subcommand read as a breaking change to the library. The actors, dispatcher, peer plumbing and download store are how the client is built, not what a host programs against, so they move inside the crate; PeerMessage, SharedFile and the CLI command enums are non-exhaustive; ConnectionType is re-exported at the root for the one thing hosts used it for. A one-time break so that the next additions are not.
This commit is contained in:
@@ -12,7 +12,11 @@ use std::io;
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
/// One shared file: its peer-facing virtual path and where it lives on disk.
|
||||
///
|
||||
/// Built by the scan, never by a host, so fields can be added without a
|
||||
/// breaking release.
|
||||
#[derive(Debug, Clone)]
|
||||
#[non_exhaustive]
|
||||
pub struct SharedFile {
|
||||
/// Backslash-separated path exposed to peers, e.g. `music\album\song.mp3`.
|
||||
pub virtual_path: String,
|
||||
|
||||
Reference in New Issue
Block a user