blob: b29b38165670f2bfb284960e48d8268887d2e9da [file]
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
use std::os::raw::c_char;
use crate::{capability::Capability, utils::into_string_ptr};
#[repr(C)]
/// Operator info payload exposed to the .NET binding.
pub struct OpendalOperatorInfo {
pub scheme: *mut c_char,
pub root: *mut c_char,
pub name: *mut c_char,
pub full_capability: Capability,
pub native_capability: Capability,
}
pub fn into_operator_info(info: opendal::OperatorInfo) -> OpendalOperatorInfo {
OpendalOperatorInfo {
scheme: into_string_ptr(info.scheme().to_string()),
root: into_string_ptr(info.root()),
name: into_string_ptr(info.name()),
full_capability: Capability::new(info.full_capability()),
native_capability: Capability::new(info.native_capability()),
}
}