Struct GetPropertyReply
pub struct GetPropertyReply {
pub format: u8,
pub sequence: u16,
pub length: u32,
pub type_: u32,
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_: u32
§bytes_after: u32
§value_len: u32
§value: Vec<u8>
Implementations§
§impl GetPropertyReply
impl GetPropertyReply
pub 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());
pub 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());
pub 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§
§impl Clone for GetPropertyReply
impl Clone for GetPropertyReply
§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§impl Debug for GetPropertyReply
impl Debug for GetPropertyReply
§impl Default for GetPropertyReply
impl Default for GetPropertyReply
§fn default() -> GetPropertyReply
fn default() -> GetPropertyReply
§impl From<GetPropertyReply> for Reply
impl From<GetPropertyReply> for Reply
§fn from(reply: GetPropertyReply) -> Reply
fn from(reply: GetPropertyReply) -> Reply
§impl Serialize for GetPropertyReply
impl Serialize for GetPropertyReply
§impl TryParse for GetPropertyReply
impl TryParse for GetPropertyReply
§fn try_parse(
initial_value: &[u8],
) -> Result<(GetPropertyReply, &[u8]), ParseError>
fn try_parse( initial_value: &[u8], ) -> Result<(GetPropertyReply, &[u8]), ParseError>
Auto Trait Implementations§
impl Freeze for GetPropertyReply
impl RefUnwindSafe for GetPropertyReply
impl Send for GetPropertyReply
impl Sync for GetPropertyReply
impl Unpin for GetPropertyReply
impl UnwindSafe for GetPropertyReply
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)