mirror of
https://github.com/mat-1/azalea.git
synced 2024-09-19 14:42:32 +00:00
change to_ansi to not take args
This commit is contained in:
parent
a5aa8ea0c0
commit
e99a822995
7 changed files with 22 additions and 12 deletions
|
@ -60,6 +60,9 @@ impl Component {
|
||||||
/// [ANSI string](https://en.wikipedia.org/wiki/ANSI_escape_code), so you
|
/// [ANSI string](https://en.wikipedia.org/wiki/ANSI_escape_code), so you
|
||||||
/// can print it to your terminal and get styling.
|
/// 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
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
|
@ -71,12 +74,19 @@ impl Component {
|
||||||
/// "color": "red",
|
/// "color": "red",
|
||||||
/// })).unwrap();
|
/// })).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
|
// 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
|
// this contains the final string will all the ansi escape codes
|
||||||
let mut built_string = String::new();
|
let mut built_string = String::new();
|
||||||
// this style will update as we visit components
|
// this style will update as we visit components
|
||||||
|
|
|
@ -127,7 +127,7 @@ mod tests {
|
||||||
TextComponent::new("§aHypixel Network §c[1.8-1.18]\n§b§lHAPPY HOLIDAYS".to_string())
|
TextComponent::new("§aHypixel Network §c[1.8-1.18]\n§b§lHAPPY HOLIDAYS".to_string())
|
||||||
.get();
|
.get();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
component.to_ansi(None),
|
component.to_ansi(),
|
||||||
format!(
|
format!(
|
||||||
"{GREEN}Hypixel Network {RED}[1.8-1.18]\n{BOLD}{AQUA}HAPPY HOLIDAYS{RESET}",
|
"{GREEN}Hypixel Network {RED}[1.8-1.18]\n{BOLD}{AQUA}HAPPY HOLIDAYS{RESET}",
|
||||||
GREEN = Ansi::rgb(ChatFormatting::Green.color().unwrap()),
|
GREEN = Ansi::rgb(ChatFormatting::Green.color().unwrap()),
|
||||||
|
@ -143,7 +143,7 @@ mod tests {
|
||||||
fn test_legacy_color_code_to_component() {
|
fn test_legacy_color_code_to_component() {
|
||||||
let component = TextComponent::new("§lHello §r§1w§2o§3r§4l§5d".to_string()).get();
|
let component = TextComponent::new("§lHello §r§1w§2o§3r§4l§5d".to_string()).get();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
component.to_ansi(None),
|
component.to_ansi(),
|
||||||
format!(
|
format!(
|
||||||
"{BOLD}Hello {RESET}{DARK_BLUE}w{DARK_GREEN}o{DARK_AQUA}r{DARK_RED}l{DARK_PURPLE}d{RESET}",
|
"{BOLD}Hello {RESET}{DARK_BLUE}w{DARK_GREEN}o{DARK_AQUA}r{DARK_RED}l{DARK_PURPLE}d{RESET}",
|
||||||
BOLD = Ansi::BOLD,
|
BOLD = Ansi::BOLD,
|
||||||
|
|
|
@ -17,7 +17,7 @@ fn basic_ansi_test() {
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let component = Component::deserialize(&j).unwrap();
|
let component = Component::deserialize(&j).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
component.to_ansi(None),
|
component.to_ansi(),
|
||||||
"\u{1b}[1m\u{1b}[38;2;255;85;85mhello\u{1b}[m"
|
"\u{1b}[1m\u{1b}[38;2;255;85;85mhello\u{1b}[m"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ fn complex_ansi_test() {
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let component = Component::deserialize(&j).unwrap();
|
let component = Component::deserialize(&j).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
component.to_ansi(None),
|
component.to_ansi(),
|
||||||
format!(
|
format!(
|
||||||
"{bold}{italic}{underlined}{red}hello{reset}{bold}{italic}{red} {reset}{italic}{strikethrough}{abcdef}world{reset}{abcdef} asdf{bold}!{reset}",
|
"{bold}{italic}{underlined}{red}hello{reset}{bold}{italic}{red} {reset}{italic}{strikethrough}{abcdef}world{reset}{abcdef} asdf{bold}!{reset}",
|
||||||
bold = Ansi::BOLD,
|
bold = Ansi::BOLD,
|
||||||
|
@ -71,5 +71,5 @@ fn complex_ansi_test() {
|
||||||
fn component_from_string() {
|
fn component_from_string() {
|
||||||
let j: Value = serde_json::from_str("\"foo\"").unwrap();
|
let j: Value = serde_json::from_str("\"foo\"").unwrap();
|
||||||
let component = Component::deserialize(&j).unwrap();
|
let component = Component::deserialize(&j).unwrap();
|
||||||
assert_eq!(component.to_ansi(None), "foo");
|
assert_eq!(component.to_ansi(), "foo");
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ pub enum PingError {
|
||||||
/// #[tokio::main]
|
/// #[tokio::main]
|
||||||
/// async fn main() {
|
/// async fn main() {
|
||||||
/// let response = ping::ping_server("play.hypixel.net").await.unwrap();
|
/// 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(
|
pub async fn ping_server(
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
//! async fn handle(bot: Client, event: Event, state: State) -> anyhow::Result<()> {
|
//! async fn handle(bot: Client, event: Event, state: State) -> anyhow::Result<()> {
|
||||||
//! match event {
|
//! match event {
|
||||||
//! Event::Chat(m) => {
|
//! Event::Chat(m) => {
|
||||||
//! println!(m.message().to_ansi(None));
|
//! println!(m.message().to_ansi());
|
||||||
//! }
|
//! }
|
||||||
//! _ => {}
|
//! _ => {}
|
||||||
//! }
|
//! }
|
||||||
|
|
|
@ -197,7 +197,7 @@ pub enum SwarmStartError {
|
||||||
/// swarm.add(account, State::default()).await?;
|
/// swarm.add(account, State::default()).await?;
|
||||||
/// }
|
/// }
|
||||||
/// SwarmEvent::Chat(m) => {
|
/// SwarmEvent::Chat(m) => {
|
||||||
/// println!("{}", m.message().to_ansi(None));
|
/// println!("{}", m.message().to_ansi());
|
||||||
/// }
|
/// }
|
||||||
/// _ => {}
|
/// _ => {}
|
||||||
/// }
|
/// }
|
||||||
|
|
|
@ -136,7 +136,7 @@ async fn swarm_handle(
|
||||||
swarm.add(account, State::default()).await?;
|
swarm.add(account, State::default()).await?;
|
||||||
}
|
}
|
||||||
SwarmEvent::Chat(m) => {
|
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" {
|
if m.message().to_string() == "<py5> world" {
|
||||||
for (name, world) in &swarm.worlds.read().worlds {
|
for (name, world) in &swarm.worlds.read().worlds {
|
||||||
println!("world name: {}", name);
|
println!("world name: {}", name);
|
||||||
|
|
Loading…
Reference in a new issue