/* Copyright (C) 2011-2023 Patrick H. E. Foubet - E2L Ivry Ecole du Logiciel Libre : https://e2li.org/ This program 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 of the License, or any later version. This program 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 this program. If not, see *******************************************************************/ struct Cercle{ // créez une structure de type rayon : f32, // membre de la structure } trait Calculate { // définir un trait fn aire(&self) -> f32 ; // Définit une méthode de trait. } impl Calculate for Cercle { // implémente la fonction fn aire(&self) -> f32 { // implémente la méthode du trait std::f32::consts::PI * self . rayon * self.rayon } } fn main(){ let obj = Cercle { rayon : 2000.00} ; // crée un objet structuré println ! ("L'aire du cercle est : {}", obj.aire()) ; // dans le println on appelle la méthode }