pub fn documentless(kind: &str) -> SourceErrorExpand description
The refusal a source with no documents answers a document read with.
Spelled once beside unwritable, and here rather than beside the reads it answers,
because the two are the same kind of thing: a source saying it does not have that side
of the contract at all. Every document-free source therefore refuses in the same words,
and a plugin’s refusal cannot describe something different from the engine’s own
message about it.
The two document writes reuse unwritable: a source with no write side refuses a
document write for the reason it refuses every other write, and saying it twice in two
wordings would make one refusal read as two.