Skip to content

Commit ca0eaf8

Browse files
authored
Merge pull request #4 from JoshuaKento/main
Main
2 parents b34ef61 + 3e4190b commit ca0eaf8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+204
-135
lines changed

CHANGELOG.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on Keep a Changelog, and this project adheres to
6+
Semantic Versioning. Prior to 1.0.0, MINOR (0.x.0) may include breaking
7+
changes, while PATCH (0.1.x) is reserved for backwards-compatible fixes
8+
and small additions.
9+
10+
## [0.1.1]
11+
12+
### Added
13+
14+
- Crate-level and module documentation to improve API discoverability by way of "crate doc".
15+
16+
### Changed
17+
18+
- Packaging: restrict published crate contents via Cargo.toml to exclude tests, examples, benches, and other development-only files.
19+
20+
### Fixed
21+
22+
- Prevent rule vectors from being cleared during aggregation/defuzzification by replacing uses of mem::take with borrowed access in defuzz.rs, rulespace.rs, and aggregate.rs.
23+
- Update mamdani_test.rs to align with the above API changes.
24+
25+
## [0.1.0] - 2025-10-09
26+
27+
### Added
28+
- Initial crate scaffolding and public module layout: `membership`, `variable`, `term`, `rulespace`,
29+
`antecedent`, `aggregate`, `defuzz`, `mamdani`, `ops`, `sampler`, `builder`, `error`, `prelude`.
30+
- Feature flags declared in `Cargo.toml`:
31+
- `f32` / `f64` (default to `f64`).
32+
- `serde` (optional; re-exports `Serialize`, `Deserialize`).
33+
- `parallel` (optional; adds `rayon`).
34+
- `ops-minmax`, `ops-product`, `ops-lukasiewicz`.
35+
- `ops-dyn` (dynamic dispatch APIs).
36+
- `inference-mamdani` (engine placeholder).
37+
- Example stubs under `examples/`: `temperature`, `batch`, `fuzzy_c_means`, `gradient_descent`
38+
(gated with `required-features = ["parallel"]` where relevant).
39+
- Documentation: initial README and a memo guide for implementing `serde` and `rayon`
40+
(`memo/feature-implementation-guide.md`).
41+
42+
### Notes
43+
- MSRV declared as `1.74` in `Cargo.toml`.
44+
- Edition currently set to `2025` in `Cargo.toml`; this may change to maximize
45+
toolchain compatibility prior to 1.0.
46+
47+
### Known limitations
48+
- `serde` derives and rayon-powered implementations are not yet wired into the
49+
domain types/algorithms; follow the memo guide to implement them.
50+
- Public API is not stabilized and may change between 0.x releases.
51+
52+
<!-- Update links if the repository slug changes. -->
53+
[0.1.1]: https://github.com/joushuakent/rust-fuzzylogic/compare/v0.1.0...v0.1.1
54+
[0.1.0]: https://github.com/joushuakent/rust-fuzzylogic/releases/tag/v0.1.0
55+

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rust-fuzzylogic"
3-
version = "0.1.0"
3+
version = "0.1.1"
44
edition = "2021"
55
description = "Building blocks for authoring fuzzy inference systems in Rust."
66
license = "MIT OR Apache-2.0"
@@ -11,7 +11,14 @@ readme = "README.md"
1111
keywords = ["fuzzy", "logic", "ai", "inference"]
1212
categories = ["algorithms", "science"]
1313
rust-version = "1.74"
14-
exclude = ["target/**"]
14+
include = [
15+
"Cargo.toml",
16+
"src/**",
17+
"build.rs",
18+
"README*",
19+
"LICENSE*",
20+
"CHANGELOG*"
21+
]
1522

1623
[features]
1724
default = ["f64", "ops-dyn", "inference-mamdani"]

src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ pub mod mamdani;
1010
pub mod ops;
1111
pub mod rulespace;
1212
pub mod sampler;
13+
pub mod system;
1314
pub mod term;
1415
pub mod variable;
1516

src/system.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
//use crate::prelude::*;

target/.rustc_info.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"rustc_fingerprint":4715693574508695924,"outputs":{"7971740275564407648":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\nC:\\Users\\Joshua\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\npacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"cmpxchg16b\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n","stderr":""},"17747080675513052775":{"success":true,"status":"","code":0,"stdout":"rustc 1.89.0 (29483883e 2025-08-04)\nbinary: rustc\ncommit-hash: 29483883eed69d5fb4db01964cdf2af4d86e9cb2\ncommit-date: 2025-08-04\nhost: x86_64-pc-windows-msvc\nrelease: 1.89.0\nLLVM version: 20.1.7\n","stderr":""}},"successes":{}}
1+
{"rustc_fingerprint":15642278443813494806,"outputs":{"17747080675513052775":{"success":true,"status":"","code":0,"stdout":"rustc 1.89.0 (29483883e 2025-08-04)\nbinary: rustc\ncommit-hash: 29483883eed69d5fb4db01964cdf2af4d86e9cb2\ncommit-date: 2025-08-04\nhost: x86_64-pc-windows-msvc\nrelease: 1.89.0\nLLVM version: 20.1.7\n","stderr":""},"12004014463585500860":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\nC:\\Users\\Joshua\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\npacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"cmpxchg16b\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n","stderr":""},"7971740275564407648":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\nC:\\Users\\Joshua\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\npacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"cmpxchg16b\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n","stderr":""}},"successes":{}}
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

target/debug/rust-fuzzylogic.exe

0 Bytes
Binary file not shown.

target/debug/rust_fuzzylogic.pdb

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)