```rust use std::sync::Arc;
use nativeapi1c::{nativeapi1ccore::ffi::connection::Connection, nativeapi1cmacro::AddIn};
pub struct MyAddIn { #[addincon] connection: Arc
#[add_in_prop(name = "MyProp", name_ru = "МоеСвойство", readable, writable)]
pub some_prop: i32,
#[add_in_prop(name = "ProtectedProp", name_ru = "ЗащищенноеСвойство", readable)]
pub protected_prop: i32,
#[add_in_func(name = "MyFunction", name_ru = "МояФункция")]
#[arg(Int, default = 12)]
#[returns(Int, result)]
pub my_function: fn(&Self, i32) -> Result<i32, ()>,
private_field: i32,
}
impl MyAddIn { pub fn new() -> Self { Self { connection: Arc::new(None), someprop: 0, protectedprop: 50, myfunction: Self::myfunction, private_field: 100, } }
fn my_function(&self, arg: i32) -> Result<i32, ()> {
Ok(self.protected_prop + self.some_prop + arg + self.private_field)
}
} ```