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>
2025-09-25 01:57:12 +09:00
|
|
|
//! 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;
|
2025-09-26 14:34:42 +09:00
|
|
|
pub fn nyjson_parse_doc(text: *const c_char, len: usize, out_err_code: *mut i32)
|
|
|
|
|
-> *mut c_void;
|
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>
2025-09-25 01:57:12 +09:00
|
|
|
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;
|
2025-09-26 14:34:42 +09:00
|
|
|
}
|