#[non_exhaustive]pub struct FileNodeCapability {
pub max_file_node_depth: Option<u64>,
pub max_size_file_node_name: u64,
pub forbidden_name_chars: Option<String>,
pub forbidden_node_names: Option<Vec<String>>,
pub file_node_query_sort_options: Vec<String>,
pub may_create_top_level_file_node: bool,
pub web_trash_url: Option<String>,
pub case_insensitive_names: bool,
pub web_url_template: Option<String>,
pub web_write_url_template: Option<String>,
}Expand description
Account-level capability for the JMAP FileNode extension (draft-ietf-jmap-filenode-13 §2.1).
The value of the urn:ietf:params:jmap:filenode key in accountCapabilities.
§Nullable fields
Fields typed Option<T> with no skip_serializing_if are required-and-nullable:
they MUST appear in wire JSON even when the value is null (e.g. "maxFileNodeDepth":null
means no limit). Fields with skip_serializing_if = "Option::is_none" are absent when
None, but none exist on this struct — all optional fields here are nullable.
§maxSizeFileNodeName constraint
Per §2.1 the server MUST set this to at least 100. This crate does not enforce the constraint at the type level (that would require a newtype); the server implementation is responsible for the invariant.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.max_file_node_depth: Option<u64>Maximum depth of the FileNode hierarchy (one more than the max ancestor count),
or null for no limit.
Always serialized (as null when None).
max_size_file_node_name: u64Maximum length, in UTF-8 octets, for a FileNode name. MUST be ≥ 100.
forbidden_name_chars: Option<String>Characters forbidden in FileNode names, each character individually forbidden.
null means the server imposes no character restrictions beyond Net-Unicode.
Always serialized (as null when None).
forbidden_node_names: Option<Vec<String>>Complete names the server will not accept (compared case-insensitively).
null means no specific names are forbidden.
Always serialized (as null when None).
file_node_query_sort_options: Vec<String>All sort property values supported for the "property" field of a Comparator
object in FileNode/query.
may_create_top_level_file_node: boolIf true, the user may create a FileNode with a null parentId in this account.
web_trash_url: Option<String>Web URL for the folder with the "trash" role, or null if unavailable.
Always serialized (as null when None).
case_insensitive_names: boolIf true, the server treats file names as case-insensitive for all name
collision checks (including the sibling uniqueness constraint and onExists
handling). The server preserves the original case as provided by the client.
web_url_template: Option<String>URI Template (level 1) for viewing a node on the web, with {id} variable.
null if no web URL is available.
Always serialized (as null when None).
web_write_url_template: Option<String>URI Template (level 1) for direct HTTP writes to a file node, with {id}
variable. null if direct HTTP writes are not supported.
Always serialized (as null when None).
Trait Implementations§
Source§impl Clone for FileNodeCapability
impl Clone for FileNodeCapability
Source§fn clone(&self) -> FileNodeCapability
fn clone(&self) -> FileNodeCapability
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FileNodeCapability
impl Debug for FileNodeCapability
Source§impl<'de> Deserialize<'de> for FileNodeCapability
impl<'de> Deserialize<'de> for FileNodeCapability
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>,
Source§impl PartialEq for FileNodeCapability
impl PartialEq for FileNodeCapability
Source§fn eq(&self, other: &FileNodeCapability) -> bool
fn eq(&self, other: &FileNodeCapability) -> bool
self and other values to be equal, and is used by ==.