1use crate::AsyncPoll;
7
8#[doc = crate::_tags!(error runtime)]
9#[doc = crate::_doc_meta!{
11 location("run/permission", enum PermissionError),
12 test_size_of(PermissionError = 1|8; niche Option),
13}]
14#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
15pub enum PermissionError {
16 Unsupported,
18
19 Failed,
21}
22crate::impl_trait![fmt::Display+Error for PermissionError |self, f| match *self {
23 Self::Unsupported => f.write_str(""),
24 Self::Failed => f.write_str(""),
25}];
26
27#[doc = crate::_tags!(runtime result)]
28#[doc = crate::_doc_meta!{
30 location("run/permission", type PermissionQuery),
31 test_size_of(PermissionQuery = 2|16; niche Option),
32}]
33pub type PermissionQuery<E = PermissionError> = AsyncPoll<Result<PermissionState, E>>;
37
38#[doc = crate::_tags!(runtime state)]
39#[doc = crate::_doc_meta!{
41 location("run/permission", enum PermissionState),
42 test_size_of(PermissionState = 1|8; niche Option),
43}]
44#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
45pub enum PermissionState {
46 Granted,
48
49 Prompt,
54
55 Denied,
57}
58crate::_impl_init![Self::Prompt => PermissionState];