native_api_1c icon indicating copy to clipboard operation
native_api_1c copied to clipboard

Tracking. Out params

Open Sebekerga opened this issue 2 years ago • 5 comments

Ишью для отслеживания разработки out параметров

Sebekerga avatar Sep 24 '23 08:09 Sebekerga

Доступна начальная, минимально рабочая версия:

[dependencies]
native_api_1c = { git = "https://github.com/Sebekerga/native_api_1c", tag = "impl_out_params" }

Пример определения функции с out параметрами:

#[add_in_func(name = "TransformString", name_ru = "ПреобразоватьСтроку")]
#[arg(Str, as_in)]
#[arg(Str, as_out)]
#[returns(Bool)]
transform_str: fn(&Self, String, &mut String) -> bool,

Sebekerga avatar Sep 27 '23 10:09 Sebekerga

Проверил все типы параметров, вроде все работает, кроме случая когда Self тоже mut. Добавил запрос на слияние https://github.com/Sebekerga/native_api_1c_macro/pull/2

WorldException avatar Sep 30 '23 10:09 WorldException

Обсуждение здесь: https://github.com/Sebekerga/native_api_1c_macro/pull/2

Sebekerga avatar Sep 30 '23 16:09 Sebekerga

Сейчас остается только доделать out параметр для типа дата. Также вопрос: по идее, в тех же драйверах подключаемого оборудования, где используются параметры, у нас нет гарантии, что на вход будет подаваться значение такого же типа, какое требуется на выходе?

Сейчас макрос не дает возможности принять любое значение, поэтому может имеет смысл добавить флаг any_in_type, который будет означать, что макрос конвертирует тип, с возможной потерей данных.

Sebekerga avatar Oct 04 '23 03:10 Sebekerga

Проверил работу драйвера для дисплея покупателя на текущей реализации, с первого взгляда все работает. Типы данных там в основном два числовой и строка, даты не попадалось. Каких то особенностей преобразования не заметил, но присмотрюсь когда буду реализовывать другие версии.

WorldException avatar Nov 03 '23 17:11 WorldException