Skip to content

Commit d7f5ddb

Browse files
committed
chore: CI things
1 parent 108444e commit d7f5ddb

File tree

8 files changed

+44
-47
lines changed

8 files changed

+44
-47
lines changed

crates/macros/src/function.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ impl<'a> Function<'a> {
163163
#returns
164164
#docs
165165
}
166-
167166
}
168167

169168
/// Generates the function builder for the function.

crates/macros/src/impl_.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ pub struct Constant<'a> {
162162

163163
impl<'a> Constant<'a> {
164164
pub fn new(name: String, ident: &'a syn::Ident, docs: Vec<String>) -> Self {
165-
Self {name, ident, docs}
165+
Self { name, ident, docs }
166166
}
167167
}
168168

crates/macros/src/interface.rs

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
use std::collections::{HashMap, HashSet};
22

3-
use darling::util::Flag;
4-
use darling::{FromAttributes};
5-
use proc_macro2::TokenStream;
6-
use quote::{format_ident, quote};
7-
use syn::{Expr, Ident, ItemTrait, Path, TraitItem, TraitItemConst, TraitItemFn};
83
use crate::class::ClassEntryAttribute;
94
use crate::constant::PhpConstAttribute;
105
use crate::function::{Args, Function};
116
use crate::helpers::{get_docs, CleanPhpAttr};
7+
use darling::util::Flag;
8+
use darling::FromAttributes;
9+
use proc_macro2::TokenStream;
10+
use quote::{format_ident, quote};
11+
use syn::{Expr, Ident, ItemTrait, Path, TraitItem, TraitItemConst, TraitItemFn};
1212

