wasmcloud_actor_logging/
generated.rs

1extern 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/// Creates a named host binding
25#[cfg(feature = "guest")]
26pub fn host(binding: &str) -> Host {
27    set_binding(binding);
28    Host {}
29}
30
31/// Creates the default host binding
32#[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
71/// The standard function for serializing codec structs into a format that can be
72/// used for message exchange between actor and host. Use of any other function to
73/// serialize could result in breaking incompatibilities.
74pub 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
85/// The standard function for de-serializing codec structs from a format suitable
86/// for message exchange between actor and host. Use of any other function to
87/// deserialize could result in breaking incompatibilities.
88pub 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}