linksplatform / Data.Doublets

LinksPlatform's Platform.Data.Doublets Class Library
https://linksplatform.github.io/Data.Doublets/
The Unlicense
14 stars 6 forks source link

Step to modern extensions #287

Open uselessgoddess opened 2 years ago

uselessgoddess commented 2 years ago

https://github.com/linksplatform/Data.Doublets/blob/4bdfa432112767adf210949f7bb7650a19f74277/csharp/Platform.Data.Doublets/ILinksExtensions.cs#L161-L164 Yes, поэтому добавьте возможность переопределить экстеншен прямо в реализации

uselessgoddess commented 2 years ago

Ok. Сейчас in Rust мы можем переопределить provide метод from Doublets трейт like this

fn delete_all(&mut self) {
    // SAFETY: логика деревьев не должна сломаться, мы просто получим полностью пустое хранилище
    // однако это куда ближе к логике `.clean()` 
    unsafe {
        let ptr = self.mem_ptr.as_mut();
        ptr::write_bytes(ptr, 0, self.allocated());
    }
}
uselessgoddess commented 2 years ago

Try inheriting from extensions and overload them