98 lines
2.2 KiB
Rust
98 lines
2.2 KiB
Rust
// Copyright (C) 2016 Free Software Foundation, Inc.
|
|
|
|
// This program is free software; you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation; either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
#![allow(dead_code)]
|
|
#![allow(unused_variables)]
|
|
#![allow(unused_assignments)]
|
|
|
|
|
|
pub struct HiBob {
|
|
pub field1: i32,
|
|
field2: u64,
|
|
}
|
|
|
|
struct ByeBob(i32, u64);
|
|
|
|
enum Something {
|
|
One,
|
|
Two,
|
|
Three
|
|
}
|
|
|
|
enum MoreComplicated {
|
|
One,
|
|
Two(i32),
|
|
Three(HiBob),
|
|
Four{this: bool, is: u8, a: char, struct_: u64, variant: u32},
|
|
}
|
|
|
|
fn diff2(x: i32, y: i32) -> i32 {
|
|
x - y
|
|
}
|
|
|
|
pub struct Unit;
|
|
|
|
// This triggers the non-zero optimization that yields a different
|
|
// enum representation in the debug info.
|
|
enum SpaceSaver {
|
|
Thebox(u8, Box<i32>),
|
|
Nothing,
|
|
}
|
|
|
|
fn main () {
|
|
let a = ();
|
|
let b : [i32; 0] = [];
|
|
|
|
let mut c = 27;
|
|
let d = c = 99;
|
|
|
|
let e = MoreComplicated::Two(73);
|
|
let e2 = MoreComplicated::Four {this: true, is: 8, a: 'm',
|
|
struct_: 100, variant: 10};
|
|
|
|
let f = "hi bob";
|
|
let g = b"hi bob";
|
|
let h = b'9';
|
|
|
|
let i = ["whatever"; 8];
|
|
|
|
let j = Unit;
|
|
|
|
let k = SpaceSaver::Nothing;
|
|
let l = SpaceSaver::Thebox(9, Box::new(1729));
|
|
|
|
let v = Something::Three;
|
|
let w = [1,2,3,4];
|
|
let x = (23, 25.5);
|
|
let y = HiBob {field1: 7, field2: 8};
|
|
let z = ByeBob(7, 8);
|
|
|
|
let slice = &w[2..3];
|
|
let fromslice = slice[0];
|
|
let slice2 = &slice[0..1];
|
|
|
|
let all1 = &w[..];
|
|
let all2 = &slice[..];
|
|
|
|
let from1 = &w[1..];
|
|
let from2 = &slice[1..];
|
|
|
|
let to1 = &w[..3];
|
|
let to2 = &slice[..1];
|
|
|
|
println!("{}, {}", x.0, x.1); // set breakpoint here
|
|
println!("{}", diff2(92, 45));
|
|
}
|