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#[doc(hidden)]
32pub mod internal;
33pub mod props;
34pub mod rc;
35#[cfg(test)]
36pub mod test;
37pub mod types;
38mod util;
39pub mod zend;
40
41pub mod prelude {
44
45 pub use crate::builders::ModuleBuilder;
46 #[cfg(any(docs, feature = "closure"))]
47 #[cfg_attr(docs, doc(cfg(feature = "closure")))]
48 pub use crate::closure::Closure;
49 pub use crate::exception::{PhpException, PhpResult};
50 pub use crate::php_print;
51 pub use crate::php_println;
52 pub use crate::types::ZendCallable;
53 pub use crate::{
54 php_class, php_const, php_extern, php_function, php_impl, php_module, wrap_constant,
55 wrap_function, zend_fastcall, ZvalConvert,
56 };
57}
58
59pub const VERSION: &str = env!("CARGO_PKG_VERSION");
61
62pub const PHP_DEBUG: bool = cfg!(php_debug);
64
65pub const PHP_ZTS: bool = cfg!(php_zts);
67
68pub use ext_php_rs_derive::{
69 php_class, php_const, php_extern, php_function, php_impl, php_module, wrap_constant,
70 wrap_function, zend_fastcall, ZvalConvert,
71};