Vector<bytes> support in .NET binding.
GitOrigin-RevId: b9b168c865bb2144e902229e36776bdce92f22dc
This commit is contained in:
parent
bd7a53c936
commit
40db52670d
@ -376,7 +376,8 @@ class TlWriterDotNet : public TL_writer {
|
|||||||
} else {
|
} else {
|
||||||
ss << ", ";
|
ss << ", ";
|
||||||
}
|
}
|
||||||
ss << (gen_field_type(it) == "Array<byte>^" ? "Bytes" : "") << "FromUnmanaged(from." << gen_native_field_name(it.name) << ")";
|
bool need_bytes = gen_field_type(it) == "Array<byte>^" || gen_field_type(it) == "Array<Array<byte>^>^";
|
||||||
|
ss << (need_bytes ? "Bytes" : "") << "FromUnmanaged(from." << gen_native_field_name(it.name) << ")";
|
||||||
}
|
}
|
||||||
ss << ");\n}\n";
|
ss << ");\n}\n";
|
||||||
}
|
}
|
||||||
|
@ -82,6 +82,16 @@ auto CLRCALL FromUnmanaged(std::vector<FromT> &vec) {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline auto CLRCALL BytesFromUnmanaged(const std::vector<std::string> &vec) {
|
||||||
|
using ToT = decltype(BytesFromUnmanaged(vec[0]));
|
||||||
|
Array<ToT>^ res = REF_NEW Vector<ToT>(static_cast<ArrayIndexType>(vec.size()));
|
||||||
|
ArrayIndexType i = 0;
|
||||||
|
for (auto &from : vec) {
|
||||||
|
ArraySet(res, i++, BytesFromUnmanaged(from));
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
auto CLRCALL FromUnmanaged(td::td_api::object_ptr<T> &from) -> decltype(FromUnmanaged(*from.get())) {
|
auto CLRCALL FromUnmanaged(td::td_api::object_ptr<T> &from) -> decltype(FromUnmanaged(*from.get())) {
|
||||||
if (!from) {
|
if (!from) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user