Skip to content
Snippets Groups Projects
Verified Commit 276e445d authored by orestis.malaspin's avatar orestis.malaspin
Browse files

annotations moved correctly

parent 51ce1212
Branches
No related tags found
No related merge requests found
...@@ -36,7 +36,7 @@ fn main() { ...@@ -36,7 +36,7 @@ fn main() {
## La boucle infinie: `loop` ## La boucle infinie: `loop`
```rust [] ignore ```rust ignore []
fn main() { fn main() {
loop { loop {
println!("En boucle!"); println!("En boucle!");
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
## `panic!()` ## `panic!()`
```rust [2-4|] should_panic ```rust should_panic [2-4|]
fn elem(v: &[i32], i: usize) -> i32 { fn elem(v: &[i32], i: usize) -> i32 {
if i >= v.len() { if i >= v.len() {
panic!("Erreur fatale!"); panic!("Erreur fatale!");
...@@ -67,7 +67,7 @@ stack backtrace: ...@@ -67,7 +67,7 @@ stack backtrace:
## Asserts ## Asserts
```rust [4,6,7|] should_panic ```rust should_panic [4,6,7|]
fn main() { fn main() {
let num = 1; let num = 1;
let denum = 0; let denum = 0;
...@@ -131,7 +131,7 @@ fn main() { ...@@ -131,7 +131,7 @@ fn main() {
## Options: `unwrap()` ## Options: `unwrap()`
```rust [11|] should_panic ```rust should_panic [11|]
fn div(num: i32, denum: i32) -> Option<i32> { fn div(num: i32, denum: i32) -> Option<i32> {
if denum == 0 { if denum == 0 {
None None
...@@ -179,7 +179,7 @@ fn main() { ...@@ -179,7 +179,7 @@ fn main() {
## `unwrap()` ## `unwrap()`
```rust [10|] should_panic ```rust should_panic [10|]
fn elem(v: &[i32], i: usize) -> Result<i32, &str> { fn elem(v: &[i32], i: usize) -> Result<i32, &str> {
if i >= v.len() { if i >= v.len() {
return Err("L'index est trop grand!") return Err("L'index est trop grand!")
...@@ -192,4 +192,4 @@ fn main() { ...@@ -192,4 +192,4 @@ fn main() {
let res = elem(&v, 100).unwrap(); let res = elem(&v, 100).unwrap();
println!("L'élément est {}", res); println!("L'élément est {}", res);
} }
``` ```
\ No newline at end of file
...@@ -27,7 +27,7 @@ fn main() { ...@@ -27,7 +27,7 @@ fn main() {
## Exemple avec générique (concept) ## Exemple avec générique (concept)
```rust [1|2|] compile_fail ```rust compile_fail [1|2|]
fn max<T>(a: T, b: T) -> T { fn max<T>(a: T, b: T) -> T {
if a > b { a } else { b } if a > b { a } else { b }
} }
...@@ -54,7 +54,7 @@ fn main() { ...@@ -54,7 +54,7 @@ fn main() {
## Un seul type générique ## Un seul type générique
```rust [6-7|8|] compile_fail ```rust compile_fail [6-7|8|]
struct Point<T> { struct Point<T> {
x: T, x: T,
y: T, y: T,
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
## Problématique ## Problématique
```rust [2|3-6|7|] compile_fail ```rust compile_fail [2|3-6|7|]
fn main() { fn main() {
let r; let r;
{ {
...@@ -20,7 +20,7 @@ fn main() { ...@@ -20,7 +20,7 @@ fn main() {
## Durée de vie: annotation ## Durée de vie: annotation
```rust [] compile_fail ```rust compile_fail []
fn main() { fn main() {
let r: &'a i32; // --------+-- 'a let r: &'a i32; // --------+-- 'a
{ // | { // |
...@@ -42,7 +42,7 @@ fn main() { ...@@ -42,7 +42,7 @@ fn main() {
## Exemple ## Exemple
```rust [8-13|1,7|] compile_fail ```rust compile_fail [8-13|1,7|]
fn longest(x: &str, y: &str) -> &str { fn longest(x: &str, y: &str) -> &str {
if x.len() > y.len() { if x.len() > y.len() {
x x
...@@ -82,7 +82,7 @@ fn main() { ...@@ -82,7 +82,7 @@ fn main() {
* Ne permet pas d'augmenter une durée de vie, * Ne permet pas d'augmenter une durée de vie,
* Le compilateur vérifie que la durée de vie est **compatible** avec la durée de vie. * Le compilateur vérifie que la durée de vie est **compatible** avec la durée de vie.
```rust [] ignore ```rust ignore []
&T // référence &T // référence
&'a T // référence avec durée de vie a &'a T // référence avec durée de vie a
&'a mut T // référence mutable avec durée de vie a &'a mut T // référence mutable avec durée de vie a
......
...@@ -45,7 +45,7 @@ fn main() { ...@@ -45,7 +45,7 @@ fn main() {
## Le mot-clé `self` ## Le mot-clé `self`
```rust [6-9|10-12|16-18|] compile_fail ```rust compile_fail [6-9|10-12|16-18|]
struct Rectangle { struct Rectangle {
width: u32, width: u32,
height: u32, height: u32,
......
...@@ -55,7 +55,7 @@ fn main() { ...@@ -55,7 +55,7 @@ fn main() {
## Le contenu d'un module est privé ## Le contenu d'un module est privé
```rust [2-3,6|] compile_fail ```rust compile_fail [2-3,6|]
mod hepia { mod hepia {
fn uni_automne() { fn uni_automne() {
} }
...@@ -114,7 +114,7 @@ ecole ...@@ -114,7 +114,7 @@ ecole
## Les fichiers et visibilité ## Les fichiers et visibilité
```rust [1-3|4-6|7-8|9-10|11-12|13-17|] ignore ```rust ignore [1-3|4-6|7-8|9-10|11-12|13-17|]
// dans lib.rs // dans lib.rs
pub mod hepia; pub mod hepia;
pub mod heg; pub mod heg;
...@@ -153,4 +153,4 @@ pub ...@@ -153,4 +153,4 @@ pub
| pub ( self ) // public dans le module courant | pub ( self ) // public dans le module courant
| pub ( super ) // public dans le module parent | pub ( super ) // public dans le module parent
| pub ( in path ) // public dans le path explicite | pub ( in path ) // public dans le path explicite
``` ```
\ No newline at end of file
...@@ -117,7 +117,7 @@ fn main() { ...@@ -117,7 +117,7 @@ fn main() {
## Changement de propriétaire: invalide ## Changement de propriétaire: invalide
```rust [7-8|9|] compile_fail ```rust compile_fail [7-8|9|]
fn main() { fn main() {
let mut y = Vec::new(); let mut y = Vec::new();
for i in 0..5 { for i in 0..5 {
...@@ -167,7 +167,7 @@ fn main() { ...@@ -167,7 +167,7 @@ fn main() {
## Lors du passage en paramètre à une fonction ## Lors du passage en paramètre à une fonction
```rust [1-3,8|] compile_fail ```rust compile_fail [1-3,8|]
fn take_own(_v: Vec<i32>) { fn take_own(_v: Vec<i32>) {
// on fait des choses // on fait des choses
} }
...@@ -242,7 +242,7 @@ fn main() { ...@@ -242,7 +242,7 @@ fn main() {
## Exemple 2 ## Exemple 2
```rust [1-4,10|] compile_fail ```rust compile_fail [1-4,10|]
fn get_len(v: &Vec<i32>) -> usize { fn get_len(v: &Vec<i32>) -> usize {
v.push(2); // on ajoute 2 à v v.push(2); // on ajoute 2 à v
v.len() v.len()
...@@ -281,7 +281,7 @@ fn main() { ...@@ -281,7 +281,7 @@ fn main() {
## Sans la règle sur la référence mutable ## Sans la règle sur la référence mutable
```rust [2|3|4|5-6|] compile_fail ```rust compile_fail [2|3|4|5-6|]
fn main() { fn main() {
let mut y = Vec::new(); let mut y = Vec::new();
let z = &y; let z = &y;
......
...@@ -68,7 +68,7 @@ fn main() { ...@@ -68,7 +68,7 @@ fn main() {
## Cas pratique: la liste chaînée ## Cas pratique: la liste chaînée
```rust [1,4|2-3|1-4|] compile_fail ```rust compile_fail [1,4|2-3|1-4|]
enum List { enum List {
Elem(i32, List), Elem(i32, List),
Nil, Nil,
......
...@@ -48,7 +48,7 @@ fn main() { ...@@ -48,7 +48,7 @@ fn main() {
- La conversion implicite **n'existe pas**. - La conversion implicite **n'existe pas**.
```rust [2|] compile_fail ```rust compile_fail [2|]
fn main() { fn main() {
let x:i64 = 5i32; // entier 32 bits dans une variable 64 bits let x:i64 = 5i32; // entier 32 bits dans une variable 64 bits
} }
...@@ -66,7 +66,7 @@ fn main() { ...@@ -66,7 +66,7 @@ fn main() {
## Les entiers (3/3) ## Les entiers (3/3)
- Le dépassement de capacité est **interdit**. - Le dépassement de capacité est **interdit**.
```rust [4|] compile_fail ```rust compile_fail [4|]
fn main() { fn main() {
let x:i32 = 12345678; let x:i32 = 12345678;
let y:i32 = 12345678; let y:i32 = 12345678;
...@@ -84,7 +84,7 @@ fn main() { ...@@ -84,7 +84,7 @@ fn main() {
- On ne **peut pas** convertir implicitement d'un type à un autre. - On ne **peut pas** convertir implicitement d'un type à un autre.
```rust [2|] compile_fail ```rust compile_fail [2|]
fn main() { fn main() {
let x:f64 = 3.14159265359f32; // flottant 32 bits en flottant 64 bits let x:f64 = 3.14159265359f32; // flottant 32 bits en flottant 64 bits
} }
......
...@@ -239,7 +239,7 @@ fn main() { ...@@ -239,7 +239,7 @@ fn main() {
## `match`: bras manquant ## `match`: bras manquant
```rust [8-10|] compile_fail ```rust compile_fail [8-10|]
enum TypeEnum { enum TypeEnum {
Id1, Id1,
Id2, Id2,
......
...@@ -40,7 +40,7 @@ fn main() { ...@@ -40,7 +40,7 @@ fn main() {
## Interdiction: utilisation sans initialisation ## Interdiction: utilisation sans initialisation
```rust [2-3|] compile_fail ```rust compile_fail [2-3|]
fn main() { fn main() {
let x: i32; let x: i32;
println!("La valeur de x est: {}", x); println!("La valeur de x est: {}", x);
...@@ -60,7 +60,7 @@ fn main() { ...@@ -60,7 +60,7 @@ fn main() {
## Portée: pas ok ## Portée: pas ok
```rust [2-5|6|] compile_fail ```rust compile_fail [2-5|6|]
fn main() { fn main() {
{ {
let x = 5; let x = 5;
...@@ -88,7 +88,7 @@ fn main() { ...@@ -88,7 +88,7 @@ fn main() {
## Mutabilité/**Immutabilité** ## Mutabilité/**Immutabilité**
```rust [2|3|] compile_fail ```rust compile_fail [2|3|]
fn main() { fn main() {
let x = 5; // variable immutable let x = 5; // variable immutable
x = 6; // interdit x = 6; // interdit
......
...@@ -63,7 +63,7 @@ fn main() { // Prob: on veut modifier v[1] ...@@ -63,7 +63,7 @@ fn main() { // Prob: on veut modifier v[1]
## Modification d'élément (version 2) ## Modification d'élément (version 2)
```rust [3] compile_fail ```rust compile_fail [3]
fn main() { fn main() {
let v = vec![1, 2, 3, 4]; let v = vec![1, 2, 3, 4];
let mut elem = &v[1]; // que se passe-t-il à votre avis? let mut elem = &v[1]; // que se passe-t-il à votre avis?
...@@ -74,7 +74,7 @@ fn main() { ...@@ -74,7 +74,7 @@ fn main() {
## Modification d'élément (version 3) ## Modification d'élément (version 3)
```rust [2,3|6|] compile_fail ```rust compile_fail [2,3|6|]
fn main() { fn main() {
let v = vec![1, 2, 3, 4]; let v = vec![1, 2, 3, 4];
let mut elem = &mut v[1]; // que se passe-t-il à votre avis? let mut elem = &mut v[1]; // que se passe-t-il à votre avis?
...@@ -85,7 +85,7 @@ fn main() { ...@@ -85,7 +85,7 @@ fn main() {
## Modification d'élément (version 4) ## Modification d'élément (version 4)
```rust [3-6|7|] compile_fail ```rust compile_fail [3-6|7|]
fn main() { fn main() {
let mut v = vec![1, 2, 3, 4]; let mut v = vec![1, 2, 3, 4];
let mut elem = &mut v[1]; // que se passe-t-il à votre avis? let mut elem = &mut v[1]; // que se passe-t-il à votre avis?
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment