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