1#![doc = include_str!("../README.md")]
2#![deny(clippy::unwrap_used)]
3#![allow(non_upper_case_globals)]
4#![allow(non_camel_case_types)]
5#![allow(non_snake_case)]
6#![warn(clippy::pedantic)]
7#![cfg_attr(docs, feature(doc_cfg))]
8#![cfg_attr(windows, feature(abi_vectorcall))]
9
10pub mod alloc;
11pub mod args;
12pub mod binary;
13pub mod binary_slice;
14pub mod builders;
15pub mod convert;
16pub mod error;
17pub mod exception;
18pub mod ffi;
19pub mod flags;
20#[macro_use]
21pub mod macros;
22pub mod boxed;
23pub mod class;
24#[cfg(any(docs, feature = "closure"))]
25#[cfg_attr(docs, doc(cfg(feature = "closure")))]
26pub mod closure;
27pub mod constant;
28pub mod describe;
29#[cfg(feature = "embed")]
30pub mod embed;
31#[cfg(feature = "enum")]
32pub mod enum_;
33#[doc(hidden)]
34pub mod internal;
35pub mod props;
36pub mod rc;
37#[cfg(test)]
38pub mod test;
39pub mod types;
40mod util;
41pub mod zend;
42
43pub mod prelude {
46
47 pub use crate::builders::ModuleBuilder;
48 #[cfg(any(docs, feature = "closure"))]
49 #[cfg_attr(docs, doc(cfg(feature = "closure")))]
50 pub use crate::closure::Closure;
51 pub use crate::exception::{PhpException, PhpResult};
52 #[cfg(feature = "enum")]
53 pub use crate::php_enum;
54 pub use crate::php_print;
55 pub use crate::php_println;
56 pub use crate::types::ZendCallable;
57 pub use crate::{
58 php_class, php_const, php_extern, php_function, php_impl, php_module, wrap_constant,
59 wrap_function, zend_fastcall, ZvalConvert,
60 };
61}
62
63pub const VERSION: &str = env!("CARGO_PKG_VERSION");
65
66pub const PHP_DEBUG: bool = cfg!(php_debug);
68
69pub const PHP_ZTS: bool = cfg!(php_zts);
71
72#[cfg(feature = "enum")]
73pub use ext_php_rs_derive::php_enum;
74pub use ext_php_rs_derive::{
75 php_class, php_const, php_extern, php_function, php_impl, php_module, wrap_constant,
76 wrap_function, zend_fastcall, ZvalConvert,
77};