1// Copyright (C) 2022-2023 Free Software Foundation, Inc. 2 3// This program is free software; you can redistribute it and/or modify 4// it under the terms of the GNU General Public License as published by 5// the Free Software Foundation; either version 3 of the License, or 6// (at your option) any later version. 7// 8// This program is distributed in the hope that it will be useful, 9// but WITHOUT ANY WARRANTY; without even the implied warranty of 10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11// GNU General Public License for more details. 12// 13// You should have received a copy of the GNU General Public License 14// along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16#![allow(warnings)] 17 18fn five() -> i32 { 5 } 19 20fn main() { 21 let foo = Foo {x: 5, f: five}; 22 foo.print(); // set breakpoint here 23 println!("Hello, world! {}, {}, {}", foo.f(), (foo.f)(), 24 foo.g ()); 25} 26 27struct Foo { 28 x :i32, 29 f: fn () -> i32, 30} 31 32impl Foo { 33 fn print(&self) { 34 println!("hello {}", self.x) 35 } 36 37 fn f(&self) -> i32 { 6 } 38 fn g(&self) -> i32 { 7 } 39} 40