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