pub enum Effect {
HttpGet {
id: u32,
url: String,
headers: Vec<(String, String)>,
},
HttpPost {
id: u32,
url: String,
body: String,
content_type: Option<String>,
headers: Vec<(String, String)>,
},
Sleep {
id: u32,
duration_ms: u64,
},
}Expand description
Effect request from plugin to host
Plugins cannot perform I/O directly (sandboxed), so they request the host to perform operations on their behalf.
§Example Flow
Plugin: execute(args) -> Effect::HttpGet { id: 1, url: "..." }
Host: performs HTTP GET asynchronously
Host: plugin_resume(1, EffectResult::Http { ... })
Plugin: resume(1, result) -> Success("done")Variants§
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Effect
impl<'de> Deserialize<'de> for Effect
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Effect, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Effect, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for Effect
impl Serialize for Effect
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for Effect
impl RefUnwindSafe for Effect
impl Send for Effect
impl Sync for Effect
impl Unpin for Effect
impl UnwindSafe for Effect
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more