// Copyright (c) 2022 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef TOOLS_GN_ATOMIC_WRITE_H_
#define TOOLS_GN_ATOMIC_WRITE_H_

#include "base/files/file_path.h"

namespace util {

// Writes the given buffer into the file, overwriting any data that was
// previously there. The write is performed atomically by first writing the
// contents to a temporary file and then moving it into place. Returns the
// number of bytes written, or -1 on error.
int WriteFileAtomically(const base::FilePath& filename,
                        const char* data,
                        int size);

}  // namespace util

#endif  // TOOLS_GN_ATOMIC_WRITE_H_