Skip to content

Commit 936534a

Browse files
committed
Final fixes
1 parent 219e5b0 commit 936534a

2 files changed

Lines changed: 43 additions & 42 deletions

File tree

src/conversion.rs

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ impl<F: WithSafety<Safe>> AsSafe for F {}
4141
pub trait AsUnsafe: WithSafety<Unsafe> {}
4242
impl<F: WithSafety<Unsafe>> AsUnsafe for F {}
4343

44+
cfg_tt::cfg_tt!{
4445
/// Helper trait that simplifies generic bounds when converting between funciton pointer types.
4546
pub trait Convertible:
4647
FnPtr
@@ -49,27 +50,26 @@ pub trait Convertible:
4950
+ WithAbi<marker::CUnwind>
5051
+ WithAbi<marker::System>
5152
+ WithAbi<marker::SystemUnwind>
52-
+ WithAbi<marker::Rust>
53-
+ WithAbi<marker::Aapcs>
54-
+ WithAbi<marker::AapcsUnwind>
55-
+ WithAbi<marker::Cdecl>
56-
+ WithAbi<marker::CdeclUnwind>
57-
+ WithAbi<marker::Stdcall>
58-
+ WithAbi<marker::StdcallUnwind>
59-
+ WithAbi<marker::Fastcall>
60-
+ WithAbi<marker::FastcallUnwind>
61-
+ WithAbi<marker::Thiscall>
62-
+ WithAbi<marker::ThiscallUnwind>
63-
+ WithAbi<marker::Vectorcall>
64-
+ WithAbi<marker::VectorcallUnwind>
65-
+ WithAbi<marker::SysV64>
66-
+ WithAbi<marker::SysV64Unwind>
67-
+ WithAbi<marker::Win64>
68-
+ WithAbi<marker::Win64Unwind>
6953
+ WithSafety<marker::Safe>
7054
+ WithSafety<marker::Unsafe>
7155
+ AsSafe
7256
+ AsUnsafe
57+
#[cfg(has_abi_aapcs)](+ WithAbi<marker::Aapcs>)
58+
#[cfg(has_abi_aapcs)](+ WithAbi<marker::AapcsUnwind>)
59+
#[cfg(has_abi_cdecl)](+ WithAbi<marker::Cdecl>)
60+
#[cfg(has_abi_cdecl)](+ WithAbi<marker::CdeclUnwind>)
61+
#[cfg(has_abi_stdcall)](+ WithAbi<marker::Stdcall>)
62+
#[cfg(has_abi_stdcall)](+ WithAbi<marker::StdcallUnwind>)
63+
#[cfg(has_abi_fastcall)](+ WithAbi<marker::Fastcall>)
64+
#[cfg(has_abi_fastcall)](+ WithAbi<marker::FastcallUnwind>)
65+
#[cfg(has_abi_thiscall)](+ WithAbi<marker::Thiscall>)
66+
#[cfg(has_abi_thiscall)](+ WithAbi<marker::ThiscallUnwind>)
67+
#[cfg(has_abi_vectorcall)](+ WithAbi<marker::Vectorcall>)
68+
#[cfg(has_abi_vectorcall)](+ WithAbi<marker::VectorcallUnwind>)
69+
#[cfg(has_abi_sysv64)](+ WithAbi<marker::SysV64>)
70+
#[cfg(has_abi_sysv64)](+ WithAbi<marker::SysV64Unwind>)
71+
#[cfg(has_abi_win64)](+ WithAbi<marker::Win64>)
72+
#[cfg(has_abi_win64)](+ WithAbi<marker::Win64Unwind>)
7373
{
7474
}
7575
impl<T> Convertible for T
@@ -80,27 +80,28 @@ where
8080
+ WithAbi<marker::CUnwind>
8181
+ WithAbi<marker::System>
8282
+ WithAbi<marker::SystemUnwind>
83-
+ WithAbi<marker::Aapcs>
84-
+ WithAbi<marker::AapcsUnwind>
85-
+ WithAbi<marker::Cdecl>
86-
+ WithAbi<marker::CdeclUnwind>
87-
+ WithAbi<marker::Stdcall>
88-
+ WithAbi<marker::StdcallUnwind>
89-
+ WithAbi<marker::Fastcall>
90-
+ WithAbi<marker::FastcallUnwind>
91-
+ WithAbi<marker::Thiscall>
92-
+ WithAbi<marker::ThiscallUnwind>
93-
+ WithAbi<marker::Vectorcall>
94-
+ WithAbi<marker::VectorcallUnwind>
95-
+ WithAbi<marker::SysV64>
96-
+ WithAbi<marker::SysV64Unwind>
97-
+ WithAbi<marker::Win64>
98-
+ WithAbi<marker::Win64Unwind>
9983
+ WithSafety<marker::Safe>
10084
+ WithSafety<marker::Unsafe>
10185
+ AsSafe
102-
+ AsUnsafe,
86+
+ AsUnsafe
87+
#[cfg(has_abi_aapcs)](+ WithAbi<marker::Aapcs>)
88+
#[cfg(has_abi_aapcs)](+ WithAbi<marker::AapcsUnwind>)
89+
#[cfg(has_abi_cdecl)](+ WithAbi<marker::Cdecl>)
90+
#[cfg(has_abi_cdecl)](+ WithAbi<marker::CdeclUnwind>)
91+
#[cfg(has_abi_stdcall)](+ WithAbi<marker::Stdcall>)
92+
#[cfg(has_abi_stdcall)](+ WithAbi<marker::StdcallUnwind>)
93+
#[cfg(has_abi_fastcall)](+ WithAbi<marker::Fastcall>)
94+
#[cfg(has_abi_fastcall)](+ WithAbi<marker::FastcallUnwind>)
95+
#[cfg(has_abi_thiscall)](+ WithAbi<marker::Thiscall>)
96+
#[cfg(has_abi_thiscall)](+ WithAbi<marker::ThiscallUnwind>)
97+
#[cfg(has_abi_vectorcall)](+ WithAbi<marker::Vectorcall>)
98+
#[cfg(has_abi_vectorcall)](+ WithAbi<marker::VectorcallUnwind>)
99+
#[cfg(has_abi_sysv64)](+ WithAbi<marker::SysV64>)
100+
#[cfg(has_abi_sysv64)](+ WithAbi<marker::SysV64Unwind>)
101+
#[cfg(has_abi_win64)](+ WithAbi<marker::Win64>)
102+
#[cfg(has_abi_win64)](+ WithAbi<marker::Win64Unwind>)
103103
{}
104+
}
104105

