Rust 2024

This commit is contained in:
FooIbar committed 2025-06-11 13:40:05 +08:00
1 parent 5b80fee02e
commit 4440763f44
9 files changed
+34 -33

No files matched your search

+1 -1
View File
@@ -1,7 +1,7 @@
[package]
name = "ehviewer_rust"
version = "0.0.0"
edition = "2021"
edition = "2024"
[lib]
crate-type = ["cdylib"]
+4 -4
View File
@@ -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 {
+2 -2
View File
@@ -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) {
+16 -15
View File
@@ -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
+2 -2
View File
@@ -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};
+4 -4
View File
@@ -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;
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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 -1
View File
@@ -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};