// Copyright (c) 2014 GitHub, Inc. // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. #ifndef ATOM_COMMON_NATIVE_MATE_CONVERTERS_FILE_PATH_CONVERTER_H_ #define ATOM_COMMON_NATIVE_MATE_CONVERTERS_FILE_PATH_CONVERTER_H_ #include #include "atom/common/native_mate_converters/string16_converter.h" #include "base/files/file_path.h" namespace gin { template <> struct Converter { static v8::Local ToV8(v8::Isolate* isolate, const base::FilePath& val) { return Converter::ToV8(isolate, val.value()); } static bool FromV8(v8::Isolate* isolate, v8::Local val, base::FilePath* out) { if (val->IsNull()) return true; base::FilePath::StringType path; if (Converter::FromV8(isolate, val, &path)) { *out = base::FilePath(path); return true; } else { return false; } } }; } // namespace gin namespace mate { template <> struct Converter { static v8::Local ToV8(v8::Isolate* isolate, const base::FilePath& val) { return gin::Converter::ToV8(isolate, val.value()); } static bool FromV8(v8::Isolate* isolate, v8::Local val, base::FilePath* out) { return gin::Converter::FromV8(isolate, val, out); } }; } // namespace mate #endif // ATOM_COMMON_NATIVE_MATE_CONVERTERS_FILE_PATH_CONVERTER_H_