1*7594170eSAndroid Build Coastguard Worker // Copyright (C) 2023 The Android Open Source Project 2*7594170eSAndroid Build Coastguard Worker 3*7594170eSAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License"); 4*7594170eSAndroid Build Coastguard Worker // you may not use this file except in compliance with the License. 5*7594170eSAndroid Build Coastguard Worker // You may obtain a copy of the License at 6*7594170eSAndroid Build Coastguard Worker 7*7594170eSAndroid Build Coastguard Worker // http://www.apache.org/licenses/LICENSE-2.0 8*7594170eSAndroid Build Coastguard Worker 9*7594170eSAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software 10*7594170eSAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS, 11*7594170eSAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*7594170eSAndroid Build Coastguard Worker // See the License for the specific language governing permissions and 13*7594170eSAndroid Build Coastguard Worker // limitations under the License. 14*7594170eSAndroid Build Coastguard Worker 15*7594170eSAndroid Build Coastguard Worker /// Object that displays a greeting. 16*7594170eSAndroid Build Coastguard Worker pub struct Greeter { 17*7594170eSAndroid Build Coastguard Worker greeting: String, 18*7594170eSAndroid Build Coastguard Worker } 19*7594170eSAndroid Build Coastguard Worker 20*7594170eSAndroid Build Coastguard Worker /// Implementation of Greeter. 21*7594170eSAndroid Build Coastguard Worker impl Greeter { 22*7594170eSAndroid Build Coastguard Worker /// Constructs a new `Greeter`. 23*7594170eSAndroid Build Coastguard Worker /// 24*7594170eSAndroid Build Coastguard Worker /// # Examples 25*7594170eSAndroid Build Coastguard Worker /// 26*7594170eSAndroid Build Coastguard Worker /// ``` 27*7594170eSAndroid Build Coastguard Worker /// use hello_lib::greeter::Greeter; 28*7594170eSAndroid Build Coastguard Worker /// 29*7594170eSAndroid Build Coastguard Worker /// let greeter = Greeter::new("Hello"); 30*7594170eSAndroid Build Coastguard Worker /// ``` new(greeting: &str) -> Greeter31*7594170eSAndroid Build Coastguard Worker pub fn new(greeting: &str) -> Greeter { 32*7594170eSAndroid Build Coastguard Worker Greeter { greeting: greeting.to_string() } 33*7594170eSAndroid Build Coastguard Worker } 34*7594170eSAndroid Build Coastguard Worker 35*7594170eSAndroid Build Coastguard Worker /// Returns the greeting as a string. 36*7594170eSAndroid Build Coastguard Worker /// 37*7594170eSAndroid Build Coastguard Worker /// # Examples 38*7594170eSAndroid Build Coastguard Worker /// 39*7594170eSAndroid Build Coastguard Worker /// ``` 40*7594170eSAndroid Build Coastguard Worker /// use hello_lib::greeter::Greeter; 41*7594170eSAndroid Build Coastguard Worker /// 42*7594170eSAndroid Build Coastguard Worker /// let greeter = Greeter::new("Hello"); 43*7594170eSAndroid Build Coastguard Worker /// let greeting = greeter.greeting("World"); 44*7594170eSAndroid Build Coastguard Worker /// ``` greeting(&self, thing: &str) -> String45*7594170eSAndroid Build Coastguard Worker pub fn greeting(&self, thing: &str) -> String { 46*7594170eSAndroid Build Coastguard Worker format!("{} {}", &self.greeting, thing) 47*7594170eSAndroid Build Coastguard Worker } 48*7594170eSAndroid Build Coastguard Worker 49*7594170eSAndroid Build Coastguard Worker /// Prints the greeting. 50*7594170eSAndroid Build Coastguard Worker /// 51*7594170eSAndroid Build Coastguard Worker /// # Examples 52*7594170eSAndroid Build Coastguard Worker /// 53*7594170eSAndroid Build Coastguard Worker /// ``` 54*7594170eSAndroid Build Coastguard Worker /// use hello_lib::greeter::Greeter; 55*7594170eSAndroid Build Coastguard Worker /// 56*7594170eSAndroid Build Coastguard Worker /// let greeter = Greeter::new("Hello"); 57*7594170eSAndroid Build Coastguard Worker /// greeter.greet("World"); 58*7594170eSAndroid Build Coastguard Worker /// ``` greet(&self, thing: &str)59*7594170eSAndroid Build Coastguard Worker pub fn greet(&self, thing: &str) { 60*7594170eSAndroid Build Coastguard Worker println!("{} {}", &self.greeting, thing); 61*7594170eSAndroid Build Coastguard Worker } 62*7594170eSAndroid Build Coastguard Worker } 63