chiark / gitweb /
rename
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 15 Nov 2024 01:15:27 +0000 (01:15 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 15 Nov 2024 01:15:27 +0000 (01:15 +0000)
src/lib.rs

index 37e0f7b22c026f07b52aea3ca4e9484691d44560..14bac5a89c30a1f0f54577ce218b206d2d1bd52a 100644 (file)
@@ -441,17 +441,17 @@ impl<T: ?Sized> Debug for Ptr<T> {
 //---------- multi-borrowing, runtime-checked ----------
 
 /// Conflicting borrows occurred
-#[derive(Debug)]
-pub struct BorrowConflict;
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
+pub struct BorrowConflictError;
 
-impl Display for BorrowConflict {
+impl Display for BorrowConflictError {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
         write!(f, "conflicting borrows attempted")
     }
 }
-impl std::error::Error for BorrowConflict {}
+impl std::error::Error for BorrowConflictError {}
 
-type BorrowResult<T> = Result<T, BorrowConflict>;
+type BorrowResult<T> = Result<T, BorrowConflictError>;
 
 /// Tracker for multiple borrows (dynamic)
 ///
@@ -476,7 +476,7 @@ impl<'a> MultiDynamic<'a> {
 
     fn borrow_inner_check(&mut self, p: NonNull<()>) -> BorrowResult<()> {
         if self.mut_given.contains(&p) {
-            return Err(BorrowConflict)
+            return Err(BorrowConflictError)
         }
         self.ref_given.insert(p);
         Ok(())
@@ -496,10 +496,10 @@ impl<'a> MultiDynamic<'a> {
 
     fn borrow_mut_inner_check(&mut self, p: NonNull<()>) -> BorrowResult<()> {
         if self.ref_given.contains(&p) {
-            return Err(BorrowConflict)
+            return Err(BorrowConflictError)
         }
         if !self.mut_given.insert(p) {
-            return Err(BorrowConflict)
+            return Err(BorrowConflictError)
         }
         Ok(())
     }
@@ -516,7 +516,7 @@ pub struct MultiStatic<'a, L> {
 }
 
 fn forbid_alias(this: *const (), new: NonNull<()>) -> BorrowResult<()> {
-    if this == new.as_ptr() { return Err(BorrowConflict) }
+    if this == new.as_ptr() { return Err(BorrowConflictError) }
     Ok(())
 }
 
@@ -571,7 +571,7 @@ impl<'a, L: MultiStaticList> MultiStatic<'a, L> {
     where 'a: 'r
     {
         match self.l.alias_check_ref(p.ptr.cast()) {
-            Err(BorrowConflict) => Err(self),
+            Err(BorrowConflictError) => Err(self),
             Ok(()) => Ok((
                 unsafe { p.ptr.as_ref() },
                 MultiStatic {
@@ -595,7 +595,7 @@ impl<'a, L: MultiStaticList> MultiStatic<'a, L> {
     where 'a: 'r
     {
         match self.l.alias_check_mut(p.ptr.cast()) {
-            Err(BorrowConflict) => Err(self),
+            Err(BorrowConflictError) => Err(self),
             Ok(()) => Ok((
                 unsafe { p.ptr.as_mut() },
                 MultiStatic {