Rust 2024
This commit is contained in:
1 parent
5b80fee02e
commit
4440763f44
9 files changed
+34
-33
No files matched your search
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "ehviewer_rust"
|
||||
version = "0.0.0"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
||||
@@ -4,17 +4,17 @@ use super::jvm::jni_throwing;
|
||||
use crate::img::border::DetectBorder;
|
||||
use crate::img::core::{CustomPixel, ImageConsumer, Rgb565, Rgba8888, RgbaF16};
|
||||
use crate::img::qr_code::QrCode;
|
||||
use anyhow::{anyhow, Ok, Result};
|
||||
use anyhow::{Ok, Result, anyhow};
|
||||
use image::ImageBuffer;
|
||||
use jni::JNIEnv;
|
||||
use jni::objects::JClass;
|
||||
use jni::sys::jboolean;
|
||||
use jni::sys::{jintArray, jobject};
|
||||
use jni::JNIEnv;
|
||||
use jni_fn::jni_fn;
|
||||
use ndk::bitmap::{Bitmap, BitmapFormat};
|
||||
use std::ptr::slice_from_raw_parts;
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.image.ImageKt")]
|
||||
pub fn detectBorder(mut env: JNIEnv, _class: JClass, object: jobject) -> jintArray {
|
||||
@@ -26,7 +26,7 @@ pub fn detectBorder(mut env: JNIEnv, _class: JClass, object: jobject) -> jintArr
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.image.ImageKt")]
|
||||
pub fn hasQrCode(mut env: JNIEnv, _class: JClass, object: jobject) -> jboolean {
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
use super::android::use_bitmap_content;
|
||||
use super::jvm::jni_throwing;
|
||||
use crate::img::copy_region::CopyRegion;
|
||||
use jni::JNIEnv;
|
||||
use jni::objects::JClass;
|
||||
use jni::sys::{jint, jobject};
|
||||
use jni::JNIEnv;
|
||||
use jni_fn::jni_fn;
|
||||
use ndk::hardware_buffer::{HardwareBuffer, HardwareBufferUsage};
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.image.ImageKt")]
|
||||
pub fn copyBitmapToAHB(mut env: JNIEnv, _: JClass, bm: jobject, ahb: jobject, x: jint, y: jint) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#![cfg(feature = "jvm")]
|
||||
|
||||
use crate::EhError;
|
||||
use crate::parser::archive::{parse_archive_url, parse_archives, parse_archives_with_funds};
|
||||
use crate::parser::config::parse_fav_cat;
|
||||
use crate::parser::detail::{parse_event_pane, parse_gallery_detail};
|
||||
@@ -8,11 +9,10 @@ use crate::parser::home::parse_limit;
|
||||
use crate::parser::list::parse_info_list;
|
||||
use crate::parser::profile::{parse_profile, parse_profile_url};
|
||||
use crate::parser::torrent::parse_torrent_list;
|
||||
use crate::EhError;
|
||||
use android_logger::Config;
|
||||
use anyhow::{ensure, Context, Result};
|
||||
use anyhow::{Context, Result, ensure};
|
||||
use jni::objects::{JByteBuffer, JClass};
|
||||
use jni::sys::{jboolean, jint, jobject, JNI_TRUE, JNI_VERSION_1_6};
|
||||
use jni::sys::{JNI_TRUE, JNI_VERSION_1_6, jboolean, jint, jobject};
|
||||
use jni::{JNIEnv, JavaVM};
|
||||
use jni_fn::jni_fn;
|
||||
use log::LevelFilter;
|
||||
@@ -23,7 +23,7 @@ use std::ptr::slice_from_raw_parts_mut;
|
||||
use std::str::from_utf8_unchecked;
|
||||
use tl::{ParserOptions, VDom};
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.client.parser.FavoritesParserKt")]
|
||||
pub fn parseFav(mut env: JNIEnv, _class: JClass, input: JByteBuffer, limit: jint) -> jint {
|
||||
@@ -32,7 +32,7 @@ pub fn parseFav(mut env: JNIEnv, _class: JClass, input: JByteBuffer, limit: jint
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.client.parser.HomeParserKt")]
|
||||
pub fn parseLimit(mut env: JNIEnv, _class: JClass, input: JByteBuffer, limit: jint) -> jint {
|
||||
@@ -41,7 +41,7 @@ pub fn parseLimit(mut env: JNIEnv, _class: JClass, input: JByteBuffer, limit: ji
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.client.parser.GalleryListParserKt")]
|
||||
pub fn parseGalleryInfoList(mut env: JNIEnv, _: JClass, buffer: JByteBuffer, limit: jint) -> jint {
|
||||
@@ -50,7 +50,7 @@ pub fn parseGalleryInfoList(mut env: JNIEnv, _: JClass, buffer: JByteBuffer, lim
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.client.parser.GalleryDetailParser")]
|
||||
pub fn parseGalleryDetail(mut env: JNIEnv, _: JClass, buffer: JByteBuffer, limit: jint) -> jint {
|
||||
@@ -60,7 +60,7 @@ pub fn parseGalleryDetail(mut env: JNIEnv, _: JClass, buffer: JByteBuffer, limit
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.client.parser.EventPaneParser")]
|
||||
pub fn parseEventPane(mut env: JNIEnv, _class: JClass, input: JByteBuffer, limit: jint) -> jint {
|
||||
@@ -69,7 +69,7 @@ pub fn parseEventPane(mut env: JNIEnv, _class: JClass, input: JByteBuffer, limit
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.client.parser.TorrentParserKt")]
|
||||
pub fn parseTorrent(mut env: JNIEnv, _class: JClass, buffer: JByteBuffer, limit: jint) -> jint {
|
||||
@@ -78,14 +78,14 @@ pub fn parseTorrent(mut env: JNIEnv, _class: JClass, buffer: JByteBuffer, limit:
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.client.parser.UserConfigParser")]
|
||||
pub fn parseFavCat(mut env: JNIEnv, _class: JClass, buffer: JByteBuffer, limit: jint) -> jint {
|
||||
parse_marshal_inplace(&mut env, buffer, limit, |_, body| Ok(parse_fav_cat(body)))
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.client.parser.ArchiveParserKt")]
|
||||
pub fn parseArchives(
|
||||
@@ -106,7 +106,7 @@ pub fn parseArchives(
|
||||
}
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.client.parser.ArchiveParserKt")]
|
||||
pub fn parseArchiveUrl(mut env: JNIEnv, _class: JClass, buffer: JByteBuffer, limit: jint) -> jint {
|
||||
@@ -115,7 +115,7 @@ pub fn parseArchiveUrl(mut env: JNIEnv, _class: JClass, buffer: JByteBuffer, lim
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.client.parser.ProfileParser")]
|
||||
pub fn parseProfileUrl(mut env: JNIEnv, _class: JClass, buffer: JByteBuffer, limit: jint) -> jint {
|
||||
@@ -124,7 +124,7 @@ pub fn parseProfileUrl(mut env: JNIEnv, _class: JClass, buffer: JByteBuffer, lim
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.client.parser.ProfileParser")]
|
||||
pub fn parseProfile(mut env: JNIEnv, _class: JClass, buffer: JByteBuffer, limit: jint) -> jint {
|
||||
@@ -221,7 +221,8 @@ where
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[unsafe(no_mangle)]
|
||||
#[allow(non_snake_case)]
|
||||
pub extern "system" fn JNI_OnLoad(_: JavaVM, _: *mut c_void) -> jint {
|
||||
android_logger::init_once(Config::default().with_max_level(LevelFilter::Debug));
|
||||
JNI_VERSION_1_6
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use crate::parser::utils::parse_int_lenient;
|
||||
use crate::{get_tag_attr, regex, select_first, EhError};
|
||||
use anyhow::{bail, Context, Result};
|
||||
use crate::{EhError, get_tag_attr, regex, select_first};
|
||||
use anyhow::{Context, Result, bail};
|
||||
use serde::Serialize;
|
||||
use tl::{Parser, VDom};
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use crate::parser::list::{get_thumb_key, parse_token_and_gid, to_category_i32, BaseGalleryInfo};
|
||||
use crate::{get_first_child, get_first_element_by_class_name, get_node_handle_attr, get_tag_attr};
|
||||
use crate::{get_vdom_first_element_by_class_name, regex, EhError};
|
||||
use anyhow::{bail, Context, Result};
|
||||
use crate::parser::list::{BaseGalleryInfo, get_thumb_key, parse_token_and_gid, to_category_i32};
|
||||
use crate::{EhError, get_first_child, get_first_element_by_class_name, get_node_handle_attr};
|
||||
use crate::{get_tag_attr, get_vdom_first_element_by_class_name, regex};
|
||||
use anyhow::{Context, Result, bail};
|
||||
use chrono::naive::NaiveDateTime;
|
||||
use quick_xml::escape::unescape;
|
||||
use serde::Serialize;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use crate::parser::list::{parse_info_list, GalleryListResult};
|
||||
use crate::EhError;
|
||||
use anyhow::{bail, Result};
|
||||
use crate::parser::list::{GalleryListResult, parse_info_list};
|
||||
use anyhow::{Result, bail};
|
||||
use quick_xml::escape::unescape;
|
||||
use serde::Serialize;
|
||||
use tl::Parser;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use crate::EhError;
|
||||
use crate::{EHGT_PREFIX, EX_PREFIX};
|
||||
use crate::{get_element_by_id, get_vdom_first_element_by_class_name};
|
||||
use crate::{get_first_element_by_class_name, query_childs_first_match_attr};
|
||||
use crate::{get_node_attr, get_node_handle_attr, regex};
|
||||
use crate::{EHGT_PREFIX, EX_PREFIX};
|
||||
use anyhow::{bail, Context, Result};
|
||||
use anyhow::{Context, Result, bail};
|
||||
use quick_xml::escape::unescape;
|
||||
use serde::Serialize;
|
||||
use std::borrow::Cow;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use crate::{get_node_handle_attr, get_tag_attr, select_first, EhError};
|
||||
use crate::{EhError, get_node_handle_attr, get_tag_attr, select_first};
|
||||
use anyhow::{Context, Result};
|
||||
use serde::Serialize;
|
||||
use tl::{Parser, VDom};
|
||||
|
||||
Reference in new issue
Block a user