//===--- TextAPIWriter.h - Text API Writer ----------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_TEXTAPI_TEXTAPIWRITER_H #define LLVM_TEXTAPI_TEXTAPIWRITER_H #include "llvm/ADT/StringSwitch.h" #include "llvm/TextAPI/InterfaceFile.h" namespace llvm { class Error; class raw_ostream; namespace MachO { class TextAPIWriter { public: TextAPIWriter() = delete; /// Write TAPI text file contents into stream. /// /// \param OS Stream to write to. /// \param File Library attributes to write as text file. /// \param FileKind File format to write text file as. If not specified, it /// will read from File. /// \param Compact Whether to limit whitespace in text file. static Error writeToStream(raw_ostream &OS, const InterfaceFile &File, const FileType FileKind = FileType::Invalid, bool Compact = false); /// Get TAPI FileType from the input string. /// /// \param FT String of input to map to FileType. static FileType parseFileType(const StringRef FT) { return StringSwitch(FT) .Case("tbd-v1", FileType::TBD_V1) .Case("tbd-v2", FileType::TBD_V2) .Case("tbd-v3", FileType::TBD_V3) .Case("tbd-v4", FileType::TBD_V4) .Case("tbd-v5", FileType::TBD_V5) .Default(FileType::Invalid); } }; } // end namespace MachO. } // end namespace llvm. #endif // LLVM_TEXTAPI_TEXTAPIWRITER_H