Skip to content

Commit d445aee

Browse files
committed
metadata/docs update
UPDATED crate metadata, ADDED changelog ADDED/RAN cargo doc
1 parent 9a362a0 commit d445aee

Some content is hidden

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

52 files changed

+208
-134
lines changed

CHANGELOG.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
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+
- Added Basic Documention by way of "cargo doc".
14+
15+
### Changed
16+
- Changed cargo.toml so that the crate upon publication only includes the necessary components.(e.g. excludes tests, examples... etc)
17+
18+
### Fixed
19+
- Fixed the logic of defuzz.rs, rulespace.rs, aggregate.rs where the Rules Vector...etc would be erased after agrragate and defuzzify due to using mem::take, to borrowing.
20+
21+
- fixed mamdani_test.rs according to the API change of above fix.
22+
23+
### Deprecated
24+
-
25+
26+
### Removed
27+
-
28+
29+
### Security
30+
-
31+
32+
## [0.1.0] - 2025-10-XX
33+
34+
### Added
35+
- Initial crate scaffolding and public module layout: `membership`, `variable`, `term`, `rulespace`,
36+
`antecedent`, `aggregate`, `defuzz`, `mamdani`, `ops`, `sampler`, `builder`, `error`, `prelude`.
37+
- Feature flags declared in `Cargo.toml`:
38+
- `f32` / `f64` (default to `f64`).
39+
- `serde` (optional; re-exports `Serialize`, `Deserialize`).
40+
- `parallel` (optional; adds `rayon`).
41+
- `ops-minmax`, `ops-product`, `ops-lukasiewicz`.
42+
- `ops-dyn` (dynamic dispatch APIs).
43+
- `inference-mamdani` (engine placeholder).
44+
- Example stubs under `examples/`: `temperature`, `batch`, `fuzzy_c_means`, `gradient_descent`
45+
(gated with `required-features = ["parallel"]` where relevant).
46+
- Documentation: initial README and a memo guide for implementing `serde` and `rayon`
47+
(`memo/feature-implementation-guide.md`).
48+
49+
### Notes
50+
- MSRV declared as `1.74` in `Cargo.toml`.
51+
- Edition currently set to `2025` in `Cargo.toml`; this may change to maximize
52+
toolchain compatibility prior to 1.0.
53+
54+
### Known limitations
55+
- `serde` derives and rayon-powered implementations are not yet wired into the
56+
domain types/algorithms; follow the memo guide to implement them.
57+
- Public API is not stabilized and may change between 0.x releases.
58+
59+
<!-- Update links if the repository slug changes. -->
60+
[0.1.1]: https://github.com/joushuakent/rust-fuzzylogic/compare/v0.1.1
61+
[0.1.0]: https://github.com/joushuakent/rust-fuzzylogic/releases/tag/v0.1.0
62+

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"]

