change to_ansi to not take args

This commit is contained in:
mat 2022-12-04 20:58:14 -06:00
parent a5aa8ea0c0
commit e99a822995
7 changed files with 22 additions and 12 deletions

View file

@ -60,6 +60,9 @@ impl Component {
/// [ANSI string](https://en.wikipedia.org/wiki/ANSI_escape_code), so you
/// can print it to your terminal and get styling.
///
/// This is technically a shortcut for [`Component::to_ansi_custom_style`] with a
/// default [`Style`] colored white.
///
/// # Examples
///
/// ```rust
@ -71,12 +74,19 @@ impl Component {
/// "color": "red",
/// })).unwrap();
///
/// println!("{}", component.to_ansi(None));
/// println!("{}", component.to_ansi());
/// ```
pub fn to_ansi(&self, default_style: Option<&Style>) -> String {
pub fn to_ansi(&self) -> String {
// default the default_style to white if it's not set
let default_style: &Style = default_style.unwrap_or(&DEFAULT_STYLE);
self.to_ansi_custom_style(&DEFAULT_STYLE)
}
/// Convert this component into an
/// [ANSI string](https://en.wikipedia.org/wiki/ANSI_escape_code).
///
/// This is the same as [`Component::to_ansi`], but you can specify a
/// default [`Style`] to use.
pub fn to_ansi_custom_style(&self, default_style: &Style) -> String {
// this contains the final string will all the ansi escape codes
let mut built_string = String::new();
// this style will update as we visit components

View file

@ -127,7 +127,7 @@ mod tests {
TextComponent::new("§aHypixel Network §c[1.8-1.18]\n§b§lHAPPY HOLIDAYS".to_string())
.get();
assert_eq!(
component.to_ansi(None),
component.to_ansi(),
format!(
"{GREEN}Hypixel Network {RED}[1.8-1.18]\n{BOLD}{AQUA}HAPPY HOLIDAYS{RESET}",
GREEN = Ansi::rgb(ChatFormatting::Green.color().unwrap()),
@ -143,7 +143,7 @@ mod tests {
fn test_legacy_color_code_to_component() {
let component = TextComponent::new("§lHello §r§1w§2o§3r§4l§5d".to_string()).get();
assert_eq!(
component.to_ansi(None),
component.to_ansi(),
format!(
"{BOLD}Hello {RESET}{DARK_BLUE}w{DARK_GREEN}o{DARK_AQUA}r{DARK_RED}l{DARK_PURPLE}d{RESET}",
BOLD = Ansi::BOLD,

View file

@ -17,7 +17,7 @@ fn basic_ansi_test() {
.unwrap();
let component = Component::deserialize(&j).unwrap();
assert_eq!(
component.to_ansi(None),
component.to_ansi(),
"\u{1b}[1m\u{1b}[38;2;255;85;85mhello\u{1b}[m"
);
}
@ -53,7 +53,7 @@ fn complex_ansi_test() {
.unwrap();
let component = Component::deserialize(&j).unwrap();
assert_eq!(
component.to_ansi(None),
component.to_ansi(),
format!(
"{bold}{italic}{underlined}{red}hello{reset}{bold}{italic}{red} {reset}{italic}{strikethrough}{abcdef}world{reset}{abcdef} asdf{bold}!{reset}",
bold = Ansi::BOLD,
@ -71,5 +71,5 @@ fn complex_ansi_test() {
fn component_from_string() {
let j: Value = serde_json::from_str("\"foo\"").unwrap();
let component = Component::deserialize(&j).unwrap();
assert_eq!(component.to_ansi(None), "foo");
assert_eq!(component.to_ansi(), "foo");
}

View file

@ -40,7 +40,7 @@ pub enum PingError {
/// #[tokio::main]
/// async fn main() {
/// let response = ping::ping_server("play.hypixel.net").await.unwrap();
/// println!("{}", response.description.to_ansi(None));
/// println!("{}", response.description.to_ansi());
/// }
/// ```
pub async fn ping_server(

View file

@ -64,7 +64,7 @@
//! async fn handle(bot: Client, event: Event, state: State) -> anyhow::Result<()> {
//! match event {
//! Event::Chat(m) => {
//! println!(m.message().to_ansi(None));
//! println!(m.message().to_ansi());
//! }
//! _ => {}
//! }

View file

@ -197,7 +197,7 @@ pub enum SwarmStartError {
/// swarm.add(account, State::default()).await?;
/// }
/// SwarmEvent::Chat(m) => {
/// println!("{}", m.message().to_ansi(None));
/// println!("{}", m.message().to_ansi());
/// }
/// _ => {}
/// }

View file

@ -136,7 +136,7 @@ async fn swarm_handle(
swarm.add(account, State::default()).await?;
}
SwarmEvent::Chat(m) => {
println!("swarm chat message: {}", m.message().to_ansi(None));
println!("swarm chat message: {}", m.message().to_ansi());
if m.message().to_string() == "<py5> world" {
for (name, world) in &swarm.worlds.read().worlds {
println!("world name: {}", name);