mirror of
https://github.com/szymon-jozef/libnotify-rs.git
synced 2026-10-27 19:20:43 +01:00
Compare commits
5 Commits
feat/clap
...
fix/compil
| Author | SHA1 | Date | |
|---|---|---|---|
| 043b6e93c8 | |||
| 0e2e97bf66 | |||
| 025ab6af68 | |||
| 034a302f3b | |||
|
|
987cd449c5 |
@@ -27,9 +27,11 @@ Available at [github pages](https://szymon-jozef.github.io/libnotify-rs/libnotif
|
||||
## Add to project
|
||||
Type in:
|
||||
```bash
|
||||
cargo add --git "https://github.com/szymon-jozef/libnotify-rs"
|
||||
cargo add --git "https://github.com/szymon-jozef/libnotify-rs" --tag <desired version>
|
||||
```
|
||||
|
||||
Tag argument is optional, but encouraged.
|
||||
|
||||
### Nix flake
|
||||
For nix users, there is also a flake inside. If you want to use it add this to your flake:
|
||||
|
||||
|
||||
@@ -47,7 +47,6 @@ pub enum HintValue {
|
||||
|
||||
/// Notification timeout, until close
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
#[cfg_attr(feature = "clap", derive(clap::ValueEnum))]
|
||||
pub enum Timeout {
|
||||
#[allow(missing_docs)]
|
||||
Default,
|
||||
|
||||
@@ -10,13 +10,16 @@
|
||||
//!
|
||||
//! # Features
|
||||
//!
|
||||
//! - clap – enables [clap] support for `Urgency` and `Timeout` enums
|
||||
//! - clap – enables [clap] support for `Urgency`
|
||||
//!
|
||||
#![allow(non_upper_case_globals)]
|
||||
#![allow(non_camel_case_types)]
|
||||
#![allow(non_snake_case)]
|
||||
#![warn(missing_docs)]
|
||||
|
||||
#[cfg(not(target_os = "linux"))]
|
||||
compile_error!("Libnotify-rs only supports linux");
|
||||
|
||||
/// Basic libnotify rust wrapper
|
||||
pub mod api;
|
||||
/// Higher level abstraction over api
|
||||
|
||||
@@ -34,42 +34,62 @@ impl<'a> NotificationBuilder<'a> {
|
||||
}
|
||||
|
||||
/// Sets app name for this specific notification.
|
||||
pub fn set_app_name(mut self, app_name: &str) -> Result<Self, LibnotifyError> {
|
||||
self.notification.set_app_name(app_name)?;
|
||||
pub fn set_app_name<T: Into<Option<&'a str>>>(
|
||||
mut self,
|
||||
app_name: T,
|
||||
) -> Result<Self, LibnotifyError> {
|
||||
if let Some(app_name) = app_name.into() {
|
||||
self.notification.set_app_name(app_name)?;
|
||||
}
|
||||
|
||||
Ok(self)
|
||||
}
|
||||
|
||||
/// Sets app icon fot this specific notification.
|
||||
pub fn set_app_icon(mut self, app_icon: &str) -> Result<Self, LibnotifyError> {
|
||||
self.notification.set_app_icon(app_icon)?;
|
||||
pub fn set_app_icon<T: Into<Option<&'a str>>>(
|
||||
mut self,
|
||||
app_icon: T,
|
||||
) -> Result<Self, LibnotifyError> {
|
||||
if let Some(app_icon) = app_icon.into() {
|
||||
self.notification.set_app_icon(app_icon)?;
|
||||
}
|
||||
|
||||
Ok(self)
|
||||
}
|
||||
|
||||
/// Sets category for this specific notification
|
||||
pub fn set_category(mut self, category: &str) -> Result<Self, LibnotifyError> {
|
||||
self.notification.set_category(category)?;
|
||||
pub fn set_category<T: Into<Option<&'a str>>>(
|
||||
mut self,
|
||||
category: T,
|
||||
) -> Result<Self, LibnotifyError> {
|
||||
if let Some(category) = category.into() {
|
||||
self.notification.set_category(category)?;
|
||||
}
|
||||
|
||||
Ok(self)
|
||||
}
|
||||
|
||||
/// Set hint for this specific notification
|
||||
pub fn set_hint(
|
||||
mut self,
|
||||
key: &str,
|
||||
value: HintValue,
|
||||
) -> Result<Self, Box<dyn std::error::Error>> {
|
||||
pub fn set_hint(mut self, key: &str, value: HintValue) -> Result<Self, LibnotifyError> {
|
||||
self.notification.set_hint(key, value)?;
|
||||
Ok(self)
|
||||
}
|
||||
|
||||
/// Set timeout until close
|
||||
pub fn set_timeout(mut self, timeout: Timeout) -> Self {
|
||||
self.notification.set_timeout(timeout);
|
||||
pub fn set_timeout<T: Into<Option<Timeout>>>(mut self, timeout: T) -> Self {
|
||||
if let Some(timeout) = timeout.into() {
|
||||
self.notification.set_timeout(timeout);
|
||||
}
|
||||
|
||||
self
|
||||
}
|
||||
|
||||
/// Set notification urgency level
|
||||
pub fn set_urgency(mut self, urgency: Urgency) -> Self {
|
||||
self.notification.set_urgency(urgency);
|
||||
pub fn set_urgency<T: Into<Option<Urgency>>>(mut self, urgency: T) -> Self {
|
||||
if let Some(urgency) = urgency.into() {
|
||||
self.notification.set_urgency(urgency);
|
||||
}
|
||||
|
||||
self
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user