Messaging Layer Security (RFC 9420) rust module, prefs and FFI from Rust to C++. This patch implements mls_gk which is a thin wrapper on the external mls-platform-api rust crate. Differential Revision: https://phabricator.services.mozilla.com/D203680
44 lines
1.4 KiB
TOML
44 lines
1.4 KiB
TOML
header = """/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */"""
|
|
autogen_warning = """/* DO NOT MODIFY THIS MANUALLY! This file was generated using cbindgen. See RunCbindgen.py */
|
|
"""
|
|
include_guard = "mozilla_dom_MlsGkFFI_h"
|
|
include_version = true
|
|
braces = "SameLine"
|
|
line_length = 100
|
|
tab_width = 2
|
|
language = "C++"
|
|
includes = ["nsStringFwd.h", "nsTArrayForwardDeclare.h"]
|
|
# Put FFI calls in the `mozilla::security::mls` namespace.
|
|
namespaces = ["mozilla", "security", "mls"]
|
|
|
|
[enum]
|
|
derive_const_casts = true
|
|
derive_tagged_enum_destructor = true
|
|
cast_assert_name = "MOZ_DIAGNOSTIC_ASSERT"
|
|
|
|
[export.body]
|
|
"GkReceived" = """
|
|
GkReceived() : tag(Tag::None) {}
|
|
GkReceived(GkReceived&& other) : tag(other.tag) {
|
|
switch (tag) {
|
|
case Tag::ApplicationMessage:
|
|
new (&application_message) ApplicationMessage_Body(std::move(other.application_message));
|
|
break;
|
|
case Tag::GroupIdEpoch:
|
|
new (&group_id_epoch) GroupIdEpoch_Body(std::move(other.group_id_epoch));
|
|
break;
|
|
case Tag::CommitOutput:
|
|
new (&commit_output) CommitOutput_Body(std::move(other.commit_output));
|
|
break;
|
|
case Tag::None:
|
|
break;
|
|
}
|
|
}
|
|
"""
|
|
|
|
# Export `ThinVec` references as `nsTArray`.
|
|
[export.rename]
|
|
"ThinVec" = "nsTArray"
|