Fixed some pedant issues.
I need to fix the last two by splitting up encode into multiple functions (probably a good thing) and apparently changing the lazy static macro
This commit is contained in:
34
src/pages.rs
34
src/pages.rs
@@ -1,5 +1,5 @@
|
||||
// TODO these functions are so shit
|
||||
/// Finds the index of the first occurrence of search_bytes in bytes.
|
||||
/// Finds the index of the first occurrence of `search_bytes` in `bytes`.
|
||||
fn find_pattern(bytes: &[u8], search_bytes: &[u8]) -> Option<usize>
|
||||
{
|
||||
bytes.windows(search_bytes.len())
|
||||
@@ -9,7 +9,7 @@ fn find_pattern(bytes: &[u8], search_bytes: &[u8]) -> Option<usize>
|
||||
fn find_closing_brace(bytes: &[u8], opening_brace_index: usize) -> Option<usize>
|
||||
{
|
||||
let mut depth: i8 = 0;
|
||||
for i in opening_brace_index..bytes.len()-1
|
||||
for (i, _) in bytes.iter().enumerate().take(bytes.len()-1).skip(opening_brace_index)
|
||||
{
|
||||
if bytes[i] == 5 {
|
||||
depth += 1; }
|
||||
@@ -31,26 +31,22 @@ pub fn get_page(bytes: &[u8], page: &str) -> Vec<u8>
|
||||
search_bytes.append(&mut page.as_bytes().to_vec());
|
||||
search_bytes.push(4);
|
||||
|
||||
if let Some(opening_index) = find_pattern(&bytes, &search_pages_bytes)
|
||||
if let Some(opening_index) = find_pattern(bytes, &search_pages_bytes)
|
||||
&& let Some(closing_index) = find_closing_brace(bytes, opening_index+search_pages_bytes.len())
|
||||
{
|
||||
if let Some(closing_index) = find_closing_brace(&bytes, opening_index+search_pages_bytes.len())
|
||||
//println!("found pages: {} to {}", opening_index, closing_index);
|
||||
if let Some(opening_page_index) = find_pattern(&bytes[opening_index..=closing_index], &search_bytes)
|
||||
{
|
||||
//println!("found pages: {} to {}", opening_index, closing_index);
|
||||
if let Some(opening_page_index) = find_pattern(&bytes[opening_index..closing_index+1], &search_bytes)
|
||||
//println!("{:?}", &bytes[opening_index+opening_page_index..]);
|
||||
if let Some(closing_page_index) = find_closing_brace
|
||||
(
|
||||
&bytes[opening_index+opening_page_index..],
|
||||
search_bytes.len()
|
||||
)
|
||||
{
|
||||
//println!("{:?}", &bytes[opening_index+opening_page_index..]);
|
||||
if let Some(closing_page_index) = find_closing_brace
|
||||
(
|
||||
&bytes[opening_index+opening_page_index..],
|
||||
search_bytes.len()
|
||||
)
|
||||
{
|
||||
//println!("found page: {} to {}", opening_index+opening_page_index, opening_index+closing_page_index);
|
||||
//println!("found page: {:?}", &bytes[opening_index+opening_page_index..opening_index+opening_page_index+closing_page_index+1]);
|
||||
page_bytes.append(&mut bytes[opening_page_index+opening_index..opening_page_index+closing_page_index+opening_index+1].to_vec());
|
||||
page_bytes.push(2);
|
||||
return page_bytes
|
||||
}
|
||||
page_bytes.append(&mut bytes[opening_page_index+opening_index..=opening_page_index+closing_page_index+opening_index].to_vec());
|
||||
page_bytes.push(2);
|
||||
return page_bytes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user