mirror of
https://gitlab.com/veilid/veilid.git
synced 2024-10-01 01:26:08 -04:00
more watchvalue
This commit is contained in:
parent
7917dadd30
commit
9b8420d288
@ -9,7 +9,8 @@ pub(in crate::rpc_processor) struct RPCOperationWatchValueQ {
|
||||
subkeys: ValueSubkeyRangeSet,
|
||||
expiration: u64,
|
||||
count: u32,
|
||||
opt_watch_signature: Option<(PublicKey, Signature)>,
|
||||
watcher: PublicKey,
|
||||
signature: Signature,
|
||||
}
|
||||
|
||||
impl RPCOperationWatchValueQ {
|
||||
@ -19,7 +20,7 @@ impl RPCOperationWatchValueQ {
|
||||
subkeys: ValueSubkeyRangeSet,
|
||||
expiration: u64,
|
||||
count: u32,
|
||||
opt_watcher: Option<KeyPair>,
|
||||
watcher: KeyPair,
|
||||
vcrypto: CryptoSystemVersion,
|
||||
) -> Result<Self, RPCError> {
|
||||
// Needed because RangeSetBlaze uses different types here all the time
|
||||
@ -30,22 +31,18 @@ impl RPCOperationWatchValueQ {
|
||||
return Err(RPCError::protocol("WatchValueQ subkeys length too long"));
|
||||
}
|
||||
|
||||
let opt_watch_signature = if let Some(watcher) = opt_watcher {
|
||||
let signature_data = Self::make_signature_data(&key, &subkeys, expiration, count);
|
||||
let signature = vcrypto
|
||||
.sign(&watcher.key, &watcher.secret, &signature_data)
|
||||
.map_err(RPCError::protocol)?;
|
||||
Some((watcher.key, signature))
|
||||
} else {
|
||||
None
|
||||
};
|
||||
let signature_data = Self::make_signature_data(&key, &subkeys, expiration, count);
|
||||
let signature = vcrypto
|
||||
.sign(&watcher.key, &watcher.secret, &signature_data)
|
||||
.map_err(RPCError::protocol)?;
|
||||
|
||||
Ok(Self {
|
||||
key,
|
||||
subkeys,
|
||||
expiration,
|
||||
count,
|
||||
opt_watch_signature,
|
||||
watcher: watcher.key,
|
||||
signature,
|
||||
})
|
||||
}
|
||||
|
||||
@ -77,13 +74,11 @@ impl RPCOperationWatchValueQ {
|
||||
return Err(RPCError::protocol("unsupported cryptosystem"));
|
||||
};
|
||||
|
||||
if let Some(watch_signature) = self.opt_watch_signature {
|
||||
let sig_data =
|
||||
Self::make_signature_data(&self.key, &self.subkeys, self.expiration, self.count);
|
||||
vcrypto
|
||||
.verify(&watch_signature.0, &sig_data, &watch_signature.1)
|
||||
.map_err(RPCError::protocol)?;
|
||||
}
|
||||
let sig_data =
|
||||
Self::make_signature_data(&self.key, &self.subkeys, self.expiration, self.count);
|
||||
vcrypto
|
||||
.verify(&self.watcher, &sig_data, &self.signature)
|
||||
.map_err(RPCError::protocol)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -108,10 +103,13 @@ impl RPCOperationWatchValueQ {
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub fn opt_watch_signature(&self) -> Option<&(PublicKey, Signature)> {
|
||||
self.opt_watch_signature.as_ref()
|
||||
pub fn watcher(&self) -> &PublicKey {
|
||||
&self.watcher
|
||||
}
|
||||
#[allow(dead_code)]
|
||||
pub fn signature(&self) -> &Signature {
|
||||
&self.signature
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub fn destructure(
|
||||
self,
|
||||
@ -120,14 +118,16 @@ impl RPCOperationWatchValueQ {
|
||||
ValueSubkeyRangeSet,
|
||||
u64,
|
||||
u32,
|
||||
Option<(PublicKey, Signature)>,
|
||||
PublicKey,
|
||||
Signature,
|
||||
) {
|
||||
(
|
||||
self.key,
|
||||
self.subkeys,
|
||||
self.expiration,
|
||||
self.count,
|
||||
self.opt_watch_signature,
|
||||
self.watcher,
|
||||
self.signature,
|
||||
)
|
||||
}
|
||||
|
||||
@ -160,24 +160,19 @@ impl RPCOperationWatchValueQ {
|
||||
let expiration = reader.get_expiration();
|
||||
let count = reader.get_count();
|
||||
|
||||
let opt_watch_signature = if reader.has_watcher() {
|
||||
let w_reader = reader.get_watcher().map_err(RPCError::protocol)?;
|
||||
let watcher = decode_key256(&w_reader);
|
||||
let w_reader = reader.get_watcher().map_err(RPCError::protocol)?;
|
||||
let watcher = decode_key256(&w_reader);
|
||||
|
||||
let s_reader = reader.get_signature().map_err(RPCError::protocol)?;
|
||||
let signature = decode_signature512(&s_reader);
|
||||
|
||||
Some((watcher, signature))
|
||||
} else {
|
||||
None
|
||||
};
|
||||
let s_reader = reader.get_signature().map_err(RPCError::protocol)?;
|
||||
let signature = decode_signature512(&s_reader);
|
||||
|
||||
Ok(Self {
|
||||
key,
|
||||
subkeys,
|
||||
expiration,
|
||||
count,
|
||||
opt_watch_signature,
|
||||
watcher,
|
||||
signature,
|
||||
})
|
||||
}
|
||||
|
||||
@ -202,13 +197,11 @@ impl RPCOperationWatchValueQ {
|
||||
builder.set_expiration(self.expiration);
|
||||
builder.set_count(self.count);
|
||||
|
||||
if let Some(watch_signature) = self.opt_watch_signature {
|
||||
let mut w_builder = builder.reborrow().init_watcher();
|
||||
encode_key256(&watch_signature.0, &mut w_builder);
|
||||
let mut w_builder = builder.reborrow().init_watcher();
|
||||
encode_key256(&self.watcher, &mut w_builder);
|
||||
|
||||
let mut s_builder = builder.reborrow().init_signature();
|
||||
encode_signature512(&watch_signature.1, &mut s_builder);
|
||||
}
|
||||
let mut s_builder = builder.reborrow().init_signature();
|
||||
encode_signature512(&self.signature, &mut s_builder);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ impl RPCProcessor {
|
||||
subkeys: ValueSubkeyRangeSet,
|
||||
expiration: Timestamp,
|
||||
count: u32,
|
||||
opt_watcher: Option<KeyPair>,
|
||||
watcher: KeyPair,
|
||||
) -> RPCNetworkResult<Answer<WatchValueAnswer>> {
|
||||
// Ensure destination never has a private route
|
||||
// and get the target noderef so we can validate the response
|
||||
@ -48,13 +48,8 @@ impl RPCProcessor {
|
||||
};
|
||||
|
||||
let debug_string = format!(
|
||||
"OUT ==> WatchValueQ({} {}#{:?}@{}+{}) => {}",
|
||||
key,
|
||||
if opt_watcher.is_some() { "+W " } else { "" },
|
||||
subkeys,
|
||||
expiration,
|
||||
count,
|
||||
dest
|
||||
"OUT ==> WatchValueQ({} {}@{}+{}) => {} (watcher={})",
|
||||
key, subkeys, expiration, count, dest, watcher.key
|
||||
);
|
||||
|
||||
// Send the watchvalue question
|
||||
@ -63,7 +58,7 @@ impl RPCProcessor {
|
||||
subkeys,
|
||||
expiration.as_u64(),
|
||||
count,
|
||||
opt_watcher,
|
||||
watcher,
|
||||
vcrypto.clone(),
|
||||
)?;
|
||||
let question = RPCQuestion::new(
|
||||
@ -179,8 +174,7 @@ impl RPCProcessor {
|
||||
};
|
||||
|
||||
// Destructure
|
||||
let (key, subkeys, expiration, count, opt_watch_signature) = watch_value_q.destructure();
|
||||
let opt_watcher = opt_watch_signature.map(|ws| ws.0);
|
||||
let (key, subkeys, expiration, count, watcher, signature) = watch_value_q.destructure();
|
||||
|
||||
// Get target for ValueChanged notifications
|
||||
let dest = network_result_try!(self.get_respond_to_destination(&msg));
|
||||
@ -189,13 +183,13 @@ impl RPCProcessor {
|
||||
#[cfg(feature = "debug-dht")]
|
||||
{
|
||||
let debug_string = format!(
|
||||
"IN <=== WatchValueQ({} {}#{:?}@{}+{}) <== {}",
|
||||
"IN <=== WatchValueQ({} {}@{}+{}) <== {} (watcher={})",
|
||||
key,
|
||||
if opt_watcher.is_some() { "+W " } else { "" },
|
||||
subkeys,
|
||||
expiration,
|
||||
count,
|
||||
msg.header.direct_sender_node_id()
|
||||
msg.header.direct_sender_node_id(),
|
||||
watcher
|
||||
);
|
||||
|
||||
log_rpc!(debug "{}", debug_string);
|
||||
@ -227,7 +221,7 @@ impl RPCProcessor {
|
||||
Timestamp::new(expiration),
|
||||
count,
|
||||
target,
|
||||
opt_watcher
|
||||
watcher
|
||||
)
|
||||
.await
|
||||
.map_err(RPCError::internal)?)
|
||||
|
@ -42,6 +42,9 @@ struct StorageManagerUnlockedInner {
|
||||
// Background processes
|
||||
flush_record_stores_task: TickTask<EyreReport>,
|
||||
offline_subkey_writes_task: TickTask<EyreReport>,
|
||||
|
||||
// Anonymous watch keys
|
||||
anonymous_watch_keys: TypedKeyPairGroup,
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
@ -57,6 +60,14 @@ impl StorageManager {
|
||||
table_store: TableStore,
|
||||
#[cfg(feature = "unstable-blockstore")] block_store: BlockStore,
|
||||
) -> StorageManagerUnlockedInner {
|
||||
// Generate keys to use for anonymous watches
|
||||
let mut anonymous_watch_keys = TypedKeyPairGroup::new();
|
||||
for ck in VALID_CRYPTO_KINDS {
|
||||
let vcrypto = crypto.get(ck).unwrap();
|
||||
let kp = vcrypto.generate_keypair();
|
||||
anonymous_watch_keys.add(TypedKeyPair::new(ck, kp));
|
||||
}
|
||||
|
||||
StorageManagerUnlockedInner {
|
||||
config,
|
||||
crypto,
|
||||
@ -65,6 +76,7 @@ impl StorageManager {
|
||||
block_store,
|
||||
flush_record_stores_task: TickTask::new(FLUSH_RECORD_STORES_INTERVAL_SECS),
|
||||
offline_subkey_writes_task: TickTask::new(OFFLINE_SUBKEY_WRITES_INTERVAL_SECS),
|
||||
anonymous_watch_keys,
|
||||
}
|
||||
}
|
||||
fn new_inner(unlocked_inner: Arc<StorageManagerUnlockedInner>) -> StorageManagerInner {
|
||||
|
@ -29,14 +29,12 @@ struct WatchedRecordWatch {
|
||||
expiration: Timestamp,
|
||||
count: u32,
|
||||
target: Target,
|
||||
opt_watcher: Option<CryptoKey>,
|
||||
watcher: CryptoKey,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
#[derive(Debug, Default, Clone)]
|
||||
/// A record being watched for changes
|
||||
struct WatchedRecord {
|
||||
/// Number of watchers that are anonymous
|
||||
anon_count: usize,
|
||||
/// The list of active watchers
|
||||
watchers: Vec<WatchedRecordWatch>,
|
||||
}
|
||||
@ -698,19 +696,136 @@ where
|
||||
}
|
||||
|
||||
/// Add a record watch for changes
|
||||
pub async fn watch_subkeys(
|
||||
pub async fn watch_record(
|
||||
&mut self,
|
||||
key: TypedKey,
|
||||
subkeys: ValueSubkeyRangeSet,
|
||||
expiration: Timestamp,
|
||||
count: u32,
|
||||
target: Target,
|
||||
opt_watcher: Option<CryptoKey>,
|
||||
watcher: CryptoKey,
|
||||
) -> VeilidAPIResult<Option<Timestamp>> {
|
||||
// If subkeys is empty or count is zero then we're cancelling a watch completely
|
||||
if subkeys.is_empty() || count == 0 {
|
||||
return self.cancel_watch(key, target, watcher).await;
|
||||
}
|
||||
|
||||
// If we have a watcher and it is in the record's schema
|
||||
// then we have a guaranteed watch slot for it
|
||||
xxx continue here
|
||||
// See if expiration timestamp is too far in the future or not enough in the future
|
||||
let cur_ts = get_timestamp();
|
||||
let max_ts = cur_ts + self.limits.max_watch_expiration.as_u64();
|
||||
let min_ts = cur_ts + self.limits.min_watch_expiration.as_u64();
|
||||
if expiration.as_u64() < min_ts || expiration.as_u64() > max_ts {
|
||||
return Ok(None);
|
||||
}
|
||||
|
||||
// Get the record being watched
|
||||
let Some(is_member) = self.with_record_mut(key, |record| {
|
||||
// Check if the watcher specified is a schema member
|
||||
let schema = record.schema();
|
||||
(*record.owner()) == watcher || schema.is_member(&watcher)
|
||||
}) else {
|
||||
// Record not found
|
||||
return Ok(None);
|
||||
};
|
||||
|
||||
// See if we are updating an existing watch
|
||||
// with the watcher matched on target
|
||||
let mut watch_count = 0;
|
||||
let rtk = RecordTableKey { key };
|
||||
if let Some(watch) = self.watched_records.get_mut(&rtk) {
|
||||
for w in &mut watch.watchers {
|
||||
if w.watcher == watcher {
|
||||
watch_count += 1;
|
||||
|
||||
// Only one watch for an anonymous watcher
|
||||
// Allow members to have one watch per target
|
||||
if !is_member || w.target == target {
|
||||
// Updating an existing watch
|
||||
w.subkeys = subkeys;
|
||||
w.expiration = expiration;
|
||||
w.count = count;
|
||||
return Ok(Some(expiration));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Adding a new watcher to a watch
|
||||
// Check watch table for limits
|
||||
if is_member {
|
||||
// Member watch
|
||||
if watch_count >= self.limits.member_watch_limit {
|
||||
// Too many watches
|
||||
return Ok(None);
|
||||
}
|
||||
} else {
|
||||
// Public watch
|
||||
if watch_count >= self.limits.public_watch_limit {
|
||||
// Too many watches
|
||||
return Ok(None);
|
||||
}
|
||||
}
|
||||
|
||||
// Ok this is an acceptable new watch, add it
|
||||
let watch = self.watched_records.entry(rtk).or_default();
|
||||
watch.watchers.push(WatchedRecordWatch {
|
||||
subkeys,
|
||||
expiration,
|
||||
count,
|
||||
target,
|
||||
watcher,
|
||||
});
|
||||
Ok(Some(expiration))
|
||||
}
|
||||
|
||||
/// Add a record watch for changes
|
||||
async fn cancel_watch(
|
||||
&mut self,
|
||||
key: TypedKey,
|
||||
target: Target,
|
||||
watcher: CryptoKey,
|
||||
) -> VeilidAPIResult<Option<Timestamp>> {
|
||||
// Get the record being watched
|
||||
let Some(is_member) = self.with_record_mut(key, |record| {
|
||||
// Check if the watcher specified is a schema member
|
||||
let schema = record.schema();
|
||||
(*record.owner()) == watcher || schema.is_member(&watcher)
|
||||
}) else {
|
||||
// Record not found
|
||||
return Ok(None);
|
||||
};
|
||||
|
||||
// See if we are cancelling an existing watch
|
||||
// with the watcher matched on target
|
||||
let rtk = RecordTableKey { key };
|
||||
let mut is_empty = false;
|
||||
let mut ret_timestamp = None;
|
||||
if let Some(watch) = self.watched_records.get_mut(&rtk) {
|
||||
let mut dead_watcher = None;
|
||||
for (wn, w) in watch.watchers.iter_mut().enumerate() {
|
||||
if w.watcher == watcher {
|
||||
// Only one watch for an anonymous watcher
|
||||
// Allow members to have one watch per target
|
||||
if !is_member || w.target == target {
|
||||
// Canceling an existing watch
|
||||
dead_watcher = Some(wn);
|
||||
ret_timestamp = Some(w.expiration);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if let Some(dw) = dead_watcher {
|
||||
watch.watchers.remove(dw);
|
||||
if watch.watchers.len() == 0 {
|
||||
is_empty = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if is_empty {
|
||||
self.watched_records.remove(&rtk);
|
||||
}
|
||||
|
||||
Ok(ret_timestamp)
|
||||
}
|
||||
|
||||
/// LRU out some records until we reclaim the amount of space requested
|
||||
|
@ -1,3 +1,5 @@
|
||||
use super::*;
|
||||
|
||||
/// Configuration for the record store
|
||||
#[derive(Debug, Default, Copy, Clone)]
|
||||
pub struct RecordStoreLimits {
|
||||
@ -14,7 +16,11 @@ pub struct RecordStoreLimits {
|
||||
/// Limit on the amount of storage space to use for subkey data and record data
|
||||
pub max_storage_space_mb: Option<usize>,
|
||||
/// Max number of anonymous watches
|
||||
pub public_watch_limit: u32,
|
||||
pub public_watch_limit: usize,
|
||||
/// Max number of watches per schema member
|
||||
pub member_watch_limit: u32,
|
||||
pub member_watch_limit: usize,
|
||||
/// Max expiration duration per watch
|
||||
pub max_watch_expiration: TimestampDuration,
|
||||
/// Min expiration duration per watch
|
||||
pub min_watch_expiration: TimestampDuration,
|
||||
}
|
||||
|
@ -39,8 +39,12 @@ fn local_limits_from_config(config: VeilidConfig) -> RecordStoreLimits {
|
||||
max_records: None,
|
||||
max_subkey_cache_memory_mb: Some(c.network.dht.local_max_subkey_cache_memory_mb as usize),
|
||||
max_storage_space_mb: None,
|
||||
public_watch_limit: c.network.dht.public_watch_limit,
|
||||
member_watch_limit: c.network.dht.member_watch_limit,
|
||||
public_watch_limit: c.network.dht.public_watch_limit as usize,
|
||||
member_watch_limit: c.network.dht.member_watch_limit as usize,
|
||||
max_watch_expiration: TimestampDuration::new(ms_to_us(
|
||||
c.network.dht.max_watch_expiration_ms,
|
||||
)),
|
||||
min_watch_expiration: TimestampDuration::new(ms_to_us(c.network.rpc.timeout_ms)),
|
||||
}
|
||||
}
|
||||
|
||||
@ -53,8 +57,12 @@ fn remote_limits_from_config(config: VeilidConfig) -> RecordStoreLimits {
|
||||
max_records: Some(c.network.dht.remote_max_records as usize),
|
||||
max_subkey_cache_memory_mb: Some(c.network.dht.remote_max_subkey_cache_memory_mb as usize),
|
||||
max_storage_space_mb: Some(c.network.dht.remote_max_storage_space_mb as usize),
|
||||
public_watch_limit: c.network.dht.public_watch_limit,
|
||||
member_watch_limit: c.network.dht.member_watch_limit,
|
||||
public_watch_limit: c.network.dht.public_watch_limit as usize,
|
||||
member_watch_limit: c.network.dht.member_watch_limit as usize,
|
||||
max_watch_expiration: TimestampDuration::new(ms_to_us(
|
||||
c.network.dht.max_watch_expiration_ms,
|
||||
)),
|
||||
min_watch_expiration: TimestampDuration::new(ms_to_us(c.network.rpc.timeout_ms)),
|
||||
}
|
||||
}
|
||||
|
||||
@ -516,14 +524,14 @@ impl StorageManagerInner {
|
||||
expiration: Timestamp,
|
||||
count: u32,
|
||||
target: Target,
|
||||
opt_watcher: Option<CryptoKey>,
|
||||
watcher: CryptoKey,
|
||||
) -> VeilidAPIResult<Option<Timestamp>> {
|
||||
// See if it's in the local record store
|
||||
let Some(local_record_store) = self.local_record_store.as_mut() else {
|
||||
apibail_not_initialized!();
|
||||
};
|
||||
local_record_store
|
||||
.watch_subkeys(key, subkeys, expiration, count, target, opt_watcher)
|
||||
.watch_record(key, subkeys, expiration, count, target, watcher)
|
||||
.await
|
||||
}
|
||||
|
||||
@ -590,14 +598,14 @@ impl StorageManagerInner {
|
||||
expiration: Timestamp,
|
||||
count: u32,
|
||||
target: Target,
|
||||
opt_watcher: Option<CryptoKey>,
|
||||
watcher: CryptoKey,
|
||||
) -> VeilidAPIResult<Option<Timestamp>> {
|
||||
// See if it's in the remote record store
|
||||
let Some(remote_record_store) = self.remote_record_store.as_mut() else {
|
||||
apibail_not_initialized!();
|
||||
};
|
||||
remote_record_store
|
||||
.watch_subkeys(key, subkeys, expiration, count, target, opt_watcher)
|
||||
.watch_record(key, subkeys, expiration, count, target, watcher)
|
||||
.await
|
||||
}
|
||||
|
||||
|
@ -49,6 +49,15 @@ impl StorageManager {
|
||||
inner.get_value_nodes(key)?
|
||||
};
|
||||
|
||||
// Get the appropriate watcher key
|
||||
let watcher = opt_watcher.unwrap_or_else(|| {
|
||||
self.unlocked_inner
|
||||
.anonymous_watch_keys
|
||||
.get(key.kind)
|
||||
.unwrap()
|
||||
.value
|
||||
});
|
||||
|
||||
// Make do-watch-value answer context
|
||||
let context = Arc::new(Mutex::new(OutboundWatchValueContext {
|
||||
opt_watch_value_result: None,
|
||||
@ -69,7 +78,7 @@ impl StorageManager {
|
||||
subkeys,
|
||||
expiration,
|
||||
count,
|
||||
opt_watcher
|
||||
watcher
|
||||
)
|
||||
.await?
|
||||
);
|
||||
@ -173,7 +182,7 @@ impl StorageManager {
|
||||
expiration: Timestamp,
|
||||
count: u32,
|
||||
target: Target,
|
||||
opt_watcher: Option<CryptoKey>,
|
||||
watcher: CryptoKey,
|
||||
) -> VeilidAPIResult<NetworkResult<Timestamp>> {
|
||||
let mut inner = self.lock().await?;
|
||||
|
||||
@ -187,7 +196,7 @@ impl StorageManager {
|
||||
expiration,
|
||||
count,
|
||||
target.clone(),
|
||||
opt_watcher,
|
||||
watcher,
|
||||
)
|
||||
.await?;
|
||||
if opt_expiration_ts.is_some() {
|
||||
@ -195,7 +204,7 @@ impl StorageManager {
|
||||
} else {
|
||||
// See if the subkey we are watching is a remote value
|
||||
let opt_expiration_ts = inner
|
||||
.handle_watch_remote_value(key, subkeys, expiration, count, target, opt_watcher)
|
||||
.handle_watch_remote_value(key, subkeys, expiration, count, target, watcher)
|
||||
.await?;
|
||||
(false, opt_expiration_ts)
|
||||
}
|
||||
|
@ -1,10 +1,9 @@
|
||||
use super::*;
|
||||
use routing_table::NodeRefBase;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// Valid destinations for a message sent over a routing context
|
||||
#[derive(Clone, Debug)]
|
||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
pub enum Target {
|
||||
/// Node by its public key
|
||||
NodeId(TypedKey),
|
||||
|
@ -53,6 +53,11 @@ impl DHTSchemaDFLT {
|
||||
// Subkey out of range
|
||||
false
|
||||
}
|
||||
|
||||
/// Check if a key is a schema member
|
||||
pub fn is_member(&self, key: &PublicKey) -> bool {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<&[u8]> for DHTSchemaDFLT {
|
||||
|
@ -59,6 +59,14 @@ impl DHTSchema {
|
||||
DHTSchema::SMPL(s) => s.check_subkey_value_data(owner, subkey, value_data),
|
||||
}
|
||||
}
|
||||
|
||||
/// Check if a key is a schema member
|
||||
pub fn is_member(&self, key: &PublicKey) -> bool {
|
||||
match self {
|
||||
DHTSchema::DFLT(d) => d.is_member(key),
|
||||
DHTSchema::SMPL(s) => s.is_member(key),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for DHTSchema {
|
||||
|
@ -93,6 +93,16 @@ impl DHTSchemaSMPL {
|
||||
// Subkey out of range
|
||||
false
|
||||
}
|
||||
|
||||
/// Check if a key is a schema member
|
||||
pub fn is_member(&self, key: &PublicKey) -> bool {
|
||||
for m in &self.members {
|
||||
if m.m_key == *key {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<&[u8]> for DHTSchemaSMPL {
|
||||
|
@ -303,6 +303,7 @@ pub struct VeilidConfigDHT {
|
||||
pub remote_max_storage_space_mb: u32,
|
||||
pub public_watch_limit: u32,
|
||||
pub member_watch_limit: u32,
|
||||
pub max_watch_expiration_ms: u32,
|
||||
}
|
||||
|
||||
impl Default for VeilidConfigDHT {
|
||||
|
@ -61,10 +61,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
|
||||
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.18.0"
|
||||
version: "1.17.2"
|
||||
convert:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -220,10 +220,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
|
||||
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
version: "1.9.1"
|
||||
path:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -329,18 +329,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
|
||||
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.11.1"
|
||||
version: "1.11.0"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
|
||||
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
version: "2.1.1"
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -377,10 +377,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
|
||||
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.1"
|
||||
version: "0.6.0"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -408,10 +408,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
|
||||
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.3.0"
|
||||
version: "0.1.4-beta"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -437,5 +437,5 @@ packages:
|
||||
source: hosted
|
||||
version: "3.5.0"
|
||||
sdks:
|
||||
dart: ">=3.2.0-194.0.dev <4.0.0"
|
||||
dart: ">=3.1.0-185.0.dev <4.0.0"
|
||||
flutter: ">=3.10.6"
|
||||
|
@ -140,7 +140,8 @@ Future<VeilidConfig> getDefaultVeilidConfig(String programName) async {
|
||||
remoteMaxSubkeyCacheMemoryMb: await getRemoteMaxSubkeyCacheMemoryMb(),
|
||||
remoteMaxStorageSpaceMb: getRemoteMaxStorageSpaceMb(),
|
||||
publicWatchLimit: 32,
|
||||
memberWatchLimit: 8),
|
||||
memberWatchLimit: 8,
|
||||
maxWatchExpirationMs: 600000),
|
||||
upnp: true,
|
||||
detectAddressChanges: true,
|
||||
restrictedNatRetries: 0,
|
||||
|
@ -107,22 +107,22 @@ class _$DHTSchemaCopyWithImpl<$Res, $Val extends DHTSchema>
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$DHTSchemaDFLTImplCopyWith<$Res>
|
||||
abstract class _$$DHTSchemaDFLTCopyWith<$Res>
|
||||
implements $DHTSchemaCopyWith<$Res> {
|
||||
factory _$$DHTSchemaDFLTImplCopyWith(
|
||||
_$DHTSchemaDFLTImpl value, $Res Function(_$DHTSchemaDFLTImpl) then) =
|
||||
__$$DHTSchemaDFLTImplCopyWithImpl<$Res>;
|
||||
factory _$$DHTSchemaDFLTCopyWith(
|
||||
_$DHTSchemaDFLT value, $Res Function(_$DHTSchemaDFLT) then) =
|
||||
__$$DHTSchemaDFLTCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call({int oCnt});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$DHTSchemaDFLTImplCopyWithImpl<$Res>
|
||||
extends _$DHTSchemaCopyWithImpl<$Res, _$DHTSchemaDFLTImpl>
|
||||
implements _$$DHTSchemaDFLTImplCopyWith<$Res> {
|
||||
__$$DHTSchemaDFLTImplCopyWithImpl(
|
||||
_$DHTSchemaDFLTImpl _value, $Res Function(_$DHTSchemaDFLTImpl) _then)
|
||||
class __$$DHTSchemaDFLTCopyWithImpl<$Res>
|
||||
extends _$DHTSchemaCopyWithImpl<$Res, _$DHTSchemaDFLT>
|
||||
implements _$$DHTSchemaDFLTCopyWith<$Res> {
|
||||
__$$DHTSchemaDFLTCopyWithImpl(
|
||||
_$DHTSchemaDFLT _value, $Res Function(_$DHTSchemaDFLT) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@ -130,7 +130,7 @@ class __$$DHTSchemaDFLTImplCopyWithImpl<$Res>
|
||||
$Res call({
|
||||
Object? oCnt = null,
|
||||
}) {
|
||||
return _then(_$DHTSchemaDFLTImpl(
|
||||
return _then(_$DHTSchemaDFLT(
|
||||
oCnt: null == oCnt
|
||||
? _value.oCnt
|
||||
: oCnt // ignore: cast_nullable_to_non_nullable
|
||||
@ -141,12 +141,12 @@ class __$$DHTSchemaDFLTImplCopyWithImpl<$Res>
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
class _$DHTSchemaDFLTImpl implements DHTSchemaDFLT {
|
||||
const _$DHTSchemaDFLTImpl({required this.oCnt, final String? $type})
|
||||
class _$DHTSchemaDFLT implements DHTSchemaDFLT {
|
||||
const _$DHTSchemaDFLT({required this.oCnt, final String? $type})
|
||||
: $type = $type ?? 'DFLT';
|
||||
|
||||
factory _$DHTSchemaDFLTImpl.fromJson(Map<String, dynamic> json) =>
|
||||
_$$DHTSchemaDFLTImplFromJson(json);
|
||||
factory _$DHTSchemaDFLT.fromJson(Map<String, dynamic> json) =>
|
||||
_$$DHTSchemaDFLTFromJson(json);
|
||||
|
||||
@override
|
||||
final int oCnt;
|
||||
@ -163,7 +163,7 @@ class _$DHTSchemaDFLTImpl implements DHTSchemaDFLT {
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$DHTSchemaDFLTImpl &&
|
||||
other is _$DHTSchemaDFLT &&
|
||||
(identical(other.oCnt, oCnt) || other.oCnt == oCnt));
|
||||
}
|
||||
|
||||
@ -174,8 +174,8 @@ class _$DHTSchemaDFLTImpl implements DHTSchemaDFLT {
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$DHTSchemaDFLTImplCopyWith<_$DHTSchemaDFLTImpl> get copyWith =>
|
||||
__$$DHTSchemaDFLTImplCopyWithImpl<_$DHTSchemaDFLTImpl>(this, _$identity);
|
||||
_$$DHTSchemaDFLTCopyWith<_$DHTSchemaDFLT> get copyWith =>
|
||||
__$$DHTSchemaDFLTCopyWithImpl<_$DHTSchemaDFLT>(this, _$identity);
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
@ -241,43 +241,43 @@ class _$DHTSchemaDFLTImpl implements DHTSchemaDFLT {
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$DHTSchemaDFLTImplToJson(
|
||||
return _$$DHTSchemaDFLTToJson(
|
||||
this,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
abstract class DHTSchemaDFLT implements DHTSchema {
|
||||
const factory DHTSchemaDFLT({required final int oCnt}) = _$DHTSchemaDFLTImpl;
|
||||
const factory DHTSchemaDFLT({required final int oCnt}) = _$DHTSchemaDFLT;
|
||||
|
||||
factory DHTSchemaDFLT.fromJson(Map<String, dynamic> json) =
|
||||
_$DHTSchemaDFLTImpl.fromJson;
|
||||
_$DHTSchemaDFLT.fromJson;
|
||||
|
||||
@override
|
||||
int get oCnt;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$$DHTSchemaDFLTImplCopyWith<_$DHTSchemaDFLTImpl> get copyWith =>
|
||||
_$$DHTSchemaDFLTCopyWith<_$DHTSchemaDFLT> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$DHTSchemaSMPLImplCopyWith<$Res>
|
||||
abstract class _$$DHTSchemaSMPLCopyWith<$Res>
|
||||
implements $DHTSchemaCopyWith<$Res> {
|
||||
factory _$$DHTSchemaSMPLImplCopyWith(
|
||||
_$DHTSchemaSMPLImpl value, $Res Function(_$DHTSchemaSMPLImpl) then) =
|
||||
__$$DHTSchemaSMPLImplCopyWithImpl<$Res>;
|
||||
factory _$$DHTSchemaSMPLCopyWith(
|
||||
_$DHTSchemaSMPL value, $Res Function(_$DHTSchemaSMPL) then) =
|
||||
__$$DHTSchemaSMPLCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call({int oCnt, List<DHTSchemaMember> members});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$DHTSchemaSMPLImplCopyWithImpl<$Res>
|
||||
extends _$DHTSchemaCopyWithImpl<$Res, _$DHTSchemaSMPLImpl>
|
||||
implements _$$DHTSchemaSMPLImplCopyWith<$Res> {
|
||||
__$$DHTSchemaSMPLImplCopyWithImpl(
|
||||
_$DHTSchemaSMPLImpl _value, $Res Function(_$DHTSchemaSMPLImpl) _then)
|
||||
class __$$DHTSchemaSMPLCopyWithImpl<$Res>
|
||||
extends _$DHTSchemaCopyWithImpl<$Res, _$DHTSchemaSMPL>
|
||||
implements _$$DHTSchemaSMPLCopyWith<$Res> {
|
||||
__$$DHTSchemaSMPLCopyWithImpl(
|
||||
_$DHTSchemaSMPL _value, $Res Function(_$DHTSchemaSMPL) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@ -286,7 +286,7 @@ class __$$DHTSchemaSMPLImplCopyWithImpl<$Res>
|
||||
Object? oCnt = null,
|
||||
Object? members = null,
|
||||
}) {
|
||||
return _then(_$DHTSchemaSMPLImpl(
|
||||
return _then(_$DHTSchemaSMPL(
|
||||
oCnt: null == oCnt
|
||||
? _value.oCnt
|
||||
: oCnt // ignore: cast_nullable_to_non_nullable
|
||||
@ -301,16 +301,16 @@ class __$$DHTSchemaSMPLImplCopyWithImpl<$Res>
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
class _$DHTSchemaSMPLImpl implements DHTSchemaSMPL {
|
||||
const _$DHTSchemaSMPLImpl(
|
||||
class _$DHTSchemaSMPL implements DHTSchemaSMPL {
|
||||
const _$DHTSchemaSMPL(
|
||||
{required this.oCnt,
|
||||
required final List<DHTSchemaMember> members,
|
||||
final String? $type})
|
||||
: _members = members,
|
||||
$type = $type ?? 'SMPL';
|
||||
|
||||
factory _$DHTSchemaSMPLImpl.fromJson(Map<String, dynamic> json) =>
|
||||
_$$DHTSchemaSMPLImplFromJson(json);
|
||||
factory _$DHTSchemaSMPL.fromJson(Map<String, dynamic> json) =>
|
||||
_$$DHTSchemaSMPLFromJson(json);
|
||||
|
||||
@override
|
||||
final int oCnt;
|
||||
@ -334,7 +334,7 @@ class _$DHTSchemaSMPLImpl implements DHTSchemaSMPL {
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$DHTSchemaSMPLImpl &&
|
||||
other is _$DHTSchemaSMPL &&
|
||||
(identical(other.oCnt, oCnt) || other.oCnt == oCnt) &&
|
||||
const DeepCollectionEquality().equals(other._members, _members));
|
||||
}
|
||||
@ -347,8 +347,8 @@ class _$DHTSchemaSMPLImpl implements DHTSchemaSMPL {
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$DHTSchemaSMPLImplCopyWith<_$DHTSchemaSMPLImpl> get copyWith =>
|
||||
__$$DHTSchemaSMPLImplCopyWithImpl<_$DHTSchemaSMPLImpl>(this, _$identity);
|
||||
_$$DHTSchemaSMPLCopyWith<_$DHTSchemaSMPL> get copyWith =>
|
||||
__$$DHTSchemaSMPLCopyWithImpl<_$DHTSchemaSMPL>(this, _$identity);
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
@ -414,7 +414,7 @@ class _$DHTSchemaSMPLImpl implements DHTSchemaSMPL {
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$DHTSchemaSMPLImplToJson(
|
||||
return _$$DHTSchemaSMPLToJson(
|
||||
this,
|
||||
);
|
||||
}
|
||||
@ -423,17 +423,17 @@ class _$DHTSchemaSMPLImpl implements DHTSchemaSMPL {
|
||||
abstract class DHTSchemaSMPL implements DHTSchema {
|
||||
const factory DHTSchemaSMPL(
|
||||
{required final int oCnt,
|
||||
required final List<DHTSchemaMember> members}) = _$DHTSchemaSMPLImpl;
|
||||
required final List<DHTSchemaMember> members}) = _$DHTSchemaSMPL;
|
||||
|
||||
factory DHTSchemaSMPL.fromJson(Map<String, dynamic> json) =
|
||||
_$DHTSchemaSMPLImpl.fromJson;
|
||||
_$DHTSchemaSMPL.fromJson;
|
||||
|
||||
@override
|
||||
int get oCnt;
|
||||
List<DHTSchemaMember> get members;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$$DHTSchemaSMPLImplCopyWith<_$DHTSchemaSMPLImpl> get copyWith =>
|
||||
_$$DHTSchemaSMPLCopyWith<_$DHTSchemaSMPL> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
@ -491,22 +491,22 @@ class _$DHTSchemaMemberCopyWithImpl<$Res, $Val extends DHTSchemaMember>
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$DHTSchemaMemberImplCopyWith<$Res>
|
||||
abstract class _$$_DHTSchemaMemberCopyWith<$Res>
|
||||
implements $DHTSchemaMemberCopyWith<$Res> {
|
||||
factory _$$DHTSchemaMemberImplCopyWith(_$DHTSchemaMemberImpl value,
|
||||
$Res Function(_$DHTSchemaMemberImpl) then) =
|
||||
__$$DHTSchemaMemberImplCopyWithImpl<$Res>;
|
||||
factory _$$_DHTSchemaMemberCopyWith(
|
||||
_$_DHTSchemaMember value, $Res Function(_$_DHTSchemaMember) then) =
|
||||
__$$_DHTSchemaMemberCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call({FixedEncodedString43 mKey, int mCnt});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$DHTSchemaMemberImplCopyWithImpl<$Res>
|
||||
extends _$DHTSchemaMemberCopyWithImpl<$Res, _$DHTSchemaMemberImpl>
|
||||
implements _$$DHTSchemaMemberImplCopyWith<$Res> {
|
||||
__$$DHTSchemaMemberImplCopyWithImpl(
|
||||
_$DHTSchemaMemberImpl _value, $Res Function(_$DHTSchemaMemberImpl) _then)
|
||||
class __$$_DHTSchemaMemberCopyWithImpl<$Res>
|
||||
extends _$DHTSchemaMemberCopyWithImpl<$Res, _$_DHTSchemaMember>
|
||||
implements _$$_DHTSchemaMemberCopyWith<$Res> {
|
||||
__$$_DHTSchemaMemberCopyWithImpl(
|
||||
_$_DHTSchemaMember _value, $Res Function(_$_DHTSchemaMember) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@ -515,7 +515,7 @@ class __$$DHTSchemaMemberImplCopyWithImpl<$Res>
|
||||
Object? mKey = null,
|
||||
Object? mCnt = null,
|
||||
}) {
|
||||
return _then(_$DHTSchemaMemberImpl(
|
||||
return _then(_$_DHTSchemaMember(
|
||||
mKey: null == mKey
|
||||
? _value.mKey
|
||||
: mKey // ignore: cast_nullable_to_non_nullable
|
||||
@ -530,12 +530,12 @@ class __$$DHTSchemaMemberImplCopyWithImpl<$Res>
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
class _$DHTSchemaMemberImpl implements _DHTSchemaMember {
|
||||
const _$DHTSchemaMemberImpl({required this.mKey, required this.mCnt})
|
||||
class _$_DHTSchemaMember implements _DHTSchemaMember {
|
||||
const _$_DHTSchemaMember({required this.mKey, required this.mCnt})
|
||||
: assert(mCnt > 0 && mCnt <= 65535, 'value out of range');
|
||||
|
||||
factory _$DHTSchemaMemberImpl.fromJson(Map<String, dynamic> json) =>
|
||||
_$$DHTSchemaMemberImplFromJson(json);
|
||||
factory _$_DHTSchemaMember.fromJson(Map<String, dynamic> json) =>
|
||||
_$$_DHTSchemaMemberFromJson(json);
|
||||
|
||||
@override
|
||||
final FixedEncodedString43 mKey;
|
||||
@ -551,7 +551,7 @@ class _$DHTSchemaMemberImpl implements _DHTSchemaMember {
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$DHTSchemaMemberImpl &&
|
||||
other is _$_DHTSchemaMember &&
|
||||
(identical(other.mKey, mKey) || other.mKey == mKey) &&
|
||||
(identical(other.mCnt, mCnt) || other.mCnt == mCnt));
|
||||
}
|
||||
@ -563,13 +563,12 @@ class _$DHTSchemaMemberImpl implements _DHTSchemaMember {
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$DHTSchemaMemberImplCopyWith<_$DHTSchemaMemberImpl> get copyWith =>
|
||||
__$$DHTSchemaMemberImplCopyWithImpl<_$DHTSchemaMemberImpl>(
|
||||
this, _$identity);
|
||||
_$$_DHTSchemaMemberCopyWith<_$_DHTSchemaMember> get copyWith =>
|
||||
__$$_DHTSchemaMemberCopyWithImpl<_$_DHTSchemaMember>(this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$DHTSchemaMemberImplToJson(
|
||||
return _$$_DHTSchemaMemberToJson(
|
||||
this,
|
||||
);
|
||||
}
|
||||
@ -578,10 +577,10 @@ class _$DHTSchemaMemberImpl implements _DHTSchemaMember {
|
||||
abstract class _DHTSchemaMember implements DHTSchemaMember {
|
||||
const factory _DHTSchemaMember(
|
||||
{required final FixedEncodedString43 mKey,
|
||||
required final int mCnt}) = _$DHTSchemaMemberImpl;
|
||||
required final int mCnt}) = _$_DHTSchemaMember;
|
||||
|
||||
factory _DHTSchemaMember.fromJson(Map<String, dynamic> json) =
|
||||
_$DHTSchemaMemberImpl.fromJson;
|
||||
_$_DHTSchemaMember.fromJson;
|
||||
|
||||
@override
|
||||
FixedEncodedString43 get mKey;
|
||||
@ -589,7 +588,7 @@ abstract class _DHTSchemaMember implements DHTSchemaMember {
|
||||
int get mCnt;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$$DHTSchemaMemberImplCopyWith<_$DHTSchemaMemberImpl> get copyWith =>
|
||||
_$$_DHTSchemaMemberCopyWith<_$_DHTSchemaMember> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
@ -673,11 +672,11 @@ class _$DHTRecordDescriptorCopyWithImpl<$Res, $Val extends DHTRecordDescriptor>
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$DHTRecordDescriptorImplCopyWith<$Res>
|
||||
abstract class _$$_DHTRecordDescriptorCopyWith<$Res>
|
||||
implements $DHTRecordDescriptorCopyWith<$Res> {
|
||||
factory _$$DHTRecordDescriptorImplCopyWith(_$DHTRecordDescriptorImpl value,
|
||||
$Res Function(_$DHTRecordDescriptorImpl) then) =
|
||||
__$$DHTRecordDescriptorImplCopyWithImpl<$Res>;
|
||||
factory _$$_DHTRecordDescriptorCopyWith(_$_DHTRecordDescriptor value,
|
||||
$Res Function(_$_DHTRecordDescriptor) then) =
|
||||
__$$_DHTRecordDescriptorCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call(
|
||||
@ -691,11 +690,11 @@ abstract class _$$DHTRecordDescriptorImplCopyWith<$Res>
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$DHTRecordDescriptorImplCopyWithImpl<$Res>
|
||||
extends _$DHTRecordDescriptorCopyWithImpl<$Res, _$DHTRecordDescriptorImpl>
|
||||
implements _$$DHTRecordDescriptorImplCopyWith<$Res> {
|
||||
__$$DHTRecordDescriptorImplCopyWithImpl(_$DHTRecordDescriptorImpl _value,
|
||||
$Res Function(_$DHTRecordDescriptorImpl) _then)
|
||||
class __$$_DHTRecordDescriptorCopyWithImpl<$Res>
|
||||
extends _$DHTRecordDescriptorCopyWithImpl<$Res, _$_DHTRecordDescriptor>
|
||||
implements _$$_DHTRecordDescriptorCopyWith<$Res> {
|
||||
__$$_DHTRecordDescriptorCopyWithImpl(_$_DHTRecordDescriptor _value,
|
||||
$Res Function(_$_DHTRecordDescriptor) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@ -706,7 +705,7 @@ class __$$DHTRecordDescriptorImplCopyWithImpl<$Res>
|
||||
Object? schema = null,
|
||||
Object? ownerSecret = freezed,
|
||||
}) {
|
||||
return _then(_$DHTRecordDescriptorImpl(
|
||||
return _then(_$_DHTRecordDescriptor(
|
||||
key: null == key
|
||||
? _value.key
|
||||
: key // ignore: cast_nullable_to_non_nullable
|
||||
@ -729,15 +728,15 @@ class __$$DHTRecordDescriptorImplCopyWithImpl<$Res>
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
class _$DHTRecordDescriptorImpl implements _DHTRecordDescriptor {
|
||||
const _$DHTRecordDescriptorImpl(
|
||||
class _$_DHTRecordDescriptor implements _DHTRecordDescriptor {
|
||||
const _$_DHTRecordDescriptor(
|
||||
{required this.key,
|
||||
required this.owner,
|
||||
required this.schema,
|
||||
this.ownerSecret});
|
||||
|
||||
factory _$DHTRecordDescriptorImpl.fromJson(Map<String, dynamic> json) =>
|
||||
_$$DHTRecordDescriptorImplFromJson(json);
|
||||
factory _$_DHTRecordDescriptor.fromJson(Map<String, dynamic> json) =>
|
||||
_$$_DHTRecordDescriptorFromJson(json);
|
||||
|
||||
@override
|
||||
final Typed<FixedEncodedString43> key;
|
||||
@ -757,7 +756,7 @@ class _$DHTRecordDescriptorImpl implements _DHTRecordDescriptor {
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$DHTRecordDescriptorImpl &&
|
||||
other is _$_DHTRecordDescriptor &&
|
||||
(identical(other.key, key) || other.key == key) &&
|
||||
(identical(other.owner, owner) || other.owner == owner) &&
|
||||
(identical(other.schema, schema) || other.schema == schema) &&
|
||||
@ -772,13 +771,13 @@ class _$DHTRecordDescriptorImpl implements _DHTRecordDescriptor {
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$DHTRecordDescriptorImplCopyWith<_$DHTRecordDescriptorImpl> get copyWith =>
|
||||
__$$DHTRecordDescriptorImplCopyWithImpl<_$DHTRecordDescriptorImpl>(
|
||||
_$$_DHTRecordDescriptorCopyWith<_$_DHTRecordDescriptor> get copyWith =>
|
||||
__$$_DHTRecordDescriptorCopyWithImpl<_$_DHTRecordDescriptor>(
|
||||
this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$DHTRecordDescriptorImplToJson(
|
||||
return _$$_DHTRecordDescriptorToJson(
|
||||
this,
|
||||
);
|
||||
}
|
||||
@ -789,10 +788,10 @@ abstract class _DHTRecordDescriptor implements DHTRecordDescriptor {
|
||||
{required final Typed<FixedEncodedString43> key,
|
||||
required final FixedEncodedString43 owner,
|
||||
required final DHTSchema schema,
|
||||
final FixedEncodedString43? ownerSecret}) = _$DHTRecordDescriptorImpl;
|
||||
final FixedEncodedString43? ownerSecret}) = _$_DHTRecordDescriptor;
|
||||
|
||||
factory _DHTRecordDescriptor.fromJson(Map<String, dynamic> json) =
|
||||
_$DHTRecordDescriptorImpl.fromJson;
|
||||
_$_DHTRecordDescriptor.fromJson;
|
||||
|
||||
@override
|
||||
Typed<FixedEncodedString43> get key;
|
||||
@ -804,7 +803,7 @@ abstract class _DHTRecordDescriptor implements DHTRecordDescriptor {
|
||||
FixedEncodedString43? get ownerSecret;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$$DHTRecordDescriptorImplCopyWith<_$DHTRecordDescriptorImpl> get copyWith =>
|
||||
_$$_DHTRecordDescriptorCopyWith<_$_DHTRecordDescriptor> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
@ -862,22 +861,22 @@ class _$ValueSubkeyRangeCopyWithImpl<$Res, $Val extends ValueSubkeyRange>
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$ValueSubkeyRangeImplCopyWith<$Res>
|
||||
abstract class _$$_ValueSubkeyRangeCopyWith<$Res>
|
||||
implements $ValueSubkeyRangeCopyWith<$Res> {
|
||||
factory _$$ValueSubkeyRangeImplCopyWith(_$ValueSubkeyRangeImpl value,
|
||||
$Res Function(_$ValueSubkeyRangeImpl) then) =
|
||||
__$$ValueSubkeyRangeImplCopyWithImpl<$Res>;
|
||||
factory _$$_ValueSubkeyRangeCopyWith(
|
||||
_$_ValueSubkeyRange value, $Res Function(_$_ValueSubkeyRange) then) =
|
||||
__$$_ValueSubkeyRangeCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call({int low, int high});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$ValueSubkeyRangeImplCopyWithImpl<$Res>
|
||||
extends _$ValueSubkeyRangeCopyWithImpl<$Res, _$ValueSubkeyRangeImpl>
|
||||
implements _$$ValueSubkeyRangeImplCopyWith<$Res> {
|
||||
__$$ValueSubkeyRangeImplCopyWithImpl(_$ValueSubkeyRangeImpl _value,
|
||||
$Res Function(_$ValueSubkeyRangeImpl) _then)
|
||||
class __$$_ValueSubkeyRangeCopyWithImpl<$Res>
|
||||
extends _$ValueSubkeyRangeCopyWithImpl<$Res, _$_ValueSubkeyRange>
|
||||
implements _$$_ValueSubkeyRangeCopyWith<$Res> {
|
||||
__$$_ValueSubkeyRangeCopyWithImpl(
|
||||
_$_ValueSubkeyRange _value, $Res Function(_$_ValueSubkeyRange) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@ -886,7 +885,7 @@ class __$$ValueSubkeyRangeImplCopyWithImpl<$Res>
|
||||
Object? low = null,
|
||||
Object? high = null,
|
||||
}) {
|
||||
return _then(_$ValueSubkeyRangeImpl(
|
||||
return _then(_$_ValueSubkeyRange(
|
||||
low: null == low
|
||||
? _value.low
|
||||
: low // ignore: cast_nullable_to_non_nullable
|
||||
@ -901,13 +900,13 @@ class __$$ValueSubkeyRangeImplCopyWithImpl<$Res>
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
class _$ValueSubkeyRangeImpl implements _ValueSubkeyRange {
|
||||
const _$ValueSubkeyRangeImpl({required this.low, required this.high})
|
||||
class _$_ValueSubkeyRange implements _ValueSubkeyRange {
|
||||
const _$_ValueSubkeyRange({required this.low, required this.high})
|
||||
: assert(low < 0 || low > high, 'low out of range'),
|
||||
assert(high < 0, 'high out of range');
|
||||
|
||||
factory _$ValueSubkeyRangeImpl.fromJson(Map<String, dynamic> json) =>
|
||||
_$$ValueSubkeyRangeImplFromJson(json);
|
||||
factory _$_ValueSubkeyRange.fromJson(Map<String, dynamic> json) =>
|
||||
_$$_ValueSubkeyRangeFromJson(json);
|
||||
|
||||
@override
|
||||
final int low;
|
||||
@ -923,7 +922,7 @@ class _$ValueSubkeyRangeImpl implements _ValueSubkeyRange {
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$ValueSubkeyRangeImpl &&
|
||||
other is _$_ValueSubkeyRange &&
|
||||
(identical(other.low, low) || other.low == low) &&
|
||||
(identical(other.high, high) || other.high == high));
|
||||
}
|
||||
@ -935,13 +934,12 @@ class _$ValueSubkeyRangeImpl implements _ValueSubkeyRange {
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$ValueSubkeyRangeImplCopyWith<_$ValueSubkeyRangeImpl> get copyWith =>
|
||||
__$$ValueSubkeyRangeImplCopyWithImpl<_$ValueSubkeyRangeImpl>(
|
||||
this, _$identity);
|
||||
_$$_ValueSubkeyRangeCopyWith<_$_ValueSubkeyRange> get copyWith =>
|
||||
__$$_ValueSubkeyRangeCopyWithImpl<_$_ValueSubkeyRange>(this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$ValueSubkeyRangeImplToJson(
|
||||
return _$$_ValueSubkeyRangeToJson(
|
||||
this,
|
||||
);
|
||||
}
|
||||
@ -949,11 +947,10 @@ class _$ValueSubkeyRangeImpl implements _ValueSubkeyRange {
|
||||
|
||||
abstract class _ValueSubkeyRange implements ValueSubkeyRange {
|
||||
const factory _ValueSubkeyRange(
|
||||
{required final int low,
|
||||
required final int high}) = _$ValueSubkeyRangeImpl;
|
||||
{required final int low, required final int high}) = _$_ValueSubkeyRange;
|
||||
|
||||
factory _ValueSubkeyRange.fromJson(Map<String, dynamic> json) =
|
||||
_$ValueSubkeyRangeImpl.fromJson;
|
||||
_$_ValueSubkeyRange.fromJson;
|
||||
|
||||
@override
|
||||
int get low;
|
||||
@ -961,7 +958,7 @@ abstract class _ValueSubkeyRange implements ValueSubkeyRange {
|
||||
int get high;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$$ValueSubkeyRangeImplCopyWith<_$ValueSubkeyRangeImpl> get copyWith =>
|
||||
_$$_ValueSubkeyRangeCopyWith<_$_ValueSubkeyRange> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
@ -1028,11 +1025,10 @@ class _$ValueDataCopyWithImpl<$Res, $Val extends ValueData>
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$ValueDataImplCopyWith<$Res>
|
||||
implements $ValueDataCopyWith<$Res> {
|
||||
factory _$$ValueDataImplCopyWith(
|
||||
_$ValueDataImpl value, $Res Function(_$ValueDataImpl) then) =
|
||||
__$$ValueDataImplCopyWithImpl<$Res>;
|
||||
abstract class _$$_ValueDataCopyWith<$Res> implements $ValueDataCopyWith<$Res> {
|
||||
factory _$$_ValueDataCopyWith(
|
||||
_$_ValueData value, $Res Function(_$_ValueData) then) =
|
||||
__$$_ValueDataCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call(
|
||||
@ -1042,11 +1038,11 @@ abstract class _$$ValueDataImplCopyWith<$Res>
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$ValueDataImplCopyWithImpl<$Res>
|
||||
extends _$ValueDataCopyWithImpl<$Res, _$ValueDataImpl>
|
||||
implements _$$ValueDataImplCopyWith<$Res> {
|
||||
__$$ValueDataImplCopyWithImpl(
|
||||
_$ValueDataImpl _value, $Res Function(_$ValueDataImpl) _then)
|
||||
class __$$_ValueDataCopyWithImpl<$Res>
|
||||
extends _$ValueDataCopyWithImpl<$Res, _$_ValueData>
|
||||
implements _$$_ValueDataCopyWith<$Res> {
|
||||
__$$_ValueDataCopyWithImpl(
|
||||
_$_ValueData _value, $Res Function(_$_ValueData) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@ -1056,7 +1052,7 @@ class __$$ValueDataImplCopyWithImpl<$Res>
|
||||
Object? data = null,
|
||||
Object? writer = null,
|
||||
}) {
|
||||
return _then(_$ValueDataImpl(
|
||||
return _then(_$_ValueData(
|
||||
seq: null == seq
|
||||
? _value.seq
|
||||
: seq // ignore: cast_nullable_to_non_nullable
|
||||
@ -1075,15 +1071,15 @@ class __$$ValueDataImplCopyWithImpl<$Res>
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
class _$ValueDataImpl implements _ValueData {
|
||||
const _$ValueDataImpl(
|
||||
class _$_ValueData implements _ValueData {
|
||||
const _$_ValueData(
|
||||
{required this.seq,
|
||||
@Uint8ListJsonConverter.jsIsArray() required this.data,
|
||||
required this.writer})
|
||||
: assert(seq >= 0, 'seq out of range');
|
||||
|
||||
factory _$ValueDataImpl.fromJson(Map<String, dynamic> json) =>
|
||||
_$$ValueDataImplFromJson(json);
|
||||
factory _$_ValueData.fromJson(Map<String, dynamic> json) =>
|
||||
_$$_ValueDataFromJson(json);
|
||||
|
||||
@override
|
||||
final int seq;
|
||||
@ -1102,7 +1098,7 @@ class _$ValueDataImpl implements _ValueData {
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$ValueDataImpl &&
|
||||
other is _$_ValueData &&
|
||||
(identical(other.seq, seq) || other.seq == seq) &&
|
||||
const DeepCollectionEquality().equals(other.data, data) &&
|
||||
(identical(other.writer, writer) || other.writer == writer));
|
||||
@ -1116,12 +1112,12 @@ class _$ValueDataImpl implements _ValueData {
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$ValueDataImplCopyWith<_$ValueDataImpl> get copyWith =>
|
||||
__$$ValueDataImplCopyWithImpl<_$ValueDataImpl>(this, _$identity);
|
||||
_$$_ValueDataCopyWith<_$_ValueData> get copyWith =>
|
||||
__$$_ValueDataCopyWithImpl<_$_ValueData>(this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$ValueDataImplToJson(
|
||||
return _$$_ValueDataToJson(
|
||||
this,
|
||||
);
|
||||
}
|
||||
@ -1131,10 +1127,10 @@ abstract class _ValueData implements ValueData {
|
||||
const factory _ValueData(
|
||||
{required final int seq,
|
||||
@Uint8ListJsonConverter.jsIsArray() required final Uint8List data,
|
||||
required final FixedEncodedString43 writer}) = _$ValueDataImpl;
|
||||
required final FixedEncodedString43 writer}) = _$_ValueData;
|
||||
|
||||
factory _ValueData.fromJson(Map<String, dynamic> json) =
|
||||
_$ValueDataImpl.fromJson;
|
||||
_$_ValueData.fromJson;
|
||||
|
||||
@override
|
||||
int get seq;
|
||||
@ -1145,7 +1141,7 @@ abstract class _ValueData implements ValueData {
|
||||
FixedEncodedString43 get writer;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$$ValueDataImplCopyWith<_$ValueDataImpl> get copyWith =>
|
||||
_$$_ValueDataCopyWith<_$_ValueData> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
@ -1219,11 +1215,11 @@ class _$SafetySpecCopyWithImpl<$Res, $Val extends SafetySpec>
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$SafetySpecImplCopyWith<$Res>
|
||||
abstract class _$$_SafetySpecCopyWith<$Res>
|
||||
implements $SafetySpecCopyWith<$Res> {
|
||||
factory _$$SafetySpecImplCopyWith(
|
||||
_$SafetySpecImpl value, $Res Function(_$SafetySpecImpl) then) =
|
||||
__$$SafetySpecImplCopyWithImpl<$Res>;
|
||||
factory _$$_SafetySpecCopyWith(
|
||||
_$_SafetySpec value, $Res Function(_$_SafetySpec) then) =
|
||||
__$$_SafetySpecCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call(
|
||||
@ -1234,11 +1230,11 @@ abstract class _$$SafetySpecImplCopyWith<$Res>
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$SafetySpecImplCopyWithImpl<$Res>
|
||||
extends _$SafetySpecCopyWithImpl<$Res, _$SafetySpecImpl>
|
||||
implements _$$SafetySpecImplCopyWith<$Res> {
|
||||
__$$SafetySpecImplCopyWithImpl(
|
||||
_$SafetySpecImpl _value, $Res Function(_$SafetySpecImpl) _then)
|
||||
class __$$_SafetySpecCopyWithImpl<$Res>
|
||||
extends _$SafetySpecCopyWithImpl<$Res, _$_SafetySpec>
|
||||
implements _$$_SafetySpecCopyWith<$Res> {
|
||||
__$$_SafetySpecCopyWithImpl(
|
||||
_$_SafetySpec _value, $Res Function(_$_SafetySpec) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@ -1249,7 +1245,7 @@ class __$$SafetySpecImplCopyWithImpl<$Res>
|
||||
Object? sequencing = null,
|
||||
Object? preferredRoute = freezed,
|
||||
}) {
|
||||
return _then(_$SafetySpecImpl(
|
||||
return _then(_$_SafetySpec(
|
||||
hopCount: null == hopCount
|
||||
? _value.hopCount
|
||||
: hopCount // ignore: cast_nullable_to_non_nullable
|
||||
@ -1272,15 +1268,15 @@ class __$$SafetySpecImplCopyWithImpl<$Res>
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
class _$SafetySpecImpl implements _SafetySpec {
|
||||
const _$SafetySpecImpl(
|
||||
class _$_SafetySpec implements _SafetySpec {
|
||||
const _$_SafetySpec(
|
||||
{required this.hopCount,
|
||||
required this.stability,
|
||||
required this.sequencing,
|
||||
this.preferredRoute});
|
||||
|
||||
factory _$SafetySpecImpl.fromJson(Map<String, dynamic> json) =>
|
||||
_$$SafetySpecImplFromJson(json);
|
||||
factory _$_SafetySpec.fromJson(Map<String, dynamic> json) =>
|
||||
_$$_SafetySpecFromJson(json);
|
||||
|
||||
@override
|
||||
final int hopCount;
|
||||
@ -1300,7 +1296,7 @@ class _$SafetySpecImpl implements _SafetySpec {
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$SafetySpecImpl &&
|
||||
other is _$_SafetySpec &&
|
||||
(identical(other.hopCount, hopCount) ||
|
||||
other.hopCount == hopCount) &&
|
||||
(identical(other.stability, stability) ||
|
||||
@ -1319,12 +1315,12 @@ class _$SafetySpecImpl implements _SafetySpec {
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$SafetySpecImplCopyWith<_$SafetySpecImpl> get copyWith =>
|
||||
__$$SafetySpecImplCopyWithImpl<_$SafetySpecImpl>(this, _$identity);
|
||||
_$$_SafetySpecCopyWith<_$_SafetySpec> get copyWith =>
|
||||
__$$_SafetySpecCopyWithImpl<_$_SafetySpec>(this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$SafetySpecImplToJson(
|
||||
return _$$_SafetySpecToJson(
|
||||
this,
|
||||
);
|
||||
}
|
||||
@ -1335,10 +1331,10 @@ abstract class _SafetySpec implements SafetySpec {
|
||||
{required final int hopCount,
|
||||
required final Stability stability,
|
||||
required final Sequencing sequencing,
|
||||
final String? preferredRoute}) = _$SafetySpecImpl;
|
||||
final String? preferredRoute}) = _$_SafetySpec;
|
||||
|
||||
factory _SafetySpec.fromJson(Map<String, dynamic> json) =
|
||||
_$SafetySpecImpl.fromJson;
|
||||
_$_SafetySpec.fromJson;
|
||||
|
||||
@override
|
||||
int get hopCount;
|
||||
@ -1350,7 +1346,7 @@ abstract class _SafetySpec implements SafetySpec {
|
||||
String? get preferredRoute;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$$SafetySpecImplCopyWith<_$SafetySpecImpl> get copyWith =>
|
||||
_$$_SafetySpecCopyWith<_$_SafetySpec> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
@ -1408,22 +1404,21 @@ class _$RouteBlobCopyWithImpl<$Res, $Val extends RouteBlob>
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$RouteBlobImplCopyWith<$Res>
|
||||
implements $RouteBlobCopyWith<$Res> {
|
||||
factory _$$RouteBlobImplCopyWith(
|
||||
_$RouteBlobImpl value, $Res Function(_$RouteBlobImpl) then) =
|
||||
__$$RouteBlobImplCopyWithImpl<$Res>;
|
||||
abstract class _$$_RouteBlobCopyWith<$Res> implements $RouteBlobCopyWith<$Res> {
|
||||
factory _$$_RouteBlobCopyWith(
|
||||
_$_RouteBlob value, $Res Function(_$_RouteBlob) then) =
|
||||
__$$_RouteBlobCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call({String routeId, @Uint8ListJsonConverter() Uint8List blob});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$RouteBlobImplCopyWithImpl<$Res>
|
||||
extends _$RouteBlobCopyWithImpl<$Res, _$RouteBlobImpl>
|
||||
implements _$$RouteBlobImplCopyWith<$Res> {
|
||||
__$$RouteBlobImplCopyWithImpl(
|
||||
_$RouteBlobImpl _value, $Res Function(_$RouteBlobImpl) _then)
|
||||
class __$$_RouteBlobCopyWithImpl<$Res>
|
||||
extends _$RouteBlobCopyWithImpl<$Res, _$_RouteBlob>
|
||||
implements _$$_RouteBlobCopyWith<$Res> {
|
||||
__$$_RouteBlobCopyWithImpl(
|
||||
_$_RouteBlob _value, $Res Function(_$_RouteBlob) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@ -1432,7 +1427,7 @@ class __$$RouteBlobImplCopyWithImpl<$Res>
|
||||
Object? routeId = null,
|
||||
Object? blob = null,
|
||||
}) {
|
||||
return _then(_$RouteBlobImpl(
|
||||
return _then(_$_RouteBlob(
|
||||
routeId: null == routeId
|
||||
? _value.routeId
|
||||
: routeId // ignore: cast_nullable_to_non_nullable
|
||||
@ -1447,12 +1442,12 @@ class __$$RouteBlobImplCopyWithImpl<$Res>
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
class _$RouteBlobImpl implements _RouteBlob {
|
||||
const _$RouteBlobImpl(
|
||||
class _$_RouteBlob implements _RouteBlob {
|
||||
const _$_RouteBlob(
|
||||
{required this.routeId, @Uint8ListJsonConverter() required this.blob});
|
||||
|
||||
factory _$RouteBlobImpl.fromJson(Map<String, dynamic> json) =>
|
||||
_$$RouteBlobImplFromJson(json);
|
||||
factory _$_RouteBlob.fromJson(Map<String, dynamic> json) =>
|
||||
_$$_RouteBlobFromJson(json);
|
||||
|
||||
@override
|
||||
final String routeId;
|
||||
@ -1469,7 +1464,7 @@ class _$RouteBlobImpl implements _RouteBlob {
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$RouteBlobImpl &&
|
||||
other is _$_RouteBlob &&
|
||||
(identical(other.routeId, routeId) || other.routeId == routeId) &&
|
||||
const DeepCollectionEquality().equals(other.blob, blob));
|
||||
}
|
||||
@ -1482,12 +1477,12 @@ class _$RouteBlobImpl implements _RouteBlob {
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$RouteBlobImplCopyWith<_$RouteBlobImpl> get copyWith =>
|
||||
__$$RouteBlobImplCopyWithImpl<_$RouteBlobImpl>(this, _$identity);
|
||||
_$$_RouteBlobCopyWith<_$_RouteBlob> get copyWith =>
|
||||
__$$_RouteBlobCopyWithImpl<_$_RouteBlob>(this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$RouteBlobImplToJson(
|
||||
return _$$_RouteBlobToJson(
|
||||
this,
|
||||
);
|
||||
}
|
||||
@ -1495,12 +1490,11 @@ class _$RouteBlobImpl implements _RouteBlob {
|
||||
|
||||
abstract class _RouteBlob implements RouteBlob {
|
||||
const factory _RouteBlob(
|
||||
{required final String routeId,
|
||||
@Uint8ListJsonConverter() required final Uint8List blob}) =
|
||||
_$RouteBlobImpl;
|
||||
{required final String routeId,
|
||||
@Uint8ListJsonConverter() required final Uint8List blob}) = _$_RouteBlob;
|
||||
|
||||
factory _RouteBlob.fromJson(Map<String, dynamic> json) =
|
||||
_$RouteBlobImpl.fromJson;
|
||||
_$_RouteBlob.fromJson;
|
||||
|
||||
@override
|
||||
String get routeId;
|
||||
@ -1509,6 +1503,6 @@ abstract class _RouteBlob implements RouteBlob {
|
||||
Uint8List get blob;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$$RouteBlobImplCopyWith<_$RouteBlobImpl> get copyWith =>
|
||||
_$$_RouteBlobCopyWith<_$_RouteBlob> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
@ -6,20 +6,20 @@ part of 'routing_context.dart';
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
_$DHTSchemaDFLTImpl _$$DHTSchemaDFLTImplFromJson(Map<String, dynamic> json) =>
|
||||
_$DHTSchemaDFLTImpl(
|
||||
_$DHTSchemaDFLT _$$DHTSchemaDFLTFromJson(Map<String, dynamic> json) =>
|
||||
_$DHTSchemaDFLT(
|
||||
oCnt: json['o_cnt'] as int,
|
||||
$type: json['kind'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$DHTSchemaDFLTImplToJson(_$DHTSchemaDFLTImpl instance) =>
|
||||
Map<String, dynamic> _$$DHTSchemaDFLTToJson(_$DHTSchemaDFLT instance) =>
|
||||
<String, dynamic>{
|
||||
'o_cnt': instance.oCnt,
|
||||
'kind': instance.$type,
|
||||
};
|
||||
|
||||
_$DHTSchemaSMPLImpl _$$DHTSchemaSMPLImplFromJson(Map<String, dynamic> json) =>
|
||||
_$DHTSchemaSMPLImpl(
|
||||
_$DHTSchemaSMPL _$$DHTSchemaSMPLFromJson(Map<String, dynamic> json) =>
|
||||
_$DHTSchemaSMPL(
|
||||
oCnt: json['o_cnt'] as int,
|
||||
members: (json['members'] as List<dynamic>)
|
||||
.map(DHTSchemaMember.fromJson)
|
||||
@ -27,30 +27,28 @@ _$DHTSchemaSMPLImpl _$$DHTSchemaSMPLImplFromJson(Map<String, dynamic> json) =>
|
||||
$type: json['kind'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$DHTSchemaSMPLImplToJson(_$DHTSchemaSMPLImpl instance) =>
|
||||
Map<String, dynamic> _$$DHTSchemaSMPLToJson(_$DHTSchemaSMPL instance) =>
|
||||
<String, dynamic>{
|
||||
'o_cnt': instance.oCnt,
|
||||
'members': instance.members.map((e) => e.toJson()).toList(),
|
||||
'kind': instance.$type,
|
||||
};
|
||||
|
||||
_$DHTSchemaMemberImpl _$$DHTSchemaMemberImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$DHTSchemaMemberImpl(
|
||||
_$_DHTSchemaMember _$$_DHTSchemaMemberFromJson(Map<String, dynamic> json) =>
|
||||
_$_DHTSchemaMember(
|
||||
mKey: FixedEncodedString43.fromJson(json['m_key']),
|
||||
mCnt: json['m_cnt'] as int,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$DHTSchemaMemberImplToJson(
|
||||
_$DHTSchemaMemberImpl instance) =>
|
||||
Map<String, dynamic> _$$_DHTSchemaMemberToJson(_$_DHTSchemaMember instance) =>
|
||||
<String, dynamic>{
|
||||
'm_key': instance.mKey.toJson(),
|
||||
'm_cnt': instance.mCnt,
|
||||
};
|
||||
|
||||
_$DHTRecordDescriptorImpl _$$DHTRecordDescriptorImplFromJson(
|
||||
_$_DHTRecordDescriptor _$$_DHTRecordDescriptorFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$DHTRecordDescriptorImpl(
|
||||
_$_DHTRecordDescriptor(
|
||||
key: Typed<FixedEncodedString43>.fromJson(json['key']),
|
||||
owner: FixedEncodedString43.fromJson(json['owner']),
|
||||
schema: DHTSchema.fromJson(json['schema']),
|
||||
@ -59,8 +57,8 @@ _$DHTRecordDescriptorImpl _$$DHTRecordDescriptorImplFromJson(
|
||||
: FixedEncodedString43.fromJson(json['owner_secret']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$DHTRecordDescriptorImplToJson(
|
||||
_$DHTRecordDescriptorImpl instance) =>
|
||||
Map<String, dynamic> _$$_DHTRecordDescriptorToJson(
|
||||
_$_DHTRecordDescriptor instance) =>
|
||||
<String, dynamic>{
|
||||
'key': instance.key.toJson(),
|
||||
'owner': instance.owner.toJson(),
|
||||
@ -68,43 +66,40 @@ Map<String, dynamic> _$$DHTRecordDescriptorImplToJson(
|
||||
'owner_secret': instance.ownerSecret?.toJson(),
|
||||
};
|
||||
|
||||
_$ValueSubkeyRangeImpl _$$ValueSubkeyRangeImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$ValueSubkeyRangeImpl(
|
||||
_$_ValueSubkeyRange _$$_ValueSubkeyRangeFromJson(Map<String, dynamic> json) =>
|
||||
_$_ValueSubkeyRange(
|
||||
low: json['low'] as int,
|
||||
high: json['high'] as int,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$ValueSubkeyRangeImplToJson(
|
||||
_$ValueSubkeyRangeImpl instance) =>
|
||||
Map<String, dynamic> _$$_ValueSubkeyRangeToJson(_$_ValueSubkeyRange instance) =>
|
||||
<String, dynamic>{
|
||||
'low': instance.low,
|
||||
'high': instance.high,
|
||||
};
|
||||
|
||||
_$ValueDataImpl _$$ValueDataImplFromJson(Map<String, dynamic> json) =>
|
||||
_$ValueDataImpl(
|
||||
_$_ValueData _$$_ValueDataFromJson(Map<String, dynamic> json) => _$_ValueData(
|
||||
seq: json['seq'] as int,
|
||||
data: const Uint8ListJsonConverter.jsIsArray().fromJson(json['data']),
|
||||
writer: FixedEncodedString43.fromJson(json['writer']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$ValueDataImplToJson(_$ValueDataImpl instance) =>
|
||||
Map<String, dynamic> _$$_ValueDataToJson(_$_ValueData instance) =>
|
||||
<String, dynamic>{
|
||||
'seq': instance.seq,
|
||||
'data': const Uint8ListJsonConverter.jsIsArray().toJson(instance.data),
|
||||
'writer': instance.writer.toJson(),
|
||||
};
|
||||
|
||||
_$SafetySpecImpl _$$SafetySpecImplFromJson(Map<String, dynamic> json) =>
|
||||
_$SafetySpecImpl(
|
||||
_$_SafetySpec _$$_SafetySpecFromJson(Map<String, dynamic> json) =>
|
||||
_$_SafetySpec(
|
||||
hopCount: json['hop_count'] as int,
|
||||
stability: Stability.fromJson(json['stability']),
|
||||
sequencing: Sequencing.fromJson(json['sequencing']),
|
||||
preferredRoute: json['preferred_route'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$SafetySpecImplToJson(_$SafetySpecImpl instance) =>
|
||||
Map<String, dynamic> _$$_SafetySpecToJson(_$_SafetySpec instance) =>
|
||||
<String, dynamic>{
|
||||
'hop_count': instance.hopCount,
|
||||
'stability': instance.stability.toJson(),
|
||||
@ -112,13 +107,12 @@ Map<String, dynamic> _$$SafetySpecImplToJson(_$SafetySpecImpl instance) =>
|
||||
'preferred_route': instance.preferredRoute,
|
||||
};
|
||||
|
||||
_$RouteBlobImpl _$$RouteBlobImplFromJson(Map<String, dynamic> json) =>
|
||||
_$RouteBlobImpl(
|
||||
_$_RouteBlob _$$_RouteBlobFromJson(Map<String, dynamic> json) => _$_RouteBlob(
|
||||
routeId: json['route_id'] as String,
|
||||
blob: const Uint8ListJsonConverter().fromJson(json['blob']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$RouteBlobImplToJson(_$RouteBlobImpl instance) =>
|
||||
Map<String, dynamic> _$$_RouteBlobToJson(_$_RouteBlob instance) =>
|
||||
<String, dynamic>{
|
||||
'route_id': instance.routeId,
|
||||
'blob': const Uint8ListJsonConverter().toJson(instance.blob),
|
||||
|
@ -285,6 +285,7 @@ class VeilidConfigDHT with _$VeilidConfigDHT {
|
||||
required int remoteMaxStorageSpaceMb,
|
||||
required int publicWatchLimit,
|
||||
required int memberWatchLimit,
|
||||
required int maxWatchExpirationMs,
|
||||
}) = _VeilidConfigDHT;
|
||||
|
||||
factory VeilidConfigDHT.fromJson(dynamic json) =>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -6,31 +6,31 @@ part of 'veilid_config.dart';
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
_$VeilidFFIConfigLoggingTerminalImpl
|
||||
_$$VeilidFFIConfigLoggingTerminalImplFromJson(Map<String, dynamic> json) =>
|
||||
_$VeilidFFIConfigLoggingTerminalImpl(
|
||||
enabled: json['enabled'] as bool,
|
||||
level: VeilidConfigLogLevel.fromJson(json['level']),
|
||||
);
|
||||
_$_VeilidFFIConfigLoggingTerminal _$$_VeilidFFIConfigLoggingTerminalFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$_VeilidFFIConfigLoggingTerminal(
|
||||
enabled: json['enabled'] as bool,
|
||||
level: VeilidConfigLogLevel.fromJson(json['level']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidFFIConfigLoggingTerminalImplToJson(
|
||||
_$VeilidFFIConfigLoggingTerminalImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidFFIConfigLoggingTerminalToJson(
|
||||
_$_VeilidFFIConfigLoggingTerminal instance) =>
|
||||
<String, dynamic>{
|
||||
'enabled': instance.enabled,
|
||||
'level': instance.level.toJson(),
|
||||
};
|
||||
|
||||
_$VeilidFFIConfigLoggingOtlpImpl _$$VeilidFFIConfigLoggingOtlpImplFromJson(
|
||||
_$_VeilidFFIConfigLoggingOtlp _$$_VeilidFFIConfigLoggingOtlpFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidFFIConfigLoggingOtlpImpl(
|
||||
_$_VeilidFFIConfigLoggingOtlp(
|
||||
enabled: json['enabled'] as bool,
|
||||
level: VeilidConfigLogLevel.fromJson(json['level']),
|
||||
grpcEndpoint: json['grpc_endpoint'] as String,
|
||||
serviceName: json['service_name'] as String,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidFFIConfigLoggingOtlpImplToJson(
|
||||
_$VeilidFFIConfigLoggingOtlpImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidFFIConfigLoggingOtlpToJson(
|
||||
_$_VeilidFFIConfigLoggingOtlp instance) =>
|
||||
<String, dynamic>{
|
||||
'enabled': instance.enabled,
|
||||
'level': instance.level.toJson(),
|
||||
@ -38,60 +38,57 @@ Map<String, dynamic> _$$VeilidFFIConfigLoggingOtlpImplToJson(
|
||||
'service_name': instance.serviceName,
|
||||
};
|
||||
|
||||
_$VeilidFFIConfigLoggingApiImpl _$$VeilidFFIConfigLoggingApiImplFromJson(
|
||||
_$_VeilidFFIConfigLoggingApi _$$_VeilidFFIConfigLoggingApiFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidFFIConfigLoggingApiImpl(
|
||||
_$_VeilidFFIConfigLoggingApi(
|
||||
enabled: json['enabled'] as bool,
|
||||
level: VeilidConfigLogLevel.fromJson(json['level']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidFFIConfigLoggingApiImplToJson(
|
||||
_$VeilidFFIConfigLoggingApiImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidFFIConfigLoggingApiToJson(
|
||||
_$_VeilidFFIConfigLoggingApi instance) =>
|
||||
<String, dynamic>{
|
||||
'enabled': instance.enabled,
|
||||
'level': instance.level.toJson(),
|
||||
};
|
||||
|
||||
_$VeilidFFIConfigLoggingImpl _$$VeilidFFIConfigLoggingImplFromJson(
|
||||
_$_VeilidFFIConfigLogging _$$_VeilidFFIConfigLoggingFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidFFIConfigLoggingImpl(
|
||||
_$_VeilidFFIConfigLogging(
|
||||
terminal: VeilidFFIConfigLoggingTerminal.fromJson(json['terminal']),
|
||||
otlp: VeilidFFIConfigLoggingOtlp.fromJson(json['otlp']),
|
||||
api: VeilidFFIConfigLoggingApi.fromJson(json['api']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidFFIConfigLoggingImplToJson(
|
||||
_$VeilidFFIConfigLoggingImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidFFIConfigLoggingToJson(
|
||||
_$_VeilidFFIConfigLogging instance) =>
|
||||
<String, dynamic>{
|
||||
'terminal': instance.terminal.toJson(),
|
||||
'otlp': instance.otlp.toJson(),
|
||||
'api': instance.api.toJson(),
|
||||
};
|
||||
|
||||
_$VeilidFFIConfigImpl _$$VeilidFFIConfigImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidFFIConfigImpl(
|
||||
_$_VeilidFFIConfig _$$_VeilidFFIConfigFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidFFIConfig(
|
||||
logging: VeilidFFIConfigLogging.fromJson(json['logging']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidFFIConfigImplToJson(
|
||||
_$VeilidFFIConfigImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidFFIConfigToJson(_$_VeilidFFIConfig instance) =>
|
||||
<String, dynamic>{
|
||||
'logging': instance.logging.toJson(),
|
||||
};
|
||||
|
||||
_$VeilidWASMConfigLoggingPerformanceImpl
|
||||
_$$VeilidWASMConfigLoggingPerformanceImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidWASMConfigLoggingPerformanceImpl(
|
||||
_$_VeilidWASMConfigLoggingPerformance
|
||||
_$$_VeilidWASMConfigLoggingPerformanceFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidWASMConfigLoggingPerformance(
|
||||
enabled: json['enabled'] as bool,
|
||||
level: VeilidConfigLogLevel.fromJson(json['level']),
|
||||
logsInTimings: json['logs_in_timings'] as bool,
|
||||
logsInConsole: json['logs_in_console'] as bool,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidWASMConfigLoggingPerformanceImplToJson(
|
||||
_$VeilidWASMConfigLoggingPerformanceImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidWASMConfigLoggingPerformanceToJson(
|
||||
_$_VeilidWASMConfigLoggingPerformance instance) =>
|
||||
<String, dynamic>{
|
||||
'enabled': instance.enabled,
|
||||
'level': instance.level.toJson(),
|
||||
@ -99,58 +96,55 @@ Map<String, dynamic> _$$VeilidWASMConfigLoggingPerformanceImplToJson(
|
||||
'logs_in_console': instance.logsInConsole,
|
||||
};
|
||||
|
||||
_$VeilidWASMConfigLoggingApiImpl _$$VeilidWASMConfigLoggingApiImplFromJson(
|
||||
_$_VeilidWASMConfigLoggingApi _$$_VeilidWASMConfigLoggingApiFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidWASMConfigLoggingApiImpl(
|
||||
_$_VeilidWASMConfigLoggingApi(
|
||||
enabled: json['enabled'] as bool,
|
||||
level: VeilidConfigLogLevel.fromJson(json['level']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidWASMConfigLoggingApiImplToJson(
|
||||
_$VeilidWASMConfigLoggingApiImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidWASMConfigLoggingApiToJson(
|
||||
_$_VeilidWASMConfigLoggingApi instance) =>
|
||||
<String, dynamic>{
|
||||
'enabled': instance.enabled,
|
||||
'level': instance.level.toJson(),
|
||||
};
|
||||
|
||||
_$VeilidWASMConfigLoggingImpl _$$VeilidWASMConfigLoggingImplFromJson(
|
||||
_$_VeilidWASMConfigLogging _$$_VeilidWASMConfigLoggingFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidWASMConfigLoggingImpl(
|
||||
_$_VeilidWASMConfigLogging(
|
||||
performance:
|
||||
VeilidWASMConfigLoggingPerformance.fromJson(json['performance']),
|
||||
api: VeilidWASMConfigLoggingApi.fromJson(json['api']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidWASMConfigLoggingImplToJson(
|
||||
_$VeilidWASMConfigLoggingImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidWASMConfigLoggingToJson(
|
||||
_$_VeilidWASMConfigLogging instance) =>
|
||||
<String, dynamic>{
|
||||
'performance': instance.performance.toJson(),
|
||||
'api': instance.api.toJson(),
|
||||
};
|
||||
|
||||
_$VeilidWASMConfigImpl _$$VeilidWASMConfigImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidWASMConfigImpl(
|
||||
_$_VeilidWASMConfig _$$_VeilidWASMConfigFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidWASMConfig(
|
||||
logging: VeilidWASMConfigLogging.fromJson(json['logging']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidWASMConfigImplToJson(
|
||||
_$VeilidWASMConfigImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidWASMConfigToJson(_$_VeilidWASMConfig instance) =>
|
||||
<String, dynamic>{
|
||||
'logging': instance.logging.toJson(),
|
||||
};
|
||||
|
||||
_$VeilidConfigHTTPSImpl _$$VeilidConfigHTTPSImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigHTTPSImpl(
|
||||
_$_VeilidConfigHTTPS _$$_VeilidConfigHTTPSFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidConfigHTTPS(
|
||||
enabled: json['enabled'] as bool,
|
||||
listenAddress: json['listen_address'] as String,
|
||||
path: json['path'] as String,
|
||||
url: json['url'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigHTTPSImplToJson(
|
||||
_$VeilidConfigHTTPSImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigHTTPSToJson(
|
||||
_$_VeilidConfigHTTPS instance) =>
|
||||
<String, dynamic>{
|
||||
'enabled': instance.enabled,
|
||||
'listen_address': instance.listenAddress,
|
||||
@ -158,17 +152,15 @@ Map<String, dynamic> _$$VeilidConfigHTTPSImplToJson(
|
||||
'url': instance.url,
|
||||
};
|
||||
|
||||
_$VeilidConfigHTTPImpl _$$VeilidConfigHTTPImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigHTTPImpl(
|
||||
_$_VeilidConfigHTTP _$$_VeilidConfigHTTPFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidConfigHTTP(
|
||||
enabled: json['enabled'] as bool,
|
||||
listenAddress: json['listen_address'] as String,
|
||||
path: json['path'] as String,
|
||||
url: json['url'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigHTTPImplToJson(
|
||||
_$VeilidConfigHTTPImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigHTTPToJson(_$_VeilidConfigHTTP instance) =>
|
||||
<String, dynamic>{
|
||||
'enabled': instance.enabled,
|
||||
'listen_address': instance.listenAddress,
|
||||
@ -176,31 +168,29 @@ Map<String, dynamic> _$$VeilidConfigHTTPImplToJson(
|
||||
'url': instance.url,
|
||||
};
|
||||
|
||||
_$VeilidConfigApplicationImpl _$$VeilidConfigApplicationImplFromJson(
|
||||
_$_VeilidConfigApplication _$$_VeilidConfigApplicationFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigApplicationImpl(
|
||||
_$_VeilidConfigApplication(
|
||||
https: VeilidConfigHTTPS.fromJson(json['https']),
|
||||
http: VeilidConfigHTTP.fromJson(json['http']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigApplicationImplToJson(
|
||||
_$VeilidConfigApplicationImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigApplicationToJson(
|
||||
_$_VeilidConfigApplication instance) =>
|
||||
<String, dynamic>{
|
||||
'https': instance.https.toJson(),
|
||||
'http': instance.http.toJson(),
|
||||
};
|
||||
|
||||
_$VeilidConfigUDPImpl _$$VeilidConfigUDPImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigUDPImpl(
|
||||
_$_VeilidConfigUDP _$$_VeilidConfigUDPFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidConfigUDP(
|
||||
enabled: json['enabled'] as bool,
|
||||
socketPoolSize: json['socket_pool_size'] as int,
|
||||
listenAddress: json['listen_address'] as String,
|
||||
publicAddress: json['public_address'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigUDPImplToJson(
|
||||
_$VeilidConfigUDPImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigUDPToJson(_$_VeilidConfigUDP instance) =>
|
||||
<String, dynamic>{
|
||||
'enabled': instance.enabled,
|
||||
'socket_pool_size': instance.socketPoolSize,
|
||||
@ -208,9 +198,8 @@ Map<String, dynamic> _$$VeilidConfigUDPImplToJson(
|
||||
'public_address': instance.publicAddress,
|
||||
};
|
||||
|
||||
_$VeilidConfigTCPImpl _$$VeilidConfigTCPImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigTCPImpl(
|
||||
_$_VeilidConfigTCP _$$_VeilidConfigTCPFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidConfigTCP(
|
||||
connect: json['connect'] as bool,
|
||||
listen: json['listen'] as bool,
|
||||
maxConnections: json['max_connections'] as int,
|
||||
@ -218,8 +207,7 @@ _$VeilidConfigTCPImpl _$$VeilidConfigTCPImplFromJson(
|
||||
publicAddress: json['public_address'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigTCPImplToJson(
|
||||
_$VeilidConfigTCPImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigTCPToJson(_$_VeilidConfigTCP instance) =>
|
||||
<String, dynamic>{
|
||||
'connect': instance.connect,
|
||||
'listen': instance.listen,
|
||||
@ -228,8 +216,8 @@ Map<String, dynamic> _$$VeilidConfigTCPImplToJson(
|
||||
'public_address': instance.publicAddress,
|
||||
};
|
||||
|
||||
_$VeilidConfigWSImpl _$$VeilidConfigWSImplFromJson(Map<String, dynamic> json) =>
|
||||
_$VeilidConfigWSImpl(
|
||||
_$_VeilidConfigWS _$$_VeilidConfigWSFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidConfigWS(
|
||||
connect: json['connect'] as bool,
|
||||
listen: json['listen'] as bool,
|
||||
maxConnections: json['max_connections'] as int,
|
||||
@ -238,8 +226,7 @@ _$VeilidConfigWSImpl _$$VeilidConfigWSImplFromJson(Map<String, dynamic> json) =>
|
||||
url: json['url'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigWSImplToJson(
|
||||
_$VeilidConfigWSImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigWSToJson(_$_VeilidConfigWS instance) =>
|
||||
<String, dynamic>{
|
||||
'connect': instance.connect,
|
||||
'listen': instance.listen,
|
||||
@ -249,9 +236,8 @@ Map<String, dynamic> _$$VeilidConfigWSImplToJson(
|
||||
'url': instance.url,
|
||||
};
|
||||
|
||||
_$VeilidConfigWSSImpl _$$VeilidConfigWSSImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigWSSImpl(
|
||||
_$_VeilidConfigWSS _$$_VeilidConfigWSSFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidConfigWSS(
|
||||
connect: json['connect'] as bool,
|
||||
listen: json['listen'] as bool,
|
||||
maxConnections: json['max_connections'] as int,
|
||||
@ -260,8 +246,7 @@ _$VeilidConfigWSSImpl _$$VeilidConfigWSSImplFromJson(
|
||||
url: json['url'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigWSSImplToJson(
|
||||
_$VeilidConfigWSSImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigWSSToJson(_$_VeilidConfigWSS instance) =>
|
||||
<String, dynamic>{
|
||||
'connect': instance.connect,
|
||||
'listen': instance.listen,
|
||||
@ -271,17 +256,17 @@ Map<String, dynamic> _$$VeilidConfigWSSImplToJson(
|
||||
'url': instance.url,
|
||||
};
|
||||
|
||||
_$VeilidConfigProtocolImpl _$$VeilidConfigProtocolImplFromJson(
|
||||
_$_VeilidConfigProtocol _$$_VeilidConfigProtocolFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigProtocolImpl(
|
||||
_$_VeilidConfigProtocol(
|
||||
udp: VeilidConfigUDP.fromJson(json['udp']),
|
||||
tcp: VeilidConfigTCP.fromJson(json['tcp']),
|
||||
ws: VeilidConfigWS.fromJson(json['ws']),
|
||||
wss: VeilidConfigWSS.fromJson(json['wss']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigProtocolImplToJson(
|
||||
_$VeilidConfigProtocolImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigProtocolToJson(
|
||||
_$_VeilidConfigProtocol instance) =>
|
||||
<String, dynamic>{
|
||||
'udp': instance.udp.toJson(),
|
||||
'tcp': instance.tcp.toJson(),
|
||||
@ -289,25 +274,22 @@ Map<String, dynamic> _$$VeilidConfigProtocolImplToJson(
|
||||
'wss': instance.wss.toJson(),
|
||||
};
|
||||
|
||||
_$VeilidConfigTLSImpl _$$VeilidConfigTLSImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigTLSImpl(
|
||||
_$_VeilidConfigTLS _$$_VeilidConfigTLSFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidConfigTLS(
|
||||
certificatePath: json['certificate_path'] as String,
|
||||
privateKeyPath: json['private_key_path'] as String,
|
||||
connectionInitialTimeoutMs: json['connection_initial_timeout_ms'] as int,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigTLSImplToJson(
|
||||
_$VeilidConfigTLSImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigTLSToJson(_$_VeilidConfigTLS instance) =>
|
||||
<String, dynamic>{
|
||||
'certificate_path': instance.certificatePath,
|
||||
'private_key_path': instance.privateKeyPath,
|
||||
'connection_initial_timeout_ms': instance.connectionInitialTimeoutMs,
|
||||
};
|
||||
|
||||
_$VeilidConfigDHTImpl _$$VeilidConfigDHTImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigDHTImpl(
|
||||
_$_VeilidConfigDHT _$$_VeilidConfigDHTFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidConfigDHT(
|
||||
resolveNodeTimeoutMs: json['resolve_node_timeout_ms'] as int,
|
||||
resolveNodeCount: json['resolve_node_count'] as int,
|
||||
resolveNodeFanout: json['resolve_node_fanout'] as int,
|
||||
@ -330,10 +312,12 @@ _$VeilidConfigDHTImpl _$$VeilidConfigDHTImplFromJson(
|
||||
remoteMaxSubkeyCacheMemoryMb:
|
||||
json['remote_max_subkey_cache_memory_mb'] as int,
|
||||
remoteMaxStorageSpaceMb: json['remote_max_storage_space_mb'] as int,
|
||||
publicWatchLimit: json['public_watch_limit'] as int,
|
||||
memberWatchLimit: json['member_watch_limit'] as int,
|
||||
maxWatchExpirationMs: json['max_watch_expiration_ms'] as int,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigDHTImplToJson(
|
||||
_$VeilidConfigDHTImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigDHTToJson(_$_VeilidConfigDHT instance) =>
|
||||
<String, dynamic>{
|
||||
'resolve_node_timeout_ms': instance.resolveNodeTimeoutMs,
|
||||
'resolve_node_count': instance.resolveNodeCount,
|
||||
@ -356,11 +340,13 @@ Map<String, dynamic> _$$VeilidConfigDHTImplToJson(
|
||||
'remote_max_subkey_cache_memory_mb':
|
||||
instance.remoteMaxSubkeyCacheMemoryMb,
|
||||
'remote_max_storage_space_mb': instance.remoteMaxStorageSpaceMb,
|
||||
'public_watch_limit': instance.publicWatchLimit,
|
||||
'member_watch_limit': instance.memberWatchLimit,
|
||||
'max_watch_expiration_ms': instance.maxWatchExpirationMs,
|
||||
};
|
||||
|
||||
_$VeilidConfigRPCImpl _$$VeilidConfigRPCImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigRPCImpl(
|
||||
_$_VeilidConfigRPC _$$_VeilidConfigRPCFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidConfigRPC(
|
||||
concurrency: json['concurrency'] as int,
|
||||
queueSize: json['queue_size'] as int,
|
||||
timeoutMs: json['timeout_ms'] as int,
|
||||
@ -370,8 +356,7 @@ _$VeilidConfigRPCImpl _$$VeilidConfigRPCImplFromJson(
|
||||
maxTimestampAheadMs: json['max_timestamp_ahead_ms'] as int?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigRPCImplToJson(
|
||||
_$VeilidConfigRPCImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigRPCToJson(_$_VeilidConfigRPC instance) =>
|
||||
<String, dynamic>{
|
||||
'concurrency': instance.concurrency,
|
||||
'queue_size': instance.queueSize,
|
||||
@ -382,9 +367,9 @@ Map<String, dynamic> _$$VeilidConfigRPCImplToJson(
|
||||
'max_timestamp_ahead_ms': instance.maxTimestampAheadMs,
|
||||
};
|
||||
|
||||
_$VeilidConfigRoutingTableImpl _$$VeilidConfigRoutingTableImplFromJson(
|
||||
_$_VeilidConfigRoutingTable _$$_VeilidConfigRoutingTableFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigRoutingTableImpl(
|
||||
_$_VeilidConfigRoutingTable(
|
||||
nodeId: (json['node_id'] as List<dynamic>)
|
||||
.map(Typed<FixedEncodedString43>.fromJson)
|
||||
.toList(),
|
||||
@ -400,8 +385,8 @@ _$VeilidConfigRoutingTableImpl _$$VeilidConfigRoutingTableImplFromJson(
|
||||
limitAttachedWeak: json['limit_attached_weak'] as int,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigRoutingTableImplToJson(
|
||||
_$VeilidConfigRoutingTableImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigRoutingTableToJson(
|
||||
_$_VeilidConfigRoutingTable instance) =>
|
||||
<String, dynamic>{
|
||||
'node_id': instance.nodeId.map((e) => e.toJson()).toList(),
|
||||
'node_id_secret': instance.nodeIdSecret.map((e) => e.toJson()).toList(),
|
||||
@ -413,9 +398,9 @@ Map<String, dynamic> _$$VeilidConfigRoutingTableImplToJson(
|
||||
'limit_attached_weak': instance.limitAttachedWeak,
|
||||
};
|
||||
|
||||
_$VeilidConfigNetworkImpl _$$VeilidConfigNetworkImplFromJson(
|
||||
_$_VeilidConfigNetwork _$$_VeilidConfigNetworkFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigNetworkImpl(
|
||||
_$_VeilidConfigNetwork(
|
||||
connectionInitialTimeoutMs: json['connection_initial_timeout_ms'] as int,
|
||||
connectionInactivityTimeoutMs:
|
||||
json['connection_inactivity_timeout_ms'] as int,
|
||||
@ -441,8 +426,8 @@ _$VeilidConfigNetworkImpl _$$VeilidConfigNetworkImplFromJson(
|
||||
networkKeyPassword: json['network_key_password'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigNetworkImplToJson(
|
||||
_$VeilidConfigNetworkImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigNetworkToJson(
|
||||
_$_VeilidConfigNetwork instance) =>
|
||||
<String, dynamic>{
|
||||
'connection_initial_timeout_ms': instance.connectionInitialTimeoutMs,
|
||||
'connection_inactivity_timeout_ms':
|
||||
@ -468,37 +453,37 @@ Map<String, dynamic> _$$VeilidConfigNetworkImplToJson(
|
||||
'network_key_password': instance.networkKeyPassword,
|
||||
};
|
||||
|
||||
_$VeilidConfigTableStoreImpl _$$VeilidConfigTableStoreImplFromJson(
|
||||
_$_VeilidConfigTableStore _$$_VeilidConfigTableStoreFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigTableStoreImpl(
|
||||
_$_VeilidConfigTableStore(
|
||||
directory: json['directory'] as String,
|
||||
delete: json['delete'] as bool,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigTableStoreImplToJson(
|
||||
_$VeilidConfigTableStoreImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigTableStoreToJson(
|
||||
_$_VeilidConfigTableStore instance) =>
|
||||
<String, dynamic>{
|
||||
'directory': instance.directory,
|
||||
'delete': instance.delete,
|
||||
};
|
||||
|
||||
_$VeilidConfigBlockStoreImpl _$$VeilidConfigBlockStoreImplFromJson(
|
||||
_$_VeilidConfigBlockStore _$$_VeilidConfigBlockStoreFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigBlockStoreImpl(
|
||||
_$_VeilidConfigBlockStore(
|
||||
directory: json['directory'] as String,
|
||||
delete: json['delete'] as bool,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigBlockStoreImplToJson(
|
||||
_$VeilidConfigBlockStoreImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigBlockStoreToJson(
|
||||
_$_VeilidConfigBlockStore instance) =>
|
||||
<String, dynamic>{
|
||||
'directory': instance.directory,
|
||||
'delete': instance.delete,
|
||||
};
|
||||
|
||||
_$VeilidConfigProtectedStoreImpl _$$VeilidConfigProtectedStoreImplFromJson(
|
||||
_$_VeilidConfigProtectedStore _$$_VeilidConfigProtectedStoreFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigProtectedStoreImpl(
|
||||
_$_VeilidConfigProtectedStore(
|
||||
allowInsecureFallback: json['allow_insecure_fallback'] as bool,
|
||||
alwaysUseInsecureStorage: json['always_use_insecure_storage'] as bool,
|
||||
directory: json['directory'] as String,
|
||||
@ -509,8 +494,8 @@ _$VeilidConfigProtectedStoreImpl _$$VeilidConfigProtectedStoreImplFromJson(
|
||||
json['new_device_encryption_key_password'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigProtectedStoreImplToJson(
|
||||
_$VeilidConfigProtectedStoreImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigProtectedStoreToJson(
|
||||
_$_VeilidConfigProtectedStore instance) =>
|
||||
<String, dynamic>{
|
||||
'allow_insecure_fallback': instance.allowInsecureFallback,
|
||||
'always_use_insecure_storage': instance.alwaysUseInsecureStorage,
|
||||
@ -521,21 +506,21 @@ Map<String, dynamic> _$$VeilidConfigProtectedStoreImplToJson(
|
||||
instance.newDeviceEncryptionKeyPassword,
|
||||
};
|
||||
|
||||
_$VeilidConfigCapabilitiesImpl _$$VeilidConfigCapabilitiesImplFromJson(
|
||||
_$_VeilidConfigCapabilities _$$_VeilidConfigCapabilitiesFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidConfigCapabilitiesImpl(
|
||||
_$_VeilidConfigCapabilities(
|
||||
disable:
|
||||
(json['disable'] as List<dynamic>).map((e) => e as String).toList(),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigCapabilitiesImplToJson(
|
||||
_$VeilidConfigCapabilitiesImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigCapabilitiesToJson(
|
||||
_$_VeilidConfigCapabilities instance) =>
|
||||
<String, dynamic>{
|
||||
'disable': instance.disable,
|
||||
};
|
||||
|
||||
_$VeilidConfigImpl _$$VeilidConfigImplFromJson(Map<String, dynamic> json) =>
|
||||
_$VeilidConfigImpl(
|
||||
_$_VeilidConfig _$$_VeilidConfigFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidConfig(
|
||||
programName: json['program_name'] as String,
|
||||
namespace: json['namespace'] as String,
|
||||
capabilities: VeilidConfigCapabilities.fromJson(json['capabilities']),
|
||||
@ -546,7 +531,7 @@ _$VeilidConfigImpl _$$VeilidConfigImplFromJson(Map<String, dynamic> json) =>
|
||||
network: VeilidConfigNetwork.fromJson(json['network']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidConfigImplToJson(_$VeilidConfigImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidConfigToJson(_$_VeilidConfig instance) =>
|
||||
<String, dynamic>{
|
||||
'program_name': instance.programName,
|
||||
'namespace': instance.namespace,
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -6,29 +6,29 @@ part of 'veilid_state.dart';
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
_$LatencyStatsImpl _$$LatencyStatsImplFromJson(Map<String, dynamic> json) =>
|
||||
_$LatencyStatsImpl(
|
||||
_$_LatencyStats _$$_LatencyStatsFromJson(Map<String, dynamic> json) =>
|
||||
_$_LatencyStats(
|
||||
fastest: TimestampDuration.fromJson(json['fastest']),
|
||||
average: TimestampDuration.fromJson(json['average']),
|
||||
slowest: TimestampDuration.fromJson(json['slowest']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$LatencyStatsImplToJson(_$LatencyStatsImpl instance) =>
|
||||
Map<String, dynamic> _$$_LatencyStatsToJson(_$_LatencyStats instance) =>
|
||||
<String, dynamic>{
|
||||
'fastest': instance.fastest.toJson(),
|
||||
'average': instance.average.toJson(),
|
||||
'slowest': instance.slowest.toJson(),
|
||||
};
|
||||
|
||||
_$TransferStatsImpl _$$TransferStatsImplFromJson(Map<String, dynamic> json) =>
|
||||
_$TransferStatsImpl(
|
||||
_$_TransferStats _$$_TransferStatsFromJson(Map<String, dynamic> json) =>
|
||||
_$_TransferStats(
|
||||
total: BigInt.parse(json['total'] as String),
|
||||
maximum: BigInt.parse(json['maximum'] as String),
|
||||
average: BigInt.parse(json['average'] as String),
|
||||
minimum: BigInt.parse(json['minimum'] as String),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$TransferStatsImplToJson(_$TransferStatsImpl instance) =>
|
||||
Map<String, dynamic> _$$_TransferStatsToJson(_$_TransferStats instance) =>
|
||||
<String, dynamic>{
|
||||
'total': instance.total.toString(),
|
||||
'maximum': instance.maximum.toString(),
|
||||
@ -36,22 +36,21 @@ Map<String, dynamic> _$$TransferStatsImplToJson(_$TransferStatsImpl instance) =>
|
||||
'minimum': instance.minimum.toString(),
|
||||
};
|
||||
|
||||
_$TransferStatsDownUpImpl _$$TransferStatsDownUpImplFromJson(
|
||||
_$_TransferStatsDownUp _$$_TransferStatsDownUpFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$TransferStatsDownUpImpl(
|
||||
_$_TransferStatsDownUp(
|
||||
down: TransferStats.fromJson(json['down']),
|
||||
up: TransferStats.fromJson(json['up']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$TransferStatsDownUpImplToJson(
|
||||
_$TransferStatsDownUpImpl instance) =>
|
||||
Map<String, dynamic> _$$_TransferStatsDownUpToJson(
|
||||
_$_TransferStatsDownUp instance) =>
|
||||
<String, dynamic>{
|
||||
'down': instance.down.toJson(),
|
||||
'up': instance.up.toJson(),
|
||||
};
|
||||
|
||||
_$RPCStatsImpl _$$RPCStatsImplFromJson(Map<String, dynamic> json) =>
|
||||
_$RPCStatsImpl(
|
||||
_$_RPCStats _$$_RPCStatsFromJson(Map<String, dynamic> json) => _$_RPCStats(
|
||||
messagesSent: json['messages_sent'] as int,
|
||||
messagesRcvd: json['messages_rcvd'] as int,
|
||||
questionsInFlight: json['questions_in_flight'] as int,
|
||||
@ -68,7 +67,7 @@ _$RPCStatsImpl _$$RPCStatsImplFromJson(Map<String, dynamic> json) =>
|
||||
failedToSend: json['failed_to_send'] as int,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$RPCStatsImplToJson(_$RPCStatsImpl instance) =>
|
||||
Map<String, dynamic> _$$_RPCStatsToJson(_$_RPCStats instance) =>
|
||||
<String, dynamic>{
|
||||
'messages_sent': instance.messagesSent,
|
||||
'messages_rcvd': instance.messagesRcvd,
|
||||
@ -80,8 +79,7 @@ Map<String, dynamic> _$$RPCStatsImplToJson(_$RPCStatsImpl instance) =>
|
||||
'failed_to_send': instance.failedToSend,
|
||||
};
|
||||
|
||||
_$PeerStatsImpl _$$PeerStatsImplFromJson(Map<String, dynamic> json) =>
|
||||
_$PeerStatsImpl(
|
||||
_$_PeerStats _$$_PeerStatsFromJson(Map<String, dynamic> json) => _$_PeerStats(
|
||||
timeAdded: Timestamp.fromJson(json['time_added']),
|
||||
rpcStats: RPCStats.fromJson(json['rpc_stats']),
|
||||
transfer: TransferStatsDownUp.fromJson(json['transfer']),
|
||||
@ -90,7 +88,7 @@ _$PeerStatsImpl _$$PeerStatsImplFromJson(Map<String, dynamic> json) =>
|
||||
: LatencyStats.fromJson(json['latency']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$PeerStatsImplToJson(_$PeerStatsImpl instance) =>
|
||||
Map<String, dynamic> _$$_PeerStatsToJson(_$_PeerStats instance) =>
|
||||
<String, dynamic>{
|
||||
'time_added': instance.timeAdded.toJson(),
|
||||
'rpc_stats': instance.rpcStats.toJson(),
|
||||
@ -98,8 +96,8 @@ Map<String, dynamic> _$$PeerStatsImplToJson(_$PeerStatsImpl instance) =>
|
||||
'latency': instance.latency?.toJson(),
|
||||
};
|
||||
|
||||
_$PeerTableDataImpl _$$PeerTableDataImplFromJson(Map<String, dynamic> json) =>
|
||||
_$PeerTableDataImpl(
|
||||
_$_PeerTableData _$$_PeerTableDataFromJson(Map<String, dynamic> json) =>
|
||||
_$_PeerTableData(
|
||||
nodeIds: (json['node_ids'] as List<dynamic>)
|
||||
.map(Typed<FixedEncodedString43>.fromJson)
|
||||
.toList(),
|
||||
@ -107,22 +105,21 @@ _$PeerTableDataImpl _$$PeerTableDataImplFromJson(Map<String, dynamic> json) =>
|
||||
peerStats: PeerStats.fromJson(json['peer_stats']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$PeerTableDataImplToJson(_$PeerTableDataImpl instance) =>
|
||||
Map<String, dynamic> _$$_PeerTableDataToJson(_$_PeerTableData instance) =>
|
||||
<String, dynamic>{
|
||||
'node_ids': instance.nodeIds.map((e) => e.toJson()).toList(),
|
||||
'peer_address': instance.peerAddress,
|
||||
'peer_stats': instance.peerStats.toJson(),
|
||||
};
|
||||
|
||||
_$VeilidLogImpl _$$VeilidLogImplFromJson(Map<String, dynamic> json) =>
|
||||
_$VeilidLogImpl(
|
||||
_$VeilidLog _$$VeilidLogFromJson(Map<String, dynamic> json) => _$VeilidLog(
|
||||
logLevel: VeilidLogLevel.fromJson(json['log_level']),
|
||||
message: json['message'] as String,
|
||||
backtrace: json['backtrace'] as String?,
|
||||
$type: json['kind'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidLogImplToJson(_$VeilidLogImpl instance) =>
|
||||
Map<String, dynamic> _$$VeilidLogToJson(_$VeilidLog instance) =>
|
||||
<String, dynamic>{
|
||||
'log_level': instance.logLevel.toJson(),
|
||||
'message': instance.message,
|
||||
@ -130,9 +127,8 @@ Map<String, dynamic> _$$VeilidLogImplToJson(_$VeilidLogImpl instance) =>
|
||||
'kind': instance.$type,
|
||||
};
|
||||
|
||||
_$VeilidAppMessageImpl _$$VeilidAppMessageImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidAppMessageImpl(
|
||||
_$VeilidAppMessage _$$VeilidAppMessageFromJson(Map<String, dynamic> json) =>
|
||||
_$VeilidAppMessage(
|
||||
message: const Uint8ListJsonConverter().fromJson(json['message']),
|
||||
sender: json['sender'] == null
|
||||
? null
|
||||
@ -140,16 +136,15 @@ _$VeilidAppMessageImpl _$$VeilidAppMessageImplFromJson(
|
||||
$type: json['kind'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidAppMessageImplToJson(
|
||||
_$VeilidAppMessageImpl instance) =>
|
||||
Map<String, dynamic> _$$VeilidAppMessageToJson(_$VeilidAppMessage instance) =>
|
||||
<String, dynamic>{
|
||||
'message': const Uint8ListJsonConverter().toJson(instance.message),
|
||||
'sender': instance.sender?.toJson(),
|
||||
'kind': instance.$type,
|
||||
};
|
||||
|
||||
_$VeilidAppCallImpl _$$VeilidAppCallImplFromJson(Map<String, dynamic> json) =>
|
||||
_$VeilidAppCallImpl(
|
||||
_$VeilidAppCall _$$VeilidAppCallFromJson(Map<String, dynamic> json) =>
|
||||
_$VeilidAppCall(
|
||||
message: const Uint8ListJsonConverter().fromJson(json['message']),
|
||||
callId: json['call_id'] as String,
|
||||
sender: json['sender'] == null
|
||||
@ -158,7 +153,7 @@ _$VeilidAppCallImpl _$$VeilidAppCallImplFromJson(Map<String, dynamic> json) =>
|
||||
$type: json['kind'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidAppCallImplToJson(_$VeilidAppCallImpl instance) =>
|
||||
Map<String, dynamic> _$$VeilidAppCallToJson(_$VeilidAppCall instance) =>
|
||||
<String, dynamic>{
|
||||
'message': const Uint8ListJsonConverter().toJson(instance.message),
|
||||
'call_id': instance.callId,
|
||||
@ -166,17 +161,17 @@ Map<String, dynamic> _$$VeilidAppCallImplToJson(_$VeilidAppCallImpl instance) =>
|
||||
'kind': instance.$type,
|
||||
};
|
||||
|
||||
_$VeilidUpdateAttachmentImpl _$$VeilidUpdateAttachmentImplFromJson(
|
||||
_$VeilidUpdateAttachment _$$VeilidUpdateAttachmentFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidUpdateAttachmentImpl(
|
||||
_$VeilidUpdateAttachment(
|
||||
state: AttachmentState.fromJson(json['state']),
|
||||
publicInternetReady: json['public_internet_ready'] as bool,
|
||||
localNetworkReady: json['local_network_ready'] as bool,
|
||||
$type: json['kind'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidUpdateAttachmentImplToJson(
|
||||
_$VeilidUpdateAttachmentImpl instance) =>
|
||||
Map<String, dynamic> _$$VeilidUpdateAttachmentToJson(
|
||||
_$VeilidUpdateAttachment instance) =>
|
||||
<String, dynamic>{
|
||||
'state': instance.state.toJson(),
|
||||
'public_internet_ready': instance.publicInternetReady,
|
||||
@ -184,9 +179,9 @@ Map<String, dynamic> _$$VeilidUpdateAttachmentImplToJson(
|
||||
'kind': instance.$type,
|
||||
};
|
||||
|
||||
_$VeilidUpdateNetworkImpl _$$VeilidUpdateNetworkImplFromJson(
|
||||
_$VeilidUpdateNetwork _$$VeilidUpdateNetworkFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidUpdateNetworkImpl(
|
||||
_$VeilidUpdateNetwork(
|
||||
started: json['started'] as bool,
|
||||
bpsDown: BigInt.parse(json['bps_down'] as String),
|
||||
bpsUp: BigInt.parse(json['bps_up'] as String),
|
||||
@ -195,8 +190,8 @@ _$VeilidUpdateNetworkImpl _$$VeilidUpdateNetworkImplFromJson(
|
||||
$type: json['kind'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidUpdateNetworkImplToJson(
|
||||
_$VeilidUpdateNetworkImpl instance) =>
|
||||
Map<String, dynamic> _$$VeilidUpdateNetworkToJson(
|
||||
_$VeilidUpdateNetwork instance) =>
|
||||
<String, dynamic>{
|
||||
'started': instance.started,
|
||||
'bps_down': instance.bpsDown.toString(),
|
||||
@ -205,23 +200,22 @@ Map<String, dynamic> _$$VeilidUpdateNetworkImplToJson(
|
||||
'kind': instance.$type,
|
||||
};
|
||||
|
||||
_$VeilidUpdateConfigImpl _$$VeilidUpdateConfigImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidUpdateConfigImpl(
|
||||
_$VeilidUpdateConfig _$$VeilidUpdateConfigFromJson(Map<String, dynamic> json) =>
|
||||
_$VeilidUpdateConfig(
|
||||
config: VeilidConfig.fromJson(json['config']),
|
||||
$type: json['kind'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidUpdateConfigImplToJson(
|
||||
_$VeilidUpdateConfigImpl instance) =>
|
||||
Map<String, dynamic> _$$VeilidUpdateConfigToJson(
|
||||
_$VeilidUpdateConfig instance) =>
|
||||
<String, dynamic>{
|
||||
'config': instance.config.toJson(),
|
||||
'kind': instance.$type,
|
||||
};
|
||||
|
||||
_$VeilidUpdateRouteChangeImpl _$$VeilidUpdateRouteChangeImplFromJson(
|
||||
_$VeilidUpdateRouteChange _$$VeilidUpdateRouteChangeFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidUpdateRouteChangeImpl(
|
||||
_$VeilidUpdateRouteChange(
|
||||
deadRoutes: (json['dead_routes'] as List<dynamic>)
|
||||
.map((e) => e as String)
|
||||
.toList(),
|
||||
@ -231,17 +225,17 @@ _$VeilidUpdateRouteChangeImpl _$$VeilidUpdateRouteChangeImplFromJson(
|
||||
$type: json['kind'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidUpdateRouteChangeImplToJson(
|
||||
_$VeilidUpdateRouteChangeImpl instance) =>
|
||||
Map<String, dynamic> _$$VeilidUpdateRouteChangeToJson(
|
||||
_$VeilidUpdateRouteChange instance) =>
|
||||
<String, dynamic>{
|
||||
'dead_routes': instance.deadRoutes,
|
||||
'dead_remote_routes': instance.deadRemoteRoutes,
|
||||
'kind': instance.$type,
|
||||
};
|
||||
|
||||
_$VeilidUpdateValueChangeImpl _$$VeilidUpdateValueChangeImplFromJson(
|
||||
_$VeilidUpdateValueChange _$$VeilidUpdateValueChangeFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidUpdateValueChangeImpl(
|
||||
_$VeilidUpdateValueChange(
|
||||
key: Typed<FixedEncodedString43>.fromJson(json['key']),
|
||||
subkeys: (json['subkeys'] as List<dynamic>)
|
||||
.map(ValueSubkeyRange.fromJson)
|
||||
@ -251,8 +245,8 @@ _$VeilidUpdateValueChangeImpl _$$VeilidUpdateValueChangeImplFromJson(
|
||||
$type: json['kind'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidUpdateValueChangeImplToJson(
|
||||
_$VeilidUpdateValueChangeImpl instance) =>
|
||||
Map<String, dynamic> _$$VeilidUpdateValueChangeToJson(
|
||||
_$VeilidUpdateValueChange instance) =>
|
||||
<String, dynamic>{
|
||||
'key': instance.key.toJson(),
|
||||
'subkeys': instance.subkeys.map((e) => e.toJson()).toList(),
|
||||
@ -261,25 +255,25 @@ Map<String, dynamic> _$$VeilidUpdateValueChangeImplToJson(
|
||||
'kind': instance.$type,
|
||||
};
|
||||
|
||||
_$VeilidStateAttachmentImpl _$$VeilidStateAttachmentImplFromJson(
|
||||
_$_VeilidStateAttachment _$$_VeilidStateAttachmentFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidStateAttachmentImpl(
|
||||
_$_VeilidStateAttachment(
|
||||
state: AttachmentState.fromJson(json['state']),
|
||||
publicInternetReady: json['public_internet_ready'] as bool,
|
||||
localNetworkReady: json['local_network_ready'] as bool,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidStateAttachmentImplToJson(
|
||||
_$VeilidStateAttachmentImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidStateAttachmentToJson(
|
||||
_$_VeilidStateAttachment instance) =>
|
||||
<String, dynamic>{
|
||||
'state': instance.state.toJson(),
|
||||
'public_internet_ready': instance.publicInternetReady,
|
||||
'local_network_ready': instance.localNetworkReady,
|
||||
};
|
||||
|
||||
_$VeilidStateNetworkImpl _$$VeilidStateNetworkImplFromJson(
|
||||
_$_VeilidStateNetwork _$$_VeilidStateNetworkFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidStateNetworkImpl(
|
||||
_$_VeilidStateNetwork(
|
||||
started: json['started'] as bool,
|
||||
bpsDown: BigInt.parse(json['bps_down'] as String),
|
||||
bpsUp: BigInt.parse(json['bps_up'] as String),
|
||||
@ -287,8 +281,8 @@ _$VeilidStateNetworkImpl _$$VeilidStateNetworkImplFromJson(
|
||||
(json['peers'] as List<dynamic>).map(PeerTableData.fromJson).toList(),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidStateNetworkImplToJson(
|
||||
_$VeilidStateNetworkImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidStateNetworkToJson(
|
||||
_$_VeilidStateNetwork instance) =>
|
||||
<String, dynamic>{
|
||||
'started': instance.started,
|
||||
'bps_down': instance.bpsDown.toString(),
|
||||
@ -296,26 +290,25 @@ Map<String, dynamic> _$$VeilidStateNetworkImplToJson(
|
||||
'peers': instance.peers.map((e) => e.toJson()).toList(),
|
||||
};
|
||||
|
||||
_$VeilidStateConfigImpl _$$VeilidStateConfigImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$VeilidStateConfigImpl(
|
||||
_$_VeilidStateConfig _$$_VeilidStateConfigFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidStateConfig(
|
||||
config: VeilidConfig.fromJson(json['config']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidStateConfigImplToJson(
|
||||
_$VeilidStateConfigImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidStateConfigToJson(
|
||||
_$_VeilidStateConfig instance) =>
|
||||
<String, dynamic>{
|
||||
'config': instance.config.toJson(),
|
||||
};
|
||||
|
||||
_$VeilidStateImpl _$$VeilidStateImplFromJson(Map<String, dynamic> json) =>
|
||||
_$VeilidStateImpl(
|
||||
_$_VeilidState _$$_VeilidStateFromJson(Map<String, dynamic> json) =>
|
||||
_$_VeilidState(
|
||||
attachment: VeilidStateAttachment.fromJson(json['attachment']),
|
||||
network: VeilidStateNetwork.fromJson(json['network']),
|
||||
config: VeilidStateConfig.fromJson(json['config']),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$VeilidStateImplToJson(_$VeilidStateImpl instance) =>
|
||||
Map<String, dynamic> _$$_VeilidStateToJson(_$_VeilidState instance) =>
|
||||
<String, dynamic>{
|
||||
'attachment': instance.attachment.toJson(),
|
||||
'network': instance.network.toJson(),
|
||||
|
@ -112,8 +112,7 @@ class VeilidConfigDHT(ConfigBase):
|
||||
remote_max_storage_space_mb: int
|
||||
public_watch_limit: int
|
||||
member_watch_limit: int
|
||||
|
||||
|
||||
max_watch_expiration_ms: int
|
||||
|
||||
@dataclass
|
||||
class VeilidConfigTLS(ConfigBase):
|
||||
|
@ -111,6 +111,7 @@ core:
|
||||
remote_max_storage_space_mb: 0
|
||||
public_watch_limit: 32
|
||||
member_watch_limit: 8
|
||||
max_watch_expiration_ms: 600000
|
||||
upnp: true
|
||||
detect_address_changes: true
|
||||
restricted_nat_retries: 0
|
||||
@ -566,6 +567,7 @@ pub struct Dht {
|
||||
pub remote_max_storage_space_mb: u32,
|
||||
pub public_watch_limit: u32,
|
||||
pub member_watch_limit: u32,
|
||||
pub max_watch_expiration_ms: u32,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
@ -954,6 +956,7 @@ impl Settings {
|
||||
set_config_value!(inner.core.network.dht.remote_max_storage_space_mb, value);
|
||||
set_config_value!(inner.core.network.dht.public_watch_limit, value);
|
||||
set_config_value!(inner.core.network.dht.member_watch_limit, value);
|
||||
set_config_value!(inner.core.network.dht.max_watch_expiration_ms, value);
|
||||
set_config_value!(inner.core.network.upnp, value);
|
||||
set_config_value!(inner.core.network.detect_address_changes, value);
|
||||
set_config_value!(inner.core.network.restricted_nat_retries, value);
|
||||
@ -1201,6 +1204,9 @@ impl Settings {
|
||||
"network.dht.member_watch_limit" => {
|
||||
Ok(Box::new(inner.core.network.dht.member_watch_limit))
|
||||
}
|
||||
"network.dht.max_watch_expiration_ms" => {
|
||||
Ok(Box::new(inner.core.network.dht.max_watch_expiration_ms))
|
||||
}
|
||||
"network.upnp" => Ok(Box::new(inner.core.network.upnp)),
|
||||
"network.detect_address_changes" => {
|
||||
Ok(Box::new(inner.core.network.detect_address_changes))
|
||||
@ -1526,6 +1532,9 @@ mod tests {
|
||||
s.core.network.dht.validate_dial_info_receipt_time_ms,
|
||||
2_000u32
|
||||
);
|
||||
assert_eq!(s.core.network.dht.public_watch_limit, 32u32);
|
||||
assert_eq!(s.core.network.dht.member_watch_limit, 8u32);
|
||||
assert_eq!(s.core.network.dht.max_watch_expiration_ms, 600_000u32);
|
||||
//
|
||||
assert!(s.core.network.upnp);
|
||||
assert!(s.core.network.detect_address_changes);
|
||||
|
Loading…
Reference in New Issue
Block a user