Go Usage Differences
This document outlines the differences in usage between the Rust and Go implementations of Pathmaster.
Command Line Interface
The Go implementation aims to maintain the same CLI interface as the Rust version to ensure a smooth transition for users. However, there may be some subtle differences:
Installation
Rust Version:
cargo install pathmaster
Go Version (future):
# Via Go install
go install github.com/jwliles/pathmaster/cmd/pathmaster@latest
# Via binary releases (after v0.3.0)
# Download appropriate binary from GitHub releases
Man Page
Rust Version:
pathmaster-install-man $HOME/.local
Go Version: Man pages will be included in binary releases or can be generated from source.
New Features in Go Version
The Go implementation will include several new features that are not available in the Rust version:
Enhanced Backup System
Multiple backup formats (JSON, TOML, text)
User-defined backup locations
Backup validation
Format conversion utilities
Interactive TUI Mode
# Enter interactive TUI mode
pathmaster tui
The TUI mode will provide:
Visual path management
Interactive editing
Validation visualization
Configuration management
Configuration Profiles
# Create a new profile
pathmaster profile create development
# Switch to a profile
pathmaster profile use development
# List available profiles
pathmaster profile list
Behavior Differences
While we aim for feature parity, there might be some behavioral differences between the implementations:
Error Messages: Error messages may be more detailed in the Go version
Shell Detection: The algorithm for detecting the current shell might be slightly different
Performance: The Go version may have different performance characteristics
Compatibility
The Go version will be compatible with backup files created by the Rust version. If there are format differences, conversion utilities will be provided.
Feedback on Differences
As the Go implementation progresses, please report any unexpected differences in behavior or functionality through:
GitHub Issues: https://github.com/jwliles/pathmaster/issues
Documentation Suggestions: Create a pull request for these documentation files