pub struct Capabilities {Show 13 fields
pub projects: Support,
pub documents: Support,
pub comments: Support,
pub priority: Support,
pub filter_by_priority: Support,
pub orphan_tasks: Support,
pub filter_by_label: Support,
pub filter_by_status: Support,
pub search_title: Support,
pub search_content: Support,
pub task_dependencies: DependencySupport,
pub project_dependencies: DependencySupport,
pub max_page_size: u32,
}Expand description
One source’s declared abilities.
Fields§
§projects: SupportWhether the source has projects at all.
documents: SupportWhether the source has documents at all.
The same shape as projects, and read the same way: it says what
the source holds, not which predicate it applies. It is therefore not one of
the predicates the second capability rule reaches — there is no wider result set to
return and nothing for the engine to narrow. A source declaring Unsupported is
never asked for a document at all; the engine reads this once at the handshake,
exactly as it reads TaskSource::writes, and a
document read across several sources reports such a source as holding none rather
than as having failed.
Defaulted to Support::Unsupported when a wire value omits it, so a plugin that
predates documents says nothing here and is read as the document-free source it is.
comments: SupportWhether the source’s tasks have comments at all.
Read exactly as documents is: it says what the source holds,
not which predicate it applies, so the second capability rule does not reach it. A
source declaring Unsupported is never sent a comment call — the engine reads this
once at the handshake and refuses such a call before anything is read, naming the
source and its plugin. Adding, editing and removing a comment is a write, so a source
declaring Native is written through only when
TaskSource::writes says it can be written at all.
Defaulted to Support::Unsupported when a wire value omits it, so a plugin that
predates comments says nothing here and is read as the comment-free source it is.
priority: SupportWhether the source’s tasks hold a Priority at all.
Read exactly as documents and comments are:
it says what the source holds, not which predicate it applies, so the second
capability rule does not reach it. A source declaring Unsupported reports every
task’s priority as none, and the engine never hands it one that is not: a copy
carrying another priority to it, and a task priority set naming it, are both refused
before the source is asked, naming the source and the field.
Defaulted to Support::Unsupported when a wire value omits it, so a plugin that
predates priorities says nothing here and is never handed a priority it would drop.
filter_by_priority: SupportWhether the source keeps only the tasks whose priority a query lists, itself.
A predicate, and so one the second capability rule reaches: a source declaring
Unsupported ignores TaskQuery::priorities and
returns the wider set, and the engine narrows it. Its own member rather than a reading
of priority, because holding a priority and filtering by one are
two abilities — a board holds a priority on a field it cannot be asked to filter by.
Defaulted to Support::Unsupported when a wire value omits it, so a plugin that
predates priorities is narrowed by the engine rather than trusted to have filtered.
orphan_tasks: SupportWhether the source can select tasks belonging to no project.
filter_by_label: SupportWhether the source filters by label itself.
filter_by_status: SupportWhether the source filters by status itself.
search_title: SupportWhether the source searches titles itself.
search_content: SupportWhether the source searches bodies itself.
task_dependencies: DependencySupportHow far the source can walk task dependencies.
project_dependencies: DependencySupportHow far the source can walk project dependencies.
max_page_size: u32The largest page the source will serve. At least 1 — a source that serves no rows cannot be paged, and every implementation rejects zero where its config is read.
Trait Implementations§
Source§impl Clone for Capabilities
impl Clone for Capabilities
Source§impl Debug for Capabilities
impl Debug for Capabilities
Source§impl<'de> Deserialize<'de> for Capabilities
impl<'de> Deserialize<'de> for Capabilities
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 JsonSchema for Capabilities
impl JsonSchema for Capabilities
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more