Expand description
Product-neutral WebDAV protocol engine contracts for Aster services.
This crate owns WebDAV paths, request parsing, protocol preconditions, backend ports,
response models, and observable operation events. Product repositories own authentication,
authorization, workspace scope, persistence, storage policy, quota, and audit semantics.
Re-exports§
pub use backend::DavBackendError;pub use backend::DavBackendErrorKind;pub use backend::DavContentStream;pub use backend::DavDirectoryEntry;pub use backend::DavDirectoryEnumerator;pub use backend::DavDirectoryPage;pub use backend::DavDirectoryPageRequest;pub use backend::DavDownloadOpenError;pub use backend::DavDownloadSource;pub use backend::DavFileSystem;pub use backend::DavIfResourceState;pub use backend::DavIfStateResolver;pub use backend::DavLock;pub use backend::DavLockAcquireRequest;pub use backend::DavLockAcquireResult;pub use backend::DavLockError;pub use backend::DavLockPreflightError;pub use backend::DavLockSystem;pub use backend::DavMetaData;pub use backend::DavMutationCredentials;pub use backend::DavOpenedDownload;pub use backend::DavProp;pub use backend::DavRandomWriteHandle;pub use backend::DavRandomWriteSystem;pub use backend::DavResourceKind;pub use backend::DavWriteHandle;pub use backend::DavWriteOptions;pub use backend::DavWriteSystem;pub use backend::FsError;pub use backend::FsFuture;pub use backend::FsResult;pub use backend::LsFuture;pub use capability::DavAccessControlExtension;pub use capability::DavAccessControlSupport;pub use capability::DavActivityExtension;pub use capability::DavActivitySupport;pub use capability::DavAddMemberExtension;pub use capability::DavAddMemberSupport;pub use capability::DavAutoVersion;pub use capability::DavBaselineExtension;pub use capability::DavBaselineSupport;pub use capability::DavBindingsExtension;pub use capability::DavBindingsSupport;pub use capability::DavCapabilityContext;pub use capability::DavCapabilityDeclaration;pub use capability::DavCapabilityEvaluationError;pub use capability::DavCapabilityPlanError;pub use capability::DavCapabilityProfile;pub use capability::DavCapabilityProvider;pub use capability::DavCapabilitySnapshot;pub use capability::DavCapabilityTarget;pub use capability::DavCheckoutInPlaceExtension;pub use capability::DavCheckoutInPlaceSupport;pub use capability::DavClass1Profile;pub use capability::DavClass1Support;pub use capability::DavClass2And3Profile;pub use capability::DavClass2Profile;pub use capability::DavClass2Support;pub use capability::DavClass3Profile;pub use capability::DavClass3Support;pub use capability::DavCollectionSyncExtension;pub use capability::DavCollectionSyncSupport;pub use capability::DavCompatibilityCapabilities;pub use capability::DavComplianceClasses;pub use capability::DavCurrentPrincipalExtension;pub use capability::DavCurrentPrincipalSupport;pub use capability::DavExtendedMkcolExtension;pub use capability::DavExtendedMkcolSupport;pub use capability::DavExtensionMarker;pub use capability::DavLabelExtension;pub use capability::DavLabelSupport;pub use capability::DavLockingCapability;pub use capability::DavMergeExtension;pub use capability::DavMergeSupport;pub use capability::DavMethodGateError;pub use capability::DavNonDavProfile;pub use capability::DavOrderedCollectionsExtension;pub use capability::DavOrderedCollectionsSupport;pub use capability::DavPartialPutCapability;pub use capability::DavPartialPutSupport;pub use capability::DavPatchBodyPolicy;pub use capability::DavPatchCapability;pub use capability::DavPatchFormat;pub use capability::DavPatchSupport;pub use capability::DavPreferExtension;pub use capability::DavPreferSupport;pub use capability::DavPrivateUpdateRangeCapability;pub use capability::DavPrivateUpdateRangeSupport;pub use capability::DavQuotaExtension;pub use capability::DavQuotaSupport;pub use capability::DavRedirectReferencesExtension;pub use capability::DavRedirectReferencesSupport;pub use capability::DavResourceState;pub use capability::DavSearchCapabilities;pub use capability::DavSearchExtension;pub use capability::DavSearchGrammar;pub use capability::DavSearchSupport;pub use capability::DavUpdateExtension;pub use capability::DavUpdateSupport;pub use capability::DavVersionControlExtension;pub use capability::DavVersionControlSupport;pub use capability::DavVersionControlledCollectionExtension;pub use capability::DavVersionControlledCollectionSupport;pub use capability::DavVersionHistoryExtension;pub use capability::DavVersionHistorySupport;pub use capability::DavVersioningCapabilities;pub use capability::DavVersioningState;pub use capability::DavWithExtension;pub use capability::DavWithPartialPut;pub use capability::DavWithPatch;pub use capability::DavWithPrivateUpdateRange;pub use capability::DavWorkingResourceExtension;pub use capability::DavWorkingResourceSupport;pub use capability::DavWorkspaceExtension;pub use capability::DavWorkspaceSupport;pub use capability::DavWriteCapabilities;pub use capability::DavWritePrecondition;pub use capability::plan_capabilities;pub use capability::plan_capabilities_with_provider;pub use conditional::DavConditionalEvaluationError;pub use conditional::DavConditionalOutcome;pub use conditional::DavConditionalPlan;pub use conditional::DavConditionalPlanError;pub use conditional::DavConditionalResource;pub use conditional::DavRangeEvaluation;pub use conditional::plan_conditionals;pub use conditional::plan_conditionals_with_backends;pub use conditional::plan_http_conditionals;pub use deltav::DavExpandPropertyError;pub use deltav::DavExpandPropertyProvider;pub use deltav::DavExpandPropertyRequest;pub use deltav::DavExpandPropertySelection;pub use deltav::DavExpandPropertyValue;pub use deltav::DavReportErrorResponsePolicy;pub use deltav::DavReportLimits;pub use deltav::DavReportPlanError;pub use deltav::DavReportRequest;pub use deltav::DavVersionControlAction;pub use deltav::DavVersionControlPlan;pub use deltav::DavVersionControlPlanError;pub use deltav::DavVersionControlPort;pub use deltav::DavVersionControlResult;pub use deltav::DavVersionProperty;pub use deltav::DavVersionPropertyResult;pub use deltav::DavVersionReportItem;pub use deltav::DavVersionTreeRequest;pub use deltav::DavVersioningMethodPlan;pub use deltav::DavVersioningPrecondition;pub use deltav::execute_expand_property;pub use deltav::execute_version_control;pub use deltav::expand_property_error_response;pub use deltav::plan_report_request;pub use deltav::plan_report_request_with_limits;pub use deltav::plan_version_control_request;pub use deltav::plan_versioning_method;pub use deltav::report_plan_error_response;pub use deltav::version_control_plan_error_response;pub use deltav::version_control_response;pub use deltav::version_tree_response;pub use deltav::version_tree_response_with_limits;pub use deltav::versioning_precondition_response;pub use event::DavEvent;pub use event::DavEventOutcome;pub use event::DavEventSink;pub use event::DavObservationError;pub use event::DavOperation;pub use event::DavOperationObservations;pub use event::DavProtocolFailureClass;pub use event::DavStreamOutcome;pub use event::NoopDavEventSink;pub use extension::DavExtensionBodyKind;pub use extension::DavExtensionDescriptor;pub use extension::DavExtensionMethod;pub use extension::DavExtensionPackage;pub use extension::DavExtensionSet;pub use extension::DavExtensionSetIter;pub use extension::DavLiveProperty;pub use extension::DavPreferenceSet;pub use extension::DavReportType;pub use extension::DavResourceStateSet;pub use extension::extension_body_kind;pub use extension::extension_methods;pub use lock::DavLockEnforcementError;pub use lock::DavLockPlan;pub use lock::DavLockPlanError;pub use lock::enforce_parent_unlocked;pub use lock::enforce_unlocked;pub use lock::lock_acquire_success_response;pub use lock::lock_conflict_response;pub use lock::lock_discovery_element;pub use lock::lock_limit_response;pub use lock::lock_refresh_success_response;pub use lock::lock_xml_error_response;pub use lock::plan_lock_request;pub use lock::unlock_success_response;pub use lock::unlock_token_mismatch_response;pub use lock::unsubmitted_lock_conflicts;pub use multistatus::DavMultiStatusError;pub use multistatus::DavMultiStatusErrorKind;pub use multistatus::DavMultiStatusLimits;pub use multistatus::DavMultiStatusProgress;pub use multistatus::DavMultiStatusSourceError;pub use multistatus::DavMultiStatusStream;pub use multistatus::DavMultiStatusWriter;pub use multistatus::dav_multistatus_bytes;pub use multistatus::multistatus_stream_response;pub use multistatus::multistatus_stream_response_with_cancellation;pub use mutation::DavMutationCommand;pub use mutation::DavMutationComposeError;pub use mutation::DavMutationExecutorLimits;pub use mutation::DavMutationOperation;pub use mutation::DavMutationOutcome;pub use mutation::DavMutationPort;pub use mutation::DavMutationRequest;pub use mutation::DavMutationStepError;pub use mutation::DavMutationStepKind;pub use mutation::DavMutationStop;pub use mutation::DavMutationTargetRole;pub use mutation::execute_recursive_mutation;pub use mutation::mutation_outcome_response;pub use patch::DavPatchPlan;pub use patch::DavPatchPlanError;pub use patch::patch_plan_error_response;pub use patch::plan_patch_request;pub use path::DavPath;pub use path::DavPathError;pub use path::child_relative_path;pub use path::decode_relative_path;pub use path::display_name;pub use path::encode_href;pub use path::href_for_dav_path;pub use path::href_for_relative;pub use path::parent_relative_path;pub use preference::DavPreferencePlan;pub use preference::plan_preferences;pub use property::DavCurrentPrincipal;pub use property::DavLivePropertyError;pub use property::DavLivePropertyEvaluationError;pub use property::DavLivePropertyMetadata;pub use property::DavLivePropertyProvider;pub use property::DavLivePropertyRequirements;pub use property::DavLivePropertyValueSnapshot;pub use property::DavProppatchAtomicPlan;pub use property::DavQuotaSnapshot;pub use property::build_live_propfind_item;pub use property::build_live_propfind_item_with_provider;pub use property::build_proppatch_item;pub use property::format_creation_date;pub use property::is_protected_live_property;pub use property::live_property_requirements;pub use property::plan_atomic_proppatch;pub use property::property_multistatus_response;pub use property::property_multistatus_response_with_limits;pub use property::propfind_finite_depth_response;pub use property::propfind_request_label;pub use property::propfind_xml_error_response;pub use property::proppatch_xml_error_response;pub use protocol::DavIfEvaluationError;pub use protocol::DavProtocolError;pub use protocol::DavProtocolErrorKind;pub use protocol::Depth;pub use protocol::Destination;pub use protocol::IfHeader;pub use protocol::IfResourceGroup;pub use protocol::IfStateCondition;pub use protocol::IfStateList;pub use protocol::destination_relative_path;pub use protocol::enforce_if_header;pub use protocol::enforce_if_header_with_backends;pub use protocol::parse_copy_depth;pub use protocol::parse_delete_depth;pub use protocol::parse_if_header;pub use protocol::parse_lock_depth;pub use protocol::parse_lock_timeout;pub use protocol::parse_lock_token_header;pub use protocol::parse_move_depth;pub use protocol::parse_overwrite;pub use protocol::parse_propfind_depth;pub use protocol::submitted_lock_tokens;pub use protocol::submitted_lock_tokens_for_path;pub use put::DavPartialPutPlan;pub use put::DavPutPlan;pub use put::DavPutPlanError;pub use put::DavPutResourceState;pub use put::DavPutResponseError;pub use put::DavPutWritePlan;pub use put::plan_put_request;pub use put::put_plan_error_response;pub use put::put_success_response;pub use request::DavBodyPolicy;pub use request::DavMethod;pub use request::DavMethodSet;pub use request::DavMethodSetIter;pub use request::DavRequestHead;pub use request::DavRequestOrigin;pub use request::DavRequestTarget;pub use resource::DavCopyMoveMethod;pub use resource::DavCopyMovePlan;pub use resource::DavMutationFailure;pub use resource::DavMutationPlanError;pub use resource::DavMutationResponseError;pub use resource::DavParentCollectionError;pub use resource::collection_created_response;pub use resource::delete_success_response;pub use resource::enforce_parent_collection;pub use resource::is_descendant_path;pub use resource::mutation_multistatus_response;pub use resource::mutation_multistatus_response_with_limits;pub use resource::mutation_plan_error_response;pub use resource::mutation_success_response;pub use resource::plan_copy_move_request;pub use resource::replace_relative_prefix;pub use resource::resource_identity_path;pub use resource::same_resource_path;pub use resource::validate_collection_create_target;pub use resource::validate_delete_target;pub use response::DavBodyError;pub use response::DavDownloadBody;pub use response::DavDownloadPlan;pub use response::DavDownloadPlanError;pub use response::DavMultiRangeLimits;pub use response::DavMultiRangePolicy;pub use response::DavMultipartDownloadPlan;pub use response::DavMultipartSegmentPlan;pub use response::DavRangeLimitBehavior;pub use response::DavResponse;pub use response::DavResponseBody;pub use response::backend_error_response;pub use response::body_error_response;pub use response::capability_evaluation_error_response;pub use response::conditional_plan_error_response;pub use response::gate_method;pub use response::method_not_allowed_response;pub use response::open_download;pub use response::options_response;pub use response::plan_download_response;pub use response::plan_download_response_with_multi_range;pub use response::protocol_error_response;pub use response::range_not_satisfiable_response;pub use traversal::DavCancellation;pub use traversal::DavCancellationToken;pub use traversal::DavDirectoryPageLimits;pub use traversal::DavDirectoryPageState;pub use traversal::DavDirectoryPageValidationError;pub use traversal::DavDirectoryReadError;pub use traversal::DavNeverCancelled;pub use traversal::DavTraversalBudget;pub use traversal::DavTraversalError;pub use traversal::DavTraversalErrorKind;pub use traversal::DavTraversalLimits;pub use traversal::DavTraversalProgress;pub use traversal::DavValidatedDirectoryPage;pub use traversal::read_next_directory_page;pub use traversal::validate_directory_page;pub use xml::DavLockRequestBody;pub use xml::DavPropertyPatchRequest;pub use xml::DavPropertyPatchValue;pub use xml::DavPropfindRequest;pub use xml::DavRequestedProperty;pub use xml::DavXmlElement;pub use xml::DavXmlError;pub use xml::DavXmlNode;pub use xml::parse_lock_request;pub use xml::parse_propfind_request;pub use xml::parse_proppatch_request;pub use xml_response::DavErrorCondition;pub use xml_response::DavLockXml;pub use xml_response::DavMultiStatusItem;pub use xml_response::DavPropStat;pub use xml_response::dav_dead_property_element;pub use xml_response::dav_element;pub use xml_response::dav_error_element;pub use xml_response::dav_lock_discovery_element;pub use xml_response::dav_lock_response_element;pub use xml_response::dav_property_child_element;pub use xml_response::dav_property_name_element;pub use xml_response::dav_property_text_element;pub use xml_response::dav_supported_lock_element;pub use xml_response::dav_text_element;
Modules§
- actix
- Optional Actix transport adapter for the
WebDAVprotocol model. - backend
- Product adapter ports consumed by the
WebDAVprotocol layer. - capability
- Resource-aware
WebDAVcapability declarations and validated discovery snapshots. - conditional
- Method-aware HTTP and
WebDAVconditional request planning. - deltav
- Product-neutral RFC 3253 core request planning and response composition.
- event
- Observable
WebDAVoperation events. - extension
- Typed
WebDAVRFC extension packages and their static discovery descriptors. - lock
- LOCK/UNLOCK protocol request planning and response composition.
- multistatus
- Bounded incremental RFC 4918 Multi-Status response writing.
- mutation
- Bounded recursive COPY, MOVE, and DELETE execution.
- patch
- RFC 5789 PATCH format dispatch and request planning.
- path
- Canonical
WebDAVpath handling. - preference
- RFC 8144
WebDAVpreference selection from a validated capability snapshot. - property
WebDAVproperty selection and propstat composition.- protocol
WebDAVheader parsing and protocol precondition rules.- put
- PUT request planning and success response composition.
- request
- Transport-neutral
WebDAVrequest head parsing. - resource
- Resource mutation path rules and response composition.
- response
- Transport-neutral
WebDAVresponse model and download response planning. - traversal
- Bounded directory paging and recursive traversal resource accounting.
- xml
WebDAVXML grammar and representation boundary.- xml_
response - Product-neutral
WebDAVXML response grammar.
Macros§
- dav_
capability_ profile - Builds a readable aggregate profile without a runtime registry.