target/doc/rust_fuzzylogic/aggregate/fn.aggregation.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Aggregate the contributions of all rules into output membership functions."><title>aggregation in rust_fuzzylogic::aggregate - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-84e720fa.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="rust_fuzzylogic" data-themes="" data-resource-suffix="" data-rustdoc-version="1.89.0 (29483883e 2025-08-04)" data-channel="1.89.0" data-search-js="search-92309212.js" data-settings-js="settings-5514c975.js" ><script src="../../static.files/storage-4e99c027.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-fd3af306.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-32bb7600.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../rust_fuzzylogic/index.html">rust_<wbr>fuzzylogic</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In rust_<wbr>fuzzylogic::<wbr>aggregate</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">rust_fuzzylogic</a>::<wbr><a href="index.html">aggregate</a></div><h1>Function <span class="fn">aggregation</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/rust_fuzzylogic/aggregate.rs.html#14-38">Source</a> </span></div><pre class="rust item-decl"><code>pub fn aggregation&lt;KI, KV&gt;(
2-
rules: <a class="struct" href="https://doc.rust-lang.org/1.89.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../mamdani/struct.Rule.html" title="struct rust_fuzzylogic::mamdani::Rule">Rule</a>&gt;,
1+
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Aggregate the contributions of all rules into output membership functions."><title>aggregation in rust_fuzzylogic::aggregate - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-84e720fa.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="rust_fuzzylogic" data-themes="" data-resource-suffix="" data-rustdoc-version="1.89.0 (29483883e 2025-08-04)" data-channel="1.89.0" data-search-js="search-92309212.js" data-settings-js="settings-5514c975.js" ><script src="../../static.files/storage-4e99c027.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-fd3af306.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-32bb7600.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../rust_fuzzylogic/index.html">rust_<wbr>fuzzylogic</a><span class="version">0.1.1</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In rust_<wbr>fuzzylogic::<wbr>aggregate</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">rust_fuzzylogic</a>::<wbr><a href="index.html">aggregate</a></div><h1>Function <span class="fn">aggregation</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/rust_fuzzylogic/aggregate.rs.html#14-38">Source</a> </span></div><pre class="rust item-decl"><code>pub fn aggregation&lt;KI, KV&gt;(
2+
rules: &amp;[<a class="struct" href="../mamdani/struct.Rule.html" title="struct rust_fuzzylogic::mamdani::Rule">Rule</a>],
33
input: &amp;<a class="struct" href="https://doc.rust-lang.org/1.89.0/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;KI, <a class="type" href="../type.Float.html" title="type rust_fuzzylogic::Float">Float</a>&gt;,
44
vars: &amp;<a class="struct" href="https://doc.rust-lang.org/1.89.0/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;KV, <a class="struct" href="../variable/struct.Variable.html" title="struct rust_fuzzylogic::variable::Variable">Variable</a>&gt;,
5-
sampler: <a class="struct" href="../sampler/struct.UniformSampler.html" title="struct rust_fuzzylogic::sampler::UniformSampler">UniformSampler</a>,
5+
sampler: &amp;<a class="struct" href="../sampler/struct.UniformSampler.html" title="struct rust_fuzzylogic::sampler::UniformSampler">UniformSampler</a>,
66
) -&gt; <a class="type" href="../error/type.Result.html" title="type rust_fuzzylogic::error::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.89.0/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.89.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/1.89.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="type" href="../type.Float.html" title="type rust_fuzzylogic::Float">Float</a>&gt;&gt;&gt;<div class="where">where
77
KI: <a class="trait" href="https://doc.rust-lang.org/1.89.0/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/1.89.0/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + <a class="trait" href="https://doc.rust-lang.org/1.89.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.89.0/std/primitive.str.html">str</a>&gt;,
88
KV: <a class="trait" href="https://doc.rust-lang.org/1.89.0/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/1.89.0/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + <a class="trait" href="https://doc.rust-lang.org/1.89.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.89.0/std/primitive.str.html">str</a>&gt;,</div></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Aggregate the contributions of all rules into output membership functions.</p>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Combine two membership sample vectors by taking the pointwise maximum."><title>elements_max in rust_fuzzylogic::aggregate - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-84e720fa.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="rust_fuzzylogic" data-themes="" data-resource-suffix="" data-rustdoc-version="1.89.0 (29483883e 2025-08-04)" data-channel="1.89.0" data-search-js="search-92309212.js" data-settings-js="settings-5514c975.js" ><script src="../../static.files/storage-4e99c027.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-fd3af306.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-32bb7600.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../rust_fuzzylogic/index.html">rust_<wbr>fuzzylogic</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In rust_<wbr>fuzzylogic::<wbr>aggregate</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">rust_fuzzylogic</a>::<wbr><a href="index.html">aggregate</a></div><h1>Function <span class="fn">elements_max</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/rust_fuzzylogic/aggregate.rs.html#7-11">Source</a> </span></div><pre class="rust item-decl"><code>pub fn elements_max(data: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.89.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="type" href="../type.Float.html" title="type rust_fuzzylogic::Float">Float</a>&gt;, src: &amp;<a class="struct" href="https://doc.rust-lang.org/1.89.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="type" href="../type.Float.html" title="type rust_fuzzylogic::Float">Float</a>&gt;)</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Combine two membership sample vectors by taking the pointwise maximum.</p>
1+
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Combine two membership sample vectors by taking the pointwise maximum."><title>elements_max in rust_fuzzylogic::aggregate - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-84e720fa.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="rust_fuzzylogic" data-themes="" data-resource-suffix="" data-rustdoc-version="1.89.0 (29483883e 2025-08-04)" data-channel="1.89.0" data-search-js="search-92309212.js" data-settings-js="settings-5514c975.js" ><script src="../../static.files/storage-4e99c027.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-fd3af306.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-32bb7600.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../rust_fuzzylogic/index.html">rust_<wbr>fuzzylogic</a><span class="version">0.1.1</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In rust_<wbr>fuzzylogic::<wbr>aggregate</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">rust_fuzzylogic</a>::<wbr><a href="index.html">aggregate</a></div><h1>Function <span class="fn">elements_max</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/rust_fuzzylogic/aggregate.rs.html#7-11">Source</a> </span></div><pre class="rust item-decl"><code>pub fn elements_max(data: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.89.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="type" href="../type.Float.html" title="type rust_fuzzylogic::Float">Float</a>&gt;, src: &amp;<a class="struct" href="https://doc.rust-lang.org/1.89.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="type" href="../type.Float.html" title="type rust_fuzzylogic::Float">Float</a>&gt;)</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Combine two membership sample vectors by taking the pointwise maximum.</p>
22
</div></details></section></div></main></body></html>

0 commit comments

Comments
 (0)