2020
2121use std:: time:: { Duration , SystemTime } ;
2222
23+ use eyre:: OptionExt ;
2324use serde:: Deserialize ;
2425
2526use astarte_device_sdk:: {
@@ -28,8 +29,7 @@ use astarte_device_sdk::{
2829} ;
2930use tokio:: task:: JoinSet ;
3031use tracing:: error;
31-
32- type DynError = Box < dyn std:: error:: Error + Send + Sync + ' static > ;
32+ use tracing_subscriber:: { layer:: SubscriberExt , util:: SubscriberInitExt } ;
3333
3434#[ derive( Deserialize ) ]
3535struct Config {
@@ -40,14 +40,17 @@ struct Config {
4040}
4141
4242#[ tokio:: main]
43- async fn main ( ) -> Result < ( ) , DynError > {
44- env_logger:: init ( ) ;
43+ async fn main ( ) -> eyre:: Result < ( ) > {
44+ color_eyre:: install ( ) ?;
45+ tracing_subscriber:: registry ( )
46+ . with ( tracing_subscriber:: fmt:: layer ( ) )
47+ . try_init ( ) ?;
48+
4549 let now = SystemTime :: now ( ) ;
4650
4751 // Load configuration
48- let file =
49- std:: fs:: read_to_string ( "./examples/individual_datastream/configuration.json" ) . unwrap ( ) ;
50- let cfg: Config = serde_json:: from_str ( & file) . unwrap ( ) ;
52+ let file = std:: fs:: read_to_string ( "./examples/individual_datastream/configuration.json" ) ?;
53+ let cfg: Config = serde_json:: from_str ( & file) ?;
5154
5255 let mut mqtt_config = MqttConfig :: with_credential_secret (
5356 & cfg. realm ,
@@ -67,7 +70,7 @@ async fn main() -> Result<(), DynError> {
6770 let client_cl = client. clone ( ) ;
6871 println ! ( "Connection to Astarte established." ) ;
6972
70- let mut tasks = JoinSet :: < Result < ( ) , DynError > > :: new ( ) ;
73+ let mut tasks = JoinSet :: < eyre :: Result < ( ) > > :: new ( ) ;
7174
7275 // Create a task to transmit
7376 tasks. spawn ( async move {
@@ -113,7 +116,7 @@ async fn main() -> Result<(), DynError> {
113116 let led_id = iter
114117 . next ( )
115118 . and_then ( |id| id. parse :: < u16 > ( ) . ok ( ) )
116- . ok_or ( "Incorrect error received." ) ?;
119+ . ok_or_eyre ( "Incorrect error received." ) ?;
117120
118121 match iter. next ( ) {
119122 Some ( "enable" ) => {
@@ -124,7 +127,7 @@ async fn main() -> Result<(), DynError> {
124127 ) ;
125128 }
126129 Some ( "intensity" ) => {
127- let value: f64 = var. try_into ( ) . unwrap ( ) ;
130+ let value: f64 = var. try_into ( ) ? ;
128131 println ! (
129132 "Received new intensity datastream for LED number {}. LED intensity is now {}" ,
130133 led_id, value
0 commit comments