pub struct BuildBazelRemoteExecutionV2Directory {
pub directories: Option<Vec<BuildBazelRemoteExecutionV2DirectoryNode>>,
pub files: Option<Vec<BuildBazelRemoteExecutionV2FileNode>>,
pub node_properties: Option<BuildBazelRemoteExecutionV2NodeProperties>,
pub symlinks: Option<Vec<BuildBazelRemoteExecutionV2SymlinkNode>>,
}
Expand description
A Directory
represents a directory node in a file tree, containing zero or more children FileNodes, DirectoryNodes and SymlinkNodes. Each Node
contains its name in the directory, either the digest of its content (either a file blob or a Directory
proto) or a symlink target, as well as possibly some metadata about the file or directory. In order to ensure that two equivalent directory trees hash to the same value, the following restrictions MUST be obeyed when constructing a a Directory
: * Every child in the directory must have a path of exactly one segment. Multiple levels of directory hierarchy may not be collapsed. * Each child in the directory must have a unique path segment (file name). Note that while the API itself is case-sensitive, the environment where the Action is executed may or may not be case-sensitive. That is, it is legal to call the API with a Directory that has both “Foo” and “foo” as children, but the Action may be rejected by the remote system upon execution. * The files, directories and symlinks in the directory must each be sorted in lexicographical order by path. The path strings must be sorted by code point, equivalently, by UTF-8 bytes. * The NodeProperties of files, directories, and symlinks must be sorted in lexicographical order by property name. A Directory
that obeys the restrictions is said to be in canonical form. As an example, the following could be used for a file named bar
and a directory named foo
with an executable file named baz
(hashes shortened for readability): json // (Directory proto) { files: [ { name: "bar", digest: { hash: "4a73bc9d03...", size: 65534 }, node_properties: [ { "name": "MTime", "value": "2017-01-15T01:30:15.01Z" } ] } ], directories: [ { name: "foo", digest: { hash: "4cf2eda940...", size: 43 } } ] } // (Directory proto with hash "4cf2eda940..." and size 43) { files: [ { name: "baz", digest: { hash: "b2c941073e...", size: 1294, }, is_executable: true } ] }
This type is not used in any activity, and only used as part of another schema.
Fields§
§directories: Option<Vec<BuildBazelRemoteExecutionV2DirectoryNode>>
The subdirectories in the directory.
files: Option<Vec<BuildBazelRemoteExecutionV2FileNode>>
The files in the directory.
node_properties: Option<BuildBazelRemoteExecutionV2NodeProperties>
no description provided
symlinks: Option<Vec<BuildBazelRemoteExecutionV2SymlinkNode>>
The symlinks in the directory.
Trait Implementations§
Source§impl Clone for BuildBazelRemoteExecutionV2Directory
impl Clone for BuildBazelRemoteExecutionV2Directory
Source§fn clone(&self) -> BuildBazelRemoteExecutionV2Directory
fn clone(&self) -> BuildBazelRemoteExecutionV2Directory
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Default for BuildBazelRemoteExecutionV2Directory
impl Default for BuildBazelRemoteExecutionV2Directory
Source§fn default() -> BuildBazelRemoteExecutionV2Directory
fn default() -> BuildBazelRemoteExecutionV2Directory
Source§impl<'de> Deserialize<'de> for BuildBazelRemoteExecutionV2Directory
impl<'de> Deserialize<'de> for BuildBazelRemoteExecutionV2Directory
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>,
impl Part for BuildBazelRemoteExecutionV2Directory
Auto Trait Implementations§
impl Freeze for BuildBazelRemoteExecutionV2Directory
impl RefUnwindSafe for BuildBazelRemoteExecutionV2Directory
impl Send for BuildBazelRemoteExecutionV2Directory
impl Sync for BuildBazelRemoteExecutionV2Directory
impl Unpin for BuildBazelRemoteExecutionV2Directory
impl UnwindSafe for BuildBazelRemoteExecutionV2Directory
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§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more