cargo-port 0.2.0

A TUI for inspecting and managing Rust projects
mod constants;
mod copy_data;
mod detail_data;
mod detail_field;
mod formatting;
mod git_data;
mod package_data;
mod pending;

use std::collections::HashSet;
use std::path::Path;

pub use copy_data::copy_payload_for_ci;
pub use copy_data::copy_payload_for_git;
pub use copy_data::copy_payload_for_lints;
pub use copy_data::copy_payload_for_output;
pub use copy_data::copy_payload_for_package;
pub use copy_data::copy_payload_for_targets;
pub use detail_data::DetailPaneData;
pub use detail_data::build_pane_data;
pub use detail_data::build_pane_data_for_member;
pub use detail_data::build_pane_data_for_submodule;
pub use detail_data::build_pane_data_for_vendored;
pub use detail_data::build_pane_data_for_workspace_ref;
pub use detail_data::max_top_pane_inner_height;
pub use detail_field::DetailField;
pub use detail_field::github_stars_is_unreachable_placeholder;
#[cfg(test)]
pub use detail_field::package_fields_from_data;
pub use detail_field::package_first_selectable_row;
pub use detail_field::package_last_selectable_row;
pub use detail_field::package_nearest_selectable_row;
pub use detail_field::package_row_is_selectable;
pub use detail_field::package_rows_from_data;
pub use detail_field::package_selectable_row_at_or_after;
pub use detail_field::package_selectable_row_at_or_before;
pub use detail_field::sanitize_ansi_for_output;
pub use detail_field::strip_ansi;
pub use formatting::format_ahead_behind;
#[cfg(test)]
pub use formatting::format_ahead_behind_against;
pub use formatting::format_date;
pub use formatting::format_duration;
pub use formatting::format_time;
pub use formatting::format_timestamp;
pub use git_data::GitData;
pub use git_data::GitRow;
#[cfg(test)]
pub use git_data::PullRequestPolling;
pub use git_data::PullRequestRow;
pub use git_data::PullRequestSection;
pub use git_data::PullRequestSectionState;
pub use git_data::RemoteRow;
pub use git_data::WorktreeInfo;
pub use git_data::git_fields_from_data;
pub use git_data::git_has_description_row;
pub use git_data::git_row_at;
pub use package_data::PackageData;
#[cfg(test)]
pub use package_data::PackagePresence;
pub use package_data::PackageRow;
pub use package_data::PackageSection;
pub use pending::CiFetchKind;
pub use pending::PendingCiFetch;
pub use pending::PendingExampleRun;
use ratatui::layout::Rect;
use tui_pane::CopyLabel;
use tui_pane::CopyPayload;
use tui_pane::CopySelectionResult;

pub(super) use self::constants::CRATES_IO_UNREACHABLE;
use self::constants::PROJECT_LIBS_LABEL;
use self::constants::PROJECT_MEMBERS_LABEL;
use self::constants::PROJECT_PROC_MACROS_LABEL;
use self::constants::PROJECT_SUBMODULES_LABEL;
use self::constants::PROJECT_VENDORED_LABEL;
use self::constants::TESTS_DOC_LABEL;
use self::constants::TESTS_INTEGRATION_LABEL;
use self::constants::TESTS_UNIT_LABEL;
use super::EmptyDescriptionBehavior;
pub use super::ci::CiData;
#[cfg(test)]
pub use super::ci::CiEmptyState;
use super::constants::TESTS_IGNORED_LABEL;
use super::constants::TESTS_TOTAL_LABEL;
use super::git;
pub use super::lints::LintsData;
#[cfg(test)]
pub use super::lints::LintsProjectKind;
use super::package;
pub use super::targets::BuildMode;
pub use super::targets::RunTargetKind;
pub use super::targets::TargetEntry;
#[cfg(test)]
pub use super::targets::TargetSource;
pub use super::targets::TargetsData;
use crate::ci;
use crate::ci::CiStatus;
use crate::constants::GIT_CLONE;
use crate::constants::GIT_DIR;
use crate::constants::GIT_FORK;
use crate::constants::NO_REMOTE_SYNC;
use crate::http::RateLimitQuota;
use crate::project;
use crate::project::AbsolutePath;
use crate::project::BisectProgress;
use crate::project::Cargo;
use crate::project::GitStatus;
use crate::project::HeadState;
use crate::project::NonRustProject;
use crate::project::Package;
use crate::project::PackageRecord;
use crate::project::ProjectPrData;
use crate::project::ProjectPrInfo;
use crate::project::ProjectType;
use crate::project::PullRequestCompleteness;
use crate::project::PullRequestInfo;
use crate::project::PullRequestUnavailableReason;
use crate::project::PushDisabledReason;
use crate::project::PushState;
use crate::project::RemoteKind;
use crate::project::RepoInfo;
use crate::project::RootItem;
use crate::project::RustInfo;
use crate::project::RustProject;
use crate::project::Submodule;
use crate::project::TestCounts;
use crate::project::VendoredPackage;
use crate::project::Visibility;
use crate::project::Workspace;
use crate::project::WorktreeStatus;
use crate::tui::app::App;
use crate::tui::app::AvailabilityStatus;
use crate::tui::constants::TARGET_KIND_BENCH_LABEL;
use crate::tui::constants::TARGET_KIND_BIN_LABEL;
use crate::tui::constants::TARGET_KIND_EXAMPLE_LABEL;
use crate::tui::project_list::ProjectList;
use crate::tui::state::ServiceStatus;