Skip to main content

FindingKind

Enum FindingKind 

Source
pub enum FindingKind {
Show 13 variants ContentOutsideBlock, DuplicateBlock(String), DuplicateChildren, BindOnNonInput(String), ClassToggleOnComponent(String), ImageWithoutAlt, ButtonWithoutName, InputWithoutLabel, LinkWithoutHref, FormWithoutCsrf(String), InlineEventHandler(String), BindNotHonoured(&'static str), RewrittenByParser(ParserRewrite, String),
}

Variants§

§

ContentOutsideBlock

Loose content at the top level of a view that {extends} a layout.

§

DuplicateBlock(String)

The same {block name} twice in one template.

§

DuplicateChildren

{children} more than once.

§

BindOnNonInput(String)

bind={…} on an element that is not <input>, <textarea> or <select>.

§

ClassToggleOnComponent(String)

class:name={…} on a component.

§

ImageWithoutAlt

<img> without an alt attribute (an empty alt="" marks it decorative and is fine).

§

ButtonWithoutName

<button> with no text, no hole, and no aria-label/aria-labelledby/title.

§

InputWithoutLabel

A form control with no <label for>, no wrapping <label>, and no aria-label.

§

LinkWithoutHref

<a> without href.

§

FormWithoutCsrf(String)

A <form> whose method changes state, with no _csrf field in it.

§

InlineEventHandler(String)

An inline event-handler attribute (onclick, onerror, …) — a JavaScript sink.

§

BindNotHonoured(&'static str)

A bind on a form control the browser will not let a page write — <input type="file"> and <select multiple>.

★ CHECKED HERE, NOT AT A TIER, because the mistake is semantic rather than a limit of any one backend: a file input’s value cannot be set by a page ANYWHERE, and a multiple select’s value is a list on every tier. A tier-specific gate would let any tier outside it accept it happily — the binding written as a plain text setValue does nothing and reports nothing.

The wording comes from BoundInput::refusal() so the check and the lowering cannot drift.

§

RewrittenByParser(ParserRewrite, String)

Markup a browser’s HTML parser does not keep as written — what (an element, or text) where the parser moves, wraps or closes it — so the document a browser builds from the pre-rendered page is not the page the view draws, and the page is drawn again as it loads.

Trait Implementations§

Source§

impl Clone for FindingKind

Source§

fn clone(&self) -> FindingKind

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FindingKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for FindingKind

Source§

fn eq(&self, other: &FindingKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for FindingKind

Source§

impl StructuralPartialEq for FindingKind

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,