I'm trying to setup tracing and I have this code but it compiles with errors:
use tracing_subscriber; pub fn init(is_pretty: bool) { let subscriber = tracing_subscriber::fmt(); if is_pretty { &subscriber.pretty(); } subscriber.init(); } error[E0382]: use of moved value: `subscriber` --> src\main.rs:8:5 | 4 | let subscriber = tracing_subscriber::fmt(); | ---------- move occurs because `subscriber` has type `SubscriberBuilder`, which does not implement the `Copy` trait 5 | if is_pretty { 6 | &subscriber.pretty(); | -------- `subscriber` moved due to this method call 7 | } 8 | subscriber.init(); | ^^^^^^^^^^ value used here after move I tried this too but I get different compiler errors:
use tracing_subscriber; pub fn init(is_pretty: bool) { let mut subscriber = tracing_subscriber::fmt(); if is_pretty { subscriber = subscriber.pretty(); } subscriber.init(); } error[E0308]: mismatched types --> src\main.rs:6:22 | 4 | let mut subscriber = tracing_subscriber::fmt(); | ------------------------- expected due to this value 5 | if is_pretty { 6 | subscriber = subscriber.pretty(); | ^^^^^^^^^^^^^^^^^^^ expected struct `DefaultFields`, found struct `Pretty` | = note: expected struct `SubscriberBuilder<DefaultFields, Format<tracing_subscriber::fmt::format::Full>>` found struct `SubscriberBuilder<Pretty, Format<Pretty>>` How can I fix this?