2 个版本

0.1.1 2024 年 6 月 25 日
0.1.0 2024 年 6 月 25 日

#14#python-module


用于 pymainprocess

MIT 许可

5KB
78

pytype

什么是 pytype。

Pytype 是一个 Rust 的 pyo3 扩展模块,具有许多用于 Python 扩展模块工作的类型。

例如

use pytype::{PyInt, PyFloat, PyList, PyDict};
use pyo3::prelude::*;

/// Not to the Differences
/// Maybe you make Following Function
#[pyfunction]
fn add(a: PyFloat, b: PyFloat) -> PyResult<PyFloat> {
    Ok(a + b)
}

实际上,通常类型是一个正常的 Rust 类型,但工作得更好。

PyInt 在 32 位架构和 64 位架构上是否不同。

32 位

#[cfg(target_point_width = "32")]
pub type PyInt = i32;

64 位

#[cfg(target_point_width = "64")]
pub type PyInt = i64;

你为什么要这样做?

通常,你想要一个性能最佳的 Python 模块,在各种架构上都能有最佳的工作表现。

'i64' 在 32 位架构上可能非常慢,但 'i32' 在那里非常快。64 位架构可以用 'i64' 工作得更好,并且可以用它来工作。

PyFloat 也是如此。

32 位

#[cfg(target_point_width = "32")]
pub type PyFloat = f32;

64 位

#[cfg(target_point_width = "64")]
pub type PyFloat = f64;

无运行时依赖