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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
use super::*;
/// The IDBCursor class.
/// [`IDBCursor`](https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor)
#[derive(Clone, Debug, PartialEq, PartialOrd)]
#[repr(transparent)]
pub struct IDBCursor {
inner: Any,
}
impl FromVal for IDBCursor {
fn from_val(v: &Any) -> Self {
IDBCursor {
inner: Any::from_val(v),
}
}
fn take_ownership(v: AnyHandle) -> Self {
Self::from_val(&Any::take_ownership(v))
}
fn as_handle(&self) -> AnyHandle {
self.inner.as_handle()
}
}
impl core::ops::Deref for IDBCursor {
type Target = Any;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
impl core::ops::DerefMut for IDBCursor {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.inner
}
}
impl AsRef<Any> for IDBCursor {
fn as_ref(&self) -> &Any {
&self.inner
}
}
impl AsMut<Any> for IDBCursor {
fn as_mut(&mut self) -> &mut Any {
&mut self.inner
}
}
impl From<IDBCursor> for Any {
fn from(s: IDBCursor) -> Any {
let handle = s.inner.as_handle();
core::mem::forget(s);
Any::take_ownership(handle)
}
}
impl From<&IDBCursor> for Any {
fn from(s: &IDBCursor) -> Any {
s.inner.clone().into()
}
}
jsbind::utils::impl_dyn_cast!(IDBCursor);
impl IDBCursor {
/// Getter of the `source` attribute.
/// [`IDBCursor.source`](https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor/source)
pub fn source(&self) -> Any {
self.inner.get("source").as_::<Any>()
}
}
impl IDBCursor {
/// Getter of the `direction` attribute.
/// [`IDBCursor.direction`](https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor/direction)
pub fn direction(&self) -> IDBCursorDirection {
self.inner.get("direction").as_::<IDBCursorDirection>()
}
}
impl IDBCursor {
/// Getter of the `key` attribute.
/// [`IDBCursor.key`](https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor/key)
pub fn key(&self) -> Any {
self.inner.get("key").as_::<Any>()
}
}
impl IDBCursor {
/// Getter of the `primaryKey` attribute.
/// [`IDBCursor.primaryKey`](https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor/primaryKey)
pub fn primary_key(&self) -> Any {
self.inner.get("primaryKey").as_::<Any>()
}
}
impl IDBCursor {
/// Getter of the `request` attribute.
/// [`IDBCursor.request`](https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor/request)
pub fn request(&self) -> IDBRequest {
self.inner.get("request").as_::<IDBRequest>()
}
}
impl IDBCursor {
/// The advance method.
/// [`IDBCursor.advance`](https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor/advance)
pub fn advance(&self, count: u32) -> Undefined {
self.inner
.call("advance", &[count.into()])
.as_::<Undefined>()
}
}
impl IDBCursor {
/// The continue method.
/// [`IDBCursor.continue`](https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor/continue)
pub fn continue_(&self) -> Undefined {
self.inner.call("continue", &[]).as_::<Undefined>()
}
}
impl IDBCursor {
/// The continue method.
/// [`IDBCursor.continue`](https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor/continue)
pub fn continue_with_key(&self, key: &Any) -> Undefined {
self.inner
.call("continue", &[key.into()])
.as_::<Undefined>()
}
}
impl IDBCursor {
/// The continuePrimaryKey method.
/// [`IDBCursor.continuePrimaryKey`](https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor/continuePrimaryKey)
pub fn continue_primary_key(&self, key: &Any, primary_key: &Any) -> Undefined {
self.inner
.call("continuePrimaryKey", &[key.into(), primary_key.into()])
.as_::<Undefined>()
}
}
impl IDBCursor {
/// The update method.
/// [`IDBCursor.update`](https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor/update)
pub fn update(&self, value: &Any) -> IDBRequest {
self.inner
.call("update", &[value.into()])
.as_::<IDBRequest>()
}
}
impl IDBCursor {
/// The delete method.
/// [`IDBCursor.delete`](https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor/delete)
pub fn delete(&self) -> IDBRequest {
self.inner.call("delete", &[]).as_::<IDBRequest>()
}
}