pub enum InterfaceError {
ForwardWithoutDefinition {
name: String,
},
NoNode {
kind: &'static str,
at: String,
},
Unresolved {
construct: &'static str,
at: String,
},
TooDeep {
name: String,
limit: usize,
},
OutsideServiceGrammar {
construct: &'static str,
at: String,
},
DuplicateOperation {
interface: String,
name: String,
},
DuplicateParameter {
at: String,
name: String,
},
}Expand description
Why an interface did not reach the seam.
Four failures, each of which used to be a construct that reached no output and said nothing about it.
Variants§
ForwardWithoutDefinition
interface I; with no interface I { … }; anywhere in the unit.
DDS-TS 1.0 §11.7 makes this fatal and names it DDS-TS-E002.
The C++ and Java bindings have the same hole for the same
reason: a Requester<I_Request, I_Reply> over an interface whose
operations never arrived is a class over two structs with no
members.
NoNode
The model lists a child and then will not hand it over.
Fields
Unresolved
A reference the output has to name is not resolved.
A return type, a parameter type, an attribute type, a base
interface or a raises entry. Emitting the operation without it
would produce a method with a parameter missing, which no
compiler on the far side can tell from one the IDL declared that
way.
Fields
TooDeep
The base chain is deeper than the walk follows.
Stopping there quietly would drop the operations and attributes of every base past the limit from the flattened binding.
OutsideServiceGrammar
A construct DDS-RPC 1.0 §7.3.1.1 removed from the service
grammar: a oneway operation (production 87 and §7.5.1.1.7
rule 5, which wants a Return-union case for every operation), a
context clause, an interface form other than interface
(production 7), an import/typeid/typeprefix directive
(productions 1 and 2), or a type, constant or exception
declaration in an interface body (production 9).
DuplicateOperation
Two operations of one interface carry the same name. Covers the
operations §7.5.1.1.3 rule 1 implies for an attribute: “It is
illegal to have an interface with an attribute named
<attribute-name> and user-defined operations named
get_attribute_<attribute-name> and
set_attribute_<attribute-name>.”
DuplicateParameter
Two parameters of one operation carry the same name.
Trait Implementations§
Source§impl Clone for InterfaceError
impl Clone for InterfaceError
Source§impl Debug for InterfaceError
impl Debug for InterfaceError
Source§impl Display for InterfaceError
impl Display for InterfaceError
impl Eq for InterfaceError
Source§impl Error for InterfaceError
impl Error for InterfaceError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()