Skip to content

Commit

Permalink
refactor: simplify discord
Browse files Browse the repository at this point in the history
  • Loading branch information
xhyrom committed Aug 4, 2024
1 parent f1f1744 commit f9ff26d
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 22 deletions.
33 changes: 11 additions & 22 deletions lsp/src/discord.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ use discord_rich_presence::{
DiscordIpc, DiscordIpcClient,
};

use crate::util;

#[derive(Debug)]
pub struct Discord {
client: Mutex<DiscordIpcClient>,
Expand Down Expand Up @@ -77,29 +79,16 @@ impl Discord {
let mut client = self.get_client();
let timestamp: i64 = self.start_timestamp.as_millis() as i64;

let mut assets = Assets::new();

if let Some(large_image) = large_image.as_ref() {
assets = assets.large_image(large_image);
}

if let Some(large_text) = large_text.as_ref() {
assets = assets.large_text(large_text);
}
let assets = Assets::new();
let assets = util::set_optional_field(assets, large_image.as_deref(), Assets::large_image);
let assets = util::set_optional_field(assets, large_text.as_deref(), Assets::large_text);
let assets = util::set_optional_field(assets, small_image.as_deref(), Assets::small_image);
let assets = util::set_optional_field(assets, small_text.as_deref(), Assets::small_text);

if let Some(small_image) = small_image.as_ref() {
assets = assets.small_image(small_image);
}

if let Some(small_text) = small_text.as_ref() {
assets = assets.small_text(small_text);
}

let mut buttons: Vec<Button> = Vec::new();

if let Some(git_remote_url) = git_remote_url.as_ref() {
buttons.push(Button::new("View Repository", git_remote_url));
}
let buttons = git_remote_url
.as_ref()
.map(|url| vec![Button::new("View Repository", url)])
.unwrap_or_default();

client
.set_activity(
Expand Down
1 change: 1 addition & 0 deletions lsp/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ mod configuration;
mod discord;
mod git;
mod languages;
mod util;

#[derive(Debug)]
struct Document {
Expand Down
9 changes: 9 additions & 0 deletions lsp/src/util.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
pub fn set_optional_field<'a, T, F>(mut obj: T, field: Option<&'a str>, setter: F) -> T
where
F: FnOnce(T, &'a str) -> T,
{
if let Some(value) = field {
obj = setter(obj, value);
}
obj
}

0 comments on commit f9ff26d

Please sign in to comment.