-
Need to catch this aliases at mod.rs level
pub use self::models::snapshot::LLMQSnapshot;
otherwise to support fermentation it needs to be imported as full path:
use crate::models::snapshot::LLMQSnapshot;
and this wouldn't work:
use crate::models::LLMQSnapshot;
-
Now you can't specify field type as full or partially qualified (bug). So use this:
use ferment_example::nested::HashID; use crate::model::snapshot::LLMQSnapshot; #[ferment_macro::export] pub fn get_hash_id_form_snapshot(_snapshot: LLMQSnapshot) -> HashID { [0u8; 32] }
instead of
#[ferment_macro::export] pub fn get_hash_id_form_snapshot(_snapshot: crate::model::snapshot::LLMQSnapshot) -> ferment_example::nested::HashID { [0u8; 32] }
or
use ferment_example::nested; use crate::model::snapshot; #[ferment_macro::export] pub fn get_hash_id_form_snapshot(_snapshot: snapshot::LLMQSnapshot) -> nested::HashID { [0u8; 32] }
-
Need to fix "fermented::" hardcoded in type transposing although different name is specified in Config::with_mod_name()
-
Need to create 'register_type' to hold the dictionary with manual conversions (for std objects & 3rd party crates)
-
Async generic traits (decomposable) (epic)
-
Other Languages Support (objc/java) - (at least DashSync’s boilerplate generation) (epic)
-
Typealiases for paths (re-export types support)
-
Manual conversion support (Mechanism for registration of manually fermented objects)
This needed for:
- Conversion implementation for several objects from std (or any non-fermentable crates)
- For cases where special optimisation needed
#[ferment_macro::register(std::time::Duration)] pub struct Duration_FFI { secs: u64, nanos: u32,}
-
Path chunks support (when objects contains paths like this:
use ferment_example::nested; use crate::model::snapshot; #[ferment_macro::export] pub fn get_hash_id_form_snapshot(snapshot: snapshot::LLMQSnapshot) -> nested::HashID { [0u8; 32] }
-
Fix: custom fermented module names (currently no matter what you specified in config – it always expanding in crate::fermented scope)
-
Fix: optional primitives (Now Option expanding to false when bool is really false, or when Option is None, same thing for Option becomes 0 if None)
-
Handle mut vs const in methods arguments
-
feat: tokio runtime bindings
-
feat: think about using opaque pointers for JNI and setters/getters