Thoughts on using `unsafe` for highly destructive operations?

73 points J-Cake 145 comments

If a library I'm working on includes a very destructive function such as for example reinitialising the database file in SQLite, even though the function itself doesn't do any raw pointer dereference or something else unsafe, is it in your opinion sensible to mark this function as unsafe anyway, or should unsafe be reserved strictly for undefined or unpredictable behaviour?