pub struct CaseSchema {
pub name: &'static str,
pub payload: &'static [BuiltinType],
}Expand description
One case of a builtin enum.
A case is what a builtin enum is made of, the way a FieldSchema is
what a builtin struct is made of, and the payload is written in the
receiver’s own type parameters: Some carries a T and Err carries an
E. So a pattern reads its binding’s type off the scrutinee exactly as a
method reads its result off its receiver, and there is one description of
what Ok carries rather than one on each side of the toolchain.
This is TypeSchema::cases in the builtin
vocabulary. A host’s enum cases are bare names, because a boundary hands
over data it has already made; a builtin’s carry a payload the language
itself binds.
Fields§
§name: &'static strThe name Cove source writes in a pattern or a call, such as Ok.
payload: &'static [BuiltinType]What the case carries, in order.
Empty for a case that carries nothing, which is None and only
None: it is the one builtin case a program writes as a bare name
rather than as a call.
Implementations§
Source§impl CaseSchema
impl CaseSchema
Sourcepub fn signature(&self) -> String
pub fn signature(&self) -> String
The case, in the form a declaration would write it: Ok(T), or
None for a case that carries nothing.
Sourcepub fn wildcard_pattern(&self) -> String
pub fn wildcard_pattern(&self) -> String
The case as a pattern that binds nothing: Ok(_), or None for a
case that carries nothing.
This is how a diagnostic points inside a value: a host that
declares Result<String, Error> and hands back an Ok(1) is told
the mismatch is inside Ok(_).
Trait Implementations§
Source§impl Clone for CaseSchema
impl Clone for CaseSchema
Source§fn clone(&self) -> CaseSchema
fn clone(&self) -> CaseSchema
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for CaseSchema
Source§impl Debug for CaseSchema
impl Debug for CaseSchema
impl Eq for CaseSchema
Source§impl PartialEq for CaseSchema
impl PartialEq for CaseSchema
Source§fn eq(&self, other: &CaseSchema) -> bool
fn eq(&self, other: &CaseSchema) -> bool
self and other values to be equal, and is used by ==.