aes_externalobj 0.1.2

ExtendScript external object library implementation in Rust
Documentation
//! Adobe ExtendScript External Object Library
//! 
//! This crate provides a safe Rust interface for creating Adobe ExtendScript external objects.
//! It allows you to create native extensions for Adobe applications that can be called from ExtendScript.

#![deny(clippy::all)]

mod bindings;
mod server_interface;
mod shared_lib;
mod so_cclient_impl;
mod ffi;
mod signatures;

use libc::{c_char, c_long};
pub use bindings::{
    SoCClientName, SoMemoryInterface,
    SoObjectInterface, SoServerInterface, SoHServer, SoHObject
};

// Re-export types from aes_types
pub use aes_types::{
    TaggedData, TaggedDataUnion, JsScript, LiveObject,
    Error, Result, ES_ERR_OK
};

pub use server_interface::*;
pub use shared_lib::*;
pub use shared_lib::get_server_interface;

pub use mschema::{ext_ver, ext_init, ext_term, ext_export};


// Re-export internal functions for macro use
pub mod internal {
    pub use crate::signatures::{add_signature, get_signatures};
}

pub type ESGetVersion = extern "C" fn () -> c_long;
pub type ESInitialize = extern "C" fn (argv: *mut TaggedData, _argc: c_long) -> *mut c_char;
pub type ESTerminate = extern "C" fn ();