diff --git a/scie-scanner/src/scanner/old/scie_error.rs b/scie-scanner/src/scanner/old/scie_error.rs index c0a01a041ff67856f55b0ef6ac714bad82e0e61a..cb91238ab8a68e3d217618963727aa5aa6b279f2 100644 --- a/scie-scanner/src/scanner/old/scie_error.rs +++ b/scie-scanner/src/scanner/old/scie_error.rs @@ -23,7 +23,6 @@ use std::os::raw::c_int; -use std::ptr::null; use std::{error, fmt, str}; /// This struture represents an error from the underlying Oniguruma libray. @@ -37,9 +36,9 @@ impl ScieOnigError { ScieOnigError::new(code, info) } - fn from_code(code: c_int) -> ScieOnigError { - ScieOnigError::new(code, null()) - } + // fn from_code(code: c_int) -> ScieOnigError { + // ScieOnigError::new(code, null()) + // } fn new(code: c_int, info: *const onig_sys::OnigErrorInfo) -> ScieOnigError { let buff = &mut [0; onig_sys::ONIG_MAX_ERROR_MESSAGE_LEN as usize]; diff --git a/scie-scanner/src/scanner/old/scie_onig.rs b/scie-scanner/src/scanner/old/scie_onig.rs index 5c2ef97219092646a984f7ccb2b14cc6d593dd98..8f85106369d42ce9ebd53a991d5fe5b3211254b6 100644 --- a/scie-scanner/src/scanner/old/scie_onig.rs +++ b/scie-scanner/src/scanner/old/scie_onig.rs @@ -70,7 +70,7 @@ mod tests { #[test] fn it_works() { - ScieOnig::demo_new(r"^"); + let _result = ScieOnig::demo_new(r"^"); assert!(true) } } diff --git a/scie-scanner/src/scanner/onig_string.rs b/scie-scanner/src/scanner/onig_string.rs index 4d8cc99163e53e6617dcc732d02965930889ea19..e9cf8378e0e237bc73d832a0d0bc17705592ac07 100644 --- a/scie-scanner/src/scanner/onig_string.rs +++ b/scie-scanner/src/scanner/onig_string.rs @@ -1,28 +1,29 @@ use unicode_segmentation::UnicodeSegmentation; +#[derive(Clone, Debug)] pub struct OnigString { - pub utf16length: i32, - pub utf8length: i32, - pub utf16value: String, - pub utf8value: Vec, - pub utf16offset_to_utf8: Option>, - pub utf8offset_to_utf16: Option>, + pub utf16length: i32, + pub utf8length: i32, + pub utf16value: String, + pub utf8value: Vec, + pub utf16offset_to_utf8: Option>, + pub utf8offset_to_utf16: Option>, } impl OnigString { pub fn new(str: String) -> Self { - let utf16length = str.len(); - let utf8_str = str.graphemes(true).collect::>().clone(); - println!("{:?}", utf8_str); - let utf8length = utf8_str.len(); - + let mut utf16_vec: Vec = str.encode_utf16().collect(); + let utf16length = utf16_vec.len(); + // let utf8_str = str.graphemes(true).collect::>().clone(); + let utf8length = str.len(); + let utf8value = str.clone().into_bytes(); OnigString { utf16length: utf16length as i32, utf8length: utf8length as i32, - utf16value: "".to_string(), - utf8value: vec![], + utf16value: str.clone(), + utf8value, utf16offset_to_utf8: None, utf8offset_to_utf16: None } @@ -37,7 +38,9 @@ mod tests { #[test] fn it_show_works_works() { let onig_string = OnigString::new(String::from("a💻bYX")); - assert_eq!(8, onig_string.utf16length); - assert_eq!(5, onig_string.utf8length); + println!("{:?}", onig_string); + + assert_eq!(6, onig_string.utf16length); + assert_eq!(8, onig_string.utf8length); } }