wasmcloud_actor_logging/
generated.rs1extern crate rmp_serde as rmps;
2use rmps::{Deserializer, Serializer};
3use serde::{Deserialize, Serialize};
4use std::io::Cursor;
5
6#[cfg(feature = "guest")]
7extern crate wapc_guest as guest;
8#[cfg(feature = "guest")]
9use crate::{set_binding, CURRENT_BINDING};
10#[cfg(feature = "guest")]
11use guest::prelude::*;
12
13#[cfg(feature = "guest")]
14pub struct Host {}
15
16#[cfg(feature = "guest")]
17impl Default for Host {
18 fn default() -> Self {
19 set_binding("default");
20 Host {}
21 }
22}
23
24#[cfg(feature = "guest")]
26pub fn host(binding: &str) -> Host {
27 set_binding(binding);
28 Host {}
29}
30
31#[cfg(feature = "guest")]
33pub fn default() -> Host {
34 Host::default()
35}
36
37#[cfg(feature = "guest")]
38impl Host {
39 pub(crate) fn _write_log(
40 &self,
41 target: String,
42 level: String,
43 text: String,
44 ) -> HandlerResult<()> {
45 let input_args = WriteLogArgs {
46 target,
47 level,
48 text,
49 };
50 host_call(
51 &CURRENT_BINDING.read().unwrap(),
52 "wasmcloud:logging",
53 "WriteLog",
54 &serialize(input_args)?,
55 )
56 .map(|_vec| ())
57 .map_err(|e| e.into())
58 }
59}
60
61#[derive(Debug, PartialEq, Deserialize, Serialize, Default, Clone)]
62pub struct WriteLogArgs {
63 #[serde(rename = "target")]
64 pub target: String,
65 #[serde(rename = "level")]
66 pub level: String,
67 #[serde(rename = "text")]
68 pub text: String,
69}
70
71pub fn serialize<T>(
75 item: T,
76) -> ::std::result::Result<Vec<u8>, Box<dyn std::error::Error + Send + Sync>>
77where
78 T: Serialize,
79{
80 let mut buf = Vec::new();
81 item.serialize(&mut Serializer::new(&mut buf).with_struct_map())?;
82 Ok(buf)
83}
84
85pub fn deserialize<'de, T: Deserialize<'de>>(
89 buf: &[u8],
90) -> ::std::result::Result<T, Box<dyn std::error::Error + Send + Sync>> {
91 let mut de = Deserializer::new(Cursor::new(buf));
92 match Deserialize::deserialize(&mut de) {
93 Ok(t) => Ok(t),
94 Err(e) => Err(format!("Failed to de-serialize: {}", e).into()),
95 }
96}