105106
/// Construct a function-pointer type identical to the given one but using
106107
/// the specified ABI.

src/impl.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ macro_rules! impl_fn {
4545
#[cfg(has_abi_thiscall)]
4646
impl_fn!(@impl_u_and_s ($($nm : $ty),*), ThiscallUnwind, "thiscall-unwind");
4747

48-
// #[cfg(has_abi_vectorcall)]
49-
// impl_fn!(@impl_u_and_s ($($nm : $ty),*), Vectorcall, "vectorcall");
50-
// #[cfg(has_abi_vectorcall)]
51-
// impl_fn!(@impl_u_and_s ($($nm : $ty),*), VectorcallUnwind, "vectorcall-unwind");
48+
#[cfg(has_abi_vectorcall)]
49+
impl_fn!(@impl_u_and_s ($($nm : $ty),*), Vectorcall, "vectorcall");
50+
#[cfg(has_abi_vectorcall)]
51+
impl_fn!(@impl_u_and_s ($($nm : $ty),*), VectorcallUnwind, "vectorcall-unwind");
5252

5353
#[cfg(has_abi_win64)]
5454
impl_fn!(@impl_u_and_s ($($nm : $ty),*), Win64, "win64");
@@ -143,10 +143,10 @@ macro_rules! impl_fn {
143143
#[cfg(has_abi_thiscall)]
144144
impl_fn!(@impl_withabi ($($nm : $ty),*), $fn_type, $safety, "thiscall-unwind");
145145

146-
// #[cfg(has_abi_vectorcall)]
147-
// impl_fn!(@impl_withabi ($($nm : $ty),*), $fn_type, $safety, "vectorcall");
148-
// #[cfg(has_abi_vectorcall)]
149-
// impl_fn!(@impl_withabi ($($nm : $ty),*), $fn_type, $safety, "vectorcall-unwind");
146+
#[cfg(has_abi_vectorcall)]
147+
impl_fn!(@impl_withabi ($($nm : $ty),*), $fn_type, $safety, "vectorcall");
148+
#[cfg(has_abi_vectorcall)]
149+
impl_fn!(@impl_withabi ($($nm : $ty),*), $fn_type, $safety, "vectorcall-unwind");
150150

151151
#[cfg(has_abi_win64)]
152152
impl_fn!(@impl_withabi ($($nm : $ty),*), $fn_type, $safety, "win64");

0 commit comments

Comments
 (0)