Struct canadensis_data_types::uavcan::file::list_0_1::ListRequest
source · pub struct ListRequest {
pub entry_index: u32,
pub directory_path: Path,
}
Expand description
uavcan.file.List.0.1
Size ranges from 9 to 121 bytes
This service can be used to list a remote directory, one entry per request.
The client should query each entry independently, iterating ‘entry_index’ from 0 until the last entry. When the index reaches the number of elements in the directory, the server will report that there is no such entry by returning an empty name.
The field entry_index shall be applied to an ordered list of directory entries (e.g. alphabetically ordered). The exact sorting criteria does not matter as long as it provides the same ordering for subsequent service calls.
Observe that this listing operation is fundamentally non-atomic. The caller shall beware of possible race conditions and is responsible for handling them properly. Particularly, consider what happens if a new item is inserted into the directory between two subsequent calls: if the item happened to be inserted at the index that is lower than the index of the next request, the next returned item (or several, if more items were inserted) will repeat the ones that were listed earlier. The caller should handle that properly, either by ignoring the repeated items or by restarting the listing operation from the beginning (index 0).
Fields§
§entry_index: u32
saturated uint32
Always aligned, size 32 bits
directory_path: Path
uavcan.file.Path.1.0
Always aligned, size ranges from 8 to 904 bits
Trait Implementations§
source§impl DataType for ListRequest
impl DataType for ListRequest
source§const EXTENT_BYTES: Option<u32> = _
const EXTENT_BYTES: Option<u32> = _
This type is delimited with an extent of 300 bytes.
source§impl Deserialize for ListRequest
impl Deserialize for ListRequest
source§fn deserialize(cursor: &mut ReadCursor<'_>) -> Result<Self, DeserializeError>where
Self: Sized,
fn deserialize(cursor: &mut ReadCursor<'_>) -> Result<Self, DeserializeError>where Self: Sized,
source§fn deserialize_from_bytes(bytes: &[u8]) -> Result<Self, DeserializeError>where
Self: Sized,
fn deserialize_from_bytes(bytes: &[u8]) -> Result<Self, DeserializeError>where Self: Sized,
deserialize
source§impl Serialize for ListRequest
impl Serialize for ListRequest
source§fn size_bits(&self) -> usize
fn size_bits(&self) -> usize
source§fn serialize(&self, cursor: &mut WriteCursor<'_>)
fn serialize(&self, cursor: &mut WriteCursor<'_>)
source§fn serialize_to_bytes(&self, bytes: &mut [u8])
fn serialize_to_bytes(&self, bytes: &mut [u8])
serialize