@@ -213,3 +213,83 @@ class StringStruct extends Struct {
213213 pragma [ nomagic]
214214 StringStruct ( ) { this .getCanonicalPath ( ) = "alloc::string::String" }
215215}
216+
217+ /**
218+ * The [`Deref` trait][1].
219+ *
220+ * [1]: https://doc.rust-lang.org/core/ops/trait.Deref.html
221+ */
222+ class DerefTrait extends Trait {
223+ pragma [ nomagic]
224+ DerefTrait ( ) { this .getCanonicalPath ( ) = "core::ops::deref::Deref" }
225+
226+ /** Gets the `deref` function. */
227+ Function getDerefFunction ( ) { result = this .( TraitItemNode ) .getAssocItem ( "deref" ) }
228+
229+ /** Gets the `Target` associated type. */
230+ pragma [ nomagic]
231+ TypeAlias getTargetType ( ) {
232+ result = this .getAssocItemList ( ) .getAnAssocItem ( ) and
233+ result .getName ( ) .getText ( ) = "Target"
234+ }
235+ }
236+
237+ /**
238+ * The [`Index` trait][1].
239+ *
240+ * [1]: https://doc.rust-lang.org/std/ops/trait.Index.html
241+ */
242+ class IndexTrait extends Trait {
243+ pragma [ nomagic]
244+ IndexTrait ( ) { this .getCanonicalPath ( ) = "core::ops::index::Index" }
245+
246+ /** Gets the `index` function. */
247+ Function getIndexFunction ( ) { result = this .( TraitItemNode ) .getAssocItem ( "index" ) }
248+
249+ /** Gets the `Output` associated type. */
250+ pragma [ nomagic]
251+ TypeAlias getOutputType ( ) {
252+ result = this .getAssocItemList ( ) .getAnAssocItem ( ) and
253+ result .getName ( ) .getText ( ) = "Output"
254+ }
255+ }
256+
257+ /**
258+ * The [`Box` struct][1].
259+ *
260+ * [1]: https://doc.rust-lang.org/std/boxed/struct.Box.html
261+ */
262+ class BoxStruct extends Struct {
263+ pragma [ nomagic]
264+ BoxStruct ( ) { this .getCanonicalPath ( ) = "alloc::boxed::Box" }
265+ }
266+
267+ /**
268+ * The [`Rc` struct][1].
269+ *
270+ * [1]: https://doc.rust-lang.org/std/rc/struct.Rc.html
271+ */
272+ class RcStruct extends Struct {
273+ pragma [ nomagic]
274+ RcStruct ( ) { this .getCanonicalPath ( ) = "alloc::rc::Rc" }
275+ }
276+
277+ /**
278+ * The [`Arc` struct][1].
279+ *
280+ * [1]: https://doc.rust-lang.org/std/sync/struct.Arc.html
281+ */
282+ class ArcStruct extends Struct {
283+ pragma [ nomagic]
284+ ArcStruct ( ) { this .getCanonicalPath ( ) = "alloc::sync::Arc" }
285+ }
286+
287+ /**
288+ * The [`Pin` struct][1].
289+ *
290+ * [1]: https://doc.rust-lang.org/std/pin/struct.Pin.html
291+ */
292+ class PinStruct extends Struct {
293+ pragma [ nomagic]
294+ PinStruct ( ) { this .getCanonicalPath ( ) = "core::pin::Pin" }
295+ }
0 commit comments