darkfi_sdk/log.rs
1/* This file is part of DarkFi (https://dark.fi)
2 *
3 * Copyright (C) 2020-2025 Dyne.org foundation
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Affero General Public License as
7 * published by the Free Software Foundation, either version 3 of the
8 * License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Affero General Public License for more details.
14 *
15 * You should have received a copy of the GNU Affero General Public License
16 * along with this program. If not, see <https://www.gnu.org/licenses/>.
17 */
18
19/// Print a message to the log
20#[macro_export]
21macro_rules! msg {
22 ($msg:expr) => {
23 $crate::log::drk_log($msg)
24 };
25 ($($arg:tt)*) => ($crate::log::drk_log(&format!($($arg)*)));
26}
27
28#[inline]
29pub fn drk_log(message: &str) {
30 #[cfg(target_arch = "wasm32")]
31 unsafe {
32 drk_log_(message.as_ptr(), message.len());
33 }
34
35 #[cfg(not(target_arch = "wasm32"))]
36 println!("{}", message);
37}
38
39#[cfg(target_arch = "wasm32")]
40extern "C" {
41 fn drk_log_(ptr: *const u8, len: usize);
42}