don't need own parse_line function
This commit is contained in:
parent
5aa94e67d1
commit
da72f38e42
@ -1,3 +1,5 @@
|
|||||||
|
#![feature(slice_split_once)]
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
fs::File,
|
fs::File,
|
||||||
io::BufReader,
|
io::BufReader,
|
||||||
@ -8,7 +10,7 @@ use std::io::{BufRead, Seek, SeekFrom};
|
|||||||
use std::sync::mpsc;
|
use std::sync::mpsc;
|
||||||
use std::time::Instant;
|
use std::time::Instant;
|
||||||
|
|
||||||
use onebrc::{parse_line, parse_temp};
|
use onebrc::parse_temp;
|
||||||
|
|
||||||
const DEFAULT_HASHMAP_LENGTH: usize = 10000;
|
const DEFAULT_HASHMAP_LENGTH: usize = 10000;
|
||||||
|
|
||||||
@ -51,9 +53,9 @@ fn main() {
|
|||||||
if line_len == 0 {
|
if line_len == 0 {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
let (station, temp) = parse_line(&line);
|
let (station, temp) = line.rsplit_once(|&byte| byte == b';').unwrap();
|
||||||
let station = unsafe { String::from_utf8_unchecked(Vec::from(station)) };
|
let station = unsafe { String::from_utf8_unchecked(Vec::from(station)) };
|
||||||
let temp = parse_temp(temp);
|
let temp = parse_temp(temp.split_last().unwrap().1);
|
||||||
let measurements_option = t_stations.get_mut(&station);
|
let measurements_option = t_stations.get_mut(&station);
|
||||||
if let Some(measurements) = measurements_option {
|
if let Some(measurements) = measurements_option {
|
||||||
measurements.update(temp);
|
measurements.update(temp);
|
||||||
@ -66,7 +68,7 @@ fn main() {
|
|||||||
};
|
};
|
||||||
t_stations.insert(station, measurements);
|
t_stations.insert(station, measurements);
|
||||||
}
|
}
|
||||||
currposition += line.len() as u64;
|
currposition += line_len as u64;
|
||||||
if currposition >= end {
|
if currposition >= end {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
|
#![feature(slice_split_once)]
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::{BufRead, BufReader};
|
use std::io::{BufRead, BufReader};
|
||||||
use std::time::Instant;
|
use std::time::Instant;
|
||||||
|
|
||||||
use onebrc::parse_line;
|
|
||||||
|
|
||||||
const DEFAULT_HASHMAP_LENGTH: usize = 10000;
|
const DEFAULT_HASHMAP_LENGTH: usize = 10000;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
@ -20,9 +20,9 @@ fn main() {
|
|||||||
if line_len == 0 {
|
if line_len == 0 {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
let (station, temp) = parse_line(&line);
|
let (station, temp) = line.rsplit_once(|&byte| byte == b';').unwrap();
|
||||||
let station = unsafe { String::from_utf8_unchecked(Vec::from(station)) };
|
let station = unsafe { String::from_utf8_unchecked(Vec::from(station)) };
|
||||||
let temp = onebrc::parse_temp(temp);
|
let temp = onebrc::parse_temp(temp.split_last().unwrap().1);
|
||||||
let measurements_option = stations.get_mut(&station);
|
let measurements_option = stations.get_mut(&station);
|
||||||
if let Some(measurements) = measurements_option {
|
if let Some(measurements) = measurements_option {
|
||||||
measurements.update(temp);
|
measurements.update(temp);
|
||||||
|
Loading…
Reference in New Issue
Block a user