use crate::padfoot::VarArg; use crate::telepathy; use dbus::tree::MethodErr; use std::collections::HashMap; use super::{Channel, Result}; impl AsRef for std::sync::Arc { fn as_ref(&self) -> &(dyn telepathy::ChannelInterfaceMessages + 'static) { &**self } } impl telepathy::ChannelInterfaceMessages for Channel { fn send_message(&self, message: Vec>, flags: u32) -> Result { println!("Channel::send_message({:?}, {})", message, flags); Err(MethodErr::no_arg()) } fn get_pending_message_content( &self, message_id: u32, parts: Vec, ) -> Result> { println!( "Channel::get_pending_message_content({}, {:?})", message_id, parts ); Err(MethodErr::no_arg()) } fn supported_content_types(&self) -> Result> { println!("Channel::supported_content_types()"); Ok(vec!["text/plain".to_string()]) // TODO: image support } fn message_types(&self) -> Result> { println!("Channel::message_types()"); Ok(vec![0]) // Normal messages. FIXME: MDNs too } fn message_part_support_flags(&self) -> Result { println!("Channel::message_part_support_flags()"); Ok(0) // FIXME: support multipart messages } fn pending_messages(&self) -> Result>>> { println!("Channel::pending_messages()"); Ok(vec![]) // FIXME: check for pending messages } fn delivery_reporting_support(&self) -> Result { println!("Channel::delivery_reporting_support()"); Ok(0) // FIXME: MDNs } }