cxx_build/syntax/
query.rs1use crate::syntax::{Array, NamedType, Ptr, Ref, Type};
2
3#[derive(#[automatically_derived]
impl<'a> ::core::marker::Copy for TypeQuery<'a> { }Copy, #[automatically_derived]
impl<'a> ::core::clone::Clone for TypeQuery<'a> {
#[inline]
fn clone(&self) -> TypeQuery<'a> {
let _: ::core::clone::AssertParamIsClone<&'a NamedType>;
let _: ::core::clone::AssertParamIsClone<&'a Ref>;
let _: ::core::clone::AssertParamIsClone<&'a Ptr>;
let _: ::core::clone::AssertParamIsClone<&'a Array>;
*self
}
}Clone)]
4pub(crate) enum TypeQuery<'a> {
5 Ident(&'a NamedType),
6 RustBox,
7 RustVec,
8 UniquePtr,
9 SharedPtr,
10 WeakPtr,
11 Ref(&'a Ref),
12 Ptr(&'a Ptr),
13 Str,
14 CxxVector,
15 Fn,
16 Void,
17 SliceRef,
18 Array(&'a Array),
19}
20
21impl<'a> From<&'a NamedType> for TypeQuery<'a> {
22 fn from(query: &'a NamedType) -> Self {
23 TypeQuery::Ident(query)
24 }
25}
26
27impl<'a> From<&'a Type> for TypeQuery<'a> {
28 fn from(query: &'a Type) -> Self {
29 match query {
30 Type::Ident(query) => TypeQuery::Ident(query),
31 Type::RustBox(_) => TypeQuery::RustBox,
32 Type::RustVec(_) => TypeQuery::RustVec,
33 Type::UniquePtr(_) => TypeQuery::UniquePtr,
34 Type::SharedPtr(_) => TypeQuery::SharedPtr,
35 Type::WeakPtr(_) => TypeQuery::WeakPtr,
36 Type::Ref(query) => TypeQuery::Ref(query),
37 Type::Ptr(query) => TypeQuery::Ptr(query),
38 Type::Str(_) => TypeQuery::Str,
39 Type::CxxVector(_) => TypeQuery::CxxVector,
40 Type::Fn(_) => TypeQuery::Fn,
41 Type::Void(_) => TypeQuery::Void,
42 Type::SliceRef(_) => TypeQuery::SliceRef,
43 Type::Array(query) => TypeQuery::Array(query),
44 }
45 }
46}