Struct x11rb_protocol::protocol::xproto::GetPropertyReply
source · pub struct GetPropertyReply {
pub format: u8,
pub sequence: u16,
pub length: u32,
pub type_: Atom,
pub bytes_after: u32,
pub value_len: u32,
pub value: Vec<u8>,
}
Expand description
§Fields
format
- Specifies whether the data should be viewed as a list of 8-bit, 16-bit, or 32-bit quantities. Possible values are 8, 16, and 32. This information allows the X server to correctly perform byte-swap operations as necessary.type
- The actual type of the property (an atom).bytes_after
- The number of bytes remaining to be read in the property if a partial read was performed.value_len
- The length of value. You should use the corresponding accessor instead of this field.
Fields§
§format: u8
§sequence: u16
§length: u32
§type_: Atom
§bytes_after: u32
§value_len: u32
§value: Vec<u8>
Implementations§
source§impl GetPropertyReply
impl GetPropertyReply
sourcepub fn value8(&self) -> Option<impl Iterator<Item = u8> + '_>
pub fn value8(&self) -> Option<impl Iterator<Item = u8> + '_>
Iterate over the contained value if its format is 8.
This function checks if the format
member of the reply
is 8. If it it is not, None
is returned. Otherwise
and iterator is returned that interprets the value in
this reply as type u8
.
§Examples
Successfully iterate over the value:
// First, we have to 'invent' a GetPropertyReply.
let reply = x11rb_protocol::protocol::xproto::GetPropertyReply {
format: 8,
sequence: 0,
length: 0, // This value is incorrect
type_: 0, // This value is incorrect
bytes_after: 0,
value_len: 4,
value: vec![1, 2, 3, 4],
};
// This is the actual example: Iterate over the value.
let mut iter = reply.value8().unwrap();
assert_eq!(iter.next(), Some(1));
assert_eq!(iter.next(), Some(2));
assert_eq!(iter.next(), Some(3));
assert_eq!(iter.next(), Some(4));
assert_eq!(iter.next(), None);
An iterator is only returned when the format
is correct.
The following example shows this.
// First, we have to 'invent' a GetPropertyReply.
let reply = x11rb_protocol::protocol::xproto::GetPropertyReply {
format: 42, // Not allowed in X11, but used for the example
sequence: 0,
length: 0, // This value is incorrect
type_: 0, // This value is incorrect
bytes_after: 0,
value_len: 4,
value: vec![1, 2, 3, 4],
};
assert!(reply.value8().is_none());
sourcepub fn value16(&self) -> Option<impl Iterator<Item = u16> + '_>
pub fn value16(&self) -> Option<impl Iterator<Item = u16> + '_>
Iterate over the contained value if its format is 16.
This function checks if the format
member of the reply
is 16. If it it is not, None
is returned. Otherwise
and iterator is returned that interprets the value in
this reply as type u16
.
§Examples
Successfully iterate over the value:
// First, we have to 'invent' a GetPropertyReply.
let reply = x11rb_protocol::protocol::xproto::GetPropertyReply {
format: 16,
sequence: 0,
length: 0, // This value is incorrect
type_: 0, // This value is incorrect
bytes_after: 0,
value_len: 4,
value: vec![1, 1, 2, 2],
};
// This is the actual example: Iterate over the value.
let mut iter = reply.value16().unwrap();
assert_eq!(iter.next(), Some(257));
assert_eq!(iter.next(), Some(514));
assert_eq!(iter.next(), None);
An iterator is only returned when the format
is correct.
The following example shows this.
// First, we have to 'invent' a GetPropertyReply.
let reply = x11rb_protocol::protocol::xproto::GetPropertyReply {
format: 42, // Not allowed in X11, but used for the example
sequence: 0,
length: 0, // This value is incorrect
type_: 0, // This value is incorrect
bytes_after: 0,
value_len: 4,
value: vec![1, 2, 3, 4],
};
assert!(reply.value16().is_none());
sourcepub fn value32(&self) -> Option<impl Iterator<Item = u32> + '_>
pub fn value32(&self) -> Option<impl Iterator<Item = u32> + '_>
Iterate over the contained value if its format is 32.
This function checks if the format
member of the reply
is 32. If it it is not, None
is returned. Otherwise
and iterator is returned that interprets the value in
this reply as type u32
.
§Examples
Successfully iterate over the value:
// First, we have to 'invent' a GetPropertyReply.
let reply = x11rb_protocol::protocol::xproto::GetPropertyReply {
format: 32,
sequence: 0,
length: 0, // This value is incorrect
type_: 0, // This value is incorrect
bytes_after: 0,
value_len: 4,
value: vec![1, 2, 2, 1],
};
// This is the actual example: Iterate over the value.
let mut iter = reply.value32().unwrap();
assert_eq!(iter.next(), Some(16908801));
assert_eq!(iter.next(), None);
An iterator is only returned when the format
is correct.
The following example shows this.
// First, we have to 'invent' a GetPropertyReply.
let reply = x11rb_protocol::protocol::xproto::GetPropertyReply {
format: 42, // Not allowed in X11, but used for the example
sequence: 0,
length: 0, // This value is incorrect
type_: 0, // This value is incorrect
bytes_after: 0,
value_len: 4,
value: vec![1, 2, 3, 4],
};
assert!(reply.value32().is_none());
Trait Implementations§
source§impl Clone for GetPropertyReply
impl Clone for GetPropertyReply
source§fn clone(&self) -> GetPropertyReply
fn clone(&self) -> GetPropertyReply
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for GetPropertyReply
impl Debug for GetPropertyReply
source§impl Default for GetPropertyReply
impl Default for GetPropertyReply
source§fn default() -> GetPropertyReply
fn default() -> GetPropertyReply
source§impl<'de> Deserialize<'de> for GetPropertyReply
impl<'de> Deserialize<'de> for GetPropertyReply
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl From<GetPropertyReply> for Reply
impl From<GetPropertyReply> for Reply
source§fn from(reply: GetPropertyReply) -> Reply
fn from(reply: GetPropertyReply) -> Reply
source§impl Hash for GetPropertyReply
impl Hash for GetPropertyReply
source§impl Ord for GetPropertyReply
impl Ord for GetPropertyReply
source§fn cmp(&self, other: &GetPropertyReply) -> Ordering
fn cmp(&self, other: &GetPropertyReply) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for GetPropertyReply
impl PartialEq for GetPropertyReply
source§fn eq(&self, other: &GetPropertyReply) -> bool
fn eq(&self, other: &GetPropertyReply) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for GetPropertyReply
impl PartialOrd for GetPropertyReply
source§fn partial_cmp(&self, other: &GetPropertyReply) -> Option<Ordering>
fn partial_cmp(&self, other: &GetPropertyReply) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more