Crate aster_forge_webdav

Crate aster_forge_webdav 

Source
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 event::publish_non_authoritative;
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 WebDAV protocol model.
backend
Product adapter ports consumed by the WebDAV protocol layer.
capability
Resource-aware WebDAV capability declarations and validated discovery snapshots.
conditional
Method-aware HTTP and WebDAV conditional request planning.
deltav
Product-neutral RFC 3253 core request planning and response composition.
event
Observable WebDAV operation events.
extension
Typed WebDAV RFC 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 WebDAV path handling.
preference
RFC 8144 WebDAV preference selection from a validated capability snapshot.
property
WebDAV property selection and propstat composition.
protocol
WebDAV header parsing and protocol precondition rules.
put
PUT request planning and success response composition.
request
Transport-neutral WebDAV request head parsing.
resource
Resource mutation path rules and response composition.
response
Transport-neutral WebDAV response model and download response planning.
traversal
Bounded directory paging and recursive traversal resource accounting.
xml
WebDAV XML grammar and representation boundary.
xml_response
Product-neutral WebDAV XML response grammar.

Macros§

dav_capability_profile
Builds a readable aggregate profile without a runtime registry.