1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use crate::{
io::{
apc::AsyncProcedureCall,
scheduler::Scheduler,
source_client::{HttpClient, SourceClient},
},
window::MapWindowConfig,
};
pub trait Environment: 'static {
type MapWindowConfig: MapWindowConfig;
type AsyncProcedureCall: AsyncProcedureCall<Self::OffscreenKernelEnvironment>;
type Scheduler: Scheduler;
type HttpClient: HttpClient;
type OffscreenKernelEnvironment: OffscreenKernelEnvironment;
}
pub trait OffscreenKernelEnvironment: Send + Sync + 'static {
type HttpClient: HttpClient;
fn create() -> Self;
fn source_client(&self) -> SourceClient<Self::HttpClient>;
}