Skip to content

Commit fa82ccf

Browse files
committed
Merge pull request chris-morgan#12 from larsbergstrom/rustup
Rust upgrade
2 parents 4a381f3 + 163c706 commit fa82ccf

File tree

20 files changed

+124
-104
lines changed

20 files changed

+124
-104
lines changed

src/codegen/branchify.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
use std::str::Chars;
44
use std::io::IoResult;
55

6-
struct ParseBranch {
6+
pub struct ParseBranch {
77
matches: ~[u8],
88
result: Option<~str>,
99
children: ~[ParseBranch],

src/codegen/main.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ fn main() {
2121
3 => {
2222
let output_dir = Path::new(args[2].as_slice());
2323

24-
match args[1] {
25-
~"read_method.rs" => read_method::generate(&output_dir).unwrap(),
26-
~"status.rs" => status::generate(&output_dir).unwrap(),
24+
match args[1].as_slice() {
25+
"read_method.rs" => read_method::generate(&output_dir).unwrap(),
26+
"status.rs" => status::generate(&output_dir).unwrap(),
2727
s => {
2828
println!("unknown thing-to-generate '{}'", s);
2929
os::set_exit_status(1);

src/codegen/status.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
use collections::hashmap::HashSet;
1111
use std::ascii::StrAsciiExt;
12-
use std::vec;
12+
use std::slice;
1313
use std::io::IoResult;
1414
use super::get_writer;
1515

@@ -52,7 +52,7 @@ impl Status {
5252
/// "ImATeaPot"
5353
fn camel_case(msg: &str) -> ~str {
5454
let msg = msg.replace("-", " ").replace("'", "");
55-
let mut result: ~[Ascii] = vec::with_capacity(msg.len());
55+
let mut result: ~[Ascii] = slice::with_capacity(msg.len());
5656
let mut capitalise = true;
5757
for c in msg.chars() {
5858
let c = match capitalise {

src/examples/server/apache_fake/main.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
55
#[crate_id = "apache_fake"];
66

7-
extern crate extra;
87
extern crate time;
98
extern crate http;
109

10+
use std::vec::Vec;
11+
1112
use std::io::net::ip::{SocketAddr, Ipv4Addr};
1213
use std::io::Writer;
1314

@@ -44,13 +45,13 @@ impl Server for ApacheFakeServer {
4445
weak: false,
4546
opaque_tag: ~"501b29-b1-4a285ed47404a" });
4647
w.headers.accept_ranges = Some(headers::accept_ranges::RangeUnits(
47-
~[headers::accept_ranges::Bytes]));
48+
vec!(headers::accept_ranges::Bytes)));
4849
w.headers.content_length = Some(177);
4950
w.headers.vary = Some(~"Accept-Encoding");
5051
w.headers.content_type = Some(headers::content_type::MediaType {
5152
type_: ~"text",
5253
subtype: ~"html",
53-
parameters: ~[]
54+
parameters: Vec::new()
5455
});
5556
w.headers.extensions.insert(~"X-Pad", ~"avoid browser bug");
5657

src/examples/server/hello_world/main.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
33
#[crate_id = "hello_world"];
44

5-
extern crate extra;
65
extern crate time;
76
extern crate http;
87

@@ -26,7 +25,7 @@ impl Server for HelloWorldServer {
2625
w.headers.content_type = Some(MediaType {
2726
type_: ~"text",
2827
subtype: ~"plain",
29-
parameters: ~[(~"charset", ~"UTF-8")]
28+
parameters: vec!((~"charset", ~"UTF-8"))
3029
});
3130
w.headers.server = Some(~"Example");
3231

src/examples/server/info/main.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
44
#[crate_id = "info"];
55

6-
extern crate extra;
76
extern crate time;
87
extern crate http;
98

@@ -27,7 +26,7 @@ impl Server for InfoServer {
2726
w.headers.content_type = Some(MediaType {
2827
type_: ~"text",
2928
subtype: ~"html",
30-
parameters: ~[(~"charset", ~"UTF-8")]
29+
parameters: vec!((~"charset", ~"UTF-8"))
3130
});
3231
w.headers.server = Some(~"Rust Thingummy/0.0-pre");
3332
w.write(bytes!("<!DOCTYPE html><title>Rust HTTP server</title>")).unwrap();

src/examples/server/request_uri/main.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
77
#[crate_id = "request_uri"];
88

9-
extern crate extra;
109
extern crate time;
1110
extern crate http;
1211

12+
use std::vec::Vec;
13+
1314
use std::io::net::ip::{SocketAddr, Ipv4Addr};
1415
use std::io::Writer;
1516

@@ -47,7 +48,7 @@ impl Server for RequestUriServer {
4748
(&Options, &Star) => {
4849
// Querying server capabilities. That's nice and simple. I can handle these methods:
4950
// (TODO: let user code override this, providing a default method.)
50-
w.headers.allow = Some(~[Get, Head, Post, Put, Delete, Trace, Options, Connect, Patch]);
51+
w.headers.allow = Some(vec!(Get, Head, Post, Put, Delete, Trace, Options, Connect, Patch));
5152
w.headers.content_length = Some(0);
5253
return;
5354
},
@@ -62,7 +63,7 @@ impl Server for RequestUriServer {
6263
w.headers.content_type = Some(MediaType {
6364
type_: ~"text",
6465
subtype: ~"html",
65-
parameters: ~[]
66+
parameters: Vec::new()
6667
});
6768

6869
w.write(bytes!("<!DOCTYPE html><title>Rust HTTP server</title>")).unwrap();

src/http/buffer.rs

+16-12
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
33
use std::io::{IoResult, Stream};
44
use std::cmp::min;
5-
use std::vec;
5+
use std::vec::Vec;
6+
use std::slice;
67
use std::num::ToStrRadix;
78

89
// 64KB chunks (moderately arbitrary)
@@ -12,22 +13,22 @@ static WRITE_BUF_SIZE: uint = 0x10000;
1213

1314
pub struct BufferedStream<T> {
1415
wrapped: T,
15-
read_buffer: ~[u8],
16+
read_buffer: Vec<u8>,
1617
// The current position in the buffer
1718
read_pos: uint,
1819
// The last valid position in the reader
1920
read_max: uint,
20-
write_buffer: ~[u8],
21+
write_buffer: Vec<u8>,
2122
write_len: uint,
2223

2324
writing_chunked_body: bool,
2425
}
2526

2627
impl<T: Stream> BufferedStream<T> {
2728
pub fn new(stream: T) -> BufferedStream<T> {
28-
let mut read_buffer = vec::with_capacity(READ_BUF_SIZE);
29+
let mut read_buffer = Vec::with_capacity(READ_BUF_SIZE);
2930
unsafe { read_buffer.set_len(READ_BUF_SIZE); }
30-
let mut write_buffer = vec::with_capacity(WRITE_BUF_SIZE);
31+
let mut write_buffer = Vec::with_capacity(WRITE_BUF_SIZE);
3132
unsafe { write_buffer.set_len(WRITE_BUF_SIZE); }
3233
BufferedStream {
3334
wrapped: stream,
@@ -52,14 +53,14 @@ impl<T: Reader> BufferedStream<T> {
5253
(0, _) => fail!("poke called when buffer is full"),
5354
(_, _) => self.read_pos -= 1,
5455
}
55-
self.read_buffer[self.read_pos] = byte;
56+
self.read_buffer.as_mut_slice()[self.read_pos] = byte;
5657
}
5758

5859
#[inline]
5960
fn fill_buffer(&mut self) -> IoResult<()> {
6061
assert_eq!(self.read_pos, self.read_max);
6162
self.read_pos = 0;
62-
match self.wrapped.read(self.read_buffer) {
63+
match self.wrapped.read(self.read_buffer.as_mut_slice()) {
6364
Ok(i) => {
6465
self.read_max = i;
6566
Ok(())
@@ -80,7 +81,7 @@ impl<T: Reader> BufferedStream<T> {
8081
try!(self.fill_buffer());
8182
}
8283
self.read_pos += 1;
83-
Ok(self.read_buffer[self.read_pos - 1])
84+
Ok(self.read_buffer.as_slice()[self.read_pos - 1])
8485
}
8586
}
8687

@@ -110,7 +111,7 @@ impl<T: Reader> Reader for BufferedStream<T> {
110111
try!(self.fill_buffer());
111112
}
112113
let size = min(self.read_max - self.read_pos, buf.len());
113-
vec::bytes::copy_memory(buf, self.read_buffer.slice_from(self.read_pos).slice_to(size));
114+
slice::bytes::copy_memory(buf, self.read_buffer.slice_from(self.read_pos).slice_to(size));
114115
self.read_pos += size;
115116
Ok(size)
116117
}
@@ -135,17 +136,20 @@ impl<T: Writer> Writer for BufferedStream<T> {
135136
try!(self.wrapped.write(bytes!("\r\n")));
136137
}
137138
} else {
138-
unsafe { self.write_buffer.mut_slice_from(self.write_len).copy_memory(buf); }
139+
unsafe {
140+
let len = self.write_buffer.len();
141+
self.write_buffer.mut_slice(self.write_len, len).copy_memory(buf);
142+
}
139143

140144
self.write_len += buf.len();
141145
if self.write_len == self.write_buffer.len() {
142146
if self.writing_chunked_body {
143147
let s = format!("{}\r\n", self.write_len.to_str_radix(16));
144148
try!(self.wrapped.write(s.as_bytes()));
145-
try!(self.wrapped.write(self.write_buffer));
149+
try!(self.wrapped.write(self.write_buffer.as_slice()));
146150
try!(self.wrapped.write(bytes!("\r\n")));
147151
} else {
148-
try!(self.wrapped.write(self.write_buffer));
152+
try!(self.wrapped.write(self.write_buffer.as_slice()));
149153
}
150154
self.write_len = 0;
151155
}

src/http/client/request.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,8 @@ let response = match request.read_response() {
3535
```
3636
3737
*/
38-
39-
use extra::url::Url;
40-
use extra::url;
38+
use url;
39+
use url::Url;
4140
use method::Method;
4241
use std::io::{IoError, IoResult};
4342
use std::io::net::get_host_addresses;

src/http/headers/accept_ranges.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
//! The Accept-Ranges request header, defined in RFC 2616, Section 14.5.
22
3+
use std::vec::Vec;
34
use std::io::IoResult;
45
use std::ascii::StrAsciiExt;
56

@@ -13,7 +14,7 @@ pub enum RangeUnit {
1314
#[deriving(Clone,Eq)]
1415
// RFC 2616: acceptable-ranges = 1#range-unit | "none"
1516
pub enum AcceptableRanges {
16-
RangeUnits(~[RangeUnit]),
17+
RangeUnits(Vec<RangeUnit>),
1718
NoAcceptableRanges,
1819
}
1920

@@ -23,7 +24,7 @@ static BYTES: &'static [u8] = bytes!("bytes");
2324
impl super::HeaderConvertible for AcceptableRanges {
2425
fn from_stream<R: Reader>(reader: &mut super::HeaderValueByteIterator<R>)
2526
-> Option<AcceptableRanges> {
26-
let mut range_units = ~[];
27+
let mut range_units = Vec::new();
2728
loop {
2829
match reader.read_token() {
2930
Some(token) => {

src/http/headers/connection.rs

+16-15
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use headers::serialization_utils::normalise_header_name;
1010

1111
/// A value for the Connection header. Note that should it be a ``Token``, the string is in
1212
/// normalised header case (e.g. "Keep-Alive").
13-
#[deriving(Clone, DeepClone, Eq)]
13+
#[deriving(Clone, Eq)]
1414
pub enum Connection {
1515
Token(~str),
1616
Close,
@@ -58,24 +58,25 @@ impl super::HeaderConvertible for Connection {
5858

5959
#[test]
6060
fn test_connection() {
61+
use std::vec::Vec;
6162
use headers::test_utils::{assert_conversion_correct,
6263
assert_interpretation_correct,
6364
assert_invalid};
64-
assert_conversion_correct("close", ~[Close]);
65-
assert_conversion_correct("Foo", ~[Token(~"Foo")]);
66-
assert_conversion_correct("Foo, Keep-Alive", ~[Token(~"Foo"), Token(~"Keep-Alive")]);
67-
assert_conversion_correct("Foo, close", ~[Token(~"Foo"), Close]);
68-
assert_conversion_correct("close, Bar", ~[Close, Token(~"Bar")]);
65+
assert_conversion_correct("close", vec!(Close));
66+
assert_conversion_correct("Foo", vec!(Token(~"Foo")));
67+
assert_conversion_correct("Foo, Keep-Alive", vec!(Token(~"Foo"), Token(~"Keep-Alive")));
68+
assert_conversion_correct("Foo, close", vec!(Token(~"Foo"), Close));
69+
assert_conversion_correct("close, Bar", vec!(Close, Token(~"Bar")));
6970
70-
assert_interpretation_correct("close", ~[Close]);
71-
assert_interpretation_correct("foo", ~[Token(~"Foo")]);
72-
assert_interpretation_correct("close \r\n , keep-ALIVE", ~[Close, Token(~"Keep-Alive")]);
73-
assert_interpretation_correct("foo,close", ~[Token(~"Foo"), Close]);
74-
assert_interpretation_correct("close, bar", ~[Close, Token(~"Bar")]);
71+
assert_interpretation_correct("close", vec!(Close));
72+
assert_interpretation_correct("foo", vec!(Token(~"Foo")));
73+
assert_interpretation_correct("close \r\n , keep-ALIVE", vec!(Close, Token(~"Keep-Alive")));
74+
assert_interpretation_correct("foo,close", vec!(Token(~"Foo"), Close));
75+
assert_interpretation_correct("close, bar", vec!(Close, Token(~"Bar")));
7576
assert_interpretation_correct("CLOSE", Close);
7677
77-
assert_invalid::<~[Connection]>("foo bar");
78-
assert_invalid::<~[Connection]>("foo bar");
79-
assert_invalid::<~[Connection]>("foo, bar baz");
80-
assert_invalid::<~[Connection]>("foo, , baz");
78+
assert_invalid::<Vec<Connection>>("foo bar");
79+
assert_invalid::<Vec<Connection>>("foo bar");
80+
assert_invalid::<Vec<Connection>>("foo, bar baz");
81+
assert_invalid::<Vec<Connection>>("foo, , baz");
8182
}

src/http/headers/content_type.rs

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
//! The Content-Type entity header, defined in RFC 2616, Section 14.17.
22
use headers::serialization_utils::{push_parameters, WriterUtil};
3+
use std::vec::Vec;
34
use std::io::IoResult;
45
use std::fmt;
56

67
#[deriving(Clone, Eq)]
78
pub struct MediaType {
89
type_: ~str,
910
subtype: ~str,
10-
parameters: ~[(~str, ~str)],
11+
parameters: Vec<(~str, ~str)>,
1112
}
1213

13-
pub fn MediaType(type_: ~str, subtype: ~str, parameters: ~[(~str, ~str)]) -> MediaType {
14+
pub fn MediaType(type_: ~str, subtype: ~str, parameters: Vec<(~str, ~str)>) -> MediaType {
1415
MediaType {
1516
type_: type_,
1617
subtype: subtype,
@@ -28,7 +29,7 @@ impl fmt::Show for MediaType {
2829
//s.push_parameters(self.parameters);
2930
//s
3031
let s = format!("{}/{}", self.type_, self.subtype);
31-
f.buf.write(push_parameters(s, self.parameters).as_bytes())
32+
f.buf.write(push_parameters(s, self.parameters.as_slice()).as_bytes())
3233
}
3334
}
3435

@@ -63,7 +64,7 @@ impl super::HeaderConvertible for MediaType {
6364
try!(writer.write_token(self.type_));
6465
try!(writer.write(['/' as u8]));
6566
try!(writer.write_token(self.subtype));
66-
writer.write_parameters(self.parameters)
67+
writer.write_parameters(self.parameters.as_slice())
6768
}
6869

6970
fn http_value(&self) -> ~str {
@@ -75,13 +76,13 @@ impl super::HeaderConvertible for MediaType {
7576
fn test_content_type() {
7677
use headers::test_utils::{assert_conversion_correct, assert_interpretation_correct,
7778
assert_invalid};
78-
assert_conversion_correct("type/subtype", MediaType(~"type", ~"subtype", ~[]));
79+
assert_conversion_correct("type/subtype", MediaType(~"type", ~"subtype", Vec::new()));
7980
assert_conversion_correct("type/subtype;key=value",
80-
MediaType(~"type", ~"subtype", ~[(~"key", ~"value")]));
81+
MediaType(~"type", ~"subtype", vec!((~"key", ~"value"))));
8182
assert_conversion_correct("type/subtype;key=value;q=0.1",
82-
MediaType(~"type", ~"subtype", ~[(~"key", ~"value"), (~"q", ~"0.1")]));
83+
MediaType(~"type", ~"subtype", vec!((~"key", ~"value"), (~"q", ~"0.1"))));
8384
assert_interpretation_correct("type/subtype ; key = value ; q = 0.1",
84-
MediaType(~"type", ~"subtype", ~[(~"key", ~"value"), (~"q", ~"0.1")]));
85+
MediaType(~"type", ~"subtype", vec!((~"key", ~"value"), (~"q", ~"0.1"))));
8586
8687
assert_invalid::<MediaType>("");
8788
assert_invalid::<MediaType>("/");

0 commit comments

Comments
 (0)