Skip to main content

gio/auto/
ipv6_tclass_message.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use crate::{EcnCodePoint, SocketControlMessage, ffi};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9    /// error);
10    /// ```text
11    ///
12    ///
13    /// # Implements
14    ///
15    /// [`SocketControlMessageExt`][trait@crate::prelude::SocketControlMessageExt], [`trait@glib::ObjectExt`], [`SocketControlMessageExtManual`][trait@crate::prelude::SocketControlMessageExtManual]
16    #[doc(alias = "GIPv6TclassMessage")]
17    pub struct IPv6TclassMessage(Object<ffi::GIPv6TclassMessage, ffi::GIPv6TclassMessageClass>) @extends SocketControlMessage;
18
19    match fn {
20        type_ => || ffi::g_ipv6_tclass_message_get_type(),
21    }
22}
23
24impl IPv6TclassMessage {
25    /// Creates a new traffic class message with given DSCP and ECN values.
26    /// ## `dscp`
27    /// the DSCP value of the message
28    /// ## `ecn`
29    /// the ECN value of the message
30    ///
31    /// # Returns
32    ///
33    /// a new traffic class message
34    #[doc(alias = "g_ipv6_tclass_message_new")]
35    pub fn new(dscp: u8, ecn: EcnCodePoint) -> IPv6TclassMessage {
36        unsafe {
37            SocketControlMessage::from_glib_full(ffi::g_ipv6_tclass_message_new(
38                dscp,
39                ecn.into_glib(),
40            ))
41            .unsafe_cast()
42        }
43    }
44
45    /// Gets the differentiated services code point stored in @self.
46    ///
47    /// # Returns
48    ///
49    /// A DSCP value as described in [RFC 2474](https://www.rfc-editor.org/rfc/rfc2474.html#section-3).
50    #[doc(alias = "g_ipv6_tclass_message_get_dscp")]
51    #[doc(alias = "get_dscp")]
52    pub fn dscp(&self) -> u8 {
53        unsafe { ffi::g_ipv6_tclass_message_get_dscp(self.to_glib_none().0) }
54    }
55
56    /// Gets the Explicit Congestion Notification code point stored in @self.
57    ///
58    /// # Returns
59    ///
60    /// An ECN value as described in [RFC 3168](https://www.rfc-editor.org/rfc/rfc3168#section-5).
61    #[doc(alias = "g_ipv6_tclass_message_get_ecn")]
62    #[doc(alias = "get_ecn")]
63    pub fn ecn(&self) -> EcnCodePoint {
64        unsafe { from_glib(ffi::g_ipv6_tclass_message_get_ecn(self.to_glib_none().0)) }
65    }
66}