pub fn check_merge_next(&mut self) {
        self.next.ptr.map(|next| {
            if self.end() == next.start() {
                self.size += next.size;
                self.next = next.next;
            }
        });
    }
// check if this block and the next can be merged, and if so, merge them.
check if this block and the next can be merged, and if so, merge them.
check if this block and the next can be merged and if so merge them .
pub fn check_merge_next(&mut self) {
        self.next.ptr.map(|next| {
            if self.end() == next.start() {
                self.size += next.size;
                self.next = next.next;
            }
        });
    }
pub fn check_merge_next ( & mut self ) { self . next . ptr . map ( | next | { if self . end ( ) == next . start ( ) { self . size += next . size ; self . next = next . next ; } } ) ; }
check if this block and the next can be merged, and if so, merge them.
check if this block and the next can be merged and if so merge them .
&mut self
&mut self