1313
use crate::impl_::{Constant, FnBuilder, MethodModifier};
1414
use crate::parsing::{PhpRename, RenameRule, Visibility};
@@ -34,23 +34,22 @@ pub fn parser(mut input: ItemTrait) -> Result<TokenStream> {
3434
let name = attr.rename.rename(ident.to_string(), RenameRule::Pascal);
3535
input.attrs.clean_php();
3636

37-
let methods: Vec<FnBuilder> = input.items.iter_mut()
38-
.flat_map(
39-
|item: &mut TraitItem| {
40-
match item {
41-
TraitItem::Fn(f) => Some(f),
42-
_ => None,
43-
}
44-
})
37+
let methods: Vec<FnBuilder> = input
38+
.items
39+
.iter_mut()
40+
.flat_map(|item: &mut TraitItem| match item {
41+
TraitItem::Fn(f) => Some(f),
42+
_ => None,
43+
})
4544
.flat_map(|f| f.parse())
4645
.collect();
4746

48-
let constants: Vec<_> = input.items.iter_mut()
49-
.flat_map(|item: &mut TraitItem| {
50-
match item {
51-
TraitItem::Const(c) => Some(c),
52-
_ => None,
53-
}
47+
let constants: Vec<_> = input
48+
.items
49+
.iter_mut()
50+
.flat_map(|item: &mut TraitItem| match item {
51+
TraitItem::Const(c) => Some(c),
52+
_ => None,
5453
})
5554
.flat_map(|c| c.parse())
5655
.map(|c| {
@@ -63,19 +62,19 @@ pub fn parser(mut input: ItemTrait) -> Result<TokenStream> {
6362
})
6463
.collect();
6564

66-
let impl_const: Vec<&TraitItemConst> = input.items.iter().flat_map(|item| {
67-
match item {
65+
let impl_const: Vec<&TraitItemConst> = input
66+
.items
67+
.iter()
68+
.flat_map(|item| match item {
6869
TraitItem::Const(c) => Some(c),
6970
_ => None,
70-
}
71-
})
72-
.map(|c| {
71+
})
72+
.flat_map(|c| {
7373
if c.default.is_none() {
7474
bail!("Interface const cannot be empty");
7575
}
7676
Ok(c)
7777
})
78-
.flat_map(|c| c)
7978
.collect();
8079

8180
let implements = attr.extends;
@@ -256,17 +255,12 @@ impl<'a> Parse<'a, Constant<'a>> for TraitItemConst {
256255

257256
impl<'a> Parse<'a, FnBuilder> for TraitItemFn {
258257
fn parse(&'a mut self) -> Result<FnBuilder> {
259-
let php_attr = PhpFunctionInterfaceAttribute::from_attributes(
260-
&self.attrs
261-
)?;
258+
let php_attr = PhpFunctionInterfaceAttribute::from_attributes(&self.attrs)?;
262259
if self.default.is_some() {
263260
bail!("Interface could not have default impl");
264261
}
265262

266-
let mut args = Args::parse_from_fnargs(
267-
self.sig.inputs.iter(),
268-
php_attr.defaults
269-
)?;
263+
let mut args = Args::parse_from_fnargs(self.sig.inputs.iter(), php_attr.defaults)?;
270264
let docs = get_docs(&php_attr.attrs)?;
271265

272266
self.attrs.clean_php();

crates/macros/src/lib.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ mod zval;
1515

1616
use proc_macro::TokenStream;
1717
use proc_macro2::TokenStream as TokenStream2;
18-
use syn::{DeriveInput, ItemConst, ItemEnum, ItemFn, ItemForeignMod, ItemImpl, ItemStruct, ItemTrait};
18+
use syn::{
19+
DeriveInput, ItemConst, ItemEnum, ItemFn, ItemForeignMod, ItemImpl, ItemStruct, ItemTrait,
20+
};
1921

2022
extern crate proc_macro;
2123

@@ -386,11 +388,9 @@ pub fn php_interface(args: TokenStream, input: TokenStream) -> TokenStream {
386388
}
387389

388390
fn php_interface_internal(_args: TokenStream2, input: TokenStream2) -> TokenStream2 {
389-
let input = parse_macro_input2!(input as ItemTrait).into();
391+
let input = parse_macro_input2!(input as ItemTrait);
390392

391-
interface::parser(input)
392-
.unwrap_or_else(|e| e.to_compile_error())
393-
.into()
393+
interface::parser(input).unwrap_or_else(|e| e.to_compile_error())
394394
}
395395

396396
// BEGIN DOCS FROM function.md

src/builders/class.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ impl ClassBuilder {
303303

304304
let class = if self.ce.flags().contains(ClassFlags::Interface) {
305305
unsafe {
306-
zend_register_internal_interface(&mut self.ce)
306+
zend_register_internal_interface(&raw mut self.ce)
307307
.as_mut()
308308
.ok_or(Error::InvalidPointer)?
309309
}

src/builders/module.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
use std::{convert::TryFrom, ffi::CString, mem, ptr};
22

33
use super::{ClassBuilder, FunctionBuilder};
4-
#[cfg(feature = "enum")]
5-
use crate::{builders::enum_builder::EnumBuilder, enum_::RegisteredEnum};
64
use crate::{
75
builders::class::InterfaceBuilder,
86
class::RegisteredClass,
@@ -13,6 +11,8 @@ use crate::{
1311
zend::{FunctionEntry, ModuleEntry},
1412
PHP_DEBUG, PHP_ZTS,
1513
};
14+
#[cfg(feature = "enum")]
15+
use crate::{builders::enum_builder::EnumBuilder, enum_::RegisteredEnum};
1616

1717
/// Builds a Zend module extension to be registered with PHP. Must be called
1818
/// from within an external function called `get_module`, returning a mutable
@@ -173,6 +173,11 @@ impl ModuleBuilder<'_> {
173173
self
174174
}
175175

176+
/// Adds a interface to the extension.
177+
///
178+
/// # Panics
179+
///
180+
/// * Panics if a constant could not be registered.
176181
pub fn interface<T: RegisteredClass>(mut self) -> Self {
177182
self.classes.push(|| {
178183
let mut builder = InterfaceBuilder::new(T::CLASS_NAME);

tests/src/integration/interface/mod.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
use std::collections::HashMap;
22

33
use ext_php_rs::types::ZendClassObject;
4+
use ext_php_rs::zend::ce;
45
use ext_php_rs::{php_class, php_impl, php_interface};
56
use ext_php_rs::{php_module, prelude::ModuleBuilder};
6-
use ext_php_rs::zend::ce;
77

88
#[php_interface]
99
#[php(extends(ce = ce::throwable, stub = "\\Throwable"))]
1010
#[php(name = "ExtPhpRs\\Interface\\EmptyObjectInterface")]
11-
pub trait EmptyObjectTrait
12-
{
11+
pub trait EmptyObjectTrait {
1312
const HELLO: &'static str = "HELLO";
1413

1514
fn void();
@@ -19,7 +18,7 @@ pub trait EmptyObjectTrait
1918
fn ref_to_like_this_class(
2019
&self,
2120
data: String,
22-
other: &ZendClassObject<PhpInterfaceEmptyObjectTrait>
21+
other: &ZendClassObject<PhpInterfaceEmptyObjectTrait>,
2322
) -> String;
2423
}
2524

tests/src/integration/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ pub mod defaults;
99
pub mod enum_;
1010
pub mod exception;
1111
pub mod globals;
12+
pub mod interface;
1213
pub mod iterator;
1314
pub mod magic_method;
1415
pub mod nullable;
@@ -17,7 +18,6 @@ pub mod object;
1718
pub mod string;
1819
pub mod types;
1920
pub mod variadic_args;
20-
pub mod interface;
2121

2222
#[cfg(test)]
2323
mod test {

0 commit comments

Comments
 (0)