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}