Skip to content

Commit 9cb7856

Browse files
committed
glib: Simplify g_log_inner and g_print_inner
Avoids bringing the fmt::Write trait into scope.
1 parent 5354de8 commit 9cb7856

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

475468
// Can't really happen but better safe than sorry
476-
if !std::write!(&mut w, $format, $($arg),*).is_err() {
469+
if !std::fmt::Write::write_fmt(&mut w, std::format_args!($format, $($arg),*)).is_err() {
477470
unsafe {
478471
$crate::ffi::g_log(
479-
$log_domain,
480-
$log_level.into_glib(),
472+
$crate::translate::ToGlibPtr::to_glib_none(&$log_domain).0,
473+
<$crate::LogLevel as $crate::translate::IntoGlib>::into_glib(
474+
$log_level
475+
),
481476
b"%s\0".as_ptr() as *const _,
482-
ToGlibPtr::<*const std::os::raw::c_char>::to_glib_none(&w.into_string()).0,
477+
$crate::translate::ToGlibPtr::<*const std::os::raw::c_char>::to_glib_none(
478+
&w.into_string()
479+
).0,
483480
);
484481
}
485482
}
@@ -529,13 +526,11 @@ macro_rules! g_log_inner {
529526
#[macro_export]
530527
macro_rules! g_log {
531528
($log_level:expr, $format:literal $(,$arg:expr)* $(,)?) => {{
532-
$crate::g_log_inner!(std::ptr::null(), $log_level, $format, $($arg),*);
529+
$crate::g_log_inner!(None::<&str>, $log_level, $format, $($arg),*);
533530
}};
534531
($log_domain:expr, $log_level:expr, $format:literal $(,$arg:expr)* $(,)?) => {{
535-
use $crate::translate::{IntoGlib, ToGlibPtr};
536-
537-
let log_domain: Option<&str> = $log_domain.into();
538-
$crate::g_log_inner!(log_domain.to_glib_none().0, $log_level, $format, $($arg),*);
532+
let log_domain = <Option<&str> as std::convert::From<_>>::from($log_domain);
533+
$crate::g_log_inner!(log_domain, $log_level, $format, $($arg),*);
539534
}};
540535
}
541536

@@ -765,21 +760,16 @@ macro_rules! g_debug {
765760
#[macro_export]
766761
macro_rules! g_print_inner {
767762
($func:ident, $format:expr $(, $arg:expr)* $(,)?) => {{
768-
use $crate::translate::{IntoGlib, ToGlibPtr};
769-
use $crate::LogLevel;
770-
use std::fmt::{self, Write};
771-
772-
fn check_arg(_format: &str) {}
773-
774-
check_arg($format);
775763
let mut w = $crate::GStringBuilder::default();
776764

777765
// Can't really happen but better safe than sorry
778-
if !std::write!(&mut w, $format, $($arg),*).is_err() {
766+
if !std::fmt::Write::write_fmt(&mut w, std::format_args!($format, $($arg),*)).is_err() {
779767
unsafe {
780768
$crate::ffi::$func(
781769
b"%s\0".as_ptr() as *const _,
782-
ToGlibPtr::<*const std::os::raw::c_char>::to_glib_none(&w.into_string()).0,
770+
$crate::translate::ToGlibPtr::<*const std::os::raw::c_char>::to_glib_none(
771+
&w.into_string()
772+
).0,
783773
);
784774
}
785775
}

0 commit comments

Comments
 (0)