[C#] Move dont-use-reserved-words handling to a util method
[ldk-java] / csharp_strings.py
index 4df1d34c688fb5d4b1d976cbbcfc75b64546446c..51cdaa97ac6c0098873714bb897fbaa1960b734c 100644 (file)
@@ -5,6 +5,16 @@ import sys
 class Target(Enum):
     CSHARP = 1,
 
+def first_to_lower(string: str) -> str:
+    first = string[0]
+    return first.lower() + string[1:]
+
+def safe_arg_name(arg_name):
+    return "_" + arg_name if arg_name == "lock" or arg_name == "event" or arg_name == "params" else arg_name
+
+def arg_name_repl(s, arg_name):
+    return s.replace(arg_name, "_" + arg_name) if arg_name == "lock" or arg_name == "event" or arg_name == "params" else s
+
 class Consts:
     def __init__(self, DEBUG: bool, target: Target, **kwargs):
         self.target = target
@@ -441,9 +451,9 @@ namespace org { namespace ldk { namespace structs {
         self.usize_native_ty = "long"
         self.native_zero_ptr = "0"
         self.unitary_enum_c_ty = "int32_t"
-        self.ptr_arr = "jobjectArray"
+        self.ptr_arr = "ptrArray"
         self.is_arr_some_check = ("", " != NULL")
-        self.get_native_arr_len_call = ("(*env)->GetArrayLength(env, ", ")")
+        self.get_native_arr_len_call = ("", "->arr_len")
 
         self.bindings_footer_wip = "\tstatic bindings() {\n"
     def bindings_footer(self):
@@ -1123,7 +1133,6 @@ namespace org { namespace ldk { namespace structs {
         return java_hu_struct
 
     def map_function(self, argument_types, c_call_string, method_name, meth_n, return_type_info, struct_meth, default_constructor_args, takes_self, takes_self_as_ref, args_known, type_mapping_generator, doc_comment):
-        arg_name_repl = lambda s, arg_name: s.replace(arg_name, "_" + arg_name) if arg_name == "lock" or arg_name == "event" or arg_name == "params" else s
         out_java = ""
         out_c = ""
         out_java_struct = None