Made add in codegen faster
This commit is contained in:
Generated
+7
@@ -45,6 +45,12 @@ dependencies = [
|
|||||||
"generic-array",
|
"generic-array",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bytecount"
|
||||||
|
version = "0.6.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bytes"
|
name = "bytes"
|
||||||
version = "1.11.1"
|
version = "1.11.1"
|
||||||
@@ -493,6 +499,7 @@ dependencies = [
|
|||||||
name = "mist-codegen"
|
name = "mist-codegen"
|
||||||
version = "0.3.3-alpha.0"
|
version = "0.3.3-alpha.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"bytecount",
|
||||||
"mist-parser",
|
"mist-parser",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -9,4 +9,5 @@ keywords = ["compiler", "language", "mist"]
|
|||||||
categories = ["compilers"]
|
categories = ["compilers"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
bytecount = "0.6.9"
|
||||||
mist-parser = { workspace = true }
|
mist-parser = { workspace = true }
|
||||||
|
|||||||
@@ -50,13 +50,15 @@ impl RustCodegen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn add(&mut self, s: &str) {
|
fn add(&mut self, s: &str) {
|
||||||
for b in s.bytes() {
|
let newline_count = bytecount::count(s.as_bytes(), b'\n');
|
||||||
if b == b'\n' {
|
|
||||||
self.position.0 += 1;
|
if newline_count == 0 {
|
||||||
self.position.1 = 0;
|
self.position.1 += s.len();
|
||||||
} else {
|
} else {
|
||||||
self.position.1 += 1;
|
self.position.0 += newline_count;
|
||||||
}
|
|
||||||
|
let last_newline = s.rfind('\n').unwrap();
|
||||||
|
self.position.1 = s.len() - last_newline - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.output.push_str(s);
|
self.output.push_str(s);
|
||||||
|
|||||||
Reference in New Issue
Block a user