Safe output-file writing for generated code.
Summary
Functions
@spec check_file(Path.t(), String.t()) :: :ok | {:error, Squirrelix.Error.CannotReadFile.t() | Squirrelix.Error.OutdatedFile.t()}
@spec safe_write(Path.t(), String.t()) :: :ok | {:error, Squirrelix.Error.CannotOverwriteFile.t() | Squirrelix.Error.CannotWriteFile.t()}