10个版本
0.2.0 | 2023年11月17日 |
---|---|
0.1.9 | 2023年10月24日 |
0.1.4 | 2023年9月29日 |
0.1.0 | 2023年8月23日 |
在算法分类中排名第593
每月下载量122次
被num-notation使用
64KB
1K SLoC
standardform-rs
使用这个Rust标准形式实现,轻松操作像2e19或2*10^4这样的数字。轻松简化、转换和操作大型数值表达式。
功能
- 创建和操作标准形式的数字。
- 对具有不同指数的数字执行算术运算。
- 轻松比较标准形式的数字。
- 克隆和调试
StandardForm
结构体的派生实现。 - 与
num_traits
包一起集成。 - 使用
hash
功能,标准形式还可以进行散列。 - 使用
nom
功能与nom集成。 - 还提供
no-std
。 - 提供对其他语言的绑定(启用 'lang name'功能以使用绑定)。
使用方法
将此库添加到您的Cargo.toml
[dependencies]
standardform = "0.1.1" # Version
要启用与num_traits
的集成,启用num
功能
[dependencies]
standardform = { version = "0.1.1" , features = ["num"] }
要启用散列,启用hash
功能
[dependencies]
standardform = { version = "0.1.1" , features = ["hash"] }
To enable intergation it with `nom` , enable `nom` feature:
```toml
[dependencies]
standardform = { version = "0.1.1" , features = ["nom"] }
然后
use standardform::StandardForm;
fn main() {
// Create a new StandardForm instance
let number = StandardForm::new(2.0, 19);
// Perform arithmetic operations
let result = number * StandardForm::new(1.5, -3);
// Compare numbers
if result > StandardForm::new(1.0, 10) {
println!("Result is greater than 1*10^108.");
}
}
请注意,这里提供的示例已简化,仅供参考。有关包的全面文档,请访问包文档以更好地了解包的功能和API。此外,您还可以探索一个网站,展示其功能的一部分。
JavaScript绑定
如果您不想自己构建JavaScript绑定,您可以从发布页面下载预构建的pkg
目录。按照以下说明使用预构建的'js'绑定
-
从发布页面下载预构建的
pkg
目录。 -
解压下载的存档。
-
确保您的HTML文件引用了预构建的JavaScript文件。将以下脚本标签添加到您的HTML文件中
<script type="module"> import init , { StandardForm } from '/path-to-pkg/standardform.js'; await init() </script>
将
'/path-to-pkg/standardform.js'
替换为已下载的'standardform.js'文件的正确路径。 -
您的库现在可以用于JavaScript代码中。
如果您正在使用webpack
,请遵循此指南
以下是如何使用不同部署和集成方法使用此代码的指南
注意:虽然使用预构建的绑定很方便,但如果您计划对Rust代码进行修改,建议自己构建绑定,如下文所述
JavaScript集成
为了实现Rust和JavaScript之间的无缝集成,此库支持WebAssembly(Wasm)。按照以下步骤更新绑定,当Rust代码发生变化时
-
确保您已安装
wasm-pack
cargo install wasm-pack
-
构建Wasm包
wasm-pack build --target web --out-dir ./website
-
如果您的Rust代码进行了修改,请重新构建Wasm包以更新绑定
这确保了您的JavaScript绑定与Rust代码的任何更改保持同步。记住,每次修改Rust实现时都要更新绑定,以保持两种语言之间的一致集成。
贡献
欢迎贡献!如果您发现了一个错误或想到了一个增强,请随时打开一个issue或提交一个pull request。
依赖项
~0.3–1.2MB
~27K SLoC