pub struct ColorfulVersion { /* private fields */ }Expand description
Configuration for colorful version output
Implementations§
Source§impl ColorfulVersion
impl ColorfulVersion
Sourcepub fn new(
package_name: impl Into<String>,
version: impl Into<String>,
author: impl Into<String>,
) -> Self
pub fn new( package_name: impl Into<String>, version: impl Into<String>, author: impl Into<String>, ) -> Self
Creates a new ColorfulVersion with custom values
§Examples
use clap_version_flag::ColorfulVersion;
let version = ColorfulVersion::new("myapp", "1.0.0", "John Doe");
assert_eq!(version.package_name(), "myapp");Sourcepub fn with_hex_colors(
self,
name_fg: &str,
name_bg: &str,
version: &str,
author: &str,
) -> Result<Self, VersionError>
pub fn with_hex_colors( self, name_fg: &str, name_bg: &str, version: &str, author: &str, ) -> Result<Self, VersionError>
Sets custom hex colors for the version output
§Arguments
name_fg- Hex color for package name foreground (e.g., “#FFFFFF”)name_bg- Hex color for package name background (e.g., “#AA00FF”)version- Hex color for version text (e.g., “#FFFF00”)author- Hex color for author text (e.g., “#00FFFF”)
§Errors
Returns VersionError::InvalidHexColor if any hex color is invalid
§Examples
use clap_version_flag::ColorfulVersion;
let version = ColorfulVersion::new("myapp", "1.0.0", "John Doe")
.with_hex_colors("#FFFFFF", "#AA00FF", "#FFFF00", "#00FFFF")
.expect("Invalid hex colors");Sourcepub fn with_rgb_colors(
self,
name_fg: (u8, u8, u8),
name_bg: (u8, u8, u8),
version: (u8, u8, u8),
author: (u8, u8, u8),
) -> Self
pub fn with_rgb_colors( self, name_fg: (u8, u8, u8), name_bg: (u8, u8, u8), version: (u8, u8, u8), author: (u8, u8, u8), ) -> Self
Sets custom RGB colors for the version output
§Examples
use clap_version_flag::ColorfulVersion;
let version = ColorfulVersion::new("myapp", "1.0.0", "John Doe")
.with_rgb_colors((255, 0, 0), (0, 0, 255), (0, 255, 0), (255, 255, 0));Sourcepub fn print_and_exit(&self) -> !
pub fn print_and_exit(&self) -> !
Prints the colorful version to stdout and exits the process
§Examples
use clap_version_flag::colorful_version;
let version = colorful_version!();
version.print_and_exit(); // Prints and exits with code 0Sourcepub fn print(&self)
pub fn print(&self)
Prints the colorful version to stdout Format: “{package_name} v{version} by {author}”
§Examples
use clap_version_flag::ColorfulVersion;
let version = ColorfulVersion::new("myapp", "1.0.0", "John Doe");
version.print(); // Prints colored outputSourcepub fn as_plain_string(&self) -> String
pub fn as_plain_string(&self) -> String
Returns a plain text version string (for clap’s version flag) Format: “{package_name} v{version} by {author}”
§Examples
use clap_version_flag::ColorfulVersion;
let version = ColorfulVersion::new("myapp", "1.0.0", "John Doe");
assert_eq!(version.as_plain_string(), "myapp v1.0.0 by John Doe");Sourcepub fn to_colored_string(&self) -> String
pub fn to_colored_string(&self) -> String
Returns a colored version string if terminal supports colors Format: “{package_name} v{version} by {author}”
§Examples
use clap_version_flag::ColorfulVersion;
let version = ColorfulVersion::new("myapp", "1.0.0", "John Doe");
let colored = version.to_colored_string();
// colored string contains ANSI color codesSourcepub fn check_and_exit(&self, matches: &ArgMatches)
pub fn check_and_exit(&self, matches: &ArgMatches)
Checks if the version flag was used and handles it
This method should be called after parsing command-line arguments. If the version flag is found, it prints the colorful version and exits.
§Examples
use clap::Command;
use clap_version_flag::{ColorfulVersion, ColorfulVersionExt};
let version = ColorfulVersion::new("myapp", "1.0.0", "John Doe");
let matches = Command::new("myapp")
.with_colorful_version(&version)
.get_matches();
version.check_and_exit(&matches);Sourcepub fn package_name(&self) -> &str
pub fn package_name(&self) -> &str
Returns the package name
§Examples
use clap_version_flag::ColorfulVersion;
let version = ColorfulVersion::new("myapp", "1.0.0", "John Doe");
assert_eq!(version.package_name(), "myapp");Sourcepub fn version(&self) -> &str
pub fn version(&self) -> &str
Returns the version
§Examples
use clap_version_flag::ColorfulVersion;
let version = ColorfulVersion::new("myapp", "1.0.0", "John Doe");
assert_eq!(version.version(), "1.0.0");Returns the author
§Examples
use clap_version_flag::ColorfulVersion;
let version = ColorfulVersion::new("myapp", "1.0.0", "John Doe");
assert_eq!(version.author(), "John Doe");Trait Implementations§
Source§impl Clone for ColorfulVersion
impl Clone for ColorfulVersion
Source§fn clone(&self) -> ColorfulVersion
fn clone(&self) -> ColorfulVersion
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more