pub(crate) use prebindgen::SourceLocation;
use prebindgen_registry::TypeEntry;
use quote::ToTokens;
use super::*;
pub(crate) use crate::test_util::{declare_referenced, unique_test_dir};
fn myflat_loc() -> prebindgen::SourceLocation {
prebindgen::SourceLocation {
crate_name: Some("myflat".to_string()),
..Default::default()
}
}
mod aliasing;
mod callbacks;
mod config;
mod consts;
mod cross_artifact;
mod flatten;
mod niches;
mod sealed;
mod snapshots;
mod symbols;
mod value_form;
mod values;
fn entry(wire: syn::Type, conv_name: &str, niches: Niches) -> TypeEntry<KotlinMeta> {
let ident = syn::Ident::new(conv_name, proc_macro2::Span::call_site());
let func: syn::ItemFn = syn::parse_quote!(
unsafe fn #ident<'env, 'v>(
env: &mut jni::JNIEnv<'env>,
v: &#wire,
) -> ::core::result::Result<(), __JniErr> {
Ok(())
}
);
TypeEntry {
destination: wire,
function: func,
pre_stages: vec![],
subs: vec![],
niches,
metadata: KotlinMeta::default(),
}
}
fn install_input(
reg: &mut Registry<KotlinMeta>,
ty_str: &str,
_rank: usize,
e: TypeEntry<KotlinMeta>,
) {
let ty: syn::Type = syn::parse_str(ty_str).expect("test type");
reg.insert_crossing(Direction::Input, &ty, true, Some(e));
}
fn install_output(
reg: &mut Registry<KotlinMeta>,
ty_str: &str,
_rank: usize,
e: TypeEntry<KotlinMeta>,
) {
let ty: syn::Type = syn::parse_str(ty_str).expect("test type");
reg.insert_crossing(Direction::Output, &ty, true, Some(e));
}