Skip to content

Commit e430035

Browse files
committed
Implement VaArgs for both Ptr and raw ptr
1 parent ce9d59e commit e430035

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

‎libcc2rs/src/va_args.rs‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,20 +56,20 @@ impl<T: crate::reinterpret::ByteRepr + 'static> From<crate::rc::Ptr<T>> for VaAr
5656

5757
impl crate::reinterpret::ByteRepr for VaArg {}
5858

59-
impl Ptr<VaArg> {
60-
pub fn arg<T: VaArgGet>(&mut self) -> T {
59+
pub trait VaArgs {
60+
fn arg<T: VaArgGet>(&mut self) -> T;
61+
}
62+
63+
impl VaArgs for Ptr<VaArg> {
64+
fn arg<T: VaArgGet>(&mut self) -> T {
6165
let val = self.with(T::get);
6266
self.prefix_inc();
6367
val
6468
}
6569
}
6670

67-
pub trait VaArgs {
68-
unsafe fn arg<T: VaArgGet>(&mut self) -> T;
69-
}
70-
7171
impl VaArgs for *const VaArg {
72-
unsafe fn arg<T: VaArgGet>(&mut self) -> T {
72+
fn arg<T: VaArgGet>(&mut self) -> T {
7373
unsafe {
7474
let val = T::get(&**self);
7575
*self = self.add(1);

0 commit comments

Comments
 (0)