crux_platform/
command.rs

1use std::{future::Future, marker::PhantomData};
2
3use crux_core::{command::RequestBuilder, Command, Request};
4
5use crate::{PlatformRequest, PlatformResponse};
6
7pub struct Platform<Effect, Event> {
8    effect: PhantomData<Effect>,
9    event: PhantomData<Event>,
10}
11
12impl<Effect, Event> Platform<Effect, Event>
13where
14    Effect: From<Request<PlatformRequest>> + Send + 'static,
15    Event: Send + 'static,
16{
17    pub fn get() -> RequestBuilder<Effect, Event, impl Future<Output = PlatformResponse>> {
18        Command::request_from_shell(PlatformRequest)
19    }
20}