Skip to content

Commit 1275cb3

Browse files
committed
glib: Simplify g_log_inner and g_print_inner
Avoids bringing the fmt::Write trait into scope.
1 parent 41f442d commit 1275cb3

File tree

1 file changed

+15
-25
lines changed

1 file changed

+15
-25
lines changed

glib/src/log.rs

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -447,23 +447,20 @@ pub fn log_set_writer_func<
447447
#[doc(hidden)]
448448
macro_rules! g_log_inner {
449449
($log_domain:expr, $log_level:expr, $format:literal $(,$arg:expr)* $(,)?) => {{
450-
use $crate::translate::{IntoGlib, ToGlibPtr};
451-
use $crate::LogLevel;
452-
use std::fmt::{self, Write};
453-
454-
fn check_log_args(_log_level: LogLevel, _format: &str) {}
455-
456-
check_log_args($log_level, $format);
457450
let mut w = $crate::GStringBuilder::default();
458451

459452
// Can't really happen but better safe than sorry
460-
if !std::write!(&mut w, $format, $($arg),*).is_err() {
453+
if !std::fmt::Write::write_fmt(&mut w, std::format_args!($format, $($arg),*)).is_err() {
461454
unsafe {
462455
$crate::ffi::g_log(
463-
$log_domain,
464-
$log_level.into_glib(),
456+
$crate::translate::ToGlibPtr::to_glib_none(&$log_domain).0,
457+
<$crate::LogLevel as $crate::translate::IntoGlib>::into_glib(
458+
$log_level
459+
),
465460
b"%s\0".as_ptr() as *const _,
466-
ToGlibPtr::<*const std::os::raw::c_char>::to_glib_none(&w.into_string()).0,
461+
$crate::translate::ToGlibPtr::<*const std::os::raw::c_char>::to_glib_none(
462+
&w.into_string()
463+
).0,
467464
);
468465
}
469466
}
@@ -513,13 +510,11 @@ macro_rules! g_log_inner {
513510
#[macro_export]
514511
macro_rules! g_log {
515512
($log_level:expr, $format:literal $(,$arg:expr)* $(,)?) => {{
516-
$crate::g_log_inner!(std::ptr::null(), $log_level, $format, $($arg),*);
513+
$crate::g_log_inner!(None::<&str>, $log_level, $format, $($arg),*);
517514
}};
518515
($log_domain:expr, $log_level:expr, $format:literal $(,$arg:expr)* $(,)?) => {{
519-
use $crate::translate::{IntoGlib, ToGlibPtr};
520-
521-
let log_domain: Option<&str> = $log_domain.into();
522-
$crate::g_log_inner!(log_domain.to_glib_none().0, $log_level, $format, $($arg),*);
516+
let log_domain = <Option<&str> as std::convert::From<_>>::from($log_domain);
517+
$crate::g_log_inner!(log_domain, $log_level, $format, $($arg),*);
523518
}};
524519
}
525520

@@ -749,21 +744,16 @@ macro_rules! g_debug {
749744
#[macro_export]
750745
macro_rules! g_print_inner {
751746
($func:ident, $format:expr $(, $arg:expr)* $(,)?) => {{
752-
use $crate::translate::{IntoGlib, ToGlibPtr};
753-
use $crate::LogLevel;
754-
use std::fmt::{self, Write};
755-
756-
fn check_arg(_format: &str) {}
757-
758-
check_arg($format);
759747
let mut w = $crate::GStringBuilder::default();
760748

761749
// Can't really happen but better safe than sorry
762-
if !std::write!(&mut w, $format, $($arg),*).is_err() {
750+
if !std::fmt::Write::write_fmt(&mut w, std::format_args!($format, $($arg),*)).is_err() {
763751
unsafe {
764752
$crate::ffi::$func(
765753
b"%s\0".as_ptr() as *const _,
766-
ToGlibPtr::<*const std::os::raw::c_char>::to_glib_none(&w.into_string()).0,
754+
$crate::translate::ToGlibPtr::<*const std::os::raw::c_char>::to_glib_none(
755+
&w.into_string()
756+
).0,
767757
);
768758
}
769759
}

0 commit comments

Comments
 (0)