1 /* Rust language support definitions for GDB, the GNU debugger. 2 3 Copyright (C) 2016-2017 Free Software Foundation, Inc. 4 5 This file is part of GDB. 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 3 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19 20 #ifndef RUST_LANG_H 21 #define RUST_LANG_H 22 23 struct parser_state; 24 struct type; 25 26 /* The la_parser implementation for Rust. */ 27 extern int rust_parse (struct parser_state *); 28 29 /* The la_error implementation for Rust. */ 30 extern void rustyyerror (const char *); 31 32 /* Return true if TYPE is a tuple type; otherwise false. */ 33 extern bool rust_tuple_type_p (struct type *type); 34 35 /* Return true if TYPE is a tuple struct type; otherwise false. */ 36 extern bool rust_tuple_struct_type_p (struct type *type); 37 38 /* Given a block, find the name of the block's crate. Returns an empty 39 stringif no crate name can be found. */ 40 extern std::string rust_crate_for_block (const struct block *block); 41 42 /* Create a new slice type. NAME is the name of the type. ELT_TYPE 43 is the type of the elements of the slice. USIZE_TYPE is the Rust 44 "usize" type to use. The new type is allocated whereever ELT_TYPE 45 is allocated. */ 46 struct type *rust_slice_type (const char *name, struct type *elt_type, 47 struct type *usize_type); 48 49 #endif /* RUST_LANG_H */ 50