You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add support for parsing .fzn files when enabling the fzn feature.
Users can access this functionality via the FlatZinc::from_fzn method.
Add helper type ArcKey, to use in collections that use variables or arrays as keys. ArcKey uses pointer identity to determine its order, equality, and hash value.
Similarly, NamedRef can be used as a key, where the name attribute of variables and arrays are used to compare.
Changed
[breaking] The domain field of Variable has now moved to a variant argument on Type, accessible through the ty attribute.
[breaking] The objective field of the SolveMethod struct has now moved to a variant argument on Method, accessible through the method attribute.
[breaking] Change the default implementation of variables and arrays field of FlatZinc to be std::collections::HashMap.
Allow the usage of stateful interners for Identifier using FlatZinc::deserialize_with_interner and FlatZinc::from_fzn_with_interner.
[breaking] Remove the value field from Variable.
MiniZinc 2.9.6 and later already resolve declaration right-hand sides before emitting FlatZinc, so this crate no longer accepts or exposes those values through Variable.
[breaking] FlatZinc now uses Arc<Variable> and Arc<Array> to represent variable reference in Literal.
This allowed the removal of the Argument type, as inline arrays are now represented as Array types without names.
The variables and arrays attributes of FlatZinc are now Vec<Arc<_>>. AnnotationLiteral now contains all its own variants, it no longer has a direct Literal variant.
This avoids strong references in annotations that might lead to self-referencing structures.