// This file is part of GCC. // GCC is free software; you can redistribute it and/or modify it under // the terms of the GNU General Public License as published by the Free // Software Foundation; either version 3, or (at your option) any later // version. // GCC is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License // for more details. // You should have received a copy of the GNU General Public License // along with GCC; see the file COPYING3. If not see // . #include "rust-abi.h" namespace Rust { Rust::ABI get_abi_from_string (const std::string &abi) { if (abi.compare ("rust") == 0) return Rust::ABI::RUST; else if (abi.compare ("rust-call") == 0) return Rust::ABI::RUST; else if (abi.compare ("rust-intrinsic") == 0) return Rust::ABI::INTRINSIC; else if (abi.compare ("C") == 0) return Rust::ABI::C; else if (abi.compare ("cdecl") == 0) return Rust::ABI::CDECL; else if (abi.compare ("stdcall") == 0) return Rust::ABI::STDCALL; else if (abi.compare ("fastcall") == 0) return Rust::ABI::FASTCALL; else if (abi.compare ("sysv64") == 0) return Rust::ABI::SYSV64; else if (abi.compare ("win64") == 0) return Rust::ABI::WIN64; return Rust::ABI::UNKNOWN; } std::string get_string_from_abi (Rust::ABI abi) { switch (abi) { case Rust::ABI::RUST: return "rust"; case Rust::ABI::INTRINSIC: return "rust-intrinsic"; case Rust::ABI::C: return "C"; case Rust::ABI::CDECL: return "cdecl"; case Rust::ABI::STDCALL: return "stdcall"; case Rust::ABI::FASTCALL: return "fastcall"; case Rust::ABI::SYSV64: return "sysv64"; case Rust::ABI::WIN64: return "win64"; case Rust::ABI::UNKNOWN: return "unknown"; } return "unknown"; } } // namespace Rust