@@ -208,10 +208,10 @@ <h1 class="title">関連型</h1>
208208
209209< span class ='rusttest '> fn main() {
210210 trait Graph<N, E> {
211- fn has_edge(&self, &N, &N) -> bool;
212- fn edges(&self, &N) -> Vec<E>;
213- // etc
214- }
211+ fn has_edge(&self, &N, &N) -> bool;
212+ fn edges(&self, &N) -> Vec<E>;
213+ // etc
214+ }
215215}</ span > < pre class ='rust rust-example-rendered '>
216216< span class ='kw '> trait</ span > < span class ='ident '> Graph</ span > < span class ='op '> <</ span > < span class ='ident '> N</ span > , < span class ='ident '> E</ span > < span class ='op '> ></ span > {
217217 < span class ='kw '> fn</ span > < span class ='ident '> has_edge</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='kw-2 '> &</ span > < span class ='ident '> N</ span > , < span class ='kw-2 '> &</ span > < span class ='ident '> N</ span > ) < span class ='op '> -></ span > < span class ='ident '> bool</ span > ;
@@ -248,20 +248,20 @@ <h1 class="title">関連型</h1>
248248
249249< span class ='rusttest '> fn main() {
250250 trait Graph {
251- type N;
252- type E;
253-
254- fn has_edge(&self, &Self::N, &Self::N) -> bool;
255- fn edges(&self, &Self::N) -> Vec<Self::E>;
256- // etc
257- }
251+ type N;
252+ type E;
253+
254+ fn has_edge(&self, &Self::N, &Self::N) -> bool;
255+ fn edges(&self, &Self::N) -> Vec<Self::E>;
256+ // etc
257+ }
258258}</ span > < pre class ='rust rust-example-rendered '>
259259< span class ='kw '> trait</ span > < span class ='ident '> Graph</ span > {
260260 < span class ='kw '> type</ span > < span class ='ident '> N</ span > ;
261261 < span class ='kw '> type</ span > < span class ='ident '> E</ span > ;
262262
263- < span class ='kw '> fn</ span > < span class ='ident '> has_edge</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='kw-2 '> &</ span > < span class ='ident '> Self</ span > ::< span class ='ident '> N</ span > , < span class ='kw-2 '> &</ span > < span class ='ident '> Self</ span > ::< span class ='ident '> N</ span > ) < span class ='op '> -></ span > < span class ='ident '> bool</ span > ;
264- < span class ='kw '> fn</ span > < span class ='ident '> edges</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='kw-2 '> &</ span > < span class ='ident '> Self</ span > ::< span class ='ident '> N</ span > ) < span class ='op '> -></ span > < span class ='ident '> Vec</ span > < span class ='op '> <</ span > < span class ='ident '> Self</ span > ::< span class ='ident '> E</ span > < span class ='op '> ></ span > ;
263+ < span class ='kw '> fn</ span > < span class ='ident '> has_edge</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='kw-2 '> &</ span > < span class ='self '> Self</ span > ::< span class ='ident '> N</ span > , < span class ='kw-2 '> &</ span > < span class ='self '> Self</ span > ::< span class ='ident '> N</ span > ) < span class ='op '> -></ span > < span class ='ident '> bool</ span > ;
264+ < span class ='kw '> fn</ span > < span class ='ident '> edges</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='kw-2 '> &</ span > < span class ='self '> Self</ span > ::< span class ='ident '> N</ span > ) < span class ='op '> -></ span > < span class ='ident '> Vec</ span > < span class ='op '> <</ span > < span class ='self '> Self</ span > ::< span class ='ident '> E</ span > < span class ='op '> ></ span > ;
265265 < span class ='comment '> // etc</ span >
266266}</ pre >
267267
@@ -291,19 +291,19 @@ <h2 id='関連型を定義する' class='section-header'><a href='#関連型を
291291
292292< span class ='rusttest '> fn main() {
293293 trait Graph {
294- type N;
295- type E;
296-
297- fn has_edge(&self, &Self::N, &Self::N) -> bool;
298- fn edges(&self, &Self::N) -> Vec<Self::E>;
299- }
294+ type N;
295+ type E;
296+
297+ fn has_edge(&self, &Self::N, &Self::N) -> bool;
298+ fn edges(&self, &Self::N) -> Vec<Self::E>;
299+ }
300300}</ span > < pre class ='rust rust-example-rendered '>
301301< span class ='kw '> trait</ span > < span class ='ident '> Graph</ span > {
302302 < span class ='kw '> type</ span > < span class ='ident '> N</ span > ;
303303 < span class ='kw '> type</ span > < span class ='ident '> E</ span > ;
304304
305- < span class ='kw '> fn</ span > < span class ='ident '> has_edge</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='kw-2 '> &</ span > < span class ='ident '> Self</ span > ::< span class ='ident '> N</ span > , < span class ='kw-2 '> &</ span > < span class ='ident '> Self</ span > ::< span class ='ident '> N</ span > ) < span class ='op '> -></ span > < span class ='ident '> bool</ span > ;
306- < span class ='kw '> fn</ span > < span class ='ident '> edges</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='kw-2 '> &</ span > < span class ='ident '> Self</ span > ::< span class ='ident '> N</ span > ) < span class ='op '> -></ span > < span class ='ident '> Vec</ span > < span class ='op '> <</ span > < span class ='ident '> Self</ span > ::< span class ='ident '> E</ span > < span class ='op '> ></ span > ;
305+ < span class ='kw '> fn</ span > < span class ='ident '> has_edge</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='kw-2 '> &</ span > < span class ='self '> Self</ span > ::< span class ='ident '> N</ span > , < span class ='kw-2 '> &</ span > < span class ='self '> Self</ span > ::< span class ='ident '> N</ span > ) < span class ='op '> -></ span > < span class ='ident '> bool</ span > ;
306+ < span class ='kw '> fn</ span > < span class ='ident '> edges</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='kw-2 '> &</ span > < span class ='self '> Self</ span > ::< span class ='ident '> N</ span > ) < span class ='op '> -></ span > < span class ='ident '> Vec</ span > < span class ='op '> <</ span > < span class ='self '> Self</ span > ::< span class ='ident '> E</ span > < span class ='op '> ></ span > ;
307307}</ pre >
308308
309309<!-- Simple enough. Associated types use the `type` keyword, and go inside the body -->
@@ -323,23 +323,23 @@ <h2 id='関連型を定義する' class='section-header'><a href='#関連型を
323323
324324< span class ='rusttest '> fn main() {
325325 use std::fmt;
326-
327- trait Graph {
328- type N: fmt::Display;
329- type E;
330-
331- fn has_edge(&self, &Self::N, &Self::N) -> bool;
332- fn edges(&self, &Self::N) -> Vec<Self::E>;
333- }
326+
327+ trait Graph {
328+ type N: fmt::Display;
329+ type E;
330+
331+ fn has_edge(&self, &Self::N, &Self::N) -> bool;
332+ fn edges(&self, &Self::N) -> Vec<Self::E>;
333+ }
334334}</ span > < pre class ='rust rust-example-rendered '>
335335< span class ='kw '> use</ span > < span class ='ident '> std</ span > ::< span class ='ident '> fmt</ span > ;
336336
337337< span class ='kw '> trait</ span > < span class ='ident '> Graph</ span > {
338338 < span class ='kw '> type</ span > < span class ='ident '> N</ span > : < span class ='ident '> fmt</ span > ::< span class ='ident '> Display</ span > ;
339339 < span class ='kw '> type</ span > < span class ='ident '> E</ span > ;
340340
341- < span class ='kw '> fn</ span > < span class ='ident '> has_edge</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='kw-2 '> &</ span > < span class ='ident '> Self</ span > ::< span class ='ident '> N</ span > , < span class ='kw-2 '> &</ span > < span class ='ident '> Self</ span > ::< span class ='ident '> N</ span > ) < span class ='op '> -></ span > < span class ='ident '> bool</ span > ;
342- < span class ='kw '> fn</ span > < span class ='ident '> edges</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='kw-2 '> &</ span > < span class ='ident '> Self</ span > ::< span class ='ident '> N</ span > ) < span class ='op '> -></ span > < span class ='ident '> Vec</ span > < span class ='op '> <</ span > < span class ='ident '> Self</ span > ::< span class ='ident '> E</ span > < span class ='op '> ></ span > ;
341+ < span class ='kw '> fn</ span > < span class ='ident '> has_edge</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='kw-2 '> &</ span > < span class ='self '> Self</ span > ::< span class ='ident '> N</ span > , < span class ='kw-2 '> &</ span > < span class ='self '> Self</ span > ::< span class ='ident '> N</ span > ) < span class ='op '> -></ span > < span class ='ident '> bool</ span > ;
342+ < span class ='kw '> fn</ span > < span class ='ident '> edges</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='kw-2 '> &</ span > < span class ='self '> Self</ span > ::< span class ='ident '> N</ span > ) < span class ='op '> -></ span > < span class ='ident '> Vec</ span > < span class ='op '> <</ span > < span class ='self '> Self</ span > ::< span class ='ident '> E</ span > < span class ='op '> ></ span > ;
343343}</ pre >
344344
345345<!-- ## Implementing associated types -->
@@ -354,29 +354,29 @@ <h2 id='関連型を実装する' class='section-header'><a href='#関連型を
354354
355355< span class ='rusttest '> fn main() {
356356 trait Graph {
357- type N;
358- type E;
359- fn has_edge(&self, &Self::N, &Self::N) -> bool;
360- fn edges(&self, &Self::N) -> Vec<Self::E>;
357+ type N;
358+ type E;
359+ fn has_edge(&self, &Self::N, &Self::N) -> bool;
360+ fn edges(&self, &Self::N) -> Vec<Self::E>;
361+ }
362+ struct Node;
363+
364+ struct Edge;
365+
366+ struct MyGraph;
367+
368+ impl Graph for MyGraph {
369+ type N = Node;
370+ type E = Edge;
371+
372+ fn has_edge(&self, n1: &Node, n2: &Node) -> bool {
373+ true
361374 }
362- struct Node;
363-
364- struct Edge;
365-
366- struct MyGraph;
367-
368- impl Graph for MyGraph {
369- type N = Node;
370- type E = Edge;
371-
372- fn has_edge(&self, n1: &Node, n2: &Node) -> bool {
373- true
374- }
375-
376- fn edges(&self, n: &Node) -> Vec<Edge> {
377- Vec::new()
378- }
375+
376+ fn edges(&self, n: &Node) -> Vec<Edge> {
377+ Vec::new()
379378 }
379+ }
380380}</ span > < pre class ='rust rust-example-rendered '>
381381< span class ='kw '> struct</ span > < span class ='ident '> Node</ span > ;
382382
@@ -389,7 +389,7 @@ <h2 id='関連型を実装する' class='section-header'><a href='#関連型を
389389 < span class ='kw '> type</ span > < span class ='ident '> E</ span > < span class ='op '> =</ span > < span class ='ident '> Edge</ span > ;
390390
391391 < span class ='kw '> fn</ span > < span class ='ident '> has_edge</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='ident '> n1</ span > : < span class ='kw-2 '> &</ span > < span class ='ident '> Node</ span > , < span class ='ident '> n2</ span > : < span class ='kw-2 '> &</ span > < span class ='ident '> Node</ span > ) < span class ='op '> -></ span > < span class ='ident '> bool</ span > {
392- < span class ='boolval '> true</ span >
392+ < span class ='boolvalue '> true</ span >
393393 }
394394
395395 < span class ='kw '> fn</ span > < span class ='ident '> edges</ span > (< span class ='kw-2 '> &</ span > < span class ='self '> self</ span > , < span class ='ident '> n</ span > : < span class ='kw-2 '> &</ span > < span class ='ident '> Node</ span > ) < span class ='op '> -></ span > < span class ='ident '> Vec</ span > < span class ='op '> <</ span > < span class ='ident '> Edge</ span > < span class ='op '> ></ span > {
@@ -439,26 +439,26 @@ <h2 id='関連型を伴うトレイト' class='section-header'><a href='#関連
439439
440440< span class ='rusttest '> fn main() {
441441 trait Graph {
442- type N;
443- type E;
444- fn has_edge(&self, &Self::N, &Self::N) -> bool;
445- fn edges(&self, &Self::N) -> Vec<Self::E>;
442+ type N;
443+ type E;
444+ fn has_edge(&self, &Self::N, &Self::N) -> bool;
445+ fn edges(&self, &Self::N) -> Vec<Self::E>;
446+ }
447+ struct Node;
448+ struct Edge;
449+ struct MyGraph;
450+ impl Graph for MyGraph {
451+ type N = Node;
452+ type E = Edge;
453+ fn has_edge(&self, n1: &Node, n2: &Node) -> bool {
454+ true
446455 }
447- struct Node;
448- struct Edge;
449- struct MyGraph;
450- impl Graph for MyGraph {
451- type N = Node;
452- type E = Edge;
453- fn has_edge(&self, n1: &Node, n2: &Node) -> bool {
454- true
455- }
456- fn edges(&self, n: &Node) -> Vec<Edge> {
457- Vec::new()
458- }
456+ fn edges(&self, n: &Node) -> Vec<Edge> {
457+ Vec::new()
459458 }
460- let graph = MyGraph;
461- let obj = Box::new(graph) as Box<Graph>;
459+ }
460+ let graph = MyGraph;
461+ let obj = Box::new(graph) as Box<Graph>;
462462}</ span > < pre class ='rust rust-example-rendered '>
463463< span class ='kw '> let</ span > < span class ='ident '> graph</ span > < span class ='op '> =</ span > < span class ='ident '> MyGraph</ span > ;
464464< span class ='kw '> let</ span > < span class ='ident '> obj</ span > < span class ='op '> =</ span > < span class ='ident '> Box</ span > ::< span class ='ident '> new</ span > (< span class ='ident '> graph</ span > ) < span class ='kw '> as</ span > < span class ='ident '> Box</ span > < span class ='op '> <</ span > < span class ='ident '> Graph</ span > < span class ='op '> ></ span > ;</ pre >
@@ -486,26 +486,26 @@ <h2 id='関連型を伴うトレイト' class='section-header'><a href='#関連
486486
487487< span class ='rusttest '> fn main() {
488488 trait Graph {
489- type N;
490- type E;
491- fn has_edge(&self, &Self::N, &Self::N) -> bool;
492- fn edges(&self, &Self::N) -> Vec<Self::E>;
489+ type N;
490+ type E;
491+ fn has_edge(&self, &Self::N, &Self::N) -> bool;
492+ fn edges(&self, &Self::N) -> Vec<Self::E>;
493+ }
494+ struct Node;
495+ struct Edge;
496+ struct MyGraph;
497+ impl Graph for MyGraph {
498+ type N = Node;
499+ type E = Edge;
500+ fn has_edge(&self, n1: &Node, n2: &Node) -> bool {
501+ true
493502 }
494- struct Node;
495- struct Edge;
496- struct MyGraph;
497- impl Graph for MyGraph {
498- type N = Node;
499- type E = Edge;
500- fn has_edge(&self, n1: &Node, n2: &Node) -> bool {
501- true
502- }
503- fn edges(&self, n: &Node) -> Vec<Edge> {
504- Vec::new()
505- }
503+ fn edges(&self, n: &Node) -> Vec<Edge> {
504+ Vec::new()
506505 }
507- let graph = MyGraph;
508- let obj = Box::new(graph) as Box<Graph<N=Node, E=Edge>>;
506+ }
507+ let graph = MyGraph;
508+ let obj = Box::new(graph) as Box<Graph<N=Node, E=Edge>>;
509509}</ span > < pre class ='rust rust-example-rendered '>
510510< span class ='kw '> let</ span > < span class ='ident '> graph</ span > < span class ='op '> =</ span > < span class ='ident '> MyGraph</ span > ;
511511< span class ='kw '> let</ span > < span class ='ident '> obj</ span > < span class ='op '> =</ span > < span class ='ident '> Box</ span > ::< span class ='ident '> new</ span > (< span class ='ident '> graph</ span > ) < span class ='kw '> as</ span > < span class ='ident '> Box</ span > < span class ='op '> <</ span > < span class ='ident '> Graph</ span > < span class ='op '> <</ span > < span class ='ident '> N</ span > < span class ='op '> =</ span > < span class ='ident '> Node</ span > , < span class ='ident '> E</ span > < span class ='op '> =</ span > < span class ='ident '> Edge</ span > < span class ='op '> >></ span > ;</ pre >
0 commit comments