more watchvalue

This commit is contained in:
Christien Rioux 2023-11-25 15:59:43 -08:00
parent 7917dadd30
commit 9b8420d288
23 changed files with 1693 additions and 1530 deletions

View File

@ -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(())
}

View File

@ -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)?)

View File

@ -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 {

View File

@ -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

View File

@ -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,
}

View File

@ -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
}

View File

@ -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)
}

View File

@ -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),

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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"

View File

@ -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,

View File

@ -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;
}

View File

@ -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),

View File

@ -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

View File

@ -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

View File

@ -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(),

View File

@ -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):

View File

@ -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);