1
1
use std:: iter:: { Extend , FromIterator } ;
2
2
use std:: marker:: PhantomData ;
3
3
4
- use crate :: core_types:: GodotString ;
5
4
use crate :: private:: get_api;
6
5
use crate :: sys;
7
6
8
- use crate :: core_types:: OwnedToVariant ;
9
- use crate :: core_types:: ToVariant ;
10
- use crate :: core_types:: ToVariantEq ;
11
- use crate :: core_types:: Variant ;
12
- use crate :: core_types:: VariantArray ;
7
+ use crate :: core_types:: { GodotString , OwnedToVariant , ToVariantEq , Variant , VariantArray } ;
13
8
use crate :: object:: NewRef ;
14
9
use std:: fmt;
15
10
@@ -56,9 +51,9 @@ impl<Access: ThreadAccess> Dictionary<Access> {
56
51
#[ inline]
57
52
pub fn contains < K > ( & self , key : K ) -> bool
58
53
where
59
- K : ToVariant + ToVariantEq ,
54
+ K : OwnedToVariant + ToVariantEq ,
60
55
{
61
- unsafe { ( get_api ( ) . godot_dictionary_has ) ( self . sys ( ) , key. to_variant ( ) . sys ( ) ) }
56
+ unsafe { ( get_api ( ) . godot_dictionary_has ) ( self . sys ( ) , key. owned_to_variant ( ) . sys ( ) ) }
62
57
}
63
58
64
59
/// Returns true if the `Dictionary` has all of the keys in the given array.
@@ -71,9 +66,9 @@ impl<Access: ThreadAccess> Dictionary<Access> {
71
66
#[ inline]
72
67
pub fn get < K > ( & self , key : K ) -> Option < Variant >
73
68
where
74
- K : ToVariant + ToVariantEq ,
69
+ K : OwnedToVariant + ToVariantEq ,
75
70
{
76
- let key = key. to_variant ( ) ;
71
+ let key = key. owned_to_variant ( ) ;
77
72
if self . contains ( & key) {
78
73
// This should never return the default Nil, but there isn't a safe way to otherwise check
79
74
// if the entry exists in a single API call.
@@ -87,14 +82,14 @@ impl<Access: ThreadAccess> Dictionary<Access> {
87
82
#[ inline]
88
83
pub fn get_or < K , D > ( & self , key : K , default : D ) -> Variant
89
84
where
90
- K : ToVariant + ToVariantEq ,
91
- D : ToVariant ,
85
+ K : OwnedToVariant + ToVariantEq ,
86
+ D : OwnedToVariant ,
92
87
{
93
88
unsafe {
94
89
Variant ( ( get_api ( ) . godot_dictionary_get_with_default ) (
95
90
self . sys ( ) ,
96
- key. to_variant ( ) . sys ( ) ,
97
- default. to_variant ( ) . sys ( ) ,
91
+ key. owned_to_variant ( ) . sys ( ) ,
92
+ default. owned_to_variant ( ) . sys ( ) ,
98
93
) )
99
94
}
100
95
}
@@ -104,7 +99,7 @@ impl<Access: ThreadAccess> Dictionary<Access> {
104
99
#[ inline]
105
100
pub fn get_or_nil < K > ( & self , key : K ) -> Variant
106
101
where
107
- K : ToVariant + ToVariantEq ,
102
+ K : OwnedToVariant + ToVariantEq ,
108
103
{
109
104
self . get_or ( key, Variant :: new ( ) )
110
105
}
@@ -117,10 +112,10 @@ impl<Access: ThreadAccess> Dictionary<Access> {
117
112
#[ inline]
118
113
pub fn update < K , V > ( & self , key : K , val : V )
119
114
where
120
- K : ToVariant + ToVariantEq ,
115
+ K : OwnedToVariant + ToVariantEq ,
121
116
V : OwnedToVariant ,
122
117
{
123
- let key = key. to_variant ( ) ;
118
+ let key = key. owned_to_variant ( ) ;
124
119
assert ! ( self . contains( & key) , "Can only update entries that exist" ) ;
125
120
126
121
unsafe {
@@ -145,11 +140,11 @@ impl<Access: ThreadAccess> Dictionary<Access> {
145
140
#[ inline]
146
141
pub unsafe fn get_ref < K > ( & self , key : K ) -> & Variant
147
142
where
148
- K : ToVariant + ToVariantEq ,
143
+ K : OwnedToVariant + ToVariantEq ,
149
144
{
150
145
Variant :: cast_ref ( ( get_api ( ) . godot_dictionary_operator_index_const ) (
151
146
self . sys ( ) ,
152
- key. to_variant ( ) . sys ( ) ,
147
+ key. owned_to_variant ( ) . sys ( ) ,
153
148
) )
154
149
}
155
150
@@ -167,11 +162,11 @@ impl<Access: ThreadAccess> Dictionary<Access> {
167
162
#[ allow( clippy:: mut_from_ref) ]
168
163
pub unsafe fn get_mut_ref < K > ( & self , key : K ) -> & mut Variant
169
164
where
170
- K : ToVariant + ToVariantEq ,
165
+ K : OwnedToVariant + ToVariantEq ,
171
166
{
172
167
Variant :: cast_mut_ref ( ( get_api ( ) . godot_dictionary_operator_index ) (
173
168
self . sys_mut ( ) ,
174
- key. to_variant ( ) . sys ( ) ,
169
+ key. owned_to_variant ( ) . sys ( ) ,
175
170
) )
176
171
}
177
172
@@ -308,9 +303,9 @@ impl<Access: LocalThreadAccess> Dictionary<Access> {
308
303
#[ inline]
309
304
pub fn erase < K > ( & self , key : K )
310
305
where
311
- K : ToVariant + ToVariantEq ,
306
+ K : OwnedToVariant + ToVariantEq ,
312
307
{
313
- unsafe { ( get_api ( ) . godot_dictionary_erase ) ( self . sys_mut ( ) , key. to_variant ( ) . sys ( ) ) }
308
+ unsafe { ( get_api ( ) . godot_dictionary_erase ) ( self . sys_mut ( ) , key. owned_to_variant ( ) . sys ( ) ) }
314
309
}
315
310
316
311
/// Clears the `Dictionary`, removing all key-value pairs.
0 commit comments