Skip to content

Commit

Permalink
update based on Ord
Browse files Browse the repository at this point in the history
  • Loading branch information
jack committed Jun 27, 2024
1 parent 17a95f6 commit eab82b7
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions src/interface/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

use std::cmp::Ordering;
use std::collections::HashMap;

use amplify::confinement::{SmallOrdSet, SmallVec};
Expand Down Expand Up @@ -155,21 +156,23 @@ impl StateChange for OwnedFractionChange {
*self = match self {
OwnedFractionChange::Dec(neg) => OwnedFractionChange::Dec(*neg + sub),
OwnedFractionChange::Zero => OwnedFractionChange::Dec(sub),
OwnedFractionChange::Inc(pos) if *pos > sub => OwnedFractionChange::Inc(*pos - sub),
OwnedFractionChange::Inc(pos) if *pos == sub => OwnedFractionChange::Zero,
OwnedFractionChange::Inc(pos) if *pos < sub => OwnedFractionChange::Dec(sub - *pos),
OwnedFractionChange::Inc(_) => unreachable!(),
OwnedFractionChange::Inc(pos) => match sub.cmp(pos) {
Ordering::Less => OwnedFractionChange::Inc(*pos - sub),
Ordering::Equal => OwnedFractionChange::Zero,
Ordering::Greater => OwnedFractionChange::Dec(sub - *pos),

Check warning on line 162 in src/interface/contract.rs

View check run for this annotation

Codecov / codecov/patch

src/interface/contract.rs#L155-L162

Added lines #L155 - L162 were not covered by tests
},
};
}

Check warning on line 165 in src/interface/contract.rs

View check run for this annotation

Codecov / codecov/patch

src/interface/contract.rs#L165

Added line #L165 was not covered by tests

fn merge_received(&mut self, add: Self::State) {
*self = match self {
OwnedFractionChange::Inc(pos) => OwnedFractionChange::Inc(*pos + add),
OwnedFractionChange::Zero => OwnedFractionChange::Inc(add),
OwnedFractionChange::Dec(neg) if *neg > add => OwnedFractionChange::Dec(*neg - add),
OwnedFractionChange::Dec(neg) if *neg == add => OwnedFractionChange::Zero,
OwnedFractionChange::Dec(neg) if *neg < add => OwnedFractionChange::Inc(add - *neg),
OwnedFractionChange::Dec(_) => unreachable!(),
OwnedFractionChange::Dec(neg) => match add.cmp(neg) {
Ordering::Greater => OwnedFractionChange::Dec(*neg - add),
Ordering::Equal => OwnedFractionChange::Zero,
Ordering::Less => OwnedFractionChange::Inc(add - *neg),

Check warning on line 174 in src/interface/contract.rs

View check run for this annotation

Codecov / codecov/patch

src/interface/contract.rs#L167-L174

Added lines #L167 - L174 were not covered by tests
},
};
}

Check warning on line 177 in src/interface/contract.rs

View check run for this annotation

Codecov / codecov/patch

src/interface/contract.rs#L177

Added line #L177 was not covered by tests
}
Expand Down

0 comments on commit eab82b7

Please sign in to comment.