Updated Ruleset documentation

master
hheik 2026-05-08 13:43:13 +03:00
parent 28f5d3ea1f
commit 91677ca708
1 changed files with 9 additions and 0 deletions

View File

@ -118,9 +118,18 @@ pub trait GraphLike<Node, NodeId> {
} }
pub trait Ruleset<Node, NodeId> { pub trait Ruleset<Node, NodeId> {
/// Calculate the "entropy" of a node, based on the current state of the graph. Should return
/// None if the node is impossible, and Some(entropy) if it is possible. The exact meaning of
/// entropy is up to the implementation, but it should be a value that can be compared between
/// nodes to determine which one is more "constrained". For example, it could be the number of
/// possible values that the node can take, or the number of empty neighbours it has.
///
/// By default the WFC algorithm chooses the node with the lowest entropy to "collapse"
fn entropy(&self, graph: &impl GraphLike<Node, NodeId>, id: NodeId) -> Option<f32> fn entropy(&self, graph: &impl GraphLike<Node, NodeId>, id: NodeId) -> Option<f32>
where where
NodeId: Copy; NodeId: Copy;
/// Choose a node to "collapse" to, based on the current state of the graph. Should return None
/// if the node is impossible.
fn choose( fn choose(
&self, &self,
graph: &impl GraphLike<Node, NodeId>, graph: &impl GraphLike<Node, NodeId>,