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 more