pub struct Dictionary { /* private fields */ }Implementations§
Source§impl Dictionary
impl Dictionary
Sourcepub fn new(xmls: &[&str]) -> Self
pub fn new(xmls: &[&str]) -> Self
Examples found in repository?
example/client.rs (line 18)
17fn main() -> DiameterResult<()> {
18 let dict = Arc::new(Dictionary::new(&[&dictionary::DEFAULT_DICT_XML]));
19
20 let mut ccr: DiameterMessage = DiameterMessage::new(
21 CommandFlag::Request,
22 CommandCode::CreditControl,
23 ApplicationId::Gx,
24 1123158611,
25 3102381851,
26 );
27
28 ccr.add(Avp::new(263, M, None, UTF8String::from_str("a")));
29 ccr.add_avp(264, M, None, Identity::from_str("host.example.com"));
30 ccr.add(Avp::new(
31 296,
32 M,
33 None,
34 Identity::from_str("realm.example.com"),
35 ));
36 ccr.add(Avp::new(263, M, None, UTF8String::from_str("ses;12345888")));
37 ccr.add(Avp::new(416, M, None, Enumerated::new(1)));
38 ccr.add(Avp::new(415, M, None, Unsigned32::new(1000)));
39 ccr.add(Avp::new(
40 264,
41 M,
42 None,
43 Identity::from_str("host.example.com"),
44 ));
45 ccr.add(Avp::new(
46 296,
47 M,
48 None,
49 Identity::from_str("realm.example.com"),
50 ));
51 ccr.add(Avp::new(416, M, None, Enumerated::new(1)));
52 ccr.add(Avp::new(415, M, None, Unsigned32::new(1000)));
53
54 let mut client = DiameterClient::new("127.0.0.1:3868");
55 client.connect()?;
56 let cca: DiameterMessage = client.send_message(&mut ccr, dict)?;
57 let avp = match cca.get_avp(268) {
58 Some(avp) => {
59 match avp.get_value() {
60 AvpValue::Unsigned32(value) => {
61 if *value.value() != 2001 {
62 println!("invalid response status");
63 } else {
64 println!("success response status {}", value.value());
65 }
66 },
67 _ => {
68
69 }
70 }
71 },
72 None => Err(ClientError("avp 268 not found"))?
73 };
74 client.close()?;
75 println!("{:?}", cca);
76 Ok(())
77}pub fn load_xml(&mut self, xml: &str)
pub fn add_avp(&mut self, avp: AvpDefinition)
pub fn get_avp( &self, code: u32, vendor_id: Option<u32>, ) -> Option<&AvpDefinition>
pub fn get_avp_by_name(&self, name: &str) -> Option<&AvpDefinition>
pub fn get_avp_type( &self, code: u32, vendor_id: Option<u32>, ) -> Option<&AvpType>
pub fn get_avp_name(&self, code: u32, vendor_id: Option<u32>) -> Option<&str>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Dictionary
impl RefUnwindSafe for Dictionary
impl Send for Dictionary
impl Sync for Dictionary
impl Unpin for Dictionary
impl UnwindSafe for Dictionary
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more