pub struct TransportConfigFFI {
pub enable_ble: bool,
pub ble_mesh_id: Option<String>,
pub ble_power_profile: Option<String>,
pub transport_preference: Option<Vec<String>>,
pub collection_routes_json: Option<String>,
pub enable_n0_relay: bool,
}Expand description
Transport configuration for BLE and other transports (ADR-039, #556)
Controls which transports are enabled and their settings.
Used by NodeConfig to configure multi-transport support.
Fields§
§enable_ble: boolEnable Bluetooth LE transport (requires “bluetooth” feature) When enabled, BLE mesh networking is available alongside Iroh/QUIC
ble_mesh_id: Option<String>BLE mesh ID (optional, defaults to app_id if not specified) Used to identify the BLE mesh network for peer discovery
ble_power_profile: Option<String>BLE power profile: “aggressive”, “balanced”, or “low_power”
- aggressive: Maximum range/speed, higher battery usage
- balanced: Default, moderate power usage
- low_power: Minimal battery impact, reduced range/speed
transport_preference: Option<Vec<String>>Transport preference order (optional) List of transport names in order of preference, e.g., [“iroh”, “ble”, “lora”] Used by TransportManager’s PACE policy for transport selection
collection_routes_json: Option<String>Per-collection transport routing (optional) JSON-encoded CollectionRouteTable for explicit collection->transport bindings. Collections not listed fall through to PACE/legacy scoring.
enable_n0_relay: boolEnable iroh’s n0 hosted public relay pool + DNS discovery at runtime
(peat-flutter relay toggle). Default false keeps the local-only,
no-phone-home posture (presets::Empty). When true, the iroh
endpoint is built with presets::N0, routing traffic through n0’s
PUBLIC relay infrastructure (*.iroh.network) so internet-connected
devices can sync without a shared LAN. Opt-in only.
MUST remain the last field: the hand-maintained Dart FFI codec in
peat-flutter (peat_ffi.dart) reads/writes record fields in
declaration order, and the field was appended there too.
Trait Implementations§
Source§impl Clone for TransportConfigFFI
impl Clone for TransportConfigFFI
Source§fn clone(&self) -> TransportConfigFFI
fn clone(&self) -> TransportConfigFFI
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<UT> ConvertError<UT> for TransportConfigFFI
impl<UT> ConvertError<UT> for TransportConfigFFI
fn try_convert_unexpected_callback_error( e: UnexpectedUniFFICallbackError, ) -> Result<Self>
Source§impl Debug for TransportConfigFFI
impl Debug for TransportConfigFFI
Source§impl Default for TransportConfigFFI
impl Default for TransportConfigFFI
Source§fn default() -> TransportConfigFFI
fn default() -> TransportConfigFFI
Source§impl<UT> FfiConverter<UT> for TransportConfigFFI
impl<UT> FfiConverter<UT> for TransportConfigFFI
Source§const TYPE_ID_META: MetadataBuffer
const TYPE_ID_META: MetadataBuffer
Source§type FfiType = RustBuffer
type FfiType = RustBuffer
Source§fn lower(v: Self) -> RustBuffer
fn lower(v: Self) -> RustBuffer
Source§fn try_lift(buf: RustBuffer) -> Result<Self>
fn try_lift(buf: RustBuffer) -> Result<Self>
Source§impl<UT> Lift<UT> for TransportConfigFFI
impl<UT> Lift<UT> for TransportConfigFFI
Source§impl<UT> LiftRef<UT> for TransportConfigFFI
impl<UT> LiftRef<UT> for TransportConfigFFI
Source§impl<UT> LiftReturn<UT> for TransportConfigFFI
impl<UT> LiftReturn<UT> for TransportConfigFFI
Source§type ReturnType = <TransportConfigFFI as Lift<UT>>::FfiType
type ReturnType = <TransportConfigFFI as Lift<UT>>::FfiType
Source§fn try_lift_successful_return(v: Self::ReturnType) -> Result<Self>
fn try_lift_successful_return(v: Self::ReturnType) -> Result<Self>
Source§fn lift_foreign_return(
ffi_return: Self::ReturnType,
call_status: RustCallStatus,
) -> Self
fn lift_foreign_return( ffi_return: Self::ReturnType, call_status: RustCallStatus, ) -> Self
Source§fn lift_error(_buf: RustBuffer) -> Self
fn lift_error(_buf: RustBuffer) -> Self
Source§fn handle_callback_unexpected_error(e: UnexpectedUniFFICallbackError) -> Self
fn handle_callback_unexpected_error(e: UnexpectedUniFFICallbackError) -> Self
Source§impl<UT> Lower<UT> for TransportConfigFFI
impl<UT> Lower<UT> for TransportConfigFFI
type FfiType = <TransportConfigFFI as FfiConverter<UT>>::FfiType
fn lower(obj: Self) -> Self::FfiType
fn write(obj: Self, buf: &mut Vec<u8>)
Source§fn lower_into_rust_buffer(obj: Self) -> RustBuffer
fn lower_into_rust_buffer(obj: Self) -> RustBuffer
Source§impl<UT> LowerError<UT> for TransportConfigFFI
impl<UT> LowerError<UT> for TransportConfigFFI
Source§fn lower_error(obj: Self) -> RustBuffer
fn lower_error(obj: Self) -> RustBuffer
Source§impl<UT> LowerReturn<UT> for TransportConfigFFI
impl<UT> LowerReturn<UT> for TransportConfigFFI
Source§type ReturnType = <TransportConfigFFI as Lower<UT>>::FfiType
type ReturnType = <TransportConfigFFI as Lower<UT>>::FfiType
Source§fn lower_return(v: Self) -> Result<Self::ReturnType, RustCallError>
fn lower_return(v: Self) -> Result<Self::ReturnType, RustCallError>
Source§fn handle_failed_lift(
error: LiftArgsError,
) -> Result<Self::ReturnType, RustCallError>
fn handle_failed_lift( error: LiftArgsError, ) -> Result<Self::ReturnType, RustCallError>
Source§impl<UT> TypeId<UT> for TransportConfigFFI
impl<UT> TypeId<UT> for TransportConfigFFI
Auto Trait Implementations§
impl Freeze for TransportConfigFFI
impl RefUnwindSafe for TransportConfigFFI
impl Send for TransportConfigFFI
impl Sync for TransportConfigFFI
impl Unpin for TransportConfigFFI
impl UnsafeUnpin for TransportConfigFFI
impl UnwindSafe for TransportConfigFFI
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more