Skip to main content

runtime_capabilities/fidl/
data.rs

1// Copyright 2024 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5use crate::{Data, WeakInstanceToken};
6use fidl_fuchsia_component_sandbox as fsandbox;
7use std::sync::Arc;
8
9impl crate::fidl::IntoFsandboxCapability for Arc<crate::Data> {
10    fn into_fsandbox_capability(self, _token: Arc<WeakInstanceToken>) -> fsandbox::Capability {
11        fsandbox::Capability::Data(self.to_fsandbox())
12    }
13}
14
15impl Data {
16    pub(crate) fn to_fsandbox(self: Arc<Self>) -> fsandbox::Data {
17        match &*self {
18            Data::Bytes(bytes) => fsandbox::Data::Bytes(bytes.to_vec()),
19            Data::String(string) => fsandbox::Data::String(string.to_string()),
20            Data::Int64(num) => fsandbox::Data::Int64(*num),
21            Data::Uint64(num) => fsandbox::Data::Uint64(*num),
22        }
23    }
24}