<bug summary>
# Reproducing
<minimal code and/or instructions>
# Expected
<expected results (optional)>
# Got
<actual results>
Use of clippy is suggested.
The rust api guidelines are valued.
rustfmt is used.
Code changes should be covered by tests.