1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
use Result;
use Path;
/// Owned handle to one open file instance.
///
/// A descriptor is the handle to the instance; this contract does not require
/// exposing a numeric OS descriptor. [`crate::Fd`] is a backend-assigned numeric
/// slot, while implementations such as `vfsi_sync::OpenFile` own cleanup.
///
/// This is neither an underlying filesystem-object ID nor a protocol
/// filehandle such as an NFS filehandle. Separate opens of the same object
/// yield separate instances. Borrowed requests preserve the instance's
/// lifetime; clients validate connection ownership before dispatch.
///
/// Clients validate ownership before I/O and report positional progress.
/// Standard-I/O adapters manage their own independent cursors. `ReadOp` borrows handles directly; constructing it does no I/O.
/// A backend must retain ownership of live descriptors through cleanup failures.