Interfaces
Interfaces declare method signatures that types (or modules) can conform to via
impl ... as ... (or module ... as ...). This is the basis for protocol-like
surfaces such as iterators and Drop.
Full reference: interfaces.
Notes#
- Full reference: interfaces
- Dynamic dispatch (trait objects/vtables): not implemented yet
Syntax#
interface Len {
fn len() -> i64;
}
struct Counter {
n: i64,
}
impl Counter as Len {
fn len (self: &Counter) -> i64 { return self.n; }
}
Examples#
Example: conformance + direct method call#
interface Len {
fn len() -> i64;
}
struct Counter {
n: i64,
}
impl Counter as Len {
fn len (self: &Counter) -> i64 { return self.n; }
}
fn main () -> int {
let c: Counter = Counter{ n: 3 };
return c.len() as int;
}
See also#
- Full reference: interfaces
- Std protocols: interfaces
Source repository · Edit this page · View Markdown