Skip to content

Commit 5b646c0

Browse files
committed
Some ~[] -> Vec work
1 parent 850982c commit 5b646c0

File tree

5 files changed

+37
-33
lines changed

5 files changed

+37
-33
lines changed

src/error.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
use collections::HashMap;
44
use std::from_str::FromStr;
55
use std::io::IoError;
6+
use std::vec_ng::Vec;
67

78
use openssl::ssl::error::SslError;
89
use phf::PhfMap;
@@ -450,7 +451,7 @@ pub struct PostgresDbError {
450451

451452
impl PostgresDbError {
452453
#[doc(hidden)]
453-
pub fn new(fields: ~[(u8, ~str)]) -> PostgresDbError {
454+
pub fn new(fields: Vec<(u8, ~str)>) -> PostgresDbError {
454455
let mut map: HashMap<u8, ~str> = fields.move_iter().collect();
455456
PostgresDbError {
456457
severity: map.pop(&('S' as u8)).unwrap(),

src/lib.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ use std::io::net::tcp::TcpStream;
8888
use std::mem;
8989
use std::str;
9090
use std::task;
91+
use std::vec_ng::Vec;
9192

9293
use error::{DnsError,
9394
InvalidUrl,
@@ -588,18 +589,18 @@ impl InnerPostgresConnection {
588589
_ => unreachable!()
589590
}
590591

591-
let mut param_types: ~[PostgresType] = match if_ok_pg!(self.read_message()) {
592+
let mut param_types: Vec<PostgresType> = match if_ok_pg!(self.read_message()) {
592593
ParameterDescription { types } =>
593594
types.iter().map(|ty| PostgresType::from_oid(*ty)).collect(),
594595
_ => unreachable!()
595596
};
596597

597-
let mut result_desc: ~[ResultDescription] = match if_ok_pg!(self.read_message()) {
598+
let mut result_desc: Vec<ResultDescription> = match if_ok_pg!(self.read_message()) {
598599
RowDescription { descriptions } =>
599600
descriptions.move_iter().map(|desc| {
600601
stmt::make_ResultDescription(desc)
601602
}).collect(),
602-
NoData => ~[],
603+
NoData => Vec::new(),
603604
_ => unreachable!()
604605
};
605606

@@ -644,8 +645,8 @@ impl InnerPostgresConnection {
644645
None => {}
645646
}
646647
let name = try!(self.quick_query(
647-
format!("SELECT typname FROM pg_type WHERE oid={}", oid)))[0][0]
648-
.unwrap();
648+
format!("SELECT typname FROM pg_type WHERE oid={}", oid)))
649+
.move_iter().next().unwrap().move_iter().next().unwrap().unwrap();
649650
self.unknown_types.insert(oid, name.clone());
650651
Ok(name)
651652
}
@@ -658,11 +659,11 @@ impl InnerPostgresConnection {
658659
}
659660

660661
fn quick_query(&mut self, query: &str)
661-
-> Result<~[~[Option<~str>]], PostgresError> {
662+
-> Result<Vec<Vec<Option<~str>>>, PostgresError> {
662663
check_desync!(self);
663664
if_ok_pg!(self.write_messages([Query { query: query }]));
664665

665-
let mut result = ~[];
666+
let mut result = Vec::new();
666667
loop {
667668
match if_ok_pg!(self.read_message()) {
668669
ReadyForQuery { .. } => break,
@@ -893,7 +894,7 @@ impl PostgresConnection {
893894
}
894895

895896
fn quick_query(&self, query: &str)
896-
-> Result<~[~[Option<~str>]], PostgresError> {
897+
-> Result<Vec<Vec<Option<~str>>>, PostgresError> {
897898
self.conn.with_mut(|conn| conn.quick_query(query))
898899
}
899900

src/message.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use std::str;
22
use std::io::{IoResult, MemWriter, MemReader};
33
use std::mem;
44
use std::vec;
5+
use std::vec_ng::Vec;
56

67
use types::Oid;
78

@@ -29,23 +30,23 @@ pub enum BackendMessage {
2930
tag: ~str
3031
},
3132
DataRow {
32-
row: ~[Option<~[u8]>]
33+
row: Vec<Option<~[u8]>>
3334
},
3435
EmptyQueryResponse,
3536
ErrorResponse {
36-
fields: ~[(u8, ~str)]
37+
fields: Vec<(u8, ~str)>
3738
},
3839
NoData,
3940
NoticeResponse {
40-
fields: ~[(u8, ~str)]
41+
fields: Vec<(u8, ~str)>
4142
},
4243
NotificationResponse {
4344
pid: i32,
4445
channel: ~str,
4546
payload: ~str
4647
},
4748
ParameterDescription {
48-
types: ~[Oid]
49+
types: Vec<Oid>
4950
},
5051
ParameterStatus {
5152
parameter: ~str,
@@ -57,7 +58,7 @@ pub enum BackendMessage {
5758
state: u8
5859
},
5960
RowDescription {
60-
descriptions: ~[RowDescriptionEntry]
61+
descriptions: Vec<RowDescriptionEntry>
6162
}
6263
}
6364

@@ -301,8 +302,8 @@ impl<R: Reader> ReadMessage for R {
301302
}
302303
}
303304

304-
fn read_fields(buf: &mut MemReader) -> IoResult<~[(u8, ~str)]> {
305-
let mut fields = ~[];
305+
fn read_fields(buf: &mut MemReader) -> IoResult<Vec<(u8, ~str)>> {
306+
let mut fields = Vec::new();
306307
loop {
307308
let ty = try!(buf.read_u8());
308309
if ty == 0 {
@@ -317,7 +318,7 @@ fn read_fields(buf: &mut MemReader) -> IoResult<~[(u8, ~str)]> {
317318

318319
fn read_data_row(buf: &mut MemReader) -> IoResult<BackendMessage> {
319320
let len = try!(buf.read_be_i16()) as uint;
320-
let mut values = vec::with_capacity(len);
321+
let mut values = Vec::with_capacity(len);
321322

322323
for _ in range(0, len) {
323324
let val = match try!(buf.read_be_i32()) {
@@ -345,7 +346,7 @@ fn read_auth_message(buf: &mut MemReader) -> IoResult<BackendMessage> {
345346

346347
fn read_parameter_description(buf: &mut MemReader) -> IoResult<BackendMessage> {
347348
let len = try!(buf.read_be_i16()) as uint;
348-
let mut types = vec::with_capacity(len);
349+
let mut types = Vec::with_capacity(len);
349350

350351
for _ in range(0, len) {
351352
types.push(try!(buf.read_be_u32()));
@@ -356,7 +357,7 @@ fn read_parameter_description(buf: &mut MemReader) -> IoResult<BackendMessage> {
356357

357358
fn read_row_description(buf: &mut MemReader) -> IoResult<BackendMessage> {
358359
let len = try!(buf.read_be_i16()) as uint;
359-
let mut types = vec::with_capacity(len);
360+
let mut types = Vec::with_capacity(len);
360361

361362
for _ in range(0, len) {
362363
types.push(RowDescriptionEntry {

src/stmt.rs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use collections::{Deque, RingBuf};
22
use std::cell::Cell;
33
use std::from_str::FromStr;
44
use std::task;
5+
use std::vec_ng::Vec;
56

67
use PostgresConnection;
78
use error::{PgDbError,
@@ -116,16 +117,16 @@ pub trait PostgresStatement {
116117
pub struct NormalPostgresStatement<'conn> {
117118
priv conn: &'conn PostgresConnection,
118119
priv name: ~str,
119-
priv param_types: ~[PostgresType],
120-
priv result_desc: ~[ResultDescription],
120+
priv param_types: Vec<PostgresType>,
121+
priv result_desc: Vec<ResultDescription>,
121122
priv next_portal_id: Cell<uint>,
122123
priv finished: Cell<bool>,
123124
}
124125

125126
pub fn make_NormalPostgresStatement<'a>(conn: &'a PostgresConnection,
126127
name: ~str,
127-
param_types: ~[PostgresType],
128-
result_desc: ~[ResultDescription])
128+
param_types: Vec<PostgresType>,
129+
result_desc: Vec<ResultDescription>)
129130
-> NormalPostgresStatement<'a> {
130131
NormalPostgresStatement {
131132
conn: conn,
@@ -174,8 +175,8 @@ impl<'conn> NormalPostgresStatement<'conn> {
174175

175176
fn execute(&self, portal_name: &str, row_limit: uint, params: &[&ToSql])
176177
-> Result<(), PostgresError> {
177-
let mut formats = ~[];
178-
let mut values = ~[];
178+
let mut formats = Vec::new();
179+
let mut values = Vec::new();
179180
assert!(self.param_types.len() == params.len(),
180181
"Expected {} parameters but found {}",
181182
self.param_types.len(), params.len());
@@ -185,17 +186,17 @@ impl<'conn> NormalPostgresStatement<'conn> {
185186
values.push(value);
186187
};
187188

188-
let result_formats: ~[i16] = self.result_desc.iter().map(|desc| {
189+
let result_formats: Vec<i16> = self.result_desc.iter().map(|desc| {
189190
desc.ty.result_format() as i16
190191
}).collect();
191192

192193
if_ok_pg!(self.conn.write_messages([
193194
Bind {
194195
portal: portal_name,
195196
statement: self.name.as_slice(),
196-
formats: formats,
197-
values: values,
198-
result_formats: result_formats
197+
formats: formats.as_slice(),
198+
values: values.as_slice(),
199+
result_formats: result_formats.as_slice()
199200
},
200201
Execute {
201202
portal: portal_name,
@@ -380,7 +381,7 @@ impl<'conn> TransactionalPostgresStatement<'conn> {
380381
pub struct PostgresResult<'stmt> {
381382
priv stmt: &'stmt NormalPostgresStatement<'stmt>,
382383
priv name: ~str,
383-
priv data: RingBuf<~[Option<~[u8]>]>,
384+
priv data: RingBuf<Vec<Option<~[u8]>>>,
384385
priv row_limit: uint,
385386
priv more_rows: bool,
386387
priv finished: bool,
@@ -514,7 +515,7 @@ impl<'stmt> Iterator<PostgresRow<'stmt>> for PostgresResult<'stmt> {
514515
/// ```
515516
pub struct PostgresRow<'stmt> {
516517
priv stmt: &'stmt NormalPostgresStatement<'stmt>,
517-
priv data: ~[Option<~[u8]>]
518+
priv data: Vec<Option<~[u8]>>
518519
}
519520

520521
impl<'stmt> Container for PostgresRow<'stmt> {
@@ -527,7 +528,7 @@ impl<'stmt> Container for PostgresRow<'stmt> {
527528
impl<'stmt, I: RowIndex, T: FromSql> Index<I, T> for PostgresRow<'stmt> {
528529
fn index(&self, idx: &I) -> T {
529530
let idx = idx.idx(self.stmt);
530-
FromSql::from_sql(&self.stmt.result_desc[idx].ty, &self.data[idx])
531+
FromSql::from_sql(&self.stmt.result_desc.get(idx).ty, self.data.get(idx))
531532
}
532533
}
533534

submodules/rust-phf

Submodule rust-phf updated from ba1a08d to 34da3b9

0 commit comments

Comments
 (0)