ext_php_rs/
lib.rs

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
41/// A module typically glob-imported containing the typically required macros
42/// and imports.
43pub 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
59/// `ext-php-rs` version.
60pub const VERSION: &str = env!("CARGO_PKG_VERSION");
61
62/// Whether the extension is compiled for PHP debug mode.
63pub const PHP_DEBUG: bool = cfg!(php_debug);
64
65/// Whether the extension is compiled for PHP thread-safe mode.
66pub 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};