Warning, /sdk/rust-qt-binding-generator/tests/rust_functions/src/implementation.rs is written in an unsupported language. File is not indexed.
0001 #![allow(unused_imports)] 0002 #![allow(unused_variables)] 0003 #![allow(dead_code)] 0004 use interface::*; 0005 0006 pub struct Person { 0007 emit: PersonEmitter, 0008 user_name: String, 0009 } 0010 0011 impl PersonTrait for Person { 0012 fn new(emit: PersonEmitter) -> Person { 0013 Person { 0014 emit: emit, 0015 user_name: String::new(), 0016 } 0017 } 0018 fn emit(&mut self) -> &mut PersonEmitter { 0019 &mut self.emit 0020 } 0021 fn user_name(&self) -> &str { 0022 &self.user_name 0023 } 0024 fn set_user_name(&mut self, value: String) { 0025 self.user_name = value; 0026 self.emit.user_name_changed(); 0027 } 0028 0029 fn double_name(&mut self) { 0030 self.user_name = format!("{}{}", self.user_name, self.user_name); 0031 } 0032 0033 fn append(&mut self, suffix: String, amount: u32) { 0034 for _ in 0..amount { 0035 self.user_name += &suffix; 0036 } 0037 } 0038 0039 fn greet(&self, name: String) -> String { 0040 format!("Hello {}, my name is {}, how is it going?", name, self.user_name) 0041 } 0042 0043 fn vowels_in_name(&self) -> u8 { 0044 self.user_name.chars().fold(0, |count, ch| match ch { 0045 'a'|'e'|'i'|'o'|'u' => count + 1, 0046 _ => count 0047 }) 0048 } 0049 0050 fn quote(&self, prefix: String, suffix: String) -> String { 0051 format!("{}{}{}", prefix, self.user_name, suffix) 0052 } 0053 fn quote_bytes(&self, prefix: &[u8], suffix: &[u8]) -> Vec<u8> { 0054 let prefix = String::from_utf8_lossy(prefix); 0055 let suffix = String::from_utf8_lossy(suffix); 0056 format!("{}{}{}", prefix, self.user_name, suffix).into() 0057 } 0058 } 0059