refactor: 大型プラグインのモジュール分割によるコード品質向上
nyash-json-plugin: - 796行の単一ファイルから6モジュール構造へ分割 - constants.rs, provider.rs, doc_box.rs, node_box.rs, tlv_helpers.rs, ffi.rsに責任分離 - 最大ファイルサイズを374行に削減(53%削減) - 共有状態管理をprovider.rsに集約 nyash-net-plugin: - 1112行の巨大ファイルから17ファイル構造へ分割 - boxesサブディレクトリでBox実装を整理(server, client, request, response, socket系) - 最大ファイルサイズを290行に削減(74%削減) - logging, tlv, http_helpers等の共通機能を独立モジュール化 両プラグインともビルド成功確認済み、完全な後方互換性を維持 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
25
plugins/nyash-json-plugin/src/ffi.rs
Normal file
25
plugins/nyash-json-plugin/src/ffi.rs
Normal file
@ -0,0 +1,25 @@
|
||||
//! FFI definitions for yyjson C library integration
|
||||
|
||||
use std::os::raw::{c_char, c_void};
|
||||
|
||||
// External C functions for yyjson provider
|
||||
extern "C" {
|
||||
pub fn nyash_json_shim_parse(text: *const c_char, len: usize) -> i32;
|
||||
pub fn nyjson_parse_doc(text: *const c_char, len: usize, out_err_code: *mut i32) -> *mut c_void;
|
||||
pub fn nyjson_doc_free(doc: *mut c_void);
|
||||
pub fn nyjson_doc_root(doc: *mut c_void) -> *mut c_void;
|
||||
pub fn nyjson_is_null(v: *mut c_void) -> i32;
|
||||
pub fn nyjson_is_bool(v: *mut c_void) -> i32;
|
||||
pub fn nyjson_is_int(v: *mut c_void) -> i32;
|
||||
pub fn nyjson_is_real(v: *mut c_void) -> i32;
|
||||
pub fn nyjson_is_str(v: *mut c_void) -> i32;
|
||||
pub fn nyjson_is_arr(v: *mut c_void) -> i32;
|
||||
pub fn nyjson_is_obj(v: *mut c_void) -> i32;
|
||||
pub fn nyjson_get_bool_val(v: *mut c_void) -> i32;
|
||||
pub fn nyjson_get_sint_val(v: *mut c_void) -> i64;
|
||||
pub fn nyjson_get_str_val(v: *mut c_void) -> *const c_char;
|
||||
pub fn nyjson_arr_size_val(v: *mut c_void) -> usize;
|
||||
pub fn nyjson_arr_get_val(v: *mut c_void, idx: usize) -> *mut c_void;
|
||||
pub fn nyjson_obj_size_val(v: *mut c_void) -> usize;
|
||||
pub fn nyjson_obj_get_key(v: *mut c_void, key: *const c_char) -> *mut c_void;
|
||||
}
|
||||
Reference in New Issue
Block a user