Skip to content

Commit 1c30566

Browse files
committed
glib: Simplify g_log_inner and g_print_inner
Avoids bringing the fmt::Write trait into scope.
1 parent e3fd186 commit 1c30566

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
@@ -461,23 +461,20 @@ pub fn log_set_writer_func<
461461
#[doc(hidden)]
462462
macro_rules! g_log_inner {
463463
($log_domain:expr, $log_level:expr, $format:literal $(,$arg:expr)* $(,)?) => {{
464-
use $crate::translate::{IntoGlib, ToGlibPtr};
465-
use $crate::LogLevel;
466-
use std::fmt::{self, Write};
467-
468-
fn check_log_args(_log_level: LogLevel, _format: &str) {}
469-
470-
check_log_args($log_level, $format);
471464
let mut w = $crate::GStringBuilder::default();
472465

473466
// Can't really happen but better safe than sorry
474-
if !std::write!(&mut w, $format, $($arg),*).is_err() {
467+
if !std::fmt::Write::write_fmt(&mut w, std::format_args!($format, $($arg),*)).is_err() {
475468
unsafe {
476469
$crate::ffi::g_log(
477-
$log_domain,
478-
$log_level.into_glib(),
470+
$crate::translate::ToGlibPtr::to_glib_none(&$log_domain).0,
471+
<$crate::LogLevel as $crate::translate::IntoGlib>::into_glib(
472+
$log_level
473+
),
479474
b"%s\0".as_ptr() as *const _,
480-
ToGlibPtr::<*const std::os::raw::c_char>::to_glib_none(&w.into_string()).0,
475+
$crate::translate::ToGlibPtr::<*const std::os::raw::c_char>::to_glib_none(
476+
&w.into_string()
477+
).0,
481478
);
482479
}
483480
}
@@ -527,13 +524,11 @@ macro_rules! g_log_inner {
527524
#[macro_export]
528525
macro_rules! g_log {
529526
($log_level:expr, $format:literal $(,$arg:expr)* $(,)?) => {{
530-
$crate::g_log_inner!(std::ptr::null(), $log_level, $format, $($arg),*);
527+
$crate::g_log_inner!(None::<&str>, $log_level, $format, $($arg),*);
531528
}};
532529
($log_domain:expr, $log_level:expr, $format:literal $(,$arg:expr)* $(,)?) => {{
533-
use $crate::translate::{IntoGlib, ToGlibPtr};
534-
535-
let log_domain: Option<&str> = $log_domain.into();
536-
$crate::g_log_inner!(log_domain.to_glib_none().0, $log_level, $format, $($arg),*);
530+
let log_domain = <Option<&str> as std::convert::From<_>>::from($log_domain);
531+
$crate::g_log_inner!(log_domain, $log_level, $format, $($arg),*);
537532
}};
538533
}
539534

@@ -763,21 +758,16 @@ macro_rules! g_debug {
763758
#[macro_export]
764759
macro_rules! g_print_inner {
765760
($func:ident, $format:expr $(, $arg:expr)* $(,)?) => {{
766-
use $crate::translate::{IntoGlib, ToGlibPtr};
767-
use $crate::LogLevel;
768-
use std::fmt::{self, Write};
769-
770-
fn check_arg(_format: &str) {}
771-
772-
check_arg($format);
773761
let mut w = $crate::GStringBuilder::default();
774762

775763
// Can't really happen but better safe than sorry
776-
if !std::write!(&mut w, $format, $($arg),*).is_err() {
764+
if !std::fmt::Write::write_fmt(&mut w, std::format_args!($format, $($arg),*)).is_err() {
777765
unsafe {
778766
$crate::ffi::$func(
779767
b"%s\0".as_ptr() as *const _,
780-
ToGlibPtr::<*const std::os::raw::c_char>::to_glib_none(&w.into_string()).0,
768+
$crate::translate::ToGlibPtr::<*const std::os::raw::c_char>::to_glib_none(
769+
&w.into_string()
770+
).0,
781771
);
782772
}
783773
}

0 commit comments

Comments
 (0)