From a8fb02f58d7f42b52e7ebc3fb093f48cd9bbf37b Mon Sep 17 00:00:00 2001 From: ramfox Date: Fri, 2 Aug 2024 13:28:01 +0000 Subject: [PATCH] deploy: 09154a9824ba1bcefd33721c6970c9dd206a2564 --- pr/2574/docs/help.html | 2 +- pr/2574/docs/iroh/all.html | 2 +- pr/2574/docs/iroh/base/hash/struct.Hash.html | 4 +- .../iroh/base/hash/struct.HashAndFormat.html | 2 +- .../iroh/base/key/enum.KeyParsingError.html | 2 +- .../docs/iroh/base/key/struct.PublicKey.html | 4 +- .../iroh/base/node_addr/struct.RelayUrl.html | 3 +- .../docs/iroh/base/rpc/struct.RpcError.html | 2 +- pr/2574/docs/iroh/base/ticket/enum.Error.html | 2 +- .../iroh/blobs/constant.IROH_BLOCK_SIZE.html | 2 +- .../blobs/downloader/enum.DownloadError.html | 4 +- .../blobs/downloader/enum.FailureAction.html | 4 +- pr/2574/docs/iroh/blobs/downloader/index.html | 2 +- .../downloader/struct.ConcurrencyLimits.html | 4 +- .../downloader/struct.DownloadHandle.html | 4 +- .../blobs/downloader/struct.DownloadKind.html | 14 +- .../downloader/struct.DownloadRequest.html | 10 +- .../blobs/downloader/struct.Downloader.html | 14 +- .../blobs/downloader/struct.IntentId.html | 13 +- .../blobs/downloader/struct.RetryConfig.html | 4 +- .../iroh/blobs/downloader/trait.Dialer.html | 12 +- .../iroh/blobs/downloader/trait.Getter.html | 6 +- .../blobs/export/enum.ExportProgress.html | 6 +- pr/2574/docs/iroh/blobs/export/fn.export.html | 2 +- .../iroh/blobs/export/fn.export_blob.html | 2 +- .../blobs/export/fn.export_collection.html | 2 +- pr/2574/docs/iroh/blobs/export/index.html | 2 +- .../iroh/blobs/format/collection/index.html | 2 +- .../format/collection/struct.Collection.html | 40 +-- .../format/collection/trait.SimpleStore.html | 4 +- pr/2574/docs/iroh/blobs/format/index.html | 2 +- .../docs/iroh/blobs/get/db/enum.BlobId.html | 16 +- .../docs/iroh/blobs/get/db/enum.BlobInfo.html | 16 +- .../blobs/get/db/enum.DownloadProgress.html | 6 +- .../docs/iroh/blobs/get/db/fn.blob_info.html | 2 +- .../docs/iroh/blobs/get/db/fn.get_to_db.html | 2 +- .../iroh/blobs/get/db/fn.valid_ranges.html | 2 +- pr/2574/docs/iroh/blobs/get/db/index.html | 2 +- .../iroh/blobs/get/enum.GetResponseError.html | 4 +- .../iroh/blobs/get/error/enum.GetError.html | 4 +- pr/2574/docs/iroh/blobs/get/error/index.html | 2 +- .../get/fsm/enum.AtBlobHeaderNextError.html | 4 +- .../blobs/get/fsm/enum.BlobContentNext.html | 6 +- .../blobs/get/fsm/enum.ConnectedNext.html | 4 +- .../get/fsm/enum.ConnectedNextError.html | 4 +- .../iroh/blobs/get/fsm/enum.DecodeError.html | 4 +- .../iroh/blobs/get/fsm/enum.EndBlobNext.html | 4 +- pr/2574/docs/iroh/blobs/get/fsm/fn.start.html | 2 +- pr/2574/docs/iroh/blobs/get/fsm/index.html | 2 +- .../blobs/get/fsm/struct.AtBlobContent.html | 24 +- .../blobs/get/fsm/struct.AtBlobHeader.html | 22 +- .../iroh/blobs/get/fsm/struct.AtClosing.html | 6 +- .../blobs/get/fsm/struct.AtConnected.html | 6 +- .../iroh/blobs/get/fsm/struct.AtEndBlob.html | 6 +- .../iroh/blobs/get/fsm/struct.AtInitial.html | 8 +- .../blobs/get/fsm/struct.AtStartChild.html | 12 +- .../blobs/get/fsm/struct.AtStartRoot.html | 12 +- pr/2574/docs/iroh/blobs/get/index.html | 2 +- .../blobs/get/progress/enum.BlobProgress.html | 10 +- .../docs/iroh/blobs/get/progress/index.html | 2 +- .../blobs/get/progress/struct.BlobState.html | 12 +- .../get/progress/struct.TransferState.html | 20 +- .../blobs/get/progress/type.ProgressId.html | 2 +- .../blobs/get/request/fn.get_chunk_probe.html | 2 +- .../request/fn.get_hash_seq_and_sizes.html | 2 +- .../get/request/fn.get_unverified_size.html | 2 +- .../get/request/fn.get_verified_size.html | 2 +- .../request/fn.random_hash_seq_ranges.html | 2 +- .../docs/iroh/blobs/get/request/index.html | 2 +- pr/2574/docs/iroh/blobs/get/struct.Stats.html | 12 +- .../iroh/blobs/hashseq/fn.parse_hash_seq.html | 2 +- pr/2574/docs/iroh/blobs/hashseq/index.html | 2 +- .../iroh/blobs/hashseq/struct.HashSeq.html | 20 +- .../blobs/hashseq/struct.HashSeqIter.html | 4 +- .../blobs/hashseq/struct.HashSeqStream.html | 8 +- pr/2574/docs/iroh/blobs/index.html | 2 +- pr/2574/docs/iroh/blobs/metrics/index.html | 2 +- .../iroh/blobs/metrics/struct.Metrics.html | 4 +- .../iroh/blobs/protocol/constant.ALPN.html | 2 +- .../protocol/constant.MAX_MESSAGE_SIZE.html | 2 +- .../docs/iroh/blobs/protocol/enum.Closed.html | 10 +- .../iroh/blobs/protocol/enum.Request.html | 10 +- pr/2574/docs/iroh/blobs/protocol/index.html | 2 +- .../blobs/protocol/struct.GetRequest.html | 20 +- .../struct.NonEmptyRequestRangeSpecIter.html | 4 +- .../iroh/blobs/protocol/struct.RangeSpec.html | 24 +- .../blobs/protocol/struct.RangeSpecSeq.html | 28 +- .../protocol/struct.UnknownErrorCode.html | 4 +- .../iroh/blobs/provider/enum.AddProgress.html | 6 +- .../docs/iroh/blobs/provider/enum.Event.html | 4 +- .../iroh/blobs/provider/enum.SentStatus.html | 6 +- .../blobs/provider/fn.handle_connection.html | 2 +- .../iroh/blobs/provider/fn.handle_get.html | 2 +- .../iroh/blobs/provider/fn.read_request.html | 2 +- .../iroh/blobs/provider/fn.send_blob.html | 2 +- .../provider/fn.transfer_collection.html | 2 +- pr/2574/docs/iroh/blobs/provider/index.html | 2 +- .../blobs/provider/struct.ResponseWriter.html | 6 +- .../blobs/provider/struct.TransferStats.html | 4 +- .../blobs/provider/trait.EventSender.html | 4 +- .../store/bao_tree/blake3/struct.Hash.html | 2 +- .../store/bao_tree/io/enum.DecodeError.html | 2 +- .../io/fsm/trait.AsyncSliceWriter.html | 4 +- .../store/bao_tree/io/sync/trait.ReadAt.html | 2 +- .../store/bao_tree/io/sync/trait.Size.html | 2 +- .../store/bao_tree/io/sync/trait.WriteAt.html | 2 +- .../iroh/blobs/store/enum.BaoBlobSize.html | 14 +- .../store/enum.ConsistencyCheckProgress.html | 6 +- .../iroh/blobs/store/enum.EntryStatus.html | 6 +- pr/2574/docs/iroh/blobs/store/enum.Event.html | 6 +- .../iroh/blobs/store/enum.ExportFormat.html | 6 +- .../iroh/blobs/store/enum.ExportMode.html | 10 +- .../iroh/blobs/store/enum.ExportProgress.html | 4 +- .../iroh/blobs/store/enum.GcMarkEvent.html | 4 +- .../iroh/blobs/store/enum.GcSweepEvent.html | 4 +- .../iroh/blobs/store/enum.ImportMode.html | 6 +- .../iroh/blobs/store/enum.ImportProgress.html | 4 +- .../iroh/blobs/store/enum.ReportLevel.html | 14 +- .../blobs/store/enum.ValidateProgress.html | 6 +- pr/2574/docs/iroh/blobs/store/fs/index.html | 2 +- .../blobs/store/fs/struct.BatchOptions.html | 4 +- .../blobs/store/fs/struct.FlatStorePaths.html | 4 +- .../blobs/store/fs/struct.InlineOptions.html | 8 +- .../iroh/blobs/store/fs/struct.Options.html | 4 +- .../blobs/store/fs/struct.PathOptions.html | 4 +- .../iroh/blobs/store/fs/struct.Store.html | 54 ++-- .../docs/iroh/blobs/store/fs/type.Entry.html | 2 +- pr/2574/docs/iroh/blobs/store/index.html | 2 +- pr/2574/docs/iroh/blobs/store/mem/index.html | 2 +- .../iroh/blobs/store/mem/struct.Entry.html | 4 +- .../iroh/blobs/store/mem/struct.Store.html | 34 +-- .../iroh/blobs/store/readonly_mem/index.html | 2 +- .../store/readonly_mem/struct.Entry.html | 4 +- .../store/readonly_mem/struct.Store.html | 44 +-- .../blobs/store/trait.BaoBatchWriter.html | 12 +- pr/2574/docs/iroh/blobs/store/trait.Map.html | 8 +- .../docs/iroh/blobs/store/trait.MapEntry.html | 14 +- .../iroh/blobs/store/trait.MapEntryMut.html | 6 +- .../docs/iroh/blobs/store/trait.MapMut.html | 16 +- .../iroh/blobs/store/trait.ReadableStore.html | 16 +- .../docs/iroh/blobs/store/trait.Store.html | 30 +- .../docs/iroh/blobs/store/type.DbIter.html | 2 +- .../blobs/store/type.ExportProgressCb.html | 2 +- pr/2574/docs/iroh/blobs/struct.Hash.html | 4 +- .../docs/iroh/blobs/struct.HashAndFormat.html | 2 +- pr/2574/docs/iroh/blobs/struct.Tag.html | 24 +- pr/2574/docs/iroh/blobs/struct.TempTag.html | 16 +- .../docs/iroh/blobs/util/enum.MemOrFile.html | 26 +- .../iroh/blobs/util/enum.SetTagOption.html | 15 +- .../docs/iroh/blobs/util/fn.total_bytes.html | 2 +- pr/2574/docs/iroh/blobs/util/index.html | 2 +- pr/2574/docs/iroh/blobs/util/io/index.html | 2 +- .../blobs/util/io/struct.TrackingReader.html | 14 +- .../blobs/util/io/struct.TrackingWriter.html | 20 +- .../blobs/util/local_pool/enum.PanicMode.html | 6 +- .../util/local_pool/enum.SpawnError.html | 4 +- .../iroh/blobs/util/local_pool/index.html | 2 +- .../blobs/util/local_pool/struct.Config.html | 4 +- .../util/local_pool/struct.LocalPool.html | 28 +- .../local_pool/struct.LocalPoolHandle.html | 16 +- .../blobs/util/local_pool/struct.Run.html | 8 +- .../util/progress/enum.ProgressSendError.html | 4 +- .../docs/iroh/blobs/util/progress/index.html | 4 +- .../iroh/blobs/util/progress/sidebar-items.js | 2 +- .../struct.AsyncChannelProgressSender.html | 138 ++++++++++ .../progress/struct.BoxedProgressSender.html | 12 +- .../struct.FallibleProgressSliceWriter.html | 16 +- .../progress/struct.FlumeProgressSender.html | 20 +- .../progress/struct.IgnoreProgressSender.html | 10 +- .../progress/struct.ProgressSliceWriter.html | 16 +- .../util/progress/struct.WithFilterMap.html | 14 +- .../blobs/util/progress/struct.WithMap.html | 14 +- .../util/progress/trait.IdGenerator.html | 14 +- .../util/progress/trait.ProgressSender.html | 41 +-- .../progress/type.ProgressSendResult.html | 2 +- .../iroh/blobs/util/struct.SparseMemFile.html | 15 +- pr/2574/docs/iroh/blobs/util/struct.Tag.html | 24 +- .../docs/iroh/blobs/util/struct.TempTag.html | 16 +- .../iroh/blobs/util/trait.TagCounter.html | 10 +- .../docs/iroh/blobs/util/trait.TagDrop.html | 6 +- .../iroh/client/blobs/struct.AddProgress.html | 3 +- .../client/blobs/struct.DownloadProgress.html | 3 +- .../client/blobs/struct.ExportProgress.html | 3 +- .../docs/iroh/client/blobs/struct.Reader.html | 4 +- .../docs/iroh/client/docs/enum.ShareMode.html | 4 +- pr/2574/docs/iroh/client/type.RpcClient.html | 2 +- .../docs/iroh/docs/engine/struct.Engine.html | 7 +- pr/2574/docs/iroh/docs/enum.InsertError.html | 4 +- .../docs/iroh/docs/store/struct.Query.html | 2 +- .../iroh/docs/store/struct.QueryBuilder.html | 2 +- pr/2574/docs/iroh/docs/struct.Author.html | 2 +- pr/2574/docs/iroh/docs/struct.AuthorId.html | 2 +- .../iroh/docs/struct.AuthorPublicKey.html | 2 +- .../docs/iroh/docs/struct.NamespaceId.html | 4 +- .../iroh/docs/struct.NamespacePublicKey.html | 2 +- .../iroh/docs/struct.NamespaceSecret.html | 2 +- pr/2574/docs/iroh/docs/struct.Replica.html | 1 - .../docs/iroh/docs/struct.ReplicaInfo.html | 5 +- .../docs/iroh/docs/sync/enum.InsertError.html | 4 +- .../docs/iroh/docs/sync/struct.Replica.html | 1 - .../iroh/docs/sync/struct.ReplicaInfo.html | 5 +- .../docs/iroh/gossip/proto/enum.Command.html | 3 +- .../docs/iroh/gossip/proto/enum.Event.html | 2 +- .../gossip/proto/state/struct.TopicId.html | 2 +- .../iroh/gossip/proto/struct.TopicId.html | 2 +- .../iroh/gossip/proto/topic/enum.Command.html | 3 +- .../iroh/gossip/proto/topic/enum.Event.html | 2 +- .../gossip/proto/topic/enum.OutEvent.html | 2 +- .../iroh/gossip/proto/topic/enum.Timer.html | 2 +- .../docs/iroh/net/dialer/struct.Dialer.html | 2 +- .../pkarr/struct.PkarrPublisher.html | 5 +- .../discovery/pkarr/struct.PkarrResolver.html | 3 +- .../net/dns/node_info/struct.NodeInfo.html | 4 +- .../net/dns/node_info/struct.TxtAttrs.html | 2 +- .../net/endpoint/enum.ConnectionError.html | 2 +- .../iroh/net/endpoint/enum.ReadError.html | 2 +- .../iroh/net/endpoint/enum.WriteError.html | 2 +- .../net/endpoint/fn.default_relay_mode.html | 2 +- .../net/endpoint/fn.get_remote_node_id.html | 2 +- .../docs/iroh/net/endpoint/struct.Accept.html | 4 +- .../iroh/net/endpoint/struct.Builder.html | 12 +- .../iroh/net/endpoint/struct.Connecting.html | 18 +- .../iroh/net/endpoint/struct.Endpoint.html | 7 +- .../docs/iroh/net/endpoint/struct.VarInt.html | 4 +- .../iroh/net/key/enum.KeyParsingError.html | 2 +- .../docs/iroh/net/key/struct.PublicKey.html | 4 +- .../docs/iroh/net/ping/enum.PingError.html | 2 +- .../net/portmapper/struct.ProbeOutput.html | 3 +- .../iroh/net/relay/enum.HttpClientError.html | 2 +- .../iroh/net/relay/enum.ReceivedMessage.html | 6 +- .../net/relay/server/enum.CertConfig.html | 4 +- .../net/relay/struct.HttpClientBuilder.html | 7 +- .../docs/iroh/net/relay/struct.RelayUrl.html | 3 +- pr/2574/docs/iroh/net/struct.Endpoint.html | 7 +- .../iroh/net/util/struct.CancelOnDrop.html | 3 +- pr/2574/docs/iroh/node/struct.Builder.html | 13 +- .../iroh/node/struct.ProtocolBuilder.html | 7 +- .../iroh/util/io/enum.BaoValidationError.html | 4 +- .../docs/iroh/util/path/enum.IrohPaths.html | 2 +- .../docs/iroh_base/hash/enum.BlobFormat.html | 4 +- pr/2574/docs/iroh_base/hash/struct.Hash.html | 4 +- .../iroh_base/hash/struct.HashAndFormat.html | 4 +- .../iroh_base/key/enum.KeyParsingError.html | 2 +- .../docs/iroh_base/key/struct.PublicKey.html | 6 +- .../docs/iroh_base/key/struct.SecretKey.html | 4 +- .../iroh_base/node_addr/struct.RelayUrl.html | 5 +- .../docs/iroh_base/rpc/struct.RpcError.html | 4 +- pr/2574/docs/iroh_base/ticket/enum.Error.html | 2 +- .../iroh_base/ticket/struct.BlobTicket.html | 4 +- .../iroh_base/ticket/struct.NodeTicket.html | 2 +- pr/2574/docs/iroh_blobs/all.html | 2 +- .../downloader/struct.DownloadKind.html | 2 +- .../downloader/struct.DownloadRequest.html | 2 +- .../downloader/struct.IntentId.html | 3 +- .../iroh_blobs/get/enum.GetResponseError.html | 2 +- .../iroh_blobs/get/error/enum.GetError.html | 2 +- .../get/fsm/enum.AtBlobHeaderNextError.html | 2 +- .../get/fsm/enum.BlobContentNext.html | 2 +- .../get/fsm/enum.ConnectedNext.html | 2 +- .../get/fsm/enum.ConnectedNextError.html | 2 +- .../iroh_blobs/get/fsm/enum.DecodeError.html | 2 +- .../iroh_blobs/store/enum.ReportLevel.html | 4 +- pr/2574/docs/iroh_blobs/struct.Hash.html | 4 +- .../docs/iroh_blobs/struct.HashAndFormat.html | 2 +- .../iroh_blobs/util/enum.SetTagOption.html | 3 +- .../util/local_pool/enum.SpawnError.html | 2 +- .../util/progress/enum.ProgressSendError.html | 4 +- .../docs/iroh_blobs/util/progress/index.html | 4 +- .../iroh_blobs/util/progress/sidebar-items.js | 2 +- .../struct.AsyncChannelProgressSender.html | 130 +++++++++ .../struct.FallibleProgressSliceWriter.html | 8 +- .../progress/struct.ProgressSliceWriter.html | 8 +- .../util/progress/trait.IdGenerator.html | 2 +- .../util/progress/trait.ProgressSender.html | 2 +- .../progress/type.ProgressSendResult.html | 2 +- .../iroh_blobs/util/struct.SparseMemFile.html | 3 +- pr/2574/docs/iroh_blobs/util/struct.Tag.html | 4 +- .../docs/iroh_blobs/util/struct.TempTag.html | 4 +- .../iroh_dns_server/http/enum.CertMode.html | 4 +- .../iroh_docs/actor/struct.SyncHandle.html | 2 +- .../docs/iroh_docs/engine/enum.LiveEvent.html | 16 +- .../engine/fn.entry_to_content_status.html | 2 +- pr/2574/docs/iroh_docs/engine/index.html | 2 +- .../docs/iroh_docs/engine/struct.Engine.html | 13 +- .../iroh_docs/engine/struct.SyncEvent.html | 4 +- pr/2574/docs/iroh_docs/index.html | 2 +- .../iroh_docs/metrics/struct.Metrics.html | 42 +-- .../docs/iroh_docs/net/enum.AcceptError.html | 18 +- .../iroh_docs/net/fn.connect_and_sync.html | 2 +- .../iroh_docs/net/fn.handle_connection.html | 2 +- .../iroh_docs/net/struct.SyncFinished.html | 4 +- .../docs/iroh_docs/store/enum.FilterKind.html | 4 +- .../docs/iroh_docs/store/enum.OpenError.html | 2 +- .../fs/struct.ContentHashesIterator.html | 2 +- .../docs/iroh_docs/store/struct.Query.html | 2 +- .../iroh_docs/store/struct.QueryBuilder.html | 2 +- pr/2574/docs/iroh_docs/struct.Author.html | 4 +- pr/2574/docs/iroh_docs/struct.AuthorId.html | 4 +- .../iroh_docs/struct.AuthorPublicKey.html | 2 +- pr/2574/docs/iroh_docs/struct.DocTicket.html | 12 +- .../docs/iroh_docs/struct.NamespaceId.html | 4 +- .../iroh_docs/struct.NamespacePublicKey.html | 4 +- .../iroh_docs/struct.NamespaceSecret.html | 4 +- .../iroh_docs/sync/enum.CapabilityError.html | 2 +- .../iroh_docs/sync/enum.CapabilityKind.html | 4 +- .../docs/iroh_docs/sync/enum.InsertError.html | 4 +- pr/2574/docs/iroh_docs/sync/struct.Entry.html | 4 +- .../docs/iroh_docs/sync/struct.ReadOnly.html | 2 +- .../docs/iroh_docs/sync/struct.Record.html | 6 +- .../docs/iroh_docs/sync/struct.Replica.html | 5 +- .../iroh_docs/sync/struct.ReplicaInfo.html | 5 +- .../iroh_docs/sync/struct.SignedEntry.html | 4 +- .../sync/type.ContentStatusCallback.html | 2 +- .../dispatcher/enum.GossipEvent.html | 10 +- .../dispatcher/struct.GossipDispatcher.html | 2 +- .../dispatcher/struct.Message.html | 4 +- .../dispatcher/struct.SubscribeOptions.html | 4 +- .../iroh_gossip/metrics/struct.Metrics.html | 40 +-- .../docs/iroh_gossip/net/struct.Gossip.html | 8 +- .../docs/iroh_gossip/net/type.Command.html | 6 +- pr/2574/docs/iroh_gossip/net/type.Event.html | 14 +- .../iroh_gossip/net/util/fn.read_message.html | 2 +- .../net/util/fn.write_message.html | 2 +- .../proto/state/struct.TopicId.html | 2 +- .../iroh_gossip/proto/topic/enum.Command.html | 3 +- .../iroh_gossip/proto/topic/enum.Event.html | 2 +- .../pkarr/struct.PkarrPublisher.html | 5 +- .../discovery/pkarr/struct.PkarrResolver.html | 3 +- .../iroh_net/dns/node_info/enum.IrohAttr.html | 2 +- .../dns/node_info/struct.NodeInfo.html | 4 +- .../dns/node_info/struct.TxtAttrs.html | 2 +- .../iroh_net/endpoint/enum.ControlMsg.html | 4 +- .../endpoint/fn.default_relay_mode.html | 2 +- .../endpoint/fn.get_remote_node_id.html | 2 +- pr/2574/docs/iroh_net/endpoint/index.html | 2 +- .../docs/iroh_net/endpoint/struct.Accept.html | 6 +- .../iroh_net/endpoint/struct.AddrInfo.html | 18 +- .../iroh_net/endpoint/struct.Builder.html | 12 +- .../iroh_net/endpoint/struct.Connecting.html | 18 +- .../iroh_net/endpoint/struct.Endpoint.html | 7 +- .../iroh_net/endpoint/struct.NodeAddr.html | 28 +- .../iroh_net/key/enum.KeyParsingError.html | 8 +- pr/2574/docs/iroh_net/key/index.html | 2 +- .../docs/iroh_net/key/struct.PublicKey.html | 30 +- .../docs/iroh_net/key/struct.SecretKey.html | 26 +- .../iroh_net/key/struct.SharedSecret.html | 8 +- pr/2574/docs/iroh_net/key/type.NodeId.html | 2 +- .../metrics/struct.MagicsockMetrics.html | 94 +++---- pr/2574/docs/iroh_net/net/enum.IpFamily.html | 2 +- .../iroh_net/netcheck/struct.Metrics.html | 18 +- .../docs/iroh_net/netcheck/struct.Report.html | 2 +- .../docs/iroh_net/ping/enum.PingError.html | 2 +- .../iroh_net/portmapper/struct.Metrics.html | 26 +- .../portmapper/struct.ProbeOutput.html | 3 +- .../iroh_net/relay/enum.HttpClientError.html | 2 +- .../iroh_net/relay/enum.ReceivedMessage.html | 6 +- .../relay/server/enum.CertConfig.html | 4 +- .../iroh_net/relay/server/struct.Metrics.html | 80 +++--- .../relay/struct.HttpClientBuilder.html | 7 +- .../docs/iroh_net/relay/struct.RelayMap.html | 2 +- .../docs/iroh_net/relay/struct.RelayUrl.html | 21 +- pr/2574/docs/iroh_net/struct.AddrInfo.html | 18 +- pr/2574/docs/iroh_net/struct.NodeAddr.html | 28 +- .../iroh_net/ticket/struct.NodeTicket.html | 14 +- .../tls/certificate/struct.GenError.html | 2 +- pr/2574/docs/iroh_net/type.NodeId.html | 2 +- .../iroh_net/util/struct.CancelOnDrop.html | 3 +- .../iroh_net_bench/enum.EndpointSelector.html | 4 +- .../docs/iroh_net_bench/iroh/fn.client.html | 2 +- .../iroh/fn.connect_client.html | 4 +- .../docs/iroh_net_bench/iroh/fn.server.html | 2 +- .../iroh/fn.server_endpoint.html | 2 +- .../metrics/struct.StunMetrics.html | 24 +- pr/2574/docs/iroh_relay/struct.Config.html | 4 +- pr/2574/docs/search-index.js | 12 +- pr/2574/docs/search.desc/iroh/iroh-desc-0-.js | 2 +- pr/2574/docs/search.desc/iroh/iroh-desc-1-.js | 2 +- .../iroh_blobs/iroh_blobs-desc-0-.js | 2 +- pr/2574/docs/settings.html | 2 +- pr/2574/docs/src/iroh/node/rpc.rs.html | 102 ++++--- .../iroh_blobs/downloader/progress.rs.html | 4 +- .../docs/src/iroh_blobs/util/progress.rs.html | 256 ++++++++++++++++++ .../src/iroh_docs/store/fs/tables.rs.html | 4 +- pr/2574/docs/src/iroh_net/endpoint.rs.html | 2 + .../docs/trait.impl/core/clone/trait.Clone.js | 2 +- .../trait.impl/core/convert/trait.From.js | 2 +- .../docs/trait.impl/core/fmt/trait.Debug.js | 10 +- .../docs/trait.impl/core/fmt/trait.Display.js | 8 +- .../trait.impl/core/marker/trait.Freeze.js | 2 +- .../docs/trait.impl/core/marker/trait.Send.js | 2 +- .../docs/trait.impl/core/marker/trait.Sync.js | 2 +- .../trait.impl/core/marker/trait.Unpin.js | 2 +- .../panic/unwind_safe/trait.RefUnwindSafe.js | 2 +- .../panic/unwind_safe/trait.UnwindSafe.js | 2 +- .../iroh_base/ticket/trait.Ticket.js | 2 +- .../iroh_metrics/core/trait.Metric.js | 8 +- .../iroh/gossip/proto/enum.Command.js | 2 +- .../iroh_gossip/proto/topic/enum.Command.js | 2 +- .../iroh_net/key/struct.PublicKey.js | 2 +- pr/2574/docs/type.impl/std/primitive.array.js | 2 +- 400 files changed, 1866 insertions(+), 1494 deletions(-) create mode 100644 pr/2574/docs/iroh/blobs/util/progress/struct.AsyncChannelProgressSender.html create mode 100644 pr/2574/docs/iroh_blobs/util/progress/struct.AsyncChannelProgressSender.html diff --git a/pr/2574/docs/help.html b/pr/2574/docs/help.html index 49d451041f..522384bdd1 100644 --- a/pr/2574/docs/help.html +++ b/pr/2574/docs/help.html @@ -1 +1 @@ -Help

Rustdoc help

Back
\ No newline at end of file +Help

Rustdoc help

Back
\ No newline at end of file diff --git a/pr/2574/docs/iroh/all.html b/pr/2574/docs/iroh/all.html index 7a81597f68..f8178a9a56 100644 --- a/pr/2574/docs/iroh/all.html +++ b/pr/2574/docs/iroh/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Structs

Enums

Traits

Functions

Type Aliases

Constants

\ No newline at end of file +List of all items in this crate

List of all items

Structs

Enums

Traits

Functions

Type Aliases

Constants

\ No newline at end of file diff --git a/pr/2574/docs/iroh/base/hash/struct.Hash.html b/pr/2574/docs/iroh/base/hash/struct.Hash.html index 330deeacff..3d1d4f78f7 100644 --- a/pr/2574/docs/iroh/base/hash/struct.Hash.html +++ b/pr/2574/docs/iroh/base/hash/struct.Hash.html @@ -6,10 +6,10 @@
source

pub fn to_hex(&self) -> String

Convert the hash to a hex string.

source

pub fn fmt_short(&self) -> String

Convert to a base32 string limited to the first 10 bytes for a friendly string representation of the hash.

-

Trait Implementations§

source§

impl AsRef<[u8]> for Hash

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Borrow<[u8]> for Hash

source§

fn borrow(&self) -> &[u8]

Immutably borrows from an owned value. Read more
source§

impl Borrow<[u8; 32]> for Hash

source§

fn borrow(&self) -> &[u8; 32]

Immutably borrows from an owned value. Read more
source§

impl Clone for Hash

source§

fn clone(&self) -> Hash

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Hash

Trait Implementations§

source§

impl AsRef<[u8]> for Hash

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Borrow<[u8]> for Hash

source§

fn borrow(&self) -> &[u8]

Immutably borrows from an owned value. Read more
source§

impl Borrow<[u8; 32]> for Hash

source§

fn borrow(&self) -> &[u8; 32]

Immutably borrows from an owned value. Read more
source§

impl Clone for Hash

source§

fn clone(&self) -> Hash

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Hash

source§

fn deserialize<D>( deserializer: D ) -> Result<Hash, <D as Deserializer<'de>>::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&[u8; 32]> for Hash

source§

fn from(value: &[u8; 32]) -> Hash

Converts to this type from the input type.
source§

impl From<[u8; 32]> for Hash

source§

fn from(value: [u8; 32]) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for [u8; 32]

source§

fn from(value: Hash) -> [u8; 32]

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
source§

impl FromIterator<Hash> for HashSeq

source§

fn from_iter<T>(iter: T) -> HashSeq
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&[u8; 32]> for Hash

source§

fn from(value: &[u8; 32]) -> Hash

Converts to this type from the input type.
source§

impl From<[u8; 32]> for Hash

source§

fn from(value: [u8; 32]) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for [u8; 32]

source§

fn from(value: Hash) -> [u8; 32]

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
§

impl From<Hash> for Hash

§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
§

impl FromIterator<Hash> for HashSeq

§

fn from_iter<T>(iter: T) -> HashSeq
where T: IntoIterator<Item = Hash>,

Creates a value from an iterator. Read more
source§

impl FromStr for Hash

§

type Err = HexOrBase32ParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Hash, <Hash as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for Hash

source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, diff --git a/pr/2574/docs/iroh/base/hash/struct.HashAndFormat.html b/pr/2574/docs/iroh/base/hash/struct.HashAndFormat.html index 2492768bfc..4a0c7aac76 100644 --- a/pr/2574/docs/iroh/base/hash/struct.HashAndFormat.html +++ b/pr/2574/docs/iroh/base/hash/struct.HashAndFormat.html @@ -10,7 +10,7 @@

Trait Implementations§

source§

impl Clone for HashAndFormat

source§

fn clone(&self) -> HashAndFormat

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for HashAndFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for HashAndFormat

source§

fn deserialize<D>( deserializer: D ) -> Result<HashAndFormat, <D as Deserializer<'de>>::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for HashAndFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<DownloadKind> for HashAndFormat

source§

fn from(value: DownloadKind) -> HashAndFormat

Converts to this type from the input type.
source§

impl From<HashAndFormat> for DownloadKind

source§

fn from(value: HashAndFormat) -> DownloadKind

Converts to this type from the input type.
source§

impl From<HashAndFormat> for HashAndFormat

source§

fn from(value: HashAndFormat) -> HashAndFormat

Converts to this type from the input type.
source§

impl FromStr for HashAndFormat

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<HashAndFormat, <HashAndFormat as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for HashAndFormat

source§

fn hash<__H>(&self, state: &mut __H)
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for HashAndFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<DownloadKind> for HashAndFormat

§

fn from(value: DownloadKind) -> HashAndFormat

Converts to this type from the input type.
§

impl From<HashAndFormat> for DownloadKind

§

fn from(value: HashAndFormat) -> DownloadKind

Converts to this type from the input type.
§

impl From<HashAndFormat> for HashAndFormat

§

fn from(value: HashAndFormat) -> HashAndFormat

Converts to this type from the input type.
source§

impl FromStr for HashAndFormat

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<HashAndFormat, <HashAndFormat as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for HashAndFormat

source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl MaxSize for HashAndFormat

source§

const POSTCARD_MAX_SIZE: usize = 33usize

The maximum possible size that the serialization of this diff --git a/pr/2574/docs/iroh/base/key/enum.KeyParsingError.html b/pr/2574/docs/iroh/base/key/enum.KeyParsingError.html index a5c1fc4946..af7f3cb244 100644 --- a/pr/2574/docs/iroh/base/key/enum.KeyParsingError.html +++ b/pr/2574/docs/iroh/base/key/enum.KeyParsingError.html @@ -4,7 +4,7 @@ }
Expand description

Error when deserialising a PublicKey or a SecretKey.

Variants§

§

Base32(HexOrBase32ParseError)

Error when decoding the base32.

§

Key(Error)

Error when decoding the public key.

-

Trait Implementations§

source§

impl Debug for KeyParsingError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for KeyParsingError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for KeyParsingError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for KeyParsingError

source§

fn from(source: Error) -> KeyParsingError

Converts to this type from the input type.
source§

impl From<HexOrBase32ParseError> for KeyParsingError

source§

fn from(source: HexOrBase32ParseError) -> KeyParsingError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for KeyParsingError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for KeyParsingError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for KeyParsingError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for KeyParsingError

source§

fn from(source: Error) -> KeyParsingError

Converts to this type from the input type.
source§

impl From<HexOrBase32ParseError> for KeyParsingError

source§

fn from(source: HexOrBase32ParseError) -> KeyParsingError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/base/key/struct.PublicKey.html b/pr/2574/docs/iroh/base/key/struct.PublicKey.html index aaa1dc3f93..b3f592330f 100644 --- a/pr/2574/docs/iroh/base/key/struct.PublicKey.html +++ b/pr/2574/docs/iroh/base/key/struct.PublicKey.html @@ -35,9 +35,9 @@
§Return
&self, serializer: S ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where - S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TryFrom<&[u8]> for PublicKey

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from( + S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TryFrom<&[u8]> for PublicKey

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from( bytes: &[u8] -) -> Result<PublicKey, <PublicKey as TryFrom<&[u8]>>::Error>

Performs the conversion.
source§

impl TryFrom<&[u8; 32]> for PublicKey

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from( +) -> Result<PublicKey, <PublicKey as TryFrom<&[u8]>>::Error>

Performs the conversion.
source§

impl TryFrom<&[u8; 32]> for PublicKey

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from( bytes: &[u8; 32] ) -> Result<PublicKey, <PublicKey as TryFrom<&[u8; 32]>>::Error>

Performs the conversion.
source§

impl Copy for PublicKey

source§

impl Eq for PublicKey

source§

impl StructuralPartialEq for PublicKey

Auto Trait Implementations§

§

impl Freeze for PublicKey

§

impl RefUnwindSafe for PublicKey

§

impl Send for PublicKey

§

impl Sync for PublicKey

§

impl Unpin for PublicKey

§

impl UnwindSafe for PublicKey

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<A, T> AsBits<T> for A
where diff --git a/pr/2574/docs/iroh/base/node_addr/struct.RelayUrl.html b/pr/2574/docs/iroh/base/node_addr/struct.RelayUrl.html index 3cdf44f121..1a1cc8348c 100644 --- a/pr/2574/docs/iroh/base/node_addr/struct.RelayUrl.html +++ b/pr/2574/docs/iroh/base/node_addr/struct.RelayUrl.html @@ -447,8 +447,7 @@
§Examples
§

type Target = Url

The resulting type after dereferencing.
source§

fn deref(&self) -> &<RelayUrl as Deref>::Target

Dereferences the value.

source§

impl<'de> Deserialize<'de> for RelayUrl

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<RelayUrl, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for RelayUrl
where - Url: Display,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<RelayUrl> for Url

source§

fn from(value: RelayUrl) -> Url

Converts to this type from the input type.
source§

impl From<RelayUrlInfo> for RelayUrl

source§

fn from(value: RelayUrlInfo) -> RelayUrl

Converts to this type from the input type.
source§

impl From<Url> for RelayUrl

source§

fn from(url: Url) -> RelayUrl

Converts to this type from the input type.
source§

impl FromStr for RelayUrl

Support for parsing strings directly.

+ __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for RelayUrl

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<RelayUrl> for Url

source§

fn from(value: RelayUrl) -> Url

Converts to this type from the input type.
source§

impl From<RelayUrlInfo> for RelayUrl

source§

fn from(value: RelayUrlInfo) -> RelayUrl

Converts to this type from the input type.
source§

impl From<Url> for RelayUrl

source§

fn from(url: Url) -> RelayUrl

Converts to this type from the input type.
source§

impl FromStr for RelayUrl

Support for parsing strings directly.

If you need more control over the error first create a Url and use RelayUrl::from instead.

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<RelayUrl, <RelayUrl as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for RelayUrl

source§

fn hash<__H>(&self, state: &mut __H)
where diff --git a/pr/2574/docs/iroh/base/rpc/struct.RpcError.html b/pr/2574/docs/iroh/base/rpc/struct.RpcError.html index 89cdaf6562..1008d48374 100644 --- a/pr/2574/docs/iroh/base/rpc/struct.RpcError.html +++ b/pr/2574/docs/iroh/base/rpc/struct.RpcError.html @@ -2,7 +2,7 @@

Trait Implementations§

source§

impl Clone for RpcError

source§

fn clone(&self) -> RpcError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RpcError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for RpcError

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<RpcError, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for RpcError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for RpcError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for RpcError

source§

fn from(e: Error) -> RpcError

Converts to this type from the input type.
source§

impl From<Error> for RpcError

source§

fn from(e: Error) -> RpcError

Converts to this type from the input type.
source§

impl Serialize for RpcError

source§

fn serialize<__S>( + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for RpcError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for RpcError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for RpcError

source§

fn from(e: Error) -> RpcError

Converts to this type from the input type.
source§

impl From<Error> for RpcError

source§

fn from(e: Error) -> RpcError

Converts to this type from the input type.
source§

impl Serialize for RpcError

source§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where diff --git a/pr/2574/docs/iroh/base/ticket/enum.Error.html b/pr/2574/docs/iroh/base/ticket/enum.Error.html index 6e2a416b5c..a0d8798e9c 100644 --- a/pr/2574/docs/iroh/base/ticket/enum.Error.html +++ b/pr/2574/docs/iroh/base/ticket/enum.Error.html @@ -10,7 +10,7 @@

Fields

§expected: &'static str
§

Postcard(Error)

This looks like a ticket, but postcard deserialization failed.

§

Encoding(DecodeError)

This looks like a ticket, but base32 decoding failed.

§

Verify(&'static str)

Verification of the deserialized bytes failed.

-

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<DecodeError> for Error

source§

fn from(source: DecodeError) -> Error

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Error

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Error

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<DecodeError> for Error

source§

fn from(source: DecodeError) -> Error

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Error

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Error

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/constant.IROH_BLOCK_SIZE.html b/pr/2574/docs/iroh/blobs/constant.IROH_BLOCK_SIZE.html index b7f819f1a5..b6590ef567 100644 --- a/pr/2574/docs/iroh/blobs/constant.IROH_BLOCK_SIZE.html +++ b/pr/2574/docs/iroh/blobs/constant.IROH_BLOCK_SIZE.html @@ -1,2 +1,2 @@ -IROH_BLOCK_SIZE in iroh::blobs - Rust

Constant iroh::blobs::IROH_BLOCK_SIZE

source ·
pub const IROH_BLOCK_SIZE: BlockSize;
Expand description

Block size used by iroh, 2^4*1024 = 16KiB

+IROH_BLOCK_SIZE in iroh::blobs - Rust

Constant iroh::blobs::IROH_BLOCK_SIZE

pub const IROH_BLOCK_SIZE: BlockSize;
Expand description

Block size used by iroh, 2^4*1024 = 16KiB

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/downloader/enum.DownloadError.html b/pr/2574/docs/iroh/blobs/downloader/enum.DownloadError.html index 5de1a166e2..adcd46da6c 100644 --- a/pr/2574/docs/iroh/blobs/downloader/enum.DownloadError.html +++ b/pr/2574/docs/iroh/blobs/downloader/enum.DownloadError.html @@ -1,4 +1,4 @@ -DownloadError in iroh::blobs::downloader - Rust

Enum iroh::blobs::downloader::DownloadError

source ·
pub enum DownloadError {
+DownloadError in iroh::blobs::downloader - Rust

Enum iroh::blobs::downloader::DownloadError

pub enum DownloadError {
     DownloadFailed,
     Cancelled,
     NoProviders,
@@ -8,7 +8,7 @@
 
§

Cancelled

The download was cancelled by us

§

NoProviders

No provider nodes found

§

ActorClosed

Failed to receive response from service.

-

Trait Implementations§

source§

impl Clone for DownloadError

source§

fn clone(&self) -> DownloadError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for DownloadError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for DownloadError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for DownloadError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Clone for DownloadError

§

fn clone(&self) -> DownloadError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for DownloadError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for DownloadError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for DownloadError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/downloader/enum.FailureAction.html b/pr/2574/docs/iroh/blobs/downloader/enum.FailureAction.html index 80d6dd9974..2df383757f 100644 --- a/pr/2574/docs/iroh/blobs/downloader/enum.FailureAction.html +++ b/pr/2574/docs/iroh/blobs/downloader/enum.FailureAction.html @@ -1,4 +1,4 @@ -FailureAction in iroh::blobs::downloader - Rust

Enum iroh::blobs::downloader::FailureAction

source ·
pub enum FailureAction {
+FailureAction in iroh::blobs::downloader - Rust

Enum iroh::blobs::downloader::FailureAction

pub enum FailureAction {
     AllIntentsDropped,
     AbortRequest(Error),
     DropPeer(Error),
@@ -8,7 +8,7 @@
 
§

AbortRequest(Error)

An error occurred that prevents the request from being retried at all.

§

DropPeer(Error)

An error occurred that suggests the node should not be used in general.

§

RetryLater(Error)

An error occurred in which neither the node nor the request are at fault.

-

Trait Implementations§

source§

impl Debug for FailureAction

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<GetError> for FailureAction

source§

fn from(e: GetError) -> FailureAction

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for FailureAction

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<GetError> for FailureAction

§

fn from(e: GetError) -> FailureAction

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/downloader/index.html b/pr/2574/docs/iroh/blobs/downloader/index.html index 201bd3c29a..ca061a1e26 100644 --- a/pr/2574/docs/iroh/blobs/downloader/index.html +++ b/pr/2574/docs/iroh/blobs/downloader/index.html @@ -1,4 +1,4 @@ -iroh::blobs::downloader - Rust

Module iroh::blobs::downloader

source ·
Expand description

Handle downloading blobs and collections concurrently and from nodes.

+iroh::blobs::downloader - Rust

Module iroh::blobs::downloader

Expand description

Handle downloading blobs and collections concurrently and from nodes.

The Downloader interacts with four main components to this end.

Deserialize this value from the given Serde deserializer. Read more

§

impl Serialize for DownloadProgress

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where diff --git a/pr/2574/docs/iroh/blobs/get/db/fn.blob_info.html b/pr/2574/docs/iroh/blobs/get/db/fn.blob_info.html index 83719aede8..33df248b76 100644 --- a/pr/2574/docs/iroh/blobs/get/db/fn.blob_info.html +++ b/pr/2574/docs/iroh/blobs/get/db/fn.blob_info.html @@ -1,4 +1,4 @@ -blob_info in iroh::blobs::get::db - Rust

Function iroh::blobs::get::db::blob_info

source ·
pub async fn blob_info<D>(db: &D, hash: &Hash) -> Result<BlobInfo<D>, Error>
where +blob_info in iroh::blobs::get::db - Rust

Function iroh::blobs::get::db::blob_info

pub async fn blob_info<D>(db: &D, hash: &Hash) -> Result<BlobInfo<D>, Error>
where D: Store,
Expand description

Get information about a blob in a store.

This will compute the valid ranges for partial blobs, so it is somewhat expensive for those.

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/get/db/fn.get_to_db.html b/pr/2574/docs/iroh/blobs/get/db/fn.get_to_db.html index f70f1cf732..fa946b75d9 100644 --- a/pr/2574/docs/iroh/blobs/get/db/fn.get_to_db.html +++ b/pr/2574/docs/iroh/blobs/get/db/fn.get_to_db.html @@ -1,4 +1,4 @@ -get_to_db in iroh::blobs::get::db - Rust

Function iroh::blobs::get::db::get_to_db

source ·
pub async fn get_to_db<D, C, F>(
+get_to_db in iroh::blobs::get::db - Rust

Function iroh::blobs::get::db::get_to_db

pub async fn get_to_db<D, C, F>(
     db: &D,
     get_conn: C,
     hash_and_format: &HashAndFormat,
diff --git a/pr/2574/docs/iroh/blobs/get/db/fn.valid_ranges.html b/pr/2574/docs/iroh/blobs/get/db/fn.valid_ranges.html
index 935f12ae44..3035a1767b 100644
--- a/pr/2574/docs/iroh/blobs/get/db/fn.valid_ranges.html
+++ b/pr/2574/docs/iroh/blobs/get/db/fn.valid_ranges.html
@@ -1,4 +1,4 @@
-valid_ranges in iroh::blobs::get::db - Rust

Function iroh::blobs::get::db::valid_ranges

source ·
pub async fn valid_ranges<D>(
+valid_ranges in iroh::blobs::get::db - Rust

Function iroh::blobs::get::db::valid_ranges

pub async fn valid_ranges<D>(
     entry: &<D as MapMut>::EntryMut
 ) -> Result<RangeSet<[ChunkNum; 2]>, Error>
where D: MapMut,
Expand description

Given a partial entry, get the valid ranges.

diff --git a/pr/2574/docs/iroh/blobs/get/db/index.html b/pr/2574/docs/iroh/blobs/get/db/index.html index 44dce23ba5..a7b6be44bf 100644 --- a/pr/2574/docs/iroh/blobs/get/db/index.html +++ b/pr/2574/docs/iroh/blobs/get/db/index.html @@ -1,2 +1,2 @@ -iroh::blobs::get::db - Rust

Module iroh::blobs::get::db

source ·
Expand description

Functions that use the iroh-blobs protocol in conjunction with a bao store.

+iroh::blobs::get::db - Rust

Module iroh::blobs::get::db

Expand description

Functions that use the iroh-blobs protocol in conjunction with a bao store.

Enums§

  • The id of a blob in a transfer
  • Information about a the status of a blob in a store.
  • Progress updates for the get operation.

Functions§

  • Get information about a blob in a store.
  • Get a blob or collection into a store.
  • Given a partial entry, get the valid ranges.
\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/get/enum.GetResponseError.html b/pr/2574/docs/iroh/blobs/get/enum.GetResponseError.html index bba7646242..00b4f58955 100644 --- a/pr/2574/docs/iroh/blobs/get/enum.GetResponseError.html +++ b/pr/2574/docs/iroh/blobs/get/enum.GetResponseError.html @@ -1,4 +1,4 @@ -GetResponseError in iroh::blobs::get - Rust

Enum iroh::blobs::get::GetResponseError

source ·
pub enum GetResponseError {
+GetResponseError in iroh::blobs::get - Rust

Enum iroh::blobs::get::GetResponseError

pub enum GetResponseError {
     Connection(ConnectionError),
     Write(WriteError),
     Read(ReadError),
@@ -10,7 +10,7 @@
 
§

Read(ReadError)

Error when reading from the stream

§

Decode(DecodeError)

Error when decoding, e.g. hash mismatch

§

Generic(Error)

A generic error

-

Trait Implementations§

source§

impl Debug for GetResponseError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for GetResponseError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for GetResponseError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ConnectionError> for GetResponseError

source§

fn from(source: ConnectionError) -> GetResponseError

Converts to this type from the input type.
source§

impl From<DecodeError> for GetResponseError

source§

fn from(cause: DecodeError) -> GetResponseError

Converts to this type from the input type.
source§

impl From<Error> for GetResponseError

source§

fn from(cause: Error) -> GetResponseError

Converts to this type from the input type.
source§

impl From<Error> for GetResponseError

source§

fn from(cause: Error) -> GetResponseError

Converts to this type from the input type.
source§

impl From<ReadError> for GetResponseError

source§

fn from(source: ReadError) -> GetResponseError

Converts to this type from the input type.
source§

impl From<WriteError> for GetResponseError

source§

fn from(source: WriteError) -> GetResponseError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for GetResponseError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for GetResponseError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for GetResponseError

§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl From<ConnectionError> for GetResponseError

§

fn from(source: ConnectionError) -> GetResponseError

Converts to this type from the input type.
§

impl From<DecodeError> for GetResponseError

§

fn from(cause: DecodeError) -> GetResponseError

Converts to this type from the input type.
§

impl From<Error> for GetResponseError

§

fn from(cause: Error) -> GetResponseError

Converts to this type from the input type.
§

impl From<Error> for GetResponseError

§

fn from(cause: Error) -> GetResponseError

Converts to this type from the input type.
§

impl From<ReadError> for GetResponseError

§

fn from(source: ReadError) -> GetResponseError

Converts to this type from the input type.
§

impl From<WriteError> for GetResponseError

§

fn from(source: WriteError) -> GetResponseError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/error/enum.GetError.html b/pr/2574/docs/iroh/blobs/get/error/enum.GetError.html index cb655274eb..17659c2db2 100644 --- a/pr/2574/docs/iroh/blobs/get/error/enum.GetError.html +++ b/pr/2574/docs/iroh/blobs/get/error/enum.GetError.html @@ -1,4 +1,4 @@ -GetError in iroh::blobs::get::error - Rust

Enum iroh::blobs::get::error::GetError

source ·
pub enum GetError {
+GetError in iroh::blobs::get::error - Rust

Enum iroh::blobs::get::error::GetError

pub enum GetError {
     NotFound(Error),
     RemoteReset(Error),
     NoncompliantNode(Error),
@@ -12,7 +12,7 @@
 
§

Io(Error)

Network or IO operation failed.

§

BadRequest(Error)

Our download request is invalid.

§

LocalFailure(Error)

Operation failed on the local node.

-

Trait Implementations§

source§

impl Debug for GetError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for GetError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for GetError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<AtBlobHeaderNextError> for GetError

source§

fn from(value: AtBlobHeaderNextError) -> GetError

Converts to this type from the input type.
source§

impl From<ConnectedNextError> for GetError

source§

fn from(value: ConnectedNextError) -> GetError

Converts to this type from the input type.
source§

impl From<ConnectionError> for GetError

source§

fn from(value: ConnectionError) -> GetError

Converts to this type from the input type.
source§

impl From<DecodeError> for GetError

source§

fn from(value: DecodeError) -> GetError

Converts to this type from the input type.
source§

impl From<Error> for GetError

source§

fn from(value: Error) -> GetError

Converts to this type from the input type.
source§

impl From<GetError> for FailureAction

source§

fn from(e: GetError) -> FailureAction

Converts to this type from the input type.
source§

impl From<ProgressSendError> for GetError

source§

fn from(value: ProgressSendError) -> GetError

Converts to this type from the input type.
source§

impl From<ReadError> for GetError

source§

fn from(value: ReadError) -> GetError

Converts to this type from the input type.
source§

impl From<WriteError> for GetError

source§

fn from(value: WriteError) -> GetError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for GetError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for GetError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for GetError

§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl From<AtBlobHeaderNextError> for GetError

§

fn from(value: AtBlobHeaderNextError) -> GetError

Converts to this type from the input type.
§

impl From<ConnectedNextError> for GetError

§

fn from(value: ConnectedNextError) -> GetError

Converts to this type from the input type.
§

impl From<ConnectionError> for GetError

§

fn from(value: ConnectionError) -> GetError

Converts to this type from the input type.
§

impl From<DecodeError> for GetError

§

fn from(value: DecodeError) -> GetError

Converts to this type from the input type.
§

impl From<Error> for GetError

§

fn from(value: Error) -> GetError

Converts to this type from the input type.
§

impl From<GetError> for FailureAction

§

fn from(e: GetError) -> FailureAction

Converts to this type from the input type.
§

impl From<ProgressSendError> for GetError

§

fn from(value: ProgressSendError) -> GetError

Converts to this type from the input type.
§

impl From<ReadError> for GetError

§

fn from(value: ReadError) -> GetError

Converts to this type from the input type.
§

impl From<WriteError> for GetError

§

fn from(value: WriteError) -> GetError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/error/index.html b/pr/2574/docs/iroh/blobs/get/error/index.html index 4a3adf9186..1585987ff9 100644 --- a/pr/2574/docs/iroh/blobs/get/error/index.html +++ b/pr/2574/docs/iroh/blobs/get/error/index.html @@ -1,2 +1,2 @@ -iroh::blobs::get::error - Rust

Module iroh::blobs::get::error

source ·
Expand description

Error returned from get operations

+iroh::blobs::get::error - Rust

Module iroh::blobs::get::error

Expand description

Error returned from get operations

Enums§

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/get/fsm/enum.AtBlobHeaderNextError.html b/pr/2574/docs/iroh/blobs/get/fsm/enum.AtBlobHeaderNextError.html index aad5c22d05..de5828ab7e 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/enum.AtBlobHeaderNextError.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/enum.AtBlobHeaderNextError.html @@ -1,4 +1,4 @@ -AtBlobHeaderNextError in iroh::blobs::get::fsm - Rust

Enum iroh::blobs::get::fsm::AtBlobHeaderNextError

source ·
pub enum AtBlobHeaderNextError {
+AtBlobHeaderNextError in iroh::blobs::get::fsm - Rust

Enum iroh::blobs::get::fsm::AtBlobHeaderNextError

pub enum AtBlobHeaderNextError {
     NotFound,
     Read(ReadError),
     Io(Error),
@@ -7,7 +7,7 @@
 

This indicates that the provider does not have the requested data.

§

Read(ReadError)

Quinn read error when reading the size header

§

Io(Error)

Generic io error

-

Trait Implementations§

source§

impl Debug for AtBlobHeaderNextError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for AtBlobHeaderNextError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for AtBlobHeaderNextError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<AtBlobHeaderNextError> for DecodeError

source§

fn from(cause: AtBlobHeaderNextError) -> DecodeError

Converts to this type from the input type.
source§

impl From<AtBlobHeaderNextError> for GetError

source§

fn from(value: AtBlobHeaderNextError) -> GetError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for AtBlobHeaderNextError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for AtBlobHeaderNextError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for AtBlobHeaderNextError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl From<AtBlobHeaderNextError> for DecodeError

§

fn from(cause: AtBlobHeaderNextError) -> DecodeError

Converts to this type from the input type.
§

impl From<AtBlobHeaderNextError> for GetError

§

fn from(value: AtBlobHeaderNextError) -> GetError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/fsm/enum.BlobContentNext.html b/pr/2574/docs/iroh/blobs/get/fsm/enum.BlobContentNext.html index a63727acf1..beffb5fbb3 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/enum.BlobContentNext.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/enum.BlobContentNext.html @@ -1,12 +1,12 @@ -BlobContentNext in iroh::blobs::get::fsm - Rust

Enum iroh::blobs::get::fsm::BlobContentNext

source ·
pub enum BlobContentNext {
+BlobContentNext in iroh::blobs::get::fsm - Rust

Enum iroh::blobs::get::fsm::BlobContentNext

pub enum BlobContentNext {
     More((AtBlobContent, Result<BaoContentItem, DecodeError>)),
     Done(AtEndBlob),
 }
Expand description

The next state after reading a content item

Variants§

§

More((AtBlobContent, Result<BaoContentItem, DecodeError>))

We expect more content

§

Done(AtEndBlob)

We are done with this blob

-

Trait Implementations§

source§

impl Debug for BlobContentNext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<(AtBlobContent, Result<BaoContentItem, DecodeError>)> for BlobContentNext

Trait Implementations§

§

impl Debug for BlobContentNext

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<(AtBlobContent, Result<BaoContentItem, DecodeError>)> for BlobContentNext

§

fn from( value: (AtBlobContent, Result<BaoContentItem, DecodeError>) -) -> BlobContentNext

Converts to this type from the input type.
source§

impl From<AtEndBlob> for BlobContentNext

source§

fn from(value: AtEndBlob) -> BlobContentNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +) -> BlobContentNext

Converts to this type from the input type.

§

impl From<AtEndBlob> for BlobContentNext

§

fn from(value: AtEndBlob) -> BlobContentNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/fsm/enum.ConnectedNext.html b/pr/2574/docs/iroh/blobs/get/fsm/enum.ConnectedNext.html index 50e85764a6..d88cadfec7 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/enum.ConnectedNext.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/enum.ConnectedNext.html @@ -1,4 +1,4 @@ -ConnectedNext in iroh::blobs::get::fsm - Rust

Enum iroh::blobs::get::fsm::ConnectedNext

source ·
pub enum ConnectedNext {
+ConnectedNext in iroh::blobs::get::fsm - Rust

Enum iroh::blobs::get::fsm::ConnectedNext

pub enum ConnectedNext {
     StartRoot(AtStartRoot),
     StartChild(AtStartChild),
     Closing(AtClosing),
@@ -6,7 +6,7 @@
 

Variants§

§

StartRoot(AtStartRoot)

First response is either a collection or a single blob

§

StartChild(AtStartChild)

First response is a child

§

Closing(AtClosing)

Request is empty

-

Trait Implementations§

source§

impl Debug for ConnectedNext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<AtClosing> for ConnectedNext

source§

fn from(value: AtClosing) -> ConnectedNext

Converts to this type from the input type.
source§

impl From<AtStartChild> for ConnectedNext

source§

fn from(value: AtStartChild) -> ConnectedNext

Converts to this type from the input type.
source§

impl From<AtStartRoot> for ConnectedNext

source§

fn from(value: AtStartRoot) -> ConnectedNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for ConnectedNext

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<AtClosing> for ConnectedNext

§

fn from(value: AtClosing) -> ConnectedNext

Converts to this type from the input type.
§

impl From<AtStartChild> for ConnectedNext

§

fn from(value: AtStartChild) -> ConnectedNext

Converts to this type from the input type.
§

impl From<AtStartRoot> for ConnectedNext

§

fn from(value: AtStartRoot) -> ConnectedNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/fsm/enum.ConnectedNextError.html b/pr/2574/docs/iroh/blobs/get/fsm/enum.ConnectedNextError.html index 3bf611aa9d..879dd5d98f 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/enum.ConnectedNextError.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/enum.ConnectedNextError.html @@ -1,4 +1,4 @@ -ConnectedNextError in iroh::blobs::get::fsm - Rust

Enum iroh::blobs::get::fsm::ConnectedNextError

source ·
pub enum ConnectedNextError {
+ConnectedNextError in iroh::blobs::get::fsm - Rust

Enum iroh::blobs::get::fsm::ConnectedNextError

pub enum ConnectedNextError {
     PostcardSer(Error),
     RequestTooBig,
     Write(WriteError),
@@ -8,7 +8,7 @@
 
§

RequestTooBig

The serialized request is too long to be sent

§

Write(WriteError)

Error when writing the request to the SendStream.

§

Io(Error)

A generic io error

-

Trait Implementations§

source§

impl Debug for ConnectedNextError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for ConnectedNextError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for ConnectedNextError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ConnectedNextError> for GetError

source§

fn from(value: ConnectedNextError) -> GetError

Converts to this type from the input type.
source§

impl From<WriteError> for ConnectedNextError

source§

fn from(source: WriteError) -> ConnectedNextError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for ConnectedNextError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for ConnectedNextError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for ConnectedNextError

§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl From<ConnectedNextError> for GetError

§

fn from(value: ConnectedNextError) -> GetError

Converts to this type from the input type.
§

impl From<WriteError> for ConnectedNextError

§

fn from(source: WriteError) -> ConnectedNextError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/fsm/enum.DecodeError.html b/pr/2574/docs/iroh/blobs/get/fsm/enum.DecodeError.html index 4bfa87d0c4..c17ad15b37 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/enum.DecodeError.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/enum.DecodeError.html @@ -1,4 +1,4 @@ -DecodeError in iroh::blobs::get::fsm - Rust

Enum iroh::blobs::get::fsm::DecodeError

source ·
pub enum DecodeError {
+DecodeError in iroh::blobs::get::fsm - Rust

Enum iroh::blobs::get::fsm::DecodeError

pub enum DecodeError {
     NotFound,
     ParentNotFound(TreeNode),
     LeafNotFound(ChunkNum),
@@ -30,7 +30,7 @@
 
§

LeafHashMismatch(ChunkNum)

The hash of a leaf did not match the expected hash

§

Read(ReadError)

Error when reading from the stream

§

Io(Error)

A generic io error

-

Trait Implementations§

source§

impl Debug for DecodeError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for DecodeError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for DecodeError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<AtBlobHeaderNextError> for DecodeError

source§

fn from(cause: AtBlobHeaderNextError) -> DecodeError

Converts to this type from the input type.
source§

impl From<DecodeError> for DecodeError

source§

fn from(value: DecodeError) -> DecodeError

Converts to this type from the input type.
source§

impl From<DecodeError> for GetError

source§

fn from(value: DecodeError) -> GetError

Converts to this type from the input type.
source§

impl From<Error> for DecodeError

source§

fn from(source: Error) -> DecodeError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for DecodeError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for DecodeError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for DecodeError

§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl From<AtBlobHeaderNextError> for DecodeError

§

fn from(cause: AtBlobHeaderNextError) -> DecodeError

Converts to this type from the input type.
§

impl From<DecodeError> for DecodeError

§

fn from(value: DecodeError) -> DecodeError

Converts to this type from the input type.
§

impl From<DecodeError> for GetError

§

fn from(value: DecodeError) -> GetError

Converts to this type from the input type.
§

impl From<Error> for DecodeError

§

fn from(source: Error) -> DecodeError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/fsm/enum.EndBlobNext.html b/pr/2574/docs/iroh/blobs/get/fsm/enum.EndBlobNext.html index ed3783ceff..7bf8565dbd 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/enum.EndBlobNext.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/enum.EndBlobNext.html @@ -1,10 +1,10 @@ -EndBlobNext in iroh::blobs::get::fsm - Rust

Enum iroh::blobs::get::fsm::EndBlobNext

source ·
pub enum EndBlobNext {
+EndBlobNext in iroh::blobs::get::fsm - Rust

Enum iroh::blobs::get::fsm::EndBlobNext

pub enum EndBlobNext {
     MoreChildren(AtStartChild),
     Closing(AtClosing),
 }
Expand description

The next state after the end of a blob

Variants§

§

MoreChildren(AtStartChild)

Response is expected to have more children

§

Closing(AtClosing)

No more children expected

-

Trait Implementations§

source§

impl Debug for EndBlobNext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<AtClosing> for EndBlobNext

source§

fn from(value: AtClosing) -> EndBlobNext

Converts to this type from the input type.
source§

impl From<AtStartChild> for EndBlobNext

source§

fn from(value: AtStartChild) -> EndBlobNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for EndBlobNext

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<AtClosing> for EndBlobNext

§

fn from(value: AtClosing) -> EndBlobNext

Converts to this type from the input type.
§

impl From<AtStartChild> for EndBlobNext

§

fn from(value: AtStartChild) -> EndBlobNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/fsm/fn.start.html b/pr/2574/docs/iroh/blobs/get/fsm/fn.start.html index 8a76011fc9..54fbc2c087 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/fn.start.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/fn.start.html @@ -1,2 +1,2 @@ -start in iroh::blobs::get::fsm - Rust

Function iroh::blobs::get::fsm::start

source ·
pub fn start(connection: Connection, request: GetRequest) -> AtInitial
Expand description

The entry point of the get response machine

+start in iroh::blobs::get::fsm - Rust

Function iroh::blobs::get::fsm::start

pub fn start(connection: Connection, request: GetRequest) -> AtInitial
Expand description

The entry point of the get response machine

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/get/fsm/index.html b/pr/2574/docs/iroh/blobs/get/fsm/index.html index 658bc38bb5..2314e5dfad 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/index.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/index.html @@ -1,4 +1,4 @@ -iroh::blobs::get::fsm - Rust

Module iroh::blobs::get::fsm

source ·
Expand description

Finite state machine for get responses.

+iroh::blobs::get::fsm - Rust

Module iroh::blobs::get::fsm

Expand description

Finite state machine for get responses.

This is the low level API for getting data from a peer.

diff --git a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtBlobContent.html b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtBlobContent.html index aee4c61679..ec02397938 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtBlobContent.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtBlobContent.html @@ -1,18 +1,18 @@ -AtBlobContent in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtBlobContent

source ·
pub struct AtBlobContent { /* private fields */ }
Expand description

State while we are reading content

-

Implementations§

source§

impl AtBlobContent

source

pub async fn next(self) -> BlobContentNext

Read the next item, either content, an error, or the end of the blob

-
source

pub fn tree(&self) -> BaoTree

The geometry of the tree we are currently reading.

-
source

pub fn hash(&self) -> Hash

The hash of the blob we are reading.

-
source

pub fn offset(&self) -> u64

The current offset of the blob we are reading.

-
source

pub async fn drain(self) -> Result<AtEndBlob, DecodeError>

Drain the response and throw away the result

-
source

pub async fn concatenate_into_vec( +AtBlobContent in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtBlobContent

pub struct AtBlobContent { /* private fields */ }
Expand description

State while we are reading content

+

Implementations§

§

impl AtBlobContent

pub async fn next(self) -> BlobContentNext

Read the next item, either content, an error, or the end of the blob

+

pub fn tree(&self) -> BaoTree

The geometry of the tree we are currently reading.

+

pub fn hash(&self) -> Hash

The hash of the blob we are reading.

+

pub fn offset(&self) -> u64

The current offset of the blob we are reading.

+

pub async fn drain(self) -> Result<AtEndBlob, DecodeError>

Drain the response and throw away the result

+

pub async fn concatenate_into_vec( self ) -> Result<(AtEndBlob, Vec<u8>), DecodeError>

Concatenate the entire response into a vec

-
source

pub async fn write_all_batch<B>( +

pub async fn write_all_batch<B>( self, writer: B ) -> Result<AtEndBlob, DecodeError>
where B: BaoBatchWriter,

Write the entire stream for this blob to a batch writer.

-
source

pub async fn write_all_with_outboard<D, O>( +

pub async fn write_all_with_outboard<D, O>( self, outboard: Option<O>, data: D @@ -21,10 +21,10 @@ O: OutboardMut,

Write the entire blob to a slice writer and to an optional outboard.

The outboard is only written to if the blob is larger than a single chunk group.

-
source

pub async fn write_all<D>(self, data: D) -> Result<AtEndBlob, DecodeError>
where +

pub async fn write_all<D>(self, data: D) -> Result<AtEndBlob, DecodeError>

Write the entire blob to a slice writer.

-
source

pub fn finish(self) -> AtClosing

Immediately finish the get response without reading further

-

Trait Implementations§

source§

impl Debug for AtBlobContent

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

pub fn finish(self) -> AtClosing

Immediately finish the get response without reading further

+

Trait Implementations§

§

impl Debug for AtBlobContent

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtBlobHeader.html b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtBlobHeader.html index c9dc0f6914..3237f79cae 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtBlobHeader.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtBlobHeader.html @@ -1,14 +1,14 @@ -AtBlobHeader in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtBlobHeader

source ·
pub struct AtBlobHeader { /* private fields */ }
Expand description

State before reading a size header

-

Implementations§

source§

impl AtBlobHeader

source

pub async fn next(self) -> Result<(AtBlobContent, u64), AtBlobHeaderNextError>

Read the size header, returning it and going into the Content state.

-
source

pub async fn drain(self) -> Result<AtEndBlob, DecodeError>

Drain the response and throw away the result

-
source

pub async fn concatenate_into_vec( +AtBlobHeader in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtBlobHeader

pub struct AtBlobHeader { /* private fields */ }
Expand description

State before reading a size header

+

Implementations§

§

impl AtBlobHeader

pub async fn next(self) -> Result<(AtBlobContent, u64), AtBlobHeaderNextError>

Read the size header, returning it and going into the Content state.

+

pub async fn drain(self) -> Result<AtEndBlob, DecodeError>

Drain the response and throw away the result

+

pub async fn concatenate_into_vec( self ) -> Result<(AtEndBlob, Vec<u8>), DecodeError>

Concatenate the entire response into a vec

For a request that does not request the complete blob, this will just concatenate the ranges that were requested.

-
source

pub async fn write_all<D>(self, data: D) -> Result<AtEndBlob, DecodeError>
where +

pub async fn write_all<D>(self, data: D) -> Result<AtEndBlob, DecodeError>

Write the entire blob to a slice writer.

-
source

pub async fn write_all_with_outboard<D, O>( +

pub async fn write_all_with_outboard<D, O>( self, outboard: Option<O>, data: D @@ -17,15 +17,15 @@ O: OutboardMut,

Write the entire blob to a slice writer and to an optional outboard.

The outboard is only written to if the blob is larger than a single chunk group.

-
source

pub async fn write_all_batch<B>( +

pub async fn write_all_batch<B>( self, batch: B ) -> Result<AtEndBlob, DecodeError>
where B: BaoBatchWriter,

Write the entire stream for this blob to a batch writer.

-
source

pub fn hash(&self) -> Hash

The hash of the blob we are reading.

-
source

pub fn ranges(&self) -> &RangeSet<[ChunkNum; 2]>

The ranges we have requested for the current hash.

-
source

pub fn offset(&self) -> u64

The current offset of the blob we are reading.

-

Trait Implementations§

source§

impl Debug for AtBlobHeader

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

pub fn hash(&self) -> Hash

The hash of the blob we are reading.

+

pub fn ranges(&self) -> &RangeSet<[ChunkNum; 2]>

The ranges we have requested for the current hash.

+

pub fn offset(&self) -> u64

The current offset of the blob we are reading.

+

Trait Implementations§

§

impl Debug for AtBlobHeader

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtClosing.html b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtClosing.html index abe2f73ef7..88bc8ebc35 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtClosing.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtClosing.html @@ -1,6 +1,6 @@ -AtClosing in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtClosing

source ·
pub struct AtClosing { /* private fields */ }
Expand description

State when finishing the get response

-

Implementations§

source§

impl AtClosing

source

pub async fn next(self) -> Result<Stats, ReadError>

Finish the get response, returning statistics

-

Trait Implementations§

source§

impl Debug for AtClosing

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<AtClosing> for ConnectedNext

source§

fn from(value: AtClosing) -> ConnectedNext

Converts to this type from the input type.
source§

impl From<AtClosing> for EndBlobNext

source§

fn from(value: AtClosing) -> EndBlobNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +AtClosing in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtClosing

pub struct AtClosing { /* private fields */ }
Expand description

State when finishing the get response

+

Implementations§

§

impl AtClosing

pub async fn next(self) -> Result<Stats, ReadError>

Finish the get response, returning statistics

+

Trait Implementations§

§

impl Debug for AtClosing

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<AtClosing> for ConnectedNext

§

fn from(value: AtClosing) -> ConnectedNext

Converts to this type from the input type.
§

impl From<AtClosing> for EndBlobNext

§

fn from(value: AtClosing) -> EndBlobNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtConnected.html b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtConnected.html index 457eb031ae..e3b4400d8d 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtConnected.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtConnected.html @@ -1,9 +1,9 @@ -AtConnected in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtConnected

source ·
pub struct AtConnected { /* private fields */ }
Expand description

State of the get response machine after the handshake has been sent

-

Implementations§

source§

impl AtConnected

source

pub async fn next(self) -> Result<ConnectedNext, ConnectedNextError>

Send the request and move to the next state

+AtConnected in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtConnected

pub struct AtConnected { /* private fields */ }
Expand description

State of the get response machine after the handshake has been sent

+

Implementations§

§

impl AtConnected

pub async fn next(self) -> Result<ConnectedNext, ConnectedNextError>

Send the request and move to the next state

The next state will be either StartRoot or StartChild depending on whether the request requests part of the collection or not.

If the request is empty, this can also move directly to Finished.

-

Trait Implementations§

source§

impl Debug for AtConnected

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for AtConnected

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtEndBlob.html b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtEndBlob.html index 1162da6d52..0bc882492e 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtEndBlob.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtEndBlob.html @@ -1,6 +1,6 @@ -AtEndBlob in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtEndBlob

source ·
pub struct AtEndBlob { /* private fields */ }
Expand description

State after we have read all the content for a blob

-

Implementations§

source§

impl AtEndBlob

source

pub fn next(self) -> EndBlobNext

Read the next child, or finish

-

Trait Implementations§

source§

impl Debug for AtEndBlob

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<AtEndBlob> for BlobContentNext

source§

fn from(value: AtEndBlob) -> BlobContentNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +AtEndBlob in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtEndBlob

pub struct AtEndBlob { /* private fields */ }
Expand description

State after we have read all the content for a blob

+

Implementations§

§

impl AtEndBlob

pub fn next(self) -> EndBlobNext

Read the next child, or finish

+

Trait Implementations§

§

impl Debug for AtEndBlob

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<AtEndBlob> for BlobContentNext

§

fn from(value: AtEndBlob) -> BlobContentNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtInitial.html b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtInitial.html index 2d338ad716..faa8d7d687 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtInitial.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtInitial.html @@ -1,9 +1,9 @@ -AtInitial in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtInitial

source ·
pub struct AtInitial { /* private fields */ }
Expand description

Initial state of the get response machine

-

Implementations§

source§

impl AtInitial

source

pub fn new(connection: Connection, request: GetRequest) -> AtInitial

Create a new get response

+AtInitial in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtInitial

pub struct AtInitial { /* private fields */ }
Expand description

Initial state of the get response machine

+

Implementations§

§

impl AtInitial

pub fn new(connection: Connection, request: GetRequest) -> AtInitial

Create a new get response

connection is an existing connection request is the request to be sent

-
source

pub async fn next(self) -> Result<AtConnected, ConnectionError>

Initiate a new bidi stream to use for the get response

-

Trait Implementations§

source§

impl Debug for AtInitial

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

pub async fn next(self) -> Result<AtConnected, ConnectionError>

Initiate a new bidi stream to use for the get response

+

Trait Implementations§

§

impl Debug for AtInitial

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtStartChild.html b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtStartChild.html index 07823e439e..3ba42b77e2 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtStartChild.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtStartChild.html @@ -1,16 +1,16 @@ -AtStartChild in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtStartChild

source ·
pub struct AtStartChild { /* private fields */ }
Expand description

State of the get response when we start reading a child

-

Implementations§

source§

impl AtStartChild

source

pub fn child_offset(&self) -> u64

The offset of the child we are currently reading

+AtStartChild in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtStartChild

pub struct AtStartChild { /* private fields */ }
Expand description

State of the get response when we start reading a child

+

Implementations§

§

impl AtStartChild

pub fn child_offset(&self) -> u64

The offset of the child we are currently reading

This must be used to determine the hash needed to call next. If this is larger than the number of children in the collection, you can call finish to stop reading the response.

-
source

pub fn ranges(&self) -> &RangeSet<[ChunkNum; 2]>

The ranges we have requested for the child

-
source

pub fn next(self, hash: Hash) -> AtBlobHeader

Go into the next state, reading the header

+

pub fn ranges(&self) -> &RangeSet<[ChunkNum; 2]>

The ranges we have requested for the child

+

pub fn next(self, hash: Hash) -> AtBlobHeader

Go into the next state, reading the header

This requires passing in the hash of the child for validation

-
source

pub fn finish(self) -> AtClosing

Finish the get response without reading further

+

pub fn finish(self) -> AtClosing

Finish the get response without reading further

This is used if you know that there are no more children from having read the collection, or when you want to stop reading the response early.

-

Trait Implementations§

source§

impl Debug for AtStartChild

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<AtStartChild> for ConnectedNext

source§

fn from(value: AtStartChild) -> ConnectedNext

Converts to this type from the input type.
source§

impl From<AtStartChild> for EndBlobNext

source§

fn from(value: AtStartChild) -> EndBlobNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for AtStartChild

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<AtStartChild> for ConnectedNext

§

fn from(value: AtStartChild) -> ConnectedNext

Converts to this type from the input type.
§

impl From<AtStartChild> for EndBlobNext

§

fn from(value: AtStartChild) -> EndBlobNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtStartRoot.html b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtStartRoot.html index b91cef45f1..0ef658b54c 100644 --- a/pr/2574/docs/iroh/blobs/get/fsm/struct.AtStartRoot.html +++ b/pr/2574/docs/iroh/blobs/get/fsm/struct.AtStartRoot.html @@ -1,10 +1,10 @@ -AtStartRoot in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtStartRoot

source ·
pub struct AtStartRoot { /* private fields */ }
Expand description

State of the get response when we start reading a collection

-

Implementations§

source§

impl AtStartRoot

source

pub fn ranges(&self) -> &RangeSet<[ChunkNum; 2]>

The ranges we have requested for the child

-
source

pub fn hash(&self) -> Hash

Hash of the root blob

-
source

pub fn next(self) -> AtBlobHeader

Go into the next state, reading the header

+AtStartRoot in iroh::blobs::get::fsm - Rust

Struct iroh::blobs::get::fsm::AtStartRoot

pub struct AtStartRoot { /* private fields */ }
Expand description

State of the get response when we start reading a collection

+

Implementations§

§

impl AtStartRoot

pub fn ranges(&self) -> &RangeSet<[ChunkNum; 2]>

The ranges we have requested for the child

+

pub fn hash(&self) -> Hash

Hash of the root blob

+

pub fn next(self) -> AtBlobHeader

Go into the next state, reading the header

For the collection we already know the hash, since it was part of the request

-
source

pub fn finish(self) -> AtClosing

Finish the get response without reading further

-

Trait Implementations§

source§

impl Debug for AtStartRoot

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<AtStartRoot> for ConnectedNext

source§

fn from(value: AtStartRoot) -> ConnectedNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

pub fn finish(self) -> AtClosing

Finish the get response without reading further

+

Trait Implementations§

§

impl Debug for AtStartRoot

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<AtStartRoot> for ConnectedNext

§

fn from(value: AtStartRoot) -> ConnectedNext

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/index.html b/pr/2574/docs/iroh/blobs/get/index.html index a43f71a4a4..7d9411aa6d 100644 --- a/pr/2574/docs/iroh/blobs/get/index.html +++ b/pr/2574/docs/iroh/blobs/get/index.html @@ -1,4 +1,4 @@ -iroh::blobs::get - Rust

Module iroh::blobs::get

source ·
Expand description

The client side API

+iroh::blobs::get - Rust

Module iroh::blobs::get

Expand description

The client side API

To get data, create a connection using iroh-net or use any quinn connection that was obtained in another way.

Create a request describing the data you want to get.

diff --git a/pr/2574/docs/iroh/blobs/get/progress/enum.BlobProgress.html b/pr/2574/docs/iroh/blobs/get/progress/enum.BlobProgress.html index d241ab64c8..d14faf5c37 100644 --- a/pr/2574/docs/iroh/blobs/get/progress/enum.BlobProgress.html +++ b/pr/2574/docs/iroh/blobs/get/progress/enum.BlobProgress.html @@ -1,4 +1,4 @@ -BlobProgress in iroh::blobs::get::progress - Rust

Enum iroh::blobs::get::progress::BlobProgress

source ·
pub enum BlobProgress {
+BlobProgress in iroh::blobs::get::progress - Rust

Enum iroh::blobs::get::progress::BlobProgress

pub enum BlobProgress {
     Pending,
     Progressing(u64),
     Done,
@@ -6,16 +6,16 @@
 

Variants§

§

Pending

Download is pending

§

Progressing(u64)

Download is in progress

§

Done

Download has finished

-

Trait Implementations§

source§

impl Clone for BlobProgress

source§

fn clone(&self) -> BlobProgress

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BlobProgress

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for BlobProgress

source§

fn default() -> BlobProgress

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for BlobProgress

Trait Implementations§

§

impl Clone for BlobProgress

§

fn clone(&self) -> BlobProgress

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for BlobProgress

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for BlobProgress

§

fn default() -> BlobProgress

Returns the “default value” for a type. Read more
§

impl<'de> Deserialize<'de> for BlobProgress

§

fn deserialize<__D>( __deserializer: __D ) -> Result<BlobProgress, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for BlobProgress

source§

fn eq(&self, other: &BlobProgress) -> bool

This method tests for self and other values to be equal, and is used + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl PartialEq for BlobProgress

§

fn eq(&self, other: &BlobProgress) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for BlobProgress

source§

fn serialize<__S>( +sufficient, and should not be overridden without very good reason.

§

impl Serialize for BlobProgress

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for BlobProgress

source§

impl StructuralPartialEq for BlobProgress

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Eq for BlobProgress

§

impl StructuralPartialEq for BlobProgress

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/progress/index.html b/pr/2574/docs/iroh/blobs/get/progress/index.html index efcdbe2576..7b36545503 100644 --- a/pr/2574/docs/iroh/blobs/get/progress/index.html +++ b/pr/2574/docs/iroh/blobs/get/progress/index.html @@ -1,2 +1,2 @@ -iroh::blobs::get::progress - Rust

Module iroh::blobs::get::progress

source ·
Expand description

Types for get progress state management.

+iroh::blobs::get::progress - Rust

Module iroh::blobs::get::progress

Expand description

Types for get progress state management.

Structs§

Enums§

Type Aliases§

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/get/progress/struct.BlobState.html b/pr/2574/docs/iroh/blobs/get/progress/struct.BlobState.html index 0f082f4224..40e77b3ec5 100644 --- a/pr/2574/docs/iroh/blobs/get/progress/struct.BlobState.html +++ b/pr/2574/docs/iroh/blobs/get/progress/struct.BlobState.html @@ -1,4 +1,4 @@ -BlobState in iroh::blobs::get::progress - Rust

Struct iroh::blobs::get::progress::BlobState

source ·
pub struct BlobState {
+BlobState in iroh::blobs::get::progress - Rust

Struct iroh::blobs::get::progress::BlobState

pub struct BlobState {
     pub hash: Hash,
     pub size: Option<BaoBlobSize>,
     pub progress: BlobProgress,
@@ -11,17 +11,17 @@
 
§progress: BlobProgress

The current state of the blob transfer.

§local_ranges: Option<RangeSpec>

Ranges already available locally at the time of starting the transfer.

§child_count: Option<u64>

Number of children (only applies to hashseqs, None for raw blobs).

-

Implementations§

source§

impl BlobState

source

pub fn new(hash: Hash) -> BlobState

Create a new BlobState.

-

Trait Implementations§

source§

impl Clone for BlobState

source§

fn clone(&self) -> BlobState

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BlobState

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BlobState

Implementations§

§

impl BlobState

pub fn new(hash: Hash) -> BlobState

Create a new BlobState.

+

Trait Implementations§

§

impl Clone for BlobState

§

fn clone(&self) -> BlobState

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for BlobState

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for BlobState

§

fn deserialize<__D>( __deserializer: __D ) -> Result<BlobState, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for BlobState

source§

fn eq(&self, other: &BlobState) -> bool

This method tests for self and other values to be equal, and is used + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

§

impl PartialEq for BlobState

§

fn eq(&self, other: &BlobState) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for BlobState

source§

fn serialize<__S>( +sufficient, and should not be overridden without very good reason.

§

impl Serialize for BlobState

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for BlobState

source§

impl StructuralPartialEq for BlobState

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

§

impl Eq for BlobState

§

impl StructuralPartialEq for BlobState

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/progress/struct.TransferState.html b/pr/2574/docs/iroh/blobs/get/progress/struct.TransferState.html index 1eaa8dfaa4..8e498806fc 100644 --- a/pr/2574/docs/iroh/blobs/get/progress/struct.TransferState.html +++ b/pr/2574/docs/iroh/blobs/get/progress/struct.TransferState.html @@ -1,4 +1,4 @@ -TransferState in iroh::blobs::get::progress - Rust

Struct iroh::blobs::get::progress::TransferState

source ·
pub struct TransferState {
+TransferState in iroh::blobs::get::progress - Rust

Struct iroh::blobs::get::progress::TransferState

pub struct TransferState {
     pub root: BlobState,
     pub connected: bool,
     pub children: HashMap<NonZero<u64>, BlobState>,
@@ -10,21 +10,21 @@
 
§children: HashMap<NonZero<u64>, BlobState>

Children if the root blob is a hash seq, empty for raw blobs

§current: Option<BlobId>

Child being transferred at the moment.

§progress_id_to_blob: HashMap<u64, BlobId>

Progress ids for individual blobs.

-

Implementations§

source§

impl TransferState

source

pub fn new(root_hash: Hash) -> TransferState

Create a new, empty transfer state.

-
source§

impl TransferState

source

pub fn root(&self) -> &BlobState

Get state of the root blob of this transfer.

-
source

pub fn get_blob(&self, blob_id: &BlobId) -> Option<&BlobState>

Get a blob state by its BlobId in this transfer.

-
source

pub fn get_current(&self) -> Option<&BlobState>

Get the blob state currently being transferred.

-
source

pub fn on_progress(&mut self, event: DownloadProgress)

Update the state with a new DownloadProgress event for this transfer.

-

Trait Implementations§

source§

impl Clone for TransferState

source§

fn clone(&self) -> TransferState

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for TransferState

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for TransferState

Implementations§

§

impl TransferState

pub fn new(root_hash: Hash) -> TransferState

Create a new, empty transfer state.

+
§

impl TransferState

pub fn root(&self) -> &BlobState

Get state of the root blob of this transfer.

+

pub fn get_blob(&self, blob_id: &BlobId) -> Option<&BlobState>

Get a blob state by its BlobId in this transfer.

+

pub fn get_current(&self) -> Option<&BlobState>

Get the blob state currently being transferred.

+

pub fn on_progress(&mut self, event: DownloadProgress)

Update the state with a new DownloadProgress event for this transfer.

+

Trait Implementations§

§

impl Clone for TransferState

§

fn clone(&self) -> TransferState

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for TransferState

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for TransferState

§

fn deserialize<__D>( __deserializer: __D ) -> Result<TransferState, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for TransferState

source§

fn eq(&self, other: &TransferState) -> bool

This method tests for self and other values to be equal, and is used + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

§

impl PartialEq for TransferState

§

fn eq(&self, other: &TransferState) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for TransferState

source§

fn serialize<__S>( +sufficient, and should not be overridden without very good reason.

§

impl Serialize for TransferState

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for TransferState

source§

impl StructuralPartialEq for TransferState

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Eq for TransferState

§

impl StructuralPartialEq for TransferState

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/get/progress/type.ProgressId.html b/pr/2574/docs/iroh/blobs/get/progress/type.ProgressId.html index 3c077d5943..1ae2862f1e 100644 --- a/pr/2574/docs/iroh/blobs/get/progress/type.ProgressId.html +++ b/pr/2574/docs/iroh/blobs/get/progress/type.ProgressId.html @@ -1,2 +1,2 @@ -ProgressId in iroh::blobs::get::progress - Rust

Type Alias iroh::blobs::get::progress::ProgressId

source ·
pub type ProgressId = u64;
Expand description

The identifier for progress events.

+ProgressId in iroh::blobs::get::progress - Rust

Type Alias iroh::blobs::get::progress::ProgressId

pub type ProgressId = u64;
Expand description

The identifier for progress events.

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/get/request/fn.get_chunk_probe.html b/pr/2574/docs/iroh/blobs/get/request/fn.get_chunk_probe.html index 24b3a4537c..fd8856e211 100644 --- a/pr/2574/docs/iroh/blobs/get/request/fn.get_chunk_probe.html +++ b/pr/2574/docs/iroh/blobs/get/request/fn.get_chunk_probe.html @@ -1,4 +1,4 @@ -get_chunk_probe in iroh::blobs::get::request - Rust

Function iroh::blobs::get::request::get_chunk_probe

source ·
pub async fn get_chunk_probe(
+get_chunk_probe in iroh::blobs::get::request - Rust

Function iroh::blobs::get::request::get_chunk_probe

pub async fn get_chunk_probe(
     connection: &Connection,
     hash: &Hash,
     chunk: ChunkNum
diff --git a/pr/2574/docs/iroh/blobs/get/request/fn.get_hash_seq_and_sizes.html b/pr/2574/docs/iroh/blobs/get/request/fn.get_hash_seq_and_sizes.html
index 2360e5f611..8fb1f9c1db 100644
--- a/pr/2574/docs/iroh/blobs/get/request/fn.get_hash_seq_and_sizes.html
+++ b/pr/2574/docs/iroh/blobs/get/request/fn.get_hash_seq_and_sizes.html
@@ -1,4 +1,4 @@
-get_hash_seq_and_sizes in iroh::blobs::get::request - Rust

Function iroh::blobs::get::request::get_hash_seq_and_sizes

source ·
pub async fn get_hash_seq_and_sizes(
+get_hash_seq_and_sizes in iroh::blobs::get::request - Rust

Function iroh::blobs::get::request::get_hash_seq_and_sizes

pub async fn get_hash_seq_and_sizes(
     connection: &Connection,
     hash: &Hash,
     max_size: u64
diff --git a/pr/2574/docs/iroh/blobs/get/request/fn.get_unverified_size.html b/pr/2574/docs/iroh/blobs/get/request/fn.get_unverified_size.html
index aa5e8da332..c8f08b5702 100644
--- a/pr/2574/docs/iroh/blobs/get/request/fn.get_unverified_size.html
+++ b/pr/2574/docs/iroh/blobs/get/request/fn.get_unverified_size.html
@@ -1,4 +1,4 @@
-get_unverified_size in iroh::blobs::get::request - Rust

Function iroh::blobs::get::request::get_unverified_size

source ·
pub async fn get_unverified_size(
+get_unverified_size in iroh::blobs::get::request - Rust

Function iroh::blobs::get::request::get_unverified_size

pub async fn get_unverified_size(
     connection: &Connection,
     hash: &Hash
 ) -> Result<(u64, Stats), Error>
Expand description

Get the claimed size of a blob from a peer.

diff --git a/pr/2574/docs/iroh/blobs/get/request/fn.get_verified_size.html b/pr/2574/docs/iroh/blobs/get/request/fn.get_verified_size.html index 23d8385ea5..efd7e623b6 100644 --- a/pr/2574/docs/iroh/blobs/get/request/fn.get_verified_size.html +++ b/pr/2574/docs/iroh/blobs/get/request/fn.get_verified_size.html @@ -1,4 +1,4 @@ -get_verified_size in iroh::blobs::get::request - Rust

Function iroh::blobs::get::request::get_verified_size

source ·
pub async fn get_verified_size(
+get_verified_size in iroh::blobs::get::request - Rust

Function iroh::blobs::get::request::get_verified_size

pub async fn get_verified_size(
     connection: &Connection,
     hash: &Hash
 ) -> Result<(u64, Stats), Error>
Expand description

Get the verified size of a blob from a peer.

diff --git a/pr/2574/docs/iroh/blobs/get/request/fn.random_hash_seq_ranges.html b/pr/2574/docs/iroh/blobs/get/request/fn.random_hash_seq_ranges.html index e062f2bedf..4f01ebcfeb 100644 --- a/pr/2574/docs/iroh/blobs/get/request/fn.random_hash_seq_ranges.html +++ b/pr/2574/docs/iroh/blobs/get/request/fn.random_hash_seq_ranges.html @@ -1,4 +1,4 @@ -random_hash_seq_ranges in iroh::blobs::get::request - Rust

Function iroh::blobs::get::request::random_hash_seq_ranges

source ·
pub fn random_hash_seq_ranges(sizes: &[u64], rng: impl Rng) -> RangeSpecSeq
Expand description

Given a sequence of sizes of children, generate a range spec that selects a +random_hash_seq_ranges in iroh::blobs::get::request - Rust

Function iroh::blobs::get::request::random_hash_seq_ranges

pub fn random_hash_seq_ranges(sizes: &[u64], rng: impl Rng) -> RangeSpecSeq
Expand description

Given a sequence of sizes of children, generate a range spec that selects a random chunk of a random child.

The random chunk is chosen uniformly from the chunks of the children, so larger children are more likely to be selected.

diff --git a/pr/2574/docs/iroh/blobs/get/request/index.html b/pr/2574/docs/iroh/blobs/get/request/index.html index 850a52df1b..a3794a9b7a 100644 --- a/pr/2574/docs/iroh/blobs/get/request/index.html +++ b/pr/2574/docs/iroh/blobs/get/request/index.html @@ -1,4 +1,4 @@ -iroh::blobs::get::request - Rust

Module iroh::blobs::get::request

source ·
Expand description

Utilities for complex get requests.

+iroh::blobs::get::request - Rust

Module iroh::blobs::get::request

Expand description

Utilities for complex get requests.

Functions§

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/get/struct.Stats.html b/pr/2574/docs/iroh/blobs/get/struct.Stats.html index bbd58ca23c..4e12cf5337 100644 --- a/pr/2574/docs/iroh/blobs/get/struct.Stats.html +++ b/pr/2574/docs/iroh/blobs/get/struct.Stats.html @@ -1,4 +1,4 @@ -Stats in iroh::blobs::get - Rust

Struct iroh::blobs::get::Stats

source ·
pub struct Stats {
+Stats in iroh::blobs::get - Rust

Struct iroh::blobs::get::Stats

pub struct Stats {
     pub bytes_written: u64,
     pub bytes_read: u64,
     pub elapsed: Duration,
@@ -6,17 +6,17 @@
 

Fields§

§bytes_written: u64

The number of bytes written

§bytes_read: u64

The number of bytes read

§elapsed: Duration

The time it took to transfer the data

-

Implementations§

source§

impl Stats

source

pub fn mbits(&self) -> f64

Transfer rate in megabits per second

-

Trait Implementations§

source§

impl Clone for Stats

source§

fn clone(&self) -> Stats

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Stats

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for Stats

source§

fn default() -> Stats

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Stats

Implementations§

§

impl Stats

pub fn mbits(&self) -> f64

Transfer rate in megabits per second

+

Trait Implementations§

§

impl Clone for Stats

§

fn clone(&self) -> Stats

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for Stats

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for Stats

§

fn default() -> Stats

Returns the “default value” for a type. Read more
§

impl<'de> Deserialize<'de> for Stats

§

fn deserialize<__D>( __deserializer: __D ) -> Result<Stats, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for Stats

source§

fn eq(&self, other: &Stats) -> bool

This method tests for self and other values to be equal, and is used + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

§

impl PartialEq for Stats

§

fn eq(&self, other: &Stats) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Stats

source§

fn serialize<__S>( +sufficient, and should not be overridden without very good reason.

§

impl Serialize for Stats

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Stats

source§

impl StructuralPartialEq for Stats

Auto Trait Implementations§

§

impl Freeze for Stats

§

impl RefUnwindSafe for Stats

§

impl Send for Stats

§

impl Sync for Stats

§

impl Unpin for Stats

§

impl UnwindSafe for Stats

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

§

impl Eq for Stats

§

impl StructuralPartialEq for Stats

Auto Trait Implementations§

§

impl Freeze for Stats

§

impl RefUnwindSafe for Stats

§

impl Send for Stats

§

impl Sync for Stats

§

impl Unpin for Stats

§

impl UnwindSafe for Stats

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/hashseq/fn.parse_hash_seq.html b/pr/2574/docs/iroh/blobs/hashseq/fn.parse_hash_seq.html index 177b8f7e49..1d61f99f9a 100644 --- a/pr/2574/docs/iroh/blobs/hashseq/fn.parse_hash_seq.html +++ b/pr/2574/docs/iroh/blobs/hashseq/fn.parse_hash_seq.html @@ -1,4 +1,4 @@ -parse_hash_seq in iroh::blobs::hashseq - Rust

Function iroh::blobs::hashseq::parse_hash_seq

source ·
pub async fn parse_hash_seq<'a, R>(
+parse_hash_seq in iroh::blobs::hashseq - Rust

Function iroh::blobs::hashseq::parse_hash_seq

pub async fn parse_hash_seq<'a, R>(
     reader: R
 ) -> Result<(HashSeqStream, u64), Error>
where R: AsyncSliceReader + 'a,
Expand description

Parse a sequence of hashes.

diff --git a/pr/2574/docs/iroh/blobs/hashseq/index.html b/pr/2574/docs/iroh/blobs/hashseq/index.html index 1aefdbd210..cf53ed2ad2 100644 --- a/pr/2574/docs/iroh/blobs/hashseq/index.html +++ b/pr/2574/docs/iroh/blobs/hashseq/index.html @@ -1,2 +1,2 @@ -iroh::blobs::hashseq - Rust

Module iroh::blobs::hashseq

source ·
Expand description

traits related to collections of blobs

+iroh::blobs::hashseq - Rust

Module iroh::blobs::hashseq

Expand description

traits related to collections of blobs

Structs§

Functions§

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/hashseq/struct.HashSeq.html b/pr/2574/docs/iroh/blobs/hashseq/struct.HashSeq.html index 7b7ad0123a..ada4f1d990 100644 --- a/pr/2574/docs/iroh/blobs/hashseq/struct.HashSeq.html +++ b/pr/2574/docs/iroh/blobs/hashseq/struct.HashSeq.html @@ -1,13 +1,13 @@ -HashSeq in iroh::blobs::hashseq - Rust

Struct iroh::blobs::hashseq::HashSeq

source ·
pub struct HashSeq(/* private fields */);
Expand description

A sequence of links, backed by a [Bytes] object.

-

Implementations§

source§

impl HashSeq

source

pub fn new(bytes: Bytes) -> Option<HashSeq>

Create a new sequence of hashes.

-
source

pub fn iter(&self) -> impl Iterator<Item = Hash>

Iterate over the hashes in this sequence.

-
source

pub fn len(&self) -> usize

Get the number of hashes in this sequence.

-
source

pub fn is_empty(&self) -> bool

Check if this sequence is empty.

-
source

pub fn get(&self, index: usize) -> Option<Hash>

Get the hash at the given index.

-
source

pub fn pop_front(&mut self) -> Option<Hash>

Get and remove the first hash in this sequence.

-
source

pub fn into_inner(self) -> Bytes

Get the underlying bytes.

-

Trait Implementations§

source§

impl Clone for HashSeq

source§

fn clone(&self) -> HashSeq

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for HashSeq

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl FromIterator<Hash> for HashSeq

source§

fn from_iter<T>(iter: T) -> HashSeq
where - T: IntoIterator<Item = Hash>,

Creates a value from an iterator. Read more
source§

impl IntoIterator for HashSeq

§

type Item = Hash

The type of the elements being iterated over.
§

type IntoIter = HashSeqIter

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> <HashSeq as IntoIterator>::IntoIter

Creates an iterator from a value. Read more
source§

impl TryFrom<Bytes> for HashSeq

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(bytes: Bytes) -> Result<HashSeq, <HashSeq as TryFrom<Bytes>>::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +HashSeq in iroh::blobs::hashseq - Rust

Struct iroh::blobs::hashseq::HashSeq

pub struct HashSeq(/* private fields */);
Expand description

A sequence of links, backed by a [Bytes] object.

+

Implementations§

§

impl HashSeq

pub fn new(bytes: Bytes) -> Option<HashSeq>

Create a new sequence of hashes.

+

pub fn iter(&self) -> impl Iterator<Item = Hash>

Iterate over the hashes in this sequence.

+

pub fn len(&self) -> usize

Get the number of hashes in this sequence.

+

pub fn is_empty(&self) -> bool

Check if this sequence is empty.

+

pub fn get(&self, index: usize) -> Option<Hash>

Get the hash at the given index.

+

pub fn pop_front(&mut self) -> Option<Hash>

Get and remove the first hash in this sequence.

+

pub fn into_inner(self) -> Bytes

Get the underlying bytes.

+

Trait Implementations§

§

impl Clone for HashSeq

§

fn clone(&self) -> HashSeq

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for HashSeq

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl FromIterator<Hash> for HashSeq

§

fn from_iter<T>(iter: T) -> HashSeq
where + T: IntoIterator<Item = Hash>,

Creates a value from an iterator. Read more
§

impl IntoIterator for HashSeq

§

type Item = Hash

The type of the elements being iterated over.
§

type IntoIter = HashSeqIter

Which kind of iterator are we turning this into?
§

fn into_iter(self) -> <HashSeq as IntoIterator>::IntoIter

Creates an iterator from a value. Read more
§

impl TryFrom<Bytes> for HashSeq

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_from(bytes: Bytes) -> Result<HashSeq, <HashSeq as TryFrom<Bytes>>::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/hashseq/struct.HashSeqIter.html b/pr/2574/docs/iroh/blobs/hashseq/struct.HashSeqIter.html index be45f52079..93f111ecf1 100644 --- a/pr/2574/docs/iroh/blobs/hashseq/struct.HashSeqIter.html +++ b/pr/2574/docs/iroh/blobs/hashseq/struct.HashSeqIter.html @@ -1,5 +1,5 @@ -HashSeqIter in iroh::blobs::hashseq - Rust

Struct iroh::blobs::hashseq::HashSeqIter

source ·
pub struct HashSeqIter(/* private fields */);
Expand description

Iterator over the hashes in a HashSeq.

-

Trait Implementations§

source§

impl Clone for HashSeqIter

source§

fn clone(&self) -> HashSeqIter

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for HashSeqIter

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Iterator for HashSeqIter

§

type Item = Hash

The type of the elements being iterated over.
source§

fn next(&mut self) -> Option<<HashSeqIter as Iterator>::Item>

Advances the iterator and returns the next value. Read more
source§

fn next_chunk<const N: usize>( +HashSeqIter in iroh::blobs::hashseq - Rust

Struct iroh::blobs::hashseq::HashSeqIter

pub struct HashSeqIter(/* private fields */);
Expand description

Iterator over the hashes in a HashSeq.

+

Trait Implementations§

§

impl Clone for HashSeqIter

§

fn clone(&self) -> HashSeqIter

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for HashSeqIter

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Iterator for HashSeqIter

§

type Item = Hash

The type of the elements being iterated over.
§

fn next(&mut self) -> Option<<HashSeqIter as Iterator>::Item>

Advances the iterator and returns the next value. Read more
source§

fn next_chunk<const N: usize>( &mut self ) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
where Self: Sized,

🔬This is a nightly-only experimental API. (iter_next_chunk)
Advances the iterator and returns an array containing the next N values. Read more
1.0.0 · source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the iterator. Read more
1.0.0 · source§

fn count(self) -> usize
where diff --git a/pr/2574/docs/iroh/blobs/hashseq/struct.HashSeqStream.html b/pr/2574/docs/iroh/blobs/hashseq/struct.HashSeqStream.html index b6c94a43ea..ad26365606 100644 --- a/pr/2574/docs/iroh/blobs/hashseq/struct.HashSeqStream.html +++ b/pr/2574/docs/iroh/blobs/hashseq/struct.HashSeqStream.html @@ -1,8 +1,8 @@ -HashSeqStream in iroh::blobs::hashseq - Rust

Struct iroh::blobs::hashseq::HashSeqStream

source ·
pub struct HashSeqStream(/* private fields */);
Expand description

Stream over the hashes in a HashSeq.

+HashSeqStream in iroh::blobs::hashseq - Rust

Struct iroh::blobs::hashseq::HashSeqStream

pub struct HashSeqStream(/* private fields */);
Expand description

Stream over the hashes in a HashSeq.

todo: make this wrap a reader instead of a HashSeq.

-

Implementations§

source§

impl HashSeqStream

source

pub async fn next(&mut self) -> Result<Option<Hash>, Error>

Get the next hash in the sequence.

-
source

pub async fn skip(&mut self, n: u64) -> Result<(), Error>

Skip a number of hashes in the sequence.

-

Trait Implementations§

source§

impl Clone for HashSeqStream

source§

fn clone(&self) -> HashSeqStream

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for HashSeqStream

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Implementations§

§

impl HashSeqStream

pub async fn next(&mut self) -> Result<Option<Hash>, Error>

Get the next hash in the sequence.

+

pub async fn skip(&mut self, n: u64) -> Result<(), Error>

Skip a number of hashes in the sequence.

+

Trait Implementations§

§

impl Clone for HashSeqStream

§

fn clone(&self) -> HashSeqStream

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for HashSeqStream

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/index.html b/pr/2574/docs/iroh/blobs/index.html index 3f82274bf4..af1da66c15 100644 --- a/pr/2574/docs/iroh/blobs/index.html +++ b/pr/2574/docs/iroh/blobs/index.html @@ -1,4 +1,4 @@ -iroh::blobs - Rust

Crate iroh::blobs

source ·
Expand description

Blobs layer for iroh.

+iroh::blobs - Rust

Crate iroh::blobs

Expand description

Blobs layer for iroh.

Modules§

§

impl From<GetRequest> for Request

§

fn from(value: GetRequest) -> Request

Converts to this type from the input type.
§

impl PartialEq for Request

§

fn eq(&self, other: &Request) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Request

source§

fn serialize<__S>( +sufficient, and should not be overridden without very good reason.

§

impl Serialize for Request

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Request

source§

impl StructuralPartialEq for Request

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Eq for Request

§

impl StructuralPartialEq for Request

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/protocol/index.html b/pr/2574/docs/iroh/blobs/protocol/index.html index e8858fcab0..b493a1dae3 100644 --- a/pr/2574/docs/iroh/blobs/protocol/index.html +++ b/pr/2574/docs/iroh/blobs/protocol/index.html @@ -1,4 +1,4 @@ -iroh::blobs::protocol - Rust

Module iroh::blobs::protocol

source ·
Expand description

Protocol for transferring content-addressed blobs and collections over quic +iroh::blobs::protocol - Rust

Module iroh::blobs::protocol

Expand description

Protocol for transferring content-addressed blobs and collections over quic connections. This can be used either with normal quic connections when using the quinn crate or with magicsock connections when using the iroh-net crate.

diff --git a/pr/2574/docs/iroh/blobs/protocol/struct.GetRequest.html b/pr/2574/docs/iroh/blobs/protocol/struct.GetRequest.html index 62e454ca0a..1f7877202f 100644 --- a/pr/2574/docs/iroh/blobs/protocol/struct.GetRequest.html +++ b/pr/2574/docs/iroh/blobs/protocol/struct.GetRequest.html @@ -1,27 +1,27 @@ -GetRequest in iroh::blobs::protocol - Rust

Struct iroh::blobs::protocol::GetRequest

source ·
pub struct GetRequest {
+GetRequest in iroh::blobs::protocol - Rust

Struct iroh::blobs::protocol::GetRequest

pub struct GetRequest {
     pub hash: Hash,
     pub ranges: RangeSpecSeq,
 }
Expand description

A request

Fields§

§hash: Hash

blake3 hash

§ranges: RangeSpecSeq

The range of data to request

The first element is the parent, all subsequent elements are children.

-

Implementations§

source§

impl GetRequest

source

pub fn new(hash: Hash, ranges: RangeSpecSeq) -> GetRequest

Request a blob or collection with specified ranges

-
source

pub fn all(hash: Hash) -> GetRequest

Request a collection and all its children

-
source

pub fn single(hash: Hash) -> GetRequest

Request just a single blob

-
source

pub fn last_chunk(hash: Hash) -> GetRequest

Request the last chunk of a single blob

+

Implementations§

§

impl GetRequest

pub fn new(hash: Hash, ranges: RangeSpecSeq) -> GetRequest

Request a blob or collection with specified ranges

+

pub fn all(hash: Hash) -> GetRequest

Request a collection and all its children

+

pub fn single(hash: Hash) -> GetRequest

Request just a single blob

+

pub fn last_chunk(hash: Hash) -> GetRequest

Request the last chunk of a single blob

This can be used to get the verified size of a blob.

-
source

pub fn last_chunks(hash: Hash) -> GetRequest

Request the last chunk for all children

+

pub fn last_chunks(hash: Hash) -> GetRequest

Request the last chunk for all children

This can be used to get the verified size of all children.

-

Trait Implementations§

source§

impl Clone for GetRequest

source§

fn clone(&self) -> GetRequest

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for GetRequest

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for GetRequest

Trait Implementations§

§

impl Clone for GetRequest

§

fn clone(&self) -> GetRequest

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for GetRequest

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for GetRequest

§

fn deserialize<__D>( __deserializer: __D ) -> Result<GetRequest, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<GetRequest> for Request

source§

fn from(value: GetRequest) -> Request

Converts to this type from the input type.
source§

impl PartialEq for GetRequest

source§

fn eq(&self, other: &GetRequest) -> bool

This method tests for self and other values to be equal, and is used + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

§

impl From<GetRequest> for Request

§

fn from(value: GetRequest) -> Request

Converts to this type from the input type.
§

impl PartialEq for GetRequest

§

fn eq(&self, other: &GetRequest) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for GetRequest

source§

fn serialize<__S>( +sufficient, and should not be overridden without very good reason.

§

impl Serialize for GetRequest

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for GetRequest

source§

impl StructuralPartialEq for GetRequest

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

§

impl Eq for GetRequest

§

impl StructuralPartialEq for GetRequest

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/protocol/struct.NonEmptyRequestRangeSpecIter.html b/pr/2574/docs/iroh/blobs/protocol/struct.NonEmptyRequestRangeSpecIter.html index 6b559eddff..133402a508 100644 --- a/pr/2574/docs/iroh/blobs/protocol/struct.NonEmptyRequestRangeSpecIter.html +++ b/pr/2574/docs/iroh/blobs/protocol/struct.NonEmptyRequestRangeSpecIter.html @@ -1,6 +1,6 @@ -NonEmptyRequestRangeSpecIter in iroh::blobs::protocol - Rust

Struct iroh::blobs::protocol::NonEmptyRequestRangeSpecIter

source ·
pub struct NonEmptyRequestRangeSpecIter<'a> { /* private fields */ }
Expand description

An iterator over blobs in the sequence with a non-empty range specs.

+NonEmptyRequestRangeSpecIter in iroh::blobs::protocol - Rust

Struct iroh::blobs::protocol::NonEmptyRequestRangeSpecIter

pub struct NonEmptyRequestRangeSpecIter<'a> { /* private fields */ }
Expand description

An iterator over blobs in the sequence with a non-empty range specs.

default is what to use if the children of this RequestRangeSpec are empty.

-

Trait Implementations§

source§

impl<'a> Debug for NonEmptyRequestRangeSpecIter<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'a> Iterator for NonEmptyRequestRangeSpecIter<'a>

§

type Item = (u64, &'a RangeSpec)

The type of the elements being iterated over.
source§

fn next( +

Trait Implementations§

§

impl<'a> Debug for NonEmptyRequestRangeSpecIter<'a>

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'a> Iterator for NonEmptyRequestRangeSpecIter<'a>

§

type Item = (u64, &'a RangeSpec)

The type of the elements being iterated over.
§

fn next( &mut self ) -> Option<<NonEmptyRequestRangeSpecIter<'a> as Iterator>::Item>

Advances the iterator and returns the next value. Read more
source§

fn next_chunk<const N: usize>( &mut self diff --git a/pr/2574/docs/iroh/blobs/protocol/struct.RangeSpec.html b/pr/2574/docs/iroh/blobs/protocol/struct.RangeSpec.html index e7422e73fc..8a6736aad7 100644 --- a/pr/2574/docs/iroh/blobs/protocol/struct.RangeSpec.html +++ b/pr/2574/docs/iroh/blobs/protocol/struct.RangeSpec.html @@ -1,4 +1,4 @@ -RangeSpec in iroh::blobs::protocol - Rust

Struct iroh::blobs::protocol::RangeSpec

source ·
pub struct RangeSpec(/* private fields */);
Expand description

A chunk range specification as a sequence of chunk offsets.

+RangeSpec in iroh::blobs::protocol - Rust

Struct iroh::blobs::protocol::RangeSpec

pub struct RangeSpec(/* private fields */);
Expand description

A chunk range specification as a sequence of chunk offsets.

Offsets encode alternating spans starting on 0, where the first span is always deselected.

§Examples:

@@ -29,26 +29,26 @@

§Examples:

This is a SmallVec so we can avoid allocations for the very common case of a single chunk range.

-

Implementations§

source§

impl RangeSpec

source

pub fn new(ranges: impl AsRef<RangeSetRef<ChunkNum>>) -> RangeSpec

Creates a new RangeSpec from a range set.

-
source

pub const EMPTY: RangeSpec = _

A RangeSpec selecting nothing from the blob.

+

Implementations§

§

impl RangeSpec

pub fn new(ranges: impl AsRef<RangeSetRef<ChunkNum>>) -> RangeSpec

Creates a new RangeSpec from a range set.

+

pub const EMPTY: RangeSpec = _

A RangeSpec selecting nothing from the blob.

This is called “empty” because the representation is an empty set.

-
source

pub fn all() -> RangeSpec

Creates a RangeSpec selecting the entire blob.

-
source

pub fn is_empty(&self) -> bool

Checks if this RangeSpec does not select any chunks in the blob.

-
source

pub fn is_all(&self) -> bool

Checks if this RangeSpec selects all chunks in the blob.

-
source

pub fn to_chunk_ranges(&self) -> RangeSet<[ChunkNum; 2]>

Creates a ChunkRanges from this RangeSpec.

-

Trait Implementations§

source§

impl Clone for RangeSpec

source§

fn clone(&self) -> RangeSpec

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RangeSpec

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for RangeSpec

pub fn all() -> RangeSpec

Creates a RangeSpec selecting the entire blob.

+

pub fn is_empty(&self) -> bool

Checks if this RangeSpec does not select any chunks in the blob.

+

pub fn is_all(&self) -> bool

Checks if this RangeSpec selects all chunks in the blob.

+

pub fn to_chunk_ranges(&self) -> RangeSet<[ChunkNum; 2]>

Creates a ChunkRanges from this RangeSpec.

+

Trait Implementations§

§

impl Clone for RangeSpec

§

fn clone(&self) -> RangeSpec

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for RangeSpec

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for RangeSpec

§

fn deserialize<__D>( __deserializer: __D ) -> Result<RangeSpec, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for RangeSpec

source§

fn hash<__H>(&self, state: &mut __H)
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl Hash for RangeSpec

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for RangeSpec

source§

fn eq(&self, other: &RangeSpec) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl PartialEq for RangeSpec

§

fn eq(&self, other: &RangeSpec) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for RangeSpec

source§

fn serialize<__S>( +sufficient, and should not be overridden without very good reason.

§

impl Serialize for RangeSpec

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for RangeSpec

source§

impl StructuralPartialEq for RangeSpec

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

§

impl Eq for RangeSpec

§

impl StructuralPartialEq for RangeSpec

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/protocol/struct.RangeSpecSeq.html b/pr/2574/docs/iroh/blobs/protocol/struct.RangeSpecSeq.html index 22371884de..9d27ef44f8 100644 --- a/pr/2574/docs/iroh/blobs/protocol/struct.RangeSpecSeq.html +++ b/pr/2574/docs/iroh/blobs/protocol/struct.RangeSpecSeq.html @@ -1,4 +1,4 @@ -RangeSpecSeq in iroh::blobs::protocol - Rust

Struct iroh::blobs::protocol::RangeSpecSeq

source ·
pub struct RangeSpecSeq(/* private fields */);
Expand description

A chunk range specification for a sequence of blobs.

+RangeSpecSeq in iroh::blobs::protocol - Rust

Struct iroh::blobs::protocol::RangeSpecSeq

pub struct RangeSpecSeq(/* private fields */);
Expand description

A chunk range specification for a sequence of blobs.

To select chunks in a sequence of blobs this is encoded as a sequence of (blob_offset, range_spec) tuples. Offsets are interpreted in an accumulating fashion.

§Example:

Suppose two RangeSpecs range_a and range_b.

@@ -31,45 +31,45 @@

§Example:

This is a smallvec so that we can avoid allocations in the common case of a single child range.

-

Implementations§

source§

impl RangeSpecSeq

source

pub const fn empty() -> RangeSpecSeq

A RangeSpecSeq containing no chunks from any blobs in the sequence.

+

Implementations§

§

impl RangeSpecSeq

pub const fn empty() -> RangeSpecSeq

A RangeSpecSeq containing no chunks from any blobs in the sequence.

RangeSpecSeq::iter, will return an empty range forever.

-
source

pub fn as_single(&self) -> Option<(u64, &RangeSpec)>

If this range seq describes a range for a single item, returns the offset +

pub fn as_single(&self) -> Option<(u64, &RangeSpec)>

If this range seq describes a range for a single item, returns the offset and range spec for that item

-
source

pub fn all() -> RangeSpecSeq

A RangeSpecSeq containing all chunks from all blobs.

+

pub fn all() -> RangeSpecSeq

A RangeSpecSeq containing all chunks from all blobs.

RangeSpecSeq::iter, will return a full range forever.

-
source

pub fn from_ranges( +

pub fn from_ranges( ranges: impl IntoIterator<Item = impl AsRef<RangeSetRef<ChunkNum>>> ) -> RangeSpecSeq

Convenience function to create a RangeSpecSeq from a finite sequence of range sets.

-
source

pub fn from_ranges_infinite( +

pub fn from_ranges_infinite( ranges: impl IntoIterator<Item = impl AsRef<RangeSetRef<ChunkNum>>> ) -> RangeSpecSeq

Convenience function to create a RangeSpecSeq from a sequence of range sets.

Compared to RangeSpecSeq::from_ranges, this will not add an empty range spec at the end, so the final range spec will repeat forever.

-
source

pub fn new(children: impl IntoIterator<Item = RangeSpec>) -> RangeSpecSeq

Creates a new range spec sequence from a sequence of range specs.

+

pub fn new(children: impl IntoIterator<Item = RangeSpec>) -> RangeSpecSeq

Creates a new range spec sequence from a sequence of range specs.

This will merge adjacent range specs with the same value and thus make sure that the resulting sequence is as compact as possible.

-
source

pub fn iter(&self) -> RequestRangeSpecIter<'_>

An infinite iterator of range specs for blobs in the sequence.

+

pub fn iter(&self) -> RequestRangeSpecIter<'_>

An infinite iterator of range specs for blobs in the sequence.

Each item yielded by the iterator is the RangeSpec for a blob in the sequence. Thus the first call to .next() returns the range spec for the first blob, the next call returns the range spec of the second blob, etc.

-
source

pub fn iter_non_empty(&self) -> NonEmptyRequestRangeSpecIter<'_>

An iterator over blobs in the sequence with a non-empty range spec.

+

pub fn iter_non_empty(&self) -> NonEmptyRequestRangeSpecIter<'_>

An iterator over blobs in the sequence with a non-empty range spec.

This iterator will only yield items for blobs which have at least one chunk selected.

This iterator is infinite if the RangeSpecSeq ends on a non-empty RangeSpec, that is all further blobs have selected chunks spans.

-

Trait Implementations§

source§

impl Clone for RangeSpecSeq

source§

fn clone(&self) -> RangeSpecSeq

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RangeSpecSeq

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for RangeSpecSeq

Trait Implementations§

§

impl Clone for RangeSpecSeq

§

fn clone(&self) -> RangeSpecSeq

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for RangeSpecSeq

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for RangeSpecSeq

§

fn deserialize<__D>( __deserializer: __D ) -> Result<RangeSpecSeq, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for RangeSpecSeq

source§

fn hash<__H>(&self, state: &mut __H)
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl Hash for RangeSpecSeq

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for RangeSpecSeq

source§

fn eq(&self, other: &RangeSpecSeq) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more

§

impl PartialEq for RangeSpecSeq

§

fn eq(&self, other: &RangeSpecSeq) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for RangeSpecSeq

source§

fn serialize<__S>( +sufficient, and should not be overridden without very good reason.

§

impl Serialize for RangeSpecSeq

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for RangeSpecSeq

source§

impl StructuralPartialEq for RangeSpecSeq

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Eq for RangeSpecSeq

§

impl StructuralPartialEq for RangeSpecSeq

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/protocol/struct.UnknownErrorCode.html b/pr/2574/docs/iroh/blobs/protocol/struct.UnknownErrorCode.html index e0b459aeb1..5bfd63f34a 100644 --- a/pr/2574/docs/iroh/blobs/protocol/struct.UnknownErrorCode.html +++ b/pr/2574/docs/iroh/blobs/protocol/struct.UnknownErrorCode.html @@ -1,5 +1,5 @@ -UnknownErrorCode in iroh::blobs::protocol - Rust

Struct iroh::blobs::protocol::UnknownErrorCode

source ·
pub struct UnknownErrorCode(/* private fields */);
Expand description

Unknown error_code, can not be converted into Closed.

-

Trait Implementations§

source§

impl Debug for UnknownErrorCode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for UnknownErrorCode

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for UnknownErrorCode

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +UnknownErrorCode in iroh::blobs::protocol - Rust

Struct iroh::blobs::protocol::UnknownErrorCode

pub struct UnknownErrorCode(/* private fields */);
Expand description

Unknown error_code, can not be converted into Closed.

+

Trait Implementations§

§

impl Debug for UnknownErrorCode

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for UnknownErrorCode

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for UnknownErrorCode

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/provider/enum.AddProgress.html b/pr/2574/docs/iroh/blobs/provider/enum.AddProgress.html index e0b5b5361c..068b935f9a 100644 --- a/pr/2574/docs/iroh/blobs/provider/enum.AddProgress.html +++ b/pr/2574/docs/iroh/blobs/provider/enum.AddProgress.html @@ -1,4 +1,4 @@ -AddProgress in iroh::blobs::provider - Rust

Enum iroh::blobs::provider::AddProgress

source ·
pub enum AddProgress {
+AddProgress in iroh::blobs::provider - Rust

Enum iroh::blobs::provider::AddProgress

pub enum AddProgress {
     Found {
         id: u64,
         name: String,
@@ -35,10 +35,10 @@
 
§tag: Tag

The tag of the added data.

§

Abort(RpcError)

We got an error and need to abort.

This will be the last message in the stream.

-

Trait Implementations§

source§

impl Debug for AddProgress

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for AddProgress

Trait Implementations§

§

impl Debug for AddProgress

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for AddProgress

§

fn deserialize<__D>( __deserializer: __D ) -> Result<AddProgress, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for AddProgress

source§

fn serialize<__S>( + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

§

impl Serialize for AddProgress

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where diff --git a/pr/2574/docs/iroh/blobs/provider/enum.Event.html b/pr/2574/docs/iroh/blobs/provider/enum.Event.html index 147621d4a1..81e32d5bc3 100644 --- a/pr/2574/docs/iroh/blobs/provider/enum.Event.html +++ b/pr/2574/docs/iroh/blobs/provider/enum.Event.html @@ -1,4 +1,4 @@ -Event in iroh::blobs::provider - Rust

Enum iroh::blobs::provider::Event

source ·
pub enum Event {
+Event in iroh::blobs::provider - Rust

Enum iroh::blobs::provider::Event

pub enum Event {
     TaggedBlobAdded {
         hash: Hash,
         format: BlobFormat,
@@ -73,7 +73,7 @@
 
§request_id: u64

An identifier uniquely identifying this request.

§stats: Option<Box<TransferStats>>

statistics about the transfer. This is None if the transfer was aborted before any data was sent.

-

Trait Implementations§

source§

impl Clone for Event

source§

fn clone(&self) -> Event

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Event

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !Freeze for Event

§

impl RefUnwindSafe for Event

§

impl Send for Event

§

impl Sync for Event

§

impl Unpin for Event

§

impl UnwindSafe for Event

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Clone for Event

§

fn clone(&self) -> Event

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for Event

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !Freeze for Event

§

impl RefUnwindSafe for Event

§

impl Send for Event

§

impl Sync for Event

§

impl Unpin for Event

§

impl UnwindSafe for Event

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/provider/enum.SentStatus.html b/pr/2574/docs/iroh/blobs/provider/enum.SentStatus.html index 5bb624d02c..75d59f399e 100644 --- a/pr/2574/docs/iroh/blobs/provider/enum.SentStatus.html +++ b/pr/2574/docs/iroh/blobs/provider/enum.SentStatus.html @@ -1,12 +1,12 @@ -SentStatus in iroh::blobs::provider - Rust

Enum iroh::blobs::provider::SentStatus

source ·
pub enum SentStatus {
+SentStatus in iroh::blobs::provider - Rust

Enum iroh::blobs::provider::SentStatus

pub enum SentStatus {
     Sent,
     NotFound,
 }
Expand description

Status of a send operation

Variants§

§

Sent

The requested data was sent

§

NotFound

The requested data was not found

-

Trait Implementations§

source§

impl Clone for SentStatus

source§

fn clone(&self) -> SentStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SentStatus

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl PartialEq for SentStatus

source§

fn eq(&self, other: &SentStatus) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

§

impl Clone for SentStatus

§

fn clone(&self) -> SentStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for SentStatus

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl PartialEq for SentStatus

§

fn eq(&self, other: &SentStatus) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Eq for SentStatus

source§

impl StructuralPartialEq for SentStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

§

impl Eq for SentStatus

§

impl StructuralPartialEq for SentStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/provider/fn.handle_connection.html b/pr/2574/docs/iroh/blobs/provider/fn.handle_connection.html index ce4bc07961..cfa2cfe5e6 100644 --- a/pr/2574/docs/iroh/blobs/provider/fn.handle_connection.html +++ b/pr/2574/docs/iroh/blobs/provider/fn.handle_connection.html @@ -1,4 +1,4 @@ -handle_connection in iroh::blobs::provider - Rust

Function iroh::blobs::provider::handle_connection

source ·
pub async fn handle_connection<D, E>(
+handle_connection in iroh::blobs::provider - Rust

Function iroh::blobs::provider::handle_connection

pub async fn handle_connection<D, E>(
     connection: Connection,
     db: D,
     events: E,
diff --git a/pr/2574/docs/iroh/blobs/provider/fn.handle_get.html b/pr/2574/docs/iroh/blobs/provider/fn.handle_get.html
index 6bcad90766..7b4ca616a5 100644
--- a/pr/2574/docs/iroh/blobs/provider/fn.handle_get.html
+++ b/pr/2574/docs/iroh/blobs/provider/fn.handle_get.html
@@ -1,4 +1,4 @@
-handle_get in iroh::blobs::provider - Rust

Function iroh::blobs::provider::handle_get

source ·
pub async fn handle_get<D, E>(
+handle_get in iroh::blobs::provider - Rust

Function iroh::blobs::provider::handle_get

pub async fn handle_get<D, E>(
     db: D,
     request: GetRequest,
     writer: ResponseWriter<E>
diff --git a/pr/2574/docs/iroh/blobs/provider/fn.read_request.html b/pr/2574/docs/iroh/blobs/provider/fn.read_request.html
index 4d33cfec0c..9cdd713008 100644
--- a/pr/2574/docs/iroh/blobs/provider/fn.read_request.html
+++ b/pr/2574/docs/iroh/blobs/provider/fn.read_request.html
@@ -1,4 +1,4 @@
-read_request in iroh::blobs::provider - Rust

Function iroh::blobs::provider::read_request

source ·
pub async fn read_request(reader: RecvStream) -> Result<Request, Error>
Expand description

Read the request from the getter.

+read_request in iroh::blobs::provider - Rust

Function iroh::blobs::provider::read_request

pub async fn read_request(reader: RecvStream) -> Result<Request, Error>
Expand description

Read the request from the getter.

Will fail if there is an error while reading, if the reader contains more data than the Request, or if no valid request is sent.

When successful, the buffer is empty after this function call.

diff --git a/pr/2574/docs/iroh/blobs/provider/fn.send_blob.html b/pr/2574/docs/iroh/blobs/provider/fn.send_blob.html index 2ed7949a3c..a5c8ac4e3d 100644 --- a/pr/2574/docs/iroh/blobs/provider/fn.send_blob.html +++ b/pr/2574/docs/iroh/blobs/provider/fn.send_blob.html @@ -1,4 +1,4 @@ -send_blob in iroh::blobs::provider - Rust

Function iroh::blobs::provider::send_blob

source ·
pub async fn send_blob<D, W>(
+send_blob in iroh::blobs::provider - Rust

Function iroh::blobs::provider::send_blob

pub async fn send_blob<D, W>(
     db: &D,
     hash: Hash,
     ranges: &RangeSpec,
diff --git a/pr/2574/docs/iroh/blobs/provider/fn.transfer_collection.html b/pr/2574/docs/iroh/blobs/provider/fn.transfer_collection.html
index 75867664cf..b54b337b6b 100644
--- a/pr/2574/docs/iroh/blobs/provider/fn.transfer_collection.html
+++ b/pr/2574/docs/iroh/blobs/provider/fn.transfer_collection.html
@@ -1,4 +1,4 @@
-transfer_collection in iroh::blobs::provider - Rust

Function iroh::blobs::provider::transfer_collection

source ·
pub async fn transfer_collection<D, E>(
+transfer_collection in iroh::blobs::provider - Rust

Function iroh::blobs::provider::transfer_collection

pub async fn transfer_collection<D, E>(
     request: GetRequest,
     db: &D,
     writer: &mut ResponseWriter<E>,
diff --git a/pr/2574/docs/iroh/blobs/provider/index.html b/pr/2574/docs/iroh/blobs/provider/index.html
index 1a1a4a2b5f..cf284696a6 100644
--- a/pr/2574/docs/iroh/blobs/provider/index.html
+++ b/pr/2574/docs/iroh/blobs/provider/index.html
@@ -1,2 +1,2 @@
-iroh::blobs::provider - Rust

Module iroh::blobs::provider

source ·
Expand description

The server side API

+iroh::blobs::provider - Rust

Module iroh::blobs::provider

Expand description

The server side API

Structs§

  • A helper struct that combines a quinn::SendStream with auxiliary information
  • The stats for a transfer of a collection or blob.

Enums§

  • Progress updates for the add operation.
  • Events emitted by the provider informing about the current status.
  • Status of a send operation

Traits§

Functions§

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/provider/struct.ResponseWriter.html b/pr/2574/docs/iroh/blobs/provider/struct.ResponseWriter.html index c31d8e09f6..2c412e83d9 100644 --- a/pr/2574/docs/iroh/blobs/provider/struct.ResponseWriter.html +++ b/pr/2574/docs/iroh/blobs/provider/struct.ResponseWriter.html @@ -1,6 +1,6 @@ -ResponseWriter in iroh::blobs::provider - Rust

Struct iroh::blobs::provider::ResponseWriter

source ·
pub struct ResponseWriter<E> { /* private fields */ }
Expand description

A helper struct that combines a quinn::SendStream with auxiliary information

-

Trait Implementations§

source§

impl<E> Debug for ResponseWriter<E>
where - E: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<E> Freeze for ResponseWriter<E>
where +ResponseWriter in iroh::blobs::provider - Rust

Struct iroh::blobs::provider::ResponseWriter

pub struct ResponseWriter<E> { /* private fields */ }
Expand description

A helper struct that combines a quinn::SendStream with auxiliary information

+

Trait Implementations§

§

impl<E> Debug for ResponseWriter<E>
where + E: Debug,

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<E> Freeze for ResponseWriter<E>
where E: Freeze,

§

impl<E> !RefUnwindSafe for ResponseWriter<E>

§

impl<E> Send for ResponseWriter<E>
where E: Send,

§

impl<E> Sync for ResponseWriter<E>
where E: Sync,

§

impl<E> Unpin for ResponseWriter<E>
where diff --git a/pr/2574/docs/iroh/blobs/provider/struct.TransferStats.html b/pr/2574/docs/iroh/blobs/provider/struct.TransferStats.html index 17757c21e6..5f5158e90e 100644 --- a/pr/2574/docs/iroh/blobs/provider/struct.TransferStats.html +++ b/pr/2574/docs/iroh/blobs/provider/struct.TransferStats.html @@ -1,4 +1,4 @@ -TransferStats in iroh::blobs::provider - Rust

Struct iroh::blobs::provider::TransferStats

source ·
pub struct TransferStats {
+TransferStats in iroh::blobs::provider - Rust

Struct iroh::blobs::provider::TransferStats

pub struct TransferStats {
     pub send: StreamWriterStats,
     pub read: SliceReaderStats,
     pub duration: Duration,
@@ -6,7 +6,7 @@
 

Fields§

§send: StreamWriterStats

Stats for sending to the client.

§read: SliceReaderStats

Stats for reading from disk.

§duration: Duration

The total duration of the transfer.

-

Trait Implementations§

source§

impl Clone for TransferStats

source§

fn clone(&self) -> TransferStats

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for TransferStats

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for TransferStats

source§

fn default() -> TransferStats

Returns the “default value” for a type. Read more
source§

impl Copy for TransferStats

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Clone for TransferStats

§

fn clone(&self) -> TransferStats

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for TransferStats

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for TransferStats

§

fn default() -> TransferStats

Returns the “default value” for a type. Read more
§

impl Copy for TransferStats

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/provider/trait.EventSender.html b/pr/2574/docs/iroh/blobs/provider/trait.EventSender.html index f916cf9888..8993edb145 100644 --- a/pr/2574/docs/iroh/blobs/provider/trait.EventSender.html +++ b/pr/2574/docs/iroh/blobs/provider/trait.EventSender.html @@ -1,6 +1,6 @@ -EventSender in iroh::blobs::provider - Rust

Trait iroh::blobs::provider::EventSender

source ·
pub trait EventSender: Clone + Sync + Send + 'static {
+EventSender in iroh::blobs::provider - Rust

Trait iroh::blobs::provider::EventSender

pub trait EventSender: Clone + Sync + Send + 'static {
     // Required method
     fn send(&self, event: Event) -> Pin<Box<dyn Future<Output = ()> + Send>>;
 }
Expand description

Trait for sending events.

-

Required Methods§

source

fn send(&self, event: Event) -> Pin<Box<dyn Future<Output = ()> + Send>>

Send an event.

+

Required Methods§

fn send(&self, event: Event) -> Pin<Box<dyn Future<Output = ()> + Send>>

Send an event.

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/bao_tree/blake3/struct.Hash.html b/pr/2574/docs/iroh/blobs/store/bao_tree/blake3/struct.Hash.html index f3d53b156f..102126f42e 100644 --- a/pr/2574/docs/iroh/blobs/store/bao_tree/blake3/struct.Hash.html +++ b/pr/2574/docs/iroh/blobs/store/bao_tree/blake3/struct.Hash.html @@ -27,7 +27,7 @@ error.

Note that Hash also implements FromStr, so Hash::from_hex("...") is equivalent to "...".parse().

-

Trait Implementations§

§

impl Clone for Hash

§

fn clone(&self) -> Hash

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for Hash

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for Hash

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<[u8; 32]> for Hash

§

fn from(bytes: [u8; 32]) -> Hash

Converts to this type from the input type.
§

impl From<Hash> for [u8; 32]

§

fn from(hash: Hash) -> [u8; 32]

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
§

impl FromStr for Hash

§

type Err = HexError

The associated error which can be returned from parsing.
§

fn from_str(s: &str) -> Result<Hash, <Hash as FromStr>::Err>

Parses a string s to return a value of this type. Read more
§

impl Hash for Hash

§

fn hash<__H>(&self, state: &mut __H)
where +

Trait Implementations§

§

impl Clone for Hash

§

fn clone(&self) -> Hash

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for Hash

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for Hash

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<[u8; 32]> for Hash

§

fn from(bytes: [u8; 32]) -> Hash

Converts to this type from the input type.
§

impl From<Hash> for [u8; 32]

§

fn from(hash: Hash) -> [u8; 32]

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
§

impl FromStr for Hash

§

type Err = HexError

The associated error which can be returned from parsing.
§

fn from_str(s: &str) -> Result<Hash, <Hash as FromStr>::Err>

Parses a string s to return a value of this type. Read more
§

impl Hash for Hash

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl PartialEq<[u8]> for Hash

This implementation is constant-time if the target is 32 bytes long.

diff --git a/pr/2574/docs/iroh/blobs/store/bao_tree/io/enum.DecodeError.html b/pr/2574/docs/iroh/blobs/store/bao_tree/io/enum.DecodeError.html index 678597ac3f..189b232005 100644 --- a/pr/2574/docs/iroh/blobs/store/bao_tree/io/enum.DecodeError.html +++ b/pr/2574/docs/iroh/blobs/store/bao_tree/io/enum.DecodeError.html @@ -10,7 +10,7 @@
§

ParentHashMismatch(TreeNode)

The hash of a parent did not match the expected hash

§

LeafHashMismatch(ChunkNum)

The hash of a leaf did not match the expected hash

§

Io(Error)

There was an error reading from the underlying io

-

Trait Implementations§

§

impl Debug for DecodeError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for DecodeError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for DecodeError

§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<DecodeError> for DecodeError

source§

fn from(value: DecodeError) -> DecodeError

Converts to this type from the input type.
source§

impl From<DecodeError> for GetResponseError

source§

fn from(cause: DecodeError) -> GetResponseError

Converts to this type from the input type.
§

impl From<Error> for DecodeError

§

fn from(e: Error) -> DecodeError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for DecodeError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for DecodeError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for DecodeError

§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl From<DecodeError> for DecodeError

§

fn from(value: DecodeError) -> DecodeError

Converts to this type from the input type.
§

impl From<DecodeError> for GetResponseError

§

fn from(cause: DecodeError) -> GetResponseError

Converts to this type from the input type.
§

impl From<Error> for DecodeError

§

fn from(e: Error) -> DecodeError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/store/bao_tree/io/fsm/trait.AsyncSliceWriter.html b/pr/2574/docs/iroh/blobs/store/bao_tree/io/fsm/trait.AsyncSliceWriter.html index 26ef63eacc..b9b4109b6f 100644 --- a/pr/2574/docs/iroh/blobs/store/bao_tree/io/fsm/trait.AsyncSliceWriter.html +++ b/pr/2574/docs/iroh/blobs/store/bao_tree/io/fsm/trait.AsyncSliceWriter.html @@ -55,8 +55,8 @@ data: Bytes ) -> Result<(), Error>

§

async fn set_len(&mut self, len: u64) -> Result<(), Error>

§

async fn sync(&mut self) -> Result<(), Error>

Implementors§

§

impl AsyncSliceWriter for File

§

impl<W> AsyncSliceWriter for ConcatenateSliceWriter<W>
where W: AsyncWrite + Unpin + 'static,

§

impl<W> AsyncSliceWriter for TrackingSliceWriter<W>
where - W: AsyncSliceWriter,

source§

impl<W, F> AsyncSliceWriter for FallibleProgressSliceWriter<W, F>
where + W: AsyncSliceWriter,

§

impl<W, F> AsyncSliceWriter for FallibleProgressSliceWriter<W, F>
where W: AsyncSliceWriter + 'static, - F: Fn(u64, usize) -> Result<(), Error> + 'static,

source§

impl<W, F> AsyncSliceWriter for ProgressSliceWriter<W, F>
where + F: Fn(u64, usize) -> Result<(), Error> + 'static,

§

impl<W, F> AsyncSliceWriter for ProgressSliceWriter<W, F>
where W: AsyncSliceWriter + 'static, F: FnMut(u64, usize) + 'static,

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/bao_tree/io/sync/trait.ReadAt.html b/pr/2574/docs/iroh/blobs/store/bao_tree/io/sync/trait.ReadAt.html index b5cd11db11..ada0f6ed79 100644 --- a/pr/2574/docs/iroh/blobs/store/bao_tree/io/sync/trait.ReadAt.html +++ b/pr/2574/docs/iroh/blobs/store/bao_tree/io/sync/trait.ReadAt.html @@ -35,5 +35,5 @@

§Examples

R: ReadAt,

source§

fn read_at(&self, pos: u64, buf: &mut [u8]) -> Result<usize, Error>

source§

impl<'a, R> ReadAt for &'a R
where R: ReadAt + ?Sized,

source§

fn read_at(&self, pos: u64, buf: &mut [u8]) -> Result<usize, Error>

source§

impl<'a, R> ReadAt for &'a mut R
where R: ReadAt + ?Sized,

source§

fn read_at(&self, pos: u64, buf: &mut [u8]) -> Result<usize, Error>

source§

impl<R> ReadAt for Box<R>
where - R: ReadAt + ?Sized,

source§

fn read_at(&self, pos: u64, buf: &mut [u8]) -> Result<usize, Error>

Implementors§

source§

fn read_at(&self, pos: u64, buf: &mut [u8]) -> Result<usize, Error>

Implementors§

§

impl ReadAt for MemOrFile<Bytes, File>

§

impl ReadAt for SparseMemFile

source§

impl ReadAt for RandomAccessFile

source§

impl<I> ReadAt for Slice<I>
where I: ReadAt,

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/bao_tree/io/sync/trait.Size.html b/pr/2574/docs/iroh/blobs/store/bao_tree/io/sync/trait.Size.html index e1421e235b..4159ebe6d3 100644 --- a/pr/2574/docs/iroh/blobs/store/bao_tree/io/sync/trait.Size.html +++ b/pr/2574/docs/iroh/blobs/store/bao_tree/io/sync/trait.Size.html @@ -25,4 +25,4 @@

§Examples

S: Size,

source§

impl<'a, S> Size for &'a S
where S: Size + ?Sized,

source§

impl<'a, S> Size for &'a mut S
where S: Size + ?Sized,

source§

impl<S> Size for Box<S>
where - S: Size + ?Sized,

Implementors§

\ No newline at end of file + S: Size + ?Sized,

Implementors§

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/bao_tree/io/sync/trait.WriteAt.html b/pr/2574/docs/iroh/blobs/store/bao_tree/io/sync/trait.WriteAt.html index 1392fefd88..6aa1759865 100644 --- a/pr/2574/docs/iroh/blobs/store/bao_tree/io/sync/trait.WriteAt.html +++ b/pr/2574/docs/iroh/blobs/store/bao_tree/io/sync/trait.WriteAt.html @@ -41,5 +41,5 @@

§Examples

Implementations on Foreign Types§

source§

impl WriteAt for Vec<u8>

source§

fn write_at(&mut self, pos: u64, buf: &[u8]) -> Result<usize, Error>

source§

fn flush(&mut self) -> Result<(), Error>

source§

impl WriteAt for File

source§

fn write_at(&mut self, pos: u64, buf: &[u8]) -> Result<usize, Error>

source§

fn flush(&mut self) -> Result<(), Error>

source§

impl<'a> WriteAt for &'a mut [u8]

source§

fn write_at(&mut self, pos: u64, buf: &[u8]) -> Result<usize, Error>

source§

fn flush(&mut self) -> Result<(), Error>

source§

impl<'a, W> WriteAt for &'a RefCell<W>
where W: WriteAt,

source§

fn write_at(&mut self, pos: u64, buf: &[u8]) -> Result<usize, Error>

source§

fn flush(&mut self) -> Result<(), Error>

source§

impl<'a, W> WriteAt for &'a mut W
where W: WriteAt + ?Sized,

source§

fn write_at(&mut self, pos: u64, buf: &[u8]) -> Result<usize, Error>

source§

fn flush(&mut self) -> Result<(), Error>

source§

impl<R> WriteAt for Box<R>
where - R: WriteAt + ?Sized,

source§

fn write_at(&mut self, pos: u64, buf: &[u8]) -> Result<usize, Error>

source§

fn flush(&mut self) -> Result<(), Error>

Implementors§

source§

impl WriteAt for &RandomAccessFile

source§

impl WriteAt for SparseMemFile

source§

impl WriteAt for RandomAccessFile

source§

impl<I> WriteAt for Slice<I>
where + R: WriteAt + ?Sized,

source§

fn write_at(&mut self, pos: u64, buf: &[u8]) -> Result<usize, Error>

source§

fn flush(&mut self) -> Result<(), Error>

Implementors§

source§

impl WriteAt for &RandomAccessFile

§

impl WriteAt for SparseMemFile

source§

impl WriteAt for RandomAccessFile

source§

impl<I> WriteAt for Slice<I>
where I: WriteAt,

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/enum.BaoBlobSize.html b/pr/2574/docs/iroh/blobs/store/enum.BaoBlobSize.html index ce25379032..a0b4675f46 100644 --- a/pr/2574/docs/iroh/blobs/store/enum.BaoBlobSize.html +++ b/pr/2574/docs/iroh/blobs/store/enum.BaoBlobSize.html @@ -1,21 +1,21 @@ -BaoBlobSize in iroh::blobs::store - Rust

Enum iroh::blobs::store::BaoBlobSize

source ·
pub enum BaoBlobSize {
+BaoBlobSize in iroh::blobs::store - Rust

Enum iroh::blobs::store::BaoBlobSize

pub enum BaoBlobSize {
     Unverified(u64),
     Verified(u64),
 }
Expand description

The size of a bao file

Variants§

§

Unverified(u64)

A remote side told us the size, but we have insufficient data to verify it.

§

Verified(u64)

We have verified the size.

-

Implementations§

source§

impl BaoBlobSize

source

pub fn new(size: u64, verified: bool) -> BaoBlobSize

Create a new BaoFileSize with the given size and verification status.

-
source

pub fn value(&self) -> u64

Get just the value, no matter if it is verified or not.

-

Trait Implementations§

source§

impl Clone for BaoBlobSize

source§

fn clone(&self) -> BaoBlobSize

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BaoBlobSize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BaoBlobSize

Implementations§

§

impl BaoBlobSize

pub fn new(size: u64, verified: bool) -> BaoBlobSize

Create a new BaoFileSize with the given size and verification status.

+

pub fn value(&self) -> u64

Get just the value, no matter if it is verified or not.

+

Trait Implementations§

§

impl Clone for BaoBlobSize

§

fn clone(&self) -> BaoBlobSize

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for BaoBlobSize

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for BaoBlobSize

§

fn deserialize<__D>( __deserializer: __D ) -> Result<BaoBlobSize, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for BaoBlobSize

source§

fn eq(&self, other: &BaoBlobSize) -> bool

This method tests for self and other values to be equal, and is used + __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
§

impl PartialEq for BaoBlobSize

§

fn eq(&self, other: &BaoBlobSize) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for BaoBlobSize

source§

fn serialize<__S>( +sufficient, and should not be overridden without very good reason.

§

impl Serialize for BaoBlobSize

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for BaoBlobSize

source§

impl Eq for BaoBlobSize

source§

impl StructuralPartialEq for BaoBlobSize

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Copy for BaoBlobSize

§

impl Eq for BaoBlobSize

§

impl StructuralPartialEq for BaoBlobSize

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/store/enum.ConsistencyCheckProgress.html b/pr/2574/docs/iroh/blobs/store/enum.ConsistencyCheckProgress.html index 06716dea26..2e059a5183 100644 --- a/pr/2574/docs/iroh/blobs/store/enum.ConsistencyCheckProgress.html +++ b/pr/2574/docs/iroh/blobs/store/enum.ConsistencyCheckProgress.html @@ -1,4 +1,4 @@ -ConsistencyCheckProgress in iroh::blobs::store - Rust

Enum iroh::blobs::store::ConsistencyCheckProgress

source ·
pub enum ConsistencyCheckProgress {
+ConsistencyCheckProgress in iroh::blobs::store - Rust

Enum iroh::blobs::store::ConsistencyCheckProgress

pub enum ConsistencyCheckProgress {
     Start,
     Update {
         message: String,
@@ -15,10 +15,10 @@
 
§level: ReportLevel

The level of the message

§

Done

Consistency check ended

§

Abort(RpcError)

We got an error and need to abort.

-

Trait Implementations§

source§

impl Debug for ConsistencyCheckProgress

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ConsistencyCheckProgress

Trait Implementations§

§

impl Debug for ConsistencyCheckProgress

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for ConsistencyCheckProgress

§

fn deserialize<__D>( __deserializer: __D ) -> Result<ConsistencyCheckProgress, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ConsistencyCheckProgress

source§

fn serialize<__S>( + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl Serialize for ConsistencyCheckProgress

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where diff --git a/pr/2574/docs/iroh/blobs/store/enum.EntryStatus.html b/pr/2574/docs/iroh/blobs/store/enum.EntryStatus.html index 96de747c9a..3550aa4df0 100644 --- a/pr/2574/docs/iroh/blobs/store/enum.EntryStatus.html +++ b/pr/2574/docs/iroh/blobs/store/enum.EntryStatus.html @@ -1,4 +1,4 @@ -EntryStatus in iroh::blobs::store - Rust

Enum iroh::blobs::store::EntryStatus

source ·
pub enum EntryStatus {
+EntryStatus in iroh::blobs::store - Rust

Enum iroh::blobs::store::EntryStatus

pub enum EntryStatus {
     Complete,
     Partial,
     NotFound,
@@ -6,9 +6,9 @@
 

Variants§

§

Complete

The entry is completely available.

§

Partial

The entry is partially available.

§

NotFound

The entry is not in the store.

-

Trait Implementations§

source§

impl Clone for EntryStatus

source§

fn clone(&self) -> EntryStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for EntryStatus

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl PartialEq for EntryStatus

source§

fn eq(&self, other: &EntryStatus) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

§

impl Clone for EntryStatus

§

fn clone(&self) -> EntryStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for EntryStatus

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl PartialEq for EntryStatus

§

fn eq(&self, other: &EntryStatus) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Eq for EntryStatus

source§

impl StructuralPartialEq for EntryStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

§

impl Eq for EntryStatus

§

impl StructuralPartialEq for EntryStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/store/enum.Event.html b/pr/2574/docs/iroh/blobs/store/enum.Event.html index 7e72e09c08..fbb86911d6 100644 --- a/pr/2574/docs/iroh/blobs/store/enum.Event.html +++ b/pr/2574/docs/iroh/blobs/store/enum.Event.html @@ -1,12 +1,12 @@ -Event in iroh::blobs::store - Rust

Enum iroh::blobs::store::Event

source ·
pub enum Event {
+Event in iroh::blobs::store - Rust

Enum iroh::blobs::store::Event

pub enum Event {
     GcStarted,
     GcCompleted,
 }
Expand description

Database events

Variants§

§

GcStarted

A GC was started

§

GcCompleted

A GC was completed

-

Trait Implementations§

source§

impl Clone for Event

source§

fn clone(&self) -> Event

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Event

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl PartialEq for Event

source§

fn eq(&self, other: &Event) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

§

impl Clone for Event

§

fn clone(&self) -> Event

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for Event

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl PartialEq for Event

§

fn eq(&self, other: &Event) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Eq for Event

source§

impl StructuralPartialEq for Event

Auto Trait Implementations§

§

impl Freeze for Event

§

impl RefUnwindSafe for Event

§

impl Send for Event

§

impl Sync for Event

§

impl Unpin for Event

§

impl UnwindSafe for Event

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

§

impl Eq for Event

§

impl StructuralPartialEq for Event

Auto Trait Implementations§

§

impl Freeze for Event

§

impl RefUnwindSafe for Event

§

impl Send for Event

§

impl Sync for Event

§

impl Unpin for Event

§

impl UnwindSafe for Event

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/store/enum.ExportFormat.html b/pr/2574/docs/iroh/blobs/store/enum.ExportFormat.html index cd96e47215..e3a99a118d 100644 --- a/pr/2574/docs/iroh/blobs/store/enum.ExportFormat.html +++ b/pr/2574/docs/iroh/blobs/store/enum.ExportFormat.html @@ -1,4 +1,4 @@ -ExportFormat in iroh::blobs::store - Rust

Enum iroh::blobs::store::ExportFormat

source ·
pub enum ExportFormat {
+ExportFormat in iroh::blobs::store - Rust

Enum iroh::blobs::store::ExportFormat

pub enum ExportFormat {
     Blob,
     Collection,
 }
Expand description

The expected format of a hash being exported.

@@ -10,10 +10,10 @@ a file each, with their collection name treated as a relative path to the export destination path.

If the blob cannot be parsed as a collection, the operation will fail.

-

Trait Implementations§

source§

impl Clone for ExportFormat

source§

fn clone(&self) -> ExportFormat

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ExportFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for ExportFormat

source§

fn default() -> ExportFormat

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ExportFormat

Trait Implementations§

§

impl Clone for ExportFormat

§

fn clone(&self) -> ExportFormat

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for ExportFormat

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for ExportFormat

§

fn default() -> ExportFormat

Returns the “default value” for a type. Read more
§

impl<'de> Deserialize<'de> for ExportFormat

§

fn deserialize<__D>( __deserializer: __D ) -> Result<ExportFormat, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ExportFormat

source§

fn serialize<__S>( + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

§

impl Serialize for ExportFormat

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where diff --git a/pr/2574/docs/iroh/blobs/store/enum.ExportMode.html b/pr/2574/docs/iroh/blobs/store/enum.ExportMode.html index 188a33af76..e237b724aa 100644 --- a/pr/2574/docs/iroh/blobs/store/enum.ExportMode.html +++ b/pr/2574/docs/iroh/blobs/store/enum.ExportMode.html @@ -1,4 +1,4 @@ -ExportMode in iroh::blobs::store - Rust

Enum iroh::blobs::store::ExportMode

source ·
pub enum ExportMode {
+ExportMode in iroh::blobs::store - Rust

Enum iroh::blobs::store::ExportMode

pub enum ExportMode {
     Copy,
     TryReference,
 }
Expand description

The import mode describes how files will be imported.

@@ -15,16 +15,16 @@ the file might be modified in the target directory after it has been exported.

Stores are allowed to ignore this mode and always copy the file, e.g. if the file is very small or if the store does not support referencing files.

-

Trait Implementations§

source§

impl Clone for ExportMode

source§

fn clone(&self) -> ExportMode

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ExportMode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for ExportMode

source§

fn default() -> ExportMode

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ExportMode

Trait Implementations§

§

impl Clone for ExportMode

§

fn clone(&self) -> ExportMode

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for ExportMode

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for ExportMode

§

fn default() -> ExportMode

Returns the “default value” for a type. Read more
§

impl<'de> Deserialize<'de> for ExportMode

§

fn deserialize<__D>( __deserializer: __D ) -> Result<ExportMode, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for ExportMode

source§

fn eq(&self, other: &ExportMode) -> bool

This method tests for self and other values to be equal, and is used + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl PartialEq for ExportMode

§

fn eq(&self, other: &ExportMode) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for ExportMode

source§

fn serialize<__S>( +sufficient, and should not be overridden without very good reason.

§

impl Serialize for ExportMode

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for ExportMode

source§

impl Eq for ExportMode

source§

impl StructuralPartialEq for ExportMode

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Copy for ExportMode

§

impl Eq for ExportMode

§

impl StructuralPartialEq for ExportMode

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/store/enum.ExportProgress.html b/pr/2574/docs/iroh/blobs/store/enum.ExportProgress.html index abbfe52349..020f15edc3 100644 --- a/pr/2574/docs/iroh/blobs/store/enum.ExportProgress.html +++ b/pr/2574/docs/iroh/blobs/store/enum.ExportProgress.html @@ -1,4 +1,4 @@ -ExportProgress in iroh::blobs::store - Rust

Enum iroh::blobs::store::ExportProgress

source ·
pub enum ExportProgress {
+ExportProgress in iroh::blobs::store - Rust

Enum iroh::blobs::store::ExportProgress

pub enum ExportProgress {
     Start {
         id: u64,
         hash: Hash,
@@ -18,7 +18,7 @@
 

This will be omitted if the store can move the file or use copy on write

There will be multiple of these messages for an id

Fields

§id: u64
§offset: u64
§

Done

Done exporting

-

Fields

§id: u64

Trait Implementations§

source§

impl Debug for ExportProgress

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Fields

§id: u64

Trait Implementations§

§

impl Debug for ExportProgress

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/store/enum.GcMarkEvent.html b/pr/2574/docs/iroh/blobs/store/enum.GcMarkEvent.html index 85850ae5df..10b49d5638 100644 --- a/pr/2574/docs/iroh/blobs/store/enum.GcMarkEvent.html +++ b/pr/2574/docs/iroh/blobs/store/enum.GcMarkEvent.html @@ -1,4 +1,4 @@ -GcMarkEvent in iroh::blobs::store - Rust

Enum iroh::blobs::store::GcMarkEvent

source ·
pub enum GcMarkEvent {
+GcMarkEvent in iroh::blobs::store - Rust

Enum iroh::blobs::store::GcMarkEvent

pub enum GcMarkEvent {
     CustomDebug(String),
     CustomWarning(String, Option<Error>),
     Error(Error),
@@ -6,7 +6,7 @@
 

Variants§

§

CustomDebug(String)

A custom event (info)

§

CustomWarning(String, Option<Error>)

A custom non critical error

§

Error(Error)

An unrecoverable error during GC

-

Trait Implementations§

source§

impl Debug for GcMarkEvent

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for GcMarkEvent

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/store/enum.GcSweepEvent.html b/pr/2574/docs/iroh/blobs/store/enum.GcSweepEvent.html index 3c9dafc970..f50dd12b64 100644 --- a/pr/2574/docs/iroh/blobs/store/enum.GcSweepEvent.html +++ b/pr/2574/docs/iroh/blobs/store/enum.GcSweepEvent.html @@ -1,4 +1,4 @@ -GcSweepEvent in iroh::blobs::store - Rust

Enum iroh::blobs::store::GcSweepEvent

source ·
pub enum GcSweepEvent {
+GcSweepEvent in iroh::blobs::store - Rust

Enum iroh::blobs::store::GcSweepEvent

pub enum GcSweepEvent {
     CustomDebug(String),
     CustomWarning(String, Option<Error>),
     Error(Error),
@@ -6,7 +6,7 @@
 

Variants§

§

CustomDebug(String)

A custom event (debug)

§

CustomWarning(String, Option<Error>)

A custom non critical error

§

Error(Error)

An unrecoverable error during GC

-

Trait Implementations§

source§

impl Debug for GcSweepEvent

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for GcSweepEvent

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/store/enum.ImportMode.html b/pr/2574/docs/iroh/blobs/store/enum.ImportMode.html index 9d194a6ac4..832e9f1f46 100644 --- a/pr/2574/docs/iroh/blobs/store/enum.ImportMode.html +++ b/pr/2574/docs/iroh/blobs/store/enum.ImportMode.html @@ -1,4 +1,4 @@ -ImportMode in iroh::blobs::store - Rust

Enum iroh::blobs::store::ImportMode

source ·
pub enum ImportMode {
+ImportMode in iroh::blobs::store - Rust

Enum iroh::blobs::store::ImportMode

pub enum ImportMode {
     Copy,
     TryReference,
 }
Expand description

The import mode describes how files will be imported.

@@ -14,9 +14,9 @@ the file might be modified after it has been imported.

Stores are allowed to ignore this mode and always copy the file, e.g. if the file is very small or if the store does not support referencing files.

-

Trait Implementations§

source§

impl Clone for ImportMode

source§

fn clone(&self) -> ImportMode

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ImportMode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for ImportMode

source§

fn default() -> ImportMode

Returns the “default value” for a type. Read more
source§

impl PartialEq for ImportMode

source§

fn eq(&self, other: &ImportMode) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

§

impl Clone for ImportMode

§

fn clone(&self) -> ImportMode

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for ImportMode

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for ImportMode

§

fn default() -> ImportMode

Returns the “default value” for a type. Read more
§

impl PartialEq for ImportMode

§

fn eq(&self, other: &ImportMode) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Copy for ImportMode

source§

impl Eq for ImportMode

source§

impl StructuralPartialEq for ImportMode

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

§

impl Copy for ImportMode

§

impl Eq for ImportMode

§

impl StructuralPartialEq for ImportMode

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/store/enum.ImportProgress.html b/pr/2574/docs/iroh/blobs/store/enum.ImportProgress.html index 6d2f5183cf..2f48e870d6 100644 --- a/pr/2574/docs/iroh/blobs/store/enum.ImportProgress.html +++ b/pr/2574/docs/iroh/blobs/store/enum.ImportProgress.html @@ -1,4 +1,4 @@ -ImportProgress in iroh::blobs::store - Rust

Enum iroh::blobs::store::ImportProgress

source ·
pub enum ImportProgress {
+ImportProgress in iroh::blobs::store - Rust

Enum iroh::blobs::store::ImportProgress

pub enum ImportProgress {
     Found {
         id: u64,
         name: String,
@@ -35,7 +35,7 @@
 

There will be multiple of these messages for an id

Fields

§id: u64
§offset: u64
§

OutboardDone

Done computing the outboard

This comes after Size and zero or more OutboardProgress messages

-

Fields

§id: u64
§hash: Hash

Trait Implementations§

source§

impl Debug for ImportProgress

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Fields

§id: u64
§hash: Hash

Trait Implementations§

§

impl Debug for ImportProgress

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/store/enum.ReportLevel.html b/pr/2574/docs/iroh/blobs/store/enum.ReportLevel.html index 4fcd535210..2a7a235eed 100644 --- a/pr/2574/docs/iroh/blobs/store/enum.ReportLevel.html +++ b/pr/2574/docs/iroh/blobs/store/enum.ReportLevel.html @@ -1,4 +1,4 @@ -ReportLevel in iroh::blobs::store - Rust

Enum iroh::blobs::store::ReportLevel

source ·
pub enum ReportLevel {
+ReportLevel in iroh::blobs::store - Rust

Enum iroh::blobs::store::ReportLevel

pub enum ReportLevel {
     Trace,
     Info,
     Warn,
@@ -8,21 +8,21 @@
 
§

Info

Info messages

§

Warn

Warnings, something is not quite right

§

Error

Errors, something is very wrong

-

Trait Implementations§

source§

impl Clone for ReportLevel

source§

fn clone(&self) -> ReportLevel

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ReportLevel

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ReportLevel

Trait Implementations§

§

impl Clone for ReportLevel

§

fn clone(&self) -> ReportLevel

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for ReportLevel

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for ReportLevel

§

fn deserialize<__D>( __deserializer: __D ) -> Result<ReportLevel, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ReportLevel

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Ord for ReportLevel

source§

fn cmp(&self, other: &ReportLevel) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl Display for ReportLevel

§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Ord for ReportLevel

§

fn cmp(&self, other: &ReportLevel) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for ReportLevel

source§

fn eq(&self, other: &ReportLevel) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more

§

impl PartialEq for ReportLevel

§

fn eq(&self, other: &ReportLevel) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for ReportLevel

source§

fn partial_cmp(&self, other: &ReportLevel) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
§

impl PartialOrd for ReportLevel

§

fn partial_cmp(&self, other: &ReportLevel) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Serialize for ReportLevel

source§

fn serialize<__S>( +operator. Read more

§

impl Serialize for ReportLevel

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for ReportLevel

source§

impl Eq for ReportLevel

source§

impl StructuralPartialEq for ReportLevel

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

§

impl Copy for ReportLevel

§

impl Eq for ReportLevel

§

impl StructuralPartialEq for ReportLevel

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/store/enum.ValidateProgress.html b/pr/2574/docs/iroh/blobs/store/enum.ValidateProgress.html index 8b2a925b12..70945d2685 100644 --- a/pr/2574/docs/iroh/blobs/store/enum.ValidateProgress.html +++ b/pr/2574/docs/iroh/blobs/store/enum.ValidateProgress.html @@ -1,4 +1,4 @@ -ValidateProgress in iroh::blobs::store - Rust

Enum iroh::blobs::store::ValidateProgress

source ·
pub enum ValidateProgress {
+ValidateProgress in iroh::blobs::store - Rust

Enum iroh::blobs::store::ValidateProgress

pub enum ValidateProgress {
     Starting {
         total: u64,
     },
@@ -63,10 +63,10 @@
 
§ranges: RangeSpec

Available ranges.

§

AllDone

We are done with the whole operation.

§

Abort(RpcError)

We got an error and need to abort.

-

Trait Implementations§

source§

impl Debug for ValidateProgress

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ValidateProgress

Trait Implementations§

§

impl Debug for ValidateProgress

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for ValidateProgress

§

fn deserialize<__D>( __deserializer: __D ) -> Result<ValidateProgress, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ValidateProgress

source§

fn serialize<__S>( + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl Serialize for ValidateProgress

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where diff --git a/pr/2574/docs/iroh/blobs/store/fs/index.html b/pr/2574/docs/iroh/blobs/store/fs/index.html index 0576e9709f..ff8d4807f1 100644 --- a/pr/2574/docs/iroh/blobs/store/fs/index.html +++ b/pr/2574/docs/iroh/blobs/store/fs/index.html @@ -1,4 +1,4 @@ -iroh::blobs::store::fs - Rust

Module iroh::blobs::store::fs

source ·
Expand description

redb backed storage

+iroh::blobs::store::fs - Rust

Module iroh::blobs::store::fs

Expand description

redb backed storage

Data can get into the store in two ways:

  1. import from local data
  2. diff --git a/pr/2574/docs/iroh/blobs/store/fs/struct.BatchOptions.html b/pr/2574/docs/iroh/blobs/store/fs/struct.BatchOptions.html index 5da84478c3..ee8f6c0666 100644 --- a/pr/2574/docs/iroh/blobs/store/fs/struct.BatchOptions.html +++ b/pr/2574/docs/iroh/blobs/store/fs/struct.BatchOptions.html @@ -1,4 +1,4 @@ -BatchOptions in iroh::blobs::store::fs - Rust

    Struct iroh::blobs::store::fs::BatchOptions

    source ·
    pub struct BatchOptions {
    +BatchOptions in iroh::blobs::store::fs - Rust

    Struct iroh::blobs::store::fs::BatchOptions

    pub struct BatchOptions {
         pub max_read_batch: usize,
         pub max_read_duration: Duration,
         pub max_write_batch: usize,
    @@ -8,7 +8,7 @@
     
    §max_read_duration: Duration

    Maximum duration to wait before committing a read transaction.

    §max_write_batch: usize

    Maximum number of actor messages to batch before committing write transaction.

    §max_write_duration: Duration

    Maximum duration to wait before committing a write transaction.

    -

    Trait Implementations§

    source§

    impl Clone for BatchOptions

    source§

    fn clone(&self) -> BatchOptions

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for BatchOptions

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Default for BatchOptions

    source§

    fn default() -> BatchOptions

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    §

    impl Clone for BatchOptions

    §

    fn clone(&self) -> BatchOptions

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for BatchOptions

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for BatchOptions

    §

    fn default() -> BatchOptions

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh/blobs/store/fs/struct.FlatStorePaths.html b/pr/2574/docs/iroh/blobs/store/fs/struct.FlatStorePaths.html index b6e5401f94..d387763e4e 100644 --- a/pr/2574/docs/iroh/blobs/store/fs/struct.FlatStorePaths.html +++ b/pr/2574/docs/iroh/blobs/store/fs/struct.FlatStorePaths.html @@ -1,4 +1,4 @@ -FlatStorePaths in iroh::blobs::store::fs - Rust

    Struct iroh::blobs::store::fs::FlatStorePaths

    source ·
    pub struct FlatStorePaths {
    +FlatStorePaths in iroh::blobs::store::fs - Rust

    Struct iroh::blobs::store::fs::FlatStorePaths

    pub struct FlatStorePaths {
         pub complete: PathBuf,
         pub partial: PathBuf,
         pub meta: PathBuf,
    @@ -6,7 +6,7 @@
     

    Fields§

    §complete: PathBuf

    Complete data files

    §partial: PathBuf

    Partial data files

    §meta: PathBuf

    Metadata files such as the tags table

    -

    Trait Implementations§

    source§

    impl Debug for FlatStorePaths

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    §

    impl Debug for FlatStorePaths

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh/blobs/store/fs/struct.InlineOptions.html b/pr/2574/docs/iroh/blobs/store/fs/struct.InlineOptions.html index 8df767f66d..1cda1f2c98 100644 --- a/pr/2574/docs/iroh/blobs/store/fs/struct.InlineOptions.html +++ b/pr/2574/docs/iroh/blobs/store/fs/struct.InlineOptions.html @@ -1,12 +1,12 @@ -InlineOptions in iroh::blobs::store::fs - Rust

    Struct iroh::blobs::store::fs::InlineOptions

    source ·
    pub struct InlineOptions {
    +InlineOptions in iroh::blobs::store::fs - Rust

    Struct iroh::blobs::store::fs::InlineOptions

    pub struct InlineOptions {
         pub max_data_inlined: u64,
         pub max_outboard_inlined: u64,
     }
    Expand description

    Options for inlining small complete data or outboards.

    Fields§

    §max_data_inlined: u64

    Maximum data size to inline.

    §max_outboard_inlined: u64

    Maximum outboard size to inline.

    -

    Implementations§

    source§

    impl InlineOptions

    source

    pub const NO_INLINE: InlineOptions = _

    Do not inline anything, ever.

    -
    source

    pub const ALWAYS_INLINE: InlineOptions = _

    Always inline everything

    -

    Trait Implementations§

    source§

    impl Clone for InlineOptions

    source§

    fn clone(&self) -> InlineOptions

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for InlineOptions

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Default for InlineOptions

    source§

    fn default() -> InlineOptions

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Implementations§

    §

    impl InlineOptions

    pub const NO_INLINE: InlineOptions = _

    Do not inline anything, ever.

    +

    pub const ALWAYS_INLINE: InlineOptions = _

    Always inline everything

    +

    Trait Implementations§

    §

    impl Clone for InlineOptions

    §

    fn clone(&self) -> InlineOptions

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for InlineOptions

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for InlineOptions

    §

    fn default() -> InlineOptions

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh/blobs/store/fs/struct.Options.html b/pr/2574/docs/iroh/blobs/store/fs/struct.Options.html index e12510104b..5bf6b716e0 100644 --- a/pr/2574/docs/iroh/blobs/store/fs/struct.Options.html +++ b/pr/2574/docs/iroh/blobs/store/fs/struct.Options.html @@ -1,4 +1,4 @@ -Options in iroh::blobs::store::fs - Rust

    Struct iroh::blobs::store::fs::Options

    source ·
    pub struct Options {
    +Options in iroh::blobs::store::fs - Rust

    Struct iroh::blobs::store::fs::Options

    pub struct Options {
         pub path: PathOptions,
         pub inline: InlineOptions,
         pub batch: BatchOptions,
    @@ -6,7 +6,7 @@
     

    Fields§

    §path: PathOptions

    Path options.

    §inline: InlineOptions

    Inline storage options.

    §batch: BatchOptions

    Transaction batching options.

    -

    Trait Implementations§

    source§

    impl Clone for Options

    source§

    fn clone(&self) -> Options

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Options

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    §

    impl Clone for Options

    §

    fn clone(&self) -> Options

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Options

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh/blobs/store/fs/struct.PathOptions.html b/pr/2574/docs/iroh/blobs/store/fs/struct.PathOptions.html index 4aa16aa48a..dae85e0907 100644 --- a/pr/2574/docs/iroh/blobs/store/fs/struct.PathOptions.html +++ b/pr/2574/docs/iroh/blobs/store/fs/struct.PathOptions.html @@ -1,4 +1,4 @@ -PathOptions in iroh::blobs::store::fs - Rust

    Struct iroh::blobs::store::fs::PathOptions

    source ·
    pub struct PathOptions {
    +PathOptions in iroh::blobs::store::fs - Rust

    Struct iroh::blobs::store::fs::PathOptions

    pub struct PathOptions {
         pub data_path: PathBuf,
         pub temp_path: PathBuf,
     }
    Expand description

    Options for directories used by the file store.

    @@ -6,7 +6,7 @@
    §temp_path: PathBuf

    Path to the directory where temp files are stored. This must be on the same device as data_path, since we need to atomically move temp files into place.

    -

    Trait Implementations§

    source§

    impl Clone for PathOptions

    source§

    fn clone(&self) -> PathOptions

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for PathOptions

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    §

    impl Clone for PathOptions

    §

    fn clone(&self) -> PathOptions

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PathOptions

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh/blobs/store/fs/struct.Store.html b/pr/2574/docs/iroh/blobs/store/fs/struct.Store.html index 8e0ac7f0a7..889d37a6bd 100644 --- a/pr/2574/docs/iroh/blobs/store/fs/struct.Store.html +++ b/pr/2574/docs/iroh/blobs/store/fs/struct.Store.html @@ -1,87 +1,87 @@ -Store in iroh::blobs::store::fs - Rust

    Struct iroh::blobs::store::fs::Store

    source ·
    pub struct Store(/* private fields */);
    Expand description

    Storage that is using a redb database for small files and files for +Store in iroh::blobs::store::fs - Rust

    Struct iroh::blobs::store::fs::Store

    pub struct Store(/* private fields */);
    Expand description

    Storage that is using a redb database for small files and files for large files.

    -

    Implementations§

    source§

    impl Store

    source

    pub async fn transform_entries( +

    Implementations§

    §

    impl Store

    pub async fn transform_entries( &self, transform: impl Fn(Hash, EntryData) -> Option<EntryData> + Send + Sync ) -> Result<(), Error>

    Transform all entries in the store. This is for testing and can be used to get the store in a wrong state.

    -
    source

    pub fn owned_data_path(&self, hash: &Hash) -> PathBuf

    Owned data path

    -
    source

    pub fn owned_outboard_path(&self, hash: &Hash) -> PathBuf

    Owned outboard path

    -
    source§

    impl Store

    source

    pub async fn load(root: impl AsRef<Path>) -> Result<Store, Error>

    Load or create a new store.

    -
    source

    pub async fn new(path: PathBuf, options: Options) -> Result<Store, Error>

    Create a new store with custom options.

    -
    source

    pub async fn update_inline_options( +

    pub fn owned_data_path(&self, hash: &Hash) -> PathBuf

    Owned data path

    +

    pub fn owned_outboard_path(&self, hash: &Hash) -> PathBuf

    Owned outboard path

    +
    §

    impl Store

    pub async fn load(root: impl AsRef<Path>) -> Result<Store, Error>

    Load or create a new store.

    +

    pub async fn new(path: PathBuf, options: Options) -> Result<Store, Error>

    Create a new store with custom options.

    +

    pub async fn update_inline_options( &self, inline_options: InlineOptions, reapply: bool ) -> Result<(), Error>

    Update the inline options.

    When reapply is true, the new options will be applied to all existing entries.

    -
    source

    pub async fn dump(&self) -> Result<(), Error>

    Dump the entire content of the database to stdout.

    -
    source

    pub async fn sync(&self) -> Result<(), Error>

    Ensure that all operations before the sync are processed and persisted.

    +

    pub async fn dump(&self) -> Result<(), Error>

    Dump the entire content of the database to stdout.

    +

    pub async fn sync(&self) -> Result<(), Error>

    Ensure that all operations before the sync are processed and persisted.

    This is done by closing any open write transaction.

    -
    source

    pub async fn import_flat_store( +

    pub async fn import_flat_store( &self, paths: FlatStorePaths ) -> Result<bool, Error>

    Import from a v0 or v1 flat store, for backwards compatibility.

    -

    Trait Implementations§

    source§

    impl Clone for Store

    source§

    fn clone(&self) -> Store

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Store

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Map for Store

    §

    type Entry = BaoFileHandle

    The entry type. An entry is a cheaply cloneable handle that can be used -to open readers for both the data and the outboard
    source§

    async fn get(&self, hash: &Hash) -> Result<Option<<Store as Map>::Entry>, Error>

    Get an entry for a hash. Read more
    source§

    impl MapMut for Store

    §

    type EntryMut = BaoFileHandle

    An entry that is possibly writable
    source§

    async fn get_or_create( +

    Trait Implementations§

    §

    impl Clone for Store

    §

    fn clone(&self) -> Store

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Store

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Map for Store

    §

    type Entry = BaoFileHandle

    The entry type. An entry is a cheaply cloneable handle that can be used +to open readers for both the data and the outboard
    §

    async fn get(&self, hash: &Hash) -> Result<Option<<Store as Map>::Entry>, Error>

    Get an entry for a hash. Read more
    §

    impl MapMut for Store

    §

    type EntryMut = BaoFileHandle

    An entry that is possibly writable
    §

    async fn get_or_create( &self, hash: Hash, _size: u64 -) -> Result<<Store as MapMut>::EntryMut, Error>

    Get an existing partial entry, or create a new one. Read more
    source§

    async fn entry_status(&self, hash: &Hash) -> Result<EntryStatus, Error>

    Find out if the data behind a hash is complete, partial, or not present. Read more
    source§

    async fn get_mut( +) -> Result<<Store as MapMut>::EntryMut, Error>

    Get an existing partial entry, or create a new one. Read more
    §

    async fn entry_status(&self, hash: &Hash) -> Result<EntryStatus, Error>

    Find out if the data behind a hash is complete, partial, or not present. Read more
    §

    async fn get_mut( &self, hash: &Hash -) -> Result<Option<<Store as MapMut>::EntryMut>, Error>

    Get an existing entry as an EntryMut. Read more
    source§

    async fn insert_complete( +) -> Result<Option<<Store as MapMut>::EntryMut>, Error>

    Get an existing entry as an EntryMut. Read more
    §

    async fn insert_complete( &self, entry: <Store as MapMut>::EntryMut -) -> Result<(), Error>

    Upgrade a partial entry to a complete entry.
    source§

    fn entry_status_sync(&self, hash: &Hash) -> Result<EntryStatus, Error>

    Sync version of entry_status, for the doc sync engine until we can get rid of it. Read more
    source§

    impl ReadableStore for Store

    source§

    async fn blobs( +) -> Result<(), Error>

    Upgrade a partial entry to a complete entry.
    §

    fn entry_status_sync(&self, hash: &Hash) -> Result<EntryStatus, Error>

    Sync version of entry_status, for the doc sync engine until we can get rid of it. Read more
    §

    impl ReadableStore for Store

    §

    async fn blobs( &self ) -> Result<Box<dyn Iterator<Item = Result<Hash, Error>> + Send + Sync>, Error>

    list all blobs in the database. This includes both raw blobs that have -been imported, and hash sequences that have been created internally.
    source§

    async fn partial_blobs( +been imported, and hash sequences that have been created internally.

    §

    async fn partial_blobs( &self -) -> Result<Box<dyn Iterator<Item = Result<Hash, Error>> + Send + Sync>, Error>

    list partial blobs in the database
    source§

    async fn tags( +) -> Result<Box<dyn Iterator<Item = Result<Hash, Error>> + Send + Sync>, Error>

    list partial blobs in the database
    §

    async fn tags( &self -) -> Result<Box<dyn Iterator<Item = Result<(Tag, HashAndFormat), Error>> + Send + Sync>, Error>

    list all tags (collections or other explicitly added things) in the database
    source§

    fn temp_tags(&self) -> Box<dyn Iterator<Item = HashAndFormat> + Send + Sync>

    Temp tags
    source§

    async fn consistency_check( +) -> Result<Box<dyn Iterator<Item = Result<(Tag, HashAndFormat), Error>> + Send + Sync>, Error>

    list all tags (collections or other explicitly added things) in the database
    §

    fn temp_tags(&self) -> Box<dyn Iterator<Item = HashAndFormat> + Send + Sync>

    Temp tags
    §

    async fn consistency_check( &self, repair: bool, tx: BoxedProgressSender<ConsistencyCheckProgress> -) -> Result<(), Error>

    Perform a consistency check on the database
    source§

    async fn export( +) -> Result<(), Error>

    Perform a consistency check on the database
    §

    async fn export( &self, hash: Hash, target: PathBuf, mode: ExportMode, progress: Box<dyn Fn(u64) -> Result<(), Error> + Send + Sync> -) -> Result<(), Error>

    This trait method extracts a file to a local path. Read more
    source§

    impl Store for Store

    source§

    async fn import_file( +) -> Result<(), Error>

    This trait method extracts a file to a local path. Read more
    §

    impl Store for Store

    §

    async fn import_file( &self, path: PathBuf, mode: ImportMode, format: BlobFormat, progress: impl ProgressSender<Msg = ImportProgress> + IdGenerator -) -> Result<(TempTag, u64), Error>

    This trait method imports a file from a local path. Read more
    source§

    async fn import_bytes( +) -> Result<(TempTag, u64), Error>

    This trait method imports a file from a local path. Read more
    §

    async fn import_bytes( &self, data: Bytes, format: BlobFormat -) -> Result<TempTag, Error>

    Import data from memory. Read more
    source§

    async fn import_stream( +) -> Result<TempTag, Error>

    Import data from memory. Read more
    §

    async fn import_stream( &self, data: impl Stream<Item = Result<Bytes, Error>> + Unpin + Send + 'static, format: BlobFormat, progress: impl ProgressSender<Msg = ImportProgress> + IdGenerator -) -> Result<(TempTag, u64), Error>

    Import data from a stream of bytes.
    source§

    async fn set_tag( +) -> Result<(TempTag, u64), Error>

    Import data from a stream of bytes.
    §

    async fn set_tag( &self, name: Tag, hash: Option<HashAndFormat> -) -> Result<(), Error>

    Set a tag
    source§

    async fn create_tag(&self, hash: HashAndFormat) -> Result<Tag, Error>

    Create a new tag
    source§

    async fn delete(&self, hashes: Vec<Hash>) -> Result<(), Error>

    physically delete the given hashes from the store.
    source§

    async fn gc_start(&self) -> Result<(), Error>

    Notify the store that a new gc phase is about to start. Read more
    source§

    fn temp_tag(&self, value: HashAndFormat) -> TempTag

    Create a temporary pin for this store
    source§

    async fn shutdown(&self)

    Shutdown the store.
    source§

    fn import_reader( +) -> Result<(), Error>

    Set a tag
    §

    async fn create_tag(&self, hash: HashAndFormat) -> Result<Tag, Error>

    Create a new tag
    §

    async fn delete(&self, hashes: Vec<Hash>) -> Result<(), Error>

    physically delete the given hashes from the store.
    §

    async fn gc_start(&self) -> Result<(), Error>

    Notify the store that a new gc phase is about to start. Read more
    §

    fn temp_tag(&self, value: HashAndFormat) -> TempTag

    Create a temporary pin for this store
    §

    async fn shutdown(&self)

    Shutdown the store.
    §

    fn import_reader( &self, data: impl AsyncRead + Send + Unpin + 'static, format: BlobFormat, progress: impl ProgressSender<Msg = ImportProgress> + IdGenerator -) -> impl Future<Output = Result<(TempTag, u64), Error>> + Send

    Import data from an async byte reader.
    source§

    fn gc_mark( +) -> impl Future<Output = Result<(TempTag, u64), Error>> + Send

    Import data from an async byte reader.
    §

    fn gc_mark( &self, live: &mut BTreeSet<Hash> -) -> impl Stream<Item = GcMarkEvent> + Unpin

    Traverse all roots recursively and mark them as live. Read more
    source§

    fn gc_sweep( +) -> impl Stream<Item = GcMarkEvent> + Unpin

    Traverse all roots recursively and mark them as live. Read more
    §

    fn gc_sweep( &self, live: &BTreeSet<Hash> -) -> impl Stream<Item = GcSweepEvent> + Unpin

    Remove all blobs that are not marked as live. Read more
    source§

    fn validate( +) -> impl Stream<Item = GcSweepEvent> + Unpin

    Remove all blobs that are not marked as live. Read more
    §

    fn validate( &self, repair: bool, tx: BoxedProgressSender<ValidateProgress> diff --git a/pr/2574/docs/iroh/blobs/store/fs/type.Entry.html b/pr/2574/docs/iroh/blobs/store/fs/type.Entry.html index 192637bb60..002d29dd86 100644 --- a/pr/2574/docs/iroh/blobs/store/fs/type.Entry.html +++ b/pr/2574/docs/iroh/blobs/store/fs/type.Entry.html @@ -1,2 +1,2 @@ -Entry in iroh::blobs::store::fs - Rust

    Type Alias iroh::blobs::store::fs::Entry

    source ·
    pub type Entry = BaoFileHandle;
    Expand description

    Use BaoFileHandle as the entry type for the map.

    +Entry in iroh::blobs::store::fs - Rust

    Type Alias iroh::blobs::store::fs::Entry

    pub type Entry = BaoFileHandle;
    Expand description

    Use BaoFileHandle as the entry type for the map.

    Aliased Type§

    struct Entry(/* private fields */);
    \ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/index.html b/pr/2574/docs/iroh/blobs/store/index.html index 02b5f95b3a..6fa2ca7672 100644 --- a/pr/2574/docs/iroh/blobs/store/index.html +++ b/pr/2574/docs/iroh/blobs/store/index.html @@ -1,3 +1,3 @@ -iroh::blobs::store - Rust

    Module iroh::blobs::store

    source ·
    Expand description

    Implementations of blob stores

    +iroh::blobs::store - Rust

    Module iroh::blobs::store

    Expand description

    Implementations of blob stores

    Modules§

    • Efficient BLAKE3 based verified streaming
    • redb backed storage
    • A full in memory database for iroh-blobs
    • A set of non-overlapping ranges, backed by SmallVec<T>
    • A readonly in memory database for iroh-blobs, usable for testing and sharing static data.

    Enums§

    Traits§

    • An async batch interface for writing bao content items to a pair of data and outboard.
    • A generic map from hashes to bao blobs (blobs with bao outboards).
    • An entry for one hash in a bao map
    • A partial entry
    • A mutable bao map.
    • Extension of Map to add misc methods used by the rpc calls.
    • The mutable part of a Bao store.

    Type Aliases§

    \ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/mem/index.html b/pr/2574/docs/iroh/blobs/store/mem/index.html index c9df53dd11..4888f5351d 100644 --- a/pr/2574/docs/iroh/blobs/store/mem/index.html +++ b/pr/2574/docs/iroh/blobs/store/mem/index.html @@ -1,4 +1,4 @@ -iroh::blobs::store::mem - Rust

    Module iroh::blobs::store::mem

    source ·
    Expand description

    A full in memory database for iroh-blobs

    +iroh::blobs::store::mem - Rust

    Module iroh::blobs::store::mem

    Expand description

    A full in memory database for iroh-blobs

    Main entry point is Store.

    Structs§

    • An in memory entry
    • A fully featured in memory database for iroh-blobs, including support for partial blobs.
    \ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/mem/struct.Entry.html b/pr/2574/docs/iroh/blobs/store/mem/struct.Entry.html index a8e995ab35..a04f76f3e7 100644 --- a/pr/2574/docs/iroh/blobs/store/mem/struct.Entry.html +++ b/pr/2574/docs/iroh/blobs/store/mem/struct.Entry.html @@ -1,5 +1,5 @@ -Entry in iroh::blobs::store::mem - Rust

    Struct iroh::blobs::store::mem::Entry

    source ·
    pub struct Entry { /* private fields */ }
    Expand description

    An in memory entry

    -

    Trait Implementations§

    source§

    impl Clone for Entry

    source§

    fn clone(&self) -> Entry

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Entry

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl MapEntry for Entry

    source§

    fn hash(&self) -> Hash

    The hash of the entry.
    source§

    fn size(&self) -> BaoBlobSize

    The size of the entry.
    source§

    fn is_complete(&self) -> bool

    Returns true if the entry is complete. Read more
    source§

    async fn outboard(&self) -> Result<impl Outboard, Error>

    A future that resolves to a reader that can be used to read the outboard
    source§

    async fn data_reader(&self) -> Result<impl AsyncSliceReader, Error>

    A future that resolves to a reader that can be used to read the data
    source§

    impl MapEntryMut for Entry

    source§

    async fn batch_writer(&self) -> Result<impl BaoBatchWriter, Error>

    Get a batch writer

    Auto Trait Implementations§

    §

    impl Freeze for Entry

    §

    impl RefUnwindSafe for Entry

    §

    impl Send for Entry

    §

    impl Sync for Entry

    §

    impl Unpin for Entry

    §

    impl UnwindSafe for Entry

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +Entry in iroh::blobs::store::mem - Rust

    Struct iroh::blobs::store::mem::Entry

    pub struct Entry { /* private fields */ }
    Expand description

    An in memory entry

    +

    Trait Implementations§

    §

    impl Clone for Entry

    §

    fn clone(&self) -> Entry

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Entry

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl MapEntry for Entry

    §

    fn hash(&self) -> Hash

    The hash of the entry.
    §

    fn size(&self) -> BaoBlobSize

    The size of the entry.
    §

    fn is_complete(&self) -> bool

    Returns true if the entry is complete. Read more
    §

    async fn outboard(&self) -> Result<impl Outboard, Error>

    A future that resolves to a reader that can be used to read the outboard
    §

    async fn data_reader(&self) -> Result<impl AsyncSliceReader, Error>

    A future that resolves to a reader that can be used to read the data
    §

    impl MapEntryMut for Entry

    §

    async fn batch_writer(&self) -> Result<impl BaoBatchWriter, Error>

    Get a batch writer

    Auto Trait Implementations§

    §

    impl Freeze for Entry

    §

    impl RefUnwindSafe for Entry

    §

    impl Send for Entry

    §

    impl Sync for Entry

    §

    impl Unpin for Entry

    §

    impl UnwindSafe for Entry

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh/blobs/store/mem/struct.Store.html b/pr/2574/docs/iroh/blobs/store/mem/struct.Store.html index 3634fcc4cd..620fc9281d 100644 --- a/pr/2574/docs/iroh/blobs/store/mem/struct.Store.html +++ b/pr/2574/docs/iroh/blobs/store/mem/struct.Store.html @@ -1,58 +1,58 @@ -Store in iroh::blobs::store::mem - Rust

    Struct iroh::blobs::store::mem::Store

    source ·
    pub struct Store { /* private fields */ }
    Expand description

    A fully featured in memory database for iroh-blobs, including support for +Store in iroh::blobs::store::mem - Rust

    Struct iroh::blobs::store::mem::Store

    pub struct Store { /* private fields */ }
    Expand description

    A fully featured in memory database for iroh-blobs, including support for partial blobs.

    -

    Implementations§

    source§

    impl Store

    source

    pub fn new() -> Store

    Create a new in memory store

    -

    Trait Implementations§

    source§

    impl Clone for Store

    source§

    fn clone(&self) -> Store

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Store

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Default for Store

    source§

    fn default() -> Store

    Returns the “default value” for a type. Read more
    source§

    impl Map for Store

    §

    type Entry = Entry

    The entry type. An entry is a cheaply cloneable handle that can be used -to open readers for both the data and the outboard
    source§

    async fn get(&self, hash: &Hash) -> Result<Option<<Store as Map>::Entry>, Error>

    Get an entry for a hash. Read more
    source§

    impl MapMut for Store

    §

    type EntryMut = Entry

    An entry that is possibly writable
    source§

    async fn get_mut( +

    Implementations§

    §

    impl Store

    pub fn new() -> Store

    Create a new in memory store

    +

    Trait Implementations§

    §

    impl Clone for Store

    §

    fn clone(&self) -> Store

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Store

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Store

    §

    fn default() -> Store

    Returns the “default value” for a type. Read more
    §

    impl Map for Store

    §

    type Entry = Entry

    The entry type. An entry is a cheaply cloneable handle that can be used +to open readers for both the data and the outboard
    §

    async fn get(&self, hash: &Hash) -> Result<Option<<Store as Map>::Entry>, Error>

    Get an entry for a hash. Read more
    §

    impl MapMut for Store

    §

    type EntryMut = Entry

    An entry that is possibly writable
    §

    async fn get_mut( &self, hash: &Hash -) -> Result<Option<<Store as MapMut>::EntryMut>, Error>

    Get an existing entry as an EntryMut. Read more
    source§

    async fn get_or_create(&self, hash: Hash, _size: u64) -> Result<Entry, Error>

    Get an existing partial entry, or create a new one. Read more
    source§

    async fn entry_status(&self, hash: &Hash) -> Result<EntryStatus, Error>

    Find out if the data behind a hash is complete, partial, or not present. Read more
    source§

    fn entry_status_sync(&self, hash: &Hash) -> Result<EntryStatus, Error>

    Sync version of entry_status, for the doc sync engine until we can get rid of it. Read more
    source§

    async fn insert_complete(&self, entry: Entry) -> Result<(), Error>

    Upgrade a partial entry to a complete entry.
    source§

    impl ReadableStore for Store

    source§

    async fn blobs( +) -> Result<Option<<Store as MapMut>::EntryMut>, Error>

    Get an existing entry as an EntryMut. Read more
    §

    async fn get_or_create(&self, hash: Hash, _size: u64) -> Result<Entry, Error>

    Get an existing partial entry, or create a new one. Read more
    §

    async fn entry_status(&self, hash: &Hash) -> Result<EntryStatus, Error>

    Find out if the data behind a hash is complete, partial, or not present. Read more
    §

    fn entry_status_sync(&self, hash: &Hash) -> Result<EntryStatus, Error>

    Sync version of entry_status, for the doc sync engine until we can get rid of it. Read more
    §

    async fn insert_complete(&self, entry: Entry) -> Result<(), Error>

    Upgrade a partial entry to a complete entry.
    §

    impl ReadableStore for Store

    §

    async fn blobs( &self ) -> Result<Box<dyn Iterator<Item = Result<Hash, Error>> + Send + Sync>, Error>

    list all blobs in the database. This includes both raw blobs that have -been imported, and hash sequences that have been created internally.
    source§

    async fn partial_blobs( +been imported, and hash sequences that have been created internally.

    §

    async fn partial_blobs( &self -) -> Result<Box<dyn Iterator<Item = Result<Hash, Error>> + Send + Sync>, Error>

    list partial blobs in the database
    source§

    async fn tags( +) -> Result<Box<dyn Iterator<Item = Result<Hash, Error>> + Send + Sync>, Error>

    list partial blobs in the database
    §

    async fn tags( &self -) -> Result<Box<dyn Iterator<Item = Result<(Tag, HashAndFormat), Error>> + Send + Sync>, Error>

    list all tags (collections or other explicitly added things) in the database
    source§

    fn temp_tags(&self) -> Box<dyn Iterator<Item = HashAndFormat> + Send + Sync>

    Temp tags
    source§

    async fn consistency_check( +) -> Result<Box<dyn Iterator<Item = Result<(Tag, HashAndFormat), Error>> + Send + Sync>, Error>

    list all tags (collections or other explicitly added things) in the database
    §

    fn temp_tags(&self) -> Box<dyn Iterator<Item = HashAndFormat> + Send + Sync>

    Temp tags
    §

    async fn consistency_check( &self, _repair: bool, _tx: BoxedProgressSender<ConsistencyCheckProgress> -) -> Result<(), Error>

    Perform a consistency check on the database
    source§

    async fn export( +) -> Result<(), Error>

    Perform a consistency check on the database
    §

    async fn export( &self, hash: Hash, target: PathBuf, mode: ExportMode, progress: Box<dyn Fn(u64) -> Result<(), Error> + Send + Sync> -) -> Result<(), Error>

    This trait method extracts a file to a local path. Read more
    source§

    impl Store for Store

    source§

    async fn import_file( +) -> Result<(), Error>

    This trait method extracts a file to a local path. Read more
    §

    impl Store for Store

    §

    async fn import_file( &self, path: PathBuf, _mode: ImportMode, format: BlobFormat, progress: impl ProgressSender<Msg = ImportProgress> + IdGenerator -) -> Result<(TempTag, u64), Error>

    This trait method imports a file from a local path. Read more
    source§

    async fn import_stream( +) -> Result<(TempTag, u64), Error>

    This trait method imports a file from a local path. Read more
    §

    async fn import_stream( &self, data: impl Stream<Item = Result<Bytes, Error>> + Unpin + Send + 'static, format: BlobFormat, progress: impl ProgressSender<Msg = ImportProgress> + IdGenerator -) -> Result<(TempTag, u64), Error>

    Import data from a stream of bytes.
    source§

    async fn import_bytes( +) -> Result<(TempTag, u64), Error>

    Import data from a stream of bytes.
    §

    async fn import_bytes( &self, bytes: Bytes, format: BlobFormat -) -> Result<TempTag, Error>

    Import data from memory. Read more
    source§

    async fn set_tag( +) -> Result<TempTag, Error>

    Import data from memory. Read more
    §

    async fn set_tag( &self, name: Tag, value: Option<HashAndFormat> -) -> Result<(), Error>

    Set a tag
    source§

    async fn create_tag(&self, hash: HashAndFormat) -> Result<Tag, Error>

    Create a new tag
    source§

    fn temp_tag(&self, tag: HashAndFormat) -> TempTag

    Create a temporary pin for this store
    source§

    async fn gc_start(&self) -> Result<(), Error>

    Notify the store that a new gc phase is about to start. Read more
    source§

    async fn delete(&self, hashes: Vec<Hash>) -> Result<(), Error>

    physically delete the given hashes from the store.
    source§

    async fn shutdown(&self)

    Shutdown the store.
    source§

    fn import_reader( +) -> Result<(), Error>

    Set a tag
    §

    async fn create_tag(&self, hash: HashAndFormat) -> Result<Tag, Error>

    Create a new tag
    §

    fn temp_tag(&self, tag: HashAndFormat) -> TempTag

    Create a temporary pin for this store
    §

    async fn gc_start(&self) -> Result<(), Error>

    Notify the store that a new gc phase is about to start. Read more
    §

    async fn delete(&self, hashes: Vec<Hash>) -> Result<(), Error>

    physically delete the given hashes from the store.
    §

    async fn shutdown(&self)

    Shutdown the store.
    §

    fn import_reader( &self, data: impl AsyncRead + Send + Unpin + 'static, format: BlobFormat, progress: impl ProgressSender<Msg = ImportProgress> + IdGenerator -) -> impl Future<Output = Result<(TempTag, u64), Error>> + Send

    Import data from an async byte reader.
    source§

    fn gc_mark( +) -> impl Future<Output = Result<(TempTag, u64), Error>> + Send

    Import data from an async byte reader.
    §

    fn gc_mark( &self, live: &mut BTreeSet<Hash> -) -> impl Stream<Item = GcMarkEvent> + Unpin

    Traverse all roots recursively and mark them as live. Read more
    source§

    fn gc_sweep( +) -> impl Stream<Item = GcMarkEvent> + Unpin

    Traverse all roots recursively and mark them as live. Read more
    §

    fn gc_sweep( &self, live: &BTreeSet<Hash> -) -> impl Stream<Item = GcSweepEvent> + Unpin

    Remove all blobs that are not marked as live. Read more
    source§

    fn validate( +) -> impl Stream<Item = GcSweepEvent> + Unpin

    Remove all blobs that are not marked as live. Read more
    §

    fn validate( &self, repair: bool, tx: BoxedProgressSender<ValidateProgress> diff --git a/pr/2574/docs/iroh/blobs/store/readonly_mem/index.html b/pr/2574/docs/iroh/blobs/store/readonly_mem/index.html index 05f768b8ab..287a99c51a 100644 --- a/pr/2574/docs/iroh/blobs/store/readonly_mem/index.html +++ b/pr/2574/docs/iroh/blobs/store/readonly_mem/index.html @@ -1,3 +1,3 @@ -iroh::blobs::store::readonly_mem - Rust

    Module iroh::blobs::store::readonly_mem

    source ·
    Expand description

    A readonly in memory database for iroh-blobs, usable for testing and sharing static data.

    +iroh::blobs::store::readonly_mem - Rust

    Module iroh::blobs::store::readonly_mem

    Expand description

    A readonly in memory database for iroh-blobs, usable for testing and sharing static data.

    Main entry point is Store.

    Structs§

    \ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/readonly_mem/struct.Entry.html b/pr/2574/docs/iroh/blobs/store/readonly_mem/struct.Entry.html index c8eebb2d0a..ce0141a26e 100644 --- a/pr/2574/docs/iroh/blobs/store/readonly_mem/struct.Entry.html +++ b/pr/2574/docs/iroh/blobs/store/readonly_mem/struct.Entry.html @@ -1,5 +1,5 @@ -Entry in iroh::blobs::store::readonly_mem - Rust

    Struct iroh::blobs::store::readonly_mem::Entry

    source ·
    pub struct Entry { /* private fields */ }
    Expand description

    The MapEntry implementation for Store.

    -

    Trait Implementations§

    source§

    impl Clone for Entry

    source§

    fn clone(&self) -> Entry

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Entry

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl MapEntry for Entry

    source§

    fn hash(&self) -> Hash

    The hash of the entry.
    source§

    fn size(&self) -> BaoBlobSize

    The size of the entry.
    source§

    async fn outboard(&self) -> Result<impl Outboard, Error>

    A future that resolves to a reader that can be used to read the outboard
    source§

    async fn data_reader(&self) -> Result<impl AsyncSliceReader, Error>

    A future that resolves to a reader that can be used to read the data
    source§

    fn is_complete(&self) -> bool

    Returns true if the entry is complete. Read more
    source§

    impl MapEntryMut for Entry

    source§

    async fn batch_writer(&self) -> Result<impl BaoBatchWriter, Error>

    Get a batch writer

    Auto Trait Implementations§

    §

    impl !Freeze for Entry

    §

    impl RefUnwindSafe for Entry

    §

    impl Send for Entry

    §

    impl Sync for Entry

    §

    impl Unpin for Entry

    §

    impl UnwindSafe for Entry

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +Entry in iroh::blobs::store::readonly_mem - Rust

    Struct iroh::blobs::store::readonly_mem::Entry

    pub struct Entry { /* private fields */ }
    Expand description

    The MapEntry implementation for Store.

    +

    Trait Implementations§

    §

    impl Clone for Entry

    §

    fn clone(&self) -> Entry

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Entry

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl MapEntry for Entry

    §

    fn hash(&self) -> Hash

    The hash of the entry.
    §

    fn size(&self) -> BaoBlobSize

    The size of the entry.
    §

    async fn outboard(&self) -> Result<impl Outboard, Error>

    A future that resolves to a reader that can be used to read the outboard
    §

    async fn data_reader(&self) -> Result<impl AsyncSliceReader, Error>

    A future that resolves to a reader that can be used to read the data
    §

    fn is_complete(&self) -> bool

    Returns true if the entry is complete. Read more
    §

    impl MapEntryMut for Entry

    §

    async fn batch_writer(&self) -> Result<impl BaoBatchWriter, Error>

    Get a batch writer

    Auto Trait Implementations§

    §

    impl !Freeze for Entry

    §

    impl RefUnwindSafe for Entry

    §

    impl Send for Entry

    §

    impl Sync for Entry

    §

    impl Unpin for Entry

    §

    impl UnwindSafe for Entry

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh/blobs/store/readonly_mem/struct.Store.html b/pr/2574/docs/iroh/blobs/store/readonly_mem/struct.Store.html index 72bd9396d7..154481283a 100644 --- a/pr/2574/docs/iroh/blobs/store/readonly_mem/struct.Store.html +++ b/pr/2574/docs/iroh/blobs/store/readonly_mem/struct.Store.html @@ -1,75 +1,75 @@ -Store in iroh::blobs::store::readonly_mem - Rust

    Struct iroh::blobs::store::readonly_mem::Store

    source ·
    pub struct Store(/* private fields */);
    Expand description

    A readonly in memory database for iroh-blobs.

    +Store in iroh::blobs::store::readonly_mem - Rust

    Struct iroh::blobs::store::readonly_mem::Store

    pub struct Store(/* private fields */);
    Expand description

    A readonly in memory database for iroh-blobs.

    This is basically just a HashMap, so it does not allow for any modifications unless you have a mutable reference to it.

    It is therefore useful mostly for testing and sharing static data.

    -

    Implementations§

    source§

    impl Store

    source

    pub fn new( +

    Implementations§

    §

    impl Store

    pub fn new( entries: impl IntoIterator<Item = (impl Into<String>, impl AsRef<[u8]>)> ) -> (Store, BTreeMap<String, Hash>)

    Create a new Store from a sequence of entries.

    Returns the database and a map of names to computed blake3 hashes. In case of duplicate names, the last entry is used.

    -
    source

    pub fn insert(&mut self, data: impl AsRef<[u8]>) -> Hash

    Insert a new entry into the database, and return the hash of the entry.

    +

    pub fn insert(&mut self, data: impl AsRef<[u8]>) -> Hash

    Insert a new entry into the database, and return the hash of the entry.

    If the database was shared before, this will make a copy.

    -
    source

    pub fn insert_many( +

    pub fn insert_many( &mut self, items: impl IntoIterator<Item = impl AsRef<[u8]>> ) -> Option<Hash>

    Insert multiple entries into the database, and return the hash of the last entry.

    -
    source

    pub fn get_content(&self, hash: &Hash) -> Option<Bytes>

    Get the bytes associated with a hash, if they exist.

    -

    Trait Implementations§

    source§

    impl Clone for Store

    source§

    fn clone(&self) -> Store

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Store

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Default for Store

    source§

    fn default() -> Store

    Returns the “default value” for a type. Read more
    source§

    impl<K, V> FromIterator<(K, V)> for Store
    where +

    pub fn get_content(&self, hash: &Hash) -> Option<Bytes>

    Get the bytes associated with a hash, if they exist.

    +

    Trait Implementations§

    §

    impl Clone for Store

    §

    fn clone(&self) -> Store

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Store

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Store

    §

    fn default() -> Store

    Returns the “default value” for a type. Read more
    §

    impl<K, V> FromIterator<(K, V)> for Store
    where K: Into<String>, - V: AsRef<[u8]>,

    source§

    fn from_iter<T>(iter: T) -> Store
    where - T: IntoIterator<Item = (K, V)>,

    Creates a value from an iterator. Read more
    source§

    impl Map for Store

    §

    type Entry = Entry

    The entry type. An entry is a cheaply cloneable handle that can be used -to open readers for both the data and the outboard
    source§

    async fn get(&self, hash: &Hash) -> Result<Option<<Store as Map>::Entry>, Error>

    Get an entry for a hash. Read more
    source§

    impl MapMut for Store

    §

    type EntryMut = Entry

    An entry that is possibly writable
    source§

    async fn get_mut( + V: AsRef<[u8]>,

    §

    fn from_iter<T>(iter: T) -> Store
    where + T: IntoIterator<Item = (K, V)>,

    Creates a value from an iterator. Read more
    §

    impl Map for Store

    §

    type Entry = Entry

    The entry type. An entry is a cheaply cloneable handle that can be used +to open readers for both the data and the outboard
    §

    async fn get(&self, hash: &Hash) -> Result<Option<<Store as Map>::Entry>, Error>

    Get an entry for a hash. Read more
    §

    impl MapMut for Store

    §

    type EntryMut = Entry

    An entry that is possibly writable
    §

    async fn get_mut( &self, hash: &Hash -) -> Result<Option<<Store as MapMut>::EntryMut>, Error>

    Get an existing entry as an EntryMut. Read more
    source§

    async fn get_or_create(&self, _hash: Hash, _size: u64) -> Result<Entry, Error>

    Get an existing partial entry, or create a new one. Read more
    source§

    fn entry_status_sync(&self, hash: &Hash) -> Result<EntryStatus, Error>

    Sync version of entry_status, for the doc sync engine until we can get rid of it. Read more
    source§

    async fn entry_status(&self, hash: &Hash) -> Result<EntryStatus, Error>

    Find out if the data behind a hash is complete, partial, or not present. Read more
    source§

    async fn insert_complete(&self, _entry: Entry) -> Result<(), Error>

    Upgrade a partial entry to a complete entry.
    source§

    impl ReadableStore for Store

    source§

    async fn blobs( +) -> Result<Option<<Store as MapMut>::EntryMut>, Error>

    Get an existing entry as an EntryMut. Read more
    §

    async fn get_or_create(&self, _hash: Hash, _size: u64) -> Result<Entry, Error>

    Get an existing partial entry, or create a new one. Read more
    §

    fn entry_status_sync(&self, hash: &Hash) -> Result<EntryStatus, Error>

    Sync version of entry_status, for the doc sync engine until we can get rid of it. Read more
    §

    async fn entry_status(&self, hash: &Hash) -> Result<EntryStatus, Error>

    Find out if the data behind a hash is complete, partial, or not present. Read more
    §

    async fn insert_complete(&self, _entry: Entry) -> Result<(), Error>

    Upgrade a partial entry to a complete entry.
    §

    impl ReadableStore for Store

    §

    async fn blobs( &self ) -> Result<Box<dyn Iterator<Item = Result<Hash, Error>> + Send + Sync>, Error>

    list all blobs in the database. This includes both raw blobs that have -been imported, and hash sequences that have been created internally.
    source§

    async fn tags( +been imported, and hash sequences that have been created internally.

    §

    async fn tags( &self -) -> Result<Box<dyn Iterator<Item = Result<(Tag, HashAndFormat), Error>> + Send + Sync>, Error>

    list all tags (collections or other explicitly added things) in the database
    source§

    fn temp_tags(&self) -> Box<dyn Iterator<Item = HashAndFormat> + Send + Sync>

    Temp tags
    source§

    async fn consistency_check( +) -> Result<Box<dyn Iterator<Item = Result<(Tag, HashAndFormat), Error>> + Send + Sync>, Error>

    list all tags (collections or other explicitly added things) in the database
    §

    fn temp_tags(&self) -> Box<dyn Iterator<Item = HashAndFormat> + Send + Sync>

    Temp tags
    §

    async fn consistency_check( &self, _repair: bool, _tx: BoxedProgressSender<ConsistencyCheckProgress> -) -> Result<(), Error>

    Perform a consistency check on the database
    source§

    async fn export( +) -> Result<(), Error>

    Perform a consistency check on the database
    §

    async fn export( &self, hash: Hash, target: PathBuf, mode: ExportMode, progress: Box<dyn Fn(u64) -> Result<(), Error> + Send + Sync> -) -> Result<(), Error>

    This trait method extracts a file to a local path. Read more
    source§

    async fn partial_blobs( +) -> Result<(), Error>

    This trait method extracts a file to a local path. Read more
    §

    async fn partial_blobs( &self -) -> Result<Box<dyn Iterator<Item = Result<Hash, Error>> + Send + Sync>, Error>

    list partial blobs in the database
    source§

    impl Store for Store

    source§

    async fn import_bytes( +) -> Result<Box<dyn Iterator<Item = Result<Hash, Error>> + Send + Sync>, Error>

    list partial blobs in the database
    §

    impl Store for Store

    §

    async fn import_bytes( &self, bytes: Bytes, format: BlobFormat ) -> Result<TempTag, Error>

    import a byte slice

    -
    source§

    async fn import_file( +

    §

    async fn import_file( &self, data: PathBuf, mode: ImportMode, format: BlobFormat, progress: impl ProgressSender<Msg = ImportProgress> + IdGenerator -) -> Result<(TempTag, u64), Error>

    This trait method imports a file from a local path. Read more
    source§

    async fn import_stream( +) -> Result<(TempTag, u64), Error>

    This trait method imports a file from a local path. Read more
    §

    async fn import_stream( &self, data: impl Stream<Item = Result<Bytes, Error>> + Unpin + Send, format: BlobFormat, progress: impl ProgressSender<Msg = ImportProgress> + IdGenerator -) -> Result<(TempTag, u64), Error>

    Import data from a stream of bytes.
    source§

    async fn set_tag( +) -> Result<(TempTag, u64), Error>

    Import data from a stream of bytes.
    §

    async fn set_tag( &self, _name: Tag, _hash: Option<HashAndFormat> -) -> Result<(), Error>

    Set a tag
    source§

    async fn create_tag(&self, _hash: HashAndFormat) -> Result<Tag, Error>

    Create a new tag
    source§

    fn temp_tag(&self, inner: HashAndFormat) -> TempTag

    Create a temporary pin for this store
    source§

    async fn gc_start(&self) -> Result<(), Error>

    Notify the store that a new gc phase is about to start. Read more
    source§

    async fn delete(&self, _hashes: Vec<Hash>) -> Result<(), Error>

    physically delete the given hashes from the store.
    source§

    async fn shutdown(&self)

    Shutdown the store.
    source§

    fn import_reader( +) -> Result<(), Error>

    Set a tag
    §

    async fn create_tag(&self, _hash: HashAndFormat) -> Result<Tag, Error>

    Create a new tag
    §

    fn temp_tag(&self, inner: HashAndFormat) -> TempTag

    Create a temporary pin for this store
    §

    async fn gc_start(&self) -> Result<(), Error>

    Notify the store that a new gc phase is about to start. Read more
    §

    async fn delete(&self, _hashes: Vec<Hash>) -> Result<(), Error>

    physically delete the given hashes from the store.
    §

    async fn shutdown(&self)

    Shutdown the store.
    §

    fn import_reader( &self, data: impl AsyncRead + Send + Unpin + 'static, format: BlobFormat, progress: impl ProgressSender<Msg = ImportProgress> + IdGenerator -) -> impl Future<Output = Result<(TempTag, u64), Error>> + Send

    Import data from an async byte reader.
    source§

    fn gc_mark( +) -> impl Future<Output = Result<(TempTag, u64), Error>> + Send

    Import data from an async byte reader.
    §

    fn gc_mark( &self, live: &mut BTreeSet<Hash> -) -> impl Stream<Item = GcMarkEvent> + Unpin

    Traverse all roots recursively and mark them as live. Read more
    source§

    fn gc_sweep( +) -> impl Stream<Item = GcMarkEvent> + Unpin

    Traverse all roots recursively and mark them as live. Read more
    §

    fn gc_sweep( &self, live: &BTreeSet<Hash> -) -> impl Stream<Item = GcSweepEvent> + Unpin

    Remove all blobs that are not marked as live. Read more
    source§

    fn validate( +) -> impl Stream<Item = GcSweepEvent> + Unpin

    Remove all blobs that are not marked as live. Read more
    §

    fn validate( &self, repair: bool, tx: BoxedProgressSender<ValidateProgress> diff --git a/pr/2574/docs/iroh/blobs/store/trait.BaoBatchWriter.html b/pr/2574/docs/iroh/blobs/store/trait.BaoBatchWriter.html index 7875f57141..cb68929d77 100644 --- a/pr/2574/docs/iroh/blobs/store/trait.BaoBatchWriter.html +++ b/pr/2574/docs/iroh/blobs/store/trait.BaoBatchWriter.html @@ -1,4 +1,4 @@ -BaoBatchWriter in iroh::blobs::store - Rust

    Trait iroh::blobs::store::BaoBatchWriter

    source ·
    pub trait BaoBatchWriter {
    +BaoBatchWriter in iroh::blobs::store - Rust

    Trait iroh::blobs::store::BaoBatchWriter

    pub trait BaoBatchWriter {
         // Required methods
         fn write_batch(
             &mut self,
    @@ -10,7 +10,7 @@
     outboard.

    Details like the chunk group size and the actual storage location are left to the implementation.

    -

    Required Methods§

    Required Methods§

    fn write_batch( &mut self, size: u64, batch: Vec<BaoContentItem> @@ -29,13 +29,13 @@ parent nodes and a leaf.

    Batch is a vec so it can be moved into a task, which is unfortunately necessary in typical io code.

    -

    source

    fn sync(&mut self) -> impl Future<Output = Result<(), Error>>

    Sync the written data to permanent storage, if applicable. +

    fn sync(&mut self) -> impl Future<Output = Result<(), Error>>

    Sync the written data to permanent storage, if applicable. E.g. for a file based implementation, this would call sync_data on all files.

    -

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl<W> BaoBatchWriter for &mut W
    where +

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    §

    impl<W> BaoBatchWriter for &mut W
    where W: BaoBatchWriter,

    Implement BaoBatchWriter for mutable references

    -
    §

    async fn write_batch( &mut self, size: u64, batch: Vec<BaoContentItem> -) -> Result<(), Error>

    source§

    async fn sync(&mut self) -> Result<(), Error>

    Implementors§

    \ No newline at end of file +) -> Result<(), Error>

    §

    async fn sync(&mut self) -> Result<(), Error>

    Implementors§

    \ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/trait.Map.html b/pr/2574/docs/iroh/blobs/store/trait.Map.html index 06eb16157c..f4538ed7f8 100644 --- a/pr/2574/docs/iroh/blobs/store/trait.Map.html +++ b/pr/2574/docs/iroh/blobs/store/trait.Map.html @@ -1,4 +1,4 @@ -Map in iroh::blobs::store - Rust

    Trait iroh::blobs::store::Map

    source ·
    pub trait Map: Clone + Send + Sync + 'static {
    +Map in iroh::blobs::store - Rust

    Trait iroh::blobs::store::Map

    pub trait Map: Clone + Send + Sync + 'static {
         type Entry: MapEntry;
     
         // Required method
    @@ -12,9 +12,9 @@
     

    Entries are not guaranteed to be complete for all implementations. They are also not guaranteed to be immutable, since this could be the readonly view of a mutable store.

    -

    Required Associated Types§

    source

    type Entry: MapEntry

    The entry type. An entry is a cheaply cloneable handle that can be used +

    Required Associated Types§

    type Entry: MapEntry

    The entry type. An entry is a cheaply cloneable handle that can be used to open readers for both the data and the outboard

    -

    Required Methods§

    source

    fn get( +

    Required Methods§

    fn get( &self, hash: &Hash ) -> impl Future<Output = Result<Option<Self::Entry>, Error>> + Send

    Get an entry for a hash.

    @@ -22,4 +22,4 @@ is an entry. Creating an entry should be cheap, any expensive ops should be deferred to the creation of the actual readers.

    It is not guaranteed that the entry is complete.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl Map for iroh::blobs::store::fs::Store

    §

    type Entry = BaoFileHandle

    source§

    impl Map for iroh::blobs::store::mem::Store

    §

    type Entry = Entry

    source§

    impl Map for iroh::blobs::store::readonly_mem::Store

    §

    type Entry = Entry

    \ No newline at end of file +

    Object Safety§

    This trait is not object safe.

    Implementors§

    §

    impl Map for iroh::blobs::store::fs::Store

    §

    type Entry = BaoFileHandle

    §

    impl Map for iroh::blobs::store::mem::Store

    §

    type Entry = Entry

    §

    impl Map for iroh::blobs::store::readonly_mem::Store

    §

    type Entry = Entry

    \ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/trait.MapEntry.html b/pr/2574/docs/iroh/blobs/store/trait.MapEntry.html index cd9aa4d5e1..53e29ab248 100644 --- a/pr/2574/docs/iroh/blobs/store/trait.MapEntry.html +++ b/pr/2574/docs/iroh/blobs/store/trait.MapEntry.html @@ -1,4 +1,4 @@ -MapEntry in iroh::blobs::store - Rust

    Trait iroh::blobs::store::MapEntry

    source ·
    pub trait MapEntry: Debug + Clone + Send + Sync + 'static {
    +MapEntry in iroh::blobs::store - Rust

    Trait iroh::blobs::store::MapEntry

    pub trait MapEntry: Debug + Clone + Send + Sync + 'static {
         // Required methods
         fn hash(&self) -> Hash;
         fn size(&self) -> BaoBlobSize;
    @@ -14,13 +14,13 @@
     reader pair. Creating the reader is async and may fail. The futures that
     create the readers must be Send, but the readers themselves don’t have to
     be.

    -

    Required Methods§

    source

    fn hash(&self) -> Hash

    The hash of the entry.

    -
    source

    fn size(&self) -> BaoBlobSize

    The size of the entry.

    -
    source

    fn is_complete(&self) -> bool

    Returns true if the entry is complete.

    +

    Required Methods§

    fn hash(&self) -> Hash

    The hash of the entry.

    +

    fn size(&self) -> BaoBlobSize

    The size of the entry.

    +

    fn is_complete(&self) -> bool

    Returns true if the entry is complete.

    Note that this does not actually verify if the bytes on disk are complete, it only checks if the entry was marked as complete in the store.

    -
    source

    fn outboard(&self) -> impl Future<Output = Result<impl Outboard, Error>> + Send

    A future that resolves to a reader that can be used to read the outboard

    -
    source

    fn data_reader( +

    fn outboard(&self) -> impl Future<Output = Result<impl Outboard, Error>> + Send

    A future that resolves to a reader that can be used to read the outboard

    +

    fn data_reader( &self ) -> impl Future<Output = Result<impl AsyncSliceReader, Error>> + Send

    A future that resolves to a reader that can be used to read the data

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl MapEntry for iroh::blobs::store::mem::Entry

    source§

    impl MapEntry for iroh::blobs::store::readonly_mem::Entry

    \ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

§

impl MapEntry for iroh::blobs::store::mem::Entry

§

impl MapEntry for iroh::blobs::store::readonly_mem::Entry

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/trait.MapEntryMut.html b/pr/2574/docs/iroh/blobs/store/trait.MapEntryMut.html index 8c54a6516a..fe7bd80da1 100644 --- a/pr/2574/docs/iroh/blobs/store/trait.MapEntryMut.html +++ b/pr/2574/docs/iroh/blobs/store/trait.MapEntryMut.html @@ -1,10 +1,10 @@ -MapEntryMut in iroh::blobs::store - Rust

Trait iroh::blobs::store::MapEntryMut

source ·
pub trait MapEntryMut: MapEntry {
+MapEntryMut in iroh::blobs::store - Rust

Trait iroh::blobs::store::MapEntryMut

pub trait MapEntryMut: MapEntry {
     // Required method
     fn batch_writer(
         &self
     ) -> impl Future<Output = Result<impl BaoBatchWriter, Error>> + Send;
 }
Expand description

A partial entry

-

Required Methods§

Required Methods§

fn batch_writer( &self ) -> impl Future<Output = Result<impl BaoBatchWriter, Error>> + Send

Get a batch writer

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl MapEntryMut for iroh::blobs::store::mem::Entry

source§

impl MapEntryMut for iroh::blobs::store::readonly_mem::Entry

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

§

impl MapEntryMut for iroh::blobs::store::mem::Entry

§

impl MapEntryMut for iroh::blobs::store::readonly_mem::Entry

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/trait.MapMut.html b/pr/2574/docs/iroh/blobs/store/trait.MapMut.html index 2f8c60454c..301a4b740a 100644 --- a/pr/2574/docs/iroh/blobs/store/trait.MapMut.html +++ b/pr/2574/docs/iroh/blobs/store/trait.MapMut.html @@ -1,4 +1,4 @@ -MapMut in iroh::blobs::store - Rust

Trait iroh::blobs::store::MapMut

source ·
pub trait MapMut: Map {
+MapMut in iroh::blobs::store - Rust

Trait iroh::blobs::store::MapMut

pub trait MapMut: Map {
     type EntryMut: MapEntryMut;
 
     // Required methods
@@ -22,30 +22,30 @@
     ) -> impl Future<Output = Result<(), Error>> + Send;
 }
Expand description

A mutable bao map.

This extends the readonly Map trait with methods to create and modify entries.

-

Required Associated Types§

source

type EntryMut: MapEntryMut

An entry that is possibly writable

-

Required Methods§

Required Associated Types§

type EntryMut: MapEntryMut

An entry that is possibly writable

+

Required Methods§

fn get_mut( &self, hash: &Hash ) -> impl Future<Output = Result<Option<Self::EntryMut>, Error>> + Send

Get an existing entry as an EntryMut.

For implementations where EntryMut and Entry are the same type, this is just an alias for get.

-
source

fn get_or_create( +

fn get_or_create( &self, hash: Hash, size: u64 ) -> impl Future<Output = Result<Self::EntryMut, Error>> + Send

Get an existing partial entry, or create a new one.

We need to know the size of the partial entry. This might produce an error e.g. if there is not enough space on disk.

-
source

fn entry_status( +

fn entry_status( &self, hash: &Hash ) -> impl Future<Output = Result<EntryStatus, Error>> + Send

Find out if the data behind a hash is complete, partial, or not present.

Note that this does not actually verify the on-disc data, but only checks in which section of the store the entry is present.

-
source

fn entry_status_sync(&self, hash: &Hash) -> Result<EntryStatus, Error>

Sync version of entry_status, for the doc sync engine until we can get rid of it.

+

fn entry_status_sync(&self, hash: &Hash) -> Result<EntryStatus, Error>

Sync version of entry_status, for the doc sync engine until we can get rid of it.

Don’t count on this to be efficient.

-
source

fn insert_complete( +

fn insert_complete( &self, entry: Self::EntryMut ) -> impl Future<Output = Result<(), Error>> + Send

Upgrade a partial entry to a complete entry.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl MapMut for iroh::blobs::store::fs::Store

§

type EntryMut = BaoFileHandle

source§

impl MapMut for iroh::blobs::store::mem::Store

source§

impl MapMut for iroh::blobs::store::readonly_mem::Store

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

§

impl MapMut for iroh::blobs::store::fs::Store

§

type EntryMut = BaoFileHandle

§

impl MapMut for iroh::blobs::store::mem::Store

§

impl MapMut for iroh::blobs::store::readonly_mem::Store

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/trait.ReadableStore.html b/pr/2574/docs/iroh/blobs/store/trait.ReadableStore.html index 053d12b5bb..7bcbcf2429 100644 --- a/pr/2574/docs/iroh/blobs/store/trait.ReadableStore.html +++ b/pr/2574/docs/iroh/blobs/store/trait.ReadableStore.html @@ -1,4 +1,4 @@ -ReadableStore in iroh::blobs::store - Rust

Trait iroh::blobs::store::ReadableStore

source ·
pub trait ReadableStore: Map {
+ReadableStore in iroh::blobs::store - Rust

Trait iroh::blobs::store::ReadableStore

pub trait ReadableStore: Map {
     // Required methods
     fn blobs(
         &self
@@ -23,23 +23,23 @@
         progress: Box<dyn Fn(u64) -> Result<(), Error> + Send + Sync>
     ) -> impl Future<Output = Result<(), Error>> + Send;
 }
Expand description

Extension of Map to add misc methods used by the rpc calls.

-

Required Methods§

Required Methods§

fn blobs( &self ) -> impl Future<Output = Result<Box<dyn Iterator<Item = Result<Hash, Error>> + Send + Sync>, Error>> + Send

list all blobs in the database. This includes both raw blobs that have been imported, and hash sequences that have been created internally.

-
source

fn tags( +

fn tags( &self ) -> impl Future<Output = Result<Box<dyn Iterator<Item = Result<(Tag, HashAndFormat), Error>> + Send + Sync>, Error>> + Send

list all tags (collections or other explicitly added things) in the database

-
source

fn temp_tags(&self) -> Box<dyn Iterator<Item = HashAndFormat> + Send + Sync>

Temp tags

-
source

fn consistency_check( +

fn temp_tags(&self) -> Box<dyn Iterator<Item = HashAndFormat> + Send + Sync>

Temp tags

+

fn consistency_check( &self, repair: bool, tx: BoxedProgressSender<ConsistencyCheckProgress> ) -> impl Future<Output = Result<(), Error>> + Send

Perform a consistency check on the database

-
source

fn partial_blobs( +

fn partial_blobs( &self ) -> impl Future<Output = Result<Box<dyn Iterator<Item = Result<Hash, Error>> + Send + Sync>, Error>> + Send

list partial blobs in the database

-
source

fn export( +

fn export( &self, hash: Hash, target: PathBuf, @@ -50,4 +50,4 @@ target is the path to the target file mode is a hint how the file should be exported. progress is a callback that is called with the total number of bytes that have been written

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl ReadableStore for iroh::blobs::store::fs::Store

source§

impl ReadableStore for iroh::blobs::store::mem::Store

source§

impl ReadableStore for iroh::blobs::store::readonly_mem::Store

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

§

impl ReadableStore for iroh::blobs::store::fs::Store

§

impl ReadableStore for iroh::blobs::store::mem::Store

§

impl ReadableStore for iroh::blobs::store::readonly_mem::Store

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/trait.Store.html b/pr/2574/docs/iroh/blobs/store/trait.Store.html index 59b988d633..156e45f408 100644 --- a/pr/2574/docs/iroh/blobs/store/trait.Store.html +++ b/pr/2574/docs/iroh/blobs/store/trait.Store.html @@ -1,4 +1,4 @@ -Store in iroh::blobs::store - Rust

Trait iroh::blobs::store::Store

source ·
pub trait Store: ReadableStore + MapMut + Debug {
+Store in iroh::blobs::store - Rust

Trait iroh::blobs::store::Store

pub trait Store: ReadableStore + MapMut + Debug {
 
Show 13 methods // Required methods fn import_file( &self, @@ -56,7 +56,7 @@ tx: BoxedProgressSender<ValidateProgress> ) -> impl Future<Output = Result<(), Error>> + Send { ... }
}
Expand description

The mutable part of a Bao store.

-

Required Methods§

Required Methods§

fn import_file( &self, data: PathBuf, mode: ImportMode, @@ -71,43 +71,43 @@ will fail.

Returns the hash of the imported file. The reason to have this method is that some database implementations might be able to import a file without copying it.

-

source

fn import_bytes( +

fn import_bytes( &self, bytes: Bytes, format: BlobFormat ) -> impl Future<Output = Result<TempTag, Error>> + Send

Import data from memory.

It is a special case of import that does not use the file system.

-
source

fn import_stream( +

fn import_stream( &self, data: impl Stream<Item = Result<Bytes, Error>> + Send + Unpin + 'static, format: BlobFormat, progress: impl ProgressSender<Msg = ImportProgress> + IdGenerator ) -> impl Future<Output = Result<(TempTag, u64), Error>> + Send

Import data from a stream of bytes.

-
source

fn set_tag( +

fn set_tag( &self, name: Tag, hash: Option<HashAndFormat> ) -> impl Future<Output = Result<(), Error>> + Send

Set a tag

-
source

fn create_tag( +

fn create_tag( &self, hash: HashAndFormat ) -> impl Future<Output = Result<Tag, Error>> + Send

Create a new tag

-
source

fn temp_tag(&self, value: HashAndFormat) -> TempTag

Create a temporary pin for this store

-
source

fn gc_start(&self) -> impl Future<Output = Result<(), Error>> + Send

Notify the store that a new gc phase is about to start.

+

fn temp_tag(&self, value: HashAndFormat) -> TempTag

Create a temporary pin for this store

+

fn gc_start(&self) -> impl Future<Output = Result<(), Error>> + Send

Notify the store that a new gc phase is about to start.

This should not fail unless the store is shut down or otherwise in a bad state. The gc task will shut itself down if this fails.

-
source

fn delete( +

fn delete( &self, hashes: Vec<Hash> ) -> impl Future<Output = Result<(), Error>> + Send

physically delete the given hashes from the store.

-
source

fn shutdown(&self) -> impl Future<Output = ()> + Send

Shutdown the store.

-

Provided Methods§

fn shutdown(&self) -> impl Future<Output = ()> + Send

Shutdown the store.

+

Provided Methods§

fn import_reader( &self, data: impl AsyncRead + Send + Unpin + 'static, format: BlobFormat, progress: impl ProgressSender<Msg = ImportProgress> + IdGenerator ) -> impl Future<Output = Result<(TempTag, u64), Error>> + Send

Import data from an async byte reader.

-
source

fn gc_mark( +

fn gc_mark( &self, live: &mut BTreeSet<Hash> ) -> impl Stream<Item = GcMarkEvent> + Unpin

Traverse all roots recursively and mark them as live.

@@ -117,14 +117,14 @@

The implementation of this method should do the minimum amount of work to determine the live set. Actual deletion of garbage should be done in the gc_sweep phase.

-
source

fn gc_sweep( +

fn gc_sweep( &self, live: &BTreeSet<Hash> ) -> impl Stream<Item = GcSweepEvent> + Unpin

Remove all blobs that are not marked as live.

Poll this stream to completion to perform a full gc sweep. Not polling this stream to completion just means that some garbage will remain in the database.

Sweeping might take long, but it can safely be done in the background.

-
source

fn validate( +

fn validate( &self, repair: bool, tx: BoxedProgressSender<ValidateProgress> @@ -132,4 +132,4 @@

This will check that the file and outboard content is correct for all complete entries, and output valid ranges for all partial entries.

It will not check the internal consistency of the database.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Store for iroh::blobs::store::fs::Store

source§

impl Store for iroh::blobs::store::mem::Store

source§

impl Store for iroh::blobs::store::readonly_mem::Store

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

§

impl Store for iroh::blobs::store::fs::Store

§

impl Store for iroh::blobs::store::mem::Store

§

impl Store for iroh::blobs::store::readonly_mem::Store

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/type.DbIter.html b/pr/2574/docs/iroh/blobs/store/type.DbIter.html index 7443442d3f..eef343dd41 100644 --- a/pr/2574/docs/iroh/blobs/store/type.DbIter.html +++ b/pr/2574/docs/iroh/blobs/store/type.DbIter.html @@ -1,2 +1,2 @@ -DbIter in iroh::blobs::store - Rust

Type Alias iroh::blobs::store::DbIter

source ·
pub type DbIter<T> = Box<dyn Iterator<Item = Result<T, Error>> + Send + Sync>;
Expand description

A fallible but owned iterator over the entries in a store.

+DbIter in iroh::blobs::store - Rust

Type Alias iroh::blobs::store::DbIter

pub type DbIter<T> = Box<dyn Iterator<Item = Result<T, Error>> + Send + Sync>;
Expand description

A fallible but owned iterator over the entries in a store.

Aliased Type§

struct DbIter<T>(/* private fields */);
\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/store/type.ExportProgressCb.html b/pr/2574/docs/iroh/blobs/store/type.ExportProgressCb.html index 80fee16e23..ec8f6b1338 100644 --- a/pr/2574/docs/iroh/blobs/store/type.ExportProgressCb.html +++ b/pr/2574/docs/iroh/blobs/store/type.ExportProgressCb.html @@ -1,2 +1,2 @@ -ExportProgressCb in iroh::blobs::store - Rust

Type Alias iroh::blobs::store::ExportProgressCb

source ·
pub type ExportProgressCb = Box<dyn Fn(u64) -> Result<(), Error> + Send + Sync>;
Expand description

Export trogress callback

+ExportProgressCb in iroh::blobs::store - Rust

Type Alias iroh::blobs::store::ExportProgressCb

pub type ExportProgressCb = Box<dyn Fn(u64) -> Result<(), Error> + Send + Sync>;
Expand description

Export trogress callback

Aliased Type§

struct ExportProgressCb(/* private fields */);
\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/struct.Hash.html b/pr/2574/docs/iroh/blobs/struct.Hash.html index c742ba2d61..92d677fb3c 100644 --- a/pr/2574/docs/iroh/blobs/struct.Hash.html +++ b/pr/2574/docs/iroh/blobs/struct.Hash.html @@ -6,10 +6,10 @@
source

pub fn to_hex(&self) -> String

Convert the hash to a hex string.

source

pub fn fmt_short(&self) -> String

Convert to a base32 string limited to the first 10 bytes for a friendly string representation of the hash.

-

Trait Implementations§

source§

impl AsRef<[u8]> for Hash

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Borrow<[u8]> for Hash

source§

fn borrow(&self) -> &[u8]

Immutably borrows from an owned value. Read more
source§

impl Borrow<[u8; 32]> for Hash

source§

fn borrow(&self) -> &[u8; 32]

Immutably borrows from an owned value. Read more
source§

impl Clone for Hash

source§

fn clone(&self) -> Hash

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Hash

Trait Implementations§

source§

impl AsRef<[u8]> for Hash

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Borrow<[u8]> for Hash

source§

fn borrow(&self) -> &[u8]

Immutably borrows from an owned value. Read more
source§

impl Borrow<[u8; 32]> for Hash

source§

fn borrow(&self) -> &[u8; 32]

Immutably borrows from an owned value. Read more
source§

impl Clone for Hash

source§

fn clone(&self) -> Hash

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Hash

source§

fn deserialize<D>( deserializer: D ) -> Result<Hash, <D as Deserializer<'de>>::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&[u8; 32]> for Hash

source§

fn from(value: &[u8; 32]) -> Hash

Converts to this type from the input type.
source§

impl From<[u8; 32]> for Hash

source§

fn from(value: [u8; 32]) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for [u8; 32]

source§

fn from(value: Hash) -> [u8; 32]

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
source§

impl FromIterator<Hash> for HashSeq

source§

fn from_iter<T>(iter: T) -> HashSeq
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&[u8; 32]> for Hash

source§

fn from(value: &[u8; 32]) -> Hash

Converts to this type from the input type.
source§

impl From<[u8; 32]> for Hash

source§

fn from(value: [u8; 32]) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for [u8; 32]

source§

fn from(value: Hash) -> [u8; 32]

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
§

impl From<Hash> for Hash

§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
§

impl FromIterator<Hash> for HashSeq

§

fn from_iter<T>(iter: T) -> HashSeq
where T: IntoIterator<Item = Hash>,

Creates a value from an iterator. Read more
source§

impl FromStr for Hash

§

type Err = HexOrBase32ParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Hash, <Hash as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for Hash

source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, diff --git a/pr/2574/docs/iroh/blobs/struct.HashAndFormat.html b/pr/2574/docs/iroh/blobs/struct.HashAndFormat.html index 41a04faa96..8bd32306d1 100644 --- a/pr/2574/docs/iroh/blobs/struct.HashAndFormat.html +++ b/pr/2574/docs/iroh/blobs/struct.HashAndFormat.html @@ -10,7 +10,7 @@

Trait Implementations§

source§

impl Clone for HashAndFormat

source§

fn clone(&self) -> HashAndFormat

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for HashAndFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for HashAndFormat

source§

fn deserialize<D>( deserializer: D ) -> Result<HashAndFormat, <D as Deserializer<'de>>::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for HashAndFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<DownloadKind> for HashAndFormat

source§

fn from(value: DownloadKind) -> HashAndFormat

Converts to this type from the input type.
source§

impl From<HashAndFormat> for DownloadKind

source§

fn from(value: HashAndFormat) -> DownloadKind

Converts to this type from the input type.
source§

impl From<HashAndFormat> for HashAndFormat

source§

fn from(value: HashAndFormat) -> HashAndFormat

Converts to this type from the input type.
source§

impl FromStr for HashAndFormat

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<HashAndFormat, <HashAndFormat as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for HashAndFormat

source§

fn hash<__H>(&self, state: &mut __H)
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for HashAndFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<DownloadKind> for HashAndFormat

§

fn from(value: DownloadKind) -> HashAndFormat

Converts to this type from the input type.
§

impl From<HashAndFormat> for DownloadKind

§

fn from(value: HashAndFormat) -> DownloadKind

Converts to this type from the input type.
§

impl From<HashAndFormat> for HashAndFormat

§

fn from(value: HashAndFormat) -> HashAndFormat

Converts to this type from the input type.
source§

impl FromStr for HashAndFormat

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<HashAndFormat, <HashAndFormat as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for HashAndFormat

source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl MaxSize for HashAndFormat

source§

const POSTCARD_MAX_SIZE: usize = 33usize

The maximum possible size that the serialization of this diff --git a/pr/2574/docs/iroh/blobs/struct.Tag.html b/pr/2574/docs/iroh/blobs/struct.Tag.html index bc1318d91d..a6e5e7a80f 100644 --- a/pr/2574/docs/iroh/blobs/struct.Tag.html +++ b/pr/2574/docs/iroh/blobs/struct.Tag.html @@ -1,32 +1,32 @@ -Tag in iroh::blobs - Rust

Struct iroh::blobs::Tag

source ·
pub struct Tag(pub Bytes);
Expand description

A tag

-

Tuple Fields§

§0: Bytes

Implementations§

source§

impl Tag

source

pub fn auto(time: SystemTime, exists: impl Fn(&[u8]) -> bool) -> Tag

Create a new tag that does not exist yet.

-

Trait Implementations§

source§

impl Borrow<[u8]> for Tag

source§

fn borrow(&self) -> &[u8]

Immutably borrows from an owned value. Read more
source§

impl Clone for Tag

source§

fn clone(&self) -> Tag

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Tag

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Tag

source§

fn deserialize<__D>( +Tag in iroh::blobs - Rust

Struct iroh::blobs::Tag

pub struct Tag(pub Bytes);
Expand description

A tag

+

Tuple Fields§

§0: Bytes

Implementations§

§

impl Tag

pub fn auto(time: SystemTime, exists: impl Fn(&[u8]) -> bool) -> Tag

Create a new tag that does not exist yet.

+

Trait Implementations§

§

impl Borrow<[u8]> for Tag

§

fn borrow(&self) -> &[u8]

Immutably borrows from an owned value. Read more
§

impl Clone for Tag

§

fn clone(&self) -> Tag

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for Tag

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for Tag

§

fn deserialize<__D>( __deserializer: __D ) -> Result<Tag, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Tag

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&str> for Tag

source§

fn from(value: &str) -> Tag

Converts to this type from the input type.
source§

impl From<Bytes> for Tag

source§

fn from(value: Bytes) -> Tag

Converts to this type from the input type.
source§

impl From<String> for Tag

source§

fn from(value: String) -> Tag

Converts to this type from the input type.
source§

impl Key for Tag

source§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
source§

impl Ord for Tag

source§

fn cmp(&self, other: &Tag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl Display for Tag

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<&str> for Tag

§

fn from(value: &str) -> Tag

Converts to this type from the input type.
§

impl From<Bytes> for Tag

§

fn from(value: Bytes) -> Tag

Converts to this type from the input type.
§

impl From<String> for Tag

§

fn from(value: String) -> Tag

Converts to this type from the input type.
§

impl Key for Tag

§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
§

impl Ord for Tag

§

fn cmp(&self, other: &Tag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Tag

source§

fn eq(&self, other: &Tag) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
§

impl PartialEq for Tag

§

fn eq(&self, other: &Tag) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for Tag

source§

fn partial_cmp(&self, other: &Tag) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
§

impl PartialOrd for Tag

§

fn partial_cmp(&self, other: &Tag) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl RedbKey for Tag

source§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
source§

impl RedbValue for Tag

§

type SelfType<'a> = Tag

SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a
§

type AsBytes<'a> = Bytes

source§

fn fixed_width() -> Option<usize>

Width of a fixed type, or None for variable width
source§

fn from_bytes<'a>(data: &'a [u8]) -> <Tag as RedbValue>::SelfType<'a>
where +operator. Read more

§

impl RedbKey for Tag

§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
§

impl RedbValue for Tag

§

type SelfType<'a> = Tag

SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a
§

type AsBytes<'a> = Bytes

§

fn fixed_width() -> Option<usize>

Width of a fixed type, or None for variable width
§

fn from_bytes<'a>(data: &'a [u8]) -> <Tag as RedbValue>::SelfType<'a>
where Tag: 'a,

Deserializes data -Implementations may return a view over data, or an owned type
source§

fn as_bytes<'a, 'b>( +Implementations may return a view over data, or an owned type

§

fn as_bytes<'a, 'b>( value: &'a <Tag as RedbValue>::SelfType<'b> ) -> <Tag as RedbValue>::AsBytes<'a>
where 'b: 'a, - Tag: 'a + 'b,

Serialize the value to a slice
source§

fn type_name() -> TypeName

Globally unique identifier for this type
source§

impl Serialize for Tag

source§

fn serialize<__S>( + Tag: 'a + 'b,

Serialize the value to a slice
§

fn type_name() -> TypeName

Globally unique identifier for this type
§

impl Serialize for Tag

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Value for Tag

§

type SelfType<'a> = Tag

SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a
§

type AsBytes<'a> = Bytes

source§

fn fixed_width() -> Option<usize>

Width of a fixed type, or None for variable width
source§

fn from_bytes<'a>(data: &'a [u8]) -> <Tag as Value>::SelfType<'a>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Value for Tag

§

type SelfType<'a> = Tag

SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a
§

type AsBytes<'a> = Bytes

§

fn fixed_width() -> Option<usize>

Width of a fixed type, or None for variable width
§

fn from_bytes<'a>(data: &'a [u8]) -> <Tag as Value>::SelfType<'a>
where Tag: 'a,

Deserializes data -Implementations may return a view over data, or an owned type
source§

fn as_bytes<'a, 'b>( +Implementations may return a view over data, or an owned type

§

fn as_bytes<'a, 'b>( value: &'a <Tag as Value>::SelfType<'b> ) -> <Tag as Value>::AsBytes<'a>
where 'b: 'a, - Tag: 'a + 'b,

Serialize the value to a slice
source§

fn type_name() -> TypeName

Globally unique identifier for this type
source§

impl Eq for Tag

source§

impl StructuralPartialEq for Tag

Auto Trait Implementations§

§

impl !Freeze for Tag

§

impl RefUnwindSafe for Tag

§

impl Send for Tag

§

impl Sync for Tag

§

impl Unpin for Tag

§

impl UnwindSafe for Tag

Blanket Implementations§

source§

impl<T> Any for T
where + Tag: 'a + 'b,

Serialize the value to a slice
§

fn type_name() -> TypeName

Globally unique identifier for this type
§

impl Eq for Tag

§

impl StructuralPartialEq for Tag

Auto Trait Implementations§

§

impl !Freeze for Tag

§

impl RefUnwindSafe for Tag

§

impl Send for Tag

§

impl Sync for Tag

§

impl Unpin for Tag

§

impl UnwindSafe for Tag

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/struct.TempTag.html b/pr/2574/docs/iroh/blobs/struct.TempTag.html index 5df97f0bd6..3f870ea734 100644 --- a/pr/2574/docs/iroh/blobs/struct.TempTag.html +++ b/pr/2574/docs/iroh/blobs/struct.TempTag.html @@ -1,18 +1,16 @@ -TempTag in iroh::blobs - Rust

Struct iroh::blobs::TempTag

source ·
pub struct TempTag { /* private fields */ }
Expand description

A hash and format pair that is protected from garbage collection.

+TempTag in iroh::blobs - Rust

Struct iroh::blobs::TempTag

pub struct TempTag { /* private fields */ }
Expand description

A hash and format pair that is protected from garbage collection.

If format is raw, this will protect just the blob If format is collection, this will protect the collection and all blobs in it

-

Implementations§

source§

impl TempTag

source

pub fn new(inner: HashAndFormat, on_drop: Option<Weak<dyn TagDrop>>) -> TempTag

Create a new temp tag for the given hash and format

+

Implementations§

§

impl TempTag

pub fn new(inner: HashAndFormat, on_drop: Option<Weak<dyn TagDrop>>) -> TempTag

Create a new temp tag for the given hash and format

This should only be used by store implementations.

The caller is responsible for increasing the refcount on creation and to make sure that temp tags that are created between a mark phase and a sweep phase are protected.

-
source

pub fn inner(&self) -> &HashAndFormat

The hash of the pinned item

-
source

pub fn hash(&self) -> &Hash

The hash of the pinned item

-
source

pub fn format(&self) -> BlobFormat

The format of the pinned item

-
source

pub fn leak(self)

Keep the item alive until the end of the process

-

Trait Implementations§

source§

impl Debug for TempTag

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Drop for TempTag

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

pub fn inner(&self) -> &HashAndFormat

The hash of the pinned item

+

pub fn hash(&self) -> &Hash

The hash of the pinned item

+

pub fn format(&self) -> BlobFormat

The format of the pinned item

+

pub fn leak(self)

Keep the item alive until the end of the process

+

Trait Implementations§

§

impl Debug for TempTag

§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Drop for TempTag

§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/util/enum.MemOrFile.html b/pr/2574/docs/iroh/blobs/util/enum.MemOrFile.html index f4bd19825b..922f1eda52 100644 --- a/pr/2574/docs/iroh/blobs/util/enum.MemOrFile.html +++ b/pr/2574/docs/iroh/blobs/util/enum.MemOrFile.html @@ -1,4 +1,4 @@ -MemOrFile in iroh::blobs::util - Rust

Enum iroh::blobs::util::MemOrFile

source ·
pub enum MemOrFile<M, F> {
+MemOrFile in iroh::blobs::util - Rust

Enum iroh::blobs::util::MemOrFile

pub enum MemOrFile<M, F> {
     Mem(M),
     File(F),
 }
Expand description

This is a general purpose Either, just like Result, except that the two cases @@ -6,24 +6,24 @@ external and only available via io.

Variants§

§

Mem(M)

We got it all in memory

§

File(F)

A file

-

Implementations§

source§

impl<M, F> MemOrFile<M, (F, u64)>
where +

Implementations§

§

impl<M, F> MemOrFile<M, (F, u64)>
where M: AsRef<[u8]>,

Helper methods for a common way to use MemOrFile, where the memory part is something like a slice, and the file part is a tuple consisiting of path or file and size.

-
source

pub fn size(&self) -> u64

Get the size of the MemOrFile

-
source§

impl<M, F> MemOrFile<M, F>

source

pub fn as_ref(&self) -> MemOrFile<&M, &F>

Turn a reference to a MemOrFile into a MemOrFile of references

-
source

pub fn is_mem(&self) -> bool

True if this is a Mem

-
source

pub fn mem(&self) -> Option<&M>

Get the mem part

-
source

pub fn map_file<F2>(self, f: impl FnOnce(F) -> F2) -> MemOrFile<M, F2>

Map the file part of this MemOrFile

-
source

pub fn try_map_file<F2, E>( +

pub fn size(&self) -> u64

Get the size of the MemOrFile

+
§

impl<M, F> MemOrFile<M, F>

pub fn as_ref(&self) -> MemOrFile<&M, &F>

Turn a reference to a MemOrFile into a MemOrFile of references

+

pub fn is_mem(&self) -> bool

True if this is a Mem

+

pub fn mem(&self) -> Option<&M>

Get the mem part

+

pub fn map_file<F2>(self, f: impl FnOnce(F) -> F2) -> MemOrFile<M, F2>

Map the file part of this MemOrFile

+

pub fn try_map_file<F2, E>( self, f: impl FnOnce(F) -> Result<F2, E> ) -> Result<MemOrFile<M, F2>, E>

Try to map the file part of this MemOrFile

-
source

pub fn map_mem<M2>(self, f: impl FnOnce(M) -> M2) -> MemOrFile<M2, F>

Map the memory part of this MemOrFile

-

Trait Implementations§

source§

impl<M, F> Debug for MemOrFile<M, F>
where +

pub fn map_mem<M2>(self, f: impl FnOnce(M) -> M2) -> MemOrFile<M2, F>

Map the memory part of this MemOrFile

+

Trait Implementations§

§

impl<M, F> Debug for MemOrFile<M, F>
where M: Debug, - F: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<M, F> Default for MemOrFile<M, F>
where - M: Default,

source§

fn default() -> MemOrFile<M, F>

Returns the “default value” for a type. Read more
source§

impl ReadAt for MemOrFile<Bytes, File>

source§

fn read_at(&self, offset: u64, buf: &mut [u8]) -> Result<usize, Error>

Reads bytes from an offset in this source into a buffer, returning how -many bytes were read. Read more
source§

fn read_exact_at(&self, pos: u64, buf: &mut [u8]) -> Result<(), Error>

Reads the exact number of bytes required to fill buf from an offset. Read more
source§

impl Size for MemOrFile<Bytes, File>

source§

fn size(&self) -> Result<Option<u64>, Error>

Get the size of this object, in bytes. Read more

Auto Trait Implementations§

§

impl<M, F> Freeze for MemOrFile<M, F>
where + F: Debug,

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<M, F> Default for MemOrFile<M, F>
where + M: Default,

§

fn default() -> MemOrFile<M, F>

Returns the “default value” for a type. Read more
§

impl ReadAt for MemOrFile<Bytes, File>

§

fn read_at(&self, offset: u64, buf: &mut [u8]) -> Result<usize, Error>

Reads bytes from an offset in this source into a buffer, returning how +many bytes were read. Read more
source§

fn read_exact_at(&self, pos: u64, buf: &mut [u8]) -> Result<(), Error>

Reads the exact number of bytes required to fill buf from an offset. Read more
§

impl Size for MemOrFile<Bytes, File>

§

fn size(&self) -> Result<Option<u64>, Error>

Get the size of this object, in bytes. Read more

Auto Trait Implementations§

§

impl<M, F> Freeze for MemOrFile<M, F>
where M: Freeze, F: Freeze,

§

impl<M, F> RefUnwindSafe for MemOrFile<M, F>
where M: RefUnwindSafe, diff --git a/pr/2574/docs/iroh/blobs/util/enum.SetTagOption.html b/pr/2574/docs/iroh/blobs/util/enum.SetTagOption.html index b9a328af40..cdb0a2d49b 100644 --- a/pr/2574/docs/iroh/blobs/util/enum.SetTagOption.html +++ b/pr/2574/docs/iroh/blobs/util/enum.SetTagOption.html @@ -1,25 +1,24 @@ -SetTagOption in iroh::blobs::util - Rust

Enum iroh::blobs::util::SetTagOption

source ·
pub enum SetTagOption {
+SetTagOption in iroh::blobs::util - Rust

Enum iroh::blobs::util::SetTagOption

pub enum SetTagOption {
     Auto,
     Named(Tag),
 }
Expand description

Option for commands that allow setting a tag

Variants§

§

Auto

A tag will be automatically generated

§

Named(Tag)

The tag is explicitly named

-

Trait Implementations§

source§

impl Clone for SetTagOption

source§

fn clone(&self) -> SetTagOption

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SetTagOption
where - Tag: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for SetTagOption

Trait Implementations§

§

impl Clone for SetTagOption

§

fn clone(&self) -> SetTagOption

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for SetTagOption

§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for SetTagOption

§

fn deserialize<__D>( __deserializer: __D ) -> Result<SetTagOption, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Ord for SetTagOption

source§

fn cmp(&self, other: &SetTagOption) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl Ord for SetTagOption

§

fn cmp(&self, other: &SetTagOption) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for SetTagOption

source§

fn eq(&self, other: &SetTagOption) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
§

impl PartialEq for SetTagOption

§

fn eq(&self, other: &SetTagOption) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for SetTagOption

source§

fn partial_cmp(&self, other: &SetTagOption) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
§

impl PartialOrd for SetTagOption

§

fn partial_cmp(&self, other: &SetTagOption) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Serialize for SetTagOption

source§

fn serialize<__S>( +operator. Read more

§

impl Serialize for SetTagOption

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for SetTagOption

source§

impl StructuralPartialEq for SetTagOption

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Eq for SetTagOption

§

impl StructuralPartialEq for SetTagOption

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/util/fn.total_bytes.html b/pr/2574/docs/iroh/blobs/util/fn.total_bytes.html index dce87a14cc..11bf67c270 100644 --- a/pr/2574/docs/iroh/blobs/util/fn.total_bytes.html +++ b/pr/2574/docs/iroh/blobs/util/fn.total_bytes.html @@ -1,3 +1,3 @@ -total_bytes in iroh::blobs::util - Rust

Function iroh::blobs::util::total_bytes

source ·
pub fn total_bytes(ranges: RangeSet<[ChunkNum; 2]>, size: u64) -> u64
Expand description

Get the number of bytes given a set of chunk ranges and the total size.

+total_bytes in iroh::blobs::util - Rust

Function iroh::blobs::util::total_bytes

pub fn total_bytes(ranges: RangeSet<[ChunkNum; 2]>, size: u64) -> u64
Expand description

Get the number of bytes given a set of chunk ranges and the total size.

If some ranges are out of bounds, they will be clamped to the size.

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/util/index.html b/pr/2574/docs/iroh/blobs/util/index.html index c6d58d34b1..063895b6c1 100644 --- a/pr/2574/docs/iroh/blobs/util/index.html +++ b/pr/2574/docs/iroh/blobs/util/index.html @@ -1,4 +1,4 @@ -iroh::blobs::util - Rust

Module iroh::blobs::util

source ·
Expand description

Utility functions and types.

+iroh::blobs::util - Rust

Module iroh::blobs::util

Expand description

Utility functions and types.

Modules§

  • Utilities for working with tokio io
  • A local task pool with proper shutdown
  • Utilities for reporting progress.

Structs§

  • A file that is sparse in memory
  • A tag
  • A hash and format pair that is protected from garbage collection.

Enums§

  • This is a general purpose Either, just like Result, except that the two cases are Mem for something that is in memory, and File for something that is somewhere external and only available via io.
  • Option for commands that allow setting a tag

Traits§

§

impl<W> Debug for TrackingWriter<W>
where + W: Debug,

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<W> Freeze for TrackingWriter<W>
where W: Freeze,

§

impl<W> RefUnwindSafe for TrackingWriter<W>
where W: RefUnwindSafe,

§

impl<W> Send for TrackingWriter<W>
where W: Send,

§

impl<W> Sync for TrackingWriter<W>
where diff --git a/pr/2574/docs/iroh/blobs/util/local_pool/enum.PanicMode.html b/pr/2574/docs/iroh/blobs/util/local_pool/enum.PanicMode.html index 41203570e3..06227d6f9e 100644 --- a/pr/2574/docs/iroh/blobs/util/local_pool/enum.PanicMode.html +++ b/pr/2574/docs/iroh/blobs/util/local_pool/enum.PanicMode.html @@ -1,4 +1,4 @@ -PanicMode in iroh::blobs::util::local_pool - Rust

Enum iroh::blobs::util::local_pool::PanicMode

source ·
pub enum PanicMode {
+PanicMode in iroh::blobs::util::local_pool - Rust

Enum iroh::blobs::util::local_pool::PanicMode

pub enum PanicMode {
     LogAndContinue,
     Shutdown,
 }
Expand description

What to do when a panic occurs in a pool thread

@@ -6,9 +6,9 @@

The panic will be re-thrown when the pool is dropped.

§

Shutdown

Log the panic and immediately shut down the pool.

The panic will be re-thrown when the pool is dropped.

-

Trait Implementations§

source§

impl Clone for PanicMode

source§

fn clone(&self) -> PanicMode

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PanicMode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl PartialEq for PanicMode

source§

fn eq(&self, other: &PanicMode) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

§

impl Clone for PanicMode

§

fn clone(&self) -> PanicMode

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for PanicMode

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl PartialEq for PanicMode

§

fn eq(&self, other: &PanicMode) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Copy for PanicMode

source§

impl Eq for PanicMode

source§

impl StructuralPartialEq for PanicMode

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

§

impl Copy for PanicMode

§

impl Eq for PanicMode

§

impl StructuralPartialEq for PanicMode

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/util/local_pool/enum.SpawnError.html b/pr/2574/docs/iroh/blobs/util/local_pool/enum.SpawnError.html index 0a6776ffda..17986ae626 100644 --- a/pr/2574/docs/iroh/blobs/util/local_pool/enum.SpawnError.html +++ b/pr/2574/docs/iroh/blobs/util/local_pool/enum.SpawnError.html @@ -1,8 +1,8 @@ -SpawnError in iroh::blobs::util::local_pool - Rust

Enum iroh::blobs::util::local_pool::SpawnError

source ·
pub enum SpawnError {
+SpawnError in iroh::blobs::util::local_pool - Rust

Enum iroh::blobs::util::local_pool::SpawnError

pub enum SpawnError {
     Cancelled,
 }
Expand description

Errors for spawn failures

Variants§

§

Cancelled

Task was dropped, either due to a panic or because the pool was shut down.

-

Trait Implementations§

source§

impl Debug for SpawnError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for SpawnError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for SpawnError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for SpawnError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for SpawnError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for SpawnError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/util/local_pool/index.html b/pr/2574/docs/iroh/blobs/util/local_pool/index.html index c40fcc1bd9..8c499191ef 100644 --- a/pr/2574/docs/iroh/blobs/util/local_pool/index.html +++ b/pr/2574/docs/iroh/blobs/util/local_pool/index.html @@ -1,2 +1,2 @@ -iroh::blobs::util::local_pool - Rust

Module iroh::blobs::util::local_pool

source ·
Expand description

A local task pool with proper shutdown

+iroh::blobs::util::local_pool - Rust

Module iroh::blobs::util::local_pool

Expand description

A local task pool with proper shutdown

Structs§

Enums§

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/util/local_pool/struct.Config.html b/pr/2574/docs/iroh/blobs/util/local_pool/struct.Config.html index 32d6c9045d..6e1a3afc3a 100644 --- a/pr/2574/docs/iroh/blobs/util/local_pool/struct.Config.html +++ b/pr/2574/docs/iroh/blobs/util/local_pool/struct.Config.html @@ -1,4 +1,4 @@ -Config in iroh::blobs::util::local_pool - Rust

Struct iroh::blobs::util::local_pool::Config

source ·
pub struct Config {
+Config in iroh::blobs::util::local_pool - Rust

Struct iroh::blobs::util::local_pool::Config

pub struct Config {
     pub threads: usize,
     pub thread_name_prefix: &'static str,
     pub panic_mode: PanicMode,
@@ -6,7 +6,7 @@
 

Fields§

§threads: usize

Number of threads in the pool

§thread_name_prefix: &'static str

Prefix for thread names

§panic_mode: PanicMode

Ignore panics in pool threads

-

Trait Implementations§

source§

impl Clone for Config

source§

fn clone(&self) -> Config

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Config

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for Config

source§

fn default() -> Config

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for Config

§

impl RefUnwindSafe for Config

§

impl Send for Config

§

impl Sync for Config

§

impl Unpin for Config

§

impl UnwindSafe for Config

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Clone for Config

§

fn clone(&self) -> Config

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for Config

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for Config

§

fn default() -> Config

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for Config

§

impl RefUnwindSafe for Config

§

impl Send for Config

§

impl Sync for Config

§

impl Unpin for Config

§

impl UnwindSafe for Config

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/util/local_pool/struct.LocalPool.html b/pr/2574/docs/iroh/blobs/util/local_pool/struct.LocalPool.html index 159e37d08c..bd1dd35dad 100644 --- a/pr/2574/docs/iroh/blobs/util/local_pool/struct.LocalPool.html +++ b/pr/2574/docs/iroh/blobs/util/local_pool/struct.LocalPool.html @@ -1,4 +1,4 @@ -LocalPool in iroh::blobs::util::local_pool - Rust

Struct iroh::blobs::util::local_pool::LocalPool

source ·
pub struct LocalPool { /* private fields */ }
Expand description

A local task pool with proper shutdown

+LocalPool in iroh::blobs::util::local_pool - Rust

Struct iroh::blobs::util::local_pool::LocalPool

pub struct LocalPool { /* private fields */ }
Expand description

A local task pool with proper shutdown

Unlike LocalPoolHandle, this pool will join all its threads when dropped, ensuring that all Drop @@ -11,58 +11,58 @@ and then wait for all threads to finish executing their loops before returning. This means that all currently executing tasks will be allowed to run to completion.

-

Implementations§

source§

impl LocalPool

source

pub fn single() -> LocalPool

Create a new local pool with a single std thread.

-
source

pub fn new(config: Config) -> LocalPool

Create a new local pool with the given config.

+

Implementations§

§

impl LocalPool

pub fn single() -> LocalPool

Create a new local pool with a single std thread.

+

pub fn new(config: Config) -> LocalPool

Create a new local pool with the given config.

This will use the current tokio runtime handle, so it must be called from within a tokio runtime.

-
source

pub fn handle(&self) -> &LocalPoolHandle

Get a cheaply cloneable handle to the pool

+

pub fn handle(&self) -> &LocalPoolHandle

Get a cheaply cloneable handle to the pool

This is not strictly necessary since we implement deref for LocalPoolHandle, but makes getting a handle more explicit.

-
source

pub async fn cancelled(&self)

A future that resolves when the pool is cancelled

-
source

pub async fn shutdown(self)

Immediately stop polling all tasks and wait for all threads to finish.

+

pub async fn cancelled(&self)

A future that resolves when the pool is cancelled

+

pub async fn shutdown(self)

Immediately stop polling all tasks and wait for all threads to finish.

This is like drop, but waits for thread completion asynchronously.

If there was a panic on any of the threads, it will be re-thrown here.

-
source

pub async fn finish(self)

Gently shut down the pool

+

pub async fn finish(self)

Gently shut down the pool

Notifies all the pool threads to shut down and waits for them to finish.

If you just want to drop the pool without giving the threads a chance to process their remaining tasks, just use Self::shutdown.

If you want to wait for only a limited time for the tasks to finish, you can race this function with a timeout.

-

Methods from Deref<Target = LocalPoolHandle>§

source

pub fn waiting_tasks(&self) -> usize

Get the number of tasks in the queue

+

Methods from Deref<Target = LocalPoolHandle>§

pub fn waiting_tasks(&self) -> usize

Get the number of tasks in the queue

This is not the number of tasks being executed, but the number of tasks waiting to be scheduled for execution. If this number is high, it indicates that the pool is very busy.

You might want to use this to throttle or reject requests.

-
source

pub fn try_spawn<T, F, Fut>(&self, gen: F) -> Result<Run<T>, SpawnError>
where +

pub fn try_spawn<T, F, Fut>(&self, gen: F) -> Result<Run<T>, SpawnError>
where F: FnOnce() -> Fut + Send + 'static, Fut: Future<Output = T> + 'static, T: Send + 'static,

Spawn a task in the pool and return a future that resolves when the task is done.

If you don’t care about the result, prefer LocalPoolHandle::spawn_detached since it is more efficient.

-
source

pub fn try_spawn_detached<F, Fut>(&self, gen: F) -> Result<(), SpawnError>
where +

pub fn try_spawn_detached<F, Fut>(&self, gen: F) -> Result<(), SpawnError>
where F: FnOnce() -> Fut + Send + 'static, Fut: Future<Output = ()> + 'static,

Spawn a task in the pool.

The task will run to completion unless the pool is shut down or the task panics. In case of panic, the pool will either log the panic and continue or immediately shut down, depending on the PanicMode.

-
source

pub fn spawn<T, F, Fut>(&self, gen: F) -> Run<T>
where +

pub fn spawn<T, F, Fut>(&self, gen: F) -> Run<T>
where F: FnOnce() -> Fut + Send + 'static, Fut: Future<Output = T> + 'static, T: Send + 'static,

Spawn a task in the pool and await the result.

Like LocalPoolHandle::try_spawn, but panics if the pool is shut down.

-
source

pub fn spawn_detached<F, Fut>(&self, gen: F)
where +

pub fn spawn_detached<F, Fut>(&self, gen: F)
where F: FnOnce() -> Fut + Send + 'static, Fut: Future<Output = ()> + 'static,

Spawn a task in the pool.

Like LocalPoolHandle::try_spawn_detached, but panics if the pool is shut down.

-
source

pub fn try_spawn_detached_boxed( +

pub fn try_spawn_detached_boxed( &self, gen: Box<dyn FnOnce() -> Pin<Box<dyn Future<Output = ()>>> + Send> ) -> Result<(), SpawnError>

Spawn a task in the pool.

This is like LocalPoolHandle::try_spawn_detached, but assuming that the generator function is already boxed. This is the lowest overhead way to spawn a task in the pool.

-

Trait Implementations§

source§

impl Debug for LocalPool

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for LocalPool

source§

fn default() -> LocalPool

Returns the “default value” for a type. Read more
source§

impl Deref for LocalPool

§

type Target = LocalPoolHandle

The resulting type after dereferencing.
source§

fn deref(&self) -> &<LocalPool as Deref>::Target

Dereferences the value.
source§

impl Drop for LocalPool

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Debug for LocalPool

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for LocalPool

§

fn default() -> LocalPool

Returns the “default value” for a type. Read more
§

impl Deref for LocalPool

§

type Target = LocalPoolHandle

The resulting type after dereferencing.
§

fn deref(&self) -> &<LocalPool as Deref>::Target

Dereferences the value.
§

impl Drop for LocalPool

§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/util/local_pool/struct.LocalPoolHandle.html b/pr/2574/docs/iroh/blobs/util/local_pool/struct.LocalPoolHandle.html index 9a941322d2..e6c0d13a1c 100644 --- a/pr/2574/docs/iroh/blobs/util/local_pool/struct.LocalPoolHandle.html +++ b/pr/2574/docs/iroh/blobs/util/local_pool/struct.LocalPoolHandle.html @@ -1,39 +1,39 @@ -LocalPoolHandle in iroh::blobs::util::local_pool - Rust

Struct iroh::blobs::util::local_pool::LocalPoolHandle

source ·
pub struct LocalPoolHandle { /* private fields */ }
Expand description

A handle to a LocalPool

-

Implementations§

source§

impl LocalPoolHandle

source

pub fn waiting_tasks(&self) -> usize

Get the number of tasks in the queue

+LocalPoolHandle in iroh::blobs::util::local_pool - Rust

Struct iroh::blobs::util::local_pool::LocalPoolHandle

pub struct LocalPoolHandle { /* private fields */ }
Expand description

A handle to a LocalPool

+

Implementations§

§

impl LocalPoolHandle

pub fn waiting_tasks(&self) -> usize

Get the number of tasks in the queue

This is not the number of tasks being executed, but the number of tasks waiting to be scheduled for execution. If this number is high, it indicates that the pool is very busy.

You might want to use this to throttle or reject requests.

-
source

pub fn try_spawn<T, F, Fut>(&self, gen: F) -> Result<Run<T>, SpawnError>
where +

pub fn try_spawn<T, F, Fut>(&self, gen: F) -> Result<Run<T>, SpawnError>
where F: FnOnce() -> Fut + Send + 'static, Fut: Future<Output = T> + 'static, T: Send + 'static,

Spawn a task in the pool and return a future that resolves when the task is done.

If you don’t care about the result, prefer LocalPoolHandle::spawn_detached since it is more efficient.

-
source

pub fn try_spawn_detached<F, Fut>(&self, gen: F) -> Result<(), SpawnError>
where +

pub fn try_spawn_detached<F, Fut>(&self, gen: F) -> Result<(), SpawnError>
where F: FnOnce() -> Fut + Send + 'static, Fut: Future<Output = ()> + 'static,

Spawn a task in the pool.

The task will run to completion unless the pool is shut down or the task panics. In case of panic, the pool will either log the panic and continue or immediately shut down, depending on the PanicMode.

-
source

pub fn spawn<T, F, Fut>(&self, gen: F) -> Run<T>
where +

pub fn spawn<T, F, Fut>(&self, gen: F) -> Run<T>
where F: FnOnce() -> Fut + Send + 'static, Fut: Future<Output = T> + 'static, T: Send + 'static,

Spawn a task in the pool and await the result.

Like LocalPoolHandle::try_spawn, but panics if the pool is shut down.

-
source

pub fn spawn_detached<F, Fut>(&self, gen: F)
where +

pub fn spawn_detached<F, Fut>(&self, gen: F)
where F: FnOnce() -> Fut + Send + 'static, Fut: Future<Output = ()> + 'static,

Spawn a task in the pool.

Like LocalPoolHandle::try_spawn_detached, but panics if the pool is shut down.

-
source

pub fn try_spawn_detached_boxed( +

pub fn try_spawn_detached_boxed( &self, gen: Box<dyn FnOnce() -> Pin<Box<dyn Future<Output = ()>>> + Send> ) -> Result<(), SpawnError>

Spawn a task in the pool.

This is like LocalPoolHandle::try_spawn_detached, but assuming that the generator function is already boxed. This is the lowest overhead way to spawn a task in the pool.

-

Trait Implementations§

source§

impl Clone for LocalPoolHandle

source§

fn clone(&self) -> LocalPoolHandle

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LocalPoolHandle

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Clone for LocalPoolHandle

§

fn clone(&self) -> LocalPoolHandle

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for LocalPoolHandle

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/util/local_pool/struct.Run.html b/pr/2574/docs/iroh/blobs/util/local_pool/struct.Run.html index 99b0f655fd..41aeaceed0 100644 --- a/pr/2574/docs/iroh/blobs/util/local_pool/struct.Run.html +++ b/pr/2574/docs/iroh/blobs/util/local_pool/struct.Run.html @@ -1,11 +1,11 @@ -Run in iroh::blobs::util::local_pool - Rust

Struct iroh::blobs::util::local_pool::Run

source ·
pub struct Run<T>(/* private fields */);
Expand description

Future returned by LocalPoolHandle::spawn and LocalPoolHandle::try_spawn.

+Run in iroh::blobs::util::local_pool - Rust

Struct iroh::blobs::util::local_pool::Run

pub struct Run<T>(/* private fields */);
Expand description

Future returned by LocalPoolHandle::spawn and LocalPoolHandle::try_spawn.

Dropping this future will immediately cancel the task. The task can fail if the pool is shut down or if the task panics. In both cases the future will resolve to SpawnError::Cancelled.

-

Implementations§

source§

impl<T> Run<T>

source

pub fn abort(&mut self)

Abort the task

+

Implementations§

§

impl<T> Run<T>

pub fn abort(&mut self)

Abort the task

Dropping the future will also abort the task.

-

Trait Implementations§

source§

impl<T> Debug for Run<T>
where - T: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<T> Future for Run<T>

§

type Output = Result<T, SpawnError>

The type of value produced on completion.
source§

fn poll( +

Trait Implementations§

§

impl<T> Debug for Run<T>
where + T: Debug,

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<T> Future for Run<T>

§

type Output = Result<T, SpawnError>

The type of value produced on completion.
§

fn poll( self: Pin<&mut Run<T>>, cx: &mut Context<'_> ) -> Poll<<Run<T> as Future>::Output>

Attempt to resolve the future to a final value, registering diff --git a/pr/2574/docs/iroh/blobs/util/progress/enum.ProgressSendError.html b/pr/2574/docs/iroh/blobs/util/progress/enum.ProgressSendError.html index f34f72c2c5..9c44769396 100644 --- a/pr/2574/docs/iroh/blobs/util/progress/enum.ProgressSendError.html +++ b/pr/2574/docs/iroh/blobs/util/progress/enum.ProgressSendError.html @@ -1,9 +1,9 @@ -ProgressSendError in iroh::blobs::util::progress - Rust

Enum iroh::blobs::util::progress::ProgressSendError

source ·
pub enum ProgressSendError {
+ProgressSendError in iroh::blobs::util::progress - Rust

Enum iroh::blobs::util::progress::ProgressSendError

pub enum ProgressSendError {
     ReceiverDropped,
 }
Expand description

An error that can occur when sending progress messages.

Really the only error that can occur is if the receiver is dropped.

Variants§

§

ReceiverDropped

The receiver was dropped.

-

Trait Implementations§

source§

impl Clone for ProgressSendError

source§

fn clone(&self) -> ProgressSendError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ProgressSendError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for ProgressSendError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for ProgressSendError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ProgressSendError> for GetError

source§

fn from(value: ProgressSendError) -> GetError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

§

impl Clone for ProgressSendError

§

fn clone(&self) -> ProgressSendError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for ProgressSendError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for ProgressSendError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for ProgressSendError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl From<ProgressSendError> for GetError

§

fn from(value: ProgressSendError) -> GetError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/util/progress/index.html b/pr/2574/docs/iroh/blobs/util/progress/index.html index b310c90404..3b4699e7ee 100644 --- a/pr/2574/docs/iroh/blobs/util/progress/index.html +++ b/pr/2574/docs/iroh/blobs/util/progress/index.html @@ -1,4 +1,4 @@ -iroh::blobs::util::progress - Rust

Module iroh::blobs::util::progress

source ·
Expand description

Utilities for reporting progress.

+iroh::blobs::util::progress - Rust

Module iroh::blobs::util::progress

Expand description

Utilities for reporting progress.

The main entry point is the ProgressSender trait.

-

Structs§

Enums§

Traits§

  • An id generator, to be combined with a progress sender.
  • A general purpose progress sender. This should be usable for reporting progress +

Structs§

Enums§

Traits§

  • An id generator, to be combined with a progress sender.
  • A general purpose progress sender. This should be usable for reporting progress from both blocking and non-blocking contexts.

Type Aliases§

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/util/progress/sidebar-items.js b/pr/2574/docs/iroh/blobs/util/progress/sidebar-items.js index ac40ded71d..16b5ad8058 100644 --- a/pr/2574/docs/iroh/blobs/util/progress/sidebar-items.js +++ b/pr/2574/docs/iroh/blobs/util/progress/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":["ProgressSendError"],"struct":["BoxedProgressSender","FallibleProgressSliceWriter","FlumeProgressSender","IgnoreProgressSender","ProgressSliceWriter","WithFilterMap","WithMap"],"trait":["IdGenerator","ProgressSender"],"type":["ProgressSendResult"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["ProgressSendError"],"struct":["AsyncChannelProgressSender","BoxedProgressSender","FallibleProgressSliceWriter","FlumeProgressSender","IgnoreProgressSender","ProgressSliceWriter","WithFilterMap","WithMap"],"trait":["IdGenerator","ProgressSender"],"type":["ProgressSendResult"]}; \ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/util/progress/struct.AsyncChannelProgressSender.html b/pr/2574/docs/iroh/blobs/util/progress/struct.AsyncChannelProgressSender.html new file mode 100644 index 0000000000..f90ee6b3b4 --- /dev/null +++ b/pr/2574/docs/iroh/blobs/util/progress/struct.AsyncChannelProgressSender.html @@ -0,0 +1,138 @@ +AsyncChannelProgressSender in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::AsyncChannelProgressSender

pub struct AsyncChannelProgressSender<T> { /* private fields */ }
Expand description

A progress sender that uses an async channel.

+

Implementations§

§

impl<T> AsyncChannelProgressSender<T>

pub fn new(sender: Sender<T>) -> AsyncChannelProgressSender<T>

Create a new progress sender from an async channel sender.

+

pub fn same_channel(&self, other: &AsyncChannelProgressSender<T>) -> bool

Returns true if other sends on the same async_channel channel as self.

+

Trait Implementations§

§

impl<T> Clone for AsyncChannelProgressSender<T>

§

fn clone(&self) -> AsyncChannelProgressSender<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl<T> Debug for AsyncChannelProgressSender<T>

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<T> IdGenerator for AsyncChannelProgressSender<T>

§

fn new_id(&self) -> u64

Get a new unique id
§

impl<T> ProgressSender for AsyncChannelProgressSender<T>
where + T: Send + Sync + 'static,

§

type Msg = T

The message being sent.
§

async fn send( + &self, + msg: <AsyncChannelProgressSender<T> as ProgressSender>::Msg +) -> Result<(), ProgressSendError>

Send a message and wait if the receiver is full. Read more
§

fn try_send( + &self, + msg: <AsyncChannelProgressSender<T> as ProgressSender>::Msg +) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full. Read more
§

fn blocking_send( + &self, + msg: <AsyncChannelProgressSender<T> as ProgressSender>::Msg +) -> Result<(), ProgressSendError>

Send a message and block if the receiver is full. Read more
§

fn with_map<U, F>(self, f: F) -> WithMap<Self, U, F>
where + U: Send + Sync + 'static, + F: Fn(U) -> Self::Msg + Send + Sync + Clone + 'static,

Transform the message type by mapping to the type of this sender.
§

fn with_filter_map<U, F>(self, f: F) -> WithFilterMap<Self, U, F>
where + U: Send + Sync + 'static, + F: Fn(U) -> Option<Self::Msg> + Send + Sync + Clone + 'static,

Transform the message type by filter-mapping to the type of this sender.
§

fn boxed(self) -> BoxedProgressSender<Self::Msg>
where + Self: IdGenerator,

Create a boxed progress sender to get rid of the concrete type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where + T: 'a,

§

fn implicit( + self, + class: Class, + constructed: bool, + tag: u32 +) -> TaggedParser<'a, Implicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where + T: 'a,

§

fn implicit( + self, + class: Class, + constructed: bool, + tag: u32 +) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<T> DynClone for T
where + T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where + Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where + Self: Display,

Causes self to use its Display implementation when +Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where + Self: LowerExp,

Causes self to use its LowerExp implementation when +Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where + Self: LowerHex,

Causes self to use its LowerHex implementation when +Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where + Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where + Self: Pointer,

Causes self to use its Pointer implementation when +Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where + Self: UpperExp,

Causes self to use its UpperExp implementation when +Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where + Self: UpperHex,

Causes self to use its UpperHex implementation when +Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where + &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> FromRef<T> for T
where + T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where + R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where + R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where + Self: Borrow<B>, + B: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( + &'a mut self, + func: impl FnOnce(&'a mut B) -> R +) -> R
where + Self: BorrowMut<B>, + B: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe +function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where + Self: AsMut<U>, + U: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe +function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( + &'a mut self, + func: impl FnOnce(&'a mut T) -> R +) -> R
where + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe +function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release +builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release +builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release +builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release +builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release +builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more
\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/util/progress/struct.BoxedProgressSender.html b/pr/2574/docs/iroh/blobs/util/progress/struct.BoxedProgressSender.html index 064ff6658b..4874c00f34 100644 --- a/pr/2574/docs/iroh/blobs/util/progress/struct.BoxedProgressSender.html +++ b/pr/2574/docs/iroh/blobs/util/progress/struct.BoxedProgressSender.html @@ -1,11 +1,11 @@ -BoxedProgressSender in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::BoxedProgressSender

source ·
pub struct BoxedProgressSender<T>(/* private fields */);
Expand description

A boxed progress sender

-

Trait Implementations§

source§

impl<T> Clone for BoxedProgressSender<T>

source§

fn clone(&self) -> BoxedProgressSender<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T> Debug for BoxedProgressSender<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<T> IdGenerator for BoxedProgressSender<T>
where - T: Send + Sync + 'static,

source§

fn new_id(&self) -> u64

Get a new unique id
source§

impl<T> ProgressSender for BoxedProgressSender<T>
where - T: Send + Sync + 'static,

§

type Msg = T

The message being sent.
source§

async fn send(&self, msg: T) -> Result<(), ProgressSendError>

Send a message and wait if the receiver is full. Read more
source§

fn try_send(&self, msg: T) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full. Read more
source§

fn blocking_send(&self, msg: T) -> Result<(), ProgressSendError>

Send a message and block if the receiver is full. Read more
source§

fn with_map<U, F>(self, f: F) -> WithMap<Self, U, F>
where +BoxedProgressSender in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::BoxedProgressSender

pub struct BoxedProgressSender<T>(/* private fields */);
Expand description

A boxed progress sender

+

Trait Implementations§

§

impl<T> Clone for BoxedProgressSender<T>

§

fn clone(&self) -> BoxedProgressSender<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl<T> Debug for BoxedProgressSender<T>

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<T> IdGenerator for BoxedProgressSender<T>
where + T: Send + Sync + 'static,

§

fn new_id(&self) -> u64

Get a new unique id
§

impl<T> ProgressSender for BoxedProgressSender<T>
where + T: Send + Sync + 'static,

§

type Msg = T

The message being sent.
§

async fn send(&self, msg: T) -> Result<(), ProgressSendError>

Send a message and wait if the receiver is full. Read more
§

fn try_send(&self, msg: T) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full. Read more
§

fn blocking_send(&self, msg: T) -> Result<(), ProgressSendError>

Send a message and block if the receiver is full. Read more
§

fn with_map<U, F>(self, f: F) -> WithMap<Self, U, F>
where U: Send + Sync + 'static, - F: Fn(U) -> Self::Msg + Send + Sync + Clone + 'static,

Transform the message type by mapping to the type of this sender.
source§

fn with_filter_map<U, F>(self, f: F) -> WithFilterMap<Self, U, F>
where + F: Fn(U) -> Self::Msg + Send + Sync + Clone + 'static,

Transform the message type by mapping to the type of this sender.
§

fn with_filter_map<U, F>(self, f: F) -> WithFilterMap<Self, U, F>
where U: Send + Sync + 'static, - F: Fn(U) -> Option<Self::Msg> + Send + Sync + Clone + 'static,

Transform the message type by filter-mapping to the type of this sender.
source§

fn boxed(self) -> BoxedProgressSender<Self::Msg>
where + F: Fn(U) -> Option<Self::Msg> + Send + Sync + Clone + 'static,

Transform the message type by filter-mapping to the type of this sender.
§

fn boxed(self) -> BoxedProgressSender<Self::Msg>
where Self: IdGenerator,

Create a boxed progress sender to get rid of the concrete type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/util/progress/struct.FallibleProgressSliceWriter.html b/pr/2574/docs/iroh/blobs/util/progress/struct.FallibleProgressSliceWriter.html index 953a356492..999a6f8b74 100644 --- a/pr/2574/docs/iroh/blobs/util/progress/struct.FallibleProgressSliceWriter.html +++ b/pr/2574/docs/iroh/blobs/util/progress/struct.FallibleProgressSliceWriter.html @@ -1,23 +1,23 @@ -FallibleProgressSliceWriter in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::FallibleProgressSliceWriter

source ·
pub struct FallibleProgressSliceWriter<W, F>(/* private fields */);
Expand description

A slice writer that adds a fallible progress callback.

+FallibleProgressSliceWriter in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::FallibleProgressSliceWriter

pub struct FallibleProgressSliceWriter<W, F>(/* private fields */);
Expand description

A slice writer that adds a fallible progress callback.

This wraps any AsyncSliceWriter, passes through all operations to the inner writer, and calls the passed on_write callback whenever data is written. on_write must return an io::Result, and can abort the download by returning an error.

-

Implementations§

source§

impl<W, F> FallibleProgressSliceWriter<W, F>
where +

Implementations§

§

impl<W, F> FallibleProgressSliceWriter<W, F>
where W: AsyncSliceWriter, - F: Fn(u64, usize) -> Result<(), Error> + 'static,

source

pub fn new(inner: W, on_write: F) -> FallibleProgressSliceWriter<W, F>

Create a new ProgressSliceWriter from an inner writer and a progress callback

+ F: Fn(u64, usize) -> Result<(), Error> + 'static,

pub fn new(inner: W, on_write: F) -> FallibleProgressSliceWriter<W, F>

Create a new ProgressSliceWriter from an inner writer and a progress callback

The on_write function is called for each write, with the offset as the first and the length of the data as the second param. on_write must return a future which resolves to an io::Result. If on_write returns an error, the download is aborted.

-
source

pub fn into_inner(self) -> W

Return the inner writer.

-

Trait Implementations§

source§

impl<W, F> AsyncSliceWriter for FallibleProgressSliceWriter<W, F>
where +

pub fn into_inner(self) -> W

Return the inner writer.

+

Trait Implementations§

§

impl<W, F> AsyncSliceWriter for FallibleProgressSliceWriter<W, F>
where W: AsyncSliceWriter + 'static, - F: Fn(u64, usize) -> Result<(), Error> + 'static,

source§

async fn write_bytes_at( + F: Fn(u64, usize) -> Result<(), Error> + 'static,

§

async fn write_bytes_at( &mut self, offset: u64, data: Bytes -) -> Result<(), Error>

Write the entire Bytes at the given position. Read more
source§

async fn write_at(&mut self, offset: u64, data: &[u8]) -> Result<(), Error>

Write the entire slice at the given position. Read more
source§

async fn sync(&mut self) -> Result<(), Error>

Sync any buffers to the underlying storage.
source§

async fn set_len(&mut self, size: u64) -> Result<(), Error>

Set the length of the underlying storage.
source§

impl<W, F> Debug for FallibleProgressSliceWriter<W, F>
where +) -> Result<(), Error>

Write the entire Bytes at the given position. Read more
§

async fn write_at(&mut self, offset: u64, data: &[u8]) -> Result<(), Error>

Write the entire slice at the given position. Read more
§

async fn sync(&mut self) -> Result<(), Error>

Sync any buffers to the underlying storage.
§

async fn set_len(&mut self, size: u64) -> Result<(), Error>

Set the length of the underlying storage.
§

impl<W, F> Debug for FallibleProgressSliceWriter<W, F>
where W: Debug, - F: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<W, F> Freeze for FallibleProgressSliceWriter<W, F>
where + F: Debug,

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<W, F> Freeze for FallibleProgressSliceWriter<W, F>
where W: Freeze, F: Freeze,

§

impl<W, F> RefUnwindSafe for FallibleProgressSliceWriter<W, F>
where W: RefUnwindSafe, diff --git a/pr/2574/docs/iroh/blobs/util/progress/struct.FlumeProgressSender.html b/pr/2574/docs/iroh/blobs/util/progress/struct.FlumeProgressSender.html index 9c1ade2897..da6559fe09 100644 --- a/pr/2574/docs/iroh/blobs/util/progress/struct.FlumeProgressSender.html +++ b/pr/2574/docs/iroh/blobs/util/progress/struct.FlumeProgressSender.html @@ -1,21 +1,21 @@ -FlumeProgressSender in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::FlumeProgressSender

source ·
pub struct FlumeProgressSender<T> { /* private fields */ }
Expand description

A progress sender that uses a flume channel.

-

Implementations§

source§

impl<T> FlumeProgressSender<T>

source

pub fn new(sender: Sender<T>) -> FlumeProgressSender<T>

Create a new progress sender from a flume sender.

-
source

pub fn same_channel(&self, other: &FlumeProgressSender<T>) -> bool

Returns true if other sends on the same flume channel as self.

-

Trait Implementations§

source§

impl<T> Clone for FlumeProgressSender<T>

source§

fn clone(&self) -> FlumeProgressSender<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T> Debug for FlumeProgressSender<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<T> IdGenerator for FlumeProgressSender<T>

source§

fn new_id(&self) -> u64

Get a new unique id
source§

impl<T> ProgressSender for FlumeProgressSender<T>
where - T: Send + Sync + 'static,

§

type Msg = T

The message being sent.
source§

async fn send( +FlumeProgressSender in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::FlumeProgressSender

pub struct FlumeProgressSender<T> { /* private fields */ }
Expand description

A progress sender that uses a flume channel.

+

Implementations§

§

impl<T> FlumeProgressSender<T>

pub fn new(sender: Sender<T>) -> FlumeProgressSender<T>

Create a new progress sender from a flume sender.

+

pub fn same_channel(&self, other: &FlumeProgressSender<T>) -> bool

Returns true if other sends on the same flume channel as self.

+

Trait Implementations§

§

impl<T> Clone for FlumeProgressSender<T>

§

fn clone(&self) -> FlumeProgressSender<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl<T> Debug for FlumeProgressSender<T>

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<T> IdGenerator for FlumeProgressSender<T>

§

fn new_id(&self) -> u64

Get a new unique id
§

impl<T> ProgressSender for FlumeProgressSender<T>
where + T: Send + Sync + 'static,

§

type Msg = T

The message being sent.
§

async fn send( &self, msg: <FlumeProgressSender<T> as ProgressSender>::Msg -) -> Result<(), ProgressSendError>

Send a message and wait if the receiver is full. Read more
source§

fn try_send( +) -> Result<(), ProgressSendError>

Send a message and wait if the receiver is full. Read more
§

fn try_send( &self, msg: <FlumeProgressSender<T> as ProgressSender>::Msg -) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full. Read more
source§

fn blocking_send( +) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full. Read more
§

fn blocking_send( &self, msg: <FlumeProgressSender<T> as ProgressSender>::Msg -) -> Result<(), ProgressSendError>

Send a message and block if the receiver is full. Read more
source§

fn with_map<U, F>(self, f: F) -> WithMap<Self, U, F>

Send a message and block if the receiver is full. Read more
§

fn with_map<U, F>(self, f: F) -> WithMap<Self, U, F>
where U: Send + Sync + 'static, - F: Fn(U) -> Self::Msg + Send + Sync + Clone + 'static,

Transform the message type by mapping to the type of this sender.
source§

fn with_filter_map<U, F>(self, f: F) -> WithFilterMap<Self, U, F>
where + F: Fn(U) -> Self::Msg + Send + Sync + Clone + 'static,

Transform the message type by mapping to the type of this sender.
§

fn with_filter_map<U, F>(self, f: F) -> WithFilterMap<Self, U, F>
where U: Send + Sync + 'static, - F: Fn(U) -> Option<Self::Msg> + Send + Sync + Clone + 'static,

Transform the message type by filter-mapping to the type of this sender.
source§

fn boxed(self) -> BoxedProgressSender<Self::Msg>
where + F: Fn(U) -> Option<Self::Msg> + Send + Sync + Clone + 'static,

Transform the message type by filter-mapping to the type of this sender.
§

fn boxed(self) -> BoxedProgressSender<Self::Msg>
where Self: IdGenerator,

Create a boxed progress sender to get rid of the concrete type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/pr/2574/docs/iroh/blobs/util/progress/struct.IgnoreProgressSender.html b/pr/2574/docs/iroh/blobs/util/progress/struct.IgnoreProgressSender.html index 5d7565ed35..211e70d1f5 100644 --- a/pr/2574/docs/iroh/blobs/util/progress/struct.IgnoreProgressSender.html +++ b/pr/2574/docs/iroh/blobs/util/progress/struct.IgnoreProgressSender.html @@ -1,10 +1,10 @@ -IgnoreProgressSender in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::IgnoreProgressSender

source ·
pub struct IgnoreProgressSender<T>(/* private fields */);
Expand description

A no-op progress sender.

-

Trait Implementations§

source§

impl<T> Clone for IgnoreProgressSender<T>

source§

fn clone(&self) -> IgnoreProgressSender<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T> Debug for IgnoreProgressSender<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<T> Default for IgnoreProgressSender<T>

source§

fn default() -> IgnoreProgressSender<T>

Returns the “default value” for a type. Read more
source§

impl<T> IdGenerator for IgnoreProgressSender<T>

source§

fn new_id(&self) -> u64

Get a new unique id
source§

impl<T> ProgressSender for IgnoreProgressSender<T>
where - T: Send + Sync + 'static,

§

type Msg = T

The message being sent.
source§

async fn send(&self, _msg: T) -> Result<(), ProgressSendError>

Send a message and wait if the receiver is full. Read more
source§

fn try_send(&self, _msg: T) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full. Read more
source§

fn blocking_send(&self, _msg: T) -> Result<(), ProgressSendError>

Send a message and block if the receiver is full. Read more
source§

fn with_map<U, F>(self, f: F) -> WithMap<Self, U, F>
where +IgnoreProgressSender in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::IgnoreProgressSender

pub struct IgnoreProgressSender<T>(/* private fields */);
Expand description

A no-op progress sender.

+

Trait Implementations§

§

impl<T> Clone for IgnoreProgressSender<T>

§

fn clone(&self) -> IgnoreProgressSender<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl<T> Debug for IgnoreProgressSender<T>

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<T> Default for IgnoreProgressSender<T>

§

fn default() -> IgnoreProgressSender<T>

Returns the “default value” for a type. Read more
§

impl<T> IdGenerator for IgnoreProgressSender<T>

§

fn new_id(&self) -> u64

Get a new unique id
§

impl<T> ProgressSender for IgnoreProgressSender<T>
where + T: Send + Sync + 'static,

§

type Msg = T

The message being sent.
§

async fn send(&self, _msg: T) -> Result<(), ProgressSendError>

Send a message and wait if the receiver is full. Read more
§

fn try_send(&self, _msg: T) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full. Read more
§

fn blocking_send(&self, _msg: T) -> Result<(), ProgressSendError>

Send a message and block if the receiver is full. Read more
§

fn with_map<U, F>(self, f: F) -> WithMap<Self, U, F>
where U: Send + Sync + 'static, - F: Fn(U) -> Self::Msg + Send + Sync + Clone + 'static,

Transform the message type by mapping to the type of this sender.
source§

fn with_filter_map<U, F>(self, f: F) -> WithFilterMap<Self, U, F>
where + F: Fn(U) -> Self::Msg + Send + Sync + Clone + 'static,

Transform the message type by mapping to the type of this sender.
§

fn with_filter_map<U, F>(self, f: F) -> WithFilterMap<Self, U, F>
where U: Send + Sync + 'static, - F: Fn(U) -> Option<Self::Msg> + Send + Sync + Clone + 'static,

Transform the message type by filter-mapping to the type of this sender.
source§

fn boxed(self) -> BoxedProgressSender<Self::Msg>
where + F: Fn(U) -> Option<Self::Msg> + Send + Sync + Clone + 'static,

Transform the message type by filter-mapping to the type of this sender.
§

fn boxed(self) -> BoxedProgressSender<Self::Msg>
where Self: IdGenerator,

Create a boxed progress sender to get rid of the concrete type.

Auto Trait Implementations§

§

impl<T> Freeze for IgnoreProgressSender<T>

§

impl<T> RefUnwindSafe for IgnoreProgressSender<T>
where T: RefUnwindSafe,

§

impl<T> Send for IgnoreProgressSender<T>
where T: Send,

§

impl<T> Sync for IgnoreProgressSender<T>
where diff --git a/pr/2574/docs/iroh/blobs/util/progress/struct.ProgressSliceWriter.html b/pr/2574/docs/iroh/blobs/util/progress/struct.ProgressSliceWriter.html index 5dfdc174bf..cf92ea5ce7 100644 --- a/pr/2574/docs/iroh/blobs/util/progress/struct.ProgressSliceWriter.html +++ b/pr/2574/docs/iroh/blobs/util/progress/struct.ProgressSliceWriter.html @@ -1,21 +1,21 @@ -ProgressSliceWriter in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::ProgressSliceWriter

source ·
pub struct ProgressSliceWriter<W, F>(/* private fields */);
Expand description

A slice writer that adds a synchronous progress callback.

+ProgressSliceWriter in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::ProgressSliceWriter

pub struct ProgressSliceWriter<W, F>(/* private fields */);
Expand description

A slice writer that adds a synchronous progress callback.

This wraps any AsyncSliceWriter, passes through all operations to the inner writer, and calls the passed on_write callback whenever data is written.

-

Implementations§

source§

impl<W, F> ProgressSliceWriter<W, F>
where +

Implementations§

§

impl<W, F> ProgressSliceWriter<W, F>
where W: AsyncSliceWriter, - F: FnMut(u64),

source

pub fn new(inner: W, on_write: F) -> ProgressSliceWriter<W, F>

Create a new ProgressSliceWriter from an inner writer and a progress callback

+ F: FnMut(u64),

pub fn new(inner: W, on_write: F) -> ProgressSliceWriter<W, F>

Create a new ProgressSliceWriter from an inner writer and a progress callback

The on_write function is called for each write, with the offset as the first and the length of the data as the second param.

-
source

pub fn into_inner(self) -> W

Return the inner writer

-

Trait Implementations§

source§

impl<W, F> AsyncSliceWriter for ProgressSliceWriter<W, F>
where +

pub fn into_inner(self) -> W

Return the inner writer

+

Trait Implementations§

§

impl<W, F> AsyncSliceWriter for ProgressSliceWriter<W, F>
where W: AsyncSliceWriter + 'static, - F: FnMut(u64, usize) + 'static,

source§

async fn write_bytes_at( + F: FnMut(u64, usize) + 'static,

§

async fn write_bytes_at( &mut self, offset: u64, data: Bytes -) -> Result<(), Error>

Write the entire Bytes at the given position. Read more
source§

async fn write_at(&mut self, offset: u64, data: &[u8]) -> Result<(), Error>

Write the entire slice at the given position. Read more
source§

async fn sync(&mut self) -> Result<(), Error>

Sync any buffers to the underlying storage.
source§

async fn set_len(&mut self, size: u64) -> Result<(), Error>

Set the length of the underlying storage.
source§

impl<W, F> Debug for ProgressSliceWriter<W, F>
where +) -> Result<(), Error>

Write the entire Bytes at the given position. Read more
§

async fn write_at(&mut self, offset: u64, data: &[u8]) -> Result<(), Error>

Write the entire slice at the given position. Read more
§

async fn sync(&mut self) -> Result<(), Error>

Sync any buffers to the underlying storage.
§

async fn set_len(&mut self, size: u64) -> Result<(), Error>

Set the length of the underlying storage.

§

impl<W, F> Debug for ProgressSliceWriter<W, F>
where W: Debug, - F: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<W, F> Freeze for ProgressSliceWriter<W, F>
where + F: Debug,

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<W, F> Freeze for ProgressSliceWriter<W, F>
where W: Freeze, F: Freeze,

§

impl<W, F> RefUnwindSafe for ProgressSliceWriter<W, F>
where W: RefUnwindSafe, diff --git a/pr/2574/docs/iroh/blobs/util/progress/struct.WithFilterMap.html b/pr/2574/docs/iroh/blobs/util/progress/struct.WithFilterMap.html index e28b8485b8..081c41a5b9 100644 --- a/pr/2574/docs/iroh/blobs/util/progress/struct.WithFilterMap.html +++ b/pr/2574/docs/iroh/blobs/util/progress/struct.WithFilterMap.html @@ -1,18 +1,18 @@ -WithFilterMap in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::WithFilterMap

source ·
pub struct WithFilterMap<I, U, F>(/* private fields */);
Expand description

Transform the message type by filter-mapping to the type of this sender.

+WithFilterMap in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::WithFilterMap

pub struct WithFilterMap<I, U, F>(/* private fields */);
Expand description

Transform the message type by filter-mapping to the type of this sender.

See ProgressSender::with_filter_map.

-

Trait Implementations§

source§

impl<I, U, F> Clone for WithFilterMap<I, U, F>
where +

Trait Implementations§

§

impl<I, U, F> Clone for WithFilterMap<I, U, F>
where I: ProgressSender, U: Send + Sync + 'static, - F: Fn(U) -> Option<<I as ProgressSender>::Msg> + Clone + Send + Sync + 'static,

source§

fn clone(&self) -> WithFilterMap<I, U, F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<I, U, F> Debug for WithFilterMap<I, U, F>
where + F: Fn(U) -> Option<<I as ProgressSender>::Msg> + Clone + Send + Sync + 'static,

§

fn clone(&self) -> WithFilterMap<I, U, F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl<I, U, F> Debug for WithFilterMap<I, U, F>
where I: ProgressSender, U: Send + Sync + 'static, - F: Fn(U) -> Option<<I as ProgressSender>::Msg> + Clone + Send + Sync + 'static,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<I, U, F> IdGenerator for WithFilterMap<I, U, F>
where - I: IdGenerator,

source§

fn new_id(&self) -> u64

Get a new unique id
source§

impl<I, U, F> ProgressSender for WithFilterMap<I, U, F>
where + F: Fn(U) -> Option<<I as ProgressSender>::Msg> + Clone + Send + Sync + 'static,

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<I, U, F> IdGenerator for WithFilterMap<I, U, F>
where + I: IdGenerator,

§

fn new_id(&self) -> u64

Get a new unique id
§

impl<I, U, F> ProgressSender for WithFilterMap<I, U, F>
where I: ProgressSender, U: Send + Sync + 'static, - F: Fn(U) -> Option<<I as ProgressSender>::Msg> + Clone + Send + Sync + 'static,

§

type Msg = U

The message being sent.
source§

async fn send(&self, msg: U) -> Result<(), ProgressSendError>

Send a message and wait if the receiver is full. Read more
source§

fn try_send(&self, msg: U) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full. Read more
source§

fn blocking_send(&self, msg: U) -> Result<(), ProgressSendError>

Send a message and block if the receiver is full. Read more
source§

fn with_map<U, F>(self, f: F) -> WithMap<Self, U, F>
where + F: Fn(U) -> Option<<I as ProgressSender>::Msg> + Clone + Send + Sync + 'static,

§

type Msg = U

The message being sent.
§

async fn send(&self, msg: U) -> Result<(), ProgressSendError>

Send a message and wait if the receiver is full. Read more
§

fn try_send(&self, msg: U) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full. Read more
§

fn blocking_send(&self, msg: U) -> Result<(), ProgressSendError>

Send a message and block if the receiver is full. Read more
§

fn with_map<U, F>(self, f: F) -> WithMap<Self, U, F>
where U: Send + Sync + 'static, - F: Fn(U) -> Self::Msg + Send + Sync + Clone + 'static,

Transform the message type by mapping to the type of this sender.
source§

fn with_filter_map<U, F>(self, f: F) -> WithFilterMap<Self, U, F>
where + F: Fn(U) -> Self::Msg + Send + Sync + Clone + 'static,

Transform the message type by mapping to the type of this sender.
§

fn with_filter_map<U, F>(self, f: F) -> WithFilterMap<Self, U, F>
where U: Send + Sync + 'static, F: Fn(U) -> Option<Self::Msg> + Send + Sync + Clone + 'static,

Transform the message type by filter-mapping to the type of this sender.

Auto Trait Implementations§

§

impl<I, U, F> Freeze for WithFilterMap<I, U, F>
where I: Freeze, diff --git a/pr/2574/docs/iroh/blobs/util/progress/struct.WithMap.html b/pr/2574/docs/iroh/blobs/util/progress/struct.WithMap.html index 0a10604766..d8c259d74b 100644 --- a/pr/2574/docs/iroh/blobs/util/progress/struct.WithMap.html +++ b/pr/2574/docs/iroh/blobs/util/progress/struct.WithMap.html @@ -1,24 +1,24 @@ -WithMap in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::WithMap

source ·
pub struct WithMap<I, U, F>(/* private fields */)
+WithMap in iroh::blobs::util::progress - Rust

Struct iroh::blobs::util::progress::WithMap

pub struct WithMap<I, U, F>(/* private fields */)
 where
     I: ProgressSender,
     U: Send + Sync + 'static,
     F: Fn(U) -> <I as ProgressSender>::Msg + Clone + Send + Sync + 'static;
Expand description

Transform the message type by mapping to the type of this sender.

See ProgressSender::with_map.

-

Trait Implementations§

source§

impl<I, U, F> Clone for WithMap<I, U, F>
where +

Trait Implementations§

§

impl<I, U, F> Clone for WithMap<I, U, F>
where I: ProgressSender, U: Send + Sync + 'static, - F: Fn(U) -> <I as ProgressSender>::Msg + Clone + Send + Sync + 'static,

source§

fn clone(&self) -> WithMap<I, U, F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<I, U, F> Debug for WithMap<I, U, F>
where + F: Fn(U) -> <I as ProgressSender>::Msg + Clone + Send + Sync + 'static,

§

fn clone(&self) -> WithMap<I, U, F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl<I, U, F> Debug for WithMap<I, U, F>
where I: ProgressSender, U: Send + Sync + 'static, - F: Fn(U) -> <I as ProgressSender>::Msg + Clone + Send + Sync + 'static,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<I, U, F> IdGenerator for WithMap<I, U, F>
where + F: Fn(U) -> <I as ProgressSender>::Msg + Clone + Send + Sync + 'static,

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<I, U, F> IdGenerator for WithMap<I, U, F>
where I: IdGenerator + ProgressSender, U: Send + Sync + 'static, - F: Fn(U) -> <I as ProgressSender>::Msg + Clone + Send + Sync + 'static,

source§

fn new_id(&self) -> u64

Get a new unique id
source§

impl<I, U, F> ProgressSender for WithMap<I, U, F>
where + F: Fn(U) -> <I as ProgressSender>::Msg + Clone + Send + Sync + 'static,

§

fn new_id(&self) -> u64

Get a new unique id
§

impl<I, U, F> ProgressSender for WithMap<I, U, F>
where I: ProgressSender, U: Send + Sync + 'static, - F: Fn(U) -> <I as ProgressSender>::Msg + Clone + Send + Sync + 'static,

§

type Msg = U

The message being sent.
source§

async fn send(&self, msg: U) -> Result<(), ProgressSendError>

Send a message and wait if the receiver is full. Read more
source§

fn try_send(&self, msg: U) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full. Read more
source§

fn blocking_send(&self, msg: U) -> Result<(), ProgressSendError>

Send a message and block if the receiver is full. Read more
source§

fn with_map<U, F>(self, f: F) -> WithMap<Self, U, F>
where + F: Fn(U) -> <I as ProgressSender>::Msg + Clone + Send + Sync + 'static,

§

type Msg = U

The message being sent.
§

async fn send(&self, msg: U) -> Result<(), ProgressSendError>

Send a message and wait if the receiver is full. Read more
§

fn try_send(&self, msg: U) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full. Read more
§

fn blocking_send(&self, msg: U) -> Result<(), ProgressSendError>

Send a message and block if the receiver is full. Read more
§

fn with_map<U, F>(self, f: F) -> WithMap<Self, U, F>
where U: Send + Sync + 'static, - F: Fn(U) -> Self::Msg + Send + Sync + Clone + 'static,

Transform the message type by mapping to the type of this sender.
source§

fn with_filter_map<U, F>(self, f: F) -> WithFilterMap<Self, U, F>
where + F: Fn(U) -> Self::Msg + Send + Sync + Clone + 'static,

Transform the message type by mapping to the type of this sender.
§

fn with_filter_map<U, F>(self, f: F) -> WithFilterMap<Self, U, F>
where U: Send + Sync + 'static, F: Fn(U) -> Option<Self::Msg> + Send + Sync + Clone + 'static,

Transform the message type by filter-mapping to the type of this sender.

Auto Trait Implementations§

§

impl<I, U, F> Freeze for WithMap<I, U, F>
where I: Freeze, diff --git a/pr/2574/docs/iroh/blobs/util/progress/trait.IdGenerator.html b/pr/2574/docs/iroh/blobs/util/progress/trait.IdGenerator.html index 9822305f3b..7061156f64 100644 --- a/pr/2574/docs/iroh/blobs/util/progress/trait.IdGenerator.html +++ b/pr/2574/docs/iroh/blobs/util/progress/trait.IdGenerator.html @@ -1,12 +1,12 @@ -IdGenerator in iroh::blobs::util::progress - Rust

Trait iroh::blobs::util::progress::IdGenerator

source ·
pub trait IdGenerator {
+IdGenerator in iroh::blobs::util::progress - Rust

Trait iroh::blobs::util::progress::IdGenerator

pub trait IdGenerator {
     // Required method
     fn new_id(&self) -> u64;
 }
Expand description

An id generator, to be combined with a progress sender.

-

Required Methods§

source

fn new_id(&self) -> u64

Get a new unique id

-

Implementations on Foreign Types§

source§

impl<T> IdGenerator for Arc<dyn BoxableProgressSender<T>>
where - T: Send + Sync + 'static,

source§

fn new_id(&self) -> u64

Implementors§

source§

impl<I, U, F> IdGenerator for WithFilterMap<I, U, F>
where - I: IdGenerator,

source§

impl<I, U, F> IdGenerator for WithMap<I, U, F>
where +

Required Methods§

fn new_id(&self) -> u64

Get a new unique id

+

Implementations on Foreign Types§

§

impl<T> IdGenerator for Arc<dyn BoxableProgressSender<T>>
where + T: Send + Sync + 'static,

§

fn new_id(&self) -> u64

Implementors§

§

impl<I, U, F> IdGenerator for WithFilterMap<I, U, F>
where + I: IdGenerator,

§

impl<I, U, F> IdGenerator for WithMap<I, U, F>
where I: IdGenerator + ProgressSender, U: Send + Sync + 'static, - F: Fn(U) -> <I as ProgressSender>::Msg + Clone + Send + Sync + 'static,

source§

impl<T> IdGenerator for BoxedProgressSender<T>
where - T: Send + Sync + 'static,

source§

impl<T> IdGenerator for FlumeProgressSender<T>

source§

impl<T> IdGenerator for IgnoreProgressSender<T>

\ No newline at end of file + F: Fn(U) -> <I as ProgressSender>::Msg + Clone + Send + Sync + 'static,

§

impl<T> IdGenerator for AsyncChannelProgressSender<T>

§

impl<T> IdGenerator for BoxedProgressSender<T>
where + T: Send + Sync + 'static,

§

impl<T> IdGenerator for FlumeProgressSender<T>

§

impl<T> IdGenerator for IgnoreProgressSender<T>

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/util/progress/trait.ProgressSender.html b/pr/2574/docs/iroh/blobs/util/progress/trait.ProgressSender.html index 29dd181e4e..aebc831d36 100644 --- a/pr/2574/docs/iroh/blobs/util/progress/trait.ProgressSender.html +++ b/pr/2574/docs/iroh/blobs/util/progress/trait.ProgressSender.html @@ -1,4 +1,4 @@ -ProgressSender in iroh::blobs::util::progress - Rust

Trait iroh::blobs::util::progress::ProgressSender

source ·
pub trait ProgressSender: Debug + Clone + Send + Sync + 'static {
+ProgressSender in iroh::blobs::util::progress - Rust

Trait iroh::blobs::util::progress::ProgressSender

pub trait ProgressSender: Debug + Clone + Send + Sync + 'static {
     type Msg: Send + Sync + 'static;
 
     // Required methods
@@ -69,45 +69,46 @@ 

Send and Sync bounds. They must also be unencumbered by lifetimes, which is ensured by the 'static bound.

A typical implementation will wrap the sender part of a channel and an id generator.

-

Required Associated Types§

source

type Msg: Send + Sync + 'static

The message being sent.

-

Required Methods§

Required Associated Types§

type Msg: Send + Sync + 'static

The message being sent.

+

Required Methods§

fn send( &self, msg: Self::Msg ) -> impl Future<Output = Result<(), ProgressSendError>> + Send

Send a message and wait if the receiver is full.

Use this to send important progress messages where delivery must be guaranteed.

-
source

fn try_send(&self, msg: Self::Msg) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full.

+

fn try_send(&self, msg: Self::Msg) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full.

Use this to send progress messages where delivery is not important, e.g. a self contained progress message.

-
source

fn blocking_send(&self, msg: Self::Msg) -> Result<(), ProgressSendError>

Send a message and block if the receiver is full.

+

fn blocking_send(&self, msg: Self::Msg) -> Result<(), ProgressSendError>

Send a message and block if the receiver is full.

Use this to send important progress messages where delivery must be guaranteed.

-

Provided Methods§

source

fn with_map<U, F>(self, f: F) -> WithMap<Self, U, F>
where +

Provided Methods§

fn with_map<U, F>(self, f: F) -> WithMap<Self, U, F>
where U: Send + Sync + 'static, F: Fn(U) -> Self::Msg + Send + Sync + Clone + 'static,

Transform the message type by mapping to the type of this sender.

-
source

fn with_filter_map<U, F>(self, f: F) -> WithFilterMap<Self, U, F>
where +

fn with_filter_map<U, F>(self, f: F) -> WithFilterMap<Self, U, F>
where U: Send + Sync + 'static, F: Fn(U) -> Option<Self::Msg> + Send + Sync + Clone + 'static,

Transform the message type by filter-mapping to the type of this sender.

-
source

fn boxed(self) -> BoxedProgressSender<Self::Msg>
where +

fn boxed(self) -> BoxedProgressSender<Self::Msg>
where Self: IdGenerator,

Create a boxed progress sender to get rid of the concrete type.

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<T> ProgressSender for Option<T>
where - T: ProgressSender,

§

type Msg = <T as ProgressSender>::Msg

source§

async fn send( +

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl<T> ProgressSender for Option<T>
where + T: ProgressSender,

source§

impl<T> ProgressSender for Arc<dyn BoxableProgressSender<T>>
where - T: Send + Sync + 'static,

§

impl<T> ProgressSender for Arc<dyn BoxableProgressSender<T>>
where + T: Send + Sync + 'static,

§

type Msg = T

§

fn send( &self, msg: T -) -> impl Future<Output = Result<(), ProgressSendError>> + Send

source§

fn try_send(&self, msg: T) -> Result<(), ProgressSendError>

source§

fn blocking_send(&self, msg: T) -> Result<(), ProgressSendError>

Implementors§

source§

impl<I, U, F> ProgressSender for WithFilterMap<I, U, F>
where +) -> impl Future<Output = Result<(), ProgressSendError>> + Send

§

fn try_send(&self, msg: T) -> Result<(), ProgressSendError>

§

fn blocking_send(&self, msg: T) -> Result<(), ProgressSendError>

Implementors§

§

impl<I, U, F> ProgressSender for WithFilterMap<I, U, F>
where I: ProgressSender, U: Send + Sync + 'static, - F: Fn(U) -> Option<<I as ProgressSender>::Msg> + Clone + Send + Sync + 'static,

§

type Msg = U

source§

impl<I, U, F> ProgressSender for WithMap<I, U, F>
where + F: Fn(U) -> Option<<I as ProgressSender>::Msg> + Clone + Send + Sync + 'static,

§

type Msg = U

§

impl<I, U, F> ProgressSender for WithMap<I, U, F>
where I: ProgressSender, U: Send + Sync + 'static, - F: Fn(U) -> <I as ProgressSender>::Msg + Clone + Send + Sync + 'static,

§

type Msg = U

source§

impl<T> ProgressSender for BoxedProgressSender<T>
where - T: Send + Sync + 'static,

§

type Msg = T

source§

impl<T> ProgressSender for FlumeProgressSender<T>
where - T: Send + Sync + 'static,

§

type Msg = T

source§

impl<T> ProgressSender for IgnoreProgressSender<T>
where - T: Send + Sync + 'static,

§

type Msg = T

\ No newline at end of file + F: Fn(U) -> <I as ProgressSender>::Msg + Clone + Send + Sync + 'static,

§

type Msg = U

§

impl<T> ProgressSender for AsyncChannelProgressSender<T>
where + T: Send + Sync + 'static,

§

type Msg = T

§

impl<T> ProgressSender for BoxedProgressSender<T>
where + T: Send + Sync + 'static,

§

type Msg = T

§

impl<T> ProgressSender for FlumeProgressSender<T>
where + T: Send + Sync + 'static,

§

type Msg = T

§

impl<T> ProgressSender for IgnoreProgressSender<T>
where + T: Send + Sync + 'static,

§

type Msg = T

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/util/progress/type.ProgressSendResult.html b/pr/2574/docs/iroh/blobs/util/progress/type.ProgressSendResult.html index 553c96b489..17facae9b3 100644 --- a/pr/2574/docs/iroh/blobs/util/progress/type.ProgressSendResult.html +++ b/pr/2574/docs/iroh/blobs/util/progress/type.ProgressSendResult.html @@ -1,4 +1,4 @@ -ProgressSendResult in iroh::blobs::util::progress - Rust

Type Alias iroh::blobs::util::progress::ProgressSendResult

source ·
pub type ProgressSendResult<T> = Result<T, ProgressSendError>;
Expand description

A result type for progress sending.

+ProgressSendResult in iroh::blobs::util::progress - Rust

Type Alias iroh::blobs::util::progress::ProgressSendResult

pub type ProgressSendResult<T> = Result<T, ProgressSendError>;
Expand description

A result type for progress sending.

Aliased Type§

enum ProgressSendResult<T> {
     Ok(T),
     Err(ProgressSendError),
diff --git a/pr/2574/docs/iroh/blobs/util/struct.SparseMemFile.html b/pr/2574/docs/iroh/blobs/util/struct.SparseMemFile.html
index 3736e716c6..57afc3567c 100644
--- a/pr/2574/docs/iroh/blobs/util/struct.SparseMemFile.html
+++ b/pr/2574/docs/iroh/blobs/util/struct.SparseMemFile.html
@@ -1,10 +1,10 @@
-SparseMemFile in iroh::blobs::util - Rust

Struct iroh::blobs::util::SparseMemFile

source ·
pub struct SparseMemFile { /* private fields */ }
Expand description

A file that is sparse in memory

+SparseMemFile in iroh::blobs::util - Rust

Struct iroh::blobs::util::SparseMemFile

pub struct SparseMemFile { /* private fields */ }
Expand description

A file that is sparse in memory

It is not actually using sparse storage to make reading faster, so it will not conserve memory. It is just a way to remember the gaps so we can write it to a file in a sparse way later.

-

Implementations§

source§

impl SparseMemFile

source

pub fn new() -> SparseMemFile

Create a new, empty SparseMemFile

-
source

pub fn into_parts(self) -> (Vec<u8>, RangeSet<[usize; 2]>)

Get the data and the valid ranges

-
source

pub fn persist(&self, target: impl WriteAt) -> Result<(), Error>

Persist the SparseMemFile to a WriteAt

+

Implementations§

§

impl SparseMemFile

pub fn new() -> SparseMemFile

Create a new, empty SparseMemFile

+

pub fn into_parts(self) -> (Vec<u8>, RangeSet<[usize; 2]>)

Get the data and the valid ranges

+

pub fn persist(&self, target: impl WriteAt) -> Result<(), Error>

Persist the SparseMemFile to a WriteAt

This will not persist the gaps, only the data that was written.

Methods from Deref<Target = [u8]>§

source

pub fn as_str(&self) -> &str

🔬This is a nightly-only experimental API. (ascii_char)

Views this slice of ASCII characters as a UTF-8 str.

source

pub fn as_bytes(&self) -> &[u8]

🔬This is a nightly-only experimental API. (ascii_char)

Views this slice of ASCII characters as a slice of u8 bytes.

@@ -1110,10 +1110,9 @@
§Examples§Examples
assert_eq!(["hello", "world"].connect(" "), "hello world");
 assert_eq!([[1, 2], [3, 4]].connect(&0), [1, 2, 0, 3, 4]);
-

Trait Implementations§

source§

impl AsRef<[u8]> for SparseMemFile

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Debug for SparseMemFile
where - RangeSet<[usize; 2]>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for SparseMemFile

source§

fn default() -> SparseMemFile

Returns the “default value” for a type. Read more
source§

impl Deref for SparseMemFile

§

type Target = [u8]

The resulting type after dereferencing.
source§

fn deref(&self) -> &<SparseMemFile as Deref>::Target

Dereferences the value.
source§

impl From<Vec<u8>> for SparseMemFile

source§

fn from(data: Vec<u8>) -> SparseMemFile

Converts to this type from the input type.
source§

impl ReadAt for SparseMemFile

source§

fn read_at(&self, offset: u64, buf: &mut [u8]) -> Result<usize, Error>

Reads bytes from an offset in this source into a buffer, returning how -many bytes were read. Read more
source§

fn read_exact_at(&self, pos: u64, buf: &mut [u8]) -> Result<(), Error>

Reads the exact number of bytes required to fill buf from an offset. Read more
source§

impl Size for SparseMemFile

source§

fn size(&self) -> Result<Option<u64>, Error>

Get the size of this object, in bytes. Read more
source§

impl TryInto<Vec<u8>> for SparseMemFile

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<Vec<u8>, <SparseMemFile as TryInto<Vec<u8>>>::Error>

Performs the conversion.
source§

impl WriteAt for SparseMemFile

source§

fn write_at(&mut self, offset: u64, buf: &[u8]) -> Result<usize, Error>

Writes bytes from a buffer to an offset, returning the number of bytes -written. Read more
source§

fn flush(&mut self) -> Result<(), Error>

Flush this writer, ensuring that any intermediately buffered data +

Trait Implementations§

§

impl AsRef<[u8]> for SparseMemFile

§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
§

impl Debug for SparseMemFile

§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for SparseMemFile

§

fn default() -> SparseMemFile

Returns the “default value” for a type. Read more
§

impl Deref for SparseMemFile

§

type Target = [u8]

The resulting type after dereferencing.
§

fn deref(&self) -> &<SparseMemFile as Deref>::Target

Dereferences the value.
§

impl From<Vec<u8>> for SparseMemFile

§

fn from(data: Vec<u8>) -> SparseMemFile

Converts to this type from the input type.
§

impl ReadAt for SparseMemFile

§

fn read_at(&self, offset: u64, buf: &mut [u8]) -> Result<usize, Error>

Reads bytes from an offset in this source into a buffer, returning how +many bytes were read. Read more
source§

fn read_exact_at(&self, pos: u64, buf: &mut [u8]) -> Result<(), Error>

Reads the exact number of bytes required to fill buf from an offset. Read more
§

impl Size for SparseMemFile

§

fn size(&self) -> Result<Option<u64>, Error>

Get the size of this object, in bytes. Read more
§

impl TryInto<Vec<u8>> for SparseMemFile

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<Vec<u8>, <SparseMemFile as TryInto<Vec<u8>>>::Error>

Performs the conversion.
§

impl WriteAt for SparseMemFile

§

fn write_at(&mut self, offset: u64, buf: &[u8]) -> Result<usize, Error>

Writes bytes from a buffer to an offset, returning the number of bytes +written. Read more
§

fn flush(&mut self) -> Result<(), Error>

Flush this writer, ensuring that any intermediately buffered data reaches its destination. Read more
source§

fn write_all_at(&mut self, pos: u64, buf: &[u8]) -> Result<(), Error>

Writes a complete buffer at an offset. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<A, T> AsBits<T> for A
where A: AsRef<[T]>, diff --git a/pr/2574/docs/iroh/blobs/util/struct.Tag.html b/pr/2574/docs/iroh/blobs/util/struct.Tag.html index 0ce4afc373..c6f3490e15 100644 --- a/pr/2574/docs/iroh/blobs/util/struct.Tag.html +++ b/pr/2574/docs/iroh/blobs/util/struct.Tag.html @@ -1,32 +1,32 @@ -Tag in iroh::blobs::util - Rust

Struct iroh::blobs::util::Tag

source ·
pub struct Tag(pub Bytes);
Expand description

A tag

-

Tuple Fields§

§0: Bytes

Implementations§

source§

impl Tag

source

pub fn auto(time: SystemTime, exists: impl Fn(&[u8]) -> bool) -> Tag

Create a new tag that does not exist yet.

-

Trait Implementations§

source§

impl Borrow<[u8]> for Tag

source§

fn borrow(&self) -> &[u8]

Immutably borrows from an owned value. Read more
source§

impl Clone for Tag

source§

fn clone(&self) -> Tag

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Tag

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Tag

source§

fn deserialize<__D>( +Tag in iroh::blobs::util - Rust

Struct iroh::blobs::util::Tag

pub struct Tag(pub Bytes);
Expand description

A tag

+

Tuple Fields§

§0: Bytes

Implementations§

§

impl Tag

pub fn auto(time: SystemTime, exists: impl Fn(&[u8]) -> bool) -> Tag

Create a new tag that does not exist yet.

+

Trait Implementations§

§

impl Borrow<[u8]> for Tag

§

fn borrow(&self) -> &[u8]

Immutably borrows from an owned value. Read more
§

impl Clone for Tag

§

fn clone(&self) -> Tag

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for Tag

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for Tag

§

fn deserialize<__D>( __deserializer: __D ) -> Result<Tag, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Tag

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&str> for Tag

source§

fn from(value: &str) -> Tag

Converts to this type from the input type.
source§

impl From<Bytes> for Tag

source§

fn from(value: Bytes) -> Tag

Converts to this type from the input type.
source§

impl From<String> for Tag

source§

fn from(value: String) -> Tag

Converts to this type from the input type.
source§

impl Key for Tag

source§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
source§

impl Ord for Tag

source§

fn cmp(&self, other: &Tag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl Display for Tag

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<&str> for Tag

§

fn from(value: &str) -> Tag

Converts to this type from the input type.
§

impl From<Bytes> for Tag

§

fn from(value: Bytes) -> Tag

Converts to this type from the input type.
§

impl From<String> for Tag

§

fn from(value: String) -> Tag

Converts to this type from the input type.
§

impl Key for Tag

§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
§

impl Ord for Tag

§

fn cmp(&self, other: &Tag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Tag

source§

fn eq(&self, other: &Tag) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
§

impl PartialEq for Tag

§

fn eq(&self, other: &Tag) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for Tag

source§

fn partial_cmp(&self, other: &Tag) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
§

impl PartialOrd for Tag

§

fn partial_cmp(&self, other: &Tag) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl RedbKey for Tag

source§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
source§

impl RedbValue for Tag

§

type SelfType<'a> = Tag

SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a
§

type AsBytes<'a> = Bytes

source§

fn fixed_width() -> Option<usize>

Width of a fixed type, or None for variable width
source§

fn from_bytes<'a>(data: &'a [u8]) -> <Tag as RedbValue>::SelfType<'a>
where +operator. Read more

§

impl RedbKey for Tag

§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
§

impl RedbValue for Tag

§

type SelfType<'a> = Tag

SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a
§

type AsBytes<'a> = Bytes

§

fn fixed_width() -> Option<usize>

Width of a fixed type, or None for variable width
§

fn from_bytes<'a>(data: &'a [u8]) -> <Tag as RedbValue>::SelfType<'a>
where Tag: 'a,

Deserializes data -Implementations may return a view over data, or an owned type
source§

fn as_bytes<'a, 'b>( +Implementations may return a view over data, or an owned type

§

fn as_bytes<'a, 'b>( value: &'a <Tag as RedbValue>::SelfType<'b> ) -> <Tag as RedbValue>::AsBytes<'a>
where 'b: 'a, - Tag: 'a + 'b,

Serialize the value to a slice
source§

fn type_name() -> TypeName

Globally unique identifier for this type

source§

impl Serialize for Tag

source§

fn serialize<__S>( + Tag: 'a + 'b,

Serialize the value to a slice
§

fn type_name() -> TypeName

Globally unique identifier for this type

§

impl Serialize for Tag

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Value for Tag

§

type SelfType<'a> = Tag

SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a
§

type AsBytes<'a> = Bytes

source§

fn fixed_width() -> Option<usize>

Width of a fixed type, or None for variable width
source§

fn from_bytes<'a>(data: &'a [u8]) -> <Tag as Value>::SelfType<'a>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Value for Tag

§

type SelfType<'a> = Tag

SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a
§

type AsBytes<'a> = Bytes

§

fn fixed_width() -> Option<usize>

Width of a fixed type, or None for variable width
§

fn from_bytes<'a>(data: &'a [u8]) -> <Tag as Value>::SelfType<'a>
where Tag: 'a,

Deserializes data -Implementations may return a view over data, or an owned type
source§

fn as_bytes<'a, 'b>( +Implementations may return a view over data, or an owned type

§

fn as_bytes<'a, 'b>( value: &'a <Tag as Value>::SelfType<'b> ) -> <Tag as Value>::AsBytes<'a>
where 'b: 'a, - Tag: 'a + 'b,

Serialize the value to a slice
source§

fn type_name() -> TypeName

Globally unique identifier for this type

source§

impl Eq for Tag

source§

impl StructuralPartialEq for Tag

Auto Trait Implementations§

§

impl !Freeze for Tag

§

impl RefUnwindSafe for Tag

§

impl Send for Tag

§

impl Sync for Tag

§

impl Unpin for Tag

§

impl UnwindSafe for Tag

Blanket Implementations§

source§

impl<T> Any for T
where + Tag: 'a + 'b,

Serialize the value to a slice
§

fn type_name() -> TypeName

Globally unique identifier for this type
§

impl Eq for Tag

§

impl StructuralPartialEq for Tag

Auto Trait Implementations§

§

impl !Freeze for Tag

§

impl RefUnwindSafe for Tag

§

impl Send for Tag

§

impl Sync for Tag

§

impl Unpin for Tag

§

impl UnwindSafe for Tag

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/util/struct.TempTag.html b/pr/2574/docs/iroh/blobs/util/struct.TempTag.html index 834c36423c..eca85b258b 100644 --- a/pr/2574/docs/iroh/blobs/util/struct.TempTag.html +++ b/pr/2574/docs/iroh/blobs/util/struct.TempTag.html @@ -1,18 +1,16 @@ -TempTag in iroh::blobs::util - Rust

Struct iroh::blobs::util::TempTag

source ·
pub struct TempTag { /* private fields */ }
Expand description

A hash and format pair that is protected from garbage collection.

+TempTag in iroh::blobs::util - Rust

Struct iroh::blobs::util::TempTag

pub struct TempTag { /* private fields */ }
Expand description

A hash and format pair that is protected from garbage collection.

If format is raw, this will protect just the blob If format is collection, this will protect the collection and all blobs in it

-

Implementations§

source§

impl TempTag

source

pub fn new(inner: HashAndFormat, on_drop: Option<Weak<dyn TagDrop>>) -> TempTag

Create a new temp tag for the given hash and format

+

Implementations§

§

impl TempTag

pub fn new(inner: HashAndFormat, on_drop: Option<Weak<dyn TagDrop>>) -> TempTag

Create a new temp tag for the given hash and format

This should only be used by store implementations.

The caller is responsible for increasing the refcount on creation and to make sure that temp tags that are created between a mark phase and a sweep phase are protected.

-
source

pub fn inner(&self) -> &HashAndFormat

The hash of the pinned item

-
source

pub fn hash(&self) -> &Hash

The hash of the pinned item

-
source

pub fn format(&self) -> BlobFormat

The format of the pinned item

-
source

pub fn leak(self)

Keep the item alive until the end of the process

-

Trait Implementations§

source§

impl Debug for TempTag

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Drop for TempTag

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

pub fn inner(&self) -> &HashAndFormat

The hash of the pinned item

+

pub fn hash(&self) -> &Hash

The hash of the pinned item

+

pub fn format(&self) -> BlobFormat

The format of the pinned item

+

pub fn leak(self)

Keep the item alive until the end of the process

+

Trait Implementations§

§

impl Debug for TempTag

§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Drop for TempTag

§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/blobs/util/trait.TagCounter.html b/pr/2574/docs/iroh/blobs/util/trait.TagCounter.html index f26d9f7288..ebdaef7adb 100644 --- a/pr/2574/docs/iroh/blobs/util/trait.TagCounter.html +++ b/pr/2574/docs/iroh/blobs/util/trait.TagCounter.html @@ -1,4 +1,4 @@ -TagCounter in iroh::blobs::util - Rust

Trait iroh::blobs::util::TagCounter

source ·
pub trait TagCounter: Sized + TagDrop {
+TagCounter in iroh::blobs::util - Rust

Trait iroh::blobs::util::TagCounter

pub trait TagCounter: Sized + TagDrop {
     // Required method
     fn on_create(&self, inner: &HashAndFormat);
 
@@ -11,7 +11,7 @@
 

It is important to include the format in the liveness tracking, since protecting a collection means protecting the blob and all its children, whereas protecting a raw blob only protects the blob itself.

-

Required Methods§

source

fn on_create(&self, inner: &HashAndFormat)

Called on creation of a temp tag

-

Provided Methods§

source

fn as_weak(self: &Arc<Self>) -> Weak<dyn TagDrop>

Get this as a weak reference for use in temp tags

-
source

fn temp_tag(self: &Arc<Self>, inner: HashAndFormat) -> TempTag

Create a new temp tag for the given hash and format

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl TagCounter for RwLock<TempCounterMap>

source§

fn on_create(&self, content: &HashAndFormat)

Implementors§

\ No newline at end of file +

Required Methods§

fn on_create(&self, inner: &HashAndFormat)

Called on creation of a temp tag

+

Provided Methods§

fn as_weak(self: &Arc<Self>) -> Weak<dyn TagDrop>

Get this as a weak reference for use in temp tags

+

fn temp_tag(self: &Arc<Self>, inner: HashAndFormat) -> TempTag

Create a new temp tag for the given hash and format

+

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl TagCounter for RwLock<TempCounterMap>

§

fn on_create(&self, content: &HashAndFormat)

Implementors§

\ No newline at end of file diff --git a/pr/2574/docs/iroh/blobs/util/trait.TagDrop.html b/pr/2574/docs/iroh/blobs/util/trait.TagDrop.html index 452e85f902..c417b6bb3f 100644 --- a/pr/2574/docs/iroh/blobs/util/trait.TagDrop.html +++ b/pr/2574/docs/iroh/blobs/util/trait.TagDrop.html @@ -1,7 +1,7 @@ -TagDrop in iroh::blobs::util - Rust

Trait iroh::blobs::util::TagDrop

source ·
pub trait TagDrop: Debug + Send + Sync + 'static {
+TagDrop in iroh::blobs::util - Rust

Trait iroh::blobs::util::TagDrop

pub trait TagDrop: Debug + Send + Sync + 'static {
     // Required method
     fn on_drop(&self, inner: &HashAndFormat);
 }
Expand description

Trait used from temp tags to notify an abstract store that a temp tag is being dropped.

-

Required Methods§

source

fn on_drop(&self, inner: &HashAndFormat)

Called on drop

-

Implementations on Foreign Types§

source§

impl TagDrop for RwLock<TempCounterMap>

source§

fn on_drop(&self, content: &HashAndFormat)

Implementors§

\ No newline at end of file +

Required Methods§

fn on_drop(&self, inner: &HashAndFormat)

Called on drop

+

Implementations on Foreign Types§

§

impl TagDrop for RwLock<TempCounterMap>

§

fn on_drop(&self, content: &HashAndFormat)

Implementors§

\ No newline at end of file diff --git a/pr/2574/docs/iroh/client/blobs/struct.AddProgress.html b/pr/2574/docs/iroh/client/blobs/struct.AddProgress.html index 769ae0c2d7..0e75cf1687 100644 --- a/pr/2574/docs/iroh/client/blobs/struct.AddProgress.html +++ b/pr/2574/docs/iroh/client/blobs/struct.AddProgress.html @@ -5,8 +5,7 @@ When importing a collection, the hash is the hash of the collection and the size is the total size of all imported blobs (but excluding the size of the collection blob itself).

-

Trait Implementations§

source§

impl Debug for AddProgress
where - Arc<AtomicU64>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Future for AddProgress

§

type Output = Result<AddOutcome, Error>

The type of value produced on completion.
source§

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

Attempt to resolve the future to a final value, registering +

Trait Implementations§

source§

impl Debug for AddProgress

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Future for AddProgress

§

type Output = Result<AddOutcome, Error>

The type of value produced on completion.
source§

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

Attempt to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more
source§

impl Stream for AddProgress

§

type Item = Result<AddProgress, Error>

Values yielded by the stream.
source§

fn poll_next( self: Pin<&mut Self>, cx: &mut Context<'_> diff --git a/pr/2574/docs/iroh/client/blobs/struct.DownloadProgress.html b/pr/2574/docs/iroh/client/blobs/struct.DownloadProgress.html index 75cf0d12a1..57de743238 100644 --- a/pr/2574/docs/iroh/client/blobs/struct.DownloadProgress.html +++ b/pr/2574/docs/iroh/client/blobs/struct.DownloadProgress.html @@ -6,8 +6,7 @@

Returns a DownloadOutcome which contains the size of the content we downloaded and the size of the content we already had locally. When importing a single blob, this is the size of that blob. When importing a collection, this is the total size of all imported blobs (but excluding the size of the collection blob itself).

-

Trait Implementations§

source§

impl Debug for DownloadProgress
where - Arc<AtomicU64>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Future for DownloadProgress

§

type Output = Result<DownloadOutcome, Error>

The type of value produced on completion.
source§

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

Attempt to resolve the future to a final value, registering +

Trait Implementations§

source§

impl Debug for DownloadProgress

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Future for DownloadProgress

§

type Output = Result<DownloadOutcome, Error>

The type of value produced on completion.
source§

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

Attempt to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more
source§

impl Stream for DownloadProgress

§

type Item = Result<DownloadProgress, Error>

Values yielded by the stream.
source§

fn poll_next( self: Pin<&mut Self>, cx: &mut Context<'_> diff --git a/pr/2574/docs/iroh/client/blobs/struct.ExportProgress.html b/pr/2574/docs/iroh/client/blobs/struct.ExportProgress.html index a13b60fe5a..64d7d80a1e 100644 --- a/pr/2574/docs/iroh/client/blobs/struct.ExportProgress.html +++ b/pr/2574/docs/iroh/client/blobs/struct.ExportProgress.html @@ -5,8 +5,7 @@ download until it is finished or errors.

source

pub async fn finish(self) -> Result<ExportOutcome>

Finish writing the stream, ignoring all intermediate progress events.

Returns a ExportOutcome which contains the size of the content we exported.

-

Trait Implementations§

source§

impl Debug for ExportProgress
where - Arc<AtomicU64>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Future for ExportProgress

§

type Output = Result<ExportOutcome, Error>

The type of value produced on completion.
source§

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

Attempt to resolve the future to a final value, registering +

Trait Implementations§

source§

impl Debug for ExportProgress

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Future for ExportProgress

§

type Output = Result<ExportOutcome, Error>

The type of value produced on completion.
source§

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

Attempt to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more
source§

impl Stream for ExportProgress

§

type Item = Result<ExportProgress, Error>

Values yielded by the stream.
source§

fn poll_next( self: Pin<&mut Self>, cx: &mut Context<'_> diff --git a/pr/2574/docs/iroh/client/blobs/struct.Reader.html b/pr/2574/docs/iroh/client/blobs/struct.Reader.html index 969848cd9f..bbf2301ebd 100644 --- a/pr/2574/docs/iroh/client/blobs/struct.Reader.html +++ b/pr/2574/docs/iroh/client/blobs/struct.Reader.html @@ -8,9 +8,7 @@ self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &mut ReadBuf<'_> -) -> Poll<Result<()>>

Attempts to read from the AsyncRead into buf. Read more
source§

impl Debug for Reader
where - u64: Debug, - bool: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Stream for Reader

§

type Item = Result<Bytes, Error>

Values yielded by the stream.
source§

fn poll_next( +) -> Poll<Result<()>>

Attempts to read from the AsyncRead into buf. Read more
source§

impl Debug for Reader

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Stream for Reader

§

type Item = Result<Bytes, Error>

Values yielded by the stream.
source§

fn poll_next( self: Pin<&mut Self>, cx: &mut Context<'_> ) -> Poll<Option<Self::Item>>

Attempt to pull out the next value of this stream, registering the diff --git a/pr/2574/docs/iroh/client/docs/enum.ShareMode.html b/pr/2574/docs/iroh/client/docs/enum.ShareMode.html index f4ba19f25f..98710ba387 100644 --- a/pr/2574/docs/iroh/client/docs/enum.ShareMode.html +++ b/pr/2574/docs/iroh/client/docs/enum.ShareMode.html @@ -4,8 +4,8 @@ }
Expand description

Intended capability for document share tickets

Variants§

§

Read

Read-only access

§

Write

Write access

-

Trait Implementations§

source§

impl Clone for ShareMode

source§

fn clone(&self) -> ShareMode

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ShareMode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ShareMode

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ShareMode

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for ShareMode

§

type Err = FromStrError

The associated error which can be returned from parsing.
source§

fn from_str(src: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Serialize for ShareMode

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where +

Trait Implementations§

source§

impl Clone for ShareMode

source§

fn clone(&self) -> ShareMode

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ShareMode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ShareMode

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ShareMode

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for ShareMode

§

type Err = FromStrError

The associated error which can be returned from parsing.
source§

fn from_str(src: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Serialize for ShareMode

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/client/type.RpcClient.html b/pr/2574/docs/iroh/client/type.RpcClient.html index 1355563d8e..74607a877d 100644 --- a/pr/2574/docs/iroh/client/type.RpcClient.html +++ b/pr/2574/docs/iroh/client/type.RpcClient.html @@ -1,2 +1,2 @@ RpcClient in iroh::client - Rust

Type Alias iroh::client::RpcClient

source ·
pub type RpcClient = RpcClient<RpcService, Connection<RpcService>>;
Expand description

Iroh rpc client - boxed so that we can have a concrete type.

-

Aliased Type§

struct RpcClient { /* private fields */ }

Trait Implementations§

source§

impl<'a> From<&'a Doc> for &'a RpcClient

source§

fn from(doc: &'a Doc) -> &'a RpcClient

Converts to this type from the input type.
source§

impl<'a> From<&'a Iroh> for &'a RpcClient

source§

fn from(client: &'a Iroh) -> &'a RpcClient

Converts to this type from the input type.
\ No newline at end of file +

Aliased Type§

struct RpcClient { /* private fields */ }

Trait Implementations§

source§

impl<'a> From<&'a Doc> for &'a RpcClient

source§

fn from(doc: &'a Doc) -> &'a RpcClient

Converts to this type from the input type.
source§

impl<'a> From<&'a Iroh> for &'a RpcClient

source§

fn from(client: &'a Iroh) -> &'a RpcClient

Converts to this type from the input type.
\ No newline at end of file diff --git a/pr/2574/docs/iroh/docs/engine/struct.Engine.html b/pr/2574/docs/iroh/docs/engine/struct.Engine.html index defacdda7d..ed8f498147 100644 --- a/pr/2574/docs/iroh/docs/engine/struct.Engine.html +++ b/pr/2574/docs/iroh/docs/engine/struct.Engine.html @@ -39,12 +39,7 @@ ) -> Result<impl Stream<Item = Result<LiveEvent, Error>> + Unpin + 'static, Error>

Subscribe to replica and sync progress events.

source

pub async fn handle_connection(&self, conn: Connecting) -> Result<(), Error>

Handle an incoming iroh-docs connection.

source

pub async fn shutdown(&self) -> Result<(), Error>

Shutdown the engine.

-

Trait Implementations§

source§

impl Clone for Engine

source§

fn clone(&self) -> Engine

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Engine
where - Endpoint: Debug, - SyncHandle: Debug, - Arc<DefaultAuthor>: Debug, - Sender<ToLiveActor>: Debug, - SharedAbortingJoinHandle<()>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Engine

§

impl !RefUnwindSafe for Engine

§

impl Send for Engine

§

impl Sync for Engine

§

impl Unpin for Engine

§

impl !UnwindSafe for Engine

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Clone for Engine

source§

fn clone(&self) -> Engine

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Engine

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Engine

§

impl !RefUnwindSafe for Engine

§

impl Send for Engine

§

impl Sync for Engine

§

impl Unpin for Engine

§

impl !UnwindSafe for Engine

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/docs/enum.InsertError.html b/pr/2574/docs/iroh/docs/enum.InsertError.html index 34db54aa1c..2750cdc507 100644 --- a/pr/2574/docs/iroh/docs/enum.InsertError.html +++ b/pr/2574/docs/iroh/docs/enum.InsertError.html @@ -12,9 +12,7 @@
§

EntryIsEmpty

Attempted to insert an empty entry.

§

ReadOnly

Replica is read only.

§

Closed

The replica is closed, no operations may be performed.

-

Trait Implementations§

source§

impl Debug for InsertError

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for InsertError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for InsertError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ReadOnly> for InsertError

source§

fn from(value: ReadOnly) -> InsertError

Converts to this type from the input type.
source§

impl From<ValidationFailure> for InsertError

source§

fn from(source: ValidationFailure) -> InsertError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for InsertError

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for InsertError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for InsertError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ReadOnly> for InsertError

source§

fn from(value: ReadOnly) -> InsertError

Converts to this type from the input type.
source§

impl From<ValidationFailure> for InsertError

source§

fn from(source: ValidationFailure) -> InsertError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/docs/store/struct.Query.html b/pr/2574/docs/iroh/docs/store/struct.Query.html index 57f4715940..063dc98c27 100644 --- a/pr/2574/docs/iroh/docs/store/struct.Query.html +++ b/pr/2574/docs/iroh/docs/store/struct.Query.html @@ -11,7 +11,7 @@

Trait Implementations§

source§

impl Clone for Query

source§

fn clone(&self) -> Query

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Query

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Query

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<Query, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<QueryBuilder<FlatQuery>> for Query

source§

fn from(builder: QueryBuilder<FlatQuery>) -> Query

Converts to this type from the input type.
source§

impl From<QueryBuilder<SingleLatestPerKeyQuery>> for Query

source§

fn from(builder: QueryBuilder<SingleLatestPerKeyQuery>) -> Query

Converts to this type from the input type.
source§

impl Serialize for Query

source§

fn serialize<__S>( + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<QueryBuilder<FlatQuery>> for Query

source§

fn from(builder: QueryBuilder<FlatQuery>) -> Query

Converts to this type from the input type.
source§

impl From<QueryBuilder<SingleLatestPerKeyQuery>> for Query

source§

fn from(builder: QueryBuilder<SingleLatestPerKeyQuery>) -> Query

Converts to this type from the input type.
source§

impl Serialize for Query

source§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where diff --git a/pr/2574/docs/iroh/docs/store/struct.QueryBuilder.html b/pr/2574/docs/iroh/docs/store/struct.QueryBuilder.html index 761ddcd6f3..3903bf9741 100644 --- a/pr/2574/docs/iroh/docs/store/struct.QueryBuilder.html +++ b/pr/2574/docs/iroh/docs/store/struct.QueryBuilder.html @@ -21,7 +21,7 @@

source

pub fn build(self) -> Query

Build the query.

Trait Implementations§

source§

impl<K> Debug for QueryBuilder<K>
where K: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<K> Default for QueryBuilder<K>
where - K: Default,

source§

fn default() -> QueryBuilder<K>

Returns the “default value” for a type. Read more
source§

impl From<QueryBuilder<FlatQuery>> for Query

source§

fn from(builder: QueryBuilder<FlatQuery>) -> Query

Converts to this type from the input type.
source§

impl From<QueryBuilder<SingleLatestPerKeyQuery>> for Query

source§

fn from(builder: QueryBuilder<SingleLatestPerKeyQuery>) -> Query

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<K> !Freeze for QueryBuilder<K>

§

impl<K> RefUnwindSafe for QueryBuilder<K>
where + K: Default,

source§

fn default() -> QueryBuilder<K>

Returns the “default value” for a type. Read more
source§

impl From<QueryBuilder<FlatQuery>> for Query

source§

fn from(builder: QueryBuilder<FlatQuery>) -> Query

Converts to this type from the input type.
source§

impl From<QueryBuilder<SingleLatestPerKeyQuery>> for Query

source§

fn from(builder: QueryBuilder<SingleLatestPerKeyQuery>) -> Query

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<K> !Freeze for QueryBuilder<K>

§

impl<K> RefUnwindSafe for QueryBuilder<K>
where K: RefUnwindSafe,

§

impl<K> Send for QueryBuilder<K>
where K: Send,

§

impl<K> Sync for QueryBuilder<K>
where K: Sync,

§

impl<K> Unpin for QueryBuilder<K>
where diff --git a/pr/2574/docs/iroh/docs/struct.Author.html b/pr/2574/docs/iroh/docs/struct.Author.html index b8f7b8e7b9..f7d5e2cc9a 100644 --- a/pr/2574/docs/iroh/docs/struct.Author.html +++ b/pr/2574/docs/iroh/docs/struct.Author.html @@ -11,7 +11,7 @@

Trait Implementations§

source§

impl Clone for Author

source§

fn clone(&self) -> Author

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Author

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Author

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<Author, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Author

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&Author> for AuthorPublicKey

source§

fn from(value: &Author) -> AuthorPublicKey

Converts to this type from the input type.
source§

impl From<Author> for AuthorId

source§

fn from(value: Author) -> AuthorId

Converts to this type from the input type.
source§

impl From<Author> for AuthorPublicKey

source§

fn from(value: Author) -> AuthorPublicKey

Converts to this type from the input type.
source§

impl From<SigningKey> for Author

source§

fn from(signing_key: SigningKey) -> Author

Converts to this type from the input type.
source§

impl FromStr for Author

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Author, <Author as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Serialize for Author

source§

fn serialize<__S>( + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Author

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&Author> for AuthorPublicKey

source§

fn from(value: &Author) -> AuthorPublicKey

Converts to this type from the input type.
source§

impl From<Author> for AuthorId

source§

fn from(value: Author) -> AuthorId

Converts to this type from the input type.
source§

impl From<Author> for AuthorPublicKey

source§

fn from(value: Author) -> AuthorPublicKey

Converts to this type from the input type.
source§

impl From<SigningKey> for Author

source§

fn from(signing_key: SigningKey) -> Author

Converts to this type from the input type.
source§

impl FromStr for Author

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Author, <Author as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Serialize for Author

source§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where diff --git a/pr/2574/docs/iroh/docs/struct.AuthorId.html b/pr/2574/docs/iroh/docs/struct.AuthorId.html index f7a0d7d59c..2d6a83fae2 100644 --- a/pr/2574/docs/iroh/docs/struct.AuthorId.html +++ b/pr/2574/docs/iroh/docs/struct.AuthorId.html @@ -11,7 +11,7 @@

Trait Implementations§

source§

impl AsRef<[u8]> for AuthorId

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<[u8; 32]> for AuthorId

source§

fn as_ref(&self) -> &[u8; 32]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for AuthorId

source§

fn clone(&self) -> AuthorId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AuthorId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for AuthorId

source§

fn default() -> AuthorId

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for AuthorId

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<AuthorId, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for AuthorId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&[u8; 32]> for AuthorId

source§

fn from(value: &[u8; 32]) -> AuthorId

Converts to this type from the input type.
source§

impl From<&AuthorPublicKey> for AuthorId

source§

fn from(value: &AuthorPublicKey) -> AuthorId

Converts to this type from the input type.
source§

impl From<[u8; 32]> for AuthorId

source§

fn from(value: [u8; 32]) -> AuthorId

Converts to this type from the input type.
source§

impl From<Author> for AuthorId

source§

fn from(value: Author) -> AuthorId

Converts to this type from the input type.
source§

impl From<AuthorId> for [u8; 32]

source§

fn from(value: AuthorId) -> [u8; 32]

Converts to this type from the input type.
source§

impl From<AuthorId> for AuthorFilter

source§

fn from(value: AuthorId) -> AuthorFilter

Converts to this type from the input type.
source§

impl From<AuthorPublicKey> for AuthorId

source§

fn from(value: AuthorPublicKey) -> AuthorId

Converts to this type from the input type.
source§

impl FromStr for AuthorId

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<AuthorId, <AuthorId as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for AuthorId

source§

fn hash<__H>(&self, state: &mut __H)
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for AuthorId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&[u8; 32]> for AuthorId

source§

fn from(value: &[u8; 32]) -> AuthorId

Converts to this type from the input type.
source§

impl From<&AuthorPublicKey> for AuthorId

source§

fn from(value: &AuthorPublicKey) -> AuthorId

Converts to this type from the input type.
source§

impl From<[u8; 32]> for AuthorId

source§

fn from(value: [u8; 32]) -> AuthorId

Converts to this type from the input type.
source§

impl From<Author> for AuthorId

source§

fn from(value: Author) -> AuthorId

Converts to this type from the input type.
source§

impl From<AuthorId> for [u8; 32]

source§

fn from(value: AuthorId) -> [u8; 32]

Converts to this type from the input type.
source§

impl From<AuthorId> for AuthorFilter

source§

fn from(value: AuthorId) -> AuthorFilter

Converts to this type from the input type.
source§

impl From<AuthorPublicKey> for AuthorId

source§

fn from(value: AuthorPublicKey) -> AuthorId

Converts to this type from the input type.
source§

impl FromStr for AuthorId

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<AuthorId, <AuthorId as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for AuthorId

source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for AuthorId

source§

fn cmp(&self, other: &AuthorId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where diff --git a/pr/2574/docs/iroh/docs/struct.AuthorPublicKey.html b/pr/2574/docs/iroh/docs/struct.AuthorPublicKey.html index 34f31be682..6110bd7795 100644 --- a/pr/2574/docs/iroh/docs/struct.AuthorPublicKey.html +++ b/pr/2574/docs/iroh/docs/struct.AuthorPublicKey.html @@ -11,7 +11,7 @@

Trait Implementations§

source§

impl Clone for AuthorPublicKey

source§

fn clone(&self) -> AuthorPublicKey

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AuthorPublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for AuthorPublicKey

source§

fn default() -> AuthorPublicKey

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for AuthorPublicKey

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<AuthorPublicKey, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for AuthorPublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&Author> for AuthorPublicKey

source§

fn from(value: &Author) -> AuthorPublicKey

Converts to this type from the input type.
source§

impl From<&AuthorPublicKey> for AuthorId

source§

fn from(value: &AuthorPublicKey) -> AuthorId

Converts to this type from the input type.
source§

impl From<Author> for AuthorPublicKey

source§

fn from(value: Author) -> AuthorPublicKey

Converts to this type from the input type.
source§

impl From<AuthorPublicKey> for AuthorId

source§

fn from(value: AuthorPublicKey) -> AuthorId

Converts to this type from the input type.
source§

impl From<VerifyingKey> for AuthorPublicKey

source§

fn from(value: VerifyingKey) -> AuthorPublicKey

Converts to this type from the input type.
source§

impl FromStr for AuthorPublicKey

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str( + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for AuthorPublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&Author> for AuthorPublicKey

source§

fn from(value: &Author) -> AuthorPublicKey

Converts to this type from the input type.
source§

impl From<&AuthorPublicKey> for AuthorId

source§

fn from(value: &AuthorPublicKey) -> AuthorId

Converts to this type from the input type.
source§

impl From<Author> for AuthorPublicKey

source§

fn from(value: Author) -> AuthorPublicKey

Converts to this type from the input type.
source§

impl From<AuthorPublicKey> for AuthorId

source§

fn from(value: AuthorPublicKey) -> AuthorId

Converts to this type from the input type.
source§

impl From<VerifyingKey> for AuthorPublicKey

source§

fn from(value: VerifyingKey) -> AuthorPublicKey

Converts to this type from the input type.
source§

impl FromStr for AuthorPublicKey

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str( s: &str ) -> Result<AuthorPublicKey, <AuthorPublicKey as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for AuthorPublicKey

source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where diff --git a/pr/2574/docs/iroh/docs/struct.NamespaceId.html b/pr/2574/docs/iroh/docs/struct.NamespaceId.html index 62e47070b0..df3c34f1ea 100644 --- a/pr/2574/docs/iroh/docs/struct.NamespaceId.html +++ b/pr/2574/docs/iroh/docs/struct.NamespaceId.html @@ -8,10 +8,10 @@

Fails if the bytes of this NamespaceId are not a valid [ed25519_dalek] curve point.

source

pub fn fmt_short(&self) -> String

Convert to a base32 string limited to the first 10 bytes for a friendly string representation of the key.

-

Trait Implementations§

source§

impl AsRef<[u8]> for NamespaceId

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<[u8; 32]> for NamespaceId

source§

fn as_ref(&self) -> &[u8; 32]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for NamespaceId

source§

fn clone(&self) -> NamespaceId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for NamespaceId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for NamespaceId

source§

fn default() -> NamespaceId

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for NamespaceId

Trait Implementations§

source§

impl AsRef<[u8]> for NamespaceId

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<[u8; 32]> for NamespaceId

source§

fn as_ref(&self) -> &[u8; 32]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for NamespaceId

source§

fn clone(&self) -> NamespaceId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for NamespaceId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for NamespaceId

source§

fn default() -> NamespaceId

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for NamespaceId

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<NamespaceId, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for NamespaceId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&[u8; 32]> for NamespaceId

source§

fn from(value: &[u8; 32]) -> NamespaceId

Converts to this type from the input type.
source§

impl From<&NamespacePublicKey> for NamespaceId

source§

fn from(value: &NamespacePublicKey) -> NamespaceId

Converts to this type from the input type.
source§

impl From<[u8; 32]> for NamespaceId

source§

fn from(value: [u8; 32]) -> NamespaceId

Converts to this type from the input type.
source§

impl From<NamespaceId> for [u8; 32]

source§

fn from(value: NamespaceId) -> [u8; 32]

Converts to this type from the input type.
source§

impl From<NamespaceId> for Capability

source§

fn from(value: NamespaceId) -> Capability

Converts to this type from the input type.
source§

impl From<NamespacePublicKey> for NamespaceId

source§

fn from(value: NamespacePublicKey) -> NamespaceId

Converts to this type from the input type.
source§

impl From<NamespaceSecret> for NamespaceId

source§

fn from(value: NamespaceSecret) -> NamespaceId

Converts to this type from the input type.
source§

impl FromStr for NamespaceId

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<NamespaceId, <NamespaceId as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for NamespaceId

source§

fn hash<__H>(&self, state: &mut __H)
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for NamespaceId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&[u8; 32]> for NamespaceId

source§

fn from(value: &[u8; 32]) -> NamespaceId

Converts to this type from the input type.
source§

impl From<&NamespacePublicKey> for NamespaceId

source§

fn from(value: &NamespacePublicKey) -> NamespaceId

Converts to this type from the input type.
source§

impl From<[u8; 32]> for NamespaceId

source§

fn from(value: [u8; 32]) -> NamespaceId

Converts to this type from the input type.
source§

impl From<NamespaceId> for [u8; 32]

source§

fn from(value: NamespaceId) -> [u8; 32]

Converts to this type from the input type.
source§

impl From<NamespaceId> for Capability

source§

fn from(value: NamespaceId) -> Capability

Converts to this type from the input type.
source§

impl From<NamespacePublicKey> for NamespaceId

source§

fn from(value: NamespacePublicKey) -> NamespaceId

Converts to this type from the input type.
source§

impl From<NamespaceSecret> for NamespaceId

source§

fn from(value: NamespaceSecret) -> NamespaceId

Converts to this type from the input type.
source§

impl FromStr for NamespaceId

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<NamespaceId, <NamespaceId as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for NamespaceId

source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for NamespaceId

source§

fn cmp(&self, other: &NamespaceId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where diff --git a/pr/2574/docs/iroh/docs/struct.NamespacePublicKey.html b/pr/2574/docs/iroh/docs/struct.NamespacePublicKey.html index 97a356587a..b86233ac1a 100644 --- a/pr/2574/docs/iroh/docs/struct.NamespacePublicKey.html +++ b/pr/2574/docs/iroh/docs/struct.NamespacePublicKey.html @@ -10,7 +10,7 @@

Trait Implementations§

source§

impl Clone for NamespacePublicKey

source§

fn clone(&self) -> NamespacePublicKey

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for NamespacePublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for NamespacePublicKey

source§

fn default() -> NamespacePublicKey

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for NamespacePublicKey

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<NamespacePublicKey, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for NamespacePublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&NamespacePublicKey> for NamespaceId

source§

fn from(value: &NamespacePublicKey) -> NamespaceId

Converts to this type from the input type.
source§

impl From<&NamespaceSecret> for NamespacePublicKey

source§

fn from(value: &NamespaceSecret) -> NamespacePublicKey

Converts to this type from the input type.
source§

impl From<NamespacePublicKey> for NamespaceId

source§

fn from(value: NamespacePublicKey) -> NamespaceId

Converts to this type from the input type.
source§

impl From<NamespaceSecret> for NamespacePublicKey

source§

fn from(value: NamespaceSecret) -> NamespacePublicKey

Converts to this type from the input type.
source§

impl From<VerifyingKey> for NamespacePublicKey

source§

fn from(value: VerifyingKey) -> NamespacePublicKey

Converts to this type from the input type.
source§

impl FromStr for NamespacePublicKey

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str( + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for NamespacePublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&NamespacePublicKey> for NamespaceId

source§

fn from(value: &NamespacePublicKey) -> NamespaceId

Converts to this type from the input type.
source§

impl From<&NamespaceSecret> for NamespacePublicKey

source§

fn from(value: &NamespaceSecret) -> NamespacePublicKey

Converts to this type from the input type.
source§

impl From<NamespacePublicKey> for NamespaceId

source§

fn from(value: NamespacePublicKey) -> NamespaceId

Converts to this type from the input type.
source§

impl From<NamespaceSecret> for NamespacePublicKey

source§

fn from(value: NamespaceSecret) -> NamespacePublicKey

Converts to this type from the input type.
source§

impl From<VerifyingKey> for NamespacePublicKey

source§

fn from(value: VerifyingKey) -> NamespacePublicKey

Converts to this type from the input type.
source§

impl FromStr for NamespacePublicKey

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str( s: &str ) -> Result<NamespacePublicKey, <NamespacePublicKey as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for NamespacePublicKey

source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where diff --git a/pr/2574/docs/iroh/docs/struct.NamespaceSecret.html b/pr/2574/docs/iroh/docs/struct.NamespaceSecret.html index 6b12e511a3..4117c1ff9d 100644 --- a/pr/2574/docs/iroh/docs/struct.NamespaceSecret.html +++ b/pr/2574/docs/iroh/docs/struct.NamespaceSecret.html @@ -12,7 +12,7 @@

Trait Implementations§

source§

impl Clone for NamespaceSecret

source§

fn clone(&self) -> NamespaceSecret

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for NamespaceSecret

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for NamespaceSecret

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<NamespaceSecret, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for NamespaceSecret

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&NamespaceSecret> for NamespacePublicKey

source§

fn from(value: &NamespaceSecret) -> NamespacePublicKey

Converts to this type from the input type.
source§

impl From<NamespaceSecret> for Capability

source§

fn from(value: NamespaceSecret) -> Capability

Converts to this type from the input type.
source§

impl From<NamespaceSecret> for NamespaceId

source§

fn from(value: NamespaceSecret) -> NamespaceId

Converts to this type from the input type.
source§

impl From<NamespaceSecret> for NamespacePublicKey

source§

fn from(value: NamespaceSecret) -> NamespacePublicKey

Converts to this type from the input type.
source§

impl From<SigningKey> for NamespaceSecret

source§

fn from(signing_key: SigningKey) -> NamespaceSecret

Converts to this type from the input type.
source§

impl FromStr for NamespaceSecret

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str( + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for NamespaceSecret

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&NamespaceSecret> for NamespacePublicKey

source§

fn from(value: &NamespaceSecret) -> NamespacePublicKey

Converts to this type from the input type.
source§

impl From<NamespaceSecret> for Capability

source§

fn from(value: NamespaceSecret) -> Capability

Converts to this type from the input type.
source§

impl From<NamespaceSecret> for NamespaceId

source§

fn from(value: NamespaceSecret) -> NamespaceId

Converts to this type from the input type.
source§

impl From<NamespaceSecret> for NamespacePublicKey

source§

fn from(value: NamespaceSecret) -> NamespacePublicKey

Converts to this type from the input type.
source§

impl From<SigningKey> for NamespaceSecret

source§

fn from(signing_key: SigningKey) -> NamespaceSecret

Converts to this type from the input type.
source§

impl FromStr for NamespaceSecret

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str( s: &str ) -> Result<NamespaceSecret, <NamespaceSecret as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Serialize for NamespaceSecret

source§

fn serialize<__S>( &self, diff --git a/pr/2574/docs/iroh/docs/struct.Replica.html b/pr/2574/docs/iroh/docs/struct.Replica.html index 31a6e97151..e4521162a8 100644 --- a/pr/2574/docs/iroh/docs/struct.Replica.html +++ b/pr/2574/docs/iroh/docs/struct.Replica.html @@ -56,7 +56,6 @@

source

pub fn secret_key(&self) -> Result<&NamespaceSecret, ReadOnly>

Get the byte representation of the NamespaceSecret key for this replica. Will fail if the replica is read only

Trait Implementations§

source§

impl<'a, I> Debug for Replica<'a, I>
where - StoreInstance<'a>: Debug, I: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, I> Freeze for Replica<'a, I>
where I: Freeze,

§

impl<'a, I = Box<ReplicaInfo>> !RefUnwindSafe for Replica<'a, I>

§

impl<'a, I> Send for Replica<'a, I>
where I: Send,

§

impl<'a, I> Sync for Replica<'a, I>
where diff --git a/pr/2574/docs/iroh/docs/struct.ReplicaInfo.html b/pr/2574/docs/iroh/docs/struct.ReplicaInfo.html index 791aab972d..c6d5d4d5e9 100644 --- a/pr/2574/docs/iroh/docs/struct.ReplicaInfo.html +++ b/pr/2574/docs/iroh/docs/struct.ReplicaInfo.html @@ -26,10 +26,7 @@

The capability must refer to the the same namespace, otherwise an error will be returned.

This will upgrade the replica’s capability when passing a Capability::Write. It is a no-op if capability is a Capability::Read`.

-

Trait Implementations§

source§

impl Debug for ReplicaInfo
where - Capability: Debug, - Subscribers: Debug, - bool: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for ReplicaInfo

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/docs/sync/enum.InsertError.html b/pr/2574/docs/iroh/docs/sync/enum.InsertError.html index 35b4bc1aa0..f7f7de92a3 100644 --- a/pr/2574/docs/iroh/docs/sync/enum.InsertError.html +++ b/pr/2574/docs/iroh/docs/sync/enum.InsertError.html @@ -12,9 +12,7 @@
§

EntryIsEmpty

Attempted to insert an empty entry.

§

ReadOnly

Replica is read only.

§

Closed

The replica is closed, no operations may be performed.

-

Trait Implementations§

source§

impl Debug for InsertError

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for InsertError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for InsertError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ReadOnly> for InsertError

source§

fn from(value: ReadOnly) -> InsertError

Converts to this type from the input type.
source§

impl From<ValidationFailure> for InsertError

source§

fn from(source: ValidationFailure) -> InsertError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for InsertError

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for InsertError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for InsertError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ReadOnly> for InsertError

source§

fn from(value: ReadOnly) -> InsertError

Converts to this type from the input type.
source§

impl From<ValidationFailure> for InsertError

source§

fn from(source: ValidationFailure) -> InsertError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/docs/sync/struct.Replica.html b/pr/2574/docs/iroh/docs/sync/struct.Replica.html index fef2056f51..06741e50e8 100644 --- a/pr/2574/docs/iroh/docs/sync/struct.Replica.html +++ b/pr/2574/docs/iroh/docs/sync/struct.Replica.html @@ -56,7 +56,6 @@

source

pub fn secret_key(&self) -> Result<&NamespaceSecret, ReadOnly>

Get the byte representation of the NamespaceSecret key for this replica. Will fail if the replica is read only

Trait Implementations§

source§

impl<'a, I> Debug for Replica<'a, I>
where - StoreInstance<'a>: Debug, I: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, I> Freeze for Replica<'a, I>
where I: Freeze,

§

impl<'a, I = Box<ReplicaInfo>> !RefUnwindSafe for Replica<'a, I>

§

impl<'a, I> Send for Replica<'a, I>
where I: Send,

§

impl<'a, I> Sync for Replica<'a, I>
where diff --git a/pr/2574/docs/iroh/docs/sync/struct.ReplicaInfo.html b/pr/2574/docs/iroh/docs/sync/struct.ReplicaInfo.html index f0edd60b45..1ee641b5db 100644 --- a/pr/2574/docs/iroh/docs/sync/struct.ReplicaInfo.html +++ b/pr/2574/docs/iroh/docs/sync/struct.ReplicaInfo.html @@ -26,10 +26,7 @@

The capability must refer to the the same namespace, otherwise an error will be returned.

This will upgrade the replica’s capability when passing a Capability::Write. It is a no-op if capability is a Capability::Read`.

-

Trait Implementations§

source§

impl Debug for ReplicaInfo
where - Capability: Debug, - Subscribers: Debug, - bool: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for ReplicaInfo

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/gossip/proto/enum.Command.html b/pr/2574/docs/iroh/gossip/proto/enum.Command.html index 29d9459e5e..cea8a147df 100644 --- a/pr/2574/docs/iroh/gossip/proto/enum.Command.html +++ b/pr/2574/docs/iroh/gossip/proto/enum.Command.html @@ -10,8 +10,7 @@
§

Quit

Leave this topic and drop all state.

Trait Implementations§

source§

impl<PI> Clone for Command<PI>
where PI: Clone,

source§

fn clone(&self) -> Command<PI>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<PI> Debug for Command<PI>
where - Vec<PI>: Debug, - Scope: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<PI> !Freeze for Command<PI>

§

impl<PI> RefUnwindSafe for Command<PI>
where + Vec<PI>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<PI> !Freeze for Command<PI>

§

impl<PI> RefUnwindSafe for Command<PI>
where PI: RefUnwindSafe,

§

impl<PI> Send for Command<PI>
where PI: Send,

§

impl<PI> Sync for Command<PI>
where PI: Sync,

§

impl<PI> Unpin for Command<PI>
where diff --git a/pr/2574/docs/iroh/gossip/proto/enum.Event.html b/pr/2574/docs/iroh/gossip/proto/enum.Event.html index 0522a84f6a..4841b69f94 100644 --- a/pr/2574/docs/iroh/gossip/proto/enum.Event.html +++ b/pr/2574/docs/iroh/gossip/proto/enum.Event.html @@ -12,7 +12,7 @@ PI: Deserialize<'de>,

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<Event<PI>, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<PI> From<Event<PI>> for Event<PI>

source§

fn from(value: Event<PI>) -> Event<PI>

Converts to this type from the input type.
source§

impl<PI> From<Event<PI>> for Event<PI>

source§

fn from(value: Event<PI>) -> Event<PI>

Converts to this type from the input type.
source§

impl From<Event<PublicKey>> for GossipEvent

source§

fn from(event: Event<PublicKey>) -> GossipEvent

Converts to this type from the input type.
source§

impl<PI> Ord for Event<PI>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<PI> From<Event<PI>> for Event<PI>

source§

fn from(value: Event<PI>) -> Event<PI>

Converts to this type from the input type.
source§

impl<PI> From<Event<PI>> for Event<PI>

source§

fn from(value: Event<PI>) -> Event<PI>

Converts to this type from the input type.
source§

impl From<Event<PublicKey>> for GossipEvent

source§

fn from(event: Event<PublicKey>) -> GossipEvent

Converts to this type from the input type.
source§

impl<PI> Ord for Event<PI>
where PI: Ord,

source§

fn cmp(&self, other: &Event<PI>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where diff --git a/pr/2574/docs/iroh/gossip/proto/state/struct.TopicId.html b/pr/2574/docs/iroh/gossip/proto/state/struct.TopicId.html index 789fe49ec3..ca758b2651 100644 --- a/pr/2574/docs/iroh/gossip/proto/state/struct.TopicId.html +++ b/pr/2574/docs/iroh/gossip/proto/state/struct.TopicId.html @@ -1,7 +1,7 @@ TopicId in iroh::gossip::proto::state - Rust

Struct iroh::gossip::proto::state::TopicId

source ·
pub struct TopicId(/* private fields */);
Expand description

The identifier for a topic

Implementations§

source§

impl TopicId

source

pub const fn from_bytes(bytes: [u8; 32]) -> TopicId

Create from a byte array.

source

pub fn as_bytes(&self) -> &[u8; 32]

Get as byte slice.

-

Trait Implementations§

source§

impl AsRef<[u8]> for TopicId

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<[u8; 32]> for TopicId

source§

fn as_ref(&self) -> &[u8; 32]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for TopicId

source§

fn clone(&self) -> TopicId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for TopicId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for TopicId

Trait Implementations§

source§

impl AsRef<[u8]> for TopicId

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<[u8; 32]> for TopicId

source§

fn as_ref(&self) -> &[u8; 32]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for TopicId

source§

fn clone(&self) -> TopicId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for TopicId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for TopicId

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<TopicId, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for TopicId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<T> From<T> for TopicId
where diff --git a/pr/2574/docs/iroh/gossip/proto/struct.TopicId.html b/pr/2574/docs/iroh/gossip/proto/struct.TopicId.html index f5d33d9a97..9d6cba392c 100644 --- a/pr/2574/docs/iroh/gossip/proto/struct.TopicId.html +++ b/pr/2574/docs/iroh/gossip/proto/struct.TopicId.html @@ -1,7 +1,7 @@ TopicId in iroh::gossip::proto - Rust

Struct iroh::gossip::proto::TopicId

source ·
pub struct TopicId(/* private fields */);
Expand description

The identifier for a topic

Implementations§

source§

impl TopicId

source

pub const fn from_bytes(bytes: [u8; 32]) -> TopicId

Create from a byte array.

source

pub fn as_bytes(&self) -> &[u8; 32]

Get as byte slice.

-

Trait Implementations§

source§

impl AsRef<[u8]> for TopicId

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<[u8; 32]> for TopicId

source§

fn as_ref(&self) -> &[u8; 32]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for TopicId

source§

fn clone(&self) -> TopicId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for TopicId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for TopicId

Trait Implementations§

source§

impl AsRef<[u8]> for TopicId

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<[u8; 32]> for TopicId

source§

fn as_ref(&self) -> &[u8; 32]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for TopicId

source§

fn clone(&self) -> TopicId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for TopicId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for TopicId

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<TopicId, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for TopicId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<T> From<T> for TopicId
where diff --git a/pr/2574/docs/iroh/gossip/proto/topic/enum.Command.html b/pr/2574/docs/iroh/gossip/proto/topic/enum.Command.html index 2cfe06ae67..42200d71db 100644 --- a/pr/2574/docs/iroh/gossip/proto/topic/enum.Command.html +++ b/pr/2574/docs/iroh/gossip/proto/topic/enum.Command.html @@ -10,8 +10,7 @@
§

Quit

Leave this topic and drop all state.

Trait Implementations§

source§

impl<PI> Clone for Command<PI>
where PI: Clone,

source§

fn clone(&self) -> Command<PI>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<PI> Debug for Command<PI>
where - Vec<PI>: Debug, - Scope: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<PI> !Freeze for Command<PI>

§

impl<PI> RefUnwindSafe for Command<PI>
where + Vec<PI>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<PI> !Freeze for Command<PI>

§

impl<PI> RefUnwindSafe for Command<PI>
where PI: RefUnwindSafe,

§

impl<PI> Send for Command<PI>
where PI: Send,

§

impl<PI> Sync for Command<PI>
where PI: Sync,

§

impl<PI> Unpin for Command<PI>
where diff --git a/pr/2574/docs/iroh/gossip/proto/topic/enum.Event.html b/pr/2574/docs/iroh/gossip/proto/topic/enum.Event.html index 1430dcd701..b7c30048ee 100644 --- a/pr/2574/docs/iroh/gossip/proto/topic/enum.Event.html +++ b/pr/2574/docs/iroh/gossip/proto/topic/enum.Event.html @@ -12,7 +12,7 @@ PI: Deserialize<'de>,

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<Event<PI>, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<PI> From<Event<PI>> for Event<PI>

source§

fn from(value: Event<PI>) -> Event<PI>

Converts to this type from the input type.
source§

impl<PI> From<Event<PI>> for Event<PI>

source§

fn from(value: Event<PI>) -> Event<PI>

Converts to this type from the input type.
source§

impl From<Event<PublicKey>> for GossipEvent

source§

fn from(event: Event<PublicKey>) -> GossipEvent

Converts to this type from the input type.
source§

impl<PI> Ord for Event<PI>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<PI> From<Event<PI>> for Event<PI>

source§

fn from(value: Event<PI>) -> Event<PI>

Converts to this type from the input type.
source§

impl<PI> From<Event<PI>> for Event<PI>

source§

fn from(value: Event<PI>) -> Event<PI>

Converts to this type from the input type.
source§

impl From<Event<PublicKey>> for GossipEvent

source§

fn from(event: Event<PublicKey>) -> GossipEvent

Converts to this type from the input type.
source§

impl<PI> Ord for Event<PI>
where PI: Ord,

source§

fn cmp(&self, other: &Event<PI>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where diff --git a/pr/2574/docs/iroh/gossip/proto/topic/enum.OutEvent.html b/pr/2574/docs/iroh/gossip/proto/topic/enum.OutEvent.html index 0a5e4658cf..54cc32f60b 100644 --- a/pr/2574/docs/iroh/gossip/proto/topic/enum.OutEvent.html +++ b/pr/2574/docs/iroh/gossip/proto/topic/enum.OutEvent.html @@ -12,7 +12,7 @@
§

DisconnectPeer(PI)

Close the connection to a peer on the network level.

§

PeerData(PI, PeerData)

Emitted when new PeerData was received for a peer.

Trait Implementations§

source§

impl<PI> Debug for OutEvent<PI>
where - PI: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<PI> From<OutEvent<PI>> for OutEvent<PI>

source§

fn from(event: OutEvent<PI>) -> OutEvent<PI>

Converts to this type from the input type.
source§

impl<PI> From<OutEvent<PI>> for OutEvent<PI>

source§

fn from(event: OutEvent<PI>) -> OutEvent<PI>

Converts to this type from the input type.
source§

impl<PI> PartialEq for OutEvent<PI>
where + PI: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<PI> From<OutEvent<PI>> for OutEvent<PI>

source§

fn from(event: OutEvent<PI>) -> OutEvent<PI>

Converts to this type from the input type.
source§

impl<PI> From<OutEvent<PI>> for OutEvent<PI>

source§

fn from(event: OutEvent<PI>) -> OutEvent<PI>

Converts to this type from the input type.
source§

impl<PI> PartialEq for OutEvent<PI>
where PI: PartialEq,

source§

fn eq(&self, other: &OutEvent<PI>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<PI> Eq for OutEvent<PI>
where diff --git a/pr/2574/docs/iroh/gossip/proto/topic/enum.Timer.html b/pr/2574/docs/iroh/gossip/proto/topic/enum.Timer.html index e0174e875e..f3561f1688 100644 --- a/pr/2574/docs/iroh/gossip/proto/topic/enum.Timer.html +++ b/pr/2574/docs/iroh/gossip/proto/topic/enum.Timer.html @@ -8,7 +8,7 @@
§

Gossip(Timer)

A timer for the gossip layer

Trait Implementations§

source§

impl<PI> Clone for Timer<PI>
where PI: Clone,

source§

fn clone(&self) -> Timer<PI>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<PI> Debug for Timer<PI>
where - PI: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<PI> From<Timer<PI>> for Timer<PI>

source§

fn from(value: Timer<PI>) -> Timer<PI>

Converts to this type from the input type.
source§

impl<PI> From<Timer> for Timer<PI>

source§

fn from(value: Timer) -> Timer<PI>

Converts to this type from the input type.
source§

impl<PI> PartialEq for Timer<PI>
where + PI: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<PI> From<Timer<PI>> for Timer<PI>

source§

fn from(value: Timer<PI>) -> Timer<PI>

Converts to this type from the input type.
source§

impl<PI> From<Timer> for Timer<PI>

source§

fn from(value: Timer) -> Timer<PI>

Converts to this type from the input type.
source§

impl<PI> PartialEq for Timer<PI>
where PI: PartialEq,

source§

fn eq(&self, other: &Timer<PI>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<PI> Eq for Timer<PI>
where diff --git a/pr/2574/docs/iroh/net/dialer/struct.Dialer.html b/pr/2574/docs/iroh/net/dialer/struct.Dialer.html index 0a052627d3..1473c40558 100644 --- a/pr/2574/docs/iroh/net/dialer/struct.Dialer.html +++ b/pr/2574/docs/iroh/net/dialer/struct.Dialer.html @@ -11,7 +11,7 @@

source

pub fn is_pending(&self, node: PublicKey) -> bool

Checks if a node is currently being dialed.

source

pub async fn next_conn(&mut self) -> (PublicKey, Result<Connection, Error>)

Waits for the next dial operation to complete.

source

pub fn pending_count(&self) -> usize

Number of pending connections to be opened.

-

Trait Implementations§

source§

impl Debug for Dialer

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Dialer for Dialer

§

type Connection = Connection

Type of connections returned by the Dialer.
source§

fn queue_dial(&mut self, node_id: PublicKey)

Dial a node.
source§

fn pending_count(&self) -> usize

Get the number of dialing nodes.
source§

fn is_pending(&self, node: PublicKey) -> bool

Check if a node is being dialed.
source§

impl Stream for Dialer

§

type Item = (PublicKey, Result<Connection, Error>)

Values yielded by the stream.
source§

fn poll_next( +

Trait Implementations§

source§

impl Debug for Dialer

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Dialer for Dialer

§

type Connection = Connection

Type of connections returned by the Dialer.
§

fn queue_dial(&mut self, node_id: PublicKey)

Dial a node.
§

fn pending_count(&self) -> usize

Get the number of dialing nodes.
§

fn is_pending(&self, node: PublicKey) -> bool

Check if a node is being dialed.
source§

impl Stream for Dialer

§

type Item = (PublicKey, Result<Connection, Error>)

Values yielded by the stream.
source§

fn poll_next( self: Pin<&mut Dialer>, cx: &mut Context<'_> ) -> Poll<Option<<Dialer as Stream>::Item>>

Attempt to pull out the next value of this stream, registering the diff --git a/pr/2574/docs/iroh/net/discovery/pkarr/struct.PkarrPublisher.html b/pr/2574/docs/iroh/net/discovery/pkarr/struct.PkarrPublisher.html index 616e6e0ec3..3ed703fc80 100644 --- a/pr/2574/docs/iroh/net/discovery/pkarr/struct.PkarrPublisher.html +++ b/pr/2574/docs/iroh/net/discovery/pkarr/struct.PkarrPublisher.html @@ -15,10 +15,7 @@ uses N0_DNS_PKARR_RELAY_STAGING.

source

pub fn update_addr_info(&self, info: &AddrInfo)

Publish AddrInfo about this node to a pkarr relay.

This is a nonblocking function, the actual update is performed in the background.

-

Trait Implementations§

source§

impl Clone for PkarrPublisher

source§

fn clone(&self) -> PkarrPublisher

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PkarrPublisher
where - PublicKey: Debug, - Watchable<Option<NodeInfo>>: Debug, - Arc<JoinHandle<()>>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Discovery for PkarrPublisher

source§

fn publish(&self, info: &AddrInfo)

Publishes the given AddrInfo to the discovery mechanism. Read more
source§

fn resolve( +

Trait Implementations§

source§

impl Clone for PkarrPublisher

source§

fn clone(&self) -> PkarrPublisher

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PkarrPublisher

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Discovery for PkarrPublisher

source§

fn publish(&self, info: &AddrInfo)

Publishes the given AddrInfo to the discovery mechanism. Read more
source§

fn resolve( &self, _endpoint: Endpoint, _node_id: PublicKey diff --git a/pr/2574/docs/iroh/net/discovery/pkarr/struct.PkarrResolver.html b/pr/2574/docs/iroh/net/discovery/pkarr/struct.PkarrResolver.html index b8a615e5b4..81fe5c5829 100644 --- a/pr/2574/docs/iroh/net/discovery/pkarr/struct.PkarrResolver.html +++ b/pr/2574/docs/iroh/net/discovery/pkarr/struct.PkarrResolver.html @@ -7,8 +7,7 @@

Implementations§

source§

impl PkarrResolver

source

pub fn new(pkarr_relay: Url) -> PkarrResolver

Create a new config with a pkarr relay URL.

source

pub fn n0_dns() -> PkarrResolver

Create a pkarr resolver which uses the N0_DNS_PKARR_RELAY_PROD pkarr relay and in testing uses N0_DNS_PKARR_RELAY_STAGING.

-

Trait Implementations§

source§

impl Clone for PkarrResolver

source§

fn clone(&self) -> PkarrResolver

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PkarrResolver

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Discovery for PkarrResolver

Trait Implementations§

source§

impl Clone for PkarrResolver

source§

fn clone(&self) -> PkarrResolver

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PkarrResolver

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Discovery for PkarrResolver

source§

fn resolve( &self, _ep: Endpoint, node_id: PublicKey diff --git a/pr/2574/docs/iroh/net/dns/node_info/struct.NodeInfo.html b/pr/2574/docs/iroh/net/dns/node_info/struct.NodeInfo.html index cd819df902..7465836ab3 100644 --- a/pr/2574/docs/iroh/net/dns/node_info/struct.NodeInfo.html +++ b/pr/2574/docs/iroh/net/dns/node_info/struct.NodeInfo.html @@ -26,9 +26,7 @@ origin: &str, ttl: u32 ) -> Result<impl Iterator<Item = Record> + 'static, Error>

Converts into a [hickory_proto::rr::Record] DNS record.

-

Trait Implementations§

source§

impl Clone for NodeInfo

source§

fn clone(&self) -> NodeInfo

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for NodeInfo

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&NodeInfo> for TxtAttrs<IrohAttr>

source§

fn from(info: &NodeInfo) -> TxtAttrs<IrohAttr>

Converts to this type from the input type.
source§

impl From<&TxtAttrs<IrohAttr>> for NodeInfo

source§

fn from(attrs: &TxtAttrs<IrohAttr>) -> NodeInfo

Converts to this type from the input type.
source§

impl From<NodeInfo> for AddrInfo

source§

fn from(value: NodeInfo) -> AddrInfo

Converts to this type from the input type.
source§

impl From<NodeInfo> for NodeAddr

source§

fn from(value: NodeInfo) -> NodeAddr

Converts to this type from the input type.
source§

impl From<TxtAttrs<IrohAttr>> for NodeInfo

source§

fn from(attrs: TxtAttrs<IrohAttr>) -> NodeInfo

Converts to this type from the input type.
source§

impl PartialEq for NodeInfo

source§

fn eq(&self, other: &NodeInfo) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for NodeInfo

source§

fn clone(&self) -> NodeInfo

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for NodeInfo

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&NodeInfo> for TxtAttrs<IrohAttr>

source§

fn from(info: &NodeInfo) -> TxtAttrs<IrohAttr>

Converts to this type from the input type.
source§

impl From<&TxtAttrs<IrohAttr>> for NodeInfo

source§

fn from(attrs: &TxtAttrs<IrohAttr>) -> NodeInfo

Converts to this type from the input type.
source§

impl From<NodeInfo> for AddrInfo

source§

fn from(value: NodeInfo) -> AddrInfo

Converts to this type from the input type.
source§

impl From<NodeInfo> for NodeAddr

source§

fn from(value: NodeInfo) -> NodeAddr

Converts to this type from the input type.
source§

impl From<TxtAttrs<IrohAttr>> for NodeInfo

source§

fn from(attrs: TxtAttrs<IrohAttr>) -> NodeInfo

Converts to this type from the input type.
source§

impl PartialEq for NodeInfo

source§

fn eq(&self, other: &NodeInfo) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for NodeInfo

source§

impl StructuralPartialEq for NodeInfo

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/dns/node_info/struct.TxtAttrs.html b/pr/2574/docs/iroh/net/dns/node_info/struct.TxtAttrs.html index 1ae2d15de5..188979f975 100644 --- a/pr/2574/docs/iroh/net/dns/node_info/struct.TxtAttrs.html +++ b/pr/2574/docs/iroh/net/dns/node_info/struct.TxtAttrs.html @@ -38,7 +38,7 @@ ) -> Result<SignedPacket, Error>

Creates a [pkarr::SignedPacket]

This constructs a DNS packet and signs it with a SecretKey.

Trait Implementations§

source§

impl<T> Debug for TxtAttrs<T>
where - T: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&NodeInfo> for TxtAttrs<IrohAttr>

source§

fn from(info: &NodeInfo) -> TxtAttrs<IrohAttr>

Converts to this type from the input type.
source§

impl From<&TxtAttrs<IrohAttr>> for NodeInfo

source§

fn from(attrs: &TxtAttrs<IrohAttr>) -> NodeInfo

Converts to this type from the input type.
source§

impl From<TxtAttrs<IrohAttr>> for NodeInfo

source§

fn from(attrs: TxtAttrs<IrohAttr>) -> NodeInfo

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<T> Freeze for TxtAttrs<T>

§

impl<T> RefUnwindSafe for TxtAttrs<T>
where + T: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&NodeInfo> for TxtAttrs<IrohAttr>

source§

fn from(info: &NodeInfo) -> TxtAttrs<IrohAttr>

Converts to this type from the input type.
source§

impl From<&TxtAttrs<IrohAttr>> for NodeInfo

source§

fn from(attrs: &TxtAttrs<IrohAttr>) -> NodeInfo

Converts to this type from the input type.
source§

impl From<TxtAttrs<IrohAttr>> for NodeInfo

source§

fn from(attrs: TxtAttrs<IrohAttr>) -> NodeInfo

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<T> Freeze for TxtAttrs<T>

§

impl<T> RefUnwindSafe for TxtAttrs<T>
where T: RefUnwindSafe,

§

impl<T> Send for TxtAttrs<T>
where T: Send,

§

impl<T> Sync for TxtAttrs<T>
where T: Sync,

§

impl<T> Unpin for TxtAttrs<T>

§

impl<T> UnwindSafe for TxtAttrs<T>
where diff --git a/pr/2574/docs/iroh/net/endpoint/enum.ConnectionError.html b/pr/2574/docs/iroh/net/endpoint/enum.ConnectionError.html index 72c023bfce..634e883594 100644 --- a/pr/2574/docs/iroh/net/endpoint/enum.ConnectionError.html +++ b/pr/2574/docs/iroh/net/endpoint/enum.ConnectionError.html @@ -17,7 +17,7 @@ period even if the peer is still reachable. See also TransportConfig::max_idle_timeout() and TransportConfig::keep_alive_interval().

§

LocallyClosed

The local application closed the connection

-

Trait Implementations§

§

impl Clone for ConnectionError

§

fn clone(&self) -> ConnectionError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for ConnectionError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for ConnectionError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for ConnectionError

§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl From<Close> for ConnectionError

§

fn from(x: Close) -> ConnectionError

Converts to this type from the input type.
source§

impl From<ConnectionError> for GetError

source§

fn from(value: ConnectionError) -> GetError

Converts to this type from the input type.
source§

impl From<ConnectionError> for GetResponseError

source§

fn from(source: ConnectionError) -> GetResponseError

Converts to this type from the input type.
§

impl From<ConnectionError> for ReadError

§

fn from(source: ConnectionError) -> ReadError

Converts to this type from the input type.
§

impl From<ConnectionError> for WriteError

§

fn from(source: ConnectionError) -> WriteError

Converts to this type from the input type.
§

impl From<Error> for ConnectionError

§

fn from(source: Error) -> ConnectionError

Converts to this type from the input type.
§

impl PartialEq for ConnectionError

§

fn eq(&self, other: &ConnectionError) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

§

impl Clone for ConnectionError

§

fn clone(&self) -> ConnectionError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for ConnectionError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for ConnectionError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for ConnectionError

§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl From<Close> for ConnectionError

§

fn from(x: Close) -> ConnectionError

Converts to this type from the input type.
§

impl From<ConnectionError> for GetError

§

fn from(value: ConnectionError) -> GetError

Converts to this type from the input type.
§

impl From<ConnectionError> for GetResponseError

§

fn from(source: ConnectionError) -> GetResponseError

Converts to this type from the input type.
§

impl From<ConnectionError> for ReadError

§

fn from(source: ConnectionError) -> ReadError

Converts to this type from the input type.
§

impl From<ConnectionError> for WriteError

§

fn from(source: ConnectionError) -> WriteError

Converts to this type from the input type.
§

impl From<Error> for ConnectionError

§

fn from(source: Error) -> ConnectionError

Converts to this type from the input type.
§

impl PartialEq for ConnectionError

§

fn eq(&self, other: &ConnectionError) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl Eq for ConnectionError

§

impl StructuralPartialEq for ConnectionError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/endpoint/enum.ReadError.html b/pr/2574/docs/iroh/net/endpoint/enum.ReadError.html index 96eb87e97d..b5ad5db8c9 100644 --- a/pr/2574/docs/iroh/net/endpoint/enum.ReadError.html +++ b/pr/2574/docs/iroh/net/endpoint/enum.ReadError.html @@ -15,7 +15,7 @@
§

ZeroRttRejected

This was a 0-RTT stream and the server rejected it

Can only occur on clients for 0-RTT streams, which can be opened using Connecting::into_0rtt().

-

Trait Implementations§

§

impl Clone for ReadError

§

fn clone(&self) -> ReadError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for ReadError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for ReadError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for ReadError

§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl From<ConnectionError> for ReadError

§

fn from(source: ConnectionError) -> ReadError

Converts to this type from the input type.
source§

impl From<ReadError> for GetError

source§

fn from(value: ReadError) -> GetError

Converts to this type from the input type.
source§

impl From<ReadError> for GetResponseError

source§

fn from(source: ReadError) -> GetResponseError

Converts to this type from the input type.
§

impl From<ReadableError> for ReadError

§

fn from(e: ReadableError) -> ReadError

Converts to this type from the input type.
§

impl PartialEq for ReadError

§

fn eq(&self, other: &ReadError) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

§

impl Clone for ReadError

§

fn clone(&self) -> ReadError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for ReadError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for ReadError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for ReadError

§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl From<ConnectionError> for ReadError

§

fn from(source: ConnectionError) -> ReadError

Converts to this type from the input type.
§

impl From<ReadError> for GetError

§

fn from(value: ReadError) -> GetError

Converts to this type from the input type.
§

impl From<ReadError> for GetResponseError

§

fn from(source: ReadError) -> GetResponseError

Converts to this type from the input type.
§

impl From<ReadableError> for ReadError

§

fn from(e: ReadableError) -> ReadError

Converts to this type from the input type.
§

impl PartialEq for ReadError

§

fn eq(&self, other: &ReadError) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl Eq for ReadError

§

impl StructuralPartialEq for ReadError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/endpoint/enum.WriteError.html b/pr/2574/docs/iroh/net/endpoint/enum.WriteError.html index 576a46a134..8600c2b8e1 100644 --- a/pr/2574/docs/iroh/net/endpoint/enum.WriteError.html +++ b/pr/2574/docs/iroh/net/endpoint/enum.WriteError.html @@ -11,7 +11,7 @@
§

ZeroRttRejected

This was a 0-RTT stream and the server rejected it

Can only occur on clients for 0-RTT streams, which can be opened using Connecting::into_0rtt().

-

Trait Implementations§

§

impl Clone for WriteError

§

fn clone(&self) -> WriteError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for WriteError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for WriteError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for WriteError

§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl From<ConnectionError> for WriteError

§

fn from(source: ConnectionError) -> WriteError

Converts to this type from the input type.
source§

impl From<WriteError> for ConnectedNextError

source§

fn from(source: WriteError) -> ConnectedNextError

Converts to this type from the input type.
source§

impl From<WriteError> for GetError

source§

fn from(value: WriteError) -> GetError

Converts to this type from the input type.
source§

impl From<WriteError> for GetResponseError

source§

fn from(source: WriteError) -> GetResponseError

Converts to this type from the input type.
§

impl PartialEq for WriteError

§

fn eq(&self, other: &WriteError) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

§

impl Clone for WriteError

§

fn clone(&self) -> WriteError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for WriteError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for WriteError

§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for WriteError

§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl From<ConnectionError> for WriteError

§

fn from(source: ConnectionError) -> WriteError

Converts to this type from the input type.
§

impl From<WriteError> for ConnectedNextError

§

fn from(source: WriteError) -> ConnectedNextError

Converts to this type from the input type.
§

impl From<WriteError> for GetError

§

fn from(value: WriteError) -> GetError

Converts to this type from the input type.
§

impl From<WriteError> for GetResponseError

§

fn from(source: WriteError) -> GetResponseError

Converts to this type from the input type.
§

impl PartialEq for WriteError

§

fn eq(&self, other: &WriteError) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl Eq for WriteError

§

impl StructuralPartialEq for WriteError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/endpoint/fn.default_relay_mode.html b/pr/2574/docs/iroh/net/endpoint/fn.default_relay_mode.html index 679d23bba9..bcea226ea7 100644 --- a/pr/2574/docs/iroh/net/endpoint/fn.default_relay_mode.html +++ b/pr/2574/docs/iroh/net/endpoint/fn.default_relay_mode.html @@ -1,4 +1,4 @@ -default_relay_mode in iroh::net::endpoint - Rust

Function iroh::net::endpoint::default_relay_mode

source ·
pub fn default_relay_mode() -> RelayMode
Expand description

Returns the default relay mode.

+default_relay_mode in iroh::net::endpoint - Rust

Function iroh::net::endpoint::default_relay_mode

source ·
pub fn default_relay_mode() -> RelayMode
Expand description

Returns the default relay mode.

If the IROH_FORCE_STAGING_RELAYS environment variable is set to 1, it will return RelayMode::Staging. Otherwise, it will return RelayMode::Default.

\ No newline at end of file diff --git a/pr/2574/docs/iroh/net/endpoint/fn.get_remote_node_id.html b/pr/2574/docs/iroh/net/endpoint/fn.get_remote_node_id.html index 87ca77621c..b2d0ee2091 100644 --- a/pr/2574/docs/iroh/net/endpoint/fn.get_remote_node_id.html +++ b/pr/2574/docs/iroh/net/endpoint/fn.get_remote_node_id.html @@ -1,2 +1,2 @@ -get_remote_node_id in iroh::net::endpoint - Rust

Function iroh::net::endpoint::get_remote_node_id

source ·
pub fn get_remote_node_id(connection: &Connection) -> Result<PublicKey, Error>
Expand description

Extract the PublicKey from the peer’s TLS certificate.

+get_remote_node_id in iroh::net::endpoint - Rust

Function iroh::net::endpoint::get_remote_node_id

source ·
pub fn get_remote_node_id(connection: &Connection) -> Result<PublicKey, Error>
Expand description

Extract the PublicKey from the peer’s TLS certificate.

\ No newline at end of file diff --git a/pr/2574/docs/iroh/net/endpoint/struct.Accept.html b/pr/2574/docs/iroh/net/endpoint/struct.Accept.html index 2534f5e6f6..b198995e5d 100644 --- a/pr/2574/docs/iroh/net/endpoint/struct.Accept.html +++ b/pr/2574/docs/iroh/net/endpoint/struct.Accept.html @@ -1,7 +1,5 @@ Accept in iroh::net::endpoint - Rust

Struct iroh::net::endpoint::Accept

source ·
pub struct Accept<'a> { /* private fields */ }
Expand description

Future produced by Endpoint::accept.

-

Trait Implementations§

source§

impl<'a> Debug for Accept<'a>
where - Accept<'a>: Debug, - Endpoint: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'a> Future for Accept<'a>

§

type Output = Option<Connecting>

The type of value produced on completion.
source§

fn poll( +

Trait Implementations§

source§

impl<'a> Debug for Accept<'a>

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'a> Future for Accept<'a>

§

type Output = Option<Connecting>

The type of value produced on completion.
source§

fn poll( self: Pin<&mut Accept<'a>>, cx: &mut Context<'_> ) -> Poll<<Accept<'a> as Future>::Output>

Attempt to resolve the future to a final value, registering diff --git a/pr/2574/docs/iroh/net/endpoint/struct.Builder.html b/pr/2574/docs/iroh/net/endpoint/struct.Builder.html index 26b3617437..9a51a758aa 100644 --- a/pr/2574/docs/iroh/net/endpoint/struct.Builder.html +++ b/pr/2574/docs/iroh/net/endpoint/struct.Builder.html @@ -62,17 +62,7 @@
source

pub fn concurrent_connections(self, concurrent_connections: u32) -> Builder

Maximum number of simultaneous connections to accept.

New incoming connections are only accepted if the total number of incoming or outgoing connections is less than this. Outgoing connections are unaffected.

-

Trait Implementations§

source§

impl Debug for Builder
where - Option<SecretKey>: Debug, - RelayMode: Debug, - Vec<Vec<u8>>: Debug, - Option<TransportConfig>: Debug, - Option<u32>: Debug, - bool: Debug, - Option<Box<dyn Discovery>>: Debug, - Option<Url>: Debug, - Option<Vec<NodeAddr>>: Debug, - Option<AsyncResolver<GenericConnector<TokioRuntimeProvider>>>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for Builder

source§

fn default() -> Builder

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for Builder

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for Builder

source§

fn default() -> Builder

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/endpoint/struct.Connecting.html b/pr/2574/docs/iroh/net/endpoint/struct.Connecting.html index 11cf05b199..44f620b1d3 100644 --- a/pr/2574/docs/iroh/net/endpoint/struct.Connecting.html +++ b/pr/2574/docs/iroh/net/endpoint/struct.Connecting.html @@ -1,16 +1,14 @@ -Connecting in iroh::net::endpoint - Rust

Struct iroh::net::endpoint::Connecting

source ·
pub struct Connecting { /* private fields */ }
Expand description

In-progress connection attempt future

-

Implementations§

source§

impl Connecting

source

pub fn into_0rtt(self) -> Result<(Connection, ZeroRttAccepted), Connecting>

Convert into a 0-RTT or 0.5-RTT connection at the cost of weakened security.

-
source

pub async fn handshake_data(&mut self) -> Result<Box<dyn Any>, ConnectionError>

Parameters negotiated during the handshake

-
source

pub fn local_ip(&self) -> Option<IpAddr>

The local IP address which was used when the peer established the connection.

-
source

pub fn remote_address(&self) -> SocketAddr

The peer’s UDP address.

-
source

pub async fn alpn(&mut self) -> Result<Vec<u8>, Error>

Extracts the ALPN protocol from the peer’s handshake data.

-

Trait Implementations§

source§

impl Debug for Connecting
where - Connecting: Debug, - Endpoint: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Future for Connecting

§

type Output = Result<Connection, ConnectionError>

The type of value produced on completion.
source§

fn poll( +Connecting in iroh::net::endpoint - Rust

Struct iroh::net::endpoint::Connecting

source ·
pub struct Connecting { /* private fields */ }
Expand description

In-progress connection attempt future

+

Implementations§

source§

impl Connecting

source

pub fn into_0rtt(self) -> Result<(Connection, ZeroRttAccepted), Connecting>

Convert into a 0-RTT or 0.5-RTT connection at the cost of weakened security.

+
source

pub async fn handshake_data(&mut self) -> Result<Box<dyn Any>, ConnectionError>

Parameters negotiated during the handshake

+
source

pub fn local_ip(&self) -> Option<IpAddr>

The local IP address which was used when the peer established the connection.

+
source

pub fn remote_address(&self) -> SocketAddr

The peer’s UDP address.

+
source

pub async fn alpn(&mut self) -> Result<Vec<u8>, Error>

Extracts the ALPN protocol from the peer’s handshake data.

+

Trait Implementations§

source§

impl Debug for Connecting

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Future for Connecting

§

type Output = Result<Connection, ConnectionError>

The type of value produced on completion.
source§

fn poll( self: Pin<&mut Connecting>, cx: &mut Context<'_> ) -> Poll<<Connecting as Future>::Output>

Attempt to resolve the future to a final value, registering -the current task for wakeup if the value is not yet available. Read more
source§

impl<'pin> Unpin for Connecting
where +the current task for wakeup if the value is not yet available. Read more

source§

impl<'pin> Unpin for Connecting
where __Connecting<'pin>: Unpin,

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/endpoint/struct.Endpoint.html b/pr/2574/docs/iroh/net/endpoint/struct.Endpoint.html index f426e046cc..328c407202 100644 --- a/pr/2574/docs/iroh/net/endpoint/struct.Endpoint.html +++ b/pr/2574/docs/iroh/net/endpoint/struct.Endpoint.html @@ -174,12 +174,7 @@
§Errors
close the magic socket.

Returns an error if closing the magic socket failed. TODO: Document error cases.

-

Trait Implementations§

source§

impl Clone for Endpoint

source§

fn clone(&self) -> Endpoint

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Endpoint
where - Handle: Debug, - Endpoint: Debug, - Arc<RttHandle>: Debug, - CancellationToken: Debug, - Arc<StaticConfig>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Clone for Endpoint

source§

fn clone(&self) -> Endpoint

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Endpoint

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/endpoint/struct.VarInt.html b/pr/2574/docs/iroh/net/endpoint/struct.VarInt.html index 3dc7cbfbea..b5d2ab4cf5 100644 --- a/pr/2574/docs/iroh/net/endpoint/struct.VarInt.html +++ b/pr/2574/docs/iroh/net/endpoint/struct.VarInt.html @@ -8,7 +8,7 @@
§Safety

x must be less than 2^62.

pub const fn into_inner(self) -> u64

Extract the integer value

-

Trait Implementations§

§

impl Clone for VarInt

§

fn clone(&self) -> VarInt

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for VarInt

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for VarInt

§

fn default() -> VarInt

Returns the “default value” for a type. Read more
§

impl Display for VarInt

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<Closed> for VarInt

source§

fn from(source: Closed) -> VarInt

Converts to this type from the input type.
§

impl From<StreamId> for VarInt

§

fn from(x: StreamId) -> VarInt

Converts to this type from the input type.
§

impl From<u16> for VarInt

§

fn from(x: u16) -> VarInt

Converts to this type from the input type.
§

impl From<u32> for VarInt

§

fn from(x: u32) -> VarInt

Converts to this type from the input type.
§

impl From<u8> for VarInt

§

fn from(x: u8) -> VarInt

Converts to this type from the input type.
§

impl Hash for VarInt

§

fn hash<__H>(&self, state: &mut __H)
where +

Trait Implementations§

§

impl Clone for VarInt

§

fn clone(&self) -> VarInt

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for VarInt

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for VarInt

§

fn default() -> VarInt

Returns the “default value” for a type. Read more
§

impl Display for VarInt

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<Closed> for VarInt

§

fn from(source: Closed) -> VarInt

Converts to this type from the input type.
§

impl From<StreamId> for VarInt

§

fn from(x: StreamId) -> VarInt

Converts to this type from the input type.
§

impl From<u16> for VarInt

§

fn from(x: u16) -> VarInt

Converts to this type from the input type.
§

impl From<u32> for VarInt

§

fn from(x: u32) -> VarInt

Converts to this type from the input type.
§

impl From<u8> for VarInt

§

fn from(x: u8) -> VarInt

Converts to this type from the input type.
§

impl Hash for VarInt

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl Ord for VarInt

§

fn cmp(&self, other: &VarInt) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where @@ -18,7 +18,7 @@
§Safety
by ==.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialOrd for VarInt

§

fn partial_cmp(&self, other: &VarInt) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl TryFrom<VarInt> for Closed

§

type Error = UnknownErrorCode

The type returned in the event of a conversion error.
source§

fn try_from(value: VarInt) -> Result<Closed, <Closed as TryFrom<VarInt>>::Error>

Performs the conversion.
§

impl TryFrom<u128> for VarInt

§

fn try_from(x: u128) -> Result<VarInt, VarIntBoundsExceeded>

Succeeds iff x < 2^62

+operator. Read more
§

impl TryFrom<VarInt> for Closed

§

type Error = UnknownErrorCode

The type returned in the event of a conversion error.
§

fn try_from(value: VarInt) -> Result<Closed, <Closed as TryFrom<VarInt>>::Error>

Performs the conversion.
§

impl TryFrom<u128> for VarInt

§

fn try_from(x: u128) -> Result<VarInt, VarIntBoundsExceeded>

Succeeds iff x < 2^62

§

type Error = VarIntBoundsExceeded

The type returned in the event of a conversion error.
§

impl TryFrom<u64> for VarInt

§

fn try_from(x: u64) -> Result<VarInt, VarIntBoundsExceeded>

Succeeds iff x < 2^62

§

type Error = VarIntBoundsExceeded

The type returned in the event of a conversion error.
§

impl TryFrom<usize> for VarInt

§

fn try_from(x: usize) -> Result<VarInt, VarIntBoundsExceeded>

Succeeds iff x < 2^62

§

type Error = VarIntBoundsExceeded

The type returned in the event of a conversion error.
§

impl Copy for VarInt

§

impl Eq for VarInt

§

impl StructuralPartialEq for VarInt

Auto Trait Implementations§

§

impl Freeze for VarInt

§

impl RefUnwindSafe for VarInt

§

impl Send for VarInt

§

impl Sync for VarInt

§

impl Unpin for VarInt

§

impl UnwindSafe for VarInt

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/pr/2574/docs/iroh/net/key/enum.KeyParsingError.html b/pr/2574/docs/iroh/net/key/enum.KeyParsingError.html index 26916b9791..0ddbe68a14 100644 --- a/pr/2574/docs/iroh/net/key/enum.KeyParsingError.html +++ b/pr/2574/docs/iroh/net/key/enum.KeyParsingError.html @@ -4,7 +4,7 @@ }
Expand description

Error when deserialising a PublicKey or a SecretKey.

Variants§

§

Base32(HexOrBase32ParseError)

Error when decoding the base32.

§

Key(Error)

Error when decoding the public key.

-

Trait Implementations§

source§

impl Debug for KeyParsingError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for KeyParsingError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for KeyParsingError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for KeyParsingError

source§

fn from(source: Error) -> KeyParsingError

Converts to this type from the input type.
source§

impl From<HexOrBase32ParseError> for KeyParsingError

source§

fn from(source: HexOrBase32ParseError) -> KeyParsingError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for KeyParsingError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for KeyParsingError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for KeyParsingError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for KeyParsingError

source§

fn from(source: Error) -> KeyParsingError

Converts to this type from the input type.
source§

impl From<HexOrBase32ParseError> for KeyParsingError

source§

fn from(source: HexOrBase32ParseError) -> KeyParsingError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/key/struct.PublicKey.html b/pr/2574/docs/iroh/net/key/struct.PublicKey.html index 920cf5ce37..9275e76448 100644 --- a/pr/2574/docs/iroh/net/key/struct.PublicKey.html +++ b/pr/2574/docs/iroh/net/key/struct.PublicKey.html @@ -35,9 +35,9 @@
§Return
&self, serializer: S ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where - S: Serializer,

Serialize this value into the given Serde serializer. Read more

source§

impl TryFrom<&[u8]> for PublicKey

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from( + S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TryFrom<&[u8]> for PublicKey

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from( bytes: &[u8] -) -> Result<PublicKey, <PublicKey as TryFrom<&[u8]>>::Error>

Performs the conversion.
source§

impl TryFrom<&[u8; 32]> for PublicKey

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from( +) -> Result<PublicKey, <PublicKey as TryFrom<&[u8]>>::Error>

Performs the conversion.
source§

impl TryFrom<&[u8; 32]> for PublicKey

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from( bytes: &[u8; 32] ) -> Result<PublicKey, <PublicKey as TryFrom<&[u8; 32]>>::Error>

Performs the conversion.
source§

impl Copy for PublicKey

source§

impl Eq for PublicKey

source§

impl StructuralPartialEq for PublicKey

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<A, T> AsBits<T> for A
where diff --git a/pr/2574/docs/iroh/net/ping/enum.PingError.html b/pr/2574/docs/iroh/net/ping/enum.PingError.html index feccdf0a3a..f7e4d12877 100644 --- a/pr/2574/docs/iroh/net/ping/enum.PingError.html +++ b/pr/2574/docs/iroh/net/ping/enum.PingError.html @@ -4,7 +4,7 @@ }
Expand description

Whether this error was because we couldn’t create a client or a send error.

Variants§

§

Client(Error)

Could not create client, probably bind error.

§

Ping(SurgeError)

Could not send ping.

-

Trait Implementations§

source§

impl Debug for PingError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for PingError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for PingError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for PingError

source§

fn from(source: Error) -> PingError

Converts to this type from the input type.
source§

impl From<SurgeError> for PingError

source§

fn from(source: SurgeError) -> PingError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for PingError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for PingError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for PingError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for PingError

source§

fn from(source: Error) -> PingError

Converts to this type from the input type.
source§

impl From<SurgeError> for PingError

source§

fn from(source: SurgeError) -> PingError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/portmapper/struct.ProbeOutput.html b/pr/2574/docs/iroh/net/portmapper/struct.ProbeOutput.html index b4abf0939f..d3ec0e47bd 100644 --- a/pr/2574/docs/iroh/net/portmapper/struct.ProbeOutput.html +++ b/pr/2574/docs/iroh/net/portmapper/struct.ProbeOutput.html @@ -7,8 +7,7 @@
§pcp: bool

If PCP can be considered available.

§nat_pmp: bool

If PMP can be considered available.

Implementations§

source§

impl ProbeOutput

source

pub fn all_available(&self) -> bool

Indicates if all port mapping protocols are available.

-

Trait Implementations§

source§

impl Clone for ProbeOutput

source§

fn clone(&self) -> ProbeOutput

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ProbeOutput

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for ProbeOutput
where - bool: Display,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl PartialEq for ProbeOutput

source§

fn eq(&self, other: &ProbeOutput) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for ProbeOutput

source§

fn clone(&self) -> ProbeOutput

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ProbeOutput

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for ProbeOutput

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl PartialEq for ProbeOutput

source§

fn eq(&self, other: &ProbeOutput) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for ProbeOutput

source§

impl StructuralPartialEq for ProbeOutput

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/relay/enum.HttpClientError.html b/pr/2574/docs/iroh/net/relay/enum.HttpClientError.html index d72b484b59..c89c2d0607 100644 --- a/pr/2574/docs/iroh/net/relay/enum.HttpClientError.html +++ b/pr/2574/docs/iroh/net/relay/enum.HttpClientError.html @@ -52,7 +52,7 @@
§

DnsTimeout

There was a timeout resolving DNS.

§

ActorGone

The inner actor is gone, likely means things are shutdown.

§

WebsocketError(Error)

An error related to websockets, either errors with parsing ws messages or the handshake

-

Trait Implementations§

source§

impl Debug for ClientError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for ClientError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for ClientError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for ClientError

source§

fn from(source: Error) -> ClientError

Converts to this type from the input type.
source§

impl From<Error> for ClientError

source§

fn from(source: Error) -> ClientError

Converts to this type from the input type.
source§

impl From<Error> for ClientError

source§

fn from(source: Error) -> ClientError

Converts to this type from the input type.
source§

impl From<Error> for ClientError

source§

fn from(source: Error) -> ClientError

Converts to this type from the input type.
source§

impl From<JoinError> for ClientError

source§

fn from(source: JoinError) -> ClientError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for ClientError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for ClientError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for ClientError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for ClientError

source§

fn from(source: Error) -> ClientError

Converts to this type from the input type.
source§

impl From<Error> for ClientError

source§

fn from(source: Error) -> ClientError

Converts to this type from the input type.
source§

impl From<Error> for ClientError

source§

fn from(source: Error) -> ClientError

Converts to this type from the input type.
source§

impl From<Error> for ClientError

source§

fn from(source: Error) -> ClientError

Converts to this type from the input type.
source§

impl From<JoinError> for ClientError

source§

fn from(source: JoinError) -> ClientError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/relay/enum.ReceivedMessage.html b/pr/2574/docs/iroh/net/relay/enum.ReceivedMessage.html index 9bba83581a..bf9b653b71 100644 --- a/pr/2574/docs/iroh/net/relay/enum.ReceivedMessage.html +++ b/pr/2574/docs/iroh/net/relay/enum.ReceivedMessage.html @@ -39,11 +39,7 @@ before giving up and proceeding with its normal connection failure logic. The interval between retries is undefined for now. A server should not send a TryFor duration more than a few seconds.

-

Trait Implementations§

source§

impl Clone for ReceivedMessage

source§

fn clone(&self) -> ReceivedMessage

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ReceivedMessage
where - PublicKey: Debug, - [u8; 8]: Debug, - Option<String>: Debug, - Duration: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Clone for ReceivedMessage

source§

fn clone(&self) -> ReceivedMessage

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ReceivedMessage

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/relay/server/enum.CertConfig.html b/pr/2574/docs/iroh/net/relay/server/enum.CertConfig.html index 2b1f37ffb7..db9384257a 100644 --- a/pr/2574/docs/iroh/net/relay/server/enum.CertConfig.html +++ b/pr/2574/docs/iroh/net/relay/server/enum.CertConfig.html @@ -16,9 +16,7 @@

§certs: Vec<Certificate>

The TLS certificate chain.

Trait Implementations§

source§

impl<EC, EA> Debug for CertConfig<EC, EA>
where EC: Debug, - EA: Debug, - PrivateKey: Debug, - Vec<Certificate>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<EC, EA> Freeze for CertConfig<EC, EA>

§

impl<EC, EA = EC> !RefUnwindSafe for CertConfig<EC, EA>

§

impl<EC, EA> Send for CertConfig<EC, EA>

§

impl<EC, EA> Sync for CertConfig<EC, EA>

§

impl<EC, EA> Unpin for CertConfig<EC, EA>

§

impl<EC, EA = EC> !UnwindSafe for CertConfig<EC, EA>

Blanket Implementations§

source§

impl<T> Any for T
where + EA: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<EC, EA> Freeze for CertConfig<EC, EA>

§

impl<EC, EA = EC> !RefUnwindSafe for CertConfig<EC, EA>

§

impl<EC, EA> Send for CertConfig<EC, EA>

§

impl<EC, EA> Sync for CertConfig<EC, EA>

§

impl<EC, EA> Unpin for CertConfig<EC, EA>

§

impl<EC, EA = EC> !UnwindSafe for CertConfig<EC, EA>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/relay/struct.HttpClientBuilder.html b/pr/2574/docs/iroh/net/relay/struct.HttpClientBuilder.html index f1b7bbad69..c8e1d39223 100644 --- a/pr/2574/docs/iroh/net/relay/struct.HttpClientBuilder.html +++ b/pr/2574/docs/iroh/net/relay/struct.HttpClientBuilder.html @@ -23,12 +23,7 @@ dns_resolver: AsyncResolver<GenericConnector<TokioRuntimeProvider>> ) -> (Client, ClientReceiver)

Build the Client

source

pub fn server_public_key(self, server_public_key: PublicKey) -> ClientBuilder

The expected PublicKey of the relay server we are connecting to.

-

Trait Implementations§

source§

impl Debug for ClientBuilder

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for ClientBuilder

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/relay/struct.RelayUrl.html b/pr/2574/docs/iroh/net/relay/struct.RelayUrl.html index 9f2bd74a7a..d525cac105 100644 --- a/pr/2574/docs/iroh/net/relay/struct.RelayUrl.html +++ b/pr/2574/docs/iroh/net/relay/struct.RelayUrl.html @@ -447,8 +447,7 @@
§Examples
§

type Target = Url

The resulting type after dereferencing.
source§

fn deref(&self) -> &<RelayUrl as Deref>::Target

Dereferences the value.

source§

impl<'de> Deserialize<'de> for RelayUrl

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<RelayUrl, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for RelayUrl
where - Url: Display,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<RelayUrl> for Url

source§

fn from(value: RelayUrl) -> Url

Converts to this type from the input type.
source§

impl From<RelayUrlInfo> for RelayUrl

source§

fn from(value: RelayUrlInfo) -> RelayUrl

Converts to this type from the input type.
source§

impl From<Url> for RelayUrl

source§

fn from(url: Url) -> RelayUrl

Converts to this type from the input type.
source§

impl FromStr for RelayUrl

Support for parsing strings directly.

+ __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for RelayUrl

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<RelayUrl> for Url

source§

fn from(value: RelayUrl) -> Url

Converts to this type from the input type.
source§

impl From<RelayUrlInfo> for RelayUrl

source§

fn from(value: RelayUrlInfo) -> RelayUrl

Converts to this type from the input type.
source§

impl From<Url> for RelayUrl

source§

fn from(url: Url) -> RelayUrl

Converts to this type from the input type.
source§

impl FromStr for RelayUrl

Support for parsing strings directly.

If you need more control over the error first create a Url and use RelayUrl::from instead.

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<RelayUrl, <RelayUrl as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for RelayUrl

source§

fn hash<__H>(&self, state: &mut __H)
where diff --git a/pr/2574/docs/iroh/net/struct.Endpoint.html b/pr/2574/docs/iroh/net/struct.Endpoint.html index b752a75a65..e43a37682b 100644 --- a/pr/2574/docs/iroh/net/struct.Endpoint.html +++ b/pr/2574/docs/iroh/net/struct.Endpoint.html @@ -174,12 +174,7 @@
§Errors
close the magic socket.

Returns an error if closing the magic socket failed. TODO: Document error cases.

-

Trait Implementations§

source§

impl Clone for Endpoint

source§

fn clone(&self) -> Endpoint

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Endpoint
where - Handle: Debug, - Endpoint: Debug, - Arc<RttHandle>: Debug, - CancellationToken: Debug, - Arc<StaticConfig>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Clone for Endpoint

source§

fn clone(&self) -> Endpoint

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Endpoint

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/net/util/struct.CancelOnDrop.html b/pr/2574/docs/iroh/net/util/struct.CancelOnDrop.html index 72aac11084..70a2a2f6b1 100644 --- a/pr/2574/docs/iroh/net/util/struct.CancelOnDrop.html +++ b/pr/2574/docs/iroh/net/util/struct.CancelOnDrop.html @@ -1,8 +1,7 @@ CancelOnDrop in iroh::net::util - Rust

Struct iroh::net::util::CancelOnDrop

source ·
pub struct CancelOnDrop { /* private fields */ }
Expand description

Holds a handle to a task and aborts it on drop.

See [tokio::task::AbortHandle].

Implementations§

source§

impl CancelOnDrop

source

pub fn new(task_name: &'static str, handle: AbortHandle) -> CancelOnDrop

Create a CancelOnDrop with a name and a handle to a task.

-

Trait Implementations§

source§

impl Debug for CancelOnDrop
where - &'static str: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Drop for CancelOnDrop

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for CancelOnDrop

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Drop for CancelOnDrop

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/node/struct.Builder.html b/pr/2574/docs/iroh/node/struct.Builder.html index 17d57b512c..1b2f72ffca 100644 --- a/pr/2574/docs/iroh/node/struct.Builder.html +++ b/pr/2574/docs/iroh/node/struct.Builder.html @@ -61,18 +61,7 @@

Returns a ProtocolBuilder, on which custom protocols can be registered with ProtocolBuilder::accept. To spawn the node, call ProtocolBuilder::spawn.

Trait Implementations§

source§

impl<D> Debug for Builder<D>

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Builder<Store>

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<D> !Freeze for Builder<D>

§

impl<D> !RefUnwindSafe for Builder<D>

§

impl<D> Send for Builder<D>

§

impl<D> !Sync for Builder<D>

§

impl<D> Unpin for Builder<D>
where + D: Map + Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Builder<Store>

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<D> !Freeze for Builder<D>

§

impl<D> !RefUnwindSafe for Builder<D>

§

impl<D> Send for Builder<D>

§

impl<D> !Sync for Builder<D>

§

impl<D> Unpin for Builder<D>
where D: Unpin,

§

impl<D> !UnwindSafe for Builder<D>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/node/struct.ProtocolBuilder.html b/pr/2574/docs/iroh/node/struct.ProtocolBuilder.html index cc7bb4897f..7a42175d1e 100644 --- a/pr/2574/docs/iroh/node/struct.ProtocolBuilder.html +++ b/pr/2574/docs/iroh/node/struct.ProtocolBuilder.html @@ -52,12 +52,7 @@ does not match the passed type.

source

pub async fn spawn(self) -> Result<Node<D>>

Spawns the node and starts accepting connections.

Trait Implementations§

source§

impl<D> Debug for ProtocolBuilder<D>
where - Arc<NodeInner<D>>: Debug, - IrohServerEndpoint: Debug, - ProtocolMap: Debug, - GcPolicy: Debug, - Option<PathBuf>: Debug, - LocalPool: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<D> Freeze for ProtocolBuilder<D>

§

impl<D> !RefUnwindSafe for ProtocolBuilder<D>

§

impl<D> Send for ProtocolBuilder<D>
where + Arc<NodeInner<D>>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<D> Freeze for ProtocolBuilder<D>

§

impl<D> !RefUnwindSafe for ProtocolBuilder<D>

§

impl<D> Send for ProtocolBuilder<D>
where D: Sync + Send,

§

impl<D> !Sync for ProtocolBuilder<D>

§

impl<D> Unpin for ProtocolBuilder<D>

§

impl<D> !UnwindSafe for ProtocolBuilder<D>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/util/io/enum.BaoValidationError.html b/pr/2574/docs/iroh/util/io/enum.BaoValidationError.html index a33ad875f9..c27323266b 100644 --- a/pr/2574/docs/iroh/util/io/enum.BaoValidationError.html +++ b/pr/2574/docs/iroh/util/io/enum.BaoValidationError.html @@ -5,9 +5,7 @@

io::Error should be just the fallback when a more specific error is not available.

Variants§

§

IoError(Error)

Generic io error. We were unable to read the data.

§

EncodeError(EncodeError)

The data failed to validate

-

Trait Implementations§

source§

impl Debug for BaoValidationError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for BaoValidationError

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for BaoValidationError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<EncodeError> for BaoValidationError

source§

fn from(source: EncodeError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for BaoValidationError

source§

fn from(source: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for BaoValidationError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for BaoValidationError

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for BaoValidationError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<EncodeError> for BaoValidationError

source§

fn from(source: EncodeError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for BaoValidationError

source§

fn from(source: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh/util/path/enum.IrohPaths.html b/pr/2574/docs/iroh/util/path/enum.IrohPaths.html index 7e89485a8f..3d692f5c12 100644 --- a/pr/2574/docs/iroh/util/path/enum.IrohPaths.html +++ b/pr/2574/docs/iroh/util/path/enum.IrohPaths.html @@ -15,7 +15,7 @@
§

RpcLock

Path to RPC lock file, containing the RPC port if running.

§

DefaultAuthor

Path to the iroh_docs::AuthorId of the node’s default author

Implementations§

source§

impl IrohPaths

source

pub fn with_root(self, root: impl AsRef<Path>) -> PathBuf

Get the path for this IrohPaths by joining the name to a root directory.

-

Trait Implementations§

source§

impl AsRef<Path> for IrohPaths

source§

fn as_ref(&self) -> &Path

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<str> for IrohPaths

source§

fn as_ref(&self) -> &str

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for IrohPaths

source§

fn clone(&self) -> IrohPaths

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for IrohPaths

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for IrohPaths

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl FromStr for IrohPaths

§

type Err = ParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<IrohPaths, <Self as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for IrohPaths

source§

fn eq(&self, other: &IrohPaths) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl AsRef<Path> for IrohPaths

source§

fn as_ref(&self) -> &Path

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<str> for IrohPaths

source§

fn as_ref(&self) -> &str

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for IrohPaths

source§

fn clone(&self) -> IrohPaths

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for IrohPaths

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for IrohPaths

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl FromStr for IrohPaths

§

type Err = ParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<IrohPaths, <Self as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for IrohPaths

source§

fn eq(&self, other: &IrohPaths) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<&str> for IrohPaths

§

type Error = ParseError

The type returned in the event of a conversion error.
source§

fn try_from(s: &str) -> Result<IrohPaths, <Self as TryFrom<&str>>::Error>

Performs the conversion.
source§

impl Copy for IrohPaths

source§

impl Eq for IrohPaths

source§

impl StructuralPartialEq for IrohPaths

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh_base/hash/enum.BlobFormat.html b/pr/2574/docs/iroh_base/hash/enum.BlobFormat.html index 2790c35266..918d3f45ac 100644 --- a/pr/2574/docs/iroh_base/hash/enum.BlobFormat.html +++ b/pr/2574/docs/iroh_base/hash/enum.BlobFormat.html @@ -6,8 +6,8 @@
§

HashSeq

A sequence of BLAKE3 hashes

Implementations§

source§

impl BlobFormat

source

pub const fn is_raw(&self) -> bool

Is raw format

source

pub const fn is_hash_seq(&self) -> bool

Is hash seq format

-

Trait Implementations§

source§

impl Clone for BlobFormat

source§

fn clone(&self) -> BlobFormat

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BlobFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for BlobFormat

source§

fn default() -> BlobFormat

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for BlobFormat

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for BlobFormat

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<BlobFormat> for u64

source§

fn from(value: BlobFormat) -> Self

Converts to this type from the input type.
source§

impl Hash for BlobFormat

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl Clone for BlobFormat

source§

fn clone(&self) -> BlobFormat

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BlobFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for BlobFormat

source§

fn default() -> BlobFormat

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for BlobFormat

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for BlobFormat

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<BlobFormat> for u64

source§

fn from(value: BlobFormat) -> Self

Converts to this type from the input type.
source§

impl Hash for BlobFormat

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl MaxSize for BlobFormat

source§

const POSTCARD_MAX_SIZE: usize = 1usize

The maximum possible size that the serialization of this type can have, in bytes.
source§

impl Ord for BlobFormat

source§

fn cmp(&self, other: &BlobFormat) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where diff --git a/pr/2574/docs/iroh_base/hash/struct.Hash.html b/pr/2574/docs/iroh_base/hash/struct.Hash.html index 10fb80bf7b..efbac3599a 100644 --- a/pr/2574/docs/iroh_base/hash/struct.Hash.html +++ b/pr/2574/docs/iroh_base/hash/struct.Hash.html @@ -6,8 +6,8 @@

source

pub fn to_hex(&self) -> String

Convert the hash to a hex string.

source

pub fn fmt_short(&self) -> String

Convert to a base32 string limited to the first 10 bytes for a friendly string representation of the hash.

-

Trait Implementations§

source§

impl AsRef<[u8]> for Hash

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Borrow<[u8]> for Hash

source§

fn borrow(&self) -> &[u8]

Immutably borrows from an owned value. Read more
source§

impl Borrow<[u8; 32]> for Hash

source§

fn borrow(&self) -> &[u8; 32]

Immutably borrows from an owned value. Read more
source§

impl Clone for Hash

source§

fn clone(&self) -> Hash

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Hash

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<&[u8; 32]> for Hash

source§

fn from(value: &[u8; 32]) -> Self

Converts to this type from the input type.
source§

impl From<[u8; 32]> for Hash

source§

fn from(value: [u8; 32]) -> Self

Converts to this type from the input type.
source§

impl From<Hash> for [u8; 32]

source§

fn from(value: Hash) -> Self

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Self

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Self

Converts to this type from the input type.
source§

impl FromStr for Hash

§

type Err = HexOrBase32ParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for Hash

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl AsRef<[u8]> for Hash

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Borrow<[u8]> for Hash

source§

fn borrow(&self) -> &[u8]

Immutably borrows from an owned value. Read more
source§

impl Borrow<[u8; 32]> for Hash

source§

fn borrow(&self) -> &[u8; 32]

Immutably borrows from an owned value. Read more
source§

impl Clone for Hash

source§

fn clone(&self) -> Hash

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Hash

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<&[u8; 32]> for Hash

source§

fn from(value: &[u8; 32]) -> Self

Converts to this type from the input type.
source§

impl From<[u8; 32]> for Hash

source§

fn from(value: [u8; 32]) -> Self

Converts to this type from the input type.
source§

impl From<Hash> for [u8; 32]

source§

fn from(value: Hash) -> Self

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Self

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Self

Converts to this type from the input type.
source§

impl FromStr for Hash

§

type Err = HexOrBase32ParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for Hash

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Key for Hash

source§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
source§

impl MaxSize for Hash

source§

const POSTCARD_MAX_SIZE: usize = 32usize

The maximum possible size that the serialization of this type can have, in bytes.
source§

impl Ord for Hash

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where diff --git a/pr/2574/docs/iroh_base/hash/struct.HashAndFormat.html b/pr/2574/docs/iroh_base/hash/struct.HashAndFormat.html index 5742f70c13..f879849e51 100644 --- a/pr/2574/docs/iroh_base/hash/struct.HashAndFormat.html +++ b/pr/2574/docs/iroh_base/hash/struct.HashAndFormat.html @@ -7,8 +7,8 @@

Implementations§

source§

impl HashAndFormat

source

pub fn new(hash: Hash, format: BlobFormat) -> Self

Create a new hash and format pair.

source

pub fn raw(hash: Hash) -> Self

Create a new hash and format pair, using the default (raw) format.

source

pub fn hash_seq(hash: Hash) -> Self

Create a new hash and format pair, using the collection format.

-

Trait Implementations§

source§

impl Clone for HashAndFormat

source§

fn clone(&self) -> HashAndFormat

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for HashAndFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for HashAndFormat

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for HashAndFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for HashAndFormat

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for HashAndFormat

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl Clone for HashAndFormat

source§

fn clone(&self) -> HashAndFormat

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for HashAndFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for HashAndFormat

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for HashAndFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for HashAndFormat

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for HashAndFormat

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl MaxSize for HashAndFormat

source§

const POSTCARD_MAX_SIZE: usize = 33usize

The maximum possible size that the serialization of this type can have, in bytes.
source§

impl Ord for HashAndFormat

source§

fn cmp(&self, other: &HashAndFormat) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where diff --git a/pr/2574/docs/iroh_base/key/enum.KeyParsingError.html b/pr/2574/docs/iroh_base/key/enum.KeyParsingError.html index c87ed94511..c547f066f8 100644 --- a/pr/2574/docs/iroh_base/key/enum.KeyParsingError.html +++ b/pr/2574/docs/iroh_base/key/enum.KeyParsingError.html @@ -4,7 +4,7 @@ }
Expand description

Error when deserialising a PublicKey or a SecretKey.

Variants§

§

Base32(HexOrBase32ParseError)

Error when decoding the base32.

§

Key(SignatureError)

Error when decoding the public key.

-

Trait Implementations§

source§

impl Debug for KeyParsingError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for KeyParsingError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for KeyParsingError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for KeyParsingError

source§

fn from(source: SignatureError) -> Self

Converts to this type from the input type.
source§

impl From<HexOrBase32ParseError> for KeyParsingError

source§

fn from(source: HexOrBase32ParseError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for KeyParsingError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for KeyParsingError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for KeyParsingError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for KeyParsingError

source§

fn from(source: SignatureError) -> Self

Converts to this type from the input type.
source§

impl From<HexOrBase32ParseError> for KeyParsingError

source§

fn from(source: HexOrBase32ParseError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/pr/2574/docs/iroh_base/key/struct.PublicKey.html b/pr/2574/docs/iroh_base/key/struct.PublicKey.html index 5e0b1d3fae..18220ab5b1 100644 --- a/pr/2574/docs/iroh_base/key/struct.PublicKey.html +++ b/pr/2574/docs/iroh_base/key/struct.PublicKey.html @@ -20,8 +20,8 @@
§Return

Returns Ok(()) if the signature is valid, and Err otherwise.

source

pub fn fmt_short(&self) -> String

Convert to a base32 string limited to the first 10 bytes for a friendly string representation of the key.

-

Trait Implementations§

source§

impl AsRef<[u8]> for PublicKey

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for PublicKey

source§

fn clone(&self) -> PublicKey

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for PublicKey

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for PublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<PublicKey> for NodeAddr

source§

fn from(node_id: NodeId) -> Self

Converts to this type from the input type.
source§

impl From<VerifyingKey> for PublicKey

source§

fn from(verifying_key: VerifyingKey) -> Self

Converts to this type from the input type.
source§

impl FromStr for PublicKey

Deserialises the PublicKey from it’s base32 encoding.

+

Trait Implementations§

source§

impl AsRef<[u8]> for PublicKey

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for PublicKey

source§

fn clone(&self) -> PublicKey

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for PublicKey

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for PublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<PublicKey> for NodeAddr

source§

fn from(node_id: NodeId) -> Self

Converts to this type from the input type.
source§

impl From<VerifyingKey> for PublicKey

source§

fn from(verifying_key: VerifyingKey) -> Self

Converts to this type from the input type.
source§

impl FromStr for PublicKey

Deserialises the PublicKey from it’s base32 encoding.

Display is capable of serialising this format.

§

type Err = KeyParsingError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for PublicKey

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, @@ -33,7 +33,7 @@
§Return
sufficient, and should not be overridden without very good reason.

source§

impl PartialOrd for PublicKey

source§

fn partial_cmp(&self, other: &PublicKey) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Serialize for PublicKey

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where - S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TryFrom<&[u8]> for PublicKey

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(bytes: &[u8]) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<&[u8; 32]> for PublicKey

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(bytes: &[u8; 32]) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Copy for PublicKey

source§

impl Eq for PublicKey

source§

impl StructuralPartialEq for PublicKey

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TryFrom<&[u8]> for PublicKey

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(bytes: &[u8]) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<&[u8; 32]> for PublicKey

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(bytes: &[u8; 32]) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Copy for PublicKey

source§

impl Eq for PublicKey

source§

impl StructuralPartialEq for PublicKey

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/pr/2574/docs/iroh_base/key/struct.SecretKey.html b/pr/2574/docs/iroh_base/key/struct.SecretKey.html index 689f043525..fe8f725b0f 100644 --- a/pr/2574/docs/iroh_base/key/struct.SecretKey.html +++ b/pr/2574/docs/iroh_base/key/struct.SecretKey.html @@ -9,8 +9,8 @@
source

pub fn to_bytes(&self) -> [u8; 32]

Convert this to the bytes representing the secret part. The public part can always be recovered.

source

pub fn from_bytes(bytes: &[u8; 32]) -> Self

Create a secret key from its byte representation.

-

Trait Implementations§

source§

impl Clone for SecretKey

source§

fn clone(&self) -> SecretKey

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SecretKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for SecretKey

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for SecretKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<[u8; 32]> for SecretKey

source§

fn from(value: [u8; 32]) -> Self

Converts to this type from the input type.
source§

impl From<SigningKey> for SecretKey

source§

fn from(secret: SigningKey) -> Self

Converts to this type from the input type.
source§

impl FromStr for SecretKey

§

type Err = KeyParsingError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Serialize for SecretKey

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where +

Trait Implementations§

source§

impl Clone for SecretKey

source§

fn clone(&self) -> SecretKey

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SecretKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for SecretKey

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for SecretKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<[u8; 32]> for SecretKey

source§

fn from(value: [u8; 32]) -> Self

Converts to this type from the input type.
source§

impl From<SigningKey> for SecretKey

source§

fn from(secret: SigningKey) -> Self

Converts to this type from the input type.
source§

impl FromStr for SecretKey

§

type Err = KeyParsingError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Serialize for SecretKey

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TryFrom<&[u8]> for SecretKey

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(bytes: &[u8]) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where diff --git a/pr/2574/docs/iroh_base/node_addr/struct.RelayUrl.html b/pr/2574/docs/iroh_base/node_addr/struct.RelayUrl.html index 38da74168b..48e6696e73 100644 --- a/pr/2574/docs/iroh_base/node_addr/struct.RelayUrl.html +++ b/pr/2574/docs/iroh_base/node_addr/struct.RelayUrl.html @@ -441,12 +441,11 @@
§ExamplesPath::new_opt() returns None. (That is, if the percent-decoded path contains a NUL byte or, for a Windows path, is not UTF-8.)

-

Trait Implementations§

source§

impl Clone for RelayUrl

source§

fn clone(&self) -> RelayUrl

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RelayUrl

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Deref for RelayUrl

Dereferences to the wrapped Url.

+

Trait Implementations§

source§

impl Clone for RelayUrl

source§

fn clone(&self) -> RelayUrl

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RelayUrl

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Deref for RelayUrl

Dereferences to the wrapped Url.

Note that DerefMut is not implemented on purpose, so this type has more flexibility to change the inner later.

§

type Target = Url

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<'de> Deserialize<'de> for RelayUrl

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for RelayUrl
where - Url: Display,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<RelayUrl> for Url

source§

fn from(value: RelayUrl) -> Self

Converts to this type from the input type.
source§

impl From<Url> for RelayUrl

source§

fn from(url: Url) -> Self

Converts to this type from the input type.
source§

impl FromStr for RelayUrl

Support for parsing strings directly.

+ __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for RelayUrl

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<RelayUrl> for Url

source§

fn from(value: RelayUrl) -> Self

Converts to this type from the input type.
source§

impl From<Url> for RelayUrl

source§

fn from(url: Url) -> Self

Converts to this type from the input type.
source§

impl FromStr for RelayUrl

Support for parsing strings directly.

If you need more control over the error first create a Url and use RelayUrl::from instead.

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for RelayUrl

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where diff --git a/pr/2574/docs/iroh_base/rpc/struct.RpcError.html b/pr/2574/docs/iroh_base/rpc/struct.RpcError.html index bbdab477ef..33d97d929d 100644 --- a/pr/2574/docs/iroh_base/rpc/struct.RpcError.html +++ b/pr/2574/docs/iroh_base/rpc/struct.RpcError.html @@ -1,6 +1,6 @@ RpcError in iroh_base::rpc - Rust

Struct iroh_base::rpc::RpcError

source ·
pub struct RpcError(/* private fields */);
Expand description

A serializable error type for use in RPC responses.

-

Trait Implementations§

source§

impl Clone for RpcError

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RpcError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for RpcError

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for RpcError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for RpcError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for RpcError

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for RpcError

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl Serialize for RpcError

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where +

Trait Implementations§

source§

impl Clone for RpcError

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RpcError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for RpcError

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for RpcError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for RpcError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for RpcError

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for RpcError

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl Serialize for RpcError

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where diff --git a/pr/2574/docs/iroh_base/ticket/enum.Error.html b/pr/2574/docs/iroh_base/ticket/enum.Error.html index 5d409f7f0c..57ba1a6c54 100644 --- a/pr/2574/docs/iroh_base/ticket/enum.Error.html +++ b/pr/2574/docs/iroh_base/ticket/enum.Error.html @@ -10,7 +10,7 @@

Fields

§expected: &'static str
§

Postcard(Error)

This looks like a ticket, but postcard deserialization failed.

§

Encoding(DecodeError)

This looks like a ticket, but base32 decoding failed.

§

Verify(&'static str)

Verification of the deserialized bytes failed.

-

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<DecodeError> for Error

source§

fn from(source: DecodeError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Error

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<DecodeError> for Error

source§

fn from(source: DecodeError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Error

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/pr/2574/docs/iroh_base/ticket/struct.BlobTicket.html b/pr/2574/docs/iroh_base/ticket/struct.BlobTicket.html index 9071592a62..fb5452077d 100644 --- a/pr/2574/docs/iroh_base/ticket/struct.BlobTicket.html +++ b/pr/2574/docs/iroh_base/ticket/struct.BlobTicket.html @@ -6,9 +6,9 @@
source

pub fn format(&self) -> BlobFormat

The BlobFormat for this ticket.

source

pub fn recursive(&self) -> bool

True if the ticket is for a collection and should retrieve all blobs in it.

source

pub fn into_parts(self) -> (NodeAddr, Hash, BlobFormat)

Get the contents of the ticket, consuming it.

-

Trait Implementations§

source§

impl Clone for BlobTicket

source§

fn clone(&self) -> BlobTicket

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BlobTicket

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BlobTicket

source§

fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for BlobTicket

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for BlobTicket

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for BlobTicket

source§

fn eq(&self, other: &BlobTicket) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for BlobTicket

source§

fn clone(&self) -> BlobTicket

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BlobTicket

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BlobTicket

source§

fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for BlobTicket

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for BlobTicket

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for BlobTicket

source§

fn eq(&self, other: &BlobTicket) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for BlobTicket

source§

fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error>

Serialize this value into the given Serde serializer. Read more
source§

impl Ticket for BlobTicket

source§

const KIND: &'static str = "blob"

String prefix describing the kind of iroh ticket. Read more
source§

fn to_bytes(&self) -> Vec<u8>

Serialize to bytes used in the base32 string representation.
source§

fn from_bytes(bytes: &[u8]) -> Result<Self, Error>

Deserialize from the base32 string representation bytes.
source§

fn serialize(&self) -> String

Serialize to string.
source§

fn deserialize(str: &str) -> Result<Self, Error>

Deserialize from a string.
source§

impl Eq for BlobTicket

source§

impl StructuralPartialEq for BlobTicket

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl Serialize for BlobTicket

source§

fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error>

Serialize this value into the given Serde serializer. Read more
source§

impl Ticket for BlobTicket

source§

const KIND: &'static str = "blob"

String prefix describing the kind of iroh ticket. Read more
source§

fn to_bytes(&self) -> Vec<u8>

Serialize to bytes used in the base32 string representation.
source§

fn from_bytes(bytes: &[u8]) -> Result<Self, Error>

Deserialize from the base32 string representation bytes.
source§

fn serialize(&self) -> String

Serialize to string.
source§

fn deserialize(str: &str) -> Result<Self, Error>

Deserialize from a string.
source§

impl Eq for BlobTicket

source§

impl StructuralPartialEq for BlobTicket

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/pr/2574/docs/iroh_base/ticket/struct.NodeTicket.html b/pr/2574/docs/iroh_base/ticket/struct.NodeTicket.html index b436aafb3b..eecc5d2880 100644 --- a/pr/2574/docs/iroh_base/ticket/struct.NodeTicket.html +++ b/pr/2574/docs/iroh_base/ticket/struct.NodeTicket.html @@ -2,7 +2,7 @@

It is a single item which can be easily serialized and deserialized.

Implementations§

source§

impl NodeTicket

source

pub fn new(node: NodeAddr) -> Result<Self>

Creates a new ticket.

source

pub fn node_addr(&self) -> &NodeAddr

The NodeAddr of the provider for this ticket.

-

Trait Implementations§

source§

impl Clone for NodeTicket

source§

fn clone(&self) -> NodeTicket

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for NodeTicket

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for NodeTicket

source§

fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for NodeTicket

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for NodeTicket

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for NodeTicket

source§

fn eq(&self, other: &NodeTicket) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for NodeTicket

source§

fn clone(&self) -> NodeTicket

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for NodeTicket

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for NodeTicket

source§

fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for NodeTicket

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for NodeTicket

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for NodeTicket

source§

fn eq(&self, other: &NodeTicket) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for NodeTicket

source§

fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error>

Serialize this value into the given Serde serializer. Read more
source§

impl Ticket for NodeTicket

source§

const KIND: &'static str = "node"

String prefix describing the kind of iroh ticket. Read more
source§

fn to_bytes(&self) -> Vec<u8>

Serialize to bytes used in the base32 string representation.
source§

fn from_bytes(bytes: &[u8]) -> Result<Self, Error>

Deserialize from the base32 string representation bytes.
source§

fn serialize(&self) -> String

Serialize to string.
source§

fn deserialize(str: &str) -> Result<Self, Error>

Deserialize from a string.
source§

impl Eq for NodeTicket

source§

impl StructuralPartialEq for NodeTicket

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/pr/2574/docs/iroh_blobs/all.html b/pr/2574/docs/iroh_blobs/all.html index 5fb4ded02d..899f862295 100644 --- a/pr/2574/docs/iroh_blobs/all.html +++ b/pr/2574/docs/iroh_blobs/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Structs

Enums

Traits

Functions

Type Aliases

Constants

\ No newline at end of file +List of all items in this crate

List of all items

Structs

Enums

Traits

Functions

Type Aliases

Constants

\ No newline at end of file diff --git a/pr/2574/docs/iroh_blobs/downloader/struct.DownloadKind.html b/pr/2574/docs/iroh_blobs/downloader/struct.DownloadKind.html index 465e6c1531..8c976459cc 100644 --- a/pr/2574/docs/iroh_blobs/downloader/struct.DownloadKind.html +++ b/pr/2574/docs/iroh_blobs/downloader/struct.DownloadKind.html @@ -2,7 +2,7 @@

Implementations§

source§

impl DownloadKind

source

pub const fn hash(&self) -> Hash

Get the hash of this download

source

pub const fn format(&self) -> BlobFormat

Get the format of this download

source

pub const fn hash_and_format(&self) -> HashAndFormat

Get the HashAndFormat pair of this download

-

Trait Implementations§

source§

impl Clone for DownloadKind

source§

fn clone(&self) -> DownloadKind

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for DownloadKind

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for DownloadKind

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<DownloadKind> for HashAndFormat

source§

fn from(value: DownloadKind) -> Self

Converts to this type from the input type.
source§

impl From<HashAndFormat> for DownloadKind

source§

fn from(value: HashAndFormat) -> Self

Converts to this type from the input type.
source§

impl Hash for DownloadKind

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl Clone for DownloadKind

source§

fn clone(&self) -> DownloadKind

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for DownloadKind

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for DownloadKind

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<DownloadKind> for HashAndFormat

source§

fn from(value: DownloadKind) -> Self

Converts to this type from the input type.
source§

impl From<HashAndFormat> for DownloadKind

source§

fn from(value: HashAndFormat) -> Self

Converts to this type from the input type.
source§

impl Hash for DownloadKind

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for DownloadKind

source§

fn eq(&self, other: &DownloadKind) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always diff --git a/pr/2574/docs/iroh_blobs/downloader/struct.DownloadRequest.html b/pr/2574/docs/iroh_blobs/downloader/struct.DownloadRequest.html index 181aa9b535..08d3670469 100644 --- a/pr/2574/docs/iroh_blobs/downloader/struct.DownloadRequest.html +++ b/pr/2574/docs/iroh_blobs/downloader/struct.DownloadRequest.html @@ -10,7 +10,7 @@ that the data is still available when the download is complete.

source

pub fn progress_sender( self, - sender: FlumeProgressSender<DownloadProgress> + sender: AsyncChannelProgressSender<DownloadProgress> ) -> Self

Pass a progress sender to receive progress updates.

Trait Implementations§

source§

impl Clone for DownloadRequest

source§

fn clone(&self) -> DownloadRequest

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for DownloadRequest

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh_blobs/downloader/struct.IntentId.html b/pr/2574/docs/iroh_blobs/downloader/struct.IntentId.html index 7cd7de27be..24113ebcc2 100644 --- a/pr/2574/docs/iroh_blobs/downloader/struct.IntentId.html +++ b/pr/2574/docs/iroh_blobs/downloader/struct.IntentId.html @@ -1,6 +1,5 @@ IntentId in iroh_blobs::downloader - Rust

Struct iroh_blobs::downloader::IntentId

source ·
pub struct IntentId(pub u64);
Expand description

Identifier for a download intent.

-

Tuple Fields§

§0: u64

Trait Implementations§

source§

impl Clone for IntentId

source§

fn clone(&self) -> IntentId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for IntentId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for IntentId
where - u64: Display,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for IntentId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Tuple Fields§

§0: u64

Trait Implementations§

source§

impl Clone for IntentId

source§

fn clone(&self) -> IntentId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for IntentId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for IntentId

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for IntentId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for IntentId

source§

fn cmp(&self, other: &IntentId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/pr/2574/docs/iroh_blobs/get/enum.GetResponseError.html b/pr/2574/docs/iroh_blobs/get/enum.GetResponseError.html index 1a977d14fb..d7ac740216 100644 --- a/pr/2574/docs/iroh_blobs/get/enum.GetResponseError.html +++ b/pr/2574/docs/iroh_blobs/get/enum.GetResponseError.html @@ -10,7 +10,7 @@
§

Read(ReadError)

Error when reading from the stream

§

Decode(DecodeError)

Error when decoding, e.g. hash mismatch

§

Generic(Error)

A generic error

-

Trait Implementations§

source§

impl Debug for GetResponseError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for GetResponseError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for GetResponseError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ConnectionError> for GetResponseError

source§

fn from(source: ConnectionError) -> Self

Converts to this type from the input type.
source§

impl From<DecodeError> for GetResponseError

source§

fn from(cause: DecodeError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for GetResponseError

source§

fn from(cause: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for GetResponseError

source§

fn from(cause: Error) -> Self

Converts to this type from the input type.
source§

impl From<GetResponseError> for Error

source§

fn from(cause: GetResponseError) -> Self

Converts to this type from the input type.
source§

impl From<ReadError> for GetResponseError

source§

fn from(source: ReadError) -> Self

Converts to this type from the input type.
source§

impl From<WriteError> for GetResponseError

source§

fn from(source: WriteError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for GetResponseError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for GetResponseError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for GetResponseError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ConnectionError> for GetResponseError

source§

fn from(source: ConnectionError) -> Self

Converts to this type from the input type.
source§

impl From<DecodeError> for GetResponseError

source§

fn from(cause: DecodeError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for GetResponseError

source§

fn from(cause: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for GetResponseError

source§

fn from(cause: Error) -> Self

Converts to this type from the input type.
source§

impl From<GetResponseError> for Error

source§

fn from(cause: GetResponseError) -> Self

Converts to this type from the input type.
source§

impl From<ReadError> for GetResponseError

source§

fn from(source: ReadError) -> Self

Converts to this type from the input type.
source§

impl From<WriteError> for GetResponseError

source§

fn from(source: WriteError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh_blobs/get/error/enum.GetError.html b/pr/2574/docs/iroh_blobs/get/error/enum.GetError.html index 8b2070e573..e8b18d7b94 100644 --- a/pr/2574/docs/iroh_blobs/get/error/enum.GetError.html +++ b/pr/2574/docs/iroh_blobs/get/error/enum.GetError.html @@ -12,7 +12,7 @@
§

Io(Error)

Network or IO operation failed.

§

BadRequest(Error)

Our download request is invalid.

§

LocalFailure(Error)

Operation failed on the local node.

-

Trait Implementations§

source§

impl Debug for GetError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for GetError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for GetError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<AtBlobHeaderNextError> for GetError

source§

fn from(value: AtBlobHeaderNextError) -> Self

Converts to this type from the input type.
source§

impl From<ConnectedNextError> for GetError

source§

fn from(value: ConnectedNextError) -> Self

Converts to this type from the input type.
source§

impl From<ConnectionError> for GetError

source§

fn from(value: ConnectionError) -> Self

Converts to this type from the input type.
source§

impl From<DecodeError> for GetError

source§

fn from(value: DecodeError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for GetError

source§

fn from(value: Error) -> Self

Converts to this type from the input type.
source§

impl From<GetError> for FailureAction

source§

fn from(e: GetError) -> Self

Converts to this type from the input type.
source§

impl From<ProgressSendError> for GetError

source§

fn from(value: ProgressSendError) -> Self

Converts to this type from the input type.
source§

impl From<ReadError> for GetError

source§

fn from(value: ReadError) -> Self

Converts to this type from the input type.
source§

impl From<WriteError> for GetError

source§

fn from(value: WriteError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for GetError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for GetError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for GetError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<AtBlobHeaderNextError> for GetError

source§

fn from(value: AtBlobHeaderNextError) -> Self

Converts to this type from the input type.
source§

impl From<ConnectedNextError> for GetError

source§

fn from(value: ConnectedNextError) -> Self

Converts to this type from the input type.
source§

impl From<ConnectionError> for GetError

source§

fn from(value: ConnectionError) -> Self

Converts to this type from the input type.
source§

impl From<DecodeError> for GetError

source§

fn from(value: DecodeError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for GetError

source§

fn from(value: Error) -> Self

Converts to this type from the input type.
source§

impl From<GetError> for FailureAction

source§

fn from(e: GetError) -> Self

Converts to this type from the input type.
source§

impl From<ProgressSendError> for GetError

source§

fn from(value: ProgressSendError) -> Self

Converts to this type from the input type.
source§

impl From<ReadError> for GetError

source§

fn from(value: ReadError) -> Self

Converts to this type from the input type.
source§

impl From<WriteError> for GetError

source§

fn from(value: WriteError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh_blobs/get/fsm/enum.AtBlobHeaderNextError.html b/pr/2574/docs/iroh_blobs/get/fsm/enum.AtBlobHeaderNextError.html index 78c26ee43e..7a3d43b213 100644 --- a/pr/2574/docs/iroh_blobs/get/fsm/enum.AtBlobHeaderNextError.html +++ b/pr/2574/docs/iroh_blobs/get/fsm/enum.AtBlobHeaderNextError.html @@ -7,7 +7,7 @@

This indicates that the provider does not have the requested data.

§

Read(ReadError)

Quinn read error when reading the size header

§

Io(Error)

Generic io error

-

Trait Implementations§

source§

impl Debug for AtBlobHeaderNextError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for AtBlobHeaderNextError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for AtBlobHeaderNextError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<AtBlobHeaderNextError> for DecodeError

source§

fn from(cause: AtBlobHeaderNextError) -> Self

Converts to this type from the input type.
source§

impl From<AtBlobHeaderNextError> for Error

source§

fn from(cause: AtBlobHeaderNextError) -> Self

Converts to this type from the input type.
source§

impl From<AtBlobHeaderNextError> for GetError

source§

fn from(value: AtBlobHeaderNextError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for AtBlobHeaderNextError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for AtBlobHeaderNextError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for AtBlobHeaderNextError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<AtBlobHeaderNextError> for DecodeError

source§

fn from(cause: AtBlobHeaderNextError) -> Self

Converts to this type from the input type.
source§

impl From<AtBlobHeaderNextError> for Error

source§

fn from(cause: AtBlobHeaderNextError) -> Self

Converts to this type from the input type.
source§

impl From<AtBlobHeaderNextError> for GetError

source§

fn from(value: AtBlobHeaderNextError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh_blobs/get/fsm/enum.BlobContentNext.html b/pr/2574/docs/iroh_blobs/get/fsm/enum.BlobContentNext.html index 172ac5ab36..8e36bbf694 100644 --- a/pr/2574/docs/iroh_blobs/get/fsm/enum.BlobContentNext.html +++ b/pr/2574/docs/iroh_blobs/get/fsm/enum.BlobContentNext.html @@ -4,7 +4,7 @@ }
Expand description

The next state after reading a content item

Variants§

§

More((AtBlobContent, Result<BaoContentItem, DecodeError>))

We expect more content

§

Done(AtEndBlob)

We are done with this blob

-

Trait Implementations§

source§

impl Debug for BlobContentNext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<(AtBlobContent, Result<BaoContentItem, DecodeError>)> for BlobContentNext

source§

fn from(value: (AtBlobContent, Result<BaoContentItem, DecodeError>)) -> Self

Converts to this type from the input type.
source§

impl From<AtEndBlob> for BlobContentNext

source§

fn from(value: AtEndBlob) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for BlobContentNext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<(AtBlobContent, Result<BaoContentItem, DecodeError>)> for BlobContentNext

source§

fn from(value: (AtBlobContent, Result<BaoContentItem, DecodeError>)) -> Self

Converts to this type from the input type.
source§

impl From<AtEndBlob> for BlobContentNext

source§

fn from(value: AtEndBlob) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh_blobs/get/fsm/enum.ConnectedNext.html b/pr/2574/docs/iroh_blobs/get/fsm/enum.ConnectedNext.html index 01be2c3af5..8bc8cf8126 100644 --- a/pr/2574/docs/iroh_blobs/get/fsm/enum.ConnectedNext.html +++ b/pr/2574/docs/iroh_blobs/get/fsm/enum.ConnectedNext.html @@ -6,7 +6,7 @@

Variants§

§

StartRoot(AtStartRoot)

First response is either a collection or a single blob

§

StartChild(AtStartChild)

First response is a child

§

Closing(AtClosing)

Request is empty

-

Trait Implementations§

source§

impl Debug for ConnectedNext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<AtClosing> for ConnectedNext

source§

fn from(value: AtClosing) -> Self

Converts to this type from the input type.
source§

impl From<AtStartChild> for ConnectedNext

source§

fn from(value: AtStartChild) -> Self

Converts to this type from the input type.
source§

impl From<AtStartRoot> for ConnectedNext

source§

fn from(value: AtStartRoot) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for ConnectedNext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<AtClosing> for ConnectedNext

source§

fn from(value: AtClosing) -> Self

Converts to this type from the input type.
source§

impl From<AtStartChild> for ConnectedNext

source§

fn from(value: AtStartChild) -> Self

Converts to this type from the input type.
source§

impl From<AtStartRoot> for ConnectedNext

source§

fn from(value: AtStartRoot) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh_blobs/get/fsm/enum.ConnectedNextError.html b/pr/2574/docs/iroh_blobs/get/fsm/enum.ConnectedNextError.html index a7a7c1ce5f..db21aaa3be 100644 --- a/pr/2574/docs/iroh_blobs/get/fsm/enum.ConnectedNextError.html +++ b/pr/2574/docs/iroh_blobs/get/fsm/enum.ConnectedNextError.html @@ -8,7 +8,7 @@
§

RequestTooBig

The serialized request is too long to be sent

§

Write(WriteError)

Error when writing the request to the [SendStream].

§

Io(Error)

A generic io error

-

Trait Implementations§

source§

impl Debug for ConnectedNextError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ConnectedNextError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ConnectedNextError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ConnectedNextError> for Error

source§

fn from(cause: ConnectedNextError) -> Self

Converts to this type from the input type.
source§

impl From<ConnectedNextError> for GetError

source§

fn from(value: ConnectedNextError) -> Self

Converts to this type from the input type.
source§

impl From<WriteError> for ConnectedNextError

source§

fn from(source: WriteError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for ConnectedNextError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ConnectedNextError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ConnectedNextError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ConnectedNextError> for Error

source§

fn from(cause: ConnectedNextError) -> Self

Converts to this type from the input type.
source§

impl From<ConnectedNextError> for GetError

source§

fn from(value: ConnectedNextError) -> Self

Converts to this type from the input type.
source§

impl From<WriteError> for ConnectedNextError

source§

fn from(source: WriteError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh_blobs/get/fsm/enum.DecodeError.html b/pr/2574/docs/iroh_blobs/get/fsm/enum.DecodeError.html index 81d5931fc1..449d853aae 100644 --- a/pr/2574/docs/iroh_blobs/get/fsm/enum.DecodeError.html +++ b/pr/2574/docs/iroh_blobs/get/fsm/enum.DecodeError.html @@ -30,7 +30,7 @@
§

LeafHashMismatch(ChunkNum)

The hash of a leaf did not match the expected hash

§

Read(ReadError)

Error when reading from the stream

§

Io(Error)

A generic io error

-

Trait Implementations§

source§

impl Debug for DecodeError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for DecodeError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for DecodeError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<AtBlobHeaderNextError> for DecodeError

source§

fn from(cause: AtBlobHeaderNextError) -> Self

Converts to this type from the input type.
source§

impl From<DecodeError> for DecodeError

source§

fn from(value: DecodeError) -> Self

Converts to this type from the input type.
source§

impl From<DecodeError> for Error

source§

fn from(cause: DecodeError) -> Self

Converts to this type from the input type.
source§

impl From<DecodeError> for GetError

source§

fn from(value: DecodeError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for DecodeError

source§

fn from(source: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for DecodeError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for DecodeError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for DecodeError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<AtBlobHeaderNextError> for DecodeError

source§

fn from(cause: AtBlobHeaderNextError) -> Self

Converts to this type from the input type.
source§

impl From<DecodeError> for DecodeError

source§

fn from(value: DecodeError) -> Self

Converts to this type from the input type.
source§

impl From<DecodeError> for Error

source§

fn from(cause: DecodeError) -> Self

Converts to this type from the input type.
source§

impl From<DecodeError> for GetError

source§

fn from(value: DecodeError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for DecodeError

source§

fn from(source: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh_blobs/store/enum.ReportLevel.html b/pr/2574/docs/iroh_blobs/store/enum.ReportLevel.html index f85b345285..38718a27be 100644 --- a/pr/2574/docs/iroh_blobs/store/enum.ReportLevel.html +++ b/pr/2574/docs/iroh_blobs/store/enum.ReportLevel.html @@ -8,8 +8,8 @@
§

Info

Info messages

§

Warn

Warnings, something is not quite right

§

Error

Errors, something is very wrong

-

Trait Implementations§

source§

impl Clone for ReportLevel

source§

fn clone(&self) -> ReportLevel

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ReportLevel

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ReportLevel

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ReportLevel

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Ord for ReportLevel

source§

fn cmp(&self, other: &ReportLevel) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where +

Trait Implementations§

source§

impl Clone for ReportLevel

source§

fn clone(&self) -> ReportLevel

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ReportLevel

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ReportLevel

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ReportLevel

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Ord for ReportLevel

source§

fn cmp(&self, other: &ReportLevel) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for ReportLevel

source§

fn eq(&self, other: &ReportLevel) -> bool

This method tests for self and other values to be equal, and is used diff --git a/pr/2574/docs/iroh_blobs/struct.Hash.html b/pr/2574/docs/iroh_blobs/struct.Hash.html index 13754b0781..9754b76af5 100644 --- a/pr/2574/docs/iroh_blobs/struct.Hash.html +++ b/pr/2574/docs/iroh_blobs/struct.Hash.html @@ -6,10 +6,10 @@
source

pub fn to_hex(&self) -> String

Convert the hash to a hex string.

source

pub fn fmt_short(&self) -> String

Convert to a base32 string limited to the first 10 bytes for a friendly string representation of the hash.

-

Trait Implementations§

source§

impl AsRef<[u8]> for Hash

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Borrow<[u8]> for Hash

source§

fn borrow(&self) -> &[u8]

Immutably borrows from an owned value. Read more
source§

impl Borrow<[u8; 32]> for Hash

source§

fn borrow(&self) -> &[u8; 32]

Immutably borrows from an owned value. Read more
source§

impl Clone for Hash

source§

fn clone(&self) -> Hash

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Hash

Trait Implementations§

source§

impl AsRef<[u8]> for Hash

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Borrow<[u8]> for Hash

source§

fn borrow(&self) -> &[u8]

Immutably borrows from an owned value. Read more
source§

impl Borrow<[u8; 32]> for Hash

source§

fn borrow(&self) -> &[u8; 32]

Immutably borrows from an owned value. Read more
source§

impl Clone for Hash

source§

fn clone(&self) -> Hash

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Hash

source§

fn deserialize<D>( deserializer: D ) -> Result<Hash, <D as Deserializer<'de>>::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&[u8; 32]> for Hash

source§

fn from(value: &[u8; 32]) -> Hash

Converts to this type from the input type.
source§

impl From<[u8; 32]> for Hash

source§

fn from(value: [u8; 32]) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for [u8; 32]

source§

fn from(value: Hash) -> [u8; 32]

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
source§

impl FromIterator<Hash> for HashSeq

source§

fn from_iter<T: IntoIterator<Item = Hash>>(iter: T) -> Self

Creates a value from an iterator. Read more
source§

impl FromStr for Hash

§

type Err = HexOrBase32ParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Hash, <Hash as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for Hash

source§

fn hash<__H>(&self, state: &mut __H)
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Hash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<&[u8; 32]> for Hash

source§

fn from(value: &[u8; 32]) -> Hash

Converts to this type from the input type.
source§

impl From<[u8; 32]> for Hash

source§

fn from(value: [u8; 32]) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for [u8; 32]

source§

fn from(value: Hash) -> [u8; 32]

Converts to this type from the input type.
source§

impl From<Hash> for Hash

source§

fn from(value: Hash) -> Hash

Converts to this type from the input type.
source§

impl FromIterator<Hash> for HashSeq

source§

fn from_iter<T: IntoIterator<Item = Hash>>(iter: T) -> Self

Creates a value from an iterator. Read more
source§

impl FromStr for Hash

§

type Err = HexOrBase32ParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Hash, <Hash as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for Hash

source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Key for Hash

source§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
source§

impl MaxSize for Hash

source§

const POSTCARD_MAX_SIZE: usize = 32usize

The maximum possible size that the serialization of this diff --git a/pr/2574/docs/iroh_blobs/struct.HashAndFormat.html b/pr/2574/docs/iroh_blobs/struct.HashAndFormat.html index 56a6e569ef..80ceabd49d 100644 --- a/pr/2574/docs/iroh_blobs/struct.HashAndFormat.html +++ b/pr/2574/docs/iroh_blobs/struct.HashAndFormat.html @@ -10,7 +10,7 @@

Trait Implementations§

source§

impl Clone for HashAndFormat

source§

fn clone(&self) -> HashAndFormat

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for HashAndFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for HashAndFormat

source§

fn deserialize<D>( deserializer: D ) -> Result<HashAndFormat, <D as Deserializer<'de>>::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for HashAndFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<DownloadKind> for HashAndFormat

source§

fn from(value: DownloadKind) -> Self

Converts to this type from the input type.
source§

impl From<HashAndFormat> for DownloadKind

source§

fn from(value: HashAndFormat) -> Self

Converts to this type from the input type.
source§

impl FromStr for HashAndFormat

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<HashAndFormat, <HashAndFormat as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for HashAndFormat

source§

fn hash<__H>(&self, state: &mut __H)
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for HashAndFormat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl From<DownloadKind> for HashAndFormat

source§

fn from(value: DownloadKind) -> Self

Converts to this type from the input type.
source§

impl From<HashAndFormat> for DownloadKind

source§

fn from(value: HashAndFormat) -> Self

Converts to this type from the input type.
source§

impl FromStr for HashAndFormat

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<HashAndFormat, <HashAndFormat as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for HashAndFormat

source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl MaxSize for HashAndFormat

source§

const POSTCARD_MAX_SIZE: usize = 33usize

The maximum possible size that the serialization of this diff --git a/pr/2574/docs/iroh_blobs/util/enum.SetTagOption.html b/pr/2574/docs/iroh_blobs/util/enum.SetTagOption.html index 81d236347c..c9151a4015 100644 --- a/pr/2574/docs/iroh_blobs/util/enum.SetTagOption.html +++ b/pr/2574/docs/iroh_blobs/util/enum.SetTagOption.html @@ -4,8 +4,7 @@ }
Expand description

Option for commands that allow setting a tag

Variants§

§

Auto

A tag will be automatically generated

§

Named(Tag)

The tag is explicitly named

-

Trait Implementations§

source§

impl Clone for SetTagOption

source§

fn clone(&self) -> SetTagOption

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SetTagOption
where - Tag: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for SetTagOption

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

Trait Implementations§

source§

impl Clone for SetTagOption

source§

fn clone(&self) -> SetTagOption

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SetTagOption

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for SetTagOption

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Ord for SetTagOption

source§

fn cmp(&self, other: &SetTagOption) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where diff --git a/pr/2574/docs/iroh_blobs/util/local_pool/enum.SpawnError.html b/pr/2574/docs/iroh_blobs/util/local_pool/enum.SpawnError.html index d2cce499ce..00722c852e 100644 --- a/pr/2574/docs/iroh_blobs/util/local_pool/enum.SpawnError.html +++ b/pr/2574/docs/iroh_blobs/util/local_pool/enum.SpawnError.html @@ -2,7 +2,7 @@ Cancelled, }
Expand description

Errors for spawn failures

Variants§

§

Cancelled

Task was dropped, either due to a panic or because the pool was shut down.

-

Trait Implementations§

source§

impl Debug for SpawnError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for SpawnError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for SpawnError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<SpawnError> for Error

source§

fn from(e: SpawnError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for SpawnError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for SpawnError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for SpawnError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<SpawnError> for Error

source§

fn from(e: SpawnError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh_blobs/util/progress/enum.ProgressSendError.html b/pr/2574/docs/iroh_blobs/util/progress/enum.ProgressSendError.html index f984a80bcd..192cc8c6ca 100644 --- a/pr/2574/docs/iroh_blobs/util/progress/enum.ProgressSendError.html +++ b/pr/2574/docs/iroh_blobs/util/progress/enum.ProgressSendError.html @@ -1,9 +1,9 @@ -ProgressSendError in iroh_blobs::util::progress - Rust

Enum iroh_blobs::util::progress::ProgressSendError

source ·
pub enum ProgressSendError {
+ProgressSendError in iroh_blobs::util::progress - Rust

Enum iroh_blobs::util::progress::ProgressSendError

source ·
pub enum ProgressSendError {
     ReceiverDropped,
 }
Expand description

An error that can occur when sending progress messages.

Really the only error that can occur is if the receiver is dropped.

Variants§

§

ReceiverDropped

The receiver was dropped.

-

Trait Implementations§

source§

impl Clone for ProgressSendError

source§

fn clone(&self) -> ProgressSendError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ProgressSendError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ProgressSendError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ProgressSendError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ProgressSendError> for Error

source§

fn from(e: ProgressSendError) -> Self

Converts to this type from the input type.
source§

impl From<ProgressSendError> for GetError

source§

fn from(value: ProgressSendError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Clone for ProgressSendError

source§

fn clone(&self) -> ProgressSendError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ProgressSendError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ProgressSendError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ProgressSendError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ProgressSendError> for Error

source§

fn from(e: ProgressSendError) -> Self

Converts to this type from the input type.
source§

impl From<ProgressSendError> for GetError

source§

fn from(value: ProgressSendError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh_blobs/util/progress/index.html b/pr/2574/docs/iroh_blobs/util/progress/index.html index 47452432d9..6c3ef87d48 100644 --- a/pr/2574/docs/iroh_blobs/util/progress/index.html +++ b/pr/2574/docs/iroh_blobs/util/progress/index.html @@ -1,4 +1,4 @@ -iroh_blobs::util::progress - Rust

Module iroh_blobs::util::progress

source ·
Expand description

Utilities for reporting progress.

+iroh_blobs::util::progress - Rust

Module iroh_blobs::util::progress

source ·
Expand description

Utilities for reporting progress.

The main entry point is the ProgressSender trait.

-

Structs§

Enums§

Traits§

  • An id generator, to be combined with a progress sender.
  • A general purpose progress sender. This should be usable for reporting progress +

Structs§

Enums§

Traits§

  • An id generator, to be combined with a progress sender.
  • A general purpose progress sender. This should be usable for reporting progress from both blocking and non-blocking contexts.

Type Aliases§

\ No newline at end of file diff --git a/pr/2574/docs/iroh_blobs/util/progress/sidebar-items.js b/pr/2574/docs/iroh_blobs/util/progress/sidebar-items.js index ac40ded71d..16b5ad8058 100644 --- a/pr/2574/docs/iroh_blobs/util/progress/sidebar-items.js +++ b/pr/2574/docs/iroh_blobs/util/progress/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":["ProgressSendError"],"struct":["BoxedProgressSender","FallibleProgressSliceWriter","FlumeProgressSender","IgnoreProgressSender","ProgressSliceWriter","WithFilterMap","WithMap"],"trait":["IdGenerator","ProgressSender"],"type":["ProgressSendResult"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["ProgressSendError"],"struct":["AsyncChannelProgressSender","BoxedProgressSender","FallibleProgressSliceWriter","FlumeProgressSender","IgnoreProgressSender","ProgressSliceWriter","WithFilterMap","WithMap"],"trait":["IdGenerator","ProgressSender"],"type":["ProgressSendResult"]}; \ No newline at end of file diff --git a/pr/2574/docs/iroh_blobs/util/progress/struct.AsyncChannelProgressSender.html b/pr/2574/docs/iroh_blobs/util/progress/struct.AsyncChannelProgressSender.html new file mode 100644 index 0000000000..48be6b540e --- /dev/null +++ b/pr/2574/docs/iroh_blobs/util/progress/struct.AsyncChannelProgressSender.html @@ -0,0 +1,130 @@ +AsyncChannelProgressSender in iroh_blobs::util::progress - Rust

Struct iroh_blobs::util::progress::AsyncChannelProgressSender

source ·
pub struct AsyncChannelProgressSender<T> { /* private fields */ }
Expand description

A progress sender that uses an async channel.

+

Implementations§

source§

impl<T> AsyncChannelProgressSender<T>

source

pub fn new(sender: Sender<T>) -> Self

Create a new progress sender from an async channel sender.

+
source

pub fn same_channel(&self, other: &AsyncChannelProgressSender<T>) -> bool

Returns true if other sends on the same async_channel channel as self.

+

Trait Implementations§

source§

impl<T> Clone for AsyncChannelProgressSender<T>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T> Debug for AsyncChannelProgressSender<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T> IdGenerator for AsyncChannelProgressSender<T>

source§

fn new_id(&self) -> u64

Get a new unique id
source§

impl<T: Send + Sync + 'static> ProgressSender for AsyncChannelProgressSender<T>

§

type Msg = T

The message being sent.
source§

async fn send(&self, msg: Self::Msg) -> Result<(), ProgressSendError>

Send a message and wait if the receiver is full. Read more
source§

fn try_send(&self, msg: Self::Msg) -> Result<(), ProgressSendError>

Try to send a message and drop it if the receiver is full. Read more
source§

fn blocking_send(&self, msg: Self::Msg) -> Result<(), ProgressSendError>

Send a message and block if the receiver is full. Read more
source§

fn with_map<U: Send + Sync + 'static, F: Fn(U) -> Self::Msg + Send + Sync + Clone + 'static>( + self, + f: F +) -> WithMap<Self, U, F>

Transform the message type by mapping to the type of this sender.
source§

fn with_filter_map<U: Send + Sync + 'static, F: Fn(U) -> Option<Self::Msg> + Send + Sync + Clone + 'static>( + self, + f: F +) -> WithFilterMap<Self, U, F>

Transform the message type by filter-mapping to the type of this sender.
source§

fn boxed(self) -> BoxedProgressSender<Self::Msg>
where + Self: IdGenerator,

Create a boxed progress sender to get rid of the concrete type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where + T: 'a,

§

fn implicit( + self, + class: Class, + constructed: bool, + tag: u32 +) -> TaggedParser<'a, Implicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where + T: 'a,

§

fn implicit( + self, + class: Class, + constructed: bool, + tag: u32 +) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<T> DynClone for T
where + T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where + Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where + Self: Display,

Causes self to use its Display implementation when +Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where + Self: LowerExp,

Causes self to use its LowerExp implementation when +Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where + Self: LowerHex,

Causes self to use its LowerHex implementation when +Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where + Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where + Self: Pointer,

Causes self to use its Pointer implementation when +Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where + Self: UpperExp,

Causes self to use its UpperExp implementation when +Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where + Self: UpperHex,

Causes self to use its UpperHex implementation when +Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where + &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> FromRef<T> for T
where + T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where + R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where + R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where + Self: Borrow<B>, + B: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( + &'a mut self, + func: impl FnOnce(&'a mut B) -> R +) -> R
where + Self: BorrowMut<B>, + B: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe +function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where + Self: AsMut<U>, + U: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe +function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( + &'a mut self, + func: impl FnOnce(&'a mut T) -> R +) -> R
where + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe +function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release +builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release +builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release +builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release +builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release +builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more
\ No newline at end of file diff --git a/pr/2574/docs/iroh_blobs/util/progress/struct.FallibleProgressSliceWriter.html b/pr/2574/docs/iroh_blobs/util/progress/struct.FallibleProgressSliceWriter.html index af27427aad..010db34fc6 100644 --- a/pr/2574/docs/iroh_blobs/util/progress/struct.FallibleProgressSliceWriter.html +++ b/pr/2574/docs/iroh_blobs/util/progress/struct.FallibleProgressSliceWriter.html @@ -1,13 +1,13 @@ -FallibleProgressSliceWriter in iroh_blobs::util::progress - Rust
pub struct FallibleProgressSliceWriter<W, F>(/* private fields */);
Expand description

A slice writer that adds a fallible progress callback.

+FallibleProgressSliceWriter in iroh_blobs::util::progress - Rust
pub struct FallibleProgressSliceWriter<W, F>(/* private fields */);
Expand description

A slice writer that adds a fallible progress callback.

This wraps any AsyncSliceWriter, passes through all operations to the inner writer, and calls the passed on_write callback whenever data is written. on_write must return an io::Result, and can abort the download by returning an error.

-

Implementations§

source§

impl<W: AsyncSliceWriter, F: Fn(u64, usize) -> Result<()> + 'static> FallibleProgressSliceWriter<W, F>

source

pub fn new(inner: W, on_write: F) -> Self

Create a new ProgressSliceWriter from an inner writer and a progress callback

+

Implementations§

source§

impl<W: AsyncSliceWriter, F: Fn(u64, usize) -> Result<()> + 'static> FallibleProgressSliceWriter<W, F>

source

pub fn new(inner: W, on_write: F) -> Self

Create a new ProgressSliceWriter from an inner writer and a progress callback

The on_write function is called for each write, with the offset as the first and the length of the data as the second param. on_write must return a future which resolves to an io::Result. If on_write returns an error, the download is aborted.

-
source

pub fn into_inner(self) -> W

Return the inner writer.

-

Trait Implementations§

source§

impl<W: AsyncSliceWriter + 'static, F: Fn(u64, usize) -> Result<()> + 'static> AsyncSliceWriter for FallibleProgressSliceWriter<W, F>

source§

async fn write_bytes_at(&mut self, offset: u64, data: Bytes) -> Result<()>

Write the entire Bytes at the given position. Read more
source§

async fn write_at(&mut self, offset: u64, data: &[u8]) -> Result<()>

Write the entire slice at the given position. Read more
source§

async fn sync(&mut self) -> Result<()>

Sync any buffers to the underlying storage.
source§

async fn set_len(&mut self, size: u64) -> Result<()>

Set the length of the underlying storage.
source§

impl<W: Debug, F: Debug> Debug for FallibleProgressSliceWriter<W, F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<W, F> Freeze for FallibleProgressSliceWriter<W, F>
where +

source

pub fn into_inner(self) -> W

Return the inner writer.

+

Trait Implementations§

source§

impl<W: AsyncSliceWriter + 'static, F: Fn(u64, usize) -> Result<()> + 'static> AsyncSliceWriter for FallibleProgressSliceWriter<W, F>

source§

async fn write_bytes_at(&mut self, offset: u64, data: Bytes) -> Result<()>

Write the entire Bytes at the given position. Read more
source§

async fn write_at(&mut self, offset: u64, data: &[u8]) -> Result<()>

Write the entire slice at the given position. Read more
source§

async fn sync(&mut self) -> Result<()>

Sync any buffers to the underlying storage.
source§

async fn set_len(&mut self, size: u64) -> Result<()>

Set the length of the underlying storage.
source§

impl<W: Debug, F: Debug> Debug for FallibleProgressSliceWriter<W, F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<W, F> Freeze for FallibleProgressSliceWriter<W, F>
where W: Freeze, F: Freeze,

§

impl<W, F> RefUnwindSafe for FallibleProgressSliceWriter<W, F>
where W: RefUnwindSafe, diff --git a/pr/2574/docs/iroh_blobs/util/progress/struct.ProgressSliceWriter.html b/pr/2574/docs/iroh_blobs/util/progress/struct.ProgressSliceWriter.html index ac59fa3bbc..1af68688a4 100644 --- a/pr/2574/docs/iroh_blobs/util/progress/struct.ProgressSliceWriter.html +++ b/pr/2574/docs/iroh_blobs/util/progress/struct.ProgressSliceWriter.html @@ -1,11 +1,11 @@ -ProgressSliceWriter in iroh_blobs::util::progress - Rust

Struct iroh_blobs::util::progress::ProgressSliceWriter

source ·
pub struct ProgressSliceWriter<W, F>(/* private fields */);
Expand description

A slice writer that adds a synchronous progress callback.

+ProgressSliceWriter in iroh_blobs::util::progress - Rust

Struct iroh_blobs::util::progress::ProgressSliceWriter

source ·
pub struct ProgressSliceWriter<W, F>(/* private fields */);
Expand description

A slice writer that adds a synchronous progress callback.

This wraps any AsyncSliceWriter, passes through all operations to the inner writer, and calls the passed on_write callback whenever data is written.

-

Implementations§

source§

impl<W: AsyncSliceWriter, F: FnMut(u64)> ProgressSliceWriter<W, F>

source

pub fn new(inner: W, on_write: F) -> Self

Create a new ProgressSliceWriter from an inner writer and a progress callback

+

Implementations§

source§

impl<W: AsyncSliceWriter, F: FnMut(u64)> ProgressSliceWriter<W, F>

source

pub fn new(inner: W, on_write: F) -> Self

Create a new ProgressSliceWriter from an inner writer and a progress callback

The on_write function is called for each write, with the offset as the first and the length of the data as the second param.

-
source

pub fn into_inner(self) -> W

Return the inner writer

-

Trait Implementations§

source§

impl<W: AsyncSliceWriter + 'static, F: FnMut(u64, usize) + 'static> AsyncSliceWriter for ProgressSliceWriter<W, F>

source§

async fn write_bytes_at(&mut self, offset: u64, data: Bytes) -> Result<()>

Write the entire Bytes at the given position. Read more
source§

async fn write_at(&mut self, offset: u64, data: &[u8]) -> Result<()>

Write the entire slice at the given position. Read more
source§

async fn sync(&mut self) -> Result<()>

Sync any buffers to the underlying storage.
source§

async fn set_len(&mut self, size: u64) -> Result<()>

Set the length of the underlying storage.
source§

impl<W: Debug, F: Debug> Debug for ProgressSliceWriter<W, F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<W, F> Freeze for ProgressSliceWriter<W, F>
where +

source

pub fn into_inner(self) -> W

Return the inner writer

+

Trait Implementations§

source§

impl<W: AsyncSliceWriter + 'static, F: FnMut(u64, usize) + 'static> AsyncSliceWriter for ProgressSliceWriter<W, F>

source§

async fn write_bytes_at(&mut self, offset: u64, data: Bytes) -> Result<()>

Write the entire Bytes at the given position. Read more
source§

async fn write_at(&mut self, offset: u64, data: &[u8]) -> Result<()>

Write the entire slice at the given position. Read more
source§

async fn sync(&mut self) -> Result<()>

Sync any buffers to the underlying storage.
source§

async fn set_len(&mut self, size: u64) -> Result<()>

Set the length of the underlying storage.
source§

impl<W: Debug, F: Debug> Debug for ProgressSliceWriter<W, F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<W, F> Freeze for ProgressSliceWriter<W, F>
where W: Freeze, F: Freeze,

§

impl<W, F> RefUnwindSafe for ProgressSliceWriter<W, F>
where W: RefUnwindSafe, diff --git a/pr/2574/docs/iroh_blobs/util/progress/trait.IdGenerator.html b/pr/2574/docs/iroh_blobs/util/progress/trait.IdGenerator.html index dc33d1d51a..29a7471ab6 100644 --- a/pr/2574/docs/iroh_blobs/util/progress/trait.IdGenerator.html +++ b/pr/2574/docs/iroh_blobs/util/progress/trait.IdGenerator.html @@ -3,4 +3,4 @@ fn new_id(&self) -> u64; }

Expand description

An id generator, to be combined with a progress sender.

Required Methods§

source

fn new_id(&self) -> u64

Get a new unique id

-

Implementations on Foreign Types§

source§

impl<T: Send + Sync + 'static> IdGenerator for Arc<dyn BoxableProgressSender<T>>

source§

fn new_id(&self) -> u64

Implementors§

source§

impl<I: IdGenerator + ProgressSender, U: Send + Sync + 'static, F: Fn(U) -> I::Msg + Clone + Send + Sync + 'static> IdGenerator for WithMap<I, U, F>

source§

impl<I: IdGenerator, U, F> IdGenerator for WithFilterMap<I, U, F>

source§

impl<T> IdGenerator for FlumeProgressSender<T>

source§

impl<T> IdGenerator for IgnoreProgressSender<T>

source§

impl<T: Send + Sync + 'static> IdGenerator for BoxedProgressSender<T>

\ No newline at end of file +

Implementations on Foreign Types§

source§

impl<T: Send + Sync + 'static> IdGenerator for Arc<dyn BoxableProgressSender<T>>

source§

fn new_id(&self) -> u64

Implementors§

\ No newline at end of file diff --git a/pr/2574/docs/iroh_blobs/util/progress/trait.ProgressSender.html b/pr/2574/docs/iroh_blobs/util/progress/trait.ProgressSender.html index 8d3214e2a7..5131c4e12d 100644 --- a/pr/2574/docs/iroh_blobs/util/progress/trait.ProgressSender.html +++ b/pr/2574/docs/iroh_blobs/util/progress/trait.ProgressSender.html @@ -91,4 +91,4 @@

WithFilterMap<Self, U, F>

Transform the message type by filter-mapping to the type of this sender.

source

fn boxed(self) -> BoxedProgressSender<Self::Msg>
where Self: IdGenerator,

Create a boxed progress sender to get rid of the concrete type.

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<T: Send + Sync + 'static> ProgressSender for Arc<dyn BoxableProgressSender<T>>

§

type Msg = T

source§

fn send(&self, msg: T) -> impl Future<Output = ProgressSendResult<()>> + Send

source§

fn try_send(&self, msg: T) -> ProgressSendResult<()>

source§

fn blocking_send(&self, msg: T) -> ProgressSendResult<()>

source§

impl<T: ProgressSender> ProgressSender for Option<T>

§

type Msg = <T as ProgressSender>::Msg

source§

async fn send(&self, msg: Self::Msg) -> ProgressSendResult<()>

source§

fn try_send(&self, msg: Self::Msg) -> ProgressSendResult<()>

source§

fn blocking_send(&self, msg: Self::Msg) -> ProgressSendResult<()>

Implementors§

source§

impl<I: ProgressSender, U: Send + Sync + 'static, F: Fn(U) -> Option<I::Msg> + Clone + Send + Sync + 'static> ProgressSender for WithFilterMap<I, U, F>

§

type Msg = U

source§

impl<I: ProgressSender, U: Send + Sync + 'static, F: Fn(U) -> I::Msg + Clone + Send + Sync + 'static> ProgressSender for WithMap<I, U, F>

§

type Msg = U

source§

impl<T: Send + Sync + 'static> ProgressSender for BoxedProgressSender<T>

§

type Msg = T

source§

impl<T: Send + Sync + 'static> ProgressSender for FlumeProgressSender<T>

§

type Msg = T

source§

impl<T: Send + Sync + 'static> ProgressSender for IgnoreProgressSender<T>

§

type Msg = T

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<T: Send + Sync + 'static> ProgressSender for Arc<dyn BoxableProgressSender<T>>

§

type Msg = T

source§

fn send(&self, msg: T) -> impl Future<Output = ProgressSendResult<()>> + Send

source§

fn try_send(&self, msg: T) -> ProgressSendResult<()>

source§

fn blocking_send(&self, msg: T) -> ProgressSendResult<()>

source§

impl<T: ProgressSender> ProgressSender for Option<T>

§

type Msg = <T as ProgressSender>::Msg

source§

async fn send(&self, msg: Self::Msg) -> ProgressSendResult<()>

source§

fn try_send(&self, msg: Self::Msg) -> ProgressSendResult<()>

source§

fn blocking_send(&self, msg: Self::Msg) -> ProgressSendResult<()>

Implementors§

source§

impl<I: ProgressSender, U: Send + Sync + 'static, F: Fn(U) -> Option<I::Msg> + Clone + Send + Sync + 'static> ProgressSender for WithFilterMap<I, U, F>

§

type Msg = U

source§

impl<I: ProgressSender, U: Send + Sync + 'static, F: Fn(U) -> I::Msg + Clone + Send + Sync + 'static> ProgressSender for WithMap<I, U, F>

§

type Msg = U

source§

impl<T: Send + Sync + 'static> ProgressSender for AsyncChannelProgressSender<T>

§

type Msg = T

source§

impl<T: Send + Sync + 'static> ProgressSender for BoxedProgressSender<T>

§

type Msg = T

source§

impl<T: Send + Sync + 'static> ProgressSender for FlumeProgressSender<T>

§

type Msg = T

source§

impl<T: Send + Sync + 'static> ProgressSender for IgnoreProgressSender<T>

§

type Msg = T

\ No newline at end of file diff --git a/pr/2574/docs/iroh_blobs/util/progress/type.ProgressSendResult.html b/pr/2574/docs/iroh_blobs/util/progress/type.ProgressSendResult.html index 90b7a86562..7d3e064c14 100644 --- a/pr/2574/docs/iroh_blobs/util/progress/type.ProgressSendResult.html +++ b/pr/2574/docs/iroh_blobs/util/progress/type.ProgressSendResult.html @@ -1,4 +1,4 @@ -ProgressSendResult in iroh_blobs::util::progress - Rust

Type Alias iroh_blobs::util::progress::ProgressSendResult

source ·
pub type ProgressSendResult<T> = Result<T, ProgressSendError>;
Expand description

A result type for progress sending.

+ProgressSendResult in iroh_blobs::util::progress - Rust

Type Alias iroh_blobs::util::progress::ProgressSendResult

source ·
pub type ProgressSendResult<T> = Result<T, ProgressSendError>;
Expand description

A result type for progress sending.

Aliased Type§

enum ProgressSendResult<T> {
     Ok(T),
     Err(ProgressSendError),
diff --git a/pr/2574/docs/iroh_blobs/util/struct.SparseMemFile.html b/pr/2574/docs/iroh_blobs/util/struct.SparseMemFile.html
index 69d591f94f..ef38658a9e 100644
--- a/pr/2574/docs/iroh_blobs/util/struct.SparseMemFile.html
+++ b/pr/2574/docs/iroh_blobs/util/struct.SparseMemFile.html
@@ -1110,8 +1110,7 @@ 
§Examples§Examples
assert_eq!(["hello", "world"].connect(" "), "hello world");
 assert_eq!([[1, 2], [3, 4]].connect(&0), [1, 2, 0, 3, 4]);
-

Trait Implementations§

source§

impl AsRef<[u8]> for SparseMemFile

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Debug for SparseMemFile
where - RangeSet2<usize>: Debug,

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for SparseMemFile

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Deref for SparseMemFile

§

type Target = [u8]

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl From<Vec<u8>> for SparseMemFile

source§

fn from(data: Vec<u8>) -> Self

Converts to this type from the input type.
source§

impl ReadAt for SparseMemFile

source§

fn read_at(&self, offset: u64, buf: &mut [u8]) -> Result<usize>

Reads bytes from an offset in this source into a buffer, returning how +

Trait Implementations§

source§

impl AsRef<[u8]> for SparseMemFile

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Debug for SparseMemFile

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for SparseMemFile

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Deref for SparseMemFile

§

type Target = [u8]

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl From<Vec<u8>> for SparseMemFile

source§

fn from(data: Vec<u8>) -> Self

Converts to this type from the input type.
source§

impl ReadAt for SparseMemFile

source§

fn read_at(&self, offset: u64, buf: &mut [u8]) -> Result<usize>

Reads bytes from an offset in this source into a buffer, returning how many bytes were read. Read more
source§

fn read_exact_at(&self, pos: u64, buf: &mut [u8]) -> Result<(), Error>

Reads the exact number of bytes required to fill buf from an offset. Read more
source§

impl Size for SparseMemFile

source§

fn size(&self) -> Result<Option<u64>>

Get the size of this object, in bytes. Read more
source§

impl TryInto<Vec<u8>> for SparseMemFile

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<Vec<u8>, Self::Error>

Performs the conversion.
source§

impl WriteAt for SparseMemFile

source§

fn write_at(&mut self, offset: u64, buf: &[u8]) -> Result<usize>

Writes bytes from a buffer to an offset, returning the number of bytes written. Read more
source§

fn flush(&mut self) -> Result<()>

Flush this writer, ensuring that any intermediately buffered data reaches its destination. Read more
source§

fn write_all_at(&mut self, pos: u64, buf: &[u8]) -> Result<(), Error>

Writes a complete buffer at an offset. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/pr/2574/docs/iroh_blobs/util/struct.Tag.html b/pr/2574/docs/iroh_blobs/util/struct.Tag.html index ef7985e9eb..3af0e55385 100644 --- a/pr/2574/docs/iroh_blobs/util/struct.Tag.html +++ b/pr/2574/docs/iroh_blobs/util/struct.Tag.html @@ -1,14 +1,14 @@ Tag in iroh_blobs::util - Rust

Struct iroh_blobs::util::Tag

source ·
pub struct Tag(pub Bytes);
Expand description

A tag

Tuple Fields§

§0: Bytes

Implementations§

source§

impl Tag

source

pub fn auto(time: SystemTime, exists: impl Fn(&[u8]) -> bool) -> Self

Create a new tag that does not exist yet.

Trait Implementations§

source§

impl Borrow<[u8]> for Tag

source§

fn borrow(&self) -> &[u8]

Immutably borrows from an owned value. Read more
source§

impl Clone for Tag

source§

fn clone(&self) -> Tag

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Tag

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Tag

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Tag

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<&str> for Tag

source§

fn from(value: &str) -> Self

Converts to this type from the input type.
source§

impl From<Bytes> for Tag

source§

fn from(value: Bytes) -> Self

Converts to this type from the input type.
source§

impl From<String> for Tag

source§

fn from(value: String) -> Self

Converts to this type from the input type.
source§

impl From<Tag> for Bytes

source§

fn from(value: Tag) -> Self

Converts to this type from the input type.
source§

impl Key for Tag

source§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
source§

impl Ord for Tag

source§

fn cmp(&self, other: &Tag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Tag

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<&str> for Tag

source§

fn from(value: &str) -> Self

Converts to this type from the input type.
source§

impl From<Bytes> for Tag

source§

fn from(value: Bytes) -> Self

Converts to this type from the input type.
source§

impl From<String> for Tag

source§

fn from(value: String) -> Self

Converts to this type from the input type.
source§

impl From<Tag> for Bytes

source§

fn from(value: Tag) -> Self

Converts to this type from the input type.
source§

impl Key for Tag

source§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
source§

impl Ord for Tag

source§

fn cmp(&self, other: &Tag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Tag

source§

fn eq(&self, other: &Tag) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for Tag

source§

fn partial_cmp(&self, other: &Tag) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl RedbKey for Tag

source§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
source§

impl RedbValue for Tag

§

type SelfType<'a> = Tag

SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a
§

type AsBytes<'a> = Bytes

source§

fn fixed_width() -> Option<usize>

Width of a fixed type, or None for variable width
source§

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>
where +operator. Read more

source§

impl RedbKey for Tag

source§

fn compare(data1: &[u8], data2: &[u8]) -> Ordering

Compare data1 with data2
source§

impl RedbValue for Tag

§

type SelfType<'a> = Tag

SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a
§

type AsBytes<'a> = Bytes

source§

fn fixed_width() -> Option<usize>

Width of a fixed type, or None for variable width
source§

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>
where Self: 'a,

Deserializes data Implementations may return a view over data, or an owned type
source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Self::AsBytes<'a>
where Self: 'a + 'b,

Serialize the value to a slice
source§

fn type_name() -> TypeName

Globally unique identifier for this type
source§

impl Serialize for Tag

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where diff --git a/pr/2574/docs/iroh_blobs/util/struct.TempTag.html b/pr/2574/docs/iroh_blobs/util/struct.TempTag.html index 77635def09..b95d394896 100644 --- a/pr/2574/docs/iroh_blobs/util/struct.TempTag.html +++ b/pr/2574/docs/iroh_blobs/util/struct.TempTag.html @@ -10,9 +10,7 @@

source

pub fn hash(&self) -> &Hash

The hash of the pinned item

source

pub fn format(&self) -> BlobFormat

The format of the pinned item

source

pub fn leak(self)

Keep the item alive until the end of the process

-

Trait Implementations§

source§

impl Debug for TempTag

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for TempTag

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for TempTag

source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for TempTag

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/2574/docs/iroh_dns_server/http/enum.CertMode.html b/pr/2574/docs/iroh_dns_server/http/enum.CertMode.html index 0491578d68..2288f1c857 100644 --- a/pr/2574/docs/iroh_dns_server/http/enum.CertMode.html +++ b/pr/2574/docs/iroh_dns_server/http/enum.CertMode.html @@ -6,8 +6,8 @@

Variants§

§

Manual

Certs are loaded from a the cert_cache path

§

LetsEncrypt

ACME with LetsEncrypt servers

§

SelfSigned

Create self-signed certificates and store them in the cert_cache path

-

Trait Implementations§

source§

impl Clone for CertMode

source§

fn clone(&self) -> CertMode

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CertMode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for CertMode

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for CertMode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl PartialEq for CertMode

source§

fn eq(&self, other: &CertMode) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for CertMode

source§

fn clone(&self) -> CertMode

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CertMode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for CertMode

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for CertMode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl PartialEq for CertMode

source§

fn eq(&self, other: &CertMode) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for CertMode

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for CertMode

source§

impl StructuralPartialEq for CertMode

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/pr/2574/docs/iroh_docs/actor/struct.SyncHandle.html b/pr/2574/docs/iroh_docs/actor/struct.SyncHandle.html index 201a71e4e6..6c5cfbcbcf 100644 --- a/pr/2574/docs/iroh_docs/actor/struct.SyncHandle.html +++ b/pr/2574/docs/iroh_docs/actor/struct.SyncHandle.html @@ -26,7 +26,7 @@ namespace: NamespaceId, author: AuthorId, key: Bytes, - hash: Hash, + hash: Hash, len: u64 ) -> Result<()>

source

pub async fn delete_prefix( &self, diff --git a/pr/2574/docs/iroh_docs/engine/enum.LiveEvent.html b/pr/2574/docs/iroh_docs/engine/enum.LiveEvent.html index 54663659a1..6b3095b674 100644 --- a/pr/2574/docs/iroh_docs/engine/enum.LiveEvent.html +++ b/pr/2574/docs/iroh_docs/engine/enum.LiveEvent.html @@ -3,34 +3,34 @@ entry: Entry, }, InsertRemote { - from: PublicKey, + from: PublicKey, entry: Entry, content_status: ContentStatus, }, ContentReady { - hash: Hash, + hash: Hash, }, PendingContentReady, - NeighborUp(PublicKey), - NeighborDown(PublicKey), + NeighborUp(PublicKey), + NeighborDown(PublicKey), SyncFinished(SyncEvent), }
Expand description

Events informing about actions of the live sync progress.

Variants§

§

InsertLocal

A local insertion.

Fields

§entry: Entry

The inserted entry.

§

InsertRemote

Received a remote insert.

-

Fields

§from: PublicKey

The peer that sent us the entry.

+

Fields

§from: PublicKey

The peer that sent us the entry.

§entry: Entry

The inserted entry.

§content_status: ContentStatus

If the content is available at the local node

§

ContentReady

The content of an entry was downloaded and is now available at the local node

-

Fields

§hash: Hash

The content hash of the newly available entry content

+

Fields

§hash: Hash

The content hash of the newly available entry content

§

PendingContentReady

All pending content is now ready.

This event signals that all queued content downloads from the last sync run have either completed or failed.

It will only be emitted after a Self::SyncFinished event, never before.

Receiving this event does not guarantee that all content in the document is available. If blobs failed to download, this event will still be emitted after all operations completed.

-
§

NeighborUp(PublicKey)

We have a new neighbor in the swarm.

-
§

NeighborDown(PublicKey)

We lost a neighbor in the swarm.

+
§

NeighborUp(PublicKey)

We have a new neighbor in the swarm.

+
§

NeighborDown(PublicKey)

We lost a neighbor in the swarm.

§

SyncFinished(SyncEvent)

A set-reconciliation sync finished.

Trait Implementations§

source§

impl Clone for LiveEvent

source§

fn clone(&self) -> LiveEvent

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LiveEvent

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for LiveEvent

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for LiveEvent

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl PartialEq for LiveEvent

source§

fn eq(&self, other: &LiveEvent) -> bool

This method tests for self and other values to be equal, and is used diff --git a/pr/2574/docs/iroh_docs/engine/fn.entry_to_content_status.html b/pr/2574/docs/iroh_docs/engine/fn.entry_to_content_status.html index 3edb90101c..064089c3af 100644 --- a/pr/2574/docs/iroh_docs/engine/fn.entry_to_content_status.html +++ b/pr/2574/docs/iroh_docs/engine/fn.entry_to_content_status.html @@ -1,2 +1,2 @@ -entry_to_content_status in iroh_docs::engine - Rust

Function iroh_docs::engine::entry_to_content_status

source ·
pub fn entry_to_content_status(entry: Result<EntryStatus>) -> ContentStatus
Expand description

Converts an EntryStatus into a [‘ContentStatus’].

+entry_to_content_status in iroh_docs::engine - Rust

Function iroh_docs::engine::entry_to_content_status

source ·
pub fn entry_to_content_status(entry: Result<EntryStatus>) -> ContentStatus
Expand description

Converts an [EntryStatus] into a [‘ContentStatus’].

\ No newline at end of file diff --git a/pr/2574/docs/iroh_docs/engine/index.html b/pr/2574/docs/iroh_docs/engine/index.html index 54c0e74ff7..78e6935d96 100644 --- a/pr/2574/docs/iroh_docs/engine/index.html +++ b/pr/2574/docs/iroh_docs/engine/index.html @@ -1,4 +1,4 @@ iroh_docs::engine - Rust

Module iroh_docs::engine

source ·
Expand description

Handlers and actors to for live syncing replicas.

crate::Replica is also called documents here.

Structs§

  • Persistent default author for a docs engine.
  • The sync engine coordinates actors that manage open documents, set-reconciliation syncs with -peers and a gossip swarm for each syncing document.
  • Event emitted when a sync operation completes

Enums§

Functions§

\ No newline at end of file +peers and a gossip swarm for each syncing document.
  • Event emitted when a sync operation completes
  • Enums§

    Functions§

    \ No newline at end of file diff --git a/pr/2574/docs/iroh_docs/engine/struct.Engine.html b/pr/2574/docs/iroh_docs/engine/struct.Engine.html index 5c42772b47..871ca8a7ce 100644 --- a/pr/2574/docs/iroh_docs/engine/struct.Engine.html +++ b/pr/2574/docs/iroh_docs/engine/struct.Engine.html @@ -8,12 +8,12 @@

    Fields§

    §endpoint: Endpoint

    Endpoint used by the engine.

    §sync: SyncHandle

    Handle to the actor thread.

    §default_author: Arc<DefaultAuthor>

    The persistent default author for this engine.

    -

    Implementations§

    source§

    impl Engine

    source

    pub async fn spawn<B: Store>( +

    Implementations§

    source§

    impl Engine

    source

    pub async fn spawn<B: Store>( endpoint: Endpoint, gossip: Gossip, replica_store: Store, bao_store: B, - downloader: Downloader, + downloader: Downloader, default_author_storage: DefaultAuthorStorage ) -> Result<Self>

    Start the sync engine.

    This will spawn two tokio tasks for the live sync coordination and gossip actors, and a @@ -21,7 +21,7 @@

    source

    pub async fn start_sync( &self, namespace: NamespaceId, - peers: Vec<NodeAddr> + peers: Vec<NodeAddr> ) -> Result<()>

    Start to sync a document.

    If peers is non-empty, it will both do an initial set-reconciliation sync with each peer, and join an iroh-gossip swarm with these peers to receive and broadcast document updates.

    @@ -38,12 +38,7 @@ ) -> Result<impl Stream<Item = Result<LiveEvent>> + Unpin + 'static>

    Subscribe to replica and sync progress events.

    source

    pub async fn handle_connection(&self, conn: Connecting) -> Result<()>

    Handle an incoming iroh-docs connection.

    source

    pub async fn shutdown(&self) -> Result<()>

    Shutdown the engine.

    -

    Trait Implementations§

    source§

    impl Clone for Engine

    source§

    fn clone(&self) -> Engine

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Engine
    where - Endpoint: Debug, - SyncHandle: Debug, - Arc<DefaultAuthor>: Debug, - Sender<ToLiveActor>: Debug, - SharedAbortingJoinHandle<()>: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl Freeze for Engine

    §

    impl !RefUnwindSafe for Engine

    §

    impl Send for Engine

    §

    impl Sync for Engine

    §

    impl Unpin for Engine

    §

    impl !UnwindSafe for Engine

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Clone for Engine

    source§

    fn clone(&self) -> Engine

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Engine

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl Freeze for Engine

    §

    impl !RefUnwindSafe for Engine

    §

    impl Send for Engine

    §

    impl Sync for Engine

    §

    impl Unpin for Engine

    §

    impl !UnwindSafe for Engine

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_docs/engine/struct.SyncEvent.html b/pr/2574/docs/iroh_docs/engine/struct.SyncEvent.html index 39134cf32c..3c294863e1 100644 --- a/pr/2574/docs/iroh_docs/engine/struct.SyncEvent.html +++ b/pr/2574/docs/iroh_docs/engine/struct.SyncEvent.html @@ -1,11 +1,11 @@ SyncEvent in iroh_docs::engine - Rust

    Struct iroh_docs::engine::SyncEvent

    source ·
    pub struct SyncEvent {
    -    pub peer: PublicKey,
    +    pub peer: PublicKey,
         pub origin: Origin,
         pub finished: SystemTime,
         pub started: SystemTime,
         pub result: Result<SyncDetails, String>,
     }
    Expand description

    Event emitted when a sync operation completes

    -

    Fields§

    §peer: PublicKey

    Peer we synced with

    +

    Fields§

    §peer: PublicKey

    Peer we synced with

    §origin: Origin

    Origin of the sync exchange

    §finished: SystemTime

    Timestamp when the sync started

    §started: SystemTime

    Timestamp when the sync finished

    diff --git a/pr/2574/docs/iroh_docs/index.html b/pr/2574/docs/iroh_docs/index.html index 14f362f923..8f3ecf4dad 100644 --- a/pr/2574/docs/iroh_docs/index.html +++ b/pr/2574/docs/iroh_docs/index.html @@ -1,7 +1,7 @@ iroh_docs - Rust

    Crate iroh_docs

    source ·
    Expand description

    Multi-dimensional key-value documents with an efficient synchronization protocol

    The crate operates on Replicas. A replica contains an unlimited number of Entries. Each entry is identified by a key, its author, and the replica’s -namespace. Its value is the 32-byte BLAKE3 hash +namespace. Its value is the 32-byte BLAKE3 hash of the entry’s content data, the size of this content data, and a timestamp. The content data itself is not stored or transferred through a replica.

    All entries in a replica are signed with two keypairs:

    diff --git a/pr/2574/docs/iroh_docs/metrics/struct.Metrics.html b/pr/2574/docs/iroh_docs/metrics/struct.Metrics.html index 360a5b6ff1..0500b2c33c 100644 --- a/pr/2574/docs/iroh_docs/metrics/struct.Metrics.html +++ b/pr/2574/docs/iroh_docs/metrics/struct.Metrics.html @@ -1,27 +1,27 @@ Metrics in iroh_docs::metrics - Rust

    Struct iroh_docs::metrics::Metrics

    source ·
    pub struct Metrics {
    Show 19 fields - pub new_entries_local: Counter, - pub new_entries_remote: Counter, - pub new_entries_local_size: Counter, - pub new_entries_remote_size: Counter, - pub sync_via_connect_success: Counter, - pub sync_via_connect_failure: Counter, - pub sync_via_accept_success: Counter, - pub sync_via_accept_failure: Counter, - pub actor_tick_main: Counter, - pub doc_gossip_tick_main: Counter, - pub doc_gossip_tick_event: Counter, - pub doc_gossip_tick_actor: Counter, - pub doc_gossip_tick_pending_join: Counter, - pub doc_live_tick_main: Counter, - pub doc_live_tick_actor: Counter, - pub doc_live_tick_replica_event: Counter, - pub doc_live_tick_running_sync_connect: Counter, - pub doc_live_tick_running_sync_accept: Counter, - pub doc_live_tick_pending_downloads: Counter, + pub new_entries_local: Counter, + pub new_entries_remote: Counter, + pub new_entries_local_size: Counter, + pub new_entries_remote_size: Counter, + pub sync_via_connect_success: Counter, + pub sync_via_connect_failure: Counter, + pub sync_via_accept_success: Counter, + pub sync_via_accept_failure: Counter, + pub actor_tick_main: Counter, + pub doc_gossip_tick_main: Counter, + pub doc_gossip_tick_event: Counter, + pub doc_gossip_tick_actor: Counter, + pub doc_gossip_tick_pending_join: Counter, + pub doc_live_tick_main: Counter, + pub doc_live_tick_actor: Counter, + pub doc_live_tick_replica_event: Counter, + pub doc_live_tick_running_sync_connect: Counter, + pub doc_live_tick_running_sync_accept: Counter, + pub doc_live_tick_pending_downloads: Counter,
    }
    Expand description

    Metrics for iroh-docs

    -

    Fields§

    §new_entries_local: Counter§new_entries_remote: Counter§new_entries_local_size: Counter§new_entries_remote_size: Counter§sync_via_connect_success: Counter§sync_via_connect_failure: Counter§sync_via_accept_success: Counter§sync_via_accept_failure: Counter§actor_tick_main: Counter§doc_gossip_tick_main: Counter§doc_gossip_tick_event: Counter§doc_gossip_tick_actor: Counter§doc_gossip_tick_pending_join: Counter§doc_live_tick_main: Counter§doc_live_tick_actor: Counter§doc_live_tick_replica_event: Counter§doc_live_tick_running_sync_connect: Counter§doc_live_tick_running_sync_accept: Counter§doc_live_tick_pending_downloads: Counter

    Trait Implementations§

    source§

    impl Clone for Metrics

    source§

    fn clone(&self) -> Metrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Metrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Metrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for Metrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for Metrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    source§

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    source§

    fn with_metric<T, F>(f: F)
    where +

    Fields§

    §new_entries_local: Counter§new_entries_remote: Counter§new_entries_local_size: Counter§new_entries_remote_size: Counter§sync_via_connect_success: Counter§sync_via_connect_failure: Counter§sync_via_accept_success: Counter§sync_via_accept_failure: Counter§actor_tick_main: Counter§doc_gossip_tick_main: Counter§doc_gossip_tick_event: Counter§doc_gossip_tick_actor: Counter§doc_gossip_tick_pending_join: Counter§doc_live_tick_main: Counter§doc_live_tick_actor: Counter§doc_live_tick_replica_event: Counter§doc_live_tick_running_sync_connect: Counter§doc_live_tick_running_sync_accept: Counter§doc_live_tick_pending_downloads: Counter

    Trait Implementations§

    source§

    impl Clone for Metrics

    source§

    fn clone(&self) -> Metrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Metrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Metrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for Metrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for Metrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    §

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    §

    fn with_metric<T, F>(f: F)
    where F: FnOnce(&Self) -> T,

    Access to this metrics group to record a metric. -Only records if this metric is registered in the global registry.
    source§

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +Only records if this metric is registered in the global registry.

    §

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_docs/net/enum.AcceptError.html b/pr/2574/docs/iroh_docs/net/enum.AcceptError.html index 9e5d3848a2..6825a4b84d 100644 --- a/pr/2574/docs/iroh_docs/net/enum.AcceptError.html +++ b/pr/2574/docs/iroh_docs/net/enum.AcceptError.html @@ -3,33 +3,33 @@ error: Error, }, Open { - peer: PublicKey, + peer: PublicKey, error: Error, }, Abort { - peer: PublicKey, + peer: PublicKey, namespace: NamespaceId, reason: AbortReason, }, Sync { - peer: PublicKey, + peer: PublicKey, namespace: Option<NamespaceId>, error: Error, }, Close { - peer: PublicKey, + peer: PublicKey, namespace: Option<NamespaceId>, error: Error, }, }
    Expand description

    Errors that may occur on handling incoming sync connections.

    Variants§

    §

    Connect

    Failed to establish connection

    Fields

    §error: Error
    §

    Open

    Failed to open replica

    -

    Fields

    §error: Error
    §

    Abort

    We aborted the sync request.

    -

    Fields

    §namespace: NamespaceId
    §

    Sync

    Failed to run sync

    -

    Fields

    §namespace: Option<NamespaceId>
    §error: Error
    §

    Close

    Failed to close

    -

    Fields

    §namespace: Option<NamespaceId>
    §error: Error

    Implementations§

    source§

    impl AcceptError

    source

    pub fn peer(&self) -> Option<PublicKey>

    Get the peer’s node ID (if available)

    +

    Fields

    §peer: PublicKey
    §error: Error
    §

    Abort

    We aborted the sync request.

    +

    Fields

    §peer: PublicKey
    §namespace: NamespaceId
    §

    Sync

    Failed to run sync

    +

    Fields

    §peer: PublicKey
    §namespace: Option<NamespaceId>
    §error: Error
    §

    Close

    Failed to close

    +

    Fields

    §peer: PublicKey
    §namespace: Option<NamespaceId>
    §error: Error

    Implementations§

    source§

    impl AcceptError

    source

    pub fn peer(&self) -> Option<PublicKey>

    Get the peer’s node ID (if available)

    source

    pub fn namespace(&self) -> Option<NamespaceId>

    Get the namespace (if available)

    -

    Trait Implementations§

    source§

    impl Debug for AcceptError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for AcceptError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for AcceptError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for AcceptError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for AcceptError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for AcceptError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_docs/net/fn.connect_and_sync.html b/pr/2574/docs/iroh_docs/net/fn.connect_and_sync.html index 348ca1a91d..11716e3947 100644 --- a/pr/2574/docs/iroh_docs/net/fn.connect_and_sync.html +++ b/pr/2574/docs/iroh_docs/net/fn.connect_and_sync.html @@ -2,6 +2,6 @@ endpoint: &Endpoint, sync: &SyncHandle, namespace: NamespaceId, - peer: NodeAddr + peer: NodeAddr ) -> Result<SyncFinished, ConnectError>
    Expand description

    Connect to a peer and sync a replica

    \ No newline at end of file diff --git a/pr/2574/docs/iroh_docs/net/fn.handle_connection.html b/pr/2574/docs/iroh_docs/net/fn.handle_connection.html index 8a2dbfcb44..2b174a9405 100644 --- a/pr/2574/docs/iroh_docs/net/fn.handle_connection.html +++ b/pr/2574/docs/iroh_docs/net/fn.handle_connection.html @@ -3,6 +3,6 @@ connecting: Connecting, accept_cb: F ) -> Result<SyncFinished, AcceptError>
    where - F: Fn(NamespaceId, PublicKey) -> Fut, + F: Fn(NamespaceId, PublicKey) -> Fut, Fut: Future<Output = AcceptOutcome>,
    Expand description

    Handle an iroh-docs connection and sync all shared documents in the replica store.

    \ No newline at end of file diff --git a/pr/2574/docs/iroh_docs/net/struct.SyncFinished.html b/pr/2574/docs/iroh_docs/net/struct.SyncFinished.html index b615c94578..e94f240f10 100644 --- a/pr/2574/docs/iroh_docs/net/struct.SyncFinished.html +++ b/pr/2574/docs/iroh_docs/net/struct.SyncFinished.html @@ -1,11 +1,11 @@ SyncFinished in iroh_docs::net - Rust

    Struct iroh_docs::net::SyncFinished

    source ·
    pub struct SyncFinished {
         pub namespace: NamespaceId,
    -    pub peer: PublicKey,
    +    pub peer: PublicKey,
         pub outcome: SyncOutcome,
         pub timings: Timings,
     }
    Expand description

    Details of a finished sync operation.

    Fields§

    §namespace: NamespaceId

    The namespace that was synced.

    -
    §peer: PublicKey

    The peer we syned with.

    +
    §peer: PublicKey

    The peer we syned with.

    §outcome: SyncOutcome

    The outcome of the sync operation

    §timings: Timings

    The time this operation took

    Trait Implementations§

    source§

    impl Clone for SyncFinished

    source§

    fn clone(&self) -> SyncFinished

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for SyncFinished

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where diff --git a/pr/2574/docs/iroh_docs/store/enum.FilterKind.html b/pr/2574/docs/iroh_docs/store/enum.FilterKind.html index 65736b4062..d159ec0337 100644 --- a/pr/2574/docs/iroh_docs/store/enum.FilterKind.html +++ b/pr/2574/docs/iroh_docs/store/enum.FilterKind.html @@ -5,8 +5,8 @@

    Variants§

    §

    Prefix(Bytes)

    Matches if the contained bytes are a prefix of the key.

    §

    Exact(Bytes)

    Matches if the contained bytes and the key are the same.

    Implementations§

    source§

    impl FilterKind

    source

    pub fn matches(&self, key: impl AsRef<[u8]>) -> bool

    Verifies whether this filter matches a given key

    -

    Trait Implementations§

    source§

    impl Clone for FilterKind

    source§

    fn clone(&self) -> FilterKind

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for FilterKind

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for FilterKind

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for FilterKind

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromStr for FilterKind

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl PartialEq for FilterKind

    source§

    fn eq(&self, other: &FilterKind) -> bool

    This method tests for self and other values to be equal, and is used +

    Trait Implementations§

    source§

    impl Clone for FilterKind

    source§

    fn clone(&self) -> FilterKind

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for FilterKind

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for FilterKind

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for FilterKind

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromStr for FilterKind

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl PartialEq for FilterKind

    source§

    fn eq(&self, other: &FilterKind) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for FilterKind

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Eq for FilterKind

    source§

    impl StructuralPartialEq for FilterKind

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where diff --git a/pr/2574/docs/iroh_docs/store/enum.OpenError.html b/pr/2574/docs/iroh_docs/store/enum.OpenError.html index 87e07f3a2e..dc2b7064ad 100644 --- a/pr/2574/docs/iroh_docs/store/enum.OpenError.html +++ b/pr/2574/docs/iroh_docs/store/enum.OpenError.html @@ -4,7 +4,7 @@ }
    Expand description

    Error return from Store::open_replica

    Variants§

    §

    NotFound

    The replica does not exist.

    §

    Other(Error)

    Other error while opening the replica.

    -

    Trait Implementations§

    source§

    impl Debug for OpenError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for OpenError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for OpenError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<Error> for OpenError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for OpenError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for OpenError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for OpenError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<Error> for OpenError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_docs/store/fs/struct.ContentHashesIterator.html b/pr/2574/docs/iroh_docs/store/fs/struct.ContentHashesIterator.html index 35a2679676..67917f2858 100644 --- a/pr/2574/docs/iroh_docs/store/fs/struct.ContentHashesIterator.html +++ b/pr/2574/docs/iroh_docs/store/fs/struct.ContentHashesIterator.html @@ -6,7 +6,7 @@

    Implementations§

    source§

    impl ContentHashesIterator

    source

    pub fn all( table: &ReadOnlyTable<(&'static [u8; 32], &'static [u8; 32], &'static [u8]), (u64, &'static [u8; 64], &'static [u8; 64], u64, &'static [u8; 32])> ) -> Result<Self>

    Create a new iterator over all content hashes.

    -

    Trait Implementations§

    source§

    impl Debug for ContentHashesIterator

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Iterator for ContentHashesIterator

    §

    type Item = Result<Hash, Error>

    The type of the elements being iterated over.
    source§

    fn next(&mut self) -> Option<Self::Item>

    Advances the iterator and returns the next value. Read more
    source§

    fn next_chunk<const N: usize>( +

    Trait Implementations§

    source§

    impl Debug for ContentHashesIterator

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Iterator for ContentHashesIterator

    §

    type Item = Result<Hash, Error>

    The type of the elements being iterated over.
    source§

    fn next(&mut self) -> Option<Self::Item>

    Advances the iterator and returns the next value. Read more
    source§

    fn next_chunk<const N: usize>( &mut self ) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
    where Self: Sized,

    🔬This is a nightly-only experimental API. (iter_next_chunk)
    Advances the iterator and returns an array containing the next N values. Read more
    1.0.0 · source§

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the iterator. Read more
    1.0.0 · source§

    fn count(self) -> usize
    where diff --git a/pr/2574/docs/iroh_docs/store/struct.Query.html b/pr/2574/docs/iroh_docs/store/struct.Query.html index f2ea6bd46d..f189d8231b 100644 --- a/pr/2574/docs/iroh_docs/store/struct.Query.html +++ b/pr/2574/docs/iroh_docs/store/struct.Query.html @@ -9,7 +9,7 @@

    source

    pub fn limit(&self) -> Option<u64>

    Get the limit for this query (max. number of entries to emit).

    source

    pub fn offset(&self) -> u64

    Get the offset for this query (number of entries to skip at the beginning).

    Trait Implementations§

    source§

    impl Clone for Query

    source§

    fn clone(&self) -> Query

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Query

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Query

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<QueryBuilder<FlatQuery>> for Query

    source§

    fn from(builder: QueryBuilder<FlatQuery>) -> Query

    Converts to this type from the input type.
    source§

    impl From<QueryBuilder<SingleLatestPerKeyQuery>> for Query

    source§

    fn from(builder: QueryBuilder<SingleLatestPerKeyQuery>) -> Query

    Converts to this type from the input type.
    source§

    impl Serialize for Query

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<QueryBuilder<FlatQuery>> for Query

    source§

    fn from(builder: QueryBuilder<FlatQuery>) -> Query

    Converts to this type from the input type.
    source§

    impl From<QueryBuilder<SingleLatestPerKeyQuery>> for Query

    source§

    fn from(builder: QueryBuilder<SingleLatestPerKeyQuery>) -> Query

    Converts to this type from the input type.
    source§

    impl Serialize for Query

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    §

    impl !Freeze for Query

    §

    impl RefUnwindSafe for Query

    §

    impl Send for Query

    §

    impl Sync for Query

    §

    impl Unpin for Query

    §

    impl UnwindSafe for Query

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_docs/store/struct.QueryBuilder.html b/pr/2574/docs/iroh_docs/store/struct.QueryBuilder.html index cd1b87c96f..960bad9c51 100644 --- a/pr/2574/docs/iroh_docs/store/struct.QueryBuilder.html +++ b/pr/2574/docs/iroh_docs/store/struct.QueryBuilder.html @@ -12,7 +12,7 @@

    Ordering is always by key for this query type. Default direction is ascending.

    source

    pub fn build(self) -> Query

    Build the query.

    -

    Trait Implementations§

    source§

    impl<K: Debug> Debug for QueryBuilder<K>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<K: Default> Default for QueryBuilder<K>

    source§

    fn default() -> QueryBuilder<K>

    Returns the “default value” for a type. Read more
    source§

    impl From<QueryBuilder<FlatQuery>> for Query

    source§

    fn from(builder: QueryBuilder<FlatQuery>) -> Query

    Converts to this type from the input type.
    source§

    impl From<QueryBuilder<SingleLatestPerKeyQuery>> for Query

    source§

    fn from(builder: QueryBuilder<SingleLatestPerKeyQuery>) -> Query

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl<K> !Freeze for QueryBuilder<K>

    §

    impl<K> RefUnwindSafe for QueryBuilder<K>
    where +

    Trait Implementations§

    source§

    impl<K: Debug> Debug for QueryBuilder<K>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<K: Default> Default for QueryBuilder<K>

    source§

    fn default() -> QueryBuilder<K>

    Returns the “default value” for a type. Read more
    source§

    impl From<QueryBuilder<FlatQuery>> for Query

    source§

    fn from(builder: QueryBuilder<FlatQuery>) -> Query

    Converts to this type from the input type.
    source§

    impl From<QueryBuilder<SingleLatestPerKeyQuery>> for Query

    source§

    fn from(builder: QueryBuilder<SingleLatestPerKeyQuery>) -> Query

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl<K> !Freeze for QueryBuilder<K>

    §

    impl<K> RefUnwindSafe for QueryBuilder<K>
    where K: RefUnwindSafe,

    §

    impl<K> Send for QueryBuilder<K>
    where K: Send,

    §

    impl<K> Sync for QueryBuilder<K>
    where K: Sync,

    §

    impl<K> Unpin for QueryBuilder<K>
    where diff --git a/pr/2574/docs/iroh_docs/struct.Author.html b/pr/2574/docs/iroh_docs/struct.Author.html index 8dbbf21112..82547e31e5 100644 --- a/pr/2574/docs/iroh_docs/struct.Author.html +++ b/pr/2574/docs/iroh_docs/struct.Author.html @@ -11,8 +11,8 @@ msg: &[u8], signature: &Signature ) -> Result<(), SignatureError>

    Strictly verify a signature on a message with this Author’s public key.

    -

    Trait Implementations§

    source§

    impl Clone for Author

    source§

    fn clone(&self) -> Author

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Author

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Author

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for Author

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&Author> for AuthorPublicKey

    source§

    fn from(value: &Author) -> Self

    Converts to this type from the input type.
    source§

    impl From<Author> for AuthorId

    source§

    fn from(value: Author) -> Self

    Converts to this type from the input type.
    source§

    impl From<Author> for AuthorPublicKey

    source§

    fn from(value: Author) -> Self

    Converts to this type from the input type.
    source§

    impl From<SigningKey> for Author

    source§

    fn from(signing_key: SigningKey) -> Self

    Converts to this type from the input type.
    source§

    impl FromStr for Author

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Serialize for Author

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where +

    Trait Implementations§

    source§

    impl Clone for Author

    source§

    fn clone(&self) -> Author

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Author

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Author

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for Author

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&Author> for AuthorPublicKey

    source§

    fn from(value: &Author) -> Self

    Converts to this type from the input type.
    source§

    impl From<Author> for AuthorId

    source§

    fn from(value: Author) -> Self

    Converts to this type from the input type.
    source§

    impl From<Author> for AuthorPublicKey

    source§

    fn from(value: Author) -> Self

    Converts to this type from the input type.
    source§

    impl From<SigningKey> for Author

    source§

    fn from(signing_key: SigningKey) -> Self

    Converts to this type from the input type.
    source§

    impl FromStr for Author

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Serialize for Author

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    §

    impl Freeze for Author

    §

    impl RefUnwindSafe for Author

    §

    impl Send for Author

    §

    impl Sync for Author

    §

    impl Unpin for Author

    §

    impl UnwindSafe for Author

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_docs/struct.AuthorId.html b/pr/2574/docs/iroh_docs/struct.AuthorId.html index 9f01cf7e5c..5a3d69a670 100644 --- a/pr/2574/docs/iroh_docs/struct.AuthorId.html +++ b/pr/2574/docs/iroh_docs/struct.AuthorId.html @@ -10,8 +10,8 @@

    Fails if the bytes of this AuthorId are not a valid [ed25519_dalek] curve point.

    source

    pub fn fmt_short(&self) -> String

    Convert to a base32 string limited to the first 10 bytes for a friendly string representation of the key.

    -

    Trait Implementations§

    source§

    impl AsRef<[u8]> for AuthorId

    source§

    fn as_ref(&self) -> &[u8]

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl AsRef<[u8; 32]> for AuthorId

    source§

    fn as_ref(&self) -> &[u8; 32]

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl Clone for AuthorId

    source§

    fn clone(&self) -> AuthorId

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for AuthorId

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for AuthorId

    source§

    fn default() -> AuthorId

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for AuthorId

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for AuthorId

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&[u8; 32]> for AuthorId

    source§

    fn from(value: &[u8; 32]) -> Self

    Converts to this type from the input type.
    source§

    impl From<&AuthorPublicKey> for AuthorId

    source§

    fn from(value: &AuthorPublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<[u8; 32]> for AuthorId

    source§

    fn from(value: [u8; 32]) -> Self

    Converts to this type from the input type.
    source§

    impl From<Author> for AuthorId

    source§

    fn from(value: Author) -> Self

    Converts to this type from the input type.
    source§

    impl From<AuthorId> for [u8; 32]

    source§

    fn from(value: AuthorId) -> Self

    Converts to this type from the input type.
    source§

    impl From<AuthorId> for AuthorFilter

    source§

    fn from(value: AuthorId) -> Self

    Converts to this type from the input type.
    source§

    impl From<AuthorPublicKey> for AuthorId

    source§

    fn from(value: AuthorPublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl FromStr for AuthorId

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Hash for AuthorId

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where +

    Trait Implementations§

    source§

    impl AsRef<[u8]> for AuthorId

    source§

    fn as_ref(&self) -> &[u8]

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl AsRef<[u8; 32]> for AuthorId

    source§

    fn as_ref(&self) -> &[u8; 32]

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl Clone for AuthorId

    source§

    fn clone(&self) -> AuthorId

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for AuthorId

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for AuthorId

    source§

    fn default() -> AuthorId

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for AuthorId

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for AuthorId

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&[u8; 32]> for AuthorId

    source§

    fn from(value: &[u8; 32]) -> Self

    Converts to this type from the input type.
    source§

    impl From<&AuthorPublicKey> for AuthorId

    source§

    fn from(value: &AuthorPublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<[u8; 32]> for AuthorId

    source§

    fn from(value: [u8; 32]) -> Self

    Converts to this type from the input type.
    source§

    impl From<Author> for AuthorId

    source§

    fn from(value: Author) -> Self

    Converts to this type from the input type.
    source§

    impl From<AuthorId> for [u8; 32]

    source§

    fn from(value: AuthorId) -> Self

    Converts to this type from the input type.
    source§

    impl From<AuthorId> for AuthorFilter

    source§

    fn from(value: AuthorId) -> Self

    Converts to this type from the input type.
    source§

    impl From<AuthorPublicKey> for AuthorId

    source§

    fn from(value: AuthorPublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl FromStr for AuthorId

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Hash for AuthorId

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for AuthorId

    source§

    fn cmp(&self, other: &AuthorId) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where diff --git a/pr/2574/docs/iroh_docs/struct.AuthorPublicKey.html b/pr/2574/docs/iroh_docs/struct.AuthorPublicKey.html index 9f1e178d2f..9c4875b166 100644 --- a/pr/2574/docs/iroh_docs/struct.AuthorPublicKey.html +++ b/pr/2574/docs/iroh_docs/struct.AuthorPublicKey.html @@ -13,7 +13,7 @@ curve point. Will never fail for a byte array returned from Self::as_bytes. See [VerifyingKey::from_bytes] for details.

    Trait Implementations§

    source§

    impl Clone for AuthorPublicKey

    source§

    fn clone(&self) -> AuthorPublicKey

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for AuthorPublicKey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for AuthorPublicKey

    source§

    fn default() -> AuthorPublicKey

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for AuthorPublicKey

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for AuthorPublicKey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&Author> for AuthorPublicKey

    source§

    fn from(value: &Author) -> Self

    Converts to this type from the input type.
    source§

    impl From<&AuthorPublicKey> for AuthorId

    source§

    fn from(value: &AuthorPublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<Author> for AuthorPublicKey

    source§

    fn from(value: Author) -> Self

    Converts to this type from the input type.
    source§

    impl From<AuthorPublicKey> for AuthorId

    source§

    fn from(value: AuthorPublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<VerifyingKey> for AuthorPublicKey

    source§

    fn from(value: VerifyingKey) -> Self

    Converts to this type from the input type.
    source§

    impl FromStr for AuthorPublicKey

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Hash for AuthorPublicKey

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for AuthorPublicKey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&Author> for AuthorPublicKey

    source§

    fn from(value: &Author) -> Self

    Converts to this type from the input type.
    source§

    impl From<&AuthorPublicKey> for AuthorId

    source§

    fn from(value: &AuthorPublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<Author> for AuthorPublicKey

    source§

    fn from(value: Author) -> Self

    Converts to this type from the input type.
    source§

    impl From<AuthorPublicKey> for AuthorId

    source§

    fn from(value: AuthorPublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<VerifyingKey> for AuthorPublicKey

    source§

    fn from(value: VerifyingKey) -> Self

    Converts to this type from the input type.
    source§

    impl FromStr for AuthorPublicKey

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Hash for AuthorPublicKey

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for AuthorPublicKey

    source§

    fn cmp(&self, other: &Self) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where diff --git a/pr/2574/docs/iroh_docs/struct.DocTicket.html b/pr/2574/docs/iroh_docs/struct.DocTicket.html index 60c185fa78..9bbcd67ef8 100644 --- a/pr/2574/docs/iroh_docs/struct.DocTicket.html +++ b/pr/2574/docs/iroh_docs/struct.DocTicket.html @@ -1,13 +1,13 @@ DocTicket in iroh_docs - Rust

    Struct iroh_docs::DocTicket

    source ·
    pub struct DocTicket {
         pub capability: Capability,
    -    pub nodes: Vec<NodeAddr>,
    +    pub nodes: Vec<NodeAddr>,
     }
    Expand description

    Contains both a key (either secret or public) to a document, and a list of peers to join.

    Fields§

    §capability: Capability

    either a public or private key

    -
    §nodes: Vec<NodeAddr>

    A list of nodes to contact.

    -

    Implementations§

    source§

    impl DocTicket

    source

    pub fn new(capability: Capability, peers: Vec<NodeAddr>) -> Self

    Create a new doc ticket

    -

    Trait Implementations§

    source§

    impl Clone for DocTicket

    source§

    fn clone(&self) -> DocTicket

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for DocTicket

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for DocTicket

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for DocTicket

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromStr for DocTicket

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Serialize for DocTicket

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Ticket for DocTicket

    source§

    const KIND: &'static str = "doc"

    String prefix describing the kind of iroh ticket. Read more
    source§

    fn to_bytes(&self) -> Vec<u8>

    Serialize to bytes used in the base32 string representation.
    source§

    fn from_bytes(bytes: &[u8]) -> Result<Self, Error>

    Deserialize from the base32 string representation bytes.
    source§

    fn serialize(&self) -> String

    Serialize to string.
    source§

    fn deserialize(str: &str) -> Result<Self, Error>

    Deserialize from a string.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +
    §nodes: Vec<NodeAddr>

    A list of nodes to contact.

    +

    Implementations§

    source§

    impl DocTicket

    source

    pub fn new(capability: Capability, peers: Vec<NodeAddr>) -> Self

    Create a new doc ticket

    +

    Trait Implementations§

    source§

    impl Clone for DocTicket

    source§

    fn clone(&self) -> DocTicket

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for DocTicket

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for DocTicket

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for DocTicket

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromStr for DocTicket

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Serialize for DocTicket

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Ticket for DocTicket

    source§

    const KIND: &'static str = "doc"

    String prefix describing the kind of iroh ticket. Read more
    source§

    fn to_bytes(&self) -> Vec<u8>

    Serialize to bytes used in the base32 string representation.
    source§

    fn from_bytes(bytes: &[u8]) -> Result<Self, Error>

    Deserialize from the base32 string representation bytes.
    §

    fn serialize(&self) -> String

    Serialize to string.
    §

    fn deserialize(str: &str) -> Result<Self, Error>

    Deserialize from a string.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_docs/struct.NamespaceId.html b/pr/2574/docs/iroh_docs/struct.NamespaceId.html index 7caf52a547..addc62509a 100644 --- a/pr/2574/docs/iroh_docs/struct.NamespaceId.html +++ b/pr/2574/docs/iroh_docs/struct.NamespaceId.html @@ -10,8 +10,8 @@

    Fails if the bytes of this NamespaceId are not a valid [ed25519_dalek] curve point.

    source

    pub fn fmt_short(&self) -> String

    Convert to a base32 string limited to the first 10 bytes for a friendly string representation of the key.

    -

    Trait Implementations§

    source§

    impl AsRef<[u8]> for NamespaceId

    source§

    fn as_ref(&self) -> &[u8]

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl AsRef<[u8; 32]> for NamespaceId

    source§

    fn as_ref(&self) -> &[u8; 32]

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl Clone for NamespaceId

    source§

    fn clone(&self) -> NamespaceId

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NamespaceId

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for NamespaceId

    source§

    fn default() -> NamespaceId

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for NamespaceId

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for NamespaceId

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&[u8; 32]> for NamespaceId

    source§

    fn from(value: &[u8; 32]) -> Self

    Converts to this type from the input type.
    source§

    impl From<&NamespacePublicKey> for NamespaceId

    source§

    fn from(value: &NamespacePublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<[u8; 32]> for NamespaceId

    source§

    fn from(value: [u8; 32]) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceId> for [u8; 32]

    source§

    fn from(value: NamespaceId) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceId> for Capability

    source§

    fn from(value: NamespaceId) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespacePublicKey> for NamespaceId

    source§

    fn from(value: NamespacePublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceSecret> for NamespaceId

    source§

    fn from(value: NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl FromStr for NamespaceId

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Hash for NamespaceId

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where +

    Trait Implementations§

    source§

    impl AsRef<[u8]> for NamespaceId

    source§

    fn as_ref(&self) -> &[u8]

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl AsRef<[u8; 32]> for NamespaceId

    source§

    fn as_ref(&self) -> &[u8; 32]

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl Clone for NamespaceId

    source§

    fn clone(&self) -> NamespaceId

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NamespaceId

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for NamespaceId

    source§

    fn default() -> NamespaceId

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for NamespaceId

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for NamespaceId

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&[u8; 32]> for NamespaceId

    source§

    fn from(value: &[u8; 32]) -> Self

    Converts to this type from the input type.
    source§

    impl From<&NamespacePublicKey> for NamespaceId

    source§

    fn from(value: &NamespacePublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<[u8; 32]> for NamespaceId

    source§

    fn from(value: [u8; 32]) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceId> for [u8; 32]

    source§

    fn from(value: NamespaceId) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceId> for Capability

    source§

    fn from(value: NamespaceId) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespacePublicKey> for NamespaceId

    source§

    fn from(value: NamespacePublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceSecret> for NamespaceId

    source§

    fn from(value: NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl FromStr for NamespaceId

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Hash for NamespaceId

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for NamespaceId

    source§

    fn cmp(&self, other: &NamespaceId) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where diff --git a/pr/2574/docs/iroh_docs/struct.NamespacePublicKey.html b/pr/2574/docs/iroh_docs/struct.NamespacePublicKey.html index 3eb316060a..04462e10fa 100644 --- a/pr/2574/docs/iroh_docs/struct.NamespacePublicKey.html +++ b/pr/2574/docs/iroh_docs/struct.NamespacePublicKey.html @@ -11,8 +11,8 @@

    Will return an error if the input bytes do not represent a valid [ed25519_dalek] curve point. Will never fail for a byte array returned from Self::as_bytes. See [VerifyingKey::from_bytes] for details.

    -

    Trait Implementations§

    source§

    impl Clone for NamespacePublicKey

    source§

    fn clone(&self) -> NamespacePublicKey

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NamespacePublicKey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for NamespacePublicKey

    source§

    fn default() -> NamespacePublicKey

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for NamespacePublicKey

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for NamespacePublicKey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&NamespacePublicKey> for NamespaceId

    source§

    fn from(value: &NamespacePublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<&NamespaceSecret> for NamespacePublicKey

    source§

    fn from(value: &NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespacePublicKey> for NamespaceId

    source§

    fn from(value: NamespacePublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceSecret> for NamespacePublicKey

    source§

    fn from(value: NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl From<VerifyingKey> for NamespacePublicKey

    source§

    fn from(value: VerifyingKey) -> Self

    Converts to this type from the input type.
    source§

    impl FromStr for NamespacePublicKey

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Hash for NamespacePublicKey

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where +

    Trait Implementations§

    source§

    impl Clone for NamespacePublicKey

    source§

    fn clone(&self) -> NamespacePublicKey

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NamespacePublicKey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for NamespacePublicKey

    source§

    fn default() -> NamespacePublicKey

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for NamespacePublicKey

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for NamespacePublicKey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&NamespacePublicKey> for NamespaceId

    source§

    fn from(value: &NamespacePublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<&NamespaceSecret> for NamespacePublicKey

    source§

    fn from(value: &NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespacePublicKey> for NamespaceId

    source§

    fn from(value: NamespacePublicKey) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceSecret> for NamespacePublicKey

    source§

    fn from(value: NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl From<VerifyingKey> for NamespacePublicKey

    source§

    fn from(value: VerifyingKey) -> Self

    Converts to this type from the input type.
    source§

    impl FromStr for NamespacePublicKey

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Hash for NamespacePublicKey

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for NamespacePublicKey

    source§

    fn cmp(&self, other: &Self) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where diff --git a/pr/2574/docs/iroh_docs/struct.NamespaceSecret.html b/pr/2574/docs/iroh_docs/struct.NamespaceSecret.html index 939e3b14cf..ab27bf14a7 100644 --- a/pr/2574/docs/iroh_docs/struct.NamespaceSecret.html +++ b/pr/2574/docs/iroh_docs/struct.NamespaceSecret.html @@ -12,8 +12,8 @@ msg: &[u8], signature: &Signature ) -> Result<(), SignatureError>

    Strictly verify a signature on a message with this NamespaceSecret’s public key.

    -

    Trait Implementations§

    source§

    impl Clone for NamespaceSecret

    source§

    fn clone(&self) -> NamespaceSecret

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NamespaceSecret

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for NamespaceSecret

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for NamespaceSecret

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&NamespaceSecret> for NamespacePublicKey

    source§

    fn from(value: &NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceSecret> for Capability

    source§

    fn from(value: NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceSecret> for NamespaceId

    source§

    fn from(value: NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceSecret> for NamespacePublicKey

    source§

    fn from(value: NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl From<SigningKey> for NamespaceSecret

    source§

    fn from(signing_key: SigningKey) -> Self

    Converts to this type from the input type.
    source§

    impl FromStr for NamespaceSecret

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Serialize for NamespaceSecret

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where +

    Trait Implementations§

    source§

    impl Clone for NamespaceSecret

    source§

    fn clone(&self) -> NamespaceSecret

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NamespaceSecret

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for NamespaceSecret

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for NamespaceSecret

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&NamespaceSecret> for NamespacePublicKey

    source§

    fn from(value: &NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceSecret> for Capability

    source§

    fn from(value: NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceSecret> for NamespaceId

    source§

    fn from(value: NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl From<NamespaceSecret> for NamespacePublicKey

    source§

    fn from(value: NamespaceSecret) -> Self

    Converts to this type from the input type.
    source§

    impl From<SigningKey> for NamespaceSecret

    source§

    fn from(signing_key: SigningKey) -> Self

    Converts to this type from the input type.
    source§

    impl FromStr for NamespaceSecret

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Serialize for NamespaceSecret

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_docs/sync/enum.CapabilityError.html b/pr/2574/docs/iroh_docs/sync/enum.CapabilityError.html index b3afe7e31a..bb9c4de686 100644 --- a/pr/2574/docs/iroh_docs/sync/enum.CapabilityError.html +++ b/pr/2574/docs/iroh_docs/sync/enum.CapabilityError.html @@ -2,7 +2,7 @@ NamespaceMismatch, }
    Expand description

    Errors for capability operations

    Variants§

    §

    NamespaceMismatch

    Namespaces are not the same

    -

    Trait Implementations§

    source§

    impl Debug for CapabilityError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for CapabilityError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for CapabilityError

    1.30.0 · source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for CapabilityError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for CapabilityError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for CapabilityError

    1.30.0 · source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_docs/sync/enum.CapabilityKind.html b/pr/2574/docs/iroh_docs/sync/enum.CapabilityKind.html index 125d1acc2e..85f82a4f0e 100644 --- a/pr/2574/docs/iroh_docs/sync/enum.CapabilityKind.html +++ b/pr/2574/docs/iroh_docs/sync/enum.CapabilityKind.html @@ -4,8 +4,8 @@ }
    Expand description

    Kind of capability of the namespace.

    Variants§

    §

    Write = 1

    A writable replica.

    §

    Read = 2

    A readable replica.

    -

    Trait Implementations§

    source§

    impl Clone for CapabilityKind

    source§

    fn clone(&self) -> CapabilityKind

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for CapabilityKind

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for CapabilityKind

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for CapabilityKind

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl From<CapabilityKind> for u8

    source§

    fn from(enum_value: CapabilityKind) -> Self

    Converts to this type from the input type.
    source§

    impl Serialize for CapabilityKind

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where +

    Trait Implementations§

    source§

    impl Clone for CapabilityKind

    source§

    fn clone(&self) -> CapabilityKind

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for CapabilityKind

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for CapabilityKind

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for CapabilityKind

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl From<CapabilityKind> for u8

    source§

    fn from(enum_value: CapabilityKind) -> Self

    Converts to this type from the input type.
    source§

    impl Serialize for CapabilityKind

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl TryFrom<u8> for CapabilityKind

    §

    type Error = TryFromPrimitiveError<CapabilityKind>

    The type returned in the event of a conversion error.
    source§

    fn try_from(number: u8) -> Result<Self, TryFromPrimitiveError<Self>>

    Performs the conversion.
    source§

    impl TryFromPrimitive for CapabilityKind

    §

    type Primitive = u8

    §

    type Error = TryFromPrimitiveError<CapabilityKind>

    source§

    const NAME: &'static str = "CapabilityKind"

    source§

    fn try_from_primitive( number: Self::Primitive ) -> Result<Self, TryFromPrimitiveError<Self>>

    source§

    impl Copy for CapabilityKind

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where diff --git a/pr/2574/docs/iroh_docs/sync/enum.InsertError.html b/pr/2574/docs/iroh_docs/sync/enum.InsertError.html index 009c286cdf..00b4afccdd 100644 --- a/pr/2574/docs/iroh_docs/sync/enum.InsertError.html +++ b/pr/2574/docs/iroh_docs/sync/enum.InsertError.html @@ -12,9 +12,7 @@
    §

    EntryIsEmpty

    Attempted to insert an empty entry.

    §

    ReadOnly

    Replica is read only.

    §

    Closed

    The replica is closed, no operations may be performed.

    -

    Trait Implementations§

    source§

    impl Debug for InsertError

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for InsertError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for InsertError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<ReadOnly> for InsertError

    source§

    fn from(value: ReadOnly) -> Self

    Converts to this type from the input type.
    source§

    impl From<ValidationFailure> for InsertError

    source§

    fn from(source: ValidationFailure) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for InsertError

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for InsertError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for InsertError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<ReadOnly> for InsertError

    source§

    fn from(value: ReadOnly) -> Self

    Converts to this type from the input type.
    source§

    impl From<ValidationFailure> for InsertError

    source§

    fn from(source: ValidationFailure) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_docs/sync/struct.Entry.html b/pr/2574/docs/iroh_docs/sync/struct.Entry.html index b520fa4621..1bf24a448d 100644 --- a/pr/2574/docs/iroh_docs/sync/struct.Entry.html +++ b/pr/2574/docs/iroh_docs/sync/struct.Entry.html @@ -1,6 +1,6 @@ Entry in iroh_docs::sync - Rust

    Struct iroh_docs::sync::Entry

    source ·
    pub struct Entry { /* private fields */ }
    Expand description

    A single entry in a Replica

    An entry is identified by a key, its Author, and the Replica’s -NamespaceSecret. Its value is the 32-byte BLAKE3 hash +NamespaceSecret. Its value is the 32-byte BLAKE3 hash of the entry’s content data, the size of this content data, and a timestamp.

    Implementations§

    source§

    impl Entry

    source

    pub fn new(id: RecordIdentifier, record: Record) -> Self

    Create a new entry

    source

    pub fn new_empty(id: RecordIdentifier) -> Self

    Create a new empty entry with the current timestamp.

    @@ -15,7 +15,7 @@
    source

    pub fn sign(self, namespace: &NamespaceSecret, author: &Author) -> SignedEntry

    Sign this entry with a NamespaceSecret and Author.

    Methods from Deref<Target = Record>§

    source

    pub fn is_empty(&self) -> bool

    Return true if the entry is empty.

    source

    pub fn content_len(&self) -> u64

    Get the length of the data addressed by this record’s content hash.

    -
    source

    pub fn content_hash(&self) -> Hash

    Get the Hash of the content data of this record.

    +
    source

    pub fn content_hash(&self) -> Hash

    Get the [struct@Hash] of the content data of this record.

    source

    pub fn timestamp(&self) -> u64

    Get the timestamp of this record.

    Trait Implementations§

    source§

    impl Clone for Entry

    source§

    fn clone(&self) -> Entry

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Entry

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Deref for Entry

    §

    type Target = Record

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl<'de> Deserialize<'de> for Entry

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<SignedEntry> for Entry

    source§

    fn from(value: SignedEntry) -> Self

    Converts to this type from the input type.
    source§

    impl Ord for Entry

    source§

    fn cmp(&self, other: &Self) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where diff --git a/pr/2574/docs/iroh_docs/sync/struct.ReadOnly.html b/pr/2574/docs/iroh_docs/sync/struct.ReadOnly.html index eac41bd26f..5c9fec5d65 100644 --- a/pr/2574/docs/iroh_docs/sync/struct.ReadOnly.html +++ b/pr/2574/docs/iroh_docs/sync/struct.ReadOnly.html @@ -1,5 +1,5 @@ ReadOnly in iroh_docs::sync - Rust

    Struct iroh_docs::sync::ReadOnly

    source ·
    pub struct ReadOnly;
    Expand description

    Error that occurs trying to access the NamespaceSecret of a read-only Capability.

    -

    Trait Implementations§

    source§

    impl Debug for ReadOnly

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for ReadOnly

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for ReadOnly

    1.30.0 · source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<ReadOnly> for InsertError

    source§

    fn from(value: ReadOnly) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for ReadOnly

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for ReadOnly

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for ReadOnly

    1.30.0 · source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<ReadOnly> for InsertError

    source§

    fn from(value: ReadOnly) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_docs/sync/struct.Record.html b/pr/2574/docs/iroh_docs/sync/struct.Record.html index cb1d99f9a7..c3bae419a3 100644 --- a/pr/2574/docs/iroh_docs/sync/struct.Record.html +++ b/pr/2574/docs/iroh_docs/sync/struct.Record.html @@ -1,11 +1,11 @@ Record in iroh_docs::sync - Rust

    Struct iroh_docs::sync::Record

    source ·
    pub struct Record { /* private fields */ }
    Expand description

    The data part of an entry in a Replica.

    -

    Implementations§

    source§

    impl Record

    source

    pub fn new(hash: Hash, len: u64, timestamp: u64) -> Self

    Create a new record.

    +

    Implementations§

    source§

    impl Record

    source

    pub fn new(hash: Hash, len: u64, timestamp: u64) -> Self

    Create a new record.

    source

    pub fn empty(timestamp: u64) -> Self

    Create a tombstone record (empty content)

    source

    pub fn empty_current() -> Self

    Create a tombstone record with the timestamp set to now.

    source

    pub fn is_empty(&self) -> bool

    Return true if the entry is empty.

    -
    source

    pub fn new_current(hash: Hash, len: u64) -> Self

    Create a new Record with the timestamp set to now.

    +
    source

    pub fn new_current(hash: Hash, len: u64) -> Self

    Create a new Record with the timestamp set to now.

    source

    pub fn content_len(&self) -> u64

    Get the length of the data addressed by this record’s content hash.

    -
    source

    pub fn content_hash(&self) -> Hash

    Get the Hash of the content data of this record.

    +
    source

    pub fn content_hash(&self) -> Hash

    Get the [struct@Hash] of the content data of this record.

    source

    pub fn timestamp(&self) -> u64

    Get the timestamp of this record.

    Trait Implementations§

    source§

    impl Clone for Record

    source§

    fn clone(&self) -> Record

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Record

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Record

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Ord for Record

    Ordering for entry values.

    diff --git a/pr/2574/docs/iroh_docs/sync/struct.Replica.html b/pr/2574/docs/iroh_docs/sync/struct.Replica.html index 6d1dde19de..1cc3c5c27f 100644 --- a/pr/2574/docs/iroh_docs/sync/struct.Replica.html +++ b/pr/2574/docs/iroh_docs/sync/struct.Replica.html @@ -5,7 +5,7 @@ &mut self, key: impl AsRef<[u8]>, author: &Author, - hash: Hash, + hash: Hash, len: u64 ) -> Result<usize, InsertError>

    Insert a new record at the given key.

    The entry will by signed by the provided author. @@ -35,7 +35,7 @@ key: impl AsRef<[u8]>, author: &Author, data: impl AsRef<[u8]> -) -> Result<Hash, InsertError>

    Hashes the given data and inserts it.

    +) -> Result<Hash, InsertError>

    Hashes the given data and inserts it.

    This does not store the content, just the record of it. Returns the calculated hash.

    source

    pub fn record_id( @@ -56,7 +56,6 @@

    source

    pub fn secret_key(&self) -> Result<&NamespaceSecret, ReadOnly>

    Get the byte representation of the NamespaceSecret key for this replica. Will fail if the replica is read only

    Trait Implementations§

    source§

    impl<'a, I> Debug for Replica<'a, I>
    where - StoreInstance<'a>: Debug, I: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<'a, I> Freeze for Replica<'a, I>
    where I: Freeze,

    §

    impl<'a, I = Box<ReplicaInfo>> !RefUnwindSafe for Replica<'a, I>

    §

    impl<'a, I> Send for Replica<'a, I>
    where I: Send,

    §

    impl<'a, I> Sync for Replica<'a, I>
    where diff --git a/pr/2574/docs/iroh_docs/sync/struct.ReplicaInfo.html b/pr/2574/docs/iroh_docs/sync/struct.ReplicaInfo.html index 1f645645c1..bb8c2abb01 100644 --- a/pr/2574/docs/iroh_docs/sync/struct.ReplicaInfo.html +++ b/pr/2574/docs/iroh_docs/sync/struct.ReplicaInfo.html @@ -23,10 +23,7 @@

    The capability must refer to the the same namespace, otherwise an error will be returned.

    This will upgrade the replica’s capability when passing a Capability::Write. It is a no-op if capability is a Capability::Read`.

    -

    Trait Implementations§

    source§

    impl Debug for ReplicaInfo
    where - Capability: Debug, - Subscribers: Debug, - bool: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for ReplicaInfo

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_docs/sync/struct.SignedEntry.html b/pr/2574/docs/iroh_docs/sync/struct.SignedEntry.html index 5aa35d0422..fe1f1a3633 100644 --- a/pr/2574/docs/iroh_docs/sync/struct.SignedEntry.html +++ b/pr/2574/docs/iroh_docs/sync/struct.SignedEntry.html @@ -14,7 +14,7 @@

    source

    pub fn signature(&self) -> &EntrySignature

    Get the signature.

    source

    pub fn validate_empty(&self) -> Result<(), ValidationFailure>

    Validate that the entry has the empty hash if the length is 0, or a non-zero length.

    source

    pub fn entry(&self) -> &Entry

    Get the Entry.

    -
    source

    pub fn content_hash(&self) -> Hash

    Get the content Hash of the entry.

    +
    source

    pub fn content_hash(&self) -> Hash

    Get the content [struct@Hash] of the entry.

    source

    pub fn content_len(&self) -> u64

    Get the content length of the entry.

    source

    pub fn author_bytes(&self) -> AuthorId

    Get the author bytes of this entry.

    source

    pub fn key(&self) -> &[u8]

    Get the key of the entry.

    @@ -29,7 +29,7 @@
    source

    pub fn to_vec(&self) -> Vec<u8>

    Serialize this entry into a new vector with its canonical byte representation.

    Methods from Deref<Target = Record>§

    source

    pub fn is_empty(&self) -> bool

    Return true if the entry is empty.

    source

    pub fn content_len(&self) -> u64

    Get the length of the data addressed by this record’s content hash.

    -
    source

    pub fn content_hash(&self) -> Hash

    Get the Hash of the content data of this record.

    +
    source

    pub fn content_hash(&self) -> Hash

    Get the [struct@Hash] of the content data of this record.

    source

    pub fn timestamp(&self) -> u64

    Get the timestamp of this record.

    Trait Implementations§

    source§

    impl Clone for SignedEntry

    source§

    fn clone(&self) -> SignedEntry

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for SignedEntry

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Deref for SignedEntry

    §

    type Target = Entry

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl<'de> Deserialize<'de> for SignedEntry

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<SignedEntry> for Entry

    source§

    fn from(value: SignedEntry) -> Self

    Converts to this type from the input type.
    source§

    impl Ord for SignedEntry

    source§

    fn cmp(&self, other: &Self) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where diff --git a/pr/2574/docs/iroh_docs/sync/type.ContentStatusCallback.html b/pr/2574/docs/iroh_docs/sync/type.ContentStatusCallback.html index faa3b5f5b0..4aa60077a0 100644 --- a/pr/2574/docs/iroh_docs/sync/type.ContentStatusCallback.html +++ b/pr/2574/docs/iroh_docs/sync/type.ContentStatusCallback.html @@ -1,2 +1,2 @@ -ContentStatusCallback in iroh_docs::sync - Rust

    Type Alias iroh_docs::sync::ContentStatusCallback

    source ·
    pub type ContentStatusCallback = Arc<dyn Fn(Hash) -> ContentStatus + Send + Sync + 'static>;
    Expand description

    Callback that may be set on a replica to determine the availability status for a content hash.

    +ContentStatusCallback in iroh_docs::sync - Rust

    Type Alias iroh_docs::sync::ContentStatusCallback

    source ·
    pub type ContentStatusCallback = Arc<dyn Fn(Hash) -> ContentStatus + Send + Sync + 'static>;
    Expand description

    Callback that may be set on a replica to determine the availability status for a content hash.

    Aliased Type§

    struct ContentStatusCallback { /* private fields */ }
    \ No newline at end of file diff --git a/pr/2574/docs/iroh_gossip/dispatcher/enum.GossipEvent.html b/pr/2574/docs/iroh_gossip/dispatcher/enum.GossipEvent.html index aa8d1350a5..cced7fb316 100644 --- a/pr/2574/docs/iroh_gossip/dispatcher/enum.GossipEvent.html +++ b/pr/2574/docs/iroh_gossip/dispatcher/enum.GossipEvent.html @@ -1,14 +1,14 @@ GossipEvent in iroh_gossip::dispatcher - Rust

    Enum iroh_gossip::dispatcher::GossipEvent

    source ·
    pub enum GossipEvent {
    -    NeighborUp(NodeId),
    -    NeighborDown(NodeId),
    +    NeighborUp(NodeId),
    +    NeighborDown(NodeId),
         Received(Message),
     }
    Expand description

    Gossip event An event to be emitted to the application for a particular topic.

    -

    Variants§

    §

    NeighborUp(NodeId)

    We have a new, direct neighbor in the swarm membership layer for this topic

    -
    §

    NeighborDown(NodeId)

    We dropped direct neighbor in the swarm membership layer for this topic

    +

    Variants§

    §

    NeighborUp(NodeId)

    We have a new, direct neighbor in the swarm membership layer for this topic

    +
    §

    NeighborDown(NodeId)

    We dropped direct neighbor in the swarm membership layer for this topic

    §

    Received(Message)

    A gossip message was received for this topic

    Trait Implementations§

    source§

    impl Clone for GossipEvent

    source§

    fn clone(&self) -> GossipEvent

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for GossipEvent

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for GossipEvent

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<Event<PublicKey>> for GossipEvent

    source§

    fn from(event: Event<NodeId>) -> Self

    Converts to this type from the input type.
    source§

    impl Ord for GossipEvent

    source§

    fn cmp(&self, other: &GossipEvent) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<Event<PublicKey>> for GossipEvent

    source§

    fn from(event: Event<NodeId>) -> Self

    Converts to this type from the input type.
    source§

    impl Ord for GossipEvent

    source§

    fn cmp(&self, other: &GossipEvent) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for GossipEvent

    source§

    fn eq(&self, other: &GossipEvent) -> bool

    This method tests for self and other values to be equal, and is used diff --git a/pr/2574/docs/iroh_gossip/dispatcher/struct.GossipDispatcher.html b/pr/2574/docs/iroh_gossip/dispatcher/struct.GossipDispatcher.html index d790fb8da4..e1abc9f4fa 100644 --- a/pr/2574/docs/iroh_gossip/dispatcher/struct.GossipDispatcher.html +++ b/pr/2574/docs/iroh_gossip/dispatcher/struct.GossipDispatcher.html @@ -5,7 +5,7 @@ topic: TopicId, options: SubscribeOptions, updates: Box<dyn Stream<Item = Command> + Send + Sync + Unpin + 'static> -) -> impl Stream<Item = RpcResult<Event>> + Unpin

    Subscribe to a gossip topic.

    +) -> impl Stream<Item = RpcResult<Event>> + Unpin

    Subscribe to a gossip topic.

    Trait Implementations§

    source§

    impl Clone for GossipDispatcher

    source§

    fn clone(&self) -> GossipDispatcher

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for GossipDispatcher

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_gossip/dispatcher/struct.Message.html b/pr/2574/docs/iroh_gossip/dispatcher/struct.Message.html index e95a99dda9..6cbd3d761d 100644 --- a/pr/2574/docs/iroh_gossip/dispatcher/struct.Message.html +++ b/pr/2574/docs/iroh_gossip/dispatcher/struct.Message.html @@ -1,12 +1,12 @@ Message in iroh_gossip::dispatcher - Rust

    Struct iroh_gossip::dispatcher::Message

    source ·
    pub struct Message {
         pub content: Bytes,
         pub scope: DeliveryScope,
    -    pub delivered_from: NodeId,
    +    pub delivered_from: NodeId,
     }
    Expand description

    A gossip message

    Fields§

    §content: Bytes

    The content of the message

    §scope: DeliveryScope

    The scope of the message. This tells us if the message is from a direct neighbor or actual gossip.

    -
    §delivered_from: NodeId

    The node that delivered the message. This is not the same as the original author.

    +
    §delivered_from: NodeId

    The node that delivered the message. This is not the same as the original author.

    Trait Implementations§

    source§

    impl Clone for Message

    source§

    fn clone(&self) -> Message

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Message

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Message

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Ord for Message

    source§

    fn cmp(&self, other: &Message) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where diff --git a/pr/2574/docs/iroh_gossip/dispatcher/struct.SubscribeOptions.html b/pr/2574/docs/iroh_gossip/dispatcher/struct.SubscribeOptions.html index c866f9cbf7..98bace3120 100644 --- a/pr/2574/docs/iroh_gossip/dispatcher/struct.SubscribeOptions.html +++ b/pr/2574/docs/iroh_gossip/dispatcher/struct.SubscribeOptions.html @@ -1,8 +1,8 @@ SubscribeOptions in iroh_gossip::dispatcher - Rust

    Struct iroh_gossip::dispatcher::SubscribeOptions

    source ·
    pub struct SubscribeOptions {
    -    pub bootstrap: BTreeSet<PublicKey>,
    +    pub bootstrap: BTreeSet<PublicKey>,
         pub subscription_capacity: usize,
     }
    Expand description

    Join a gossip topic

    -

    Fields§

    §bootstrap: BTreeSet<PublicKey>

    The initial bootstrap nodes

    +

    Fields§

    §bootstrap: BTreeSet<PublicKey>

    The initial bootstrap nodes

    §subscription_capacity: usize

    The maximum number of messages that can be buffered in a subscription.

    If this limit is reached, the subscriber will receive a Lagged response, the message will be dropped, and the subscriber will be closed.

    diff --git a/pr/2574/docs/iroh_gossip/metrics/struct.Metrics.html b/pr/2574/docs/iroh_gossip/metrics/struct.Metrics.html index c9aa906e8f..94acb63969 100644 --- a/pr/2574/docs/iroh_gossip/metrics/struct.Metrics.html +++ b/pr/2574/docs/iroh_gossip/metrics/struct.Metrics.html @@ -1,26 +1,26 @@ Metrics in iroh_gossip::metrics - Rust

    Struct iroh_gossip::metrics::Metrics

    source ·
    pub struct Metrics {
    Show 18 fields - pub msgs_ctrl_sent: Counter, - pub msgs_ctrl_recv: Counter, - pub msgs_data_sent: Counter, - pub msgs_data_recv: Counter, - pub msgs_data_sent_size: Counter, - pub msgs_data_recv_size: Counter, - pub msgs_ctrl_sent_size: Counter, - pub msgs_ctrl_recv_size: Counter, - pub neighbor_up: Counter, - pub neighbor_down: Counter, - pub actor_tick_main: Counter, - pub actor_tick_rx: Counter, - pub actor_tick_endpoint: Counter, - pub actor_tick_dialer: Counter, - pub actor_tick_dialer_success: Counter, - pub actor_tick_dialer_failure: Counter, - pub actor_tick_in_event_rx: Counter, - pub actor_tick_timers: Counter, + pub msgs_ctrl_sent: Counter, + pub msgs_ctrl_recv: Counter, + pub msgs_data_sent: Counter, + pub msgs_data_recv: Counter, + pub msgs_data_sent_size: Counter, + pub msgs_data_recv_size: Counter, + pub msgs_ctrl_sent_size: Counter, + pub msgs_ctrl_recv_size: Counter, + pub neighbor_up: Counter, + pub neighbor_down: Counter, + pub actor_tick_main: Counter, + pub actor_tick_rx: Counter, + pub actor_tick_endpoint: Counter, + pub actor_tick_dialer: Counter, + pub actor_tick_dialer_success: Counter, + pub actor_tick_dialer_failure: Counter, + pub actor_tick_in_event_rx: Counter, + pub actor_tick_timers: Counter,
    }
    Expand description

    Enum of metrics for the module

    -

    Fields§

    §msgs_ctrl_sent: Counter§msgs_ctrl_recv: Counter§msgs_data_sent: Counter§msgs_data_recv: Counter§msgs_data_sent_size: Counter§msgs_data_recv_size: Counter§msgs_ctrl_sent_size: Counter§msgs_ctrl_recv_size: Counter§neighbor_up: Counter§neighbor_down: Counter§actor_tick_main: Counter§actor_tick_rx: Counter§actor_tick_endpoint: Counter§actor_tick_dialer: Counter§actor_tick_dialer_success: Counter§actor_tick_dialer_failure: Counter§actor_tick_in_event_rx: Counter§actor_tick_timers: Counter

    Trait Implementations§

    source§

    impl Clone for Metrics

    source§

    fn clone(&self) -> Metrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Metrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Metrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for Metrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for Metrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    source§

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    source§

    fn with_metric<T, F>(f: F)
    where +

    Fields§

    §msgs_ctrl_sent: Counter§msgs_ctrl_recv: Counter§msgs_data_sent: Counter§msgs_data_recv: Counter§msgs_data_sent_size: Counter§msgs_data_recv_size: Counter§msgs_ctrl_sent_size: Counter§msgs_ctrl_recv_size: Counter§neighbor_up: Counter§neighbor_down: Counter§actor_tick_main: Counter§actor_tick_rx: Counter§actor_tick_endpoint: Counter§actor_tick_dialer: Counter§actor_tick_dialer_success: Counter§actor_tick_dialer_failure: Counter§actor_tick_in_event_rx: Counter§actor_tick_timers: Counter

    Trait Implementations§

    source§

    impl Clone for Metrics

    source§

    fn clone(&self) -> Metrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Metrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Metrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for Metrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for Metrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    §

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    §

    fn with_metric<T, F>(f: F)
    where F: FnOnce(&Self) -> T,

    Access to this metrics group to record a metric. -Only records if this metric is registered in the global registry.
    source§

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +Only records if this metric is registered in the global registry.

    §

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_gossip/net/struct.Gossip.html b/pr/2574/docs/iroh_gossip/net/struct.Gossip.html index ec4771984d..0e13977df3 100644 --- a/pr/2574/docs/iroh_gossip/net/struct.Gossip.html +++ b/pr/2574/docs/iroh_gossip/net/struct.Gossip.html @@ -1,7 +1,7 @@ Gossip in iroh_gossip::net - Rust

    Struct iroh_gossip::net::Gossip

    source ·
    pub struct Gossip { /* private fields */ }
    Expand description

    Publish and subscribe on gossiping topics.

    Each topic is a separate broadcast tree with separate memberships.

    A topic has to be joined before you can publish or subscribe on the topic. -To join the swarm for a topic, you have to know the PublicKey of at least one peer that also joined the topic.

    +To join the swarm for a topic, you have to know the [PublicKey] of at least one peer that also joined the topic.

    Messages published on the swarm will be delivered to all peers that joined the swarm for that topic. You will also be relaying (gossiping) messages published by other peers.

    With the default settings, the protocol will maintain up to 5 peer connections per topic.

    @@ -13,15 +13,15 @@

    Implementations§

    source§

    impl Gossip

    source

    pub fn from_endpoint( endpoint: Endpoint, config: Config, - my_addr: &AddrInfo + my_addr: &AddrInfo ) -> Self

    Spawn a gossip actor and get a handle for it

    source

    pub fn max_message_size(&self) -> usize

    Get the maximum message size configured for this gossip actor.

    source

    pub async fn join( &self, topic: TopicId, - peers: Vec<PublicKey> + peers: Vec<PublicKey> ) -> Result<JoinTopicFut>

    Join a topic and connect to peers.

    -

    This method only asks for PublicKeys. You must supply information on how to +

    This method only asks for [PublicKey]s. You must supply information on how to connect to these peers manually before, by calling Endpoint::add_node_addr on the underlying Endpoint.

    This method returns a future that completes once the request reached the local actor. diff --git a/pr/2574/docs/iroh_gossip/net/type.Command.html b/pr/2574/docs/iroh_gossip/net/type.Command.html index bd9c43971c..032815b95d 100644 --- a/pr/2574/docs/iroh_gossip/net/type.Command.html +++ b/pr/2574/docs/iroh_gossip/net/type.Command.html @@ -1,9 +1,9 @@ -Command in iroh_gossip::net - Rust

    Type Alias iroh_gossip::net::Command

    source ·
    pub type Command = Command<PublicKey>;
    Expand description

    Commands for the gossip protocol

    +Command in iroh_gossip::net - Rust

    Type Alias iroh_gossip::net::Command

    source ·
    pub type Command = Command<PublicKey>;
    Expand description

    Commands for the gossip protocol

    Aliased Type§

    enum Command {
    -    Join(Vec<PublicKey>),
    +    Join(Vec<PublicKey>),
         Broadcast(Bytes, Scope),
         Quit,
    -}

    Variants§

    §

    Join(Vec<PublicKey>)

    Join this topic and connect to peers.

    +}

    Variants§

    §

    Join(Vec<PublicKey>)

    Join this topic and connect to peers.

    If the list of peers is empty, will prepare the state and accept incoming join requests, but only become operational after the first join request by another peer.

    §

    Broadcast(Bytes, Scope)

    Broadcast a message for this topic.

    diff --git a/pr/2574/docs/iroh_gossip/net/type.Event.html b/pr/2574/docs/iroh_gossip/net/type.Event.html index de0132fadd..3583896dda 100644 --- a/pr/2574/docs/iroh_gossip/net/type.Event.html +++ b/pr/2574/docs/iroh_gossip/net/type.Event.html @@ -1,9 +1,9 @@ -Event in iroh_gossip::net - Rust

    Type Alias iroh_gossip::net::Event

    source ·
    pub type Event = Event<PublicKey>;
    Expand description

    Events emitted from the gossip protocol

    +Event in iroh_gossip::net - Rust

    Type Alias iroh_gossip::net::Event

    source ·
    pub type Event = Event<PublicKey>;
    Expand description

    Events emitted from the gossip protocol

    Aliased Type§

    enum Event {
    -    NeighborUp(PublicKey),
    -    NeighborDown(PublicKey),
    -    Received(GossipEvent<PublicKey>),
    -}

    Variants§

    §

    NeighborUp(PublicKey)

    We have a new, direct neighbor in the swarm membership layer for this topic

    -
    §

    NeighborDown(PublicKey)

    We dropped direct neighbor in the swarm membership layer for this topic

    -
    §

    Received(GossipEvent<PublicKey>)

    A gossip message was received for this topic

    + NeighborUp(PublicKey), + NeighborDown(PublicKey), + Received(GossipEvent<PublicKey>), +}

    Variants§

    §

    NeighborUp(PublicKey)

    We have a new, direct neighbor in the swarm membership layer for this topic

    +
    §

    NeighborDown(PublicKey)

    We dropped direct neighbor in the swarm membership layer for this topic

    +
    §

    Received(GossipEvent<PublicKey>)

    A gossip message was received for this topic

    \ No newline at end of file diff --git a/pr/2574/docs/iroh_gossip/net/util/fn.read_message.html b/pr/2574/docs/iroh_gossip/net/util/fn.read_message.html index 1c2a409a5d..8d91262840 100644 --- a/pr/2574/docs/iroh_gossip/net/util/fn.read_message.html +++ b/pr/2574/docs/iroh_gossip/net/util/fn.read_message.html @@ -2,5 +2,5 @@ reader: impl AsyncRead + Unpin, buffer: &mut BytesMut, max_message_size: usize -) -> Result<Option<Message<PublicKey>>>
    Expand description

    Read a length-prefixed message and decode as ProtoMessage;

    +) -> Result<Option<Message<PublicKey>>>
    Expand description

    Read a length-prefixed message and decode as ProtoMessage;

    \ No newline at end of file diff --git a/pr/2574/docs/iroh_gossip/net/util/fn.write_message.html b/pr/2574/docs/iroh_gossip/net/util/fn.write_message.html index 949973b850..850419e0c0 100644 --- a/pr/2574/docs/iroh_gossip/net/util/fn.write_message.html +++ b/pr/2574/docs/iroh_gossip/net/util/fn.write_message.html @@ -1,7 +1,7 @@ write_message in iroh_gossip::net::util - Rust

    Function iroh_gossip::net::util::write_message

    source ·
    pub async fn write_message<W: AsyncWrite + Unpin>(
         writer: &mut W,
         buffer: &mut BytesMut,
    -    frame: &Message<PublicKey>,
    +    frame: &Message<PublicKey>,
         max_message_size: usize
     ) -> Result<()>
    Expand description

    Write a ProtoMessage as a length-prefixed, postcard-encoded message.

    \ No newline at end of file diff --git a/pr/2574/docs/iroh_gossip/proto/state/struct.TopicId.html b/pr/2574/docs/iroh_gossip/proto/state/struct.TopicId.html index 98fbe94bd8..2e8c11f21f 100644 --- a/pr/2574/docs/iroh_gossip/proto/state/struct.TopicId.html +++ b/pr/2574/docs/iroh_gossip/proto/state/struct.TopicId.html @@ -1,7 +1,7 @@ TopicId in iroh_gossip::proto::state - Rust

    Struct iroh_gossip::proto::state::TopicId

    source ·
    pub struct TopicId(/* private fields */);
    Expand description

    The identifier for a topic

    Implementations§

    source§

    impl TopicId

    source

    pub const fn from_bytes(bytes: [u8; 32]) -> Self

    Create from a byte array.

    source

    pub fn as_bytes(&self) -> &[u8; 32]

    Get as byte slice.

    -

    Trait Implementations§

    source§

    impl AsRef<[u8]> for TopicId

    source§

    fn as_ref(&self) -> &[u8]

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl AsRef<[u8; 32]> for TopicId

    source§

    fn as_ref(&self) -> &[u8; 32]

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl Clone for TopicId

    source§

    fn clone(&self) -> TopicId

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for TopicId

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for TopicId

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where +

    Trait Implementations§

    source§

    impl AsRef<[u8]> for TopicId

    source§

    fn as_ref(&self) -> &[u8]

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl AsRef<[u8; 32]> for TopicId

    source§

    fn as_ref(&self) -> &[u8; 32]

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl Clone for TopicId

    source§

    fn clone(&self) -> TopicId

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for TopicId

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for TopicId

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for TopicId

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<T: Into<[u8; 32]>> From<T> for TopicId

    source§

    fn from(value: T) -> Self

    Converts to this type from the input type.
    source§

    impl FromStr for TopicId

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Hash for TopicId

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for TopicId

    source§

    fn cmp(&self, other: &TopicId) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where diff --git a/pr/2574/docs/iroh_gossip/proto/topic/enum.Command.html b/pr/2574/docs/iroh_gossip/proto/topic/enum.Command.html index c41c8dfaa6..3d816c230b 100644 --- a/pr/2574/docs/iroh_gossip/proto/topic/enum.Command.html +++ b/pr/2574/docs/iroh_gossip/proto/topic/enum.Command.html @@ -9,8 +9,7 @@
    §

    Broadcast(Bytes, Scope)

    Broadcast a message for this topic.

    §

    Quit

    Leave this topic and drop all state.

    Trait Implementations§

    source§

    impl<PI: Clone> Clone for Command<PI>

    source§

    fn clone(&self) -> Command<PI>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<PI> Debug for Command<PI>
    where - Vec<PI>: Debug, - Scope: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<PI> !Freeze for Command<PI>

    §

    impl<PI> RefUnwindSafe for Command<PI>
    where + Vec<PI>: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<PI> !Freeze for Command<PI>

    §

    impl<PI> RefUnwindSafe for Command<PI>
    where PI: RefUnwindSafe,

    §

    impl<PI> Send for Command<PI>
    where PI: Send,

    §

    impl<PI> Sync for Command<PI>
    where PI: Sync,

    §

    impl<PI> Unpin for Command<PI>
    where diff --git a/pr/2574/docs/iroh_gossip/proto/topic/enum.Event.html b/pr/2574/docs/iroh_gossip/proto/topic/enum.Event.html index 725eab41fb..442877097b 100644 --- a/pr/2574/docs/iroh_gossip/proto/topic/enum.Event.html +++ b/pr/2574/docs/iroh_gossip/proto/topic/enum.Event.html @@ -8,7 +8,7 @@
    §

    Received(GossipEvent<PI>)

    A gossip message was received for this topic

    Trait Implementations§

    source§

    impl<PI: Clone> Clone for Event<PI>

    source§

    fn clone(&self) -> Event<PI>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<PI: Debug> Debug for Event<PI>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, PI> Deserialize<'de> for Event<PI>
    where PI: Deserialize<'de>,

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<Event<PublicKey>> for GossipEvent

    source§

    fn from(event: Event<NodeId>) -> Self

    Converts to this type from the input type.
    source§

    impl<PI: Ord> Ord for Event<PI>

    source§

    fn cmp(&self, other: &Event<PI>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<Event<PublicKey>> for GossipEvent

    source§

    fn from(event: Event<NodeId>) -> Self

    Converts to this type from the input type.
    source§

    impl<PI: Ord> Ord for Event<PI>

    source§

    fn cmp(&self, other: &Event<PI>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl<PI: PartialEq> PartialEq for Event<PI>

    source§

    fn eq(&self, other: &Event<PI>) -> bool

    This method tests for self and other values to be equal, and is used diff --git a/pr/2574/docs/iroh_net/discovery/pkarr/struct.PkarrPublisher.html b/pr/2574/docs/iroh_net/discovery/pkarr/struct.PkarrPublisher.html index 50592092e1..d15fc25d87 100644 --- a/pr/2574/docs/iroh_net/discovery/pkarr/struct.PkarrPublisher.html +++ b/pr/2574/docs/iroh_net/discovery/pkarr/struct.PkarrPublisher.html @@ -15,10 +15,7 @@ uses N0_DNS_PKARR_RELAY_STAGING.

    source

    pub fn update_addr_info(&self, info: &AddrInfo)

    Publish AddrInfo about this node to a pkarr relay.

    This is a nonblocking function, the actual update is performed in the background.

    -

    Trait Implementations§

    source§

    impl Clone for PkarrPublisher

    source§

    fn clone(&self) -> PkarrPublisher

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for PkarrPublisher
    where - NodeId: Debug, - Watchable<Option<NodeInfo>>: Debug, - Arc<JoinHandle<()>>: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Discovery for PkarrPublisher

    source§

    fn publish(&self, info: &AddrInfo)

    Publishes the given AddrInfo to the discovery mechanism. Read more
    source§

    fn resolve( +

    Trait Implementations§

    source§

    impl Clone for PkarrPublisher

    source§

    fn clone(&self) -> PkarrPublisher

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for PkarrPublisher

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Discovery for PkarrPublisher

    source§

    fn publish(&self, info: &AddrInfo)

    Publishes the given AddrInfo to the discovery mechanism. Read more
    source§

    fn resolve( &self, _endpoint: Endpoint, _node_id: NodeId diff --git a/pr/2574/docs/iroh_net/discovery/pkarr/struct.PkarrResolver.html b/pr/2574/docs/iroh_net/discovery/pkarr/struct.PkarrResolver.html index d26ef55bd4..e807479e72 100644 --- a/pr/2574/docs/iroh_net/discovery/pkarr/struct.PkarrResolver.html +++ b/pr/2574/docs/iroh_net/discovery/pkarr/struct.PkarrResolver.html @@ -7,8 +7,7 @@

    Implementations§

    source§

    impl PkarrResolver

    source

    pub fn new(pkarr_relay: Url) -> Self

    Create a new config with a pkarr relay URL.

    source

    pub fn n0_dns() -> Self

    Create a pkarr resolver which uses the N0_DNS_PKARR_RELAY_PROD pkarr relay and in testing uses N0_DNS_PKARR_RELAY_STAGING.

    -

    Trait Implementations§

    source§

    impl Clone for PkarrResolver

    source§

    fn clone(&self) -> PkarrResolver

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for PkarrResolver

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Discovery for PkarrResolver

    Trait Implementations§

    source§

    impl Clone for PkarrResolver

    source§

    fn clone(&self) -> PkarrResolver

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for PkarrResolver

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Discovery for PkarrResolver

    source§

    fn resolve( &self, _ep: Endpoint, node_id: NodeId diff --git a/pr/2574/docs/iroh_net/dns/node_info/enum.IrohAttr.html b/pr/2574/docs/iroh_net/dns/node_info/enum.IrohAttr.html index 30b1af05cb..ec2b701162 100644 --- a/pr/2574/docs/iroh_net/dns/node_info/enum.IrohAttr.html +++ b/pr/2574/docs/iroh_net/dns/node_info/enum.IrohAttr.html @@ -5,7 +5,7 @@

    The resource record uses the lower-case names.

    Variants§

    §

    Relay

    URL of home relay.

    §

    Addr

    Direct address.

    -

    Trait Implementations§

    source§

    impl AsRef<str> for IrohAttr

    source§

    fn as_ref(&self) -> &str

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl Debug for IrohAttr

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for IrohAttr

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl FromStr for IrohAttr

    §

    type Err = ParseError

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<IrohAttr, <Self as FromStr>::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Hash for IrohAttr

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where +

    Trait Implementations§

    source§

    impl AsRef<str> for IrohAttr

    source§

    fn as_ref(&self) -> &str

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl Debug for IrohAttr

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for IrohAttr

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl FromStr for IrohAttr

    §

    type Err = ParseError

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<IrohAttr, <Self as FromStr>::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Hash for IrohAttr

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for IrohAttr

    source§

    fn cmp(&self, other: &IrohAttr) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where diff --git a/pr/2574/docs/iroh_net/dns/node_info/struct.NodeInfo.html b/pr/2574/docs/iroh_net/dns/node_info/struct.NodeInfo.html index 105f5291cd..d78e28006c 100644 --- a/pr/2574/docs/iroh_net/dns/node_info/struct.NodeInfo.html +++ b/pr/2574/docs/iroh_net/dns/node_info/struct.NodeInfo.html @@ -24,9 +24,7 @@ origin: &str, ttl: u32 ) -> Result<impl Iterator<Item = Record> + 'static>

    Converts into a [hickory_proto::rr::Record] DNS record.

    -

    Trait Implementations§

    source§

    impl Clone for NodeInfo

    source§

    fn clone(&self) -> NodeInfo

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NodeInfo

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&NodeInfo> for TxtAttrs<IrohAttr>

    source§

    fn from(info: &NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<&TxtAttrs<IrohAttr>> for NodeInfo

    source§

    fn from(attrs: &TxtAttrs<IrohAttr>) -> Self

    Converts to this type from the input type.
    source§

    impl From<NodeInfo> for AddrInfo

    source§

    fn from(value: NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<NodeInfo> for NodeAddr

    source§

    fn from(value: NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<TxtAttrs<IrohAttr>> for NodeInfo

    source§

    fn from(attrs: TxtAttrs<IrohAttr>) -> Self

    Converts to this type from the input type.
    source§

    impl PartialEq for NodeInfo

    source§

    fn eq(&self, other: &NodeInfo) -> bool

    This method tests for self and other values to be equal, and is used +

    Trait Implementations§

    source§

    impl Clone for NodeInfo

    source§

    fn clone(&self) -> NodeInfo

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NodeInfo

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&NodeInfo> for TxtAttrs<IrohAttr>

    source§

    fn from(info: &NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<&TxtAttrs<IrohAttr>> for NodeInfo

    source§

    fn from(attrs: &TxtAttrs<IrohAttr>) -> Self

    Converts to this type from the input type.
    source§

    impl From<NodeInfo> for AddrInfo

    source§

    fn from(value: NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<NodeInfo> for NodeAddr

    source§

    fn from(value: NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<TxtAttrs<IrohAttr>> for NodeInfo

    source§

    fn from(attrs: TxtAttrs<IrohAttr>) -> Self

    Converts to this type from the input type.
    source§

    impl PartialEq for NodeInfo

    source§

    fn eq(&self, other: &NodeInfo) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for NodeInfo

    source§

    impl StructuralPartialEq for NodeInfo

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/dns/node_info/struct.TxtAttrs.html b/pr/2574/docs/iroh_net/dns/node_info/struct.TxtAttrs.html index c75c433232..e80b9caf9c 100644 --- a/pr/2574/docs/iroh_net/dns/node_info/struct.TxtAttrs.html +++ b/pr/2574/docs/iroh_net/dns/node_info/struct.TxtAttrs.html @@ -34,7 +34,7 @@ ttl: u32 ) -> Result<SignedPacket>

    Creates a [pkarr::SignedPacket]

    This constructs a DNS packet and signs it with a SecretKey.

    -

    Trait Implementations§

    source§

    impl<T: Debug> Debug for TxtAttrs<T>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&NodeInfo> for TxtAttrs<IrohAttr>

    source§

    fn from(info: &NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<&TxtAttrs<IrohAttr>> for NodeInfo

    source§

    fn from(attrs: &TxtAttrs<IrohAttr>) -> Self

    Converts to this type from the input type.
    source§

    impl From<TxtAttrs<IrohAttr>> for NodeInfo

    source§

    fn from(attrs: TxtAttrs<IrohAttr>) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl<T> Freeze for TxtAttrs<T>

    §

    impl<T> RefUnwindSafe for TxtAttrs<T>
    where +

    Trait Implementations§

    source§

    impl<T: Debug> Debug for TxtAttrs<T>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&NodeInfo> for TxtAttrs<IrohAttr>

    source§

    fn from(info: &NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<&TxtAttrs<IrohAttr>> for NodeInfo

    source§

    fn from(attrs: &TxtAttrs<IrohAttr>) -> Self

    Converts to this type from the input type.
    source§

    impl From<TxtAttrs<IrohAttr>> for NodeInfo

    source§

    fn from(attrs: TxtAttrs<IrohAttr>) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl<T> Freeze for TxtAttrs<T>

    §

    impl<T> RefUnwindSafe for TxtAttrs<T>
    where T: RefUnwindSafe,

    §

    impl<T> Send for TxtAttrs<T>
    where T: Send,

    §

    impl<T> Sync for TxtAttrs<T>
    where T: Sync,

    §

    impl<T> Unpin for TxtAttrs<T>

    §

    impl<T> UnwindSafe for TxtAttrs<T>
    where diff --git a/pr/2574/docs/iroh_net/endpoint/enum.ControlMsg.html b/pr/2574/docs/iroh_net/endpoint/enum.ControlMsg.html index 9d183a0038..88c84268c5 100644 --- a/pr/2574/docs/iroh_net/endpoint/enum.ControlMsg.html +++ b/pr/2574/docs/iroh_net/endpoint/enum.ControlMsg.html @@ -6,8 +6,8 @@

    Variants§

    §

    Ping

    We received a Ping from the node.

    §

    Pong

    We received a Pong from the node.

    §

    CallMeMaybe

    We received a CallMeMaybe.

    -

    Trait Implementations§

    source§

    impl Clone for ControlMsg

    source§

    fn clone(&self) -> ControlMsg

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ControlMsg

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for ControlMsg

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for ControlMsg

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for ControlMsg

    source§

    fn eq(&self, other: &ControlMsg) -> bool

    This method tests for self and other values to be equal, and is used +

    Trait Implementations§

    source§

    impl Clone for ControlMsg

    source§

    fn clone(&self) -> ControlMsg

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ControlMsg

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for ControlMsg

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for ControlMsg

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for ControlMsg

    source§

    fn eq(&self, other: &ControlMsg) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for ControlMsg

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Copy for ControlMsg

    source§

    impl Eq for ControlMsg

    source§

    impl StructuralPartialEq for ControlMsg

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where diff --git a/pr/2574/docs/iroh_net/endpoint/fn.default_relay_mode.html b/pr/2574/docs/iroh_net/endpoint/fn.default_relay_mode.html index 225f27e62e..aad447ed14 100644 --- a/pr/2574/docs/iroh_net/endpoint/fn.default_relay_mode.html +++ b/pr/2574/docs/iroh_net/endpoint/fn.default_relay_mode.html @@ -1,4 +1,4 @@ -default_relay_mode in iroh_net::endpoint - Rust

    Function iroh_net::endpoint::default_relay_mode

    source ·
    pub fn default_relay_mode() -> RelayMode
    Expand description

    Returns the default relay mode.

    +default_relay_mode in iroh_net::endpoint - Rust

    Function iroh_net::endpoint::default_relay_mode

    source ·
    pub fn default_relay_mode() -> RelayMode
    Expand description

    Returns the default relay mode.

    If the IROH_FORCE_STAGING_RELAYS environment variable is set to 1, it will return RelayMode::Staging. Otherwise, it will return RelayMode::Default.

    \ No newline at end of file diff --git a/pr/2574/docs/iroh_net/endpoint/fn.get_remote_node_id.html b/pr/2574/docs/iroh_net/endpoint/fn.get_remote_node_id.html index d687187c8b..3b77c780fe 100644 --- a/pr/2574/docs/iroh_net/endpoint/fn.get_remote_node_id.html +++ b/pr/2574/docs/iroh_net/endpoint/fn.get_remote_node_id.html @@ -1,2 +1,2 @@ -get_remote_node_id in iroh_net::endpoint - Rust

    Function iroh_net::endpoint::get_remote_node_id

    source ·
    pub fn get_remote_node_id(connection: &Connection) -> Result<PublicKey>
    Expand description

    Extract the PublicKey from the peer’s TLS certificate.

    +get_remote_node_id in iroh_net::endpoint - Rust

    Function iroh_net::endpoint::get_remote_node_id

    source ·
    pub fn get_remote_node_id(connection: &Connection) -> Result<PublicKey>
    Expand description

    Extract the PublicKey from the peer’s TLS certificate.

    \ No newline at end of file diff --git a/pr/2574/docs/iroh_net/endpoint/index.html b/pr/2574/docs/iroh_net/endpoint/index.html index b71a7ef7cd..5206542186 100644 --- a/pr/2574/docs/iroh_net/endpoint/index.html +++ b/pr/2574/docs/iroh_net/endpoint/index.html @@ -1,4 +1,4 @@ -iroh_net::endpoint - Rust

    Module iroh_net::endpoint

    source ·
    Expand description

    The Endpoint allows establishing connections to other iroh-net nodes.

    +iroh_net::endpoint - Rust

    Module iroh_net::endpoint

    source ·
    Expand description

    The Endpoint allows establishing connections to other iroh-net nodes.

    The Endpoint is the main API interface to manage a local iroh-net node. It allows connecting to and accepting connections from other nodes. See the module docs for more details on how iroh-net connections work.

    diff --git a/pr/2574/docs/iroh_net/endpoint/struct.Accept.html b/pr/2574/docs/iroh_net/endpoint/struct.Accept.html index 64032a7bd6..0b01e15899 100644 --- a/pr/2574/docs/iroh_net/endpoint/struct.Accept.html +++ b/pr/2574/docs/iroh_net/endpoint/struct.Accept.html @@ -1,7 +1,5 @@ -Accept in iroh_net::endpoint - Rust

    Struct iroh_net::endpoint::Accept

    source ·
    pub struct Accept<'a> { /* private fields */ }
    Expand description

    Future produced by Endpoint::accept.

    -

    Trait Implementations§

    source§

    impl<'a> Debug for Accept<'a>
    where - Accept<'a>: Debug, - Endpoint: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'a> Future for Accept<'a>

    §

    type Output = Option<Connecting>

    The type of value produced on completion.
    source§

    fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

    Attempt to resolve the future to a final value, registering +Accept in iroh_net::endpoint - Rust

    Struct iroh_net::endpoint::Accept

    source ·
    pub struct Accept<'a> { /* private fields */ }
    Expand description

    Future produced by Endpoint::accept.

    +

    Trait Implementations§

    source§

    impl<'a> Debug for Accept<'a>

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'a> Future for Accept<'a>

    §

    type Output = Option<Connecting>

    The type of value produced on completion.
    source§

    fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

    Attempt to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more
    source§

    impl<'pin, 'a> Unpin for Accept<'a>
    where __Accept<'pin, 'a>: Unpin,

    Auto Trait Implementations§

    §

    impl<'a> !Freeze for Accept<'a>

    §

    impl<'a> !RefUnwindSafe for Accept<'a>

    §

    impl<'a> Send for Accept<'a>

    §

    impl<'a> Sync for Accept<'a>

    §

    impl<'a> !UnwindSafe for Accept<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/endpoint/struct.AddrInfo.html b/pr/2574/docs/iroh_net/endpoint/struct.AddrInfo.html index fabd02af26..553fdc6f06 100644 --- a/pr/2574/docs/iroh_net/endpoint/struct.AddrInfo.html +++ b/pr/2574/docs/iroh_net/endpoint/struct.AddrInfo.html @@ -1,4 +1,4 @@ -AddrInfo in iroh_net::endpoint - Rust

    Struct iroh_net::endpoint::AddrInfo

    source ·
    pub struct AddrInfo {
    +AddrInfo in iroh_net::endpoint - Rust

    Struct iroh_net::endpoint::AddrInfo

    pub struct AddrInfo {
         pub relay_url: Option<RelayUrl>,
         pub direct_addresses: BTreeSet<SocketAddr>,
     }
    Expand description

    Network paths to contact an iroh-net node.

    @@ -7,26 +7,26 @@ other node, see NodeAddr for details.

    Fields§

    §relay_url: Option<RelayUrl>

    The node’s home relay url.

    §direct_addresses: BTreeSet<SocketAddr>

    Socket addresses where the peer might be reached directly.

    -

    Implementations§

    source§

    impl AddrInfo

    source

    pub fn is_empty(&self) -> bool

    Returns whether this addressing information is empty.

    -
    source

    pub fn apply_options(&mut self, opts: AddrInfoOptions)

    Applies the options to self.

    +

    Implementations§

    §

    impl AddrInfo

    pub fn is_empty(&self) -> bool

    Returns whether this addressing information is empty.

    +

    pub fn apply_options(&mut self, opts: AddrInfoOptions)

    Applies the options to self.

    This is used to more tightly control the information stored in ab AddrInfo received from another API. E.g. to ensure a discovery service is used the AddrInfoOptions::Id] option could be used to remove all other addressing details.

    -

    Trait Implementations§

    source§

    impl Clone for AddrInfo

    source§

    fn clone(&self) -> AddrInfo

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for AddrInfo

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Default for AddrInfo

    source§

    fn default() -> AddrInfo

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for AddrInfo

    Trait Implementations§

    §

    impl Clone for AddrInfo

    §

    fn clone(&self) -> AddrInfo

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for AddrInfo

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for AddrInfo

    §

    fn default() -> AddrInfo

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for AddrInfo

    §

    fn deserialize<__D>( __deserializer: __D ) -> Result<AddrInfo, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<NodeInfo> for AddrInfo

    source§

    fn from(value: NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl Ord for AddrInfo

    source§

    fn cmp(&self, other: &AddrInfo) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<NodeInfo> for AddrInfo

    source§

    fn from(value: NodeInfo) -> Self

    Converts to this type from the input type.
    §

    impl Ord for AddrInfo

    §

    fn cmp(&self, other: &AddrInfo) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for AddrInfo

    source§

    fn eq(&self, other: &AddrInfo) -> bool

    This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    §

    impl PartialEq for AddrInfo

    §

    fn eq(&self, other: &AddrInfo) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl PartialOrd for AddrInfo

    source§

    fn partial_cmp(&self, other: &AddrInfo) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
    §

    impl PartialOrd for AddrInfo

    §

    fn partial_cmp(&self, other: &AddrInfo) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
    source§

    impl Serialize for AddrInfo

    source§

    fn serialize<__S>( +operator. Read more

    §

    impl Serialize for AddrInfo

    §

    fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Eq for AddrInfo

    source§

    impl StructuralPartialEq for AddrInfo

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl Eq for AddrInfo

    §

    impl StructuralPartialEq for AddrInfo

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/endpoint/struct.Builder.html b/pr/2574/docs/iroh_net/endpoint/struct.Builder.html index cc4aa989d4..2f1d99b5f0 100644 --- a/pr/2574/docs/iroh_net/endpoint/struct.Builder.html +++ b/pr/2574/docs/iroh_net/endpoint/struct.Builder.html @@ -59,17 +59,7 @@

    source

    pub fn concurrent_connections(self, concurrent_connections: u32) -> Self

    Maximum number of simultaneous connections to accept.

    New incoming connections are only accepted if the total number of incoming or outgoing connections is less than this. Outgoing connections are unaffected.

    -

    Trait Implementations§

    source§

    impl Debug for Builder

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Builder

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for Builder

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Builder

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/endpoint/struct.Connecting.html b/pr/2574/docs/iroh_net/endpoint/struct.Connecting.html index 71c7b8c2ab..a296b297ac 100644 --- a/pr/2574/docs/iroh_net/endpoint/struct.Connecting.html +++ b/pr/2574/docs/iroh_net/endpoint/struct.Connecting.html @@ -1,13 +1,11 @@ -Connecting in iroh_net::endpoint - Rust

    Struct iroh_net::endpoint::Connecting

    source ·
    pub struct Connecting { /* private fields */ }
    Expand description

    In-progress connection attempt future

    -

    Implementations§

    source§

    impl Connecting

    source

    pub fn into_0rtt(self) -> Result<(Connection, ZeroRttAccepted), Self>

    Convert into a 0-RTT or 0.5-RTT connection at the cost of weakened security.

    -
    source

    pub async fn handshake_data(&mut self) -> Result<Box<dyn Any>, ConnectionError>

    Parameters negotiated during the handshake

    -
    source

    pub fn local_ip(&self) -> Option<IpAddr>

    The local IP address which was used when the peer established the connection.

    -
    source

    pub fn remote_address(&self) -> SocketAddr

    The peer’s UDP address.

    -
    source

    pub async fn alpn(&mut self) -> Result<Vec<u8>>

    Extracts the ALPN protocol from the peer’s handshake data.

    -

    Trait Implementations§

    source§

    impl Debug for Connecting
    where - Connecting: Debug, - Endpoint: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Future for Connecting

    §

    type Output = Result<Connection, ConnectionError>

    The type of value produced on completion.
    source§

    fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

    Attempt to resolve the future to a final value, registering -the current task for wakeup if the value is not yet available. Read more
    source§

    impl<'pin> Unpin for Connecting
    where +Connecting in iroh_net::endpoint - Rust

    Struct iroh_net::endpoint::Connecting

    source ·
    pub struct Connecting { /* private fields */ }
    Expand description

    In-progress connection attempt future

    +

    Implementations§

    source§

    impl Connecting

    source

    pub fn into_0rtt(self) -> Result<(Connection, ZeroRttAccepted), Self>

    Convert into a 0-RTT or 0.5-RTT connection at the cost of weakened security.

    +
    source

    pub async fn handshake_data(&mut self) -> Result<Box<dyn Any>, ConnectionError>

    Parameters negotiated during the handshake

    +
    source

    pub fn local_ip(&self) -> Option<IpAddr>

    The local IP address which was used when the peer established the connection.

    +
    source

    pub fn remote_address(&self) -> SocketAddr

    The peer’s UDP address.

    +
    source

    pub async fn alpn(&mut self) -> Result<Vec<u8>>

    Extracts the ALPN protocol from the peer’s handshake data.

    +

    Trait Implementations§

    source§

    impl Debug for Connecting

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Future for Connecting

    §

    type Output = Result<Connection, ConnectionError>

    The type of value produced on completion.
    source§

    fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

    Attempt to resolve the future to a final value, registering +the current task for wakeup if the value is not yet available. Read more
    source§

    impl<'pin> Unpin for Connecting
    where __Connecting<'pin>: Unpin,

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/endpoint/struct.Endpoint.html b/pr/2574/docs/iroh_net/endpoint/struct.Endpoint.html index 79b1d312db..1bcbe110b3 100644 --- a/pr/2574/docs/iroh_net/endpoint/struct.Endpoint.html +++ b/pr/2574/docs/iroh_net/endpoint/struct.Endpoint.html @@ -169,12 +169,7 @@
    §Errors
    close the magic socket.

    Returns an error if closing the magic socket failed. TODO: Document error cases.

    -

    Trait Implementations§

    source§

    impl Clone for Endpoint

    source§

    fn clone(&self) -> Endpoint

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Endpoint
    where - Handle: Debug, - Endpoint: Debug, - Arc<RttHandle>: Debug, - CancellationToken: Debug, - Arc<StaticConfig>: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Clone for Endpoint

    source§

    fn clone(&self) -> Endpoint

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Endpoint

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/endpoint/struct.NodeAddr.html b/pr/2574/docs/iroh_net/endpoint/struct.NodeAddr.html index 731d3c6492..6b4e0a6d8a 100644 --- a/pr/2574/docs/iroh_net/endpoint/struct.NodeAddr.html +++ b/pr/2574/docs/iroh_net/endpoint/struct.NodeAddr.html @@ -1,4 +1,4 @@ -NodeAddr in iroh_net::endpoint - Rust

    Struct iroh_net::endpoint::NodeAddr

    source ·
    pub struct NodeAddr {
    +NodeAddr in iroh_net::endpoint - Rust

    Struct iroh_net::endpoint::NodeAddr

    pub struct NodeAddr {
         pub node_id: PublicKey,
         pub info: AddrInfo,
     }
    Expand description

    Network-level addressing information for an iroh-net node.

    @@ -25,38 +25,38 @@ whenever a connection to other nodes needs to be established.

    Fields§

    §node_id: PublicKey

    The node’s identifier.

    §info: AddrInfo

    Addressing information to connect to Self::node_id.

    -

    Implementations§

    source§

    impl NodeAddr

    source

    pub fn new(node_id: PublicKey) -> NodeAddr

    Creates a new NodeAddr with empty AddrInfo.

    -
    source

    pub fn with_relay_url(self, relay_url: RelayUrl) -> NodeAddr

    Adds a relay url to the node’s AddrInfo.

    -
    source

    pub fn with_direct_addresses( +

    Implementations§

    §

    impl NodeAddr

    pub fn new(node_id: PublicKey) -> NodeAddr

    Creates a new NodeAddr with empty AddrInfo.

    +

    pub fn with_relay_url(self, relay_url: RelayUrl) -> NodeAddr

    Adds a relay url to the node’s AddrInfo.

    +

    pub fn with_direct_addresses( self, addresses: impl IntoIterator<Item = SocketAddr> ) -> NodeAddr

    Adds the given direct addresses to the peer’s AddrInfo.

    -
    source

    pub fn from_parts( +

    pub fn from_parts( node_id: PublicKey, relay_url: Option<RelayUrl>, direct_addresses: Vec<SocketAddr> ) -> NodeAddr

    Creates a new NodeAddr from its parts.

    -
    source

    pub fn apply_options(&mut self, opts: AddrInfoOptions)

    Applies the options to self.

    +

    pub fn apply_options(&mut self, opts: AddrInfoOptions)

    Applies the options to self.

    This is used to more tightly control the information stored in a NodeAddr received from another API. E.g. to ensure a discovery service is used the AddrInfoOptions::Id] option could be used to remove all other addressing details.

    -
    source

    pub fn direct_addresses(&self) -> impl Iterator<Item = &SocketAddr>

    Returns the direct addresses of this peer.

    -
    source

    pub fn relay_url(&self) -> Option<&RelayUrl>

    Returns the relay url of this peer.

    -

    Trait Implementations§

    source§

    impl Clone for NodeAddr

    source§

    fn clone(&self) -> NodeAddr

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NodeAddr

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for NodeAddr

    pub fn direct_addresses(&self) -> impl Iterator<Item = &SocketAddr>

    Returns the direct addresses of this peer.

    +

    pub fn relay_url(&self) -> Option<&RelayUrl>

    Returns the relay url of this peer.

    +

    Trait Implementations§

    §

    impl Clone for NodeAddr

    §

    fn clone(&self) -> NodeAddr

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NodeAddr

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NodeAddr

    §

    fn deserialize<__D>( __deserializer: __D ) -> Result<NodeAddr, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<(PublicKey, Option<RelayUrl>, &[SocketAddr])> for NodeAddr

    source§

    fn from(value: (PublicKey, Option<RelayUrl>, &[SocketAddr])) -> NodeAddr

    Converts to this type from the input type.
    source§

    impl From<NodeInfo> for NodeAddr

    source§

    fn from(info: NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<NodeInfo> for NodeAddr

    source§

    fn from(value: NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<PublicKey> for NodeAddr

    source§

    fn from(node_id: PublicKey) -> NodeAddr

    Converts to this type from the input type.
    source§

    impl Ord for NodeAddr

    source§

    fn cmp(&self, other: &NodeAddr) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl From<(PublicKey, Option<RelayUrl>, &[SocketAddr])> for NodeAddr

    §

    fn from(value: (PublicKey, Option<RelayUrl>, &[SocketAddr])) -> NodeAddr

    Converts to this type from the input type.
    source§

    impl From<NodeInfo> for NodeAddr

    source§

    fn from(info: NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<NodeInfo> for NodeAddr

    source§

    fn from(value: NodeInfo) -> Self

    Converts to this type from the input type.
    §

    impl From<PublicKey> for NodeAddr

    §

    fn from(node_id: PublicKey) -> NodeAddr

    Converts to this type from the input type.
    §

    impl Ord for NodeAddr

    §

    fn cmp(&self, other: &NodeAddr) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for NodeAddr

    source§

    fn eq(&self, other: &NodeAddr) -> bool

    This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    §

    impl PartialEq for NodeAddr

    §

    fn eq(&self, other: &NodeAddr) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl PartialOrd for NodeAddr

    source§

    fn partial_cmp(&self, other: &NodeAddr) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
    §

    impl PartialOrd for NodeAddr

    §

    fn partial_cmp(&self, other: &NodeAddr) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
    source§

    impl Serialize for NodeAddr

    source§

    fn serialize<__S>( +operator. Read more

    §

    impl Serialize for NodeAddr

    §

    fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Eq for NodeAddr

    source§

    impl StructuralPartialEq for NodeAddr

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl Eq for NodeAddr

    §

    impl StructuralPartialEq for NodeAddr

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/key/enum.KeyParsingError.html b/pr/2574/docs/iroh_net/key/enum.KeyParsingError.html index 028a8716f1..94d2995714 100644 --- a/pr/2574/docs/iroh_net/key/enum.KeyParsingError.html +++ b/pr/2574/docs/iroh_net/key/enum.KeyParsingError.html @@ -1,10 +1,10 @@ -KeyParsingError in iroh_net::key - Rust

    Enum iroh_net::key::KeyParsingError

    source ·
    pub enum KeyParsingError {
    -    Base32(HexOrBase32ParseError),
    +KeyParsingError in iroh_net::key - Rust

    Enum iroh_net::key::KeyParsingError

    pub enum KeyParsingError {
    +    Base32(HexOrBase32ParseError),
         Key(Error),
     }
    Expand description

    Error when deserialising a PublicKey or a SecretKey.

    -

    Variants§

    §

    Base32(HexOrBase32ParseError)

    Error when decoding the base32.

    +

    Variants§

    §

    Base32(HexOrBase32ParseError)

    Error when decoding the base32.

    §

    Key(Error)

    Error when decoding the public key.

    -

    Trait Implementations§

    source§

    impl Debug for KeyParsingError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Display for KeyParsingError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Error for KeyParsingError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<Error> for KeyParsingError

    source§

    fn from(source: Error) -> KeyParsingError

    Converts to this type from the input type.
    source§

    impl From<HexOrBase32ParseError> for KeyParsingError

    source§

    fn from(source: HexOrBase32ParseError) -> KeyParsingError

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    §

    impl Debug for KeyParsingError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for KeyParsingError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for KeyParsingError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    §

    impl From<Error> for KeyParsingError

    §

    fn from(source: Error) -> KeyParsingError

    Converts to this type from the input type.
    §

    impl From<HexOrBase32ParseError> for KeyParsingError

    §

    fn from(source: HexOrBase32ParseError) -> KeyParsingError

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/key/index.html b/pr/2574/docs/iroh_net/key/index.html index 7d43263556..894679a61b 100644 --- a/pr/2574/docs/iroh_net/key/index.html +++ b/pr/2574/docs/iroh_net/key/index.html @@ -1,2 +1,2 @@ -iroh_net::key - Rust

    Module iroh_net::key

    source ·
    Expand description

    Cryptographic key handling for iroh-net.

    +iroh_net::key - Rust

    Module iroh_net::key

    Expand description

    Cryptographic key handling for iroh-net.

    Structs§

    Enums§

    Constants§

    Type Aliases§

    • The identifier for a node in the (iroh) network.
    \ No newline at end of file diff --git a/pr/2574/docs/iroh_net/key/struct.PublicKey.html b/pr/2574/docs/iroh_net/key/struct.PublicKey.html index d8e59a5672..e5a747bd93 100644 --- a/pr/2574/docs/iroh_net/key/struct.PublicKey.html +++ b/pr/2574/docs/iroh_net/key/struct.PublicKey.html @@ -1,45 +1,45 @@ -PublicKey in iroh_net::key - Rust

    Struct iroh_net::key::PublicKey

    source ·
    pub struct PublicKey(/* private fields */);
    Expand description

    A public key.

    +PublicKey in iroh_net::key - Rust

    Struct iroh_net::key::PublicKey

    pub struct PublicKey(/* private fields */);
    Expand description

    A public key.

    The key itself is just a 32 byte array, but a key has associated crypto information that is cached for performance reasons.

    The cache item will be refreshed every time a crypto operation is performed, or when a key is deserialised or created from a byte array.

    Serialisation or creation from a byte array is cheap if the key is already in the cache, but expensive if it is not.

    -

    Implementations§

    source§

    impl PublicKey

    source

    pub fn as_bytes(&self) -> &[u8; 32]

    Get this public key as a byte array.

    -
    source

    pub fn from_bytes(bytes: &[u8; 32]) -> Result<PublicKey, Error>

    Construct a PublicKey from a slice of bytes.

    +

    Implementations§

    §

    impl PublicKey

    pub fn as_bytes(&self) -> &[u8; 32]

    Get this public key as a byte array.

    +

    pub fn from_bytes(bytes: &[u8; 32]) -> Result<PublicKey, Error>

    Construct a PublicKey from a slice of bytes.

    §Warning

    This will return a [SignatureError] if the bytes passed into this method do not represent a valid ed25519_dalek curve point. Will never fail for bytes return from Self::as_bytes. See [VerifyingKey::from_bytes] for details.

    -
    source

    pub fn verify(&self, message: &[u8], signature: &Signature) -> Result<(), Error>

    Verify a signature on a message with this secret key’s public key.

    +

    pub fn verify(&self, message: &[u8], signature: &Signature) -> Result<(), Error>

    Verify a signature on a message with this secret key’s public key.

    §Return

    Returns Ok(()) if the signature is valid, and Err otherwise.

    -
    source

    pub fn fmt_short(&self) -> String

    Convert to a base32 string limited to the first 10 bytes for a friendly string +

    pub fn fmt_short(&self) -> String

    Convert to a base32 string limited to the first 10 bytes for a friendly string representation of the key.

    -

    Trait Implementations§

    source§

    impl AsRef<[u8]> for PublicKey

    source§

    fn as_ref(&self) -> &[u8]

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl Clone for PublicKey

    source§

    fn clone(&self) -> PublicKey

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for PublicKey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for PublicKey

    Trait Implementations§

    §

    impl AsRef<[u8]> for PublicKey

    §

    fn as_ref(&self) -> &[u8]

    Converts this type into a shared reference of the (usually inferred) input type.
    §

    impl Clone for PublicKey

    §

    fn clone(&self) -> PublicKey

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PublicKey

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for PublicKey

    §

    fn deserialize<D>( deserializer: D ) -> Result<PublicKey, <D as Deserializer<'de>>::Error>
    where - D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for PublicKey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl From<PublicKey> for NodeAddr

    source§

    fn from(node_id: PublicKey) -> NodeAddr

    Converts to this type from the input type.
    source§

    impl From<VerifyingKey> for PublicKey

    source§

    fn from(verifying_key: VerifyingKey) -> PublicKey

    Converts to this type from the input type.
    source§

    impl FromStr for PublicKey

    Deserialises the PublicKey from it’s base32 encoding.

    + D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl Display for PublicKey

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl From<PublicKey> for NodeAddr

    §

    fn from(node_id: PublicKey) -> NodeAddr

    Converts to this type from the input type.
    §

    impl From<VerifyingKey> for PublicKey

    §

    fn from(verifying_key: VerifyingKey) -> PublicKey

    Converts to this type from the input type.
    §

    impl FromStr for PublicKey

    Deserialises the PublicKey from it’s base32 encoding.

    Display is capable of serialising this format.

    -
    §

    type Err = KeyParsingError

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<PublicKey, <PublicKey as FromStr>::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Hash for PublicKey

    source§

    fn hash<H>(&self, state: &mut H)
    where +
    §

    type Err = KeyParsingError

    The associated error which can be returned from parsing.
    §

    fn from_str(s: &str) -> Result<PublicKey, <PublicKey as FromStr>::Err>

    Parses a string s to return a value of this type. Read more

    §

    impl Hash for PublicKey

    §

    fn hash<H>(&self, state: &mut H)
    where H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, - Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for PublicKey

    source§

    fn cmp(&self, other: &PublicKey) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    §

    impl Ord for PublicKey

    §

    fn cmp(&self, other: &PublicKey) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for PublicKey

    source§

    fn eq(&self, other: &PublicKey) -> bool

    This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,
    Restrict a value to a certain interval. Read more
    §

    impl PartialEq for PublicKey

    §

    fn eq(&self, other: &PublicKey) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl PartialOrd for PublicKey

    source§

    fn partial_cmp(&self, other: &PublicKey) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
    §

    impl PartialOrd for PublicKey

    §

    fn partial_cmp(&self, other: &PublicKey) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
    source§

    impl Serialize for PublicKey

    source§

    fn serialize<S>( +operator. Read more

    §

    impl Serialize for PublicKey

    §

    fn serialize<S>( &self, serializer: S ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where - S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl TryFrom<&[u8]> for PublicKey

    §

    type Error = Error

    The type returned in the event of a conversion error.
    source§

    fn try_from( + S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl TryFrom<&[u8]> for PublicKey

    §

    type Error = Error

    The type returned in the event of a conversion error.
    §

    fn try_from( bytes: &[u8] -) -> Result<PublicKey, <PublicKey as TryFrom<&[u8]>>::Error>

    Performs the conversion.
    source§

    impl TryFrom<&[u8; 32]> for PublicKey

    §

    type Error = Error

    The type returned in the event of a conversion error.
    source§

    fn try_from( +) -> Result<PublicKey, <PublicKey as TryFrom<&[u8]>>::Error>

    Performs the conversion.
    §

    impl TryFrom<&[u8; 32]> for PublicKey

    §

    type Error = Error

    The type returned in the event of a conversion error.
    §

    fn try_from( bytes: &[u8; 32] -) -> Result<PublicKey, <PublicKey as TryFrom<&[u8; 32]>>::Error>

    Performs the conversion.
    source§

    impl Copy for PublicKey

    source§

    impl Eq for PublicKey

    source§

    impl StructuralPartialEq for PublicKey

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +) -> Result<PublicKey, <PublicKey as TryFrom<&[u8; 32]>>::Error>

    Performs the conversion.
    §

    impl Copy for PublicKey

    §

    impl Eq for PublicKey

    §

    impl StructuralPartialEq for PublicKey

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<A, T> AsBits<T> for A
    where A: AsRef<[T]>, T: BitStore,

    §

    fn as_bits<O>(&self) -> &BitSlice<T, O>
    where diff --git a/pr/2574/docs/iroh_net/key/struct.SecretKey.html b/pr/2574/docs/iroh_net/key/struct.SecretKey.html index 3a113a463e..663716baab 100644 --- a/pr/2574/docs/iroh_net/key/struct.SecretKey.html +++ b/pr/2574/docs/iroh_net/key/struct.SecretKey.html @@ -1,24 +1,24 @@ -SecretKey in iroh_net::key - Rust

    Struct iroh_net::key::SecretKey

    source ·
    pub struct SecretKey { /* private fields */ }
    Expand description

    A secret key.

    -

    Implementations§

    source§

    impl SecretKey

    source

    pub fn shared(&self, other: &PublicKey) -> SharedSecret

    Returns the shared key for communication between this key and other.

    -
    source§

    impl SecretKey

    source

    pub fn public(&self) -> PublicKey

    The public key of this SecretKey.

    -
    source

    pub fn generate() -> SecretKey

    Generate a new SecretKey with the default randomness generator.

    -
    source

    pub fn generate_with_rng<R>(csprng: &mut R) -> SecretKey
    where +SecretKey in iroh_net::key - Rust

    Struct iroh_net::key::SecretKey

    pub struct SecretKey { /* private fields */ }
    Expand description

    A secret key.

    +

    Implementations§

    §

    impl SecretKey

    pub fn shared(&self, other: &PublicKey) -> SharedSecret

    Returns the shared key for communication between this key and other.

    +
    §

    impl SecretKey

    pub fn public(&self) -> PublicKey

    The public key of this SecretKey.

    +

    pub fn generate() -> SecretKey

    Generate a new SecretKey with the default randomness generator.

    +

    pub fn generate_with_rng<R>(csprng: &mut R) -> SecretKey
    where R: CryptoRngCore + ?Sized,

    Generate a new SecretKey with a randomness generator.

    -
    source

    pub fn to_openssh(&self) -> Result<Zeroizing<String>, Error>

    Serialise this key to OpenSSH format.

    -
    source

    pub fn try_from_openssh<T>(data: T) -> Result<SecretKey, Error>
    where +

    pub fn to_openssh(&self) -> Result<Zeroizing<String>, Error>

    Serialise this key to OpenSSH format.

    +

    pub fn try_from_openssh<T>(data: T) -> Result<SecretKey, Error>
    where T: AsRef<[u8]>,

    Deserialise this key from OpenSSH format.

    -
    source

    pub fn sign(&self, msg: &[u8]) -> Signature

    Sign the given message and return a digital signature

    -
    source

    pub fn to_bytes(&self) -> [u8; 32]

    Convert this to the bytes representing the secret part. +

    pub fn sign(&self, msg: &[u8]) -> Signature

    Sign the given message and return a digital signature

    +

    pub fn to_bytes(&self) -> [u8; 32]

    Convert this to the bytes representing the secret part. The public part can always be recovered.

    -
    source

    pub fn from_bytes(bytes: &[u8; 32]) -> SecretKey

    Create a secret key from its byte representation.

    -

    Trait Implementations§

    source§

    impl Clone for SecretKey

    source§

    fn clone(&self) -> SecretKey

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for SecretKey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for SecretKey

    pub fn from_bytes(bytes: &[u8; 32]) -> SecretKey

    Create a secret key from its byte representation.

    +

    Trait Implementations§

    §

    impl Clone for SecretKey

    §

    fn clone(&self) -> SecretKey

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for SecretKey

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for SecretKey

    §

    fn deserialize<D>( deserializer: D ) -> Result<SecretKey, <D as Deserializer<'de>>::Error>
    where - D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for SecretKey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl From<[u8; 32]> for SecretKey

    source§

    fn from(value: [u8; 32]) -> SecretKey

    Converts to this type from the input type.
    source§

    impl From<SigningKey> for SecretKey

    source§

    fn from(secret: SigningKey) -> SecretKey

    Converts to this type from the input type.
    source§

    impl FromStr for SecretKey

    §

    type Err = KeyParsingError

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<SecretKey, <SecretKey as FromStr>::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Serialize for SecretKey

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl Display for SecretKey

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl From<[u8; 32]> for SecretKey

    §

    fn from(value: [u8; 32]) -> SecretKey

    Converts to this type from the input type.
    §

    impl From<SigningKey> for SecretKey

    §

    fn from(secret: SigningKey) -> SecretKey

    Converts to this type from the input type.
    §

    impl FromStr for SecretKey

    §

    type Err = KeyParsingError

    The associated error which can be returned from parsing.
    §

    fn from_str(s: &str) -> Result<SecretKey, <SecretKey as FromStr>::Err>

    Parses a string s to return a value of this type. Read more
    §

    impl Serialize for SecretKey

    §

    fn serialize<S>( &self, serializer: S ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where - S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl TryFrom<&[u8]> for SecretKey

    §

    type Error = Error

    The type returned in the event of a conversion error.
    source§

    fn try_from( + S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl TryFrom<&[u8]> for SecretKey

    §

    type Error = Error

    The type returned in the event of a conversion error.
    §

    fn try_from( bytes: &[u8] ) -> Result<SecretKey, <SecretKey as TryFrom<&[u8]>>::Error>

    Performs the conversion.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/key/struct.SharedSecret.html b/pr/2574/docs/iroh_net/key/struct.SharedSecret.html index e86f2bc884..454a822fdf 100644 --- a/pr/2574/docs/iroh_net/key/struct.SharedSecret.html +++ b/pr/2574/docs/iroh_net/key/struct.SharedSecret.html @@ -1,7 +1,7 @@ -SharedSecret in iroh_net::key - Rust

    Struct iroh_net::key::SharedSecret

    source ·
    pub struct SharedSecret(/* private fields */);
    Expand description

    Shared Secret.

    -

    Implementations§

    source§

    impl SharedSecret

    source

    pub fn seal(&self, buffer: &mut dyn Buffer)

    Seals the provided cleartext.

    -
    source

    pub fn open(&self, buffer: &mut dyn Buffer) -> Result<(), Error>

    Opens the ciphertext, which must have been created using Self::seal, and places the clear text into the provided buffer.

    -

    Trait Implementations§

    source§

    impl Debug for SharedSecret

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +SharedSecret in iroh_net::key - Rust

    Struct iroh_net::key::SharedSecret

    pub struct SharedSecret(/* private fields */);
    Expand description

    Shared Secret.

    +

    Implementations§

    §

    impl SharedSecret

    pub fn seal(&self, buffer: &mut dyn Buffer)

    Seals the provided cleartext.

    +

    pub fn open(&self, buffer: &mut dyn Buffer) -> Result<(), Error>

    Opens the ciphertext, which must have been created using Self::seal, and places the clear text into the provided buffer.

    +

    Trait Implementations§

    §

    impl Debug for SharedSecret

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/key/type.NodeId.html b/pr/2574/docs/iroh_net/key/type.NodeId.html index c0f10b831c..50c5321bfd 100644 --- a/pr/2574/docs/iroh_net/key/type.NodeId.html +++ b/pr/2574/docs/iroh_net/key/type.NodeId.html @@ -1,4 +1,4 @@ -NodeId in iroh_net::key - Rust

    Type Alias iroh_net::key::NodeId

    source ·
    pub type NodeId = PublicKey;
    Expand description

    The identifier for a node in the (iroh) network.

    +NodeId in iroh_net::key - Rust

    Type Alias iroh_net::key::NodeId

    pub type NodeId = PublicKey;
    Expand description

    The identifier for a node in the (iroh) network.

    Each node in iroh has a unique identifier created as a cryptographic key. This can be used to globally identify a node. Since it is also a cryptographic key it is also the mechanism by which all traffic is always encrypted for a specific node only.

    diff --git a/pr/2574/docs/iroh_net/metrics/struct.MagicsockMetrics.html b/pr/2574/docs/iroh_net/metrics/struct.MagicsockMetrics.html index 38ac8cdc56..b4e7e26dd0 100644 --- a/pr/2574/docs/iroh_net/metrics/struct.MagicsockMetrics.html +++ b/pr/2574/docs/iroh_net/metrics/struct.MagicsockMetrics.html @@ -1,53 +1,53 @@ MagicsockMetrics in iroh_net::metrics - Rust

    Struct iroh_net::metrics::MagicsockMetrics

    source ·
    pub struct MagicsockMetrics {
    Show 40 fields - pub re_stun_calls: Counter, - pub update_direct_addrs: Counter, - pub send_ipv4: Counter, - pub send_ipv6: Counter, - pub send_relay: Counter, - pub send_relay_error: Counter, - pub send_data: Counter, - pub send_data_network_down: Counter, - pub recv_data_relay: Counter, - pub recv_data_ipv4: Counter, - pub recv_data_ipv6: Counter, - pub recv_datagrams: Counter, - pub send_disco_udp: Counter, - pub send_disco_relay: Counter, - pub sent_disco_udp: Counter, - pub sent_disco_relay: Counter, - pub sent_disco_ping: Counter, - pub sent_disco_pong: Counter, - pub sent_disco_call_me_maybe: Counter, - pub recv_disco_bad_key: Counter, - pub recv_disco_bad_parse: Counter, - pub recv_disco_udp: Counter, - pub recv_disco_relay: Counter, - pub recv_disco_ping: Counter, - pub recv_disco_pong: Counter, - pub recv_disco_call_me_maybe: Counter, - pub recv_disco_call_me_maybe_bad_disco: Counter, - pub relay_home_change: Counter, - pub num_direct_conns_added: Counter, - pub num_direct_conns_removed: Counter, - pub num_relay_conns_added: Counter, - pub num_relay_conns_removed: Counter, - pub actor_tick_main: Counter, - pub actor_tick_msg: Counter, - pub actor_tick_re_stun: Counter, - pub actor_tick_portmap_changed: Counter, - pub actor_tick_direct_addr_heartbeat: Counter, - pub actor_tick_direct_addr_update_receiver: Counter, - pub actor_link_change: Counter, - pub actor_tick_other: Counter, + pub re_stun_calls: Counter, + pub update_direct_addrs: Counter, + pub send_ipv4: Counter, + pub send_ipv6: Counter, + pub send_relay: Counter, + pub send_relay_error: Counter, + pub send_data: Counter, + pub send_data_network_down: Counter, + pub recv_data_relay: Counter, + pub recv_data_ipv4: Counter, + pub recv_data_ipv6: Counter, + pub recv_datagrams: Counter, + pub send_disco_udp: Counter, + pub send_disco_relay: Counter, + pub sent_disco_udp: Counter, + pub sent_disco_relay: Counter, + pub sent_disco_ping: Counter, + pub sent_disco_pong: Counter, + pub sent_disco_call_me_maybe: Counter, + pub recv_disco_bad_key: Counter, + pub recv_disco_bad_parse: Counter, + pub recv_disco_udp: Counter, + pub recv_disco_relay: Counter, + pub recv_disco_ping: Counter, + pub recv_disco_pong: Counter, + pub recv_disco_call_me_maybe: Counter, + pub recv_disco_call_me_maybe_bad_disco: Counter, + pub relay_home_change: Counter, + pub num_direct_conns_added: Counter, + pub num_direct_conns_removed: Counter, + pub num_relay_conns_added: Counter, + pub num_relay_conns_removed: Counter, + pub actor_tick_main: Counter, + pub actor_tick_msg: Counter, + pub actor_tick_re_stun: Counter, + pub actor_tick_portmap_changed: Counter, + pub actor_tick_direct_addr_heartbeat: Counter, + pub actor_tick_direct_addr_update_receiver: Counter, + pub actor_link_change: Counter, + pub actor_tick_other: Counter,
    }
    Expand description

    Enum of metrics for the module

    -

    Fields§

    §re_stun_calls: Counter§update_direct_addrs: Counter§send_ipv4: Counter§send_ipv6: Counter§send_relay: Counter§send_relay_error: Counter§send_data: Counter§send_data_network_down: Counter§recv_data_relay: Counter§recv_data_ipv4: Counter§recv_data_ipv6: Counter§recv_datagrams: Counter

    Number of QUIC datagrams received.

    -
    §send_disco_udp: Counter§send_disco_relay: Counter§sent_disco_udp: Counter§sent_disco_relay: Counter§sent_disco_ping: Counter§sent_disco_pong: Counter§sent_disco_call_me_maybe: Counter§recv_disco_bad_key: Counter§recv_disco_bad_parse: Counter§recv_disco_udp: Counter§recv_disco_relay: Counter§recv_disco_ping: Counter§recv_disco_pong: Counter§recv_disco_call_me_maybe: Counter§recv_disco_call_me_maybe_bad_disco: Counter§relay_home_change: Counter§num_direct_conns_added: Counter

    The number of direct connections we have made to peers.

    -
    §num_direct_conns_removed: Counter

    The number of direct connections we have lost to peers.

    -
    §num_relay_conns_added: Counter

    The number of connections to peers we have added over relay.

    -
    §num_relay_conns_removed: Counter

    The number of connections to peers we have removed over relay.

    -
    §actor_tick_main: Counter§actor_tick_msg: Counter§actor_tick_re_stun: Counter§actor_tick_portmap_changed: Counter§actor_tick_direct_addr_heartbeat: Counter§actor_tick_direct_addr_update_receiver: Counter§actor_link_change: Counter§actor_tick_other: Counter

    Trait Implementations§

    source§

    impl Clone for Metrics

    source§

    fn clone(&self) -> Metrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Metrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Metrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for Metrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for Metrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    source§

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    source§

    fn with_metric<T, F>(f: F)
    where +

    Fields§

    §re_stun_calls: Counter§update_direct_addrs: Counter§send_ipv4: Counter§send_ipv6: Counter§send_relay: Counter§send_relay_error: Counter§send_data: Counter§send_data_network_down: Counter§recv_data_relay: Counter§recv_data_ipv4: Counter§recv_data_ipv6: Counter§recv_datagrams: Counter

    Number of QUIC datagrams received.

    +
    §send_disco_udp: Counter§send_disco_relay: Counter§sent_disco_udp: Counter§sent_disco_relay: Counter§sent_disco_ping: Counter§sent_disco_pong: Counter§sent_disco_call_me_maybe: Counter§recv_disco_bad_key: Counter§recv_disco_bad_parse: Counter§recv_disco_udp: Counter§recv_disco_relay: Counter§recv_disco_ping: Counter§recv_disco_pong: Counter§recv_disco_call_me_maybe: Counter§recv_disco_call_me_maybe_bad_disco: Counter§relay_home_change: Counter§num_direct_conns_added: Counter

    The number of direct connections we have made to peers.

    +
    §num_direct_conns_removed: Counter

    The number of direct connections we have lost to peers.

    +
    §num_relay_conns_added: Counter

    The number of connections to peers we have added over relay.

    +
    §num_relay_conns_removed: Counter

    The number of connections to peers we have removed over relay.

    +
    §actor_tick_main: Counter§actor_tick_msg: Counter§actor_tick_re_stun: Counter§actor_tick_portmap_changed: Counter§actor_tick_direct_addr_heartbeat: Counter§actor_tick_direct_addr_update_receiver: Counter§actor_link_change: Counter§actor_tick_other: Counter

    Trait Implementations§

    source§

    impl Clone for Metrics

    source§

    fn clone(&self) -> Metrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Metrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Metrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for Metrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for Metrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    §

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    §

    fn with_metric<T, F>(f: F)
    where F: FnOnce(&Self) -> T,

    Access to this metrics group to record a metric. -Only records if this metric is registered in the global registry.
    source§

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +Only records if this metric is registered in the global registry.

    §

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/net/enum.IpFamily.html b/pr/2574/docs/iroh_net/net/enum.IpFamily.html index 5031c51b66..94c5b4f5fd 100644 --- a/pr/2574/docs/iroh_net/net/enum.IpFamily.html +++ b/pr/2574/docs/iroh_net/net/enum.IpFamily.html @@ -6,7 +6,7 @@
    §

    V6

    Ipv6

    Implementations§

    source§

    impl IpFamily

    source

    pub fn unspecified_addr(&self) -> IpAddr

    Returns the matching default address.

    source

    pub fn local_addr(&self) -> IpAddr

    Returns the matching localhost address.

    -

    Trait Implementations§

    source§

    impl Clone for IpFamily

    source§

    fn clone(&self) -> IpFamily

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for IpFamily

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<IpAddr> for IpFamily

    source§

    fn from(value: IpAddr) -> Self

    Converts to this type from the input type.
    source§

    impl From<IpFamily> for Domain

    source§

    fn from(value: IpFamily) -> Self

    Converts to this type from the input type.
    source§

    impl PartialEq for IpFamily

    source§

    fn eq(&self, other: &IpFamily) -> bool

    This method tests for self and other values to be equal, and is used +

    Trait Implementations§

    source§

    impl Clone for IpFamily

    source§

    fn clone(&self) -> IpFamily

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for IpFamily

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<IpAddr> for IpFamily

    source§

    fn from(value: IpAddr) -> Self

    Converts to this type from the input type.
    source§

    impl From<IpFamily> for Domain

    source§

    fn from(value: IpFamily) -> Self

    Converts to this type from the input type.
    source§

    impl PartialEq for IpFamily

    source§

    fn eq(&self, other: &IpFamily) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
    source§

    impl Copy for IpFamily

    source§

    impl Eq for IpFamily

    source§

    impl StructuralPartialEq for IpFamily

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/netcheck/struct.Metrics.html b/pr/2574/docs/iroh_net/netcheck/struct.Metrics.html index e388aec702..870e592d33 100644 --- a/pr/2574/docs/iroh_net/netcheck/struct.Metrics.html +++ b/pr/2574/docs/iroh_net/netcheck/struct.Metrics.html @@ -1,15 +1,15 @@ Metrics in iroh_net::netcheck - Rust

    Struct iroh_net::netcheck::Metrics

    source ·
    pub struct Metrics {
    -    pub stun_packets_dropped: Counter,
    -    pub stun_packets_sent_ipv4: Counter,
    -    pub stun_packets_sent_ipv6: Counter,
    -    pub stun_packets_recv_ipv4: Counter,
    -    pub stun_packets_recv_ipv6: Counter,
    -    pub reports: Counter,
    -    pub reports_full: Counter,
    +    pub stun_packets_dropped: Counter,
    +    pub stun_packets_sent_ipv4: Counter,
    +    pub stun_packets_sent_ipv6: Counter,
    +    pub stun_packets_recv_ipv4: Counter,
    +    pub stun_packets_recv_ipv6: Counter,
    +    pub reports: Counter,
    +    pub reports_full: Counter,
     }
    Expand description

    Enum of metrics for the module

    -

    Fields§

    §stun_packets_dropped: Counter§stun_packets_sent_ipv4: Counter§stun_packets_sent_ipv6: Counter§stun_packets_recv_ipv4: Counter§stun_packets_recv_ipv6: Counter§reports: Counter§reports_full: Counter

    Trait Implementations§

    source§

    impl Clone for Metrics

    source§

    fn clone(&self) -> Metrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Metrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Metrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for Metrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for Metrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    source§

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    source§

    fn with_metric<T, F>(f: F)
    where +

    Fields§

    §stun_packets_dropped: Counter§stun_packets_sent_ipv4: Counter§stun_packets_sent_ipv6: Counter§stun_packets_recv_ipv4: Counter§stun_packets_recv_ipv6: Counter§reports: Counter§reports_full: Counter

    Trait Implementations§

    source§

    impl Clone for Metrics

    source§

    fn clone(&self) -> Metrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Metrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Metrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for Metrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for Metrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    §

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    §

    fn with_metric<T, F>(f: F)
    where F: FnOnce(&Self) -> T,

    Access to this metrics group to record a metric. -Only records if this metric is registered in the global registry.
    source§

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +Only records if this metric is registered in the global registry.

    §

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/netcheck/struct.Report.html b/pr/2574/docs/iroh_net/netcheck/struct.Report.html index 010424d653..a8a4c1dc98 100644 --- a/pr/2574/docs/iroh_net/netcheck/struct.Report.html +++ b/pr/2574/docs/iroh_net/netcheck/struct.Report.html @@ -43,7 +43,7 @@
    §global_v6: Option<SocketAddrV6>

    [ip]:port of global IPv6

    §captive_portal: Option<bool>

    CaptivePortal is set when we think there’s a captive portal that is intercepting HTTP traffic.

    -

    Trait Implementations§

    source§

    impl Clone for Report

    source§

    fn clone(&self) -> Report

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Report

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Report

    source§

    fn default() -> Report

    Returns the “default value” for a type. Read more
    source§

    impl Display for Report

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for Report

    source§

    fn eq(&self, other: &Report) -> bool

    This method tests for self and other values to be equal, and is used +

    Trait Implementations§

    source§

    impl Clone for Report

    source§

    fn clone(&self) -> Report

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Report

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Report

    source§

    fn default() -> Report

    Returns the “default value” for a type. Read more
    source§

    impl Display for Report

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for Report

    source§

    fn eq(&self, other: &Report) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for Report

    source§

    impl StructuralPartialEq for Report

    Auto Trait Implementations§

    §

    impl Freeze for Report

    §

    impl RefUnwindSafe for Report

    §

    impl Send for Report

    §

    impl Sync for Report

    §

    impl Unpin for Report

    §

    impl UnwindSafe for Report

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/ping/enum.PingError.html b/pr/2574/docs/iroh_net/ping/enum.PingError.html index 26aa21d04c..d35a2fe0f8 100644 --- a/pr/2574/docs/iroh_net/ping/enum.PingError.html +++ b/pr/2574/docs/iroh_net/ping/enum.PingError.html @@ -4,7 +4,7 @@ }
    Expand description

    Whether this error was because we couldn’t create a client or a send error.

    Variants§

    §

    Client(Error)

    Could not create client, probably bind error.

    §

    Ping(SurgeError)

    Could not send ping.

    -

    Trait Implementations§

    source§

    impl Debug for PingError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for PingError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for PingError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<Error> for PingError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<SurgeError> for PingError

    source§

    fn from(source: SurgeError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for PingError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for PingError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for PingError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<Error> for PingError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<SurgeError> for PingError

    source§

    fn from(source: SurgeError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/portmapper/struct.Metrics.html b/pr/2574/docs/iroh_net/portmapper/struct.Metrics.html index 07d332fb9b..ef53efe4c1 100644 --- a/pr/2574/docs/iroh_net/portmapper/struct.Metrics.html +++ b/pr/2574/docs/iroh_net/portmapper/struct.Metrics.html @@ -1,19 +1,19 @@ Metrics in iroh_net::portmapper - Rust

    Struct iroh_net::portmapper::Metrics

    source ·
    pub struct Metrics {
    -    pub probes_started: Counter,
    -    pub local_port_updates: Counter,
    -    pub mapping_attempts: Counter,
    -    pub mapping_failures: Counter,
    -    pub external_address_updated: Counter,
    -    pub upnp_probes: Counter,
    -    pub upnp_probes_failed: Counter,
    -    pub upnp_available: Counter,
    -    pub upnp_gateway_updated: Counter,
    -    pub pcp_probes: Counter,
    -    pub pcp_available: Counter,
    +    pub probes_started: Counter,
    +    pub local_port_updates: Counter,
    +    pub mapping_attempts: Counter,
    +    pub mapping_failures: Counter,
    +    pub external_address_updated: Counter,
    +    pub upnp_probes: Counter,
    +    pub upnp_probes_failed: Counter,
    +    pub upnp_available: Counter,
    +    pub upnp_gateway_updated: Counter,
    +    pub pcp_probes: Counter,
    +    pub pcp_available: Counter,
     }
    Expand description

    Enum of metrics for the module

    -

    Fields§

    §probes_started: Counter§local_port_updates: Counter§mapping_attempts: Counter§mapping_failures: Counter§external_address_updated: Counter§upnp_probes: Counter§upnp_probes_failed: Counter§upnp_available: Counter§upnp_gateway_updated: Counter§pcp_probes: Counter§pcp_available: Counter

    Trait Implementations§

    source§

    impl Clone for Metrics

    source§

    fn clone(&self) -> Metrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Metrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Metrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for Metrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for Metrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    source§

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    source§

    fn with_metric<T, F>(f: F)
    where +

    Fields§

    §probes_started: Counter§local_port_updates: Counter§mapping_attempts: Counter§mapping_failures: Counter§external_address_updated: Counter§upnp_probes: Counter§upnp_probes_failed: Counter§upnp_available: Counter§upnp_gateway_updated: Counter§pcp_probes: Counter§pcp_available: Counter

    Trait Implementations§

    source§

    impl Clone for Metrics

    source§

    fn clone(&self) -> Metrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Metrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Metrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for Metrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for Metrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    §

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    §

    fn with_metric<T, F>(f: F)
    where F: FnOnce(&Self) -> T,

    Access to this metrics group to record a metric. -Only records if this metric is registered in the global registry.
    source§

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +Only records if this metric is registered in the global registry.

    §

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/portmapper/struct.ProbeOutput.html b/pr/2574/docs/iroh_net/portmapper/struct.ProbeOutput.html index 1d6dbf48b9..8aac66742a 100644 --- a/pr/2574/docs/iroh_net/portmapper/struct.ProbeOutput.html +++ b/pr/2574/docs/iroh_net/portmapper/struct.ProbeOutput.html @@ -7,8 +7,7 @@
    §pcp: bool

    If PCP can be considered available.

    §nat_pmp: bool

    If PMP can be considered available.

    Implementations§

    source§

    impl ProbeOutput

    source

    pub fn all_available(&self) -> bool

    Indicates if all port mapping protocols are available.

    -

    Trait Implementations§

    source§

    impl Clone for ProbeOutput

    source§

    fn clone(&self) -> ProbeOutput

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ProbeOutput

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for ProbeOutput
    where - bool: Display,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for ProbeOutput

    source§

    fn eq(&self, other: &ProbeOutput) -> bool

    This method tests for self and other values to be equal, and is used +

    Trait Implementations§

    source§

    impl Clone for ProbeOutput

    source§

    fn clone(&self) -> ProbeOutput

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ProbeOutput

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for ProbeOutput

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for ProbeOutput

    source§

    fn eq(&self, other: &ProbeOutput) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for ProbeOutput

    source§

    impl StructuralPartialEq for ProbeOutput

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/relay/enum.HttpClientError.html b/pr/2574/docs/iroh_net/relay/enum.HttpClientError.html index c5e6286bcc..96fb8a15ad 100644 --- a/pr/2574/docs/iroh_net/relay/enum.HttpClientError.html +++ b/pr/2574/docs/iroh_net/relay/enum.HttpClientError.html @@ -52,7 +52,7 @@
    §

    DnsTimeout

    There was a timeout resolving DNS.

    §

    ActorGone

    The inner actor is gone, likely means things are shutdown.

    §

    WebsocketError(Error)

    An error related to websockets, either errors with parsing ws messages or the handshake

    -

    Trait Implementations§

    source§

    impl Debug for ClientError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for ClientError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for ClientError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<Error> for ClientError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for ClientError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for ClientError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for ClientError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<JoinError> for ClientError

    source§

    fn from(source: JoinError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for ClientError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for ClientError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for ClientError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<Error> for ClientError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for ClientError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for ClientError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for ClientError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<JoinError> for ClientError

    source§

    fn from(source: JoinError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/relay/enum.ReceivedMessage.html b/pr/2574/docs/iroh_net/relay/enum.ReceivedMessage.html index c301f3b29d..b707c97755 100644 --- a/pr/2574/docs/iroh_net/relay/enum.ReceivedMessage.html +++ b/pr/2574/docs/iroh_net/relay/enum.ReceivedMessage.html @@ -39,11 +39,7 @@ before giving up and proceeding with its normal connection failure logic. The interval between retries is undefined for now. A server should not send a TryFor duration more than a few seconds.

    -

    Trait Implementations§

    source§

    impl Clone for ReceivedMessage

    source§

    fn clone(&self) -> ReceivedMessage

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ReceivedMessage
    where - PublicKey: Debug, - [u8; 8]: Debug, - Option<String>: Debug, - Duration: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Clone for ReceivedMessage

    source§

    fn clone(&self) -> ReceivedMessage

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ReceivedMessage

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/relay/server/enum.CertConfig.html b/pr/2574/docs/iroh_net/relay/server/enum.CertConfig.html index ece95220d9..48d286c800 100644 --- a/pr/2574/docs/iroh_net/relay/server/enum.CertConfig.html +++ b/pr/2574/docs/iroh_net/relay/server/enum.CertConfig.html @@ -12,9 +12,7 @@

    §

    Manual

    Use a static TLS key and certificate chain.

    Fields

    §private_key: PrivateKey

    The TLS private key.

    §certs: Vec<Certificate>

    The TLS certificate chain.

    -

    Trait Implementations§

    source§

    impl<EC: Debug, EA: Debug> Debug for CertConfig<EC, EA>
    where - PrivateKey: Debug, - Vec<Certificate>: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<EC, EA> Freeze for CertConfig<EC, EA>

    §

    impl<EC, EA = EC> !RefUnwindSafe for CertConfig<EC, EA>

    §

    impl<EC, EA> Send for CertConfig<EC, EA>

    §

    impl<EC, EA> Sync for CertConfig<EC, EA>

    §

    impl<EC, EA> Unpin for CertConfig<EC, EA>

    §

    impl<EC, EA = EC> !UnwindSafe for CertConfig<EC, EA>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl<EC: Debug, EA: Debug> Debug for CertConfig<EC, EA>

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<EC, EA> Freeze for CertConfig<EC, EA>

    §

    impl<EC, EA = EC> !RefUnwindSafe for CertConfig<EC, EA>

    §

    impl<EC, EA> Send for CertConfig<EC, EA>

    §

    impl<EC, EA> Sync for CertConfig<EC, EA>

    §

    impl<EC, EA> Unpin for CertConfig<EC, EA>

    §

    impl<EC, EA = EC> !UnwindSafe for CertConfig<EC, EA>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/relay/server/struct.Metrics.html b/pr/2574/docs/iroh_net/relay/server/struct.Metrics.html index 403a88492b..f05bb96892 100644 --- a/pr/2574/docs/iroh_net/relay/server/struct.Metrics.html +++ b/pr/2574/docs/iroh_net/relay/server/struct.Metrics.html @@ -1,46 +1,46 @@ Metrics in iroh_net::relay::server - Rust

    Struct iroh_net::relay::server::Metrics

    source ·
    pub struct Metrics {
    Show 19 fields - pub bytes_sent: Counter, - pub bytes_recv: Counter, - pub send_packets_sent: Counter, - pub send_packets_recv: Counter, - pub send_packets_dropped: Counter, - pub disco_packets_sent: Counter, - pub disco_packets_recv: Counter, - pub disco_packets_dropped: Counter, - pub other_packets_sent: Counter, - pub other_packets_recv: Counter, - pub other_packets_dropped: Counter, - pub got_ping: Counter, - pub sent_pong: Counter, - pub unknown_frames: Counter, - pub accepts: Counter, - pub disconnects: Counter, - pub unique_client_keys: Counter, - pub websocket_accepts: Counter, - pub derp_accepts: Counter, + pub bytes_sent: Counter, + pub bytes_recv: Counter, + pub send_packets_sent: Counter, + pub send_packets_recv: Counter, + pub send_packets_dropped: Counter, + pub disco_packets_sent: Counter, + pub disco_packets_recv: Counter, + pub disco_packets_dropped: Counter, + pub other_packets_sent: Counter, + pub other_packets_recv: Counter, + pub other_packets_dropped: Counter, + pub got_ping: Counter, + pub sent_pong: Counter, + pub unknown_frames: Counter, + pub accepts: Counter, + pub disconnects: Counter, + pub unique_client_keys: Counter, + pub websocket_accepts: Counter, + pub derp_accepts: Counter,
    }
    Expand description

    Metrics tracked for the relay server

    -

    Fields§

    §bytes_sent: Counter

    Bytes sent from a FrameType::SendPacket

    -
    §bytes_recv: Counter

    Bytes received from a FrameType::SendPacket

    -
    §send_packets_sent: Counter

    FrameType::SendPacket sent, that are not disco messages

    -
    §send_packets_recv: Counter

    FrameType::SendPacket received, that are not disco messages

    -
    §send_packets_dropped: Counter

    FrameType::SendPacket dropped, that are not disco messages

    -
    §disco_packets_sent: Counter

    FrameType::SendPacket sent that are disco messages

    -
    §disco_packets_recv: Counter

    FrameType::SendPacket received that are disco messages

    -
    §disco_packets_dropped: Counter

    FrameType::SendPacket dropped that are disco messages

    -
    §other_packets_sent: Counter

    Packets of other FrameTypes sent

    -
    §other_packets_recv: Counter

    Packets of other FrameTypes received

    -
    §other_packets_dropped: Counter

    Packets of other FrameTypes dropped

    -
    §got_ping: Counter

    Number of FrameType::Pings received

    -
    §sent_pong: Counter

    Number of FrameType::Pongs sent

    -
    §unknown_frames: Counter

    Number of FrameType::Unknown received

    -
    §accepts: Counter

    Number of connections we have accepted

    -
    §disconnects: Counter

    Number of connections we have removed because of an error

    -
    §unique_client_keys: Counter

    Number of unique client keys per day

    -
    §websocket_accepts: Counter

    Number of accepted websocket connections

    -
    §derp_accepts: Counter

    Number of accepted ‘iroh derp http’ connection upgrades

    -

    Trait Implementations§

    source§

    impl Clone for Metrics

    source§

    fn clone(&self) -> Metrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Metrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Metrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for Metrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for Metrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    source§

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    source§

    fn with_metric<T, F>(f: F)
    where +

    Fields§

    §bytes_sent: Counter

    Bytes sent from a FrameType::SendPacket

    +
    §bytes_recv: Counter

    Bytes received from a FrameType::SendPacket

    +
    §send_packets_sent: Counter

    FrameType::SendPacket sent, that are not disco messages

    +
    §send_packets_recv: Counter

    FrameType::SendPacket received, that are not disco messages

    +
    §send_packets_dropped: Counter

    FrameType::SendPacket dropped, that are not disco messages

    +
    §disco_packets_sent: Counter

    FrameType::SendPacket sent that are disco messages

    +
    §disco_packets_recv: Counter

    FrameType::SendPacket received that are disco messages

    +
    §disco_packets_dropped: Counter

    FrameType::SendPacket dropped that are disco messages

    +
    §other_packets_sent: Counter

    Packets of other FrameTypes sent

    +
    §other_packets_recv: Counter

    Packets of other FrameTypes received

    +
    §other_packets_dropped: Counter

    Packets of other FrameTypes dropped

    +
    §got_ping: Counter

    Number of FrameType::Pings received

    +
    §sent_pong: Counter

    Number of FrameType::Pongs sent

    +
    §unknown_frames: Counter

    Number of FrameType::Unknown received

    +
    §accepts: Counter

    Number of connections we have accepted

    +
    §disconnects: Counter

    Number of connections we have removed because of an error

    +
    §unique_client_keys: Counter

    Number of unique client keys per day

    +
    §websocket_accepts: Counter

    Number of accepted websocket connections

    +
    §derp_accepts: Counter

    Number of accepted ‘iroh derp http’ connection upgrades

    +

    Trait Implementations§

    source§

    impl Clone for Metrics

    source§

    fn clone(&self) -> Metrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Metrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Metrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for Metrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for Metrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    §

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    §

    fn with_metric<T, F>(f: F)
    where F: FnOnce(&Self) -> T,

    Access to this metrics group to record a metric. -Only records if this metric is registered in the global registry.
    source§

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +Only records if this metric is registered in the global registry.

    §

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/relay/struct.HttpClientBuilder.html b/pr/2574/docs/iroh_net/relay/struct.HttpClientBuilder.html index 128591a600..b8f9e4ee36 100644 --- a/pr/2574/docs/iroh_net/relay/struct.HttpClientBuilder.html +++ b/pr/2574/docs/iroh_net/relay/struct.HttpClientBuilder.html @@ -23,12 +23,7 @@ dns_resolver: DnsResolver ) -> (Client, ClientReceiver)

    Build the Client

    source

    pub fn server_public_key(self, server_public_key: PublicKey) -> Self

    The expected PublicKey of the relay server we are connecting to.

    -

    Trait Implementations§

    source§

    impl Debug for ClientBuilder

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for ClientBuilder

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/relay/struct.RelayMap.html b/pr/2574/docs/iroh_net/relay/struct.RelayMap.html index 59049d893c..53285a8005 100644 --- a/pr/2574/docs/iroh_net/relay/struct.RelayMap.html +++ b/pr/2574/docs/iroh_net/relay/struct.RelayMap.html @@ -13,7 +13,7 @@

    This will use the default STUN port and IP addresses resolved from the URL’s host name via DNS. relay nodes are specified at <../../../docs/relay_nodes.md>

    source

    pub fn from_nodes(value: impl IntoIterator<Item = RelayNode>) -> Result<Self>

    Constructs the [RelayMap] from an iterator of [RelayNode`]s.

    -

    Trait Implementations§

    source§

    impl Clone for RelayMap

    source§

    fn clone(&self) -> RelayMap

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for RelayMap

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for RelayMap

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for RelayMap

    source§

    fn eq(&self, other: &RelayMap) -> bool

    This method tests for self and other values to be equal, and is used +

    Trait Implementations§

    source§

    impl Clone for RelayMap

    source§

    fn clone(&self) -> RelayMap

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for RelayMap

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for RelayMap

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for RelayMap

    source§

    fn eq(&self, other: &RelayMap) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for RelayMap

    source§

    impl StructuralPartialEq for RelayMap

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/relay/struct.RelayUrl.html b/pr/2574/docs/iroh_net/relay/struct.RelayUrl.html index d9d32aa65c..6a8eabc26b 100644 --- a/pr/2574/docs/iroh_net/relay/struct.RelayUrl.html +++ b/pr/2574/docs/iroh_net/relay/struct.RelayUrl.html @@ -1,4 +1,4 @@ -RelayUrl in iroh_net::relay - Rust

    Struct iroh_net::relay::RelayUrl

    source ·
    pub struct RelayUrl(/* private fields */);
    Expand description

    A URL identifying a relay server.

    +RelayUrl in iroh_net::relay - Rust

    Struct iroh_net::relay::RelayUrl

    pub struct RelayUrl(/* private fields */);
    Expand description

    A URL identifying a relay server.

    This is but a wrapper around Url, with a few custom tweaks:

    • @@ -441,31 +441,30 @@
      §ExamplesPath::new_opt() returns None. (That is, if the percent-decoded path contains a NUL byte or, for a Windows path, is not UTF-8.)

      -

    Trait Implementations§

    source§

    impl Clone for RelayUrl

    source§

    fn clone(&self) -> RelayUrl

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for RelayUrl

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Deref for RelayUrl

    Dereferences to the wrapped Url.

    +

    Trait Implementations§

    §

    impl Clone for RelayUrl

    §

    fn clone(&self) -> RelayUrl

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for RelayUrl

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Deref for RelayUrl

    Dereferences to the wrapped Url.

    Note that DerefMut is not implemented on purpose, so this type has more flexibility to change the inner later.

    -
    §

    type Target = Url

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &<RelayUrl as Deref>::Target

    Dereferences the value.
    source§

    impl<'de> Deserialize<'de> for RelayUrl

    §

    type Target = Url

    The resulting type after dereferencing.
    §

    fn deref(&self) -> &<RelayUrl as Deref>::Target

    Dereferences the value.
    §

    impl<'de> Deserialize<'de> for RelayUrl

    §

    fn deserialize<__D>( __deserializer: __D ) -> Result<RelayUrl, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for RelayUrl
    where - Url: Display,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl From<RelayUrl> for Url

    source§

    fn from(value: RelayUrl) -> Url

    Converts to this type from the input type.
    source§

    impl From<Url> for RelayUrl

    source§

    fn from(url: Url) -> RelayUrl

    Converts to this type from the input type.
    source§

    impl FromStr for RelayUrl

    Support for parsing strings directly.

    + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl Display for RelayUrl

    §

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl From<RelayUrl> for Url

    §

    fn from(value: RelayUrl) -> Url

    Converts to this type from the input type.
    §

    impl From<Url> for RelayUrl

    §

    fn from(url: Url) -> RelayUrl

    Converts to this type from the input type.
    §

    impl FromStr for RelayUrl

    Support for parsing strings directly.

    If you need more control over the error first create a Url and use RelayUrl::from instead.

    -
    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<RelayUrl, <RelayUrl as FromStr>::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl Hash for RelayUrl

    source§

    fn hash<__H>(&self, state: &mut __H)
    where +
    §

    type Err = Error

    The associated error which can be returned from parsing.
    §

    fn from_str(s: &str) -> Result<RelayUrl, <RelayUrl as FromStr>::Err>

    Parses a string s to return a value of this type. Read more

    §

    impl Hash for RelayUrl

    §

    fn hash<__H>(&self, state: &mut __H)
    where __H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, - Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for RelayUrl

    source§

    fn cmp(&self, other: &RelayUrl) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    §

    impl Ord for RelayUrl

    §

    fn cmp(&self, other: &RelayUrl) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for RelayUrl

    source§

    fn eq(&self, other: &RelayUrl) -> bool

    This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more

    §

    impl PartialEq for RelayUrl

    §

    fn eq(&self, other: &RelayUrl) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl PartialOrd for RelayUrl

    source§

    fn partial_cmp(&self, other: &RelayUrl) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
    §

    impl PartialOrd for RelayUrl

    §

    fn partial_cmp(&self, other: &RelayUrl) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
    source§

    impl Serialize for RelayUrl

    source§

    fn serialize<__S>( +operator. Read more

    §

    impl Serialize for RelayUrl

    §

    fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Eq for RelayUrl

    source§

    impl StructuralPartialEq for RelayUrl

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl Eq for RelayUrl

    §

    impl StructuralPartialEq for RelayUrl

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/struct.AddrInfo.html b/pr/2574/docs/iroh_net/struct.AddrInfo.html index 455d835417..5a88bf8663 100644 --- a/pr/2574/docs/iroh_net/struct.AddrInfo.html +++ b/pr/2574/docs/iroh_net/struct.AddrInfo.html @@ -1,4 +1,4 @@ -AddrInfo in iroh_net - Rust

    Struct iroh_net::AddrInfo

    source ·
    pub struct AddrInfo {
    +AddrInfo in iroh_net - Rust

    Struct iroh_net::AddrInfo

    pub struct AddrInfo {
         pub relay_url: Option<RelayUrl>,
         pub direct_addresses: BTreeSet<SocketAddr>,
     }
    Expand description

    Network paths to contact an iroh-net node.

    @@ -7,26 +7,26 @@ other node, see NodeAddr for details.

    Fields§

    §relay_url: Option<RelayUrl>

    The node’s home relay url.

    §direct_addresses: BTreeSet<SocketAddr>

    Socket addresses where the peer might be reached directly.

    -

    Implementations§

    source§

    impl AddrInfo

    source

    pub fn is_empty(&self) -> bool

    Returns whether this addressing information is empty.

    -
    source

    pub fn apply_options(&mut self, opts: AddrInfoOptions)

    Applies the options to self.

    +

    Implementations§

    §

    impl AddrInfo

    pub fn is_empty(&self) -> bool

    Returns whether this addressing information is empty.

    +

    pub fn apply_options(&mut self, opts: AddrInfoOptions)

    Applies the options to self.

    This is used to more tightly control the information stored in ab AddrInfo received from another API. E.g. to ensure a discovery service is used the AddrInfoOptions::Id] option could be used to remove all other addressing details.

    -

    Trait Implementations§

    source§

    impl Clone for AddrInfo

    source§

    fn clone(&self) -> AddrInfo

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for AddrInfo

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Default for AddrInfo

    source§

    fn default() -> AddrInfo

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for AddrInfo

    Trait Implementations§

    §

    impl Clone for AddrInfo

    §

    fn clone(&self) -> AddrInfo

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for AddrInfo

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for AddrInfo

    §

    fn default() -> AddrInfo

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for AddrInfo

    §

    fn deserialize<__D>( __deserializer: __D ) -> Result<AddrInfo, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<NodeInfo> for AddrInfo

    source§

    fn from(value: NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl Ord for AddrInfo

    source§

    fn cmp(&self, other: &AddrInfo) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<NodeInfo> for AddrInfo

    source§

    fn from(value: NodeInfo) -> Self

    Converts to this type from the input type.
    §

    impl Ord for AddrInfo

    §

    fn cmp(&self, other: &AddrInfo) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for AddrInfo

    source§

    fn eq(&self, other: &AddrInfo) -> bool

    This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    §

    impl PartialEq for AddrInfo

    §

    fn eq(&self, other: &AddrInfo) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl PartialOrd for AddrInfo

    source§

    fn partial_cmp(&self, other: &AddrInfo) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
    §

    impl PartialOrd for AddrInfo

    §

    fn partial_cmp(&self, other: &AddrInfo) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
    source§

    impl Serialize for AddrInfo

    source§

    fn serialize<__S>( +operator. Read more

    §

    impl Serialize for AddrInfo

    §

    fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Eq for AddrInfo

    source§

    impl StructuralPartialEq for AddrInfo

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl Eq for AddrInfo

    §

    impl StructuralPartialEq for AddrInfo

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/struct.NodeAddr.html b/pr/2574/docs/iroh_net/struct.NodeAddr.html index 5cec7f9dba..eedbdd39b3 100644 --- a/pr/2574/docs/iroh_net/struct.NodeAddr.html +++ b/pr/2574/docs/iroh_net/struct.NodeAddr.html @@ -1,4 +1,4 @@ -NodeAddr in iroh_net - Rust

    Struct iroh_net::NodeAddr

    source ·
    pub struct NodeAddr {
    +NodeAddr in iroh_net - Rust

    Struct iroh_net::NodeAddr

    pub struct NodeAddr {
         pub node_id: PublicKey,
         pub info: AddrInfo,
     }
    Expand description

    Network-level addressing information for an iroh-net node.

    @@ -25,38 +25,38 @@ whenever a connection to other nodes needs to be established.

    Fields§

    §node_id: PublicKey

    The node’s identifier.

    §info: AddrInfo

    Addressing information to connect to Self::node_id.

    -

    Implementations§

    source§

    impl NodeAddr

    source

    pub fn new(node_id: PublicKey) -> NodeAddr

    Creates a new NodeAddr with empty AddrInfo.

    -
    source

    pub fn with_relay_url(self, relay_url: RelayUrl) -> NodeAddr

    Adds a relay url to the node’s AddrInfo.

    -
    source

    pub fn with_direct_addresses( +

    Implementations§

    §

    impl NodeAddr

    pub fn new(node_id: PublicKey) -> NodeAddr

    Creates a new NodeAddr with empty AddrInfo.

    +

    pub fn with_relay_url(self, relay_url: RelayUrl) -> NodeAddr

    Adds a relay url to the node’s AddrInfo.

    +

    pub fn with_direct_addresses( self, addresses: impl IntoIterator<Item = SocketAddr> ) -> NodeAddr

    Adds the given direct addresses to the peer’s AddrInfo.

    -
    source

    pub fn from_parts( +

    pub fn from_parts( node_id: PublicKey, relay_url: Option<RelayUrl>, direct_addresses: Vec<SocketAddr> ) -> NodeAddr

    Creates a new NodeAddr from its parts.

    -
    source

    pub fn apply_options(&mut self, opts: AddrInfoOptions)

    Applies the options to self.

    +

    pub fn apply_options(&mut self, opts: AddrInfoOptions)

    Applies the options to self.

    This is used to more tightly control the information stored in a NodeAddr received from another API. E.g. to ensure a discovery service is used the AddrInfoOptions::Id] option could be used to remove all other addressing details.

    -
    source

    pub fn direct_addresses(&self) -> impl Iterator<Item = &SocketAddr>

    Returns the direct addresses of this peer.

    -
    source

    pub fn relay_url(&self) -> Option<&RelayUrl>

    Returns the relay url of this peer.

    -

    Trait Implementations§

    source§

    impl Clone for NodeAddr

    source§

    fn clone(&self) -> NodeAddr

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NodeAddr

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for NodeAddr

    pub fn direct_addresses(&self) -> impl Iterator<Item = &SocketAddr>

    Returns the direct addresses of this peer.

    +

    pub fn relay_url(&self) -> Option<&RelayUrl>

    Returns the relay url of this peer.

    +

    Trait Implementations§

    §

    impl Clone for NodeAddr

    §

    fn clone(&self) -> NodeAddr

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NodeAddr

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NodeAddr

    §

    fn deserialize<__D>( __deserializer: __D ) -> Result<NodeAddr, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<(PublicKey, Option<RelayUrl>, &[SocketAddr])> for NodeAddr

    source§

    fn from(value: (PublicKey, Option<RelayUrl>, &[SocketAddr])) -> NodeAddr

    Converts to this type from the input type.
    source§

    impl From<NodeInfo> for NodeAddr

    source§

    fn from(info: NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<NodeInfo> for NodeAddr

    source§

    fn from(value: NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<PublicKey> for NodeAddr

    source§

    fn from(node_id: PublicKey) -> NodeAddr

    Converts to this type from the input type.
    source§

    impl Ord for NodeAddr

    source§

    fn cmp(&self, other: &NodeAddr) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl From<(PublicKey, Option<RelayUrl>, &[SocketAddr])> for NodeAddr

    §

    fn from(value: (PublicKey, Option<RelayUrl>, &[SocketAddr])) -> NodeAddr

    Converts to this type from the input type.
    source§

    impl From<NodeInfo> for NodeAddr

    source§

    fn from(info: NodeInfo) -> Self

    Converts to this type from the input type.
    source§

    impl From<NodeInfo> for NodeAddr

    source§

    fn from(value: NodeInfo) -> Self

    Converts to this type from the input type.
    §

    impl From<PublicKey> for NodeAddr

    §

    fn from(node_id: PublicKey) -> NodeAddr

    Converts to this type from the input type.
    §

    impl Ord for NodeAddr

    §

    fn cmp(&self, other: &NodeAddr) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for NodeAddr

    source§

    fn eq(&self, other: &NodeAddr) -> bool

    This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,
    Restrict a value to a certain interval. Read more
    §

    impl PartialEq for NodeAddr

    §

    fn eq(&self, other: &NodeAddr) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl PartialOrd for NodeAddr

    source§

    fn partial_cmp(&self, other: &NodeAddr) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
    §

    impl PartialOrd for NodeAddr

    §

    fn partial_cmp(&self, other: &NodeAddr) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
    source§

    impl Serialize for NodeAddr

    source§

    fn serialize<__S>( +operator. Read more

    §

    impl Serialize for NodeAddr

    §

    fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Eq for NodeAddr

    source§

    impl StructuralPartialEq for NodeAddr

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl Eq for NodeAddr

    §

    impl StructuralPartialEq for NodeAddr

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/ticket/struct.NodeTicket.html b/pr/2574/docs/iroh_net/ticket/struct.NodeTicket.html index 8dbad8732c..a3aba309de 100644 --- a/pr/2574/docs/iroh_net/ticket/struct.NodeTicket.html +++ b/pr/2574/docs/iroh_net/ticket/struct.NodeTicket.html @@ -1,17 +1,17 @@ -NodeTicket in iroh_net::ticket - Rust

    Struct iroh_net::ticket::NodeTicket

    source ·
    pub struct NodeTicket { /* private fields */ }
    Expand description

    A token containing everything to get a file from the provider.

    +NodeTicket in iroh_net::ticket - Rust

    Struct iroh_net::ticket::NodeTicket

    pub struct NodeTicket { /* private fields */ }
    Expand description

    A token containing everything to get a file from the provider.

    It is a single item which can be easily serialized and deserialized.

    -

    Implementations§

    source§

    impl NodeTicket

    source

    pub fn new(node: NodeAddr) -> Result<NodeTicket, Error>

    Creates a new ticket.

    -
    source

    pub fn node_addr(&self) -> &NodeAddr

    The NodeAddr of the provider for this ticket.

    -

    Trait Implementations§

    source§

    impl Clone for NodeTicket

    source§

    fn clone(&self) -> NodeTicket

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NodeTicket

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for NodeTicket

    Implementations§

    §

    impl NodeTicket

    pub fn new(node: NodeAddr) -> Result<NodeTicket, Error>

    Creates a new ticket.

    +

    pub fn node_addr(&self) -> &NodeAddr

    The NodeAddr of the provider for this ticket.

    +

    Trait Implementations§

    §

    impl Clone for NodeTicket

    §

    fn clone(&self) -> NodeTicket

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NodeTicket

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NodeTicket

    §

    fn deserialize<D>( deserializer: D ) -> Result<NodeTicket, <D as Deserializer<'de>>::Error>
    where - D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for NodeTicket

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl FromStr for NodeTicket

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<NodeTicket, <NodeTicket as FromStr>::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl PartialEq for NodeTicket

    source§

    fn eq(&self, other: &NodeTicket) -> bool

    This method tests for self and other values to be equal, and is used + D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl Display for NodeTicket

    §

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl FromStr for NodeTicket

    §

    type Err = Error

    The associated error which can be returned from parsing.
    §

    fn from_str(s: &str) -> Result<NodeTicket, <NodeTicket as FromStr>::Err>

    Parses a string s to return a value of this type. Read more
    §

    impl PartialEq for NodeTicket

    §

    fn eq(&self, other: &NodeTicket) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for NodeTicket

    source§

    fn serialize<S>( +sufficient, and should not be overridden without very good reason.

    §

    impl Serialize for NodeTicket

    §

    fn serialize<S>( &self, serializer: S ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where - S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Ticket for NodeTicket

    source§

    const KIND: &'static str = "node"

    String prefix describing the kind of iroh ticket. Read more
    source§

    fn to_bytes(&self) -> Vec<u8>

    Serialize to bytes used in the base32 string representation.
    source§

    fn from_bytes(bytes: &[u8]) -> Result<NodeTicket, Error>

    Deserialize from the base32 string representation bytes.
    source§

    fn serialize(&self) -> String

    Serialize to string.
    source§

    fn deserialize(str: &str) -> Result<Self, Error>

    Deserialize from a string.
    source§

    impl Eq for NodeTicket

    source§

    impl StructuralPartialEq for NodeTicket

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl Ticket for NodeTicket

    §

    const KIND: &'static str = "node"

    String prefix describing the kind of iroh ticket. Read more
    §

    fn to_bytes(&self) -> Vec<u8>

    Serialize to bytes used in the base32 string representation.
    §

    fn from_bytes(bytes: &[u8]) -> Result<NodeTicket, Error>

    Deserialize from the base32 string representation bytes.
    §

    fn serialize(&self) -> String

    Serialize to string.
    §

    fn deserialize(str: &str) -> Result<Self, Error>

    Deserialize from a string.
    §

    impl Eq for NodeTicket

    §

    impl StructuralPartialEq for NodeTicket

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/tls/certificate/struct.GenError.html b/pr/2574/docs/iroh_net/tls/certificate/struct.GenError.html index 542b561d0a..070583fc6b 100644 --- a/pr/2574/docs/iroh_net/tls/certificate/struct.GenError.html +++ b/pr/2574/docs/iroh_net/tls/certificate/struct.GenError.html @@ -1,5 +1,5 @@ GenError in iroh_net::tls::certificate - Rust

    Struct iroh_net::tls::certificate::GenError

    source ·
    pub struct GenError(/* private fields */);
    Expand description

    An error that occurs during certificate generation.

    -

    Trait Implementations§

    source§

    impl Debug for GenError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for GenError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for GenError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<Error> for GenError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for GenError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for GenError

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for GenError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<Error> for GenError

    source§

    fn from(source: Error) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net/type.NodeId.html b/pr/2574/docs/iroh_net/type.NodeId.html index 91a87bb483..b710a38283 100644 --- a/pr/2574/docs/iroh_net/type.NodeId.html +++ b/pr/2574/docs/iroh_net/type.NodeId.html @@ -1,4 +1,4 @@ -NodeId in iroh_net - Rust

    Type Alias iroh_net::NodeId

    source ·
    pub type NodeId = PublicKey;
    Expand description

    The identifier for a node in the (iroh) network.

    +NodeId in iroh_net - Rust

    Type Alias iroh_net::NodeId

    pub type NodeId = PublicKey;
    Expand description

    The identifier for a node in the (iroh) network.

    Each node in iroh has a unique identifier created as a cryptographic key. This can be used to globally identify a node. Since it is also a cryptographic key it is also the mechanism by which all traffic is always encrypted for a specific node only.

    diff --git a/pr/2574/docs/iroh_net/util/struct.CancelOnDrop.html b/pr/2574/docs/iroh_net/util/struct.CancelOnDrop.html index ffcc369a39..cc356d18cc 100644 --- a/pr/2574/docs/iroh_net/util/struct.CancelOnDrop.html +++ b/pr/2574/docs/iroh_net/util/struct.CancelOnDrop.html @@ -1,8 +1,7 @@ CancelOnDrop in iroh_net::util - Rust

    Struct iroh_net::util::CancelOnDrop

    source ·
    pub struct CancelOnDrop { /* private fields */ }
    Expand description

    Holds a handle to a task and aborts it on drop.

    See [tokio::task::AbortHandle].

    Implementations§

    source§

    impl CancelOnDrop

    source

    pub fn new(task_name: &'static str, handle: AbortHandle) -> Self

    Create a CancelOnDrop with a name and a handle to a task.

    -

    Trait Implementations§

    source§

    impl Debug for CancelOnDrop
    where - &'static str: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Drop for CancelOnDrop

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for CancelOnDrop

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Drop for CancelOnDrop

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net_bench/enum.EndpointSelector.html b/pr/2574/docs/iroh_net_bench/enum.EndpointSelector.html index a9f2112342..5b214f5221 100644 --- a/pr/2574/docs/iroh_net_bench/enum.EndpointSelector.html +++ b/pr/2574/docs/iroh_net_bench/enum.EndpointSelector.html @@ -1,7 +1,7 @@ EndpointSelector in iroh_net_bench - Rust

    Enum iroh_net_bench::EndpointSelector

    source ·
    pub enum EndpointSelector {
    -    Iroh(Endpoint),
    +    Iroh(Endpoint),
         Quinn(Endpoint),
    -}

    Variants§

    §

    Iroh(Endpoint)

    §

    Quinn(Endpoint)

    Implementations§

    source§

    impl EndpointSelector

    source

    pub async fn close(self) -> Result<()>

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +}

    Variants§

    §

    Iroh(Endpoint)

    §

    Quinn(Endpoint)

    Implementations§

    source§

    impl EndpointSelector

    source

    pub async fn close(self) -> Result<()>

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_net_bench/iroh/fn.client.html b/pr/2574/docs/iroh_net_bench/iroh/fn.client.html index b1afb2974a..a71457fc76 100644 --- a/pr/2574/docs/iroh_net_bench/iroh/fn.client.html +++ b/pr/2574/docs/iroh_net_bench/iroh/fn.client.html @@ -1,2 +1,2 @@ -client in iroh_net_bench::iroh - Rust

    Function iroh_net_bench::iroh::client

    source ·
    pub async fn client(server_addr: NodeAddr, opt: Opt) -> Result<ClientStats>
    Expand description

    Create and run a client

    +client in iroh_net_bench::iroh - Rust

    Function iroh_net_bench::iroh::client

    source ·
    pub async fn client(server_addr: NodeAddr, opt: Opt) -> Result<ClientStats>
    Expand description

    Create and run a client

    \ No newline at end of file diff --git a/pr/2574/docs/iroh_net_bench/iroh/fn.connect_client.html b/pr/2574/docs/iroh_net_bench/iroh/fn.connect_client.html index 74ed5ebc41..b0d3da8c32 100644 --- a/pr/2574/docs/iroh_net_bench/iroh/fn.connect_client.html +++ b/pr/2574/docs/iroh_net_bench/iroh/fn.connect_client.html @@ -1,5 +1,5 @@ connect_client in iroh_net_bench::iroh - Rust

    Function iroh_net_bench::iroh::connect_client

    source ·
    pub async fn connect_client(
    -    server_addr: NodeAddr,
    +    server_addr: NodeAddr,
         opt: Opt
    -) -> Result<(Endpoint, Connection)>
    Expand description

    Create a client endpoint and client connection

    +) -> Result<(Endpoint, Connection)>
    Expand description

    Create a client endpoint and client connection

    \ No newline at end of file diff --git a/pr/2574/docs/iroh_net_bench/iroh/fn.server.html b/pr/2574/docs/iroh_net_bench/iroh/fn.server.html index 5203cc5cf1..62100e3402 100644 --- a/pr/2574/docs/iroh_net_bench/iroh/fn.server.html +++ b/pr/2574/docs/iroh_net_bench/iroh/fn.server.html @@ -1,2 +1,2 @@ -server in iroh_net_bench::iroh - Rust

    Function iroh_net_bench::iroh::server

    source ·
    pub async fn server(endpoint: Endpoint, opt: Opt) -> Result<()>
    Expand description

    Take the provided endpoint and run the server

    +server in iroh_net_bench::iroh - Rust

    Function iroh_net_bench::iroh::server

    source ·
    pub async fn server(endpoint: Endpoint, opt: Opt) -> Result<()>
    Expand description

    Take the provided endpoint and run the server

    \ No newline at end of file diff --git a/pr/2574/docs/iroh_net_bench/iroh/fn.server_endpoint.html b/pr/2574/docs/iroh_net_bench/iroh/fn.server_endpoint.html index 6f4ddc30f8..dbbc5b99e9 100644 --- a/pr/2574/docs/iroh_net_bench/iroh/fn.server_endpoint.html +++ b/pr/2574/docs/iroh_net_bench/iroh/fn.server_endpoint.html @@ -1,2 +1,2 @@ -server_endpoint in iroh_net_bench::iroh - Rust

    Function iroh_net_bench::iroh::server_endpoint

    source ·
    pub fn server_endpoint(rt: &Runtime, opt: &Opt) -> (NodeAddr, Endpoint)
    Expand description

    Creates a server endpoint which runs on the given runtime

    +server_endpoint in iroh_net_bench::iroh - Rust

    Function iroh_net_bench::iroh::server_endpoint

    source ·
    pub fn server_endpoint(rt: &Runtime, opt: &Opt) -> (NodeAddr, Endpoint)
    Expand description

    Creates a server endpoint which runs on the given runtime

    \ No newline at end of file diff --git a/pr/2574/docs/iroh_relay/metrics/struct.StunMetrics.html b/pr/2574/docs/iroh_relay/metrics/struct.StunMetrics.html index 012d3f05bc..b249d19124 100644 --- a/pr/2574/docs/iroh_relay/metrics/struct.StunMetrics.html +++ b/pr/2574/docs/iroh_relay/metrics/struct.StunMetrics.html @@ -1,18 +1,18 @@ StunMetrics in iroh_relay::metrics - Rust

    Struct iroh_relay::metrics::StunMetrics

    source ·
    pub struct StunMetrics {
    -    pub requests: Counter,
    -    pub ipv4_success: Counter,
    -    pub ipv6_success: Counter,
    -    pub bad_requests: Counter,
    -    pub failures: Counter,
    +    pub requests: Counter,
    +    pub ipv4_success: Counter,
    +    pub ipv6_success: Counter,
    +    pub bad_requests: Counter,
    +    pub failures: Counter,
     }
    Expand description

    StunMetrics tracked for the relay server

    -

    Fields§

    §requests: Counter

    Number of stun requests made

    -
    §ipv4_success: Counter

    Number of successful requests over ipv4

    -
    §ipv6_success: Counter

    Number of successful requests over ipv6

    -
    §bad_requests: Counter

    Number of bad requests, either non-stun packets or incorrect binding request

    -
    §failures: Counter

    Number of failures

    -

    Trait Implementations§

    source§

    impl Clone for StunMetrics

    source§

    fn clone(&self) -> StunMetrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for StunMetrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for StunMetrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for StunMetrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for StunMetrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    source§

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    source§

    fn with_metric<T, F>(f: F)
    where +

    Fields§

    §requests: Counter

    Number of stun requests made

    +
    §ipv4_success: Counter

    Number of successful requests over ipv4

    +
    §ipv6_success: Counter

    Number of successful requests over ipv6

    +
    §bad_requests: Counter

    Number of bad requests, either non-stun packets or incorrect binding request

    +
    §failures: Counter

    Number of failures

    +

    Trait Implementations§

    source§

    impl Clone for StunMetrics

    source§

    fn clone(&self) -> StunMetrics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for StunMetrics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for StunMetrics

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Iterable for StunMetrics

    source§

    fn iter<'a>(&'a self) -> IntoIter<(&'static str, &'a dyn Any)>

    Returns an iterator over the struct’s fields as tuples. Read more
    source§

    impl Metric for StunMetrics

    source§

    fn name() -> &'static str

    The name of this metric group.
    §

    fn new(registry: &mut Registry) -> Self

    Initializes this metric group.
    §

    fn with_metric<T, F>(f: F)
    where F: FnOnce(&Self) -> T,

    Access to this metrics group to record a metric. -Only records if this metric is registered in the global registry.
    source§

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +Only records if this metric is registered in the global registry.

    §

    fn try_get() -> Option<&'static Self>

    Attempts to get the current metric from the global registry.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where diff --git a/pr/2574/docs/iroh_relay/struct.Config.html b/pr/2574/docs/iroh_relay/struct.Config.html index 7adb6c9e83..1a636fc7b5 100644 --- a/pr/2574/docs/iroh_relay/struct.Config.html +++ b/pr/2574/docs/iroh_relay/struct.Config.html @@ -1,5 +1,5 @@ Config in iroh_relay - Rust

    Struct iroh_relay::Config

    source ·
    pub(crate) struct Config {
    -    pub(crate) secret_key: SecretKey,
    +    pub(crate) secret_key: SecretKey,
         pub(crate) enable_relay: bool,
         pub(crate) http_bind_addr: Option<SocketAddr>,
         pub(crate) tls: Option<TlsConfig>,
    @@ -10,7 +10,7 @@
         pub(crate) metrics_bind_addr: Option<SocketAddr>,
     }
    Expand description

    Configuration for the relay-server.

    This is (de)serialised to/from a TOML config file.

    -

    Fields§

    §secret_key: SecretKey

    The iroh SecretKey for this relay server.

    +

    Fields§

    §secret_key: SecretKey

    The iroh [SecretKey] for this relay server.

    If not specified a new key will be generated and the config file will be re-written using it.

    §enable_relay: bool

    Whether to enable the Relay server.

    diff --git a/pr/2574/docs/search-index.js b/pr/2574/docs/search-index.js index f02eeb41d0..3e713050d6 100644 --- a/pr/2574/docs/search-index.js +++ b/pr/2574/docs/search-index.js @@ -1,13 +1,13 @@ var searchIndex = new Map(JSON.parse('[\ ["bulk",{"t":"HHHH","n":["main","run_iroh","run_quinn","run_s2n"],"q":[[0,"bulk"],[4,"iroh_net_bench"],[5,"anyhow"],[6,"iroh_net_bench::s2n"]],"i":[0,0,0,0],"f":"{{}b}{d{{f{b}}}}0{h{{f{b}}}}","D":"`","p":[[1,"unit"],[5,"Opt",4],[8,"Result",5],[5,"Opt",6]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAQAEAAAAAAAAQACAAMABAA="}],\ -["iroh",{"t":"CCCCCCCCCCPFGPGPPPPNNNNNNNNNNNNNNNNNNNNHNNNNNNHHNNNNNNNNNNOHHHONNNNNNNNNNNNNNNNNNGFFPPOOPPGISFFFFFGPPFPPFNNNNNNNONNNNNNNNNONOONNNNNNNPPFINNNNNNNNNNNNNNNNNNNNFPGTPFPKPNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNMNNNNNNNNNNNNOGTFFPSPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNCNONNNNNNNNNNNNNNNNNNNNNNNNNCNNNNONCNNNNNNNNNCNNNNNNNCCNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNPPPPFRRKGPFFFFPGKFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNONNNNNNNNNNMNOOOOONNNNMNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPGPPNNNNNNHHHNNNNNNNNNNOOOOOOOOCFTKNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNPPPGPFPNNNNNOONNCNNONNNNCNNNNNNNNNNNNCNNNCCNNNNNNNNNNNNPPGGPPPPGPPPPPPPPNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNHNNNNOOOOOOOOOOOOOOOOPGPPPPPNNNNNNNNNNNNNNNNNNNNFFGFFFFFFGPPGGGPGPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGFPPIPFNNNNNNNNNOONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNONNNONNNOONONNNONNNNNNNNNNNNNNNHHHHHFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNFNNNNNNOOOOOOOOOOOONNNNNNNNNNNSGTPFSFPFFGPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGPPPPGKPPPPFPGPPPPPFNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNHHNNNNNOHMOHNNNNHNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPKGPPPGPPPPPPPIPPPRPRPGPPPGGGGIPPGPGGGPKKKKPPPPPPPPKGPPPPKPPPPPGPPNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNNNMNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNMNMMMMMMNMMNNNNNNNNNNNNNMCNMMNCNNNNNNMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFFIFIIGPFPTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFSSFNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGGPPFPPPPPFPPPPPPNNNNNNNNNNONNNNNNNNNNNNNNNNCHNNNNNOOCOHNNCNNNNNNNNNNNNNNNNNNNNNNKKGKPPPKKPFGNNNNHNMHHHNNNNNNMNNMNNHHMMMMMMMMNNNNNNNHHNNMMFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNKFKKKKKNNNHNMHHHMNNMNNNMNNNHHMNMMMMNMNNNNHHNNMGPPFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOTFIFFTFFFNNNNNONNNNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNOOOOOOONNNONONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFIFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNFPPFIKGFNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPGPGFFKKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNCNNNNMMNNCNNNNNNNNHNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPFFFPGFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPFFKFRPGIKFPFFNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNEFEIFNNCNCNNNNNNNNNNNNCNNNNNNNNNCNNNNCNCNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNFFFGFFPPGFFFFFFPPPFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNONNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNONNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONONOOONNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOPPPFPPPFFFFPFFGPPPGPPPGPPPPGFPGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNONNNNNOONNNNNNNNONNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOPPFPPFFGGNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNONNNNNNNNNNNNFFNNONNNNNNNNNNNNNNNNNONNNNONNNNNNNNNNNONNFFNNNNNNNNNNNONNNONNNNONNNNNNNNNNNNFFFFPGGGPPGIFFPFGPGGPPPPSPFPFFPIIPPFPFFPFFFPPFPPGPPNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNCNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNOONOONNNNNNNNNNNNNNNNNPPPFGPFPPGPPPPGPPPFPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOHNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONONNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOFNONNNNNOOOOOOOOOONNNNNNOOOOOOOONNNNNPGGGPPPPPPGSPPPPPPPFFNNNNNNNNNNNNNNNNNNNNNNNNOHNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNOONOONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOPPPGPPGKPPPPGFGPPGFPPPGPPPKFFFGGFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPGGGPPGIFPFGPGGPPPPSPPPIIPPFPFFPFFFPPFPPGPPOOOOOOOOOOOOCCCCPPGGPFGPFPPPFNNNONNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNFNOOOOOOOONNNNNNNNNNOOOOOOOONOONNNNNPIISFPFPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNFNNNNNNNNHHNNNNNHPGPFGPPGKGPFPPPPGFPPKPPPPGPFPPFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNNNNMNNNNNNNNCNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNPPPPPGFGGPPPPPFFPFPNNNNNNNNNPGPFSPPGPPKGPGPPGPPPPPPPFFPPGPPNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNOOOOOOOOOONNNHNNNNNHNNNFFFINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNCNNOCNCNCNNNNNNNNNNNNNNNNNNNNNNNNONNNNCCCCNNNNONNCCCNONNNNCCCCNNNNNNNNNNNNCNNNNNNSSSSCCSSSHHHHSSHHHFNNNNNNNNNNNNNNNNNNNNNNNNNFKFNNONNNNNNNCNNNNNNNNNNNOCCONNNNNNNNNNNNNFSSNNNNNNNNNNNNFNNNNNNNNNNNNSSSSFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIKHMMMMMMMMMMCHPSGFPFNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNONONNNNNNHNNNNNNNNNNNNNFFPFPFFPGFPPGFGPFFGFFPPPTTPFPPPPGFPPPFPPPPFPPPPFPGPPNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNHNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOONOOONNHNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTPPGISFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNOOOOOOOOONNOONNNOOOOOONNNONNOOONOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNOOOOOOONOGFPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNCNNNNNNNNNNFNNNNNNNNNNNNNNHONONNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNOOOONNOONNOOONOOOOOOOOOONNNNNNNNNNNNNNNNNONNNNPPGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNONNNNNNNNNNNNNNNNNNNNNOOONONOOONONNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNPPPPPPPPPPPPPPFFGFPPPPSPPPPPPPPPPGPFFGFPFPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNOOOOOGSSPPNNNNNNNNNNNNNNNNNNNNGFPFPGFPFFFFFPFNNNNOOOONNNNNNNNNNNNNNNNNNNNNNOONNONNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNONONONNNNNNNNNNNNNONONNOOONNNNNNONOOOOONNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNOOOOPGPPPPPPPPGFPPPPPPPPPPPGFPFPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNCHHNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSFFNNNNHNNNNNNNNOONONHNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNCHHFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNCNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNHNNNNNNNNNNNNNNFPSPPPGGIGPIPIPFPPPFKGPPGNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOCCCCFFNNNNNNHNNNNNNNNNNONNNNNNNNNNHHNNNNHHHHHONNNNNNNNNNNGPPNNNNNNNNNNNNNNPPPPGPPPNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["client","metrics","node","util","base32","hash","key","node_addr","rpc","ticket","Base32","DecodeError","DecodeKind","Hex","HexOrBase32ParseError","Length","Padding","Symbol","Trailing","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_append","fmt_short","from","from","from","from","from","from_ref","from_ref","into","into","into","kind","parse_array","parse_array_hex_or_base32","parse_vec","position","source","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","BlobFormat","Hash","HashAndFormat","HashSeq","Raw","format","hash","Base32","Key","KeyParsingError","NodeId","PUBLIC_KEY_LENGTH","PublicKey","SecretKey","SharedSecret","Signature","AddrInfo","AddrInfoOptions","Addresses","Id","NodeAddr","Relay","RelayAndAddresses","RelayUrl","__clone_box","borrow","borrow_mut","clone","clone_into","default","deserialize","direct_addresses","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from_ref","from_str","info","into","node_id","relay_url","serialize","to_owned","to_string","try_from","try_into","type_id","vzip","Err","Ok","RpcError","RpcResult","__clone_box","borrow","borrow_mut","clone","clone_into","deserialize","fmt","fmt","from","from","from","from_ref","into","serialize","to_owned","to_string","try_from","try_into","type_id","vzip","BlobTicket","Encoding","Error","KIND","Kind","NodeTicket","Postcard","Ticket","Verify","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deserialize","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","format","from","from","from","from","from_bytes","from_bytes","from_ref","from_str","hash","into","into","into_parts","new","node_addr","recursive","serialize","serialize","source","to_bytes","to_bytes","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","expected","BlobFormat","EMPTY","Hash","HashAndFormat","HashSeq","IROH_BLOCK_SIZE","Raw","Tag","TempTag","__clone_box","__clone_box","__clone_box","__clone_box","as_bits","as_bytes","as_bytes","as_bytes","as_bytes","as_bytes","as_ref","auto","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compare","compare","compare","compare","compare","compare","compare","default","deserialize","deserialize","deserialize","deserialize","downloader","drop","encode_hex","encode_hex_upper","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export","fixed_width","fixed_width","fixed_width","fixed_width","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","format","format","format","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_bytes","from_ref","from_ref","from_ref","from_ref","from_str","from_str","get","hash","hash","hash","hash","hash","hash_seq","hashseq","inner","into","into","into","into","into","is_hash_seq","is_raw","leak","metrics","new","new","new","partial_cmp","partial_cmp","partial_cmp","partial_cmp","protocol","provider","raw","serialize","serialize","serialize","serialize","store","to_hex","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_name","type_name","type_name","type_name","util","vzip","vzip","vzip","vzip","vzip","AbortRequest","ActorClosed","AllIntentsDropped","Cancelled","ConcurrencyLimits","Connection","Connection","Dialer","DownloadError","DownloadFailed","DownloadHandle","DownloadKind","DownloadRequest","Downloader","DropPeer","FailureAction","Getter","IntentId","NoProviders","RetryConfig","RetryLater","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cancel","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","default","default","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","format","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","get","hash","hash","hash","hash_and_format","initial_retry_delay","into","into","into","into","into","into","into","into","into","into_future","is_pending","join","max_concurrent_dials_per_hash","max_concurrent_requests","max_concurrent_requests_per_node","max_open_connections","max_retries_per_node","new","new","nodes_have","partial_cmp","pending_count","poll","progress_sender","queue","queue_dial","race","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_config","Abort","AllDone","Done","ExportProgress","Found","Progress","__clone_box","borrow","borrow_mut","clone","clone_into","deserialize","export","export_blob","export_collection","fmt","from","from_ref","into","serialize","to_owned","try_from","try_into","type_id","vzip","hash","id","id","id","meta","offset","outpath","size","collection","Collection","HEADER","SimpleStore","__clone_box","borrow","borrow_mut","clone","clone_into","default","deserialize","eq","extend","fmt","from","from_iter","from_ref","index","into","into_iter","is_empty","iter","len","load","load","load_db","push","read_fsm","read_fsm_all","serialize","store","to_blobs","to_owned","try_from","try_into","type_id","vzip","Connection","Decode","Generic","GetResponseError","Read","Stats","Write","__clone_box","borrow","borrow","borrow_mut","borrow_mut","bytes_read","bytes_written","clone","clone_into","db","default","deserialize","elapsed","eq","equivalent","equivalent","equivalent","error","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_ref","fsm","into","into","mbits","progress","request","serialize","source","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Abort","AllDone","BlobId","BlobInfo","Child","Complete","Connected","Done","DownloadProgress","Found","FoundHashSeq","FoundLocal","InitialState","Missing","Partial","Progress","Root","__clone_box","__clone_box","__clone_box","blob_info","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","compare","deserialize","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","get_to_db","hash","into","into","into","missing_ranges","partial_cmp","serialize","serialize","size","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","valid_ranges","valid_ranges","vzip","vzip","vzip","entry","size","valid_ranges","child","child","children","hash","hash","hash","id","id","id","offset","size","size","valid_ranges","BadRequest","GetError","Io","LocalFailure","NoncompliantNode","NotFound","RemoteReset","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","from","into","source","to_string","try_from","try_into","type_id","vzip","AtBlobContent","AtBlobHeader","AtBlobHeaderNextError","AtClosing","AtConnected","AtEndBlob","AtInitial","AtStartChild","AtStartRoot","BlobContentNext","Closing","Closing","ConnectedNext","ConnectedNextError","DecodeError","Done","EndBlobNext","Io","Io","Io","LeafHashMismatch","LeafNotFound","More","MoreChildren","NotFound","NotFound","ParentHashMismatch","ParentNotFound","PostcardSer","Read","Read","RequestTooBig","StartChild","StartRoot","Write","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","child_offset","concatenate_into_vec","concatenate_into_vec","drain","drain","finish","finish","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into","into","new","next","next","next","next","next","next","next","next","offset","offset","ranges","ranges","ranges","source","source","start","to_string","to_string","to_string","tree","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_all","write_all","write_all_batch","write_all_batch","write_all_with_outboard","write_all_with_outboard","BlobProgress","BlobState","Done","Pending","ProgressId","Progressing","TransferState","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","child_count","children","clone","clone","clone","clone_into","clone_into","clone_into","connected","current","default","deserialize","deserialize","deserialize","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","get_blob","get_current","hash","into","into","into","local_ranges","new","new","on_progress","progress","progress_id_to_blob","root","root","serialize","serialize","serialize","size","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","get_chunk_probe","get_hash_seq_and_sizes","get_unverified_size","get_verified_size","random_hash_seq_ranges","HashSeq","HashSeqIter","HashSeqStream","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","fmt","fmt","fmt","from","from","from","from_iter","from_ref","from_ref","from_ref","get","into","into","into","into_fallible","into_inner","into_iter","into_iter","is_empty","iter","len","new","next","next","parse_hash_seq","pop_front","skip","to_owned","to_owned","to_owned","transpose_into_fallible","try_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Metrics","__clone_box","borrow","borrow_mut","clone","clone_into","default","download_bytes_total","download_time_total","downloader_tick_connection_ready","downloader_tick_goodbye_node","downloader_tick_main","downloader_tick_message_received","downloader_tick_retry_node","downloader_tick_transfer_completed","downloader_tick_transfer_failed","downloads_error","downloads_notfound","downloads_success","fmt","from","from_ref","into","iter","name","to_owned","try_from","try_into","type_id","vzip","ALPN","Closed","EMPTY","Get","GetRequest","MAX_MESSAGE_SIZE","NonEmptyRequestRangeSpecIter","ProviderTerminating","RangeSpec","RangeSpecSeq","Request","RequestReceived","StreamDropped","UnknownErrorCode","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","all","all","all","as_single","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","deserialize","deserialize","deserialize","deserialize","empty","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_ranges","from_ranges_infinite","from_ref","from_ref","from_ref","from_ref","from_ref","hash","hash","hash","hash","into","into","into","into","into","into","into","into_fallible","into_iter","is_all","is_empty","iter","iter_non_empty","last_chunk","last_chunks","new","new","new","next","ranges","reason","serialize","serialize","serialize","serialize","single","to_chunk_ranges","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","transpose_into_fallible","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Abort","AddProgress","AllDone","ClientConnected","CustomGetRequestReceived","Done","Event","EventSender","Found","GetRequestReceived","NotFound","Progress","ResponseWriter","Sent","SentStatus","TaggedBlobAdded","TransferAborted","TransferBlobCompleted","TransferCompleted","TransferHashSeqStarted","TransferStats","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","default","deserialize","duration","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_ref","from_ref","from_ref","handle_connection","handle_get","into","into","into","into","into","read","read_request","send","send","send_blob","serialize","to_owned","to_owned","to_owned","transfer_collection","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","format","hash","hash","id","id","id","name","offset","size","tag","connection_id","connection_id","connection_id","connection_id","connection_id","connection_id","connection_id","format","hash","hash","hash","index","len","num_blobs","request_id","request_id","request_id","request_id","request_id","request_id","size","stats","stats","tag","Abort","Abort","AllDone","BaoBatchWriter","BaoBlobSize","Blob","Collection","Complete","ConsistencyCheckProgress","Copy","Copy","CopyProgress","CustomDebug","CustomDebug","CustomWarning","CustomWarning","DbIter","Done","Done","Entry","Entry","EntryDone","EntryMut","EntryProgress","EntryStatus","Error","Error","Error","Event","ExportFormat","ExportMode","ExportProgress","ExportProgressCb","Found","GcCompleted","GcMarkEvent","GcStarted","GcSweepEvent","ImportMode","ImportProgress","Info","Map","MapEntry","MapEntryMut","MapMut","NotFound","OutboardDone","OutboardProgress","Partial","PartialEntry","PartialEntryDone","PartialEntryProgress","Progress","ReadableStore","ReportLevel","Size","Start","Start","Starting","Store","Trace","TryReference","TryReference","Unverified","Update","ValidateProgress","Verified","Warn","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","batch_writer","blobs","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","consistency_check","create_tag","data_reader","default","default","default","delete","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","entry_status","entry_status_sync","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","fs","gc_mark","gc_start","gc_sweep","get","get_mut","get_or_create","hash","import_bytes","import_file","import_reader","import_stream","insert_complete","into","into","into","into","into","into","into","into","into","into","into","into","into","is_complete","mem","new","outboard","partial_blobs","partial_cmp","readonly_mem","serialize","serialize","serialize","serialize","serialize","serialize","set_tag","shutdown","size","sync","tags","temp_tag","temp_tags","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","validate","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_batch","entry","level","message","hash","id","id","id","offset","path","stable","hash","id","id","id","id","id","name","offset","offset","size","error","hash","hash","id","id","id","id","id","id","offset","offset","path","path","ranges","size","size","total","BaoTree","BlockSize","ByteRanges","ChunkNum","ChunkRanges","ChunkRangesRef","PostOrderOffset","Stable","TreeNode","Unstable","ZERO","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","add","add","add_block_size","block_size","blocks","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","chunk_log","chunk_range","chunks","chunks","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","compare","compare","compare","count_below","default","div","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_bytes","from_chunk_log","from_ref","from_ref","from_ref","from_ref","from_ref","full_chunks","hash","hash","into","into","into","into","into","io","is_leaf","is_min_value","iter","left_child","level","mid","min_value","mul","new","next_left_ancestor","node_range","outboard_size","parent","partial_cmp","partial_cmp","partial_cmp","partial_cmp","post_order_chunks_iter","post_order_nodes_iter","post_order_offset","post_order_offset","post_order_range","pre_order_nodes_iter","pre_order_offset","ranges_pre_order_chunks_iter_ref","restricted_parent","right_child","right_count","root","size","sub","sub","subtract_block_size","to_bytes","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_usize","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","value","vzip","vzip","vzip","vzip","vzip","Hash","Hasher","HexError","KEY_LEN","OUT_LEN","OutputReader","__clone_box","__clone_box","__clone_box","__clone_box","as_bytes","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","count","default","derive_key","eq","eq","eq","equivalent","equivalent","equivalent","fill","finalize","finalize_xof","flush","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_bytes","from_hex","from_ref","from_ref","from_ref","from_ref","from_str","hash","hash","into","into","into","into","keyed_hash","new","new_derive_key","new_keyed","position","read","reset","seek","set_position","to_hex","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","update","vzip","vzip","vzip","vzip","write","BaoContentItem","DecodeError","EncodeError","Io","Io","Leaf","Leaf","LeafHashMismatch","LeafHashMismatch","LeafNotFound","LeafWrite","Parent","Parent","ParentHashMismatch","ParentHashMismatch","ParentNotFound","ParentWrite","SizeMismatch","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","data","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","fsm","full_chunk_groups","into","into","into","into","into","node","offset","outboard","pair","round_up_to_chunks","source","source","sync","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","AsyncSliceReader","AsyncSliceWriter","BaoContentItem","CreateOutboard","Done","Leaf","More","Outboard","OutboardMut","Parent","ResponseDecoder","ResponseDecoderNext","borrow","borrow","borrow_mut","borrow_mut","copy","create","create_sized","decode_ranges","encode_ranges","encode_ranges_validated","finish","fmt","fmt","from","from","hash","init_from","into","into","load","new","next","outboard","outboard_post_order","read_at","root","save","set_len","size","sync","sync","tree","tree","try_from","try_from","try_into","try_into","type_id","type_id","valid_outboard_ranges","valid_ranges","vzip","vzip","write_at","write_bytes_at","EmptyOutboard","PostOrderMemOutboard","PostOrderOutboard","PreOrderMemOutboard","PreOrderOutboard","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","create","create","create_sized","create_sized","create_sized","create_sized","data","data","data","data","default","default","default","default","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","flip","flip","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","init_from","init_from","init_from","init_from","into","into","into","into","into","into_inner_with_prefix","into_inner_with_suffix","load","load","load","load","load","load","load","load","load","load","map_data","map_data","root","root","root","root","root","root","root","root","root","root","root","root","root","root","root","save","save","save","save","save","save","save","save","save","save","sync","sync","sync","sync","sync","sync","sync","sync","sync","sync","to_owned","to_owned","to_owned","to_owned","tree","tree","tree","tree","tree","tree","tree","tree","tree","tree","tree","tree","tree","tree","tree","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","CreateOutboard","DecodeResponseIter","Outboard","OutboardMut","ReadAt","Size","WriteAt","borrow","borrow_mut","buffer","copy","create","create_sized","decode_ranges","encode_ranges","encode_ranges_validated","flush","fmt","from","init_from","into","into_fallible","into_iter","load","new","new_with_buffer","next","outboard","outboard_post_order","read_at","read_exact_at","root","save","size","sync","transpose_into_fallible","tree","tree","try_from","try_into","type_id","valid_outboard_ranges","valid_ranges","vzip","write_all_at","write_at","BaoChunk","Leaf","Parent","PostOrderChunkIter","PostOrderNodeIter","PreOrderNodeIter","PreOrderPartialChunkIterRef","ResponseIter","ResponseIterRef","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_ref","into","into","into","into","into","into","into","into_fallible","into_fallible","into_fallible","into_fallible","into_fallible","into_fallible","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","min_full_level","new","new","new","new","new","new","next","next","next","next","next","next","size","to_owned","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","tree","tree","tree","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","without_ranges","is_root","is_root","left","node","ranges","ranges","right","size","start_chunk","ALWAYS_INLINE","BatchOptions","Entry","FlatStorePaths","InlineOptions","NO_INLINE","Options","PathOptions","Store","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","batch","blobs","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","complete","consistency_check","create_tag","data_path","default","default","delete","dump","entry_status","entry_status_sync","export","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","gc_start","get","get_mut","get_or_create","import_bytes","import_file","import_flat_store","import_stream","inline","insert_complete","into","into","into","into","into","into","load","max_data_inlined","max_outboard_inlined","max_read_batch","max_read_duration","max_write_batch","max_write_duration","meta","new","owned_data_path","owned_outboard_path","partial","partial_blobs","path","set_tag","shutdown","sync","tags","temp_path","temp_tag","temp_tags","to_owned","to_owned","to_owned","to_owned","to_owned","transform_entries","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","update_inline_options","vzip","vzip","vzip","vzip","vzip","vzip","Entry","Store","__clone_box","__clone_box","batch_writer","blobs","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","consistency_check","create_tag","data_reader","default","delete","entry_status","entry_status_sync","export","fmt","fmt","from","from","from_ref","from_ref","gc_start","get","get_mut","get_or_create","hash","import_bytes","import_file","import_stream","insert_complete","into","into","is_complete","new","outboard","partial_blobs","set_tag","shutdown","size","tags","temp_tag","temp_tags","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","RangeSet","RangeSet2","RangeSetRef","__clone_box","all","as_ref","bitand","bitand","bitand","bitand","bitand_assign","bitor","bitor","bitor","bitor","bitor_assign","bitxor","bitxor","bitxor","bitxor","bitxor_assign","borrow","borrow","borrow","borrow_mut","borrow_mut","boundaries","clone","clone_into","cmp","compare","contains","deref","difference","difference_with","empty","empty","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from","from","from","from_ref","intersection","intersection_with","intersects","into","into_inner","is_all","is_disjoint","is_empty","is_subset","is_superset","iter","iter","new","new","new_unchecked","new_unchecked","not","not","partial_cmp","range_set","single","split","sub","sub","sub","sub","sub_assign","symmetric_difference","symmetric_difference_with","to_owned","try_from","try_into","type_id","type_id","union","union_with","vzip","Iter","Range","RangeFrom","RangeSet","RangeSet2","RangeSetEntry","RangeSetRange","RangeSetRef","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","cloned","end_bound","fmt","from","from","from","from","from_ref","intersection","into","into","into_fallible","into_iter","is_min_value","min_value","next","normalize","start_bound","to_owned","transpose_into_fallible","try_from","try_from","try_into","try_into","type_id","type_id","union","vzip","vzip","Entry","Store","__clone_box","__clone_box","batch_writer","blobs","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","consistency_check","create_tag","data_reader","default","delete","entry_status","entry_status_sync","export","fmt","fmt","from","from","from_iter","from_ref","from_ref","gc_start","get","get_content","get_mut","get_or_create","hash","import_bytes","import_file","import_stream","insert","insert_complete","insert_many","into","into","is_complete","new","outboard","partial_blobs","set_tag","shutdown","size","tags","temp_tag","temp_tags","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Auto","File","Mem","MemOrFile","Named","SetTagOption","SparseMemFile","Tag","TagCounter","TagDrop","TempTag","__clone_box","as_bits","as_ref","as_ref","as_weak","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","cmp","compare","default","default","deref","deserialize","encode_hex","encode_hex_upper","eq","equivalent","equivalent","equivalent","flush","fmt","fmt","fmt","from","from","from","from","from_ref","into","into","into","into_parts","io","is_mem","local_pool","map_file","map_mem","mem","new","on_create","on_drop","partial_cmp","persist","progress","read_at","read_at","serialize","size","size","size","temp_tag","to_owned","total_bytes","try_as_bits","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_map_file","type_id","type_id","type_id","vzip","vzip","vzip","write_at","TrackingReader","TrackingWriter","borrow","borrow","borrow_mut","borrow_mut","bytes_read","bytes_written","fmt","fmt","from","from","into","into","into_parts","into_parts","new","new","poll_flush","poll_shutdown","poll_write","read","read_bytes","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Cancelled","Config","LocalPool","LocalPoolHandle","LogAndContinue","PanicMode","Run","Shutdown","SpawnError","__clone_box","__clone_box","__clone_box","abort","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cancelled","clone","clone","clone","clone_into","clone_into","clone_into","default","default","deref","drop","eq","equivalent","equivalent","equivalent","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","from_ref","from_ref","handle","into","into","into","into","into","into","into_future","join","new","panic_mode","poll","race","shutdown","single","spawn","spawn_detached","thread_name_prefix","threads","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","try_spawn","try_spawn_detached","try_spawn_detached_boxed","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","waiting_tasks","BoxedProgressSender","Err","FallibleProgressSliceWriter","FlumeProgressSender","IdGenerator","IgnoreProgressSender","Msg","Ok","ProgressSendError","ProgressSendResult","ProgressSender","ProgressSliceWriter","ReceiverDropped","WithFilterMap","WithMap","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","blocking_send","blocking_send","blocking_send","blocking_send","blocking_send","blocking_send","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","boxed","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","into","into","into","into","into","into","into","into","into_inner","into_inner","new","new","new","new_id","new_id","new_id","new_id","new_id","new_id","same_channel","send","send","send","send","send","send","set_len","set_len","sync","sync","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_send","try_send","try_send","try_send","try_send","try_send","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_filter_map","with_map","write_at","write_at","write_bytes_at","write_bytes_at","Doc","Iroh","NodeStatus","RpcClient","RpcService","__clone_box","__clone_box","authors","authors","blobs","blobs","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","connect_addr","connect_path","deref","docs","docs","fmt","fmt","from","from","from","from","from_ref","from_ref","gossip","gossip","into","into","new","node","node","tags","tags","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Client","__clone_box","borrow","borrow_mut","clone","clone_into","create","default","delete","export","fmt","from","from_ref","import","into","list","ref_cast","ref_cast_mut","set_default","to_owned","try_from","try_into","type_id","vzip","AddOutcome","AddProgress","BlobInfo","BlobStatus","Client","CollectionInfo","Complete","Direct","DownloadMode","DownloadOptions","DownloadOutcome","DownloadProgress","ExportOutcome","ExportProgress","IncompleteBlobInfo","NoWrap","Partial","Queued","Reader","Wrap","WrapOption","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","add_bytes","add_bytes_named","add_from_path","add_reader","add_stream","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","chain","chain","chain","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","consistency_check","create_collection","delete_blob","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","download","download_hash_seq","download_with_opts","downloaded_size","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","expected_size","export","finish","finish","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","format","format","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","get_collection","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_future","into_future","into_future","into_stream","into_stream","into_stream","into_stream","is_complete","join","join","join","list","list_collections","list_incomplete","load","local_size","merge","merge","merge","merge","mode","new","new","nodes","path","poll","poll","poll","poll_next","poll_next","poll_next","poll_next","poll_read","race","race","race","ratelimit_stream","ratelimit_stream","ratelimit_stream","ratelimit_stream","ratelimit_stream_with_jitter","ratelimit_stream_with_jitter","ratelimit_stream_with_jitter","ratelimit_stream_with_jitter","read","read_at","read_at_to_bytes","read_to_bytes","read_to_bytes","ref_cast","ref_cast_mut","serialize","serialize","serialize","serialize","serialize","serialize","share","size","size","size","size","size_hint","stats","status","tag","tag","tag","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","total_blobs_count","total_blobs_size","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","try_poll","try_poll","try_poll_next","try_poll_next","try_poll_next","try_poll_next","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","validate","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","zip","zip","zip","zip","size","size","name","Abort","Accept","AllDone","Client","Connect","ContentReady","DirectJoin","Doc","Entry","ExportFileOutcome","ExportFileProgress","Found","ImportFileOutcome","ImportFileProgress","ImportProgress","IngestDone","InsertLocal","InsertRemote","LiveEvent","NeighborDown","NeighborUp","NewNeighbor","Origin","PendingContentReady","Progress","Read","Resync","ShareMode","SyncEvent","SyncFinished","SyncReason","SyncReport","Write","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","author","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","chain","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","close","content_bytes","content_hash","content_len","content_reader","create","del","deserialize","deserialize","deserialize","deserialize","drop_doc","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export_file","finish","finish","finished","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","get_download_policy","get_exact","get_many","get_one","get_sync_peers","hash","id","id","import","import_and_subscribe","import_file","import_namespace","into","into","into","into","into","into","into","into","into","into","into_stream","into_stream","key","key","leave","list","merge","merge","open","origin","peer","poll_next","poll_next","ratelimit_stream","ratelimit_stream","ratelimit_stream_with_jitter","ratelimit_stream_with_jitter","ref_cast","ref_cast_mut","result","serialize","serialize","serialize","serialize","set_bytes","set_download_policy","set_hash","share","size","start_sync","started","status","subscribe","timestamp","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_poll_next","try_poll_next","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","zip","zip","hash","id","id","id","key","name","offset","size","content_status","entry","entry","from","hash","Broadcast","BroadcastNeighbors","Client","Gossip","Lagged","SubscribeOpts","SubscribeRequest","SubscribeResponse","SubscribeUpdate","__clone_box","__clone_box","bootstrap","bootstrap","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","deserialize","fmt","fmt","fmt","from","from","from","from_ref","from_ref","into","into","into","ref_cast","ref_cast_mut","serialize","subscribe","subscribe_with_opts","subscription_capacity","subscription_capacity","to_owned","to_owned","topic","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Client","NodeStatus","__clone_box","add_node_addr","addr","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","connection_info","connections","deserialize","fmt","fmt","from","from","from_ref","home_relay","into","into","listen_addrs","node_addr","node_id","ref_cast","ref_cast_mut","rpc_addr","serialize","shutdown","stats","status","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","version","vzip","vzip","Client","TagInfo","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","delete","deserialize","fmt","fmt","format","from","from","from_ref","hash","into","into","list","list_hash_seq","name","ref_cast","ref_cast_mut","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Author","AuthorHeads","AuthorId","AuthorPublicKey","BadSignature","Capability","CapabilityError","CapabilityKind","Closed","Complete","ContentStatus","ContentStatusCallback","DocTicket","Entry","EntryIsEmpty","EntrySignature","Event","Incomplete","InsertError","InsertOrigin","InvalidEmptyEntry","InvalidNamespace","Local","LocalInsert","MAX_TIMESTAMP_FUTURE_SHIFT","Missing","NamespaceId","NamespaceMismatch","NamespacePublicKey","NamespaceSecret","NewerEntryExists","PeerIdBytes","ProtocolMessage","Read","Read","ReadOnly","ReadOnly","Record","RecordIdentifier","RemoteInsert","Replica","ReplicaInfo","SignedEntry","Store","Sync","SyncOutcome","TooFarInTheFuture","Validation","ValidationFailure","Write","Write","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","actor","as_bits","as_bits","as_bits","as_byte_tuple","as_bytes","as_bytes","as_bytes","as_bytes","as_bytes","as_ref","as_ref","as_ref","as_ref","as_ref","author","author","author_bytes","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","capability","capability","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","closed","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","compare","compare","compare","compare","compare","compare","compare","compare","content_hash","content_hash","content_len","content_len","decode","default","default","default","default","default","default","default","delete_prefix","deref","deref","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","empty","empty_current","encode","encode","encode_hex","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","encode_hex_upper","engine","entry","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","fmt_short","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_bytes","from_entry","from_entry","from_iter","from_iter","from_parts","from_raw","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","from_str","from_str","from_str","from_str","from_str","from_str","get","has_news_for","hash","hash","hash","hash","hash_and_insert","heads_received","id","id","id","id","id","insert","insert","insert_remote_entry","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_public_key","into_public_key","is_empty","is_empty","iter","key","key","key","key_bytes","kind","len","merge","merge","merge_capability","metrics","namespace","namespace","net","new","new","new","new","new","new","new","new","new_current","new_empty","nodes","num_recv","num_sent","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","public_key","public_key","public_key","public_key","raw","record","record_id","secret_key","secret_key","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_content_status_callback","sign","sign","sign","signature","source","store","subscribe","subscribers_count","sync","sync_initial_message","sync_process_message","timestamp","timestamp","to_byte_tuple","to_bytes","to_bytes","to_bytes","to_bytes","to_bytes","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_vec","try_as_bits","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_primitive","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unsubscribe","validate_empty","validate_empty","verify","verify","verify","verify","verify","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","entry","entry","from","namespace","namespace","remote_content_status","should_download","from","remote_content_status","OpenOpts","OpenState","SyncHandle","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","close","content_hashes","default","default","delete_author","delete_prefix","deserialize","drop","drop_replica","eq","equivalent","equivalent","equivalent","export_author","export_secret_key","flush_store","fmt","fmt","fmt","from","from","from","from_ref","from_ref","get_download_policy","get_exact","get_many","get_state","get_sync_peers","handles","has_news_for_us","import_author","import_namespace","insert_local","insert_remote","into","into","into","list_authors","list_replicas","open","register_useful_peer","serialize","set_download_policy","set_sync","shutdown","spawn","subscribe","subscribe","subscribe","subscribers","sync","sync","sync","sync_initial_message","sync_process_message","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unsubscribe","vzip","vzip","vzip","Accept","Connect","ContentReady","DefaultAuthor","DefaultAuthorStorage","DirectJoin","Engine","InsertLocal","InsertRemote","LiveEvent","Mem","NeighborDown","NeighborUp","NewNeighbor","Origin","PendingContentReady","Persistent","Resync","SyncEvent","SyncFinished","SyncReason","SyncReport","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","default_author","deserialize","deserialize","deserialize","deserialize","endpoint","entry_to_content_status","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","finished","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","get","handle_connection","into","into","into","into","into","into","into","leave","load","load","origin","peer","persist","result","serialize","serialize","serialize","serialize","set","shutdown","spawn","start_sync","started","subscribe","sync","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","content_status","entry","entry","from","hash","Metrics","__clone_box","actor_tick_main","borrow","borrow_mut","clone","clone_into","default","doc_gossip_tick_actor","doc_gossip_tick_event","doc_gossip_tick_main","doc_gossip_tick_pending_join","doc_live_tick_actor","doc_live_tick_main","doc_live_tick_pending_downloads","doc_live_tick_replica_event","doc_live_tick_running_sync_accept","doc_live_tick_running_sync_connect","fmt","from","from_ref","into","iter","name","new_entries_local","new_entries_local_size","new_entries_remote","new_entries_remote_size","sync_via_accept_failure","sync_via_accept_success","sync_via_connect_failure","sync_via_connect_success","to_owned","try_from","try_into","type_id","vzip","Abort","AbortReason","AcceptError","AcceptOutcome","Allow","AlreadySyncing","Close","Close","Connect","Connect","ConnectError","DOCS_ALPN","InternalServerError","NotFound","Open","Reject","RemoteAbort","Sync","Sync","SyncFinished","Timings","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","connect","connect_and_sync","default","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","handle_connection","into","into","into","into","into","into","namespace","namespace","outcome","peer","peer","process","serialize","source","source","timings","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","error","error","error","error","namespace","namespace","namespace","peer","peer","peer","peer","reason","error","error","error","Any","Any","Asc","AuthorFilter","AuthorKey","Desc","DownloadPolicy","DownloadPolicyStore","EverythingExcept","Exact","Exact","Exact","FilterKind","FlatQuery","ImportNamespaceOutcome","Inserted","KeyAuthor","KeyFilter","MemPublicKeyStore","NoChange","NotFound","NothingExcept","OpenError","Other","Prefix","Prefix","PublicKeyStore","Query","QueryBuilder","SingleLatestPerKeyQuery","SortBy","SortDirection","Store","Upgraded","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","all","as_mut","as_ref","author","author","author_key","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","close_replica","content_hashes","default","default","default","default","default","default","default","default","default","delete_author","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","flush","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","fs","get_author","get_download_policy","get_download_policy","get_download_policy","get_exact","get_latest_for_each_author","get_many","get_sync_peers","has_news_for_us","import_author","import_namespace","include_empty","into","into","into","into","into","into","into","into","into","into","into","into","into","into","key_exact","key_exact","key_prefix","key_prefix","limit","limit","list_authors","list_namespaces","load_replica_info","matches","matches","matches","matches","memory","namespace_key","new_author","new_replica","offset","offset","open_replica","persistent","public_key","public_key","public_key","register_useful_peer","remove_replica","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_download_policy","single_latest_per_key","snapshot","snapshot_owned","sort_by","sort_direction","source","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","ContentHashesIterator","LatestIterator","ParentIterator","RecordsRange","Store","StoreInstance","all","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_download_policy","into","into","into","into","into","into_fallible","into_fallible","into_fallible","into_fallible","into_iter","into_iter","into_iter","into_iter","next","next","next","next","public_key","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","AuthorHeads","BadSignature","Capability","CapabilityError","CapabilityKind","Closed","Complete","ContentStatus","ContentStatusCallback","Entry","EntryIsEmpty","EntrySignature","Event","Incomplete","InsertError","InsertOrigin","InvalidEmptyEntry","InvalidNamespace","Local","LocalInsert","MAX_TIMESTAMP_FUTURE_SHIFT","Missing","NamespaceMismatch","NewerEntryExists","PeerIdBytes","ProtocolMessage","Read","Read","ReadOnly","ReadOnly","Record","RecordIdentifier","RemoteInsert","Replica","ReplicaInfo","SignedEntry","Store","Sync","SyncOutcome","TooFarInTheFuture","Validation","ValidationFailure","Write","Write","heads_received","num_recv","num_sent","entry","entry","from","namespace","namespace","remote_content_status","should_download","from","remote_content_status","dispatcher","metrics","net","proto","Broadcast","BroadcastNeighbors","Command","Event","Gossip","GossipDispatcher","GossipEvent","Lagged","Message","NeighborDown","NeighborUp","Received","SubscribeOptions","__clone_box","__clone_box","__clone_box","bootstrap","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","compare","compare","content","delivered_from","deserialize","deserialize","deserialize","deserialize","deserialize","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","into","into","into","into","into","into","new","partial_cmp","partial_cmp","scope","serialize","serialize","serialize","serialize","serialize","subscribe_with_opts","subscription_capacity","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","Metrics","__clone_box","actor_tick_dialer","actor_tick_dialer_failure","actor_tick_dialer_success","actor_tick_endpoint","actor_tick_in_event_rx","actor_tick_main","actor_tick_rx","actor_tick_timers","borrow","borrow_mut","clone","clone_into","default","fmt","from","from_ref","into","iter","msgs_ctrl_recv","msgs_ctrl_recv_size","msgs_ctrl_sent","msgs_ctrl_sent_size","msgs_data_recv","msgs_data_recv_size","msgs_data_sent","msgs_data_sent_size","name","neighbor_down","neighbor_up","to_owned","try_from","try_into","type_id","vzip","Broadcast","Command","Event","GOSSIP_ALPN","Gossip","Join","JoinTopicFut","NeighborDown","NeighborUp","Quit","Received","__clone_box","accept","borrow","borrow","borrow_mut","borrow_mut","broadcast","broadcast_neighbors","clone","clone_into","fmt","fmt","from","from","from_endpoint","from_ref","handle_connection","into","into","into_future","join","join","max_message_size","poll","quit","race","subscribe","subscribe_all","to_owned","try_from","try_from","try_into","try_into","try_poll","type_id","type_id","update_direct_addresses","util","vzip","vzip","Timers","borrow","borrow_mut","default","fmt","from","insert","into","new","read_lp","read_message","try_from","try_into","type_id","vzip","wait_and_drain","write_message","Broadcast","Command","Command","Config","DeliveryScope","DisconnectPeer","EmitEvent","Event","IO","InEvent","Join","Message","NeighborDown","NeighborUp","Neighbors","Neighbors","OutEvent","PeerData","PeerData","PeerDisconnected","PeerIdentity","Quit","Received","RecvMessage","ScheduleTimer","Scope","SendMessage","State","Swarm","Swarm","Timer","TimerExpired","TopicId","UpdatePeerData","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_bits","as_bytes","as_bytes","as_ref","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broadcast","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compare","compare","compare","compare","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","encode_hex","encode_hex_upper","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","handle","has_active_peers","hash","inner","into","into","into","into","into","into","into","into","into","into","into","into","is_direct","kind","max_message_size","max_message_size","me","membership","new","new","partial_cmp","partial_cmp","partial_cmp","partial_cmp","push","push_from_iter","serialize","serialize","serialize","serialize","serialize","serialize","size","state","state","states","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","topic","topics","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","util","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Command","Control","Data","DisconnectPeer","EmitEvent","InEvent","Message","MessageKind","OutEvent","PeerData","PeerDisconnected","RecvMessage","ScheduleTimer","SendMessage","State","Timer","TimerExpired","TopicId","UpdatePeerData","borrow","borrow_mut","fmt","from","into","try_from","try_into","type_id","vzip","Broadcast","Command","Command","Config","DEFAULT_MAX_MESSAGE_SIZE","DisconnectPeer","EmitEvent","Event","Gossip","Gossip","IO","InEvent","Join","Message","NeighborDown","NeighborUp","OutEvent","PeerData","PeerDisconnected","Quit","Received","RecvMessage","ScheduleTimer","SendMessage","State","Stats","Swarm","Swarm","Timer","TimerExpired","UpdatePeerData","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broadcast","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","deserialize","endpoint","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","gossip_stats","handle","has_active_peers","into","into","into","into","into","into","kind","max_message_size","membership","messages_received","messages_sent","new","push","push_from_iter","serialize","stats","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","with_rng","TimeBoundCache","TimerMap","borrow","borrow","borrow_mut","borrow_mut","contains_key","default","default","drain_until","expire_until","expires","first","fmt","fmt","from","from","get","insert","insert","into","into","is_empty","iter","iter","len","new","remove","remove","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Metrics","__clone_box","borrow","borrow_mut","clone","clone_into","default","doc_gossip_tick_actor","doc_gossip_tick_event","doc_gossip_tick_main","doc_gossip_tick_pending_join","doc_live_tick_actor","doc_live_tick_main","doc_live_tick_pending_downloads","doc_live_tick_replica_event","doc_live_tick_running_sync_accept","doc_live_tick_running_sync_connect","fmt","from","from_ref","get_metrics","into","iter","name","to_owned","try_from","try_init_metrics_collection","try_into","type_id","vzip","AddrInfo","Endpoint","NodeAddr","NodeId","__clone_box","__clone_box","__clone_box","accept","add_node_addr","add_node_addr_with_source","apply_options","apply_options","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bound_sockets","builder","clone","clone","clone","clone_into","clone_into","clone_into","close","cmp","cmp","compare","compare","conn_type_stream","connect","connect_by_node_id","connection_info","connection_infos","default","defaults","deserialize","deserialize","dialer","direct_addresses","direct_addresses","direct_addresses","discovery","discovery","dns","dns_resolver","endpoint","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_parts","from_ref","from_ref","from_ref","home_relay","info","into","into","into","is_empty","key","metrics","net","netcheck","network_change","new","node_addr","node_id","node_id","partial_cmp","partial_cmp","ping","portmapper","relay","relay_url","relay_url","secret_key","serialize","serialize","set_alpns","stun","test_utils","ticket","tls","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","util","vzip","vzip","vzip","watch_home_relay","with_direct_addresses","with_relay_url","DEFAULT_HTTPS_PORT","DEFAULT_HTTP_PORT","DEFAULT_METRICS_PORT","DEFAULT_STUN_PORT","prod","staging","AP_RELAY_HOSTNAME","EU_RELAY_HOSTNAME","NA_RELAY_HOSTNAME","default_ap_relay_node","default_eu_relay_node","default_na_relay_node","default_relay_map","EU_RELAY_HOSTNAME","NA_RELAY_HOSTNAME","default_eu_relay_node","default_na_relay_node","default_relay_map","Dialer","abort_dial","borrow","borrow_mut","chain","fmt","from","into","into_stream","is_pending","is_pending","merge","new","next_conn","pending_count","pending_count","poll_next","queue_dial","queue_dial","ratelimit_stream","ratelimit_stream_with_jitter","try_from","try_into","type_id","vzip","zip","ConcurrentDiscovery","Discovery","DiscoveryItem","__clone_box","add","addr_info","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","dns","empty","fmt","fmt","from","from","from","from","from_ref","from_services","into","into","last_updated","local_swarm_discovery","pkarr","provenance","publish","publish","resolve","resolve","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","DnsDiscovery","N0_DNS_NODE_ORIGIN_PROD","N0_DNS_NODE_ORIGIN_STAGING","borrow","borrow_mut","fmt","from","into","n0_dns","new","resolve","try_from","try_into","type_id","vzip","LocalSwarmDiscovery","borrow","borrow_mut","fmt","from","into","new","publish","resolve","try_from","try_into","type_id","vzip","DEFAULT_PKARR_TTL","DEFAULT_REPUBLISH_INTERVAL","N0_DNS_PKARR_RELAY_PROD","N0_DNS_PKARR_RELAY_STAGING","PkarrPublisher","PkarrRelayClient","PkarrResolver","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","drop","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","into","into","into","n0_dns","n0_dns","new","new","new","publish","publish","resolve","resolve","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_addr_info","vzip","vzip","vzip","with_options","DnsResolver","ResolverExt","default_resolver","lookup_by_id","lookup_by_id_staggered","lookup_by_name","lookup_by_name_staggered","lookup_ipv4","lookup_ipv4_ipv6","lookup_ipv4_ipv6_staggered","lookup_ipv4_staggered","lookup_ipv6","lookup_ipv6_staggered","node_info","resolver","Addr","IROH_TXT_NAME","IrohAttr","NodeInfo","Relay","TxtAttrs","__clone_box","as_ref","attrs","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","cmp","compare","direct_addresses","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_hickory_records","from_hickory_records","from_parts","from_pkarr_signed_packet","from_pkarr_signed_packet","from_ref","from_str","from_strings","from_z32","hash","into","into","into","lookup_by_id","lookup_by_name","new","node_id","node_id","partial_cmp","relay_url","to_hickory_records","to_hickory_records","to_owned","to_pkarr_signed_packet","to_pkarr_signed_packet","to_string","to_z32","try_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Accept","AddrInfo","ApplicationClosed","Builder","CallMeMaybe","Connecting","Connection","ConnectionClosed","ConnectionError","ConnectionInfo","ConnectionLost","ConnectionLost","ConnectionType","ConnectionTypeStream","ControlMsg","Direct","DirectAddr","DirectAddrInfo","DirectAddrType","DirectAddrsStream","Endpoint","IllegalOrderedRead","Local","LocallyClosed","MAX","MAX_SIZE","Mixed","NodeAddr","None","Ping","Pong","Portmapped","ReadError","RecvStream","Relay","Reset","Reset","SendStream","Stopped","Stun","Stun4LocalPort","TimedOut","TransportConfig","TransportError","Unknown","UnknownStream","UnknownStream","VarInt","VersionMismatch","WriteError","ZeroRttRejected","ZeroRttRejected","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","accept_bi","accept_uni","addr","addr","addrs","allow_spin","alpn","alpns","bind","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","chain","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","close","close_reason","closed","cmp","cmp","cmp","compare","compare","compare","concurrent_connections","congestion_controller_factory","congestion_state","conn_type","crypto_buffer_size","datagram_receive_buffer_size","datagram_send_buffer_size","datagram_send_buffer_space","default","default","default","default_relay_mode","deserialize","deserialize","deserialize","deserialize","direct_addresses","discovery","dns_resolver","drop","drop","enable_segmentation_offload","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export_keying_material","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_u32","from_u64","from_u64_unchecked","get_remote_node_id","handshake_data","handshake_data","has_send_address","hash","hash","hash","id","id","id","info","initial_mtu","initial_rtt","insecure_skip_relay_cert_verify","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_0rtt","into_future","into_future","into_inner","into_stream","into_stream","is_0rtt","join","join","keep_alive_interval","keylog","known_nodes","last_alive","last_alive_relay","last_control","last_payload","last_received","last_used","latency","latency","local_ip","local_ip","make_server_config","max_concurrent_bidi_streams","max_concurrent_uni_streams","max_datagram_size","max_idle_timeout","max_tlps","merge","merge","min_mtu","mtu_discovery_config","node_id","node_id","open_bi","open_uni","packet_threshold","partial_cmp","partial_cmp","partial_cmp","peer_identity","persistent_congestion_threshold","poll","poll","poll_flush","poll_next","poll_next","poll_read","poll_shutdown","poll_write","priority","proxy_from_env","proxy_url","race","race","ratelimit_stream","ratelimit_stream","ratelimit_stream_with_jitter","ratelimit_stream_with_jitter","read","read_chunk","read_chunks","read_datagram","read_exact","read_to_end","receive_window","relay_mode","relay_url","relay_url","remote_address","remote_address","reset","rtt","secret_key","send_datagram","send_window","serialize","serialize","serialize","serialize","set_max_concurrent_bi_streams","set_max_concurrent_uni_streams","set_priority","set_receive_window","source","source","source","stable_id","stats","stop","stopped","stream_receive_window","time_threshold","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","transport_config","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","typ","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","weak_handle","write","write_all","write_all_chunks","write_chunk","write_chunks","zip","zip","BYTE_SIZE","Base32","Key","KeyParsingError","NodeId","PUBLIC_KEY_LENGTH","PublicKey","SecretKey","SharedSecret","Signature","__clone_box","__clone_box","__clone_box","as_bits","as_bytes","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","compare","deserialize","deserialize","deserialize","encode_hex","encode_hex_upper","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_components","from_ref","from_ref","from_ref","from_slice","from_str","from_str","from_str","generate","generate_with_rng","hash","into","into","into","into","into","open","partial_cmp","public","r_bytes","s_bytes","seal","serialize","serialize","serialize","shared","sign","source","to_bytes","to_bytes","to_bytes","to_openssh","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_vec","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_openssh","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","MagicsockMetrics","NetcheckMetrics","PortmapMetrics","RelayMetrics","__clone_box","accepts","actor_link_change","actor_tick_direct_addr_heartbeat","actor_tick_direct_addr_update_receiver","actor_tick_main","actor_tick_msg","actor_tick_other","actor_tick_portmap_changed","actor_tick_re_stun","borrow","borrow_mut","bytes_recv","bytes_sent","clone","clone_into","default","derp_accepts","disco_packets_dropped","disco_packets_recv","disco_packets_sent","disconnects","external_address_updated","fmt","from","from_ref","got_ping","into","iter","local_port_updates","mapping_attempts","mapping_failures","name","num_direct_conns_added","num_direct_conns_removed","num_relay_conns_added","num_relay_conns_removed","other_packets_dropped","other_packets_recv","other_packets_sent","pcp_available","pcp_probes","probes_started","re_stun_calls","recv_data_ipv4","recv_data_ipv6","recv_data_relay","recv_datagrams","recv_disco_bad_key","recv_disco_bad_parse","recv_disco_call_me_maybe","recv_disco_call_me_maybe_bad_disco","recv_disco_ping","recv_disco_pong","recv_disco_relay","recv_disco_udp","relay_home_change","reports","reports_full","send_data","send_data_network_down","send_disco_relay","send_disco_udp","send_ipv4","send_ipv6","send_packets_dropped","send_packets_recv","send_packets_sent","send_relay","send_relay_error","sent_disco_call_me_maybe","sent_disco_ping","sent_disco_pong","sent_disco_relay","sent_disco_udp","sent_pong","stun_packets_dropped","stun_packets_recv_ipv4","stun_packets_recv_ipv6","stun_packets_sent_ipv4","stun_packets_sent_ipv6","to_owned","try_from","try_into","type_id","unique_client_keys","unknown_frames","update_direct_addrs","upnp_available","upnp_gateway_updated","upnp_probes","upnp_probes_failed","vzip","websocket_accepts","IpFamily","UdpSocket","V4","V6","__clone_box","as_fd","bind","bind_full","bind_local","bind_local_v4","bind_local_v6","bind_v4","bind_v6","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from_ref","into","into","ip","local_addr","netmon","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unspecified_addr","vzip","vzip","LocalAddresses","__clone_box","borrow","borrow_mut","clone","clone_into","default","eq","equivalent","equivalent","equivalent","fmt","from","from_ref","into","is_unicast_link_local","loopback","new","regular","to_owned","try_from","try_into","type_id","vzip","CallbackToken","Monitor","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from","from_ref","hash","into","into","network_change","new","subscribe","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unsubscribe","vzip","vzip","Client","Metrics","RelayLatencies","Report","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","captive_portal","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","default","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_ref","from_ref","from_ref","from_ref","get_report","get_report_channel","global_v4","global_v6","hair_pinning","icmpv4","icmpv6","into","into","into","into","ipv4","ipv4_can_send","ipv6","ipv6_can_send","iter","iter","mapping_varies_by_dest_ip","mapping_varies_by_dest_ipv6","name","new","os_has_ipv6","portmap_probe","preferred_relay","receive_stun_packet","relay_latency","relay_v4_latency","relay_v6_latency","reports","reports_full","stun_packets_dropped","stun_packets_recv_ipv4","stun_packets_recv_ipv6","stun_packets_sent_ipv4","stun_packets_sent_ipv6","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","udp","vzip","vzip","vzip","vzip","Client","Ping","PingError","Pinger","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","fmt","fmt","fmt","from","from","from","from","from_ref","into","into","new","send","source","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Client","Config","Metrics","ProbeOutput","Service","__clone_box","__clone_box","__clone_box","__clone_box","all_available","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","deactivate","default","default","default","enable_nat_pmp","enable_pcp","enable_upnp","eq","equivalent","equivalent","equivalent","external_address_updated","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","into","into","into","into","into","iter","local_port_updates","mapping_attempts","mapping_failures","name","nat_pmp","new","pcp","pcp_available","pcp_probes","probe","probes_started","procure_mapping","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update_local_port","upnp","upnp_available","upnp_gateway_updated","upnp_probes","upnp_probes_failed","vzip","vzip","vzip","vzip","vzip","watch_external_address","ActorGone","Build","CannotAckPings","Closed","ConnectTimeout","Custom","Default","DialIO","DialTask","Disabled","Dns","DnsTimeout","Health","Http","HttpClient","HttpClientBuilder","HttpClientError","HttpClientReceiver","Hyper","IPDisabled","InvalidUrl","KeepAlive","MAX_PACKET_SIZE","NoClient","NoLocalAddr","NoNodeForTarget","PeerGone","Ping","PingAborted","PingTimeout","Pong","Proxy","Receive","ReceivedMessage","ReceivedPacket","RelayConn","RelayMap","RelayMode","RelayNode","RelayNodeNotAvail","RelayUrl","Send","ServerRestarting","Staging","StunOnlyNodesFound","UnexpectedStatusCode","Upgrade","WebsocketError","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","address_family_selector","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","can_ack_pings","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","close","close","close_for_reconnect","cmp","cmp","compare","compare","connect","contains_node","default_from_node","deref","deserialize","deserialize","empty","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_nodes","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","from_url","get_node","hash","http","insecure_skip_cert_verify","into","into","into","into","into","into","into","into","into","into","is_closed","is_connected","is_empty","is_preferred","is_prober","len","local_addr","local_addr","new","nodes","note_preferred","note_preferred","partial_cmp","partial_cmp","ping","protocol","proxy_url","public_key","recv","relay_map","send","send","send_ping","send_pong","send_pong","serialize","serialize","server","server_public_key","server_url","source","stun_only","stun_port","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","url","urls","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","data","problem","reconnect_in","source","try_for","Protocol","RELAY_PATH","RELAY_PROBE_PATH","Relay","Websocket","__clone_box","borrow","borrow_mut","clone","clone_into","eq","equivalent","equivalent","equivalent","fmt","from","from_ref","into","parse_header","to_owned","try_from","try_into","type_id","upgrade_header","vzip","CertConfig","ClientConnHandler","LetsEncrypt","Limits","Manual","MaybeTlsStreamServer","Metrics","Plain","RelayConfig","Server","ServerActorTask","ServerConfig","StunConfig","Tls","TlsConfig","__clone_box","__clone_box","abort","accept","accept_conn_burst","accept_conn_limit","accepts","bind_addr","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes_recv","bytes_sent","call","call","cert","client_conn_handler","clone","clone","clone_into","clone_into","close","default","default","default","derp_accepts","disco_packets_dropped","disco_packets_recv","disco_packets_sent","disconnects","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","got_ping","http_addr","http_bind_addr","https_addr","https_bind_addr","into","into","into","into","into","into","into","into","into","into","into","is_closed","iter","limits","meta_cert","metrics_addr","name","new","other_packets_dropped","other_packets_recv","other_packets_sent","poll_flush","poll_read","poll_shutdown","poll_write","poll_write_vectored","public_key","relay","secret_key","secret_key","send_packets_dropped","send_packets_recv","send_packets_sent","sent_pong","shutdown","spawn","stun","stun_addr","task_handle","tls","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unique_client_keys","unknown_frames","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","websocket_accepts","certs","config","private_key","AlternateServer","Error","ErrorCode","ErrorResponse","Fingerprint","Indication","InvalidFingerprint","InvalidMessage","MalformedAttrs","MappedAddress","MessageClass","MessageDecoder","MessageIntegrity","MessageIntegritySha256","NoFingerprint","Nonce","NotBinding","NotSuccessResponse","PasswordAlgorithm","PasswordAlgorithms","Realm","Request","Software","StunAttribute","StunDecodeError","SuccessResponse","TransactionId","Unknown","UnknownAttributes","UserHash","UserName","XorMappedAddress","__clone_box","__clone_box","__clone_box","as_alternate_server","as_bits","as_bytes","as_error_code","as_fingerprint","as_mapped_address","as_message_integrity","as_message_integrity_sha256","as_nonce","as_password_algorithm","as_password_algorithms","as_realm","as_ref","as_software","as_unknown","as_unknown_attributes","as_user_hash","as_user_name","as_xor_mapped_address","attribute_type","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","compare","decode","default","default","deref","encode_hex","encode_hex_upper","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","expect_alternate_server","expect_error_code","expect_fingerprint","expect_mapped_address","expect_message_integrity","expect_message_integrity_sha256","expect_nonce","expect_password_algorithm","expect_password_algorithms","expect_realm","expect_software","expect_unknown","expect_unknown_attributes","expect_user_hash","expect_user_name","expect_xor_mapped_address","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","get_context","hash","into","into","into","into","into","into","is","is_alternate_server","is_error_code","is_fingerprint","is_mapped_address","is_message_integrity","is_message_integrity_sha256","is_nonce","is_password_algorithm","is_password_algorithms","is_realm","is_software","is_unknown","is_unknown_attributes","is_user_hash","is_user_name","is_xor_mapped_address","methods","parse_binding_request","parse_response","partial_cmp","request","response","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","BINDING","RESERVED","SHARED_SECRET","CleanupDropGuard","DnsPkarrServer","borrow","borrow","borrow_mut","borrow_mut","create_dns_resolver","discovery","dns_resolver","fmt","fmt","from","from","into","into","nameserver","node_origin","on_node","pkarr_url","run","run_relay_server","run_with_origin","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","NodeTicket","__clone_box","borrow","borrow_mut","clone","clone_into","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from_bytes","from_ref","from_str","into","new","node_addr","serialize","to_bytes","to_owned","to_string","try_from","try_into","type_id","vzip","certificate","make_client_config","make_server_config","GenError","P2pCertificate","P2pExtension","ParseError","VerificationError","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","generate","into","into","into","into","into","parse","peer_id","source","source","source","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify_signature","vzip","vzip","vzip","vzip","vzip","AbortingJoinHandle","CancelOnDrop","MaybeFuture","SharedAbortingJoinHandle","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","clone","clone_into","default","deref","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","inner","into","into","into","into","into_future","into_future","into_future","join","join","join","new","poll","poll","poll","race","race","race","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_poll","try_poll","try_poll","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","Chain","borrow","borrow_mut","chain","consume","fmt","from","get_mut","get_pin_mut","get_ref","into","into_inner","poll_fill_buf","poll_read","try_from","try_into","type_id","vzip","Builder","Custom","DEFAULT_RPC_ADDR","Default","Disabled","Disabled","DiscoveryConfig","DocsStorage","FsNode","GcPolicy","Interval","IrohServerEndpoint","Mem","MemNode","Memory","Node","None","Persistent","Persistent","ProtocolBuilder","ProtocolHandler","RpcStatus","Running","Stopped","StorageConfig","__clone_box","__clone_box","__clone_box","__clone_box","accept","accept","bind_port","blobs_db","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","cancel_token","clear","client","client","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","default","deref","deserialize","disable_docs","dns_resolver","downloader","enable_rpc","enable_rpc_with_addr","endpoint","endpoint","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","gc_policy","get_protocol","get_protocol","gossip","home_relay","insecure_skip_relay_cert_verify","into","into","into","into","into","into","into","into","keylog","load","local_address","local_endpoint_addresses","local_endpoints","local_pool_handle","local_pool_handle","memory","memory","my_rpc_addr","node_discovery","node_id","persist","persistent","persistent","register_gc_done_cb","relay_mode","rpc_endpoint","secret_key","serialize","shutdown","shutdown","shutdown","spawn","spawn","store","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_db_and_store","client","port","fs","io","path","progress","DataSource","PathContent","__clone_box","__clone_box","borrow","borrow","borrow_mut","borrow_mut","canonicalized_path_to_string","clone","clone","clone_into","clone_into","cmp","compare","eq","equivalent","equivalent","equivalent","files","fmt","fmt","from","from","from","from","from_ref","from_ref","into","into","key_to_path","load_secret_key","name","new","partial_cmp","path","path_content_info","path_to_key","relative_canonicalized_path_to_string","scan_dir","scan_path","size","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","with_name","BaoValidationError","EncodeError","IoError","borrow","borrow_mut","fmt","fmt","from","from","from","into","source","to_string","try_from","try_into","type_id","vzip","BaoStoreDir","Console","DefaultAuthor","DocsDatabase","IrohPaths","PeerData","RpcLock","SecretKey","__clone_box","as_ref","as_ref","borrow","borrow_mut","clone","clone_into","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from_ref","from_str","into","to_owned","to_string","try_from","try_from","try_into","type_id","vzip","with_root","Progress","ProgressAsyncReader","ProgressEmitter","ProgressWriter","__clone_box","__clone_box","blocking_send","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","fmt","fmt","fmt","fmt","from","from","from","from","from_ref","from_ref","inc","into","into","into","into","into_inner","new","new","new","none","poll_flush","poll_read","poll_shutdown","poll_write","send","set_total","subscribe","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_send","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","wrap_async_read"],"q":[[0,"iroh"],[4,"iroh::base"],[10,"iroh::base::base32"],[81,"iroh::base::hash"],[88,"iroh::base::key"],[97,"iroh::base::node_addr"],[133,"iroh::base::rpc"],[157,"iroh::base::ticket"],[215,"iroh::base::ticket::Error"],[216,"iroh::blobs"],[405,"iroh::blobs::downloader"],[580,"iroh::blobs::export"],[605,"iroh::blobs::export::ExportProgress"],[613,"iroh::blobs::format"],[614,"iroh::blobs::format::collection"],[650,"iroh::blobs::get"],[705,"iroh::blobs::get::db"],[782,"iroh::blobs::get::db::BlobInfo"],[785,"iroh::blobs::get::db::DownloadProgress"],[798,"iroh::blobs::get::error"],[825,"iroh::blobs::get::fsm"],[1038,"iroh::blobs::get::progress"],[1122,"iroh::blobs::get::request"],[1127,"iroh::blobs::hashseq"],[1189,"iroh::blobs::metrics"],[1219,"iroh::blobs::protocol"],[1381,"iroh::blobs::provider"],[1478,"iroh::blobs::provider::AddProgress"],[1488,"iroh::blobs::provider::Event"],[1512,"iroh::blobs::store"],[1814,"iroh::blobs::store::ConsistencyCheckProgress"],[1817,"iroh::blobs::store::ExportProgress"],[1824,"iroh::blobs::store::ImportProgress"],[1834,"iroh::blobs::store::ValidateProgress"],[1851,"iroh::blobs::store::bao_tree"],[2016,"iroh::blobs::store::bao_tree::blake3"],[2115,"iroh::blobs::store::bao_tree::io"],[2197,"iroh::blobs::store::bao_tree::io::fsm"],[2254,"iroh::blobs::store::bao_tree::io::outboard"],[2416,"iroh::blobs::store::bao_tree::io::sync"],[2462,"iroh::blobs::store::bao_tree::iter"],[2580,"iroh::blobs::store::bao_tree::iter::BaoChunk"],[2589,"iroh::blobs::store::fs"],[2723,"iroh::blobs::store::mem"],[2782,"iroh::blobs::store::range_collections"],[2874,"iroh::blobs::store::range_collections::range_set"],[2918,"iroh::blobs::store::readonly_mem"],[2981,"iroh::blobs::util"],[3067,"iroh::blobs::util::io"],[3098,"iroh::blobs::util::local_pool"],[3207,"iroh::blobs::util::progress"],[3368,"iroh::client"],[3419,"iroh::client::authors"],[3443,"iroh::client::blobs"],[3758,"iroh::client::blobs::BlobStatus"],[3760,"iroh::client::blobs::WrapOption"],[3761,"iroh::client::docs"],[4016,"iroh::client::docs::ImportProgress"],[4024,"iroh::client::docs::LiveEvent"],[4029,"iroh::client::gossip"],[4087,"iroh::client::node"],[4129,"iroh::client::tags"],[4164,"iroh::docs"],[4841,"iroh::docs::Event"],[4848,"iroh::docs::InsertOrigin"],[4850,"iroh::docs::actor"],[4936,"iroh::docs::engine"],[5093,"iroh::docs::engine::LiveEvent"],[5098,"iroh::docs::metrics"],[5135,"iroh::docs::net"],[5253,"iroh::docs::net::AcceptError"],[5265,"iroh::docs::net::ConnectError"],[5268,"iroh::docs::store"],[5594,"iroh::docs::store::fs"],[5664,"iroh::docs::sync"],[5711,"iroh::docs::sync::Event"],[5718,"iroh::docs::sync::InsertOrigin"],[5720,"iroh::gossip"],[5724,"iroh::gossip::dispatcher"],[5838,"iroh::gossip::metrics"],[5874,"iroh::gossip::net"],[5925,"iroh::gossip::net::util"],[5942,"iroh::gossip::proto"],[6222,"iroh::gossip::proto::state"],[6250,"iroh::gossip::proto::topic"],[6391,"iroh::gossip::proto::util"],[6428,"iroh::metrics"],[6458,"iroh::net"],[6579,"iroh::net::defaults"],[6585,"iroh::net::defaults::prod"],[6592,"iroh::net::defaults::staging"],[6597,"iroh::net::dialer"],[6623,"iroh::net::discovery"],[6665,"iroh::net::discovery::dns"],[6680,"iroh::net::discovery::local_swarm_discovery"],[6693,"iroh::net::discovery::pkarr"],[6754,"iroh::net::dns"],[6769,"iroh::net::dns::node_info"],[6847,"iroh::net::endpoint"],[7357,"iroh::net::key"],[7501,"iroh::net::metrics"],[7599,"iroh::net::net"],[7646,"iroh::net::net::ip"],[7670,"iroh::net::net::netmon"],[7705,"iroh::net::netcheck"],[7811,"iroh::net::ping"],[7846,"iroh::net::portmapper"],[7951,"iroh::net::relay"],[8218,"iroh::net::relay::ReceivedMessage"],[8223,"iroh::net::relay::http"],[8248,"iroh::net::relay::server"],[8430,"iroh::net::relay::server::CertConfig"],[8433,"iroh::net::stun"],[8637,"iroh::net::stun::methods"],[8640,"iroh::net::test_utils"],[8670,"iroh::net::ticket"],[8698,"iroh::net::tls"],[8701,"iroh::net::tls::certificate"],[8767,"iroh::net::util"],[8837,"iroh::net::util::chain"],[8855,"iroh::node"],[9031,"iroh::node::RpcStatus"],[9033,"iroh::util"],[9037,"iroh::util::fs"],[9090,"iroh::util::io"],[9107,"iroh::util::path"],[9140,"iroh::util::progress"],[9206,"dyn_clone::sealed"],[9207,"data_encoding"],[9208,"alloc::string"],[9209,"core::convert"],[9210,"core::fmt"],[9211,"core::result"],[9212,"iroh_base::base32"],[9213,"hex::error"],[9214,"alloc::vec"],[9215,"core::error"],[9216,"core::option"],[9217,"core::any"],[9218,"iroh_base::node_addr"],[9219,"serde::de"],[9220,"serde::ser"],[9221,"iroh_base::rpc"],[9222,"anyhow"],[9223,"std::io::error"],[9224,"iroh_base::ticket::blob"],[9225,"iroh_base::ticket"],[9226,"iroh_base::hash"],[9227,"postcard::error"],[9228,"bitvec::slice"],[9229,"bitvec::order"],[9230,"std::time"],[9231,"iroh_blobs::util"],[9232,"core::ops::function"],[9233,"core::cmp"],[9234,"core::iter::traits::collect"],[9235,"iroh_blake3"],[9236,"iroh_blobs::store::fs::migrate_redb_v1_v2::old"],[9237,"iroh_blobs::downloader"],[9238,"bytes::bytes"],[9239,"core::hash"],[9240,"alloc::sync"],[9241,"bitvec::ptr::span"],[9242,"redb::types"],[9243,"iroh_blobs::get::error"],[9244,"iroh_blobs::downloader::progress"],[9245,"core::future::future"],[9246,"alloc::boxed"],[9247,"core::pin"],[9248,"iroh_base::key"],[9249,"core::clone"],[9250,"futures_concurrency::future::join::tuple"],[9251,"core::future::into_future"],[9252,"iroh_net::endpoint"],[9253,"iroh_blobs::util::local_pool"],[9254,"iroh_blobs::store::traits"],[9255,"core::task::wake"],[9256,"core::task::poll"],[9257,"iroh_blobs::get::db"],[9258,"iroh_blobs::util::progress"],[9259,"futures_concurrency::future::race::tuple"],[9260,"iroh_blobs::export"],[9261,"std::path"],[9262,"iroh_blobs::format::collection"],[9263,"core::iter::traits::iterator"],[9264,"core::marker"],[9265,"iroh_blobs::get::fsm"],[9266,"iroh_blobs::hashseq"],[9267,"alloc::collections::btree::map"],[9268,"iroh_blobs::get"],[9269,"core::iter::traits::double_ended"],[9270,"iroh_quinn::send_stream"],[9271,"bao_tree::io::error"],[9272,"iroh_quinn_proto::connection"],[9273,"iroh_quinn::recv_stream"],[9274,"iroh_quinn::connection"],[9275,"bao_tree::tree"],[9276,"range_collections::range_set"],[9277,"bao_tree::io"],[9278,"iroh_blobs::protocol"],[9279,"bao_tree"],[9280,"iroh_io"],[9281,"bao_tree::io::fsm"],[9282,"iroh_blobs::get::progress"],[9283,"iroh_blobs::protocol::range_spec"],[9284,"rand::rng"],[9285,"fallible_iterator"],[9286,"iroh_blobs::metrics"],[9287,"alloc::vec::into_iter"],[9288,"iroh_quinn_proto::varint"],[9289,"iroh_blobs::provider"],[9290,"iroh_io::stats"],[9291,"alloc::collections::btree::set"],[9292,"futures_core::stream"],[9293,"tokio::io::async_read"],[9294,"core::ops::range"],[9295,"bao_tree::iter"],[9296,"std::io"],[9297,"arrayvec::array_string"],[9298,"bao_tree::io::outboard"],[9299,"positioned_io"],[9300,"core::default"],[9301,"bao_tree::io::sync"],[9302,"bytes::bytes_mut"],[9303,"iroh_blobs::store::fs"],[9304,"iroh_blobs::store::fs::test_support"],[9305,"iroh_blobs::store::mem"],[9306,"smallvec"],[9307,"wyz::range"],[9308,"iroh_blobs::store::readonly_mem"],[9309,"iroh_blobs::util::mem_or_file"],[9310,"iroh_blobs::util::sparse_mem_file"],[9311,"std::fs"],[9312,"iroh_blobs::util::io"],[9313,"tokio::io::async_write"],[9314,"flume"],[9315,"iroh::rpc_protocol"],[9316,"core::net::socket_addr"],[9317,"iroh_docs::keys"],[9318,"futures_concurrency::stream::chain::tuple"],[9319,"futures_concurrency::stream::into_stream"],[9320,"futures_concurrency::stream::merge::tuple"],[9321,"tokio::io::read_buf"],[9322,"governor::state::direct"],[9323,"governor::state"],[9324,"governor::state::direct::streams"],[9325,"governor::clock"],[9326,"governor::clock::with_std"],[9327,"governor::middleware"],[9328,"governor::jitter"],[9329,"futures_concurrency::stream::zip::tuple"],[9330,"iroh_docs::sync"],[9331,"iroh_docs::engine"],[9332,"iroh_docs::store"],[9333,"iroh_docs::ticket"],[9334,"iroh_docs::actor"],[9335,"iroh::rpc_protocol::gossip"],[9336,"iroh_gossip::dispatcher"],[9337,"futures_sink"],[9338,"iroh_gossip::proto::state"],[9339,"core::ops::deref"],[9340,"iroh_docs::heads"],[9341,"ed25519_dalek::signing"],[9342,"ed25519_dalek::verifying"],[9343,"signature::error"],[9344,"core::num::nonzero"],[9345,"iroh_docs::store::fs"],[9346,"rand_core"],[9347,"iroh_docs::store::pubkeys"],[9348,"ed25519"],[9349,"async_channel"],[9350,"iroh_docs::ranger"],[9351,"num_enum"],[9352,"iroh_docs::engine::live"],[9353,"iroh_docs::engine::state"],[9354,"iroh_gossip::net"],[9355,"iroh_docs::metrics"],[9356,"iroh_docs::net"],[9357,"iroh_docs::store::fs::query"],[9358,"iroh_docs::store::fs::tables"],[9359,"redb::table"],[9360,"iroh_docs::store::fs::ranges"],[9361,"iroh_gossip::proto::topic"],[9362,"iroh_gossip::metrics"],[9363,"futures_lite::future"],[9364,"tokio::sync::broadcast"],[9365,"tokio::sync::broadcast::error"],[9366,"iroh_net::magicsock"],[9367,"iroh_gossip::net::util"],[9368,"iroh_gossip::proto"],[9369,"iroh_gossip::proto::plumtree"],[9370,"iroh_gossip::proto::hyparview"],[9371,"rand::rngs::std"],[9372,"iroh_gossip::proto::util"],[9373,"iroh_net::magicsock::node_map"],[9374,"iroh_net::discovery"],[9375,"hickory_resolver::name_server::connection_provider::tokio_runtime"],[9376,"hickory_resolver::name_server::connection_provider"],[9377,"hickory_resolver::async_resolver"],[9378,"iroh_net::dns::node_info"],[9379,"iroh_net::relay::map"],[9380,"iroh_net::dialer"],[9381,"swarm_discovery"],[9382,"iroh_net::discovery::dns"],[9383,"iroh_net::discovery::local_swarm_discovery"],[9384,"iroh_net::discovery::pkarr"],[9385,"url"],[9386,"pkarr::signed_packet"],[9387,"core::time"],[9388,"iroh_net::dns"],[9389,"core::net::ip_addr"],[9390,"hickory_proto::rr::domain::name"],[9391,"core::str::traits"],[9392,"hickory_proto::rr::resource"],[9393,"iroh_quinn_proto::config"],[9394,"iroh_net::magicsock::node_map::node_state"],[9395,"iroh_quinn_proto::congestion"],[9396,"iroh_quinn_proto::crypto"],[9397,"iroh_quinn_proto::connection::streams::recv"],[9398,"iroh_quinn_proto"],[9399,"iroh_quinn_proto::frame"],[9400,"iroh_quinn_proto::transport_error"],[9401,"iroh_quinn_proto::connection::assembler"],[9402,"iroh_quinn_proto::connection::stats"],[9403,"iroh_quinn_proto::connection::streams::send"],[9404,"iroh_base::key::encryption"],[9405,"ed25519_dalek::signature"],[9406,"aead"],[9407,"zeroize"],[9408,"ssh_key::error"],[9409,"ssh_key::signature"],[9410,"iroh_net::net::udp"],[9411,"std::os::fd::owned"],[9412,"iroh_net::net::ip_family"],[9413,"tokio::net::udp"],[9414,"iroh_net::net::ip"],[9415,"iroh_net::net::netmon::actor"],[9416,"iroh_net::net::netmon"],[9417,"iroh_net::netcheck::metrics"],[9418,"iroh_net::netcheck"],[9419,"tokio::sync::oneshot"],[9420,"iroh_net::portmapper"],[9421,"iroh_net::ping"],[9422,"surge_ping::error"],[9423,"iroh_net::portmapper::metrics"],[9424,"tokio::sync::watch"],[9425,"iroh_net::relay::client::conn"],[9426,"tokio_tungstenite_wasm::error"],[9427,"hyper::error"],[9428,"http::error"],[9429,"tokio::runtime::task::error"],[9430,"iroh_net::relay::http"],[9431,"http::header::value"],[9432,"iroh_net::relay::server::actor"],[9433,"hyper::body::incoming"],[9434,"http::request"],[9435,"http::header::map"],[9436,"iroh_net::relay::server::metrics"],[9437,"iroh_net::relay::server"],[9438,"iroh_net::util"],[9439,"stun_rs::attributes"],[9440,"stun_rs::attributes::stun::alternate_server"],[9441,"stun_rs::error"],[9442,"stun_rs::types"],[9443,"stun_rs::attributes::stun::error_code"],[9444,"stun_rs::attributes::stun::fingerprint"],[9445,"stun_rs::attributes::stun::mapped_address"],[9446,"stun_rs::attributes::stun::message_integrity"],[9447,"stun_rs::attributes::stun::message_integrity_sha256"],[9448,"stun_rs::attributes::stun::nonce"],[9449,"stun_rs::attributes::stun::password_algorithm"],[9450,"stun_rs::attributes::stun::password_algorithms"],[9451,"stun_rs::attributes::stun::realm"],[9452,"stun_rs::attributes::stun::software"],[9453,"stun_rs::attributes::unknown"],[9454,"stun_rs::attributes::stun::unknown_attributes"],[9455,"stun_rs::attributes::stun::user_hash"],[9456,"stun_rs::attributes::stun::user_name"],[9457,"stun_rs::attributes::stun::xor_mapped_address"],[9458,"stun_rs::context"],[9459,"stun_rs::message"],[9460,"iroh_net::stun"],[9461,"iroh_net::test_utils::dns_and_pkarr_servers"],[9462,"iroh_net::test_utils"],[9463,"iroh_base::ticket::node"],[9464,"rustls::client::client_conn"],[9465,"iroh_net::tls::certificate"],[9466,"rustls::server::server_conn"],[9467,"rcgen::error"],[9468,"webpki::error"],[9469,"rustls::key"],[9470,"rustls::enums"],[9471,"tokio::runtime::task::join"],[9472,"tokio::runtime::task::abort"],[9473,"iroh_net::util::chain"],[9474,"tokio::io::async_buf_read"],[9475,"iroh::node::protocol"],[9476,"iroh::node::builder"],[9477,"tokio_util::sync::cancellation_token"],[9478,"iroh::node::rpc_status"],[9479,"alloc::borrow"],[9480,"tokio::sync::mpsc::bounded"],[9481,"iroh_base"],[9482,"ed25519_dalek::constants"],[9483,"iroh_blobs"],[9484,"iroh_blobs::format"],[9485,"iroh_blobs::get::request"],[9486,"iroh_blobs::store"],[9487,"bao_tree::io::fsm::validate"],[9488,"bao_tree::io::sync::validate"],[9489,"range_collections"],[9490,"iroh_docs"],[9491,"iroh_gossip"],[9492,"iroh_net"],[9493,"iroh_net::defaults"],[9494,"iroh_net::defaults::prod"],[9495,"iroh_net::defaults::staging"],[9496,"iroh_net::net"],[9497,"iroh_net::relay::codec"],[9498,"iroh_net::relay"],[9499,"stun_rs"],[9500,"stun_rs::methods"],[9501,"iroh_net::test_utils::dns_server"],[9502,"iroh_net::tls"]],"i":[0,0,0,0,0,0,0,0,0,0,13,0,0,13,0,3,3,3,3,3,4,3,4,13,3,4,13,3,4,3,4,3,4,3,3,3,4,4,4,0,3,3,4,4,13,13,0,0,3,4,13,13,13,3,4,3,4,13,4,0,0,0,4,13,3,4,3,4,13,3,4,13,3,4,13,3,4,13,3,4,13,0,0,0,30,30,41,41,547,547,0,0,0,0,0,0,0,0,0,21,21,0,21,21,0,21,21,21,21,21,21,21,436,21,21,21,21,21,21,21,21,21,33,21,33,436,21,21,21,21,21,21,21,677,677,0,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,0,29,0,28,29,0,29,0,29,27,27,29,27,29,27,27,28,27,27,27,27,27,27,27,29,29,27,27,29,29,29,28,27,27,27,27,27,29,27,27,27,27,28,27,29,28,27,27,27,29,27,29,27,29,27,29,27,29,678,0,32,0,0,30,0,30,0,0,32,30,41,38,32,32,32,41,38,38,32,38,32,32,32,30,41,38,38,43,32,30,41,38,43,32,30,41,38,32,30,41,38,32,30,41,38,32,32,30,41,38,38,38,30,32,30,41,38,0,43,32,32,32,30,41,38,32,32,32,30,30,30,41,41,41,38,38,38,0,32,41,38,38,32,32,30,30,41,41,38,38,43,32,0,43,41,32,32,32,32,32,30,41,41,41,38,38,38,38,43,32,32,41,38,38,32,30,41,38,32,41,0,32,30,41,43,41,41,0,43,32,30,41,38,43,30,30,43,0,32,41,43,32,30,41,38,0,0,41,32,30,41,38,0,32,32,30,41,38,32,30,41,38,32,32,30,41,38,43,32,30,41,38,43,32,30,41,38,43,32,41,38,38,0,32,30,41,38,43,65,62,65,62,0,73,68,0,0,62,0,0,0,0,65,0,0,0,62,0,65,60,61,49,62,58,60,65,63,64,61,49,62,59,58,60,65,63,64,61,49,62,59,58,58,60,61,49,62,58,60,61,49,62,58,60,60,63,64,60,49,60,60,60,49,49,49,60,60,65,63,64,61,49,49,62,62,59,58,49,60,65,65,63,64,61,49,49,62,59,58,60,61,49,62,58,68,60,49,49,49,64,60,65,63,64,61,49,62,59,58,59,73,59,63,63,63,63,64,61,58,58,60,73,59,61,58,73,59,60,61,49,62,58,60,49,62,60,65,63,64,61,49,62,59,58,60,65,63,64,61,49,62,59,58,59,60,65,63,64,61,49,62,59,58,60,65,63,64,61,49,62,59,58,58,89,89,89,0,89,89,89,89,89,89,89,89,0,0,0,89,89,89,89,89,89,89,89,89,89,679,679,680,681,679,680,679,679,0,0,96,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,98,96,96,96,96,96,96,96,96,96,96,96,96,96,108,108,108,0,108,0,108,106,106,108,106,108,106,106,106,106,0,106,106,106,106,106,106,106,0,106,108,108,106,108,108,108,108,108,108,108,106,0,106,108,106,0,0,106,108,106,108,106,108,106,108,106,108,106,108,86,86,0,0,115,114,86,86,0,86,86,86,86,114,114,86,115,114,86,115,0,114,86,115,114,86,115,114,86,115,114,86,115,115,115,86,115,115,115,115,115,114,86,115,114,86,115,114,86,115,0,115,114,86,115,114,115,86,115,114,114,86,115,114,86,115,114,86,115,114,86,115,0,114,114,86,115,682,683,682,684,685,686,684,685,686,685,687,688,687,684,685,684,66,0,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,0,0,0,0,0,0,0,0,0,0,133,102,0,0,0,134,0,122,124,123,123,123,134,102,124,123,123,123,122,124,123,122,133,133,122,131,132,133,122,101,126,127,124,129,123,134,128,102,130,131,132,133,122,101,126,127,124,129,123,134,128,102,130,126,127,129,127,129,101,126,129,131,132,133,122,122,101,126,127,124,124,129,123,123,134,128,102,130,131,132,133,133,133,133,122,122,101,126,127,124,129,123,123,123,123,134,134,134,128,102,102,102,130,101,127,129,131,132,133,122,101,126,127,124,129,123,134,128,102,130,131,131,132,101,126,127,129,128,130,127,129,101,126,127,122,123,0,122,124,123,129,131,132,133,122,101,126,127,124,129,123,134,128,102,130,131,132,133,122,101,126,127,124,129,123,134,128,102,130,131,132,133,122,101,126,127,124,129,123,134,128,102,130,131,132,133,122,101,126,127,124,129,123,134,128,102,130,127,129,127,129,127,129,0,0,143,143,0,143,0,141,142,143,141,142,143,141,142,143,142,141,141,142,143,141,142,143,141,141,143,141,142,143,141,142,143,141,141,141,142,142,142,143,143,143,141,142,143,141,142,143,141,142,143,141,141,142,141,142,143,142,141,142,141,142,141,141,141,141,142,143,142,141,142,143,141,142,143,141,142,143,141,142,143,141,142,143,0,0,0,0,0,0,0,0,103,147,148,103,147,148,103,147,148,103,147,148,103,147,148,103,147,148,103,147,148,103,103,147,148,103,103,147,148,148,103,103,148,103,103,103,103,147,148,0,103,147,103,147,148,148,103,103,147,148,103,147,148,103,147,148,103,147,148,0,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,0,0,155,156,0,0,0,157,0,0,0,157,157,0,155,145,156,136,157,155,145,136,145,155,145,158,156,136,157,159,155,145,158,156,136,157,159,155,145,156,136,157,155,145,156,136,157,155,145,156,136,145,155,145,156,136,157,155,155,155,145,145,145,156,156,156,136,136,136,157,157,157,155,145,158,156,136,157,159,159,155,145,158,156,156,136,157,159,145,145,155,145,156,136,157,155,145,157,136,155,145,158,156,136,157,159,158,158,155,155,145,145,136,136,155,145,136,158,136,157,155,145,156,136,136,155,155,145,156,136,157,159,158,155,145,158,156,136,157,157,159,155,145,158,156,136,157,159,155,145,158,156,136,157,159,155,145,158,156,136,157,159,166,0,166,163,163,166,0,0,166,163,165,166,0,165,0,163,163,163,163,163,0,163,164,165,163,164,166,167,165,163,164,166,167,165,163,164,165,163,164,165,164,166,164,165,165,165,165,163,164,166,167,165,163,164,166,167,165,163,164,165,0,0,163,164,166,167,165,164,0,168,164,0,166,163,164,165,0,163,164,166,167,165,163,164,166,167,165,163,164,166,167,165,163,164,166,167,165,689,690,689,691,692,690,691,692,691,689,693,694,695,696,697,698,699,700,700,694,697,697,695,696,694,695,696,697,698,699,697,698,699,700,179,182,182,0,0,91,91,175,0,176,92,187,185,186,185,186,0,188,179,182,100,182,184,182,0,185,186,177,0,0,0,0,0,187,178,0,178,0,0,0,177,0,0,0,0,175,187,187,175,182,182,182,188,0,0,187,188,179,182,0,177,176,92,121,179,0,121,177,175,121,176,92,91,177,178,173,174,175,121,185,186,187,176,92,91,188,177,179,182,178,175,121,185,186,187,176,92,91,188,177,179,182,178,175,121,176,92,91,177,178,175,121,176,92,91,177,178,177,177,174,83,181,176,92,91,83,121,92,91,177,179,182,184,184,175,121,176,92,177,178,175,175,175,121,121,121,176,176,176,92,92,92,177,177,177,178,178,178,174,175,121,185,186,187,176,92,91,188,177,177,179,182,178,175,121,185,186,187,176,92,91,188,177,179,182,178,175,121,176,92,91,177,178,0,83,83,83,100,184,184,181,83,83,83,83,184,175,121,185,186,187,176,92,91,188,177,179,182,178,181,0,121,181,174,177,0,121,92,91,177,179,182,83,83,181,139,174,83,174,175,121,176,92,91,177,178,177,175,121,185,186,187,176,92,91,188,177,179,182,178,175,121,185,186,187,176,92,91,188,177,179,182,178,175,121,185,186,187,176,92,91,188,177,179,182,178,83,121,175,121,185,186,187,176,92,91,188,177,179,182,178,139,701,701,701,702,702,703,704,703,702,702,705,706,707,708,709,705,706,707,709,708,710,711,712,711,713,710,712,714,715,713,714,711,712,715,711,712,716,0,0,0,0,0,0,0,197,0,197,195,119,195,137,197,194,119,119,194,137,137,119,195,137,197,194,119,195,137,197,194,195,195,194,119,137,119,195,137,197,194,119,195,137,197,194,119,195,194,119,195,194,194,119,119,119,119,195,137,194,119,119,119,195,195,195,137,137,137,194,194,194,119,119,195,195,137,197,194,194,119,195,137,197,194,195,195,119,195,137,197,194,119,119,195,119,195,137,197,194,0,194,119,0,194,194,194,119,119,137,194,194,137,194,119,119,195,194,137,137,137,194,194,137,137,137,194,194,194,137,137,119,119,194,119,119,195,137,197,194,119,195,194,119,119,195,137,197,194,119,195,137,197,194,119,195,137,197,194,197,119,195,137,197,194,0,0,0,0,0,0,47,201,202,203,47,47,201,202,203,47,201,202,203,47,201,202,203,47,201,202,203,202,202,0,47,47,47,47,47,47,203,202,202,202,47,47,201,201,202,203,47,47,47,201,202,203,47,47,47,201,202,203,47,0,47,47,201,202,203,0,202,202,202,203,203,202,203,203,47,47,201,202,203,47,201,47,201,202,203,47,201,202,203,47,201,202,203,202,47,201,202,203,202,0,0,0,110,206,0,135,110,206,110,206,0,135,110,206,110,206,206,110,206,207,208,135,110,206,207,208,135,208,110,110,206,206,207,208,135,110,110,206,206,207,208,135,135,135,0,0,110,206,207,208,135,207,208,0,207,0,110,206,0,110,206,110,206,207,208,135,110,206,207,208,135,110,206,207,208,135,110,206,207,208,135,0,0,0,0,212,135,212,0,0,135,0,0,211,212,211,212,0,209,209,0,0,0,211,211,212,211,212,211,209,211,212,172,211,211,0,0,150,172,140,138,150,138,140,172,211,211,212,211,212,211,212,0,0,211,212,138,138,0,0,0,0,0,213,214,215,216,221,213,214,215,216,221,213,214,215,216,213,214,215,216,213,214,215,216,215,216,213,213,214,214,213,214,215,216,213,214,215,216,215,216,215,215,215,216,216,216,215,216,221,213,214,215,216,221,213,214,215,216,213,214,215,216,213,213,214,214,221,213,214,215,216,216,215,221,221,213,213,214,214,215,215,216,216,215,216,221,221,213,213,214,214,215,215,216,216,221,213,214,215,216,221,221,213,213,214,214,215,215,216,216,221,221,213,213,214,214,215,215,216,216,213,214,215,216,221,221,213,213,214,214,215,215,216,216,221,213,214,215,216,221,213,214,215,216,221,213,214,215,216,221,213,214,215,216,221,213,214,215,216,0,0,0,0,0,0,0,224,224,224,0,227,227,0,0,0,218,224,224,227,224,224,224,225,224,224,224,0,0,222,222,225,226,229,226,224,225,224,224,224,224,0,0,224,218,218,0,232,232,0,0,0,0,0,0,232,233,234,235,232,199,200,236,233,234,235,232,199,200,236,232,232,232,232,232,232,232,233,234,235,232,199,200,236,233,234,235,232,199,200,236,232,233,234,235,232,199,200,236,233,234,235,199,200,236,233,234,235,199,200,236,200,233,234,235,199,200,236,233,234,235,199,200,236,232,232,233,234,235,199,200,236,233,200,236,233,234,235,232,199,200,236,233,234,235,232,199,200,236,233,234,235,232,199,200,236,233,234,235,232,199,200,236,232,717,718,717,717,717,718,717,718,718,238,0,0,0,0,238,0,0,0,238,239,240,241,237,241,237,238,239,240,241,242,237,238,239,240,241,242,237,238,239,240,241,237,238,239,240,241,237,242,237,237,239,238,240,237,237,237,237,237,238,239,240,241,242,237,238,239,240,241,242,237,238,239,240,241,237,237,237,237,237,237,237,237,237,241,237,238,239,240,241,242,237,237,238,238,240,240,240,240,242,237,237,237,242,237,241,237,237,237,237,239,237,237,238,239,240,241,237,237,238,239,240,241,242,237,238,239,240,241,242,237,238,239,240,241,242,237,237,238,239,240,241,242,237,0,0,247,246,246,247,247,246,247,246,247,246,247,246,247,247,246,247,247,247,247,247,247,246,247,246,247,246,247,247,247,247,246,247,247,247,247,247,246,246,247,246,247,247,247,246,247,247,247,247,246,247,246,247,246,247,246,247,246,0,0,0,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,160,120,160,160,120,120,160,160,160,120,160,120,120,160,120,160,120,120,120,160,160,160,120,160,120,120,120,120,120,120,120,120,160,120,160,120,120,160,160,160,160,160,120,160,120,160,120,160,120,120,160,0,160,160,120,120,120,120,120,160,120,120,120,120,120,160,160,120,120,0,253,253,0,0,0,0,0,253,256,253,256,253,253,253,253,253,253,256,253,253,253,253,253,256,253,256,256,248,248,256,253,253,253,256,256,253,256,253,256,253,253,256,253,0,0,261,260,260,261,261,260,261,260,261,260,261,260,261,261,260,261,261,261,261,261,261,260,261,260,261,261,260,261,261,261,261,261,260,261,261,261,261,261,261,261,260,260,261,260,261,261,261,260,261,261,261,261,260,261,260,261,260,261,260,261,260,265,262,262,0,265,0,0,0,0,0,0,265,263,262,263,264,262,263,265,262,263,265,265,265,265,265,262,263,263,265,263,263,265,265,265,265,263,262,263,265,262,263,263,265,265,262,263,265,263,0,262,0,262,262,262,263,264,53,265,263,0,262,263,265,262,262,263,264,265,0,263,262,263,265,262,263,263,265,262,262,263,265,262,263,265,263,0,0,267,268,267,268,267,268,267,268,267,268,267,268,267,268,267,268,268,268,268,267,267,267,268,267,268,267,268,267,268,274,0,0,0,272,0,0,272,0,82,272,273,270,271,82,272,273,274,270,271,82,272,273,274,270,271,82,272,273,82,272,273,271,273,271,271,272,272,272,272,271,271,82,272,273,274,274,270,271,82,272,273,274,270,82,272,273,271,271,82,272,273,274,270,270,270,271,273,270,270,271,271,82,82,273,273,82,272,273,274,271,82,272,273,274,270,271,82,272,273,274,270,270,82,82,82,271,82,272,273,274,270,271,82,272,273,274,270,82,0,719,0,0,0,0,94,719,0,0,0,0,125,0,0,180,275,276,277,87,125,94,180,275,276,277,87,180,275,276,277,87,125,278,279,180,275,276,277,87,125,278,279,94,180,275,276,277,87,125,180,275,276,277,87,125,275,180,275,276,277,87,125,125,278,279,180,275,276,277,87,125,278,279,180,275,276,277,87,125,180,275,276,277,87,125,278,279,278,279,87,278,279,95,180,275,276,277,87,87,94,180,275,276,277,87,278,279,278,279,180,275,276,277,87,125,125,180,275,276,277,87,125,278,279,180,275,276,277,87,125,278,279,94,180,275,276,277,87,180,275,276,277,87,125,278,279,180,275,276,277,87,125,278,279,94,94,278,279,278,279,0,0,0,0,0,282,285,0,282,0,282,282,285,282,285,282,285,282,285,282,282,282,0,282,282,285,290,290,282,285,282,285,0,282,282,285,282,0,282,0,282,282,285,282,285,282,285,282,285,282,285,0,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,0,0,0,0,0,0,303,307,0,0,0,0,0,0,0,298,303,307,0,298,0,284,303,297,304,305,306,307,284,284,284,284,284,284,298,303,297,308,309,310,299,304,311,305,312,313,306,307,284,298,303,297,308,309,310,299,304,311,305,312,313,306,307,299,311,312,313,284,303,297,304,305,306,307,284,303,297,304,305,306,307,284,284,284,298,308,309,310,306,307,284,284,284,304,303,305,303,303,303,305,305,305,310,284,299,311,312,284,298,303,297,308,309,310,299,304,311,305,312,313,306,307,297,306,284,298,303,297,308,309,310,299,304,311,305,312,313,306,307,284,303,297,304,305,306,307,284,297,308,309,310,284,298,303,297,308,309,310,299,304,311,305,312,313,306,307,299,311,312,299,311,312,313,313,299,311,312,284,284,284,284,304,299,311,312,313,306,311,312,306,309,299,311,312,299,311,312,313,313,299,311,312,299,311,312,313,299,311,312,313,284,284,284,284,313,284,284,298,308,309,310,306,307,284,313,297,309,310,313,304,284,297,308,306,284,303,297,304,305,306,307,308,308,284,298,303,297,308,309,310,299,304,311,305,312,313,306,307,284,298,303,297,308,309,310,299,304,311,305,312,313,306,307,299,311,312,299,311,312,313,284,298,303,297,308,309,310,299,304,311,305,312,313,306,307,284,284,298,303,297,308,309,310,299,304,311,305,312,313,306,307,299,311,312,313,720,721,722,330,395,330,0,395,327,394,0,0,0,0,330,0,0,0,330,327,327,0,327,327,394,0,327,330,326,394,0,0,327,0,394,326,288,291,325,326,327,328,329,325,288,291,325,330,326,327,333,328,332,329,288,291,325,330,326,327,333,328,332,329,333,332,288,291,325,326,327,328,329,288,291,325,326,327,328,329,291,325,325,325,325,288,291,325,330,326,327,288,291,325,327,328,329,291,291,291,325,325,325,327,327,327,328,328,328,329,329,329,291,333,332,393,288,291,325,330,326,326,327,327,333,328,332,329,288,291,325,325,325,330,326,327,327,333,328,332,329,288,291,325,326,327,328,329,326,291,291,291,291,291,328,291,325,288,288,291,288,288,291,325,330,326,327,333,328,332,329,333,332,325,328,291,288,333,332,288,393,393,333,332,333,332,333,332,288,288,393,325,330,326,327,291,291,291,291,328,291,393,291,291,325,288,291,325,326,327,328,329,326,327,288,291,325,330,326,327,333,328,332,329,288,291,325,330,326,327,333,328,332,329,333,332,288,291,325,330,326,327,333,328,332,329,288,291,325,330,326,327,333,328,332,329,333,332,723,724,725,723,726,724,725,724,727,728,727,727,729,347,347,0,350,350,0,0,0,0,292,345,345,346,292,345,346,292,345,346,292,345,292,345,345,346,292,345,346,292,345,346,292,345,292,345,346,292,292,346,292,292,345,346,292,345,346,292,345,346,292,345,346,292,345,346,292,345,346,0,0,293,293,354,293,354,293,354,293,293,293,293,354,293,354,293,354,293,293,293,354,354,293,293,293,293,354,354,293,293,293,293,293,354,293,354,293,354,354,293,354,0,0,294,294,356,294,356,294,294,294,356,294,356,356,294,356,294,356,294,356,294,294,356,294,294,356,294,294,356,294,356,294,356,294,356,0,0,0,0,375,0,0,0,372,366,0,0,0,0,372,0,0,366,0,0,375,375,365,364,0,366,0,373,0,0,372,0,0,343,342,0,372,0,0,364,0,0,0,372,365,0,375,372,0,343,342,341,364,365,366,367,343,342,334,368,335,340,369,370,296,357,371,358,331,295,0,340,331,295,340,340,357,358,331,295,340,331,331,295,295,335,340,334,341,364,365,366,367,343,342,373,361,359,374,372,375,334,368,335,340,369,370,296,357,371,358,331,295,341,364,365,366,367,343,342,373,361,359,374,372,375,334,368,335,340,369,370,296,357,371,358,331,295,359,341,341,364,365,366,367,343,342,334,368,335,340,369,370,296,357,371,358,331,295,341,364,365,366,367,343,342,334,368,335,340,369,370,296,357,371,358,331,295,361,334,335,340,369,357,358,331,295,334,335,340,369,357,358,331,295,334,369,334,369,370,367,340,370,357,358,331,295,359,334,335,341,366,343,342,334,368,335,340,369,296,357,371,358,331,295,369,369,335,370,340,331,295,340,331,295,0,334,366,334,368,335,340,369,370,357,358,331,295,366,366,366,334,334,334,368,368,368,335,335,335,340,340,340,369,369,369,370,370,370,357,357,357,358,358,358,331,331,331,295,295,295,341,341,364,365,366,367,343,343,342,373,373,361,359,374,374,372,372,375,375,334,368,335,340,369,370,296,296,357,357,371,371,358,358,331,331,295,295,331,295,341,364,365,366,367,343,342,342,342,373,361,359,374,372,372,372,375,334,368,335,335,340,369,370,296,296,357,357,357,357,371,371,358,358,358,358,331,331,331,331,331,331,295,295,295,295,295,295,341,296,357,371,358,334,368,370,370,334,342,341,364,365,366,367,343,342,334,368,335,340,369,370,296,357,371,358,331,295,341,296,357,371,358,331,295,370,370,357,358,331,295,359,367,342,359,335,296,371,359,370,359,341,364,365,366,367,343,342,373,361,359,374,372,375,334,368,335,340,369,370,296,357,371,358,331,295,331,295,369,370,370,334,335,340,340,342,370,342,370,361,0,335,340,0,341,361,359,335,340,369,296,371,369,335,341,367,367,334,335,340,369,357,358,331,295,296,371,331,295,342,335,359,342,359,341,366,343,342,334,368,335,340,369,296,357,371,358,331,295,361,335,296,371,334,372,0,361,361,0,359,359,334,369,340,341,296,371,331,295,341,364,365,366,367,343,342,334,368,335,340,369,370,296,357,371,358,331,295,341,343,373,374,372,375,296,357,371,358,331,295,335,340,331,295,341,364,365,366,367,343,343,342,373,361,359,374,372,375,334,368,335,340,369,370,296,357,357,371,358,358,331,295,343,341,364,365,366,367,343,342,373,361,359,374,372,375,334,368,335,340,369,370,296,357,371,358,331,295,341,364,365,366,367,343,342,373,361,359,374,372,375,334,368,335,340,369,370,296,357,371,358,331,295,361,334,335,334,368,296,357,371,358,341,364,365,366,367,343,342,373,361,359,374,372,375,334,368,335,340,369,370,296,357,371,358,331,295,730,731,731,730,731,731,731,732,732,0,0,0,344,389,344,389,391,344,389,391,344,389,344,389,389,389,344,391,389,389,344,389,389,344,344,344,344,389,389,389,344,389,391,344,389,391,344,389,389,389,389,389,389,344,389,389,389,389,389,344,389,391,389,389,389,389,344,389,389,389,389,389,391,391,344,391,344,391,389,389,344,389,344,389,391,344,389,391,344,389,391,389,344,389,391,395,395,336,0,0,394,0,336,336,0,397,336,336,394,0,336,397,394,0,336,0,394,393,394,395,396,336,393,394,395,396,336,397,398,393,394,395,396,336,397,398,393,394,395,396,336,393,394,395,396,336,396,393,394,395,336,396,0,393,394,395,336,393,393,393,394,394,394,395,395,395,336,336,336,393,393,394,395,396,336,336,397,398,393,394,395,396,336,336,397,398,393,394,395,396,336,398,396,393,394,395,396,336,397,398,396,397,398,393,393,397,393,393,394,395,336,398,396,396,396,393,396,396,393,394,395,396,336,336,393,394,395,396,336,397,398,393,394,395,396,336,397,398,393,394,395,396,336,397,398,393,394,395,396,336,397,398,733,734,733,733,735,0,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,408,0,0,0,403,406,408,407,408,407,0,0,406,406,408,403,407,408,407,0,0,403,404,405,406,403,404,405,408,407,406,403,404,405,408,407,406,403,404,405,406,403,404,405,406,405,0,405,406,406,406,406,406,403,404,405,408,408,407,407,406,403,404,405,408,407,406,403,404,405,406,0,403,404,405,408,407,406,408,404,404,408,404,405,406,408,407,404,403,404,405,406,408,407,403,404,405,408,407,406,403,404,405,408,407,406,403,404,405,408,407,406,403,404,405,408,407,406,736,737,738,739,740,738,739,737,740,738,739,740,741,742,743,417,418,415,0,416,415,0,0,337,414,417,418,0,0,0,413,416,0,0,413,419,337,0,419,414,417,0,0,0,0,0,0,0,413,412,413,337,414,409,411,338,415,416,417,418,338,392,392,410,338,384,392,412,419,413,337,414,410,409,411,338,415,416,417,418,392,412,419,413,337,414,410,409,411,338,415,416,417,418,410,410,412,413,337,414,409,411,338,415,416,417,418,412,413,337,414,409,411,338,415,416,417,418,392,392,412,337,410,409,411,415,416,417,418,392,337,414,409,411,338,415,416,417,418,337,414,417,418,337,337,337,414,414,414,417,417,417,418,418,418,392,392,412,419,419,413,337,414,414,410,409,411,338,415,416,417,418,392,412,419,419,413,337,414,410,409,411,338,338,338,415,416,417,417,418,418,412,413,337,414,409,411,338,415,416,417,418,414,0,392,420,392,392,392,392,392,392,392,392,392,410,392,412,419,413,337,414,410,409,411,338,415,416,417,418,410,338,410,338,410,338,392,392,392,337,414,417,418,392,384,392,392,410,338,392,392,384,392,412,392,392,337,414,409,411,338,415,416,417,418,392,338,392,392,410,410,419,412,413,337,414,409,411,338,415,416,417,418,419,414,392,412,419,413,337,414,410,409,411,338,415,416,417,418,392,412,419,413,337,414,410,409,411,338,415,416,417,418,392,412,419,413,337,414,410,409,411,338,415,416,417,418,392,412,419,413,337,414,410,409,411,338,415,416,417,418,0,0,0,0,0,0,390,425,381,426,390,421,425,381,426,390,421,425,381,426,390,421,425,381,426,390,421,381,425,381,426,390,421,425,426,390,421,425,426,390,421,425,426,390,421,381,425,426,390,421,425,381,426,390,421,425,381,426,390,421,425,381,426,390,421,425,381,426,390,421,0,375,0,0,0,372,366,0,0,0,372,0,0,366,0,0,375,375,365,364,0,366,373,372,0,0,343,342,0,372,0,0,364,0,0,0,372,365,0,375,372,0,343,342,367,367,367,730,731,731,730,731,731,731,732,732,0,0,0,0,347,347,0,0,350,0,0,350,0,427,427,427,0,427,428,429,430,430,347,350,427,428,429,430,347,350,427,428,429,427,428,429,427,428,429,427,428,427,428,428,428,430,347,350,427,428,427,428,427,427,427,428,428,428,430,347,350,427,428,429,430,347,350,427,427,428,429,427,428,429,430,347,350,427,428,429,429,427,428,428,430,347,350,427,428,429,430,427,428,429,430,347,350,427,428,429,430,347,350,427,428,429,430,347,350,427,428,429,430,347,350,427,428,429,0,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,744,0,0,0,0,744,0,745,745,744,745,401,401,401,434,401,434,401,401,401,401,401,434,401,434,401,401,401,401,434,434,401,434,401,434,401,434,401,401,401,401,434,401,434,434,401,434,401,0,401,434,0,440,440,440,440,440,440,440,440,0,0,440,440,440,440,440,0,449,0,447,0,0,448,448,0,0,0,449,0,431,431,444,445,0,0,448,447,0,449,431,447,448,0,448,0,444,445,0,447,0,447,444,445,351,442,446,447,448,431,449,435,443,351,351,443,351,351,444,445,351,442,446,447,448,451,431,449,435,443,444,445,351,442,446,447,448,451,431,449,435,443,435,444,445,351,442,446,447,448,431,449,435,443,444,445,351,442,446,447,448,431,449,435,443,444,445,351,431,444,445,351,431,435,443,444,445,351,442,431,443,351,351,444,445,351,431,443,444,444,444,445,445,445,351,351,351,431,431,431,443,443,443,444,445,351,351,442,446,447,448,451,431,449,435,443,444,445,351,351,442,446,447,448,451,431,431,431,449,435,443,351,444,445,351,442,446,447,448,431,449,435,443,351,451,451,351,443,444,445,351,442,446,447,448,451,431,449,435,443,444,442,451,435,451,435,451,443,444,445,351,431,456,456,444,445,351,442,431,443,442,0,451,451,444,445,351,442,446,447,448,431,449,435,443,351,0,451,351,444,445,351,442,446,447,448,451,431,449,435,443,444,445,351,442,446,447,448,451,431,449,435,443,444,445,351,442,446,447,448,451,431,449,435,443,0,444,445,351,442,446,447,448,451,431,449,435,443,447,455,455,448,448,0,0,0,0,448,447,447,448,448,0,0,447,0,447,455,455,455,455,455,455,455,455,455,449,0,460,0,0,457,457,0,461,462,0,0,449,0,431,431,0,457,460,449,431,460,457,457,0,0,461,462,0,460,460,460,461,462,463,460,457,461,462,459,463,460,457,461,462,459,463,435,460,461,462,463,460,461,462,463,463,461,459,457,461,462,457,457,457,461,461,461,462,462,462,460,457,461,462,459,463,460,457,457,457,461,461,461,462,462,462,459,463,460,461,462,463,459,459,459,460,457,461,462,459,463,461,435,435,463,463,459,456,456,461,459,460,461,462,463,460,457,461,462,459,463,460,457,461,462,459,463,460,457,461,462,459,463,460,457,461,462,459,463,459,0,0,475,472,475,472,472,475,472,475,472,472,475,475,472,475,472,472,475,472,475,472,472,475,472,472,475,475,472,475,472,475,472,475,472,475,472,0,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,0,476,476,476,476,476,0,476,476,476,0,0,0,0,33,436,81,81,81,81,33,436,33,436,81,33,436,81,81,81,33,436,81,33,436,81,81,33,436,33,436,81,81,81,81,81,436,0,33,436,0,33,81,436,0,81,0,81,0,33,436,33,33,33,436,436,436,33,436,81,33,33,33,33,33,436,436,81,33,33,436,81,81,33,33,436,81,436,0,0,0,0,81,33,81,81,33,33,436,0,0,0,33,436,81,33,436,81,0,0,0,0,33,436,81,33,436,81,33,436,81,33,436,81,0,33,436,81,81,33,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,0,0,0,491,490,491,491,490,491,490,491,491,490,0,490,491,490,491,491,490,490,491,490,491,490,491,0,0,491,481,490,481,490,491,491,490,491,490,491,490,491,490,0,0,0,493,493,493,493,493,493,493,493,493,493,493,493,0,494,494,494,494,494,494,494,494,494,494,494,494,0,0,0,0,0,0,0,495,496,497,495,496,497,495,496,497,495,496,497,495,496,497,495,495,496,497,495,496,497,495,496,497,495,496,497,495,496,495,496,497,495,497,496,497,495,496,497,495,496,497,495,496,497,495,496,497,495,495,496,497,495,0,0,0,501,501,501,501,501,501,501,501,501,501,0,0,504,0,0,0,504,0,485,504,505,504,485,505,504,485,505,485,485,504,504,485,504,485,504,504,504,485,485,485,504,504,485,505,504,485,485,485,505,505,485,505,505,485,505,485,504,505,0,504,504,485,505,505,505,485,505,485,504,485,485,505,485,485,505,504,0,504,504,485,505,504,485,505,504,485,505,504,485,505,0,0,111,0,513,0,0,111,0,0,112,109,0,0,0,515,0,0,0,0,0,112,516,111,162,162,515,0,515,513,513,516,0,0,515,112,111,0,109,516,516,111,0,111,516,112,109,0,111,0,112,109,117,112,109,162,111,513,514,353,515,439,516,117,117,514,439,353,511,400,478,478,117,169,112,520,109,511,162,478,111,477,400,513,514,353,515,479,480,439,516,117,169,112,520,109,511,162,478,111,477,400,513,514,353,515,479,480,439,516,479,480,117,112,109,162,111,513,514,353,515,439,516,117,112,109,162,111,513,514,353,515,439,516,117,117,117,162,439,516,162,439,516,478,511,117,353,511,511,511,117,511,162,478,0,513,514,353,515,436,478,478,169,520,511,112,109,162,111,513,514,353,515,439,516,112,112,112,109,109,109,162,162,162,111,111,111,513,513,513,514,514,514,353,353,353,515,515,515,439,439,439,516,516,516,117,520,117,169,112,112,520,109,109,511,162,162,478,111,111,477,400,513,513,514,353,515,515,479,480,439,516,516,117,169,112,112,112,520,109,109,511,162,162,162,162,162,162,478,111,111,111,477,400,513,514,353,515,479,480,439,516,117,112,109,162,111,513,514,353,515,439,516,162,162,162,0,117,400,353,162,439,516,169,520,353,33,511,511,478,117,169,112,520,109,511,162,478,111,477,400,513,514,353,515,479,480,439,516,400,477,400,162,479,480,169,477,400,511,478,478,514,353,514,514,353,353,514,353,117,400,0,511,511,117,511,511,479,480,511,511,33,353,117,117,511,162,439,516,117,511,477,400,520,479,480,169,520,520,520,478,478,477,400,479,480,479,480,169,169,169,117,169,169,511,478,436,353,117,400,520,117,478,117,511,513,514,353,515,117,117,520,117,112,109,111,117,117,169,520,511,511,117,112,109,162,111,513,514,353,515,439,516,112,109,162,111,513,515,516,478,117,169,112,520,109,511,162,162,162,162,478,111,477,400,513,514,353,515,479,480,439,516,117,169,112,520,109,511,162,478,111,477,400,513,514,353,515,479,480,439,516,400,439,117,169,112,520,109,511,162,478,111,477,400,513,514,353,515,479,480,439,516,117,169,112,520,109,511,162,478,111,477,400,513,514,353,515,479,480,439,516,117,520,520,520,520,520,479,480,385,547,547,0,0,0,0,0,0,0,385,74,486,74,74,74,385,546,74,547,486,385,546,74,547,486,385,74,486,385,74,486,74,74,385,74,486,74,74,385,74,385,385,385,74,74,74,385,385,385,385,546,74,74,547,547,486,486,74,385,385,385,385,546,74,74,547,547,547,486,486,486,385,74,486,385,385,74,486,385,385,74,486,486,486,74,385,546,74,547,486,546,74,486,385,385,546,385,74,486,486,486,547,385,385,486,486,385,74,486,385,74,547,486,385,74,385,385,385,385,546,74,74,74,547,486,486,486,385,546,74,547,486,385,546,74,547,486,74,385,546,74,547,486,0,0,0,0,553,596,553,553,553,553,553,553,553,553,553,553,596,596,553,553,553,596,596,596,596,596,572,553,553,553,596,553,553,572,572,572,553,553,553,553,553,596,596,596,572,572,572,553,553,553,553,553,553,553,553,553,553,553,553,553,553,562,562,553,553,553,553,553,553,596,596,596,553,553,553,553,553,553,553,596,562,562,562,562,562,553,553,553,553,596,596,553,572,572,572,572,553,596,0,0,556,556,556,554,554,554,554,554,554,554,554,556,554,556,554,556,556,554,554,556,556,556,556,556,554,556,556,554,554,556,556,554,0,556,0,556,556,554,556,554,556,554,556,556,554,0,558,558,558,558,558,558,558,558,558,558,558,558,558,558,0,558,558,558,558,558,558,558,558,0,0,560,560,561,560,561,560,560,561,560,560,560,560,560,561,560,561,560,560,560,561,561,561,561,560,560,561,560,561,560,561,561,560,561,0,0,0,0,562,563,564,565,562,563,564,565,562,563,564,565,563,562,563,564,565,562,563,564,565,562,563,564,563,564,563,563,563,564,564,564,562,563,563,564,565,562,563,564,565,562,563,564,565,565,565,563,563,563,563,563,562,563,564,565,563,563,563,563,562,564,563,563,562,565,563,563,563,565,563,563,563,562,562,562,562,562,562,562,562,563,564,565,563,562,563,564,565,562,563,564,565,562,563,564,565,563,562,563,564,565,569,569,0,0,568,569,568,569,568,568,568,568,569,569,568,569,569,569,568,568,569,568,568,568,569,568,569,569,568,569,568,569,568,569,568,0,0,0,0,0,572,571,573,567,571,572,571,573,567,574,572,571,573,567,574,572,571,573,567,572,571,573,567,567,572,573,567,573,573,573,571,571,571,571,572,572,571,571,573,567,574,572,571,573,567,574,572,571,573,567,572,571,573,567,574,572,572,572,572,572,571,567,571,572,572,567,572,567,572,571,573,567,571,572,571,573,567,574,572,571,573,567,574,572,571,573,567,574,567,571,572,572,572,572,572,571,573,567,574,567,582,582,582,582,582,519,519,582,582,519,582,582,581,582,0,0,0,0,582,582,582,581,0,582,582,582,581,581,582,582,581,582,582,0,581,0,0,0,0,582,0,582,581,519,582,582,582,582,355,580,581,578,519,488,487,577,355,580,581,582,578,579,577,519,488,487,355,580,581,582,578,579,577,519,488,487,577,577,355,580,581,578,519,488,487,355,580,581,578,519,488,487,580,578,578,355,487,355,487,578,488,488,355,355,487,488,355,580,519,488,487,355,355,355,580,580,580,519,519,519,488,488,488,487,487,487,355,355,580,581,582,582,578,579,577,519,488,488,487,487,355,355,355,580,581,582,582,582,582,582,582,578,579,577,519,488,487,488,355,580,581,578,519,488,487,355,488,488,355,0,577,355,580,581,582,578,579,577,519,488,487,580,578,488,577,577,488,580,578,577,488,580,578,355,487,578,577,577,578,579,519,580,578,580,580,578,355,487,0,577,577,582,487,487,355,580,581,578,519,488,487,355,582,488,487,355,580,581,582,578,579,577,519,488,487,355,580,581,582,578,579,577,519,488,487,355,580,581,582,578,579,577,519,488,487,487,488,355,580,581,582,578,579,577,519,488,487,746,747,748,746,748,0,0,0,588,588,588,588,588,588,588,588,588,588,588,588,588,588,588,588,588,588,588,588,588,588,0,0,602,0,602,0,0,592,0,0,0,0,0,592,0,591,596,590,591,598,598,596,600,590,591,596,592,597,599,600,601,598,602,603,590,591,596,592,597,599,600,601,598,602,603,596,596,591,591,601,590,591,596,591,596,590,596,597,598,596,596,596,596,596,590,591,596,592,597,599,600,601,598,602,603,590,591,596,592,597,599,600,601,598,602,603,591,596,596,603,599,603,601,590,591,596,592,597,599,600,601,598,602,603,590,596,599,590,597,596,590,596,596,596,592,592,592,592,592,590,597,590,599,596,596,596,596,603,603,597,603,603,599,591,596,590,591,596,592,597,599,600,601,598,602,603,590,591,596,592,597,599,600,601,598,602,603,590,591,596,592,597,599,600,601,598,602,603,596,596,590,591,596,592,597,599,600,601,598,602,603,596,749,750,749,606,0,606,627,606,627,630,630,630,606,0,0,606,606,630,606,630,630,606,606,606,627,606,0,0,627,0,606,606,606,606,606,626,627,609,606,609,609,606,606,606,606,606,606,606,606,606,609,606,606,606,606,606,606,606,626,627,609,606,629,630,626,627,609,606,629,630,626,627,609,626,627,609,609,609,626,626,609,609,609,609,627,609,627,627,627,609,609,609,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,626,627,609,609,606,629,629,630,630,626,627,609,609,609,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,629,630,626,627,609,626,609,626,627,609,606,629,630,0,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,0,0,0,609,0,0,626,627,609,609,629,630,609,626,627,627,609,606,629,630,626,627,609,606,629,630,626,627,609,606,629,630,626,627,609,606,629,630,0,0,0,0,0,633,632,633,632,0,632,632,633,632,633,632,633,632,632,632,632,632,632,0,632,633,632,633,632,633,632,633,632,0,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,0,0,0,0,0,0,0,0,638,639,636,640,641,638,639,636,640,641,638,639,636,636,640,640,641,641,638,639,636,636,640,640,641,641,0,638,639,636,640,641,0,638,636,640,641,636,640,641,638,639,636,640,641,638,639,636,640,641,638,639,636,640,641,638,638,639,636,640,641,0,0,0,0,647,605,647,649,648,605,647,649,648,0,647,647,648,605,605,647,649,605,647,649,648,605,605,647,647,649,648,647,648,605,647,649,648,605,647,648,605,647,648,649,605,647,648,605,647,648,647,605,647,649,648,605,647,649,648,605,647,648,605,647,649,648,605,647,649,648,0,652,652,0,652,652,652,652,652,652,652,652,652,652,652,652,652,652,0,662,0,662,659,660,0,0,0,0,660,0,664,0,659,0,662,659,664,0,0,0,661,661,0,659,660,661,657,654,655,656,655,659,656,664,662,655,660,661,657,659,656,664,662,655,660,661,657,656,657,661,655,657,659,660,661,657,659,660,661,657,656,662,660,657,660,656,656,655,656,656,655,657,660,660,660,660,659,656,664,662,655,660,661,657,659,656,664,662,662,655,660,661,657,659,660,661,657,656,655,657,655,657,656,659,656,664,662,655,660,661,657,656,661,657,657,657,655,657,751,657,657,656,657,656,752,657,656,656,656,656,660,654,654,657,656,655,661,659,660,661,657,659,656,664,662,655,660,661,657,659,656,664,662,655,660,661,657,659,656,664,662,655,660,661,657,659,656,664,662,655,660,661,657,656,753,753,0,0,0,0,0,0,666,667,666,667,666,667,0,666,667,666,667,666,666,666,666,666,666,667,666,667,666,666,666,667,666,667,666,667,0,0,666,666,666,666,0,0,0,0,0,667,666,667,666,667,666,667,666,667,666,667,666,0,669,669,669,669,669,669,669,669,669,669,669,669,669,669,669,669,670,670,670,670,0,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,0,0,0,0,672,671,671,672,673,674,671,672,673,674,671,672,671,672,671,672,673,674,671,672,673,674,671,672,671,672,672,673,674,671,674,672,674,671,671,674,673,674,674,671,672,672,672,671,672,673,674,671,672,673,674,671,671,672,673,674,671,672,673,674,671,672],"f":"```````````````````{{cb}d{}}0{ce{}{}}00000{ff}{hh}{{ce}d{}{}}0{{ff}j}{{hh}j}{{ce}j{}{}}00000{cl{{Ab{{A`{n}}}}}}{{fAd}{{Ah{dAf}}}}0{{hAd}{{Ah{dAf}}}}0{{AjAd}{{Ah{dAf}}}}0{{cl}d{{Ab{{A`{n}}}}}}4{cc{}}0{AlAj}1{hAj}22>>>`{An{{Ah{{B`{n}}h}}}}{An{{Ah{{B`{n}}Aj}}}}{An{{Ah{{Bb{n}}h}}}}`{Aj{{Bf{Bd}}}}{ce{}{}}0{cl{}}00{c{{Ah{e}}}{}{}}00000{cBh{}}00333````````````````````````{{cb}d{}}44{BjBj}{{ce}d{}{}}{{}Bj}{c{{Ah{Bj}}}Bl}`{{BjBj}j}{{ce}j{}{}}00{{BjAd}{{Ah{dAf}}}}0{cc{}}0{An{{Ah{Bj}}}}`=``{{Bjc}AhBn}>=<<;>````:>>{C`C`}9{c{{Ah{C`}}}Bl}{{C`Ad}{{Ah{dAf}}}}05{CbC`}{CdC`}7{ce{}{}}{{C`c}AhBn}1{cl{}}{c{{Ah{e}}}{}{}}0{cBh{}}4`````````{{cb}d{}}5555{CfCf}{{ce}d{}{}}{An{{Ah{ChCj}}}}{c{{Ah{Cf}}}Bl}{{CfCf}j}{{ce}j{}{}}00{{CfAd}{{Ah{dAf}}}}0{{CjAd}{{Ah{dAf}}}}0{CfCl}{cc{}}{hCj}{CnCj}2{{{A`{n}}}{{Ah{ChCj}}}}{{{A`{n}}}{{Ah{CfCj}}}}4{An{{Ah{Cf}}}}{CfD`}{ce{}{}}0{Cf{{Dd{DbD`Cl}}}}{{DbD`Cl}{{Ah{CfCb}}}}{CfDb}{Cfj}{Chl}{{Cfc}AhBn}{Cj{{Bf{Bd}}}}{Ch{{Bb{n}}}}{Cf{{Bb{n}}}}9{cl{}}0{c{{Ah{e}}}{}{}}000{cBh{}}0<<``````````{{cb}d{}}000{c{{Df{eg}}}{}{}Dh}{D`{{B`{n}}}}{{}}000{D`{{A`{n}}}}{{Djc}Dl{{E`{{A`{n}}}{{Dn{j}}}}}}{ce{}{}}24000{Dl{{A`{n}}}}111111{D`D`}{ClCl}{EbEb}{DlDl}{{ce}d{}{}}000{{D`D`}Ed}{{ClCl}Ed}{{EbEb}Ed}{{DlDl}Ed}{{{A`{n}}{A`{n}}}Ed}{{ce}Ed{}{}}00011{{}Cl}{c{{Ah{D`}}}Bl}{c{{Ah{Cl}}}Bl}{c{{Ah{Eb}}}Bl}{c{{Ah{Dl}}}Bl}`{Efd}{ce{}{{Ej{Eh}}}}0{{D`D`}j}{{ClCl}j}{{EbEb}j}{{DlDl}j}{{ce}j{}{}}00000000000`{{}{{Bf{El}}}}000{{D`Ad}{{Ah{dAf}}}}0{{ClAd}{{Ah{dAf}}}}0{{EbAd}{{Ah{dAf}}}}0{{DlAd}{{Ah{dAf}}}}0{{EfAd}{{Ah{dAf}}}}{D`l}`{EfCl}`{cc{}}{EnD`}{{{B`{n}}}D`}0{F`D`}33{FbEb}{FdEb}5{FfDl}{lDl}{AnDl}86{{{A`{n}}}}0009999{An{{Ah{D`}}}}{An{{Ah{Eb}}}}`{{D`c}dFh}{{Clc}dFh}{{Ebc}dFh}{EfD`}`{D`Eb}`{EfEb}{ce{}{}}0000{Clj}0{Efd}`{cD`{{Ab{{A`{n}}}}}}{{D`Cl}Eb}{{Eb{Bf{{Fl{Fj}}}}}Ef}{{D`D`}{{Bf{Ed}}}}{{ClCl}{{Bf{Ed}}}}{{EbEb}{{Bf{Ed}}}}{{DlDl}{{Bf{Ed}}}}``;{{D`c}AhBn}{{Clc}AhBn}{{Ebc}AhBn}{{Dlc}AhBn}`{D`l}>>>>{cl{}}000{c{{Ah{{Df{eg}}{Fn{e}}}}}{}{}Dh}{c{{Ah{e}}}{}{}}000000000{cBh{}}0000{{}G`}00{{}Gb}`{ce{}{}}0000`````````````````````{{cb}d{}}0000111111111111111111{{GdGf}d}{GhGh}{GjGj}{FbFb}{GlGl}{GdGd}{{ce}d{}{}}0000{{GhGh}Ed}{{ce}Ed{}{}}{{}Gn}{{}H`}{{GhGh}j}{{FbFb}j}{{ce}j{}{}}00000{{GhAd}{{Ah{dAf}}}}0{{HbAd}{{Ah{dAf}}}}{{GnAd}{{Ah{dAf}}}}{{H`Ad}{{Ah{dAf}}}}{{GjAd}{{Ah{dAf}}}}{{FbAd}{{Ah{dAf}}}}0{{GlAd}{{Ah{dAf}}}}0{{GfAd}{{Ah{dAf}}}}{{GdAd}{{Ah{dAf}}}}{FbCl}{cc{}}0{HdHb}111{EbFb}222222222{{{Hh{}{{Hf{c}}}}FbcHj}{{I`{{Hn{Hl}}}}}{}}{{Ghc}dFh}{FbD`}{{Fbc}dFh}{FbEb}`{ce{}{}}00000000{c{}{}}{{{Ib{}{{Hf{c}}}}Id}jIf}{{ce}{{Ih{g}}}{}IjHl}`````{{cg}Gj{{Il{Fb}}}{{Il{Db}}}{{J`{}{{In{e}}}}}}{{cJbJd}GdJf}{{GdD`{Bb{Id}}}d}{{GhGh}{{Bf{Ed}}}}{{{Ib{}{{Hf{c}}}}}ElIf}{{{I`{Gf}}Jh}Jj}{{Gj{Jn{Jl}}}Gj}{{GdGj}Gf}{{{Ib{}{{Hf{c}}}}Id}dIf}{{cg}{{K`{ei}}}{}{}{{Ij{}{{Dn{e}}}}}{{Hl{}{{Dn{e}}}}}}====={cl{}}00{c{{Ah{e}}}{}{}}00000000000000000{{{I`{c}}Jh}Jj{}}{cBh{}}00000000{ce{}{}}00000000{{cJbJdGnH`}GdJf}``````{{cb}d{}}22{KbKb}{{ce}d{}{}}{c{{Ah{Kb}}}Bl}{{cD`KdKfKhe}{{Ah{dCb}}}Jf{{Kl{}{{Kj{Kb}}}}Kn}}{{cD`KdKhe}{{Ah{dCb}}}Jf{{Kl{}{{Kj{Kb}}}}Kn}}0{{KbAd}{{Ah{dAf}}}}{cc{}}09{{Kbc}AhBn}:==;:````````````8::{L`L`}7{{}L`}{c{{Ah{L`}}}Bl}{{L`L`}j}{{L`g}d{{Il{l}}}{{Il{D`}}}{{J`{}{{In{{Dd{ce}}}}}}}}{{L`Ad}{{Ah{dAf}}}}7{gL`{{Il{l}}}{{Il{D`}}}{{J`{}{{In{{Dd{ce}}}}}}}}8{{L`El}}{ce{}{}}{L`}{L`j}{L`{{`{{Lb{}{{In{{Dd{lD`}}}}}}}}}}{L`El}{{LdD`}{{`{{Hl{}{{Dn{{Ah{FfCb}}}}}}Lf}}}}{{D`c}{{Ah{L`Cb}}}Ld}{{cD`}{{Ah{L`Cb}}}Lh}{{L`lD`}d}{Lj{{Ah{{Dd{LlLnL`}}Cb}}}}{Lj{{Ah{{Dd{L`{Mb{M`Ff}}Md}}Cb}}}}{{L`c}AhBn}{{L`c}{{Ah{EfCb}}}Jf}{L`{{`{Mf}}}}={c{{Ah{e}}}{}{}}0{cBh{}}?```````{{cb}d{}}{ce{}{}}000``{MdMd}{{ce}d{}{}}`{{}Md}{c{{Ah{Md}}}Bl}`{{MdMd}j}{{ce}j{}{}}00`{{MdAd}{{Ah{dAf}}}}{{MhAd}{{Ah{dAf}}}}0{cc{}}{CnMh}{MjMh}{MlMh}3{MnMh}{CbMh}{N`Mh}6`??{MdNb}``{{Mdc}AhBn}{Mh{{Bf{Bd}}}}{ce{}{}}{cl{}}{c{{Ah{e}}}{}{}}000{cBh{}}033`````````````````{{cb}d{}}00{{cD`}{{Ah{{Nd{c}}Cd}}}Jf}555555{{{Nd{c}}}{{Nd{c}}}{IfJf}}{JlJl}{NfNf}{{ce}d{}{}}00{{NfNf}Ed}{{ce}Ed{}{}}{c{{Ah{Jl}}}Bl}{c{{Ah{Nf}}}Bl}{{NfNf}j}{{ce}j{}{}}00{{{Nd{c}}Ad}{{Ah{dAf}}}{NhJf}}{{JlAd}{{Ah{dAf}}}}{{NfAd}{{Ah{dAf}}}}{cc{}}00000{{cgEbi}{{Ah{MdHd}}}Jf{{Hl{}{{Dn{{Ah{NjCb}}}}}}}{{Nl{}{{Dn{e}}}}}{{Kl{}{{Kj{Jl}}}}Kn}}{{Nfc}dFh}{ce{}{}}00{{{Nd{c}}}{{O`{{B`{Nn}}}}}Jf}{{NfNf}{{Bf{Ed}}}}{{Jlc}AhBn}{{Nfc}AhBn}{{{Nd{c}}}{{Bf{Ob}}}Jf}555{c{{Ah{e}}}{}{}}00000{cBh{}}00{{}{{Ah{{O`{{B`{Nn}}}}Cb}}}}7888```````````````````````88{{HdAd}{{Ah{dAf}}}}0{OdHd}{MjHd}>{N`Hd}{OfHd}{OhHd}{OjHd}{CdHd}{MnHd}{ce{}{}}{Hd{{Bf{Bd}}}}{cl{}}>>=2```````````````````````````````````2222222222222222222222222222{OlM`}{On{{Ah{{Dd{A@`{Bb{n}}}}Of}}}}{A@b{{Ah{{Dd{A@`{Bb{n}}}}Of}}}}{On{{Ah{A@`Of}}}}{A@b{{Ah{A@`Of}}}}{LjA@d}{OlA@d}{A@bA@d}{{A@fAd}{{Ah{dAf}}}}{{A@hAd}{{Ah{dAf}}}}{{A@jAd}{{Ah{dAf}}}}{{OdAd}{{Ah{dAf}}}}0{{LjAd}{{Ah{dAf}}}}{{OlAd}{{Ah{dAf}}}}{{OnAd}{{Ah{dAf}}}}{{OhAd}{{Ah{dAf}}}}0{{A@bAd}{{Ah{dAf}}}}{{OfAd}{{Ah{dAf}}}}0{{A@lAd}{{Ah{dAf}}}}{{A@`Ad}{{Ah{dAf}}}}{{LlAd}{{Ah{dAf}}}}{{A@dAd}{{Ah{dAf}}}}{cc{}}0{OlA@j}1{LjA@j}{A@dA@j}3{MjOd}44444{OhOf}{CdOf}6{MlOf}7{{{Dd{A@b{Ah{A@nOf}}}}}A@l}{A@`A@l}99{OlLl}{A@dLl};{LjD`}{OnD`}{A@bD`}{ce{}{}}0000000000000{{NjAA`}A@f}{A@f{{Ah{A@hMn}}}}{A@h{{Ah{A@jOd}}}}{LjOn}{{OlD`}On}{On{{Ah{{Dd{A@bM`}}Oh}}}}{A@bA@l}{A@`Ll}{A@d{{Ah{MdN`}}}}{OnM`}{A@bM`}{Lj{{O`{{B`{Nn}}}}}}{Ol{{O`{{B`{Nn}}}}}}{On{{O`{{B`{Nn}}}}}}{Od{{Bf{Bd}}}}{Of{{Bf{Bd}}}}?{cl{}}00{A@bAAb}{c{{Ah{e}}}{}{}}000000000000000000000000000{cBh{}}0000000000000{ce{}{}}0000000000000{{Onc}{{Ah{A@`Of}}}AAd}{{A@bc}{{Ah{A@`Of}}}AAd}{{Onc}{{Ah{A@`Of}}}AAf}{{A@bc}{{Ah{A@`Of}}}AAf}{{On{Bf{c}}e}{{Ah{A@`Of}}}AAhAAd}{{A@b{Bf{c}}e}{{Ah{A@`Of}}}AAhAAd}```````{{cb}d{}}00777777``{AAjAAj}{AAlAAl}{AAnAAn}{{ce}d{}{}}00``{{}AAn}{c{{Ah{AAj}}}Bl}{c{{Ah{AAl}}}Bl}{c{{Ah{AAn}}}Bl}{{AAjAAj}j}{{AAlAAl}j}{{AAnAAn}j}{{ce}j{}{}}00000000{{AAjAd}{{Ah{dAf}}}}{{AAlAd}{{Ah{dAf}}}}{{AAnAd}{{Ah{dAf}}}}{cc{}}00000{{AAjNf}{{Bf{AAl}}}}{AAj{{Bf{AAl}}}}`{ce{}{}}00`{D`AAj}{D`AAl}{{AAjJl}d}``{AAjAAl}`{{AAjc}AhBn}{{AAlc}AhBn}{{AAnc}AhBn}`777{c{{Ah{e}}}{}{}}00000{cBh{}}00999{{NjD`Nn}{{Ah{MdCb}}}}{{NjD`M`}{{Ah{{Dd{Ln{AB`{{A`{M`}}}}}}Cb}}}}{{NjD`}{{Ah{{Dd{M`Md}}Cb}}}}0{{{A`{M`}}c}ABbABd}```{{cb}d{}}00>>>>>>{LnLn}{ABfABf}{ABhABh}{{ce}d{}{}}00{{LnAd}{{Ah{dAf}}}}{{ABfAd}{{Ah{dAf}}}}{{ABhAd}{{Ah{dAf}}}}{cc{}}00{cLn{{J`{}{{In{D`}}}}}}111{{LnEl}{{Bf{D`}}}}{ce{}{}}00{c{{ABj{g}}}{}{}{{Lb{}{{In{e}}}}}}{LnFf}{Ln}3{Lnj}{Ln{{`{{Lb{}{{In{D`}}}}}}}}{LnEl}{Ff{{Bf{Ln}}}}{ABf{{Ah{{Bf{D`}}Cd}}}}{ABhBf}{c{{Ah{{Dd{ABfM`}}Cb}}}ABl}{Ln{{Bf{D`}}}}{{ABfM`}{{Ah{dCd}}}}<<<{c{{ABn{i}}}{}{}{}{{Lb{}{{In{{Ah{eg}}}}}}}}{Ff{{Ah{Ln}}}}{c{{Ah{e}}}{}{}}00000{cBh{}}00{ce{}{}}00`{{cb}d{}}11{AC`AC`}{{ce}d{}{}}{{}AC`}````````````{{AC`Ad}{{Ah{dAf}}}}{cc{}}06{AC`{{ACd{{Dd{AnACb}}}}}}{{}An}8::98``````````````77777{{}ACf}{{}ABb}{D`AA`}{ABb{{Bf{{Dd{M`ACf}}}}}}<<<<<<<<<<<<<<{ACfACf}{ABbABb}{AChACh}{AA`AA`}{ACjACj}>>>>>{c{{Ah{ACf}}}Bl}{c{{Ah{ABb}}}Bl}{c{{Ah{ACh}}}Bl}{c{{Ah{AA`}}}Bl};{{ACfACf}j}{{ABbABb}j}{{AChACh}j}{{AA`AA`}j}{{ACjACj}j}{{ce}j{}{}}00000000000000{{ACfAd}{{Ah{dAf}}}}{{ABbAd}{{Ah{dAf}}}}{{AClAd}{{Ah{dAf}}}}{{AChAd}{{Ah{dAf}}}}{{AA`Ad}{{Ah{dAf}}}}{{ACjAd}{{Ah{dAf}}}}{{ACnAd}{{Ah{dAf}}}}0{cc{}}00{AA`ACh}1111{eABb{{Ab{{AD`{Nn}}}}}{{J`{}{{In{c}}}}}}022222{{ACfc}dFh}{{ABbc}dFh}{{ACjc}dFh}`{ce{}{}}000000{c{{ABj{g}}}{}{}{{Lb{}{{In{e}}}}}}1{ACfj}0{ABbADb}{ABbACl}{D`AA`}0{cACf{{Ab{{AD`{Nn}}}}}}{cABb{{J`{}{{In{ACf}}}}}}{{D`ABb}AA`}{AClBf}`{ACj{{A`{n}}}}{{ACfc}AhBn}{{ABbc}AhBn}{{AChc}AhBn}{{AA`c}AhBn}9{ACf{{O`{{B`{Nn}}}}}}?????{cl{}}{c{{ABn{i}}}{}{}{}{{Lb{}{{In{{Ah{eg}}}}}}}}{c{{Ah{e}}}{}{}}0000{ADd{{Ah{ACj}}}}111111111{cBh{}}000000{ce{}{}}000000`````````````````````{{cb}d{}}001111111111{ADfADf}{ADhADh}{ADjADj}{{ce}d{}{}}00{{}ADh}{c{{Ah{ADl}}}Bl}`{{ADjADj}j}{{ce}j{}{}}00{{ADfAd}{{Ah{dAf}}}}{{ADhAd}{{Ah{dAf}}}}{{ADlAd}{{Ah{dAf}}}}{{{ADn{c}}Ad}{{Ah{dAf}}}Nh}{{ADjAd}{{Ah{dAf}}}}{cc{}}0000000{{NjceJd}dLhAE`}{{cAA`{ADn{e}}}{{Ah{dCb}}}LhAE`}{ce{}{}}0000`{AEb{{Ah{AChCb}}}}{{AE`ADf}{{I`{{Hn{Hl}}}}}}`{{cD`ACfe}{{Ah{{Dd{ADjM`AEd}}Cb}}}LhAEf}{{ADlc}AhBn}444{{AA`c{ADn{e}}giADh}{{Ah{ADjCb}}}LhAE`AEhABl}{c{{Ah{e}}}{}{}}000000000{cBh{}}000077777``````````````````````````````````````````````````````````````````````````````````````````````````````{{cb}d{}}000000{AEj{{`{{Hl{}{{Dn{{Ah{{`{AAf}}Cd}}}}}}Lf}}}}{AEl{{`{{Hl{}{{Dn{{Ah{{Hn{Lb}}Cd}}}}}}Lf}}}}::::::::::::::::::::::::::{AEnAEn}{ObOb}{AF`AF`}{KhKh}{KfKf}{AFbAFb}{AFdAFd}{{ce}d{}{}}000000{{AFbAFb}Ed}{{ce}Ed{}{}}{{AElj{AFh{AFf}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}}{{JfEb}{{`{{Hl{}{{Dn{{Ah{DlCd}}}}}}Lf}}}}{AFj{{`{{Hl{}{{Dn{{Ah{{`{ABl}}Cd}}}}}}Lf}}}}{{}AF`}{{}Kh}{{}Kf}{{Jf{Bb{D`}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}}{c{{Ah{Ob}}}Bl}{c{{Ah{Kh}}}Bl}{c{{Ah{Kf}}}Bl}{c{{Ah{AFb}}}Bl}{c{{Ah{AFf}}}Bl}{c{{Ah{AFl}}}Bl}{{{AG`{}{{AFn{c}}}}D`}{{`{{Hl{}{{Dn{{Ah{AEnCd}}}}}}Lf}}}AEj}{{{AG`{}{{AFn{c}}}}D`}{{Ah{AEnCd}}}AEj}{{AEnAEn}j}{{ObOb}j}{{AF`AF`}j}{{KhKh}j}{{AFbAFb}j}{{AFdAFd}j}{{ce}j{}{}}00000000000000000{{AElD`KdKh{Hn{E`}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}}{{AEnAd}{{Ah{dAf}}}}{{ObAd}{{Ah{dAf}}}}{{AGbAd}{{Ah{dAf}}}}{{AGdAd}{{Ah{dAf}}}}{{AGfAd}{{Ah{dAf}}}}{{AF`Ad}{{Ah{dAf}}}}{{KhAd}{{Ah{dAf}}}}{{KfAd}{{Ah{dAf}}}}{{AGhAd}{{Ah{dAf}}}}{{AFbAd}{{Ah{dAf}}}}0{{AFfAd}{{Ah{dAf}}}}{{AFlAd}{{Ah{dAf}}}}{{AFdAd}{{Ah{dAf}}}}{cc{}}0000000000000000000`{{Jf{AGj{D`}}}{{`{{AGl{}{{In{AGb}}}}AGn}}}}{Jf{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}}{{Jf{AGj{D`}}}{{`{{AGl{}{{In{AGd}}}}AGn}}}}{{{Lh{}{{AH`{c}}}}D`}{{`{{Hl{}{{Dn{{Ah{{Bf{c}}Cd}}}}}}Lf}}}AFj}{{{AG`{}{{AFn{c}}}}D`}{{`{{Hl{}{{Dn{{Ah{{Bf{c}}Cd}}}}}}Lf}}}AEj}{{{AG`{}{{AFn{c}}}}D`M`}{{`{{Hl{}{{Dn{{Ah{cCd}}}}}}Lf}}}AEj}{AFjD`}{{JfFfCl}{{`{{Hl{}{{Dn{{Ah{EfCd}}}}}}Lf}}}}{{JfKdAF`Clc}{{`{{Hl{}{{Dn{{Ah{{Dd{EfM`}}Cd}}}}}}Lf}}}{{Kl{}{{Kj{AGf}}}}Kn}}{{JfcCle}{{`{{Hl{}{{Dn{{Ah{{Dd{EfM`}}Cd}}}}}}Lf}}}{AHbLfAGn}{{Kl{}{{Kj{AGf}}}}Kn}}{{JfcCle}{{`{{Hl{}{{Dn{{Ah{{Dd{EfM`}}Cd}}}}}}Lf}}}{{AGl{}{{In{{Ah{FfCd}}}}}}LfAGn}{{Kl{}{{Kj{AGf}}}}Kn}}{{{AG`{}{{AFn{c}}}}c}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}AEj}{ce{}{}}000000000000{AFjj}`{{M`j}Ob}{AFj{{`{{Hl{}{{Dn{{Ah{{`{AEh}}Cd}}}}}}Lf}}}}{AEl{{`{{Hl{}{{Dn{{Ah{{Hn{Lb}}Cd}}}}}}Lf}}}}{{AFbAFb}{{Bf{Ed}}}}`{{Obc}AhBn}{{Khc}AhBn}{{Kfc}AhBn}{{AFbc}AhBn}{{AFfc}AhBn}{{AFlc}AhBn}{{JfDl{Bf{Eb}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}}{Jf{{`{{Hl{}{{Dn{d}}}}Lf}}}}{AFjOb}{AAf{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}};{{JfEb}Ef}{AEl{{Hn{Lb}}}}{ce{}{}}000000{cl{}}{c{{Ah{e}}}{}{}}0000000000000000000000000{cBh{}}000000000000{{Jfj{AFh{AFl}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}}{ObM`}5555555555555{{AAfM`{Bb{A@n}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}````````````````````````````````````````````````{{cb}d{}}0000{{NnNn}}{{NnM`}}{{AHdn}{{Bf{AHd}}}}{AAbAHf}{AAbM`}<<<<<<<<<<{AHfEl}{AHfn}{AHd{{AHh{Nn}}}}{M`Nn}{AAbNn}{NnNn}{AHfAHf}{AAbAAb}{AHjAHj}{AHdAHd}{{ce}d{}{}}0000{{NnNn}Ed}{{AHfAHf}Ed}{{AHdAHd}Ed}{{ce}Ed{}{}}00{AHdM`}{{}Nn}{{NnM`}}{{NnM`}j}{{NnNn}j}{{AHfAHf}j}{{AAbAAb}j}{{AHdAHd}j}{{ce}j{}{}}00000000000{{NnAd}{{Ah{dAf}}}}0{{AHfAd}{{Ah{dAf}}}}0{{AAbAd}{{Ah{dAf}}}}{{AHjAd}{{Ah{dAf}}}}{{AHdAd}{{Ah{dAf}}}}0{cc{}}0000{M`{{Bf{AHf}}}}{nAHf}22222{M`Nn}{{Nnc}dFh}{{AHfc}dFh}{ce{}{}}0000`{AHdj}{Nnj}`{AHd{{Bf{AHd}}}}{AHdAHl}{AHdNn}{{}Nn}{{NnM`}}{{M`AHf}AAb}5{AHd{{AHh{AHd}}}}{AAbM`}7{{NnNn}{{Bf{Ed}}}}{{NnM`}{{Bf{Ed}}}}{{AHfAHf}{{Bf{Ed}}}}{{AHdAHd}{{Bf{Ed}}}}{AAbAHn}{AAb{{`{{Lb{}{{In{AHd}}}}}}}}{{AAbAHd}{{Bf{AHj}}}}{AHdM`}{AHd{{AHh{M`}}}}3{{AAbAHd}{{Bf{M`}}}}{{AAb{AD`{Nn}}n}AI`}{{AHdAHd}{{Bf{AHd}}}}{AHd{{Bf{AHd}}}}{AHdAHl}{AAbAHd}?{{NnNn}}{{NnM`}}{{AHdn}AHd}{NnM`}{ce{}{}}0000{cl{}}00{NnEl}{c{{Ah{e}}}{}{}}000000000{cBh{}}0000{AHjM`}55555``````{{cb}d{}}000{En{{B`{n}}}}77777777{EnEn}{AIbAIb}{AIdAId}{AIfAIf}{{ce}d{}{}}000{AIdM`}{{}AId}{{An{A`{n}}}{{B`{n}}}}{{EnEn}j}{{En{B`{n}}}j}{{En{A`{n}}}j}{{ce}j{}{}}00{{AIf{A`{n}}}d}{AIdEn}{AIdAIf}{AId{{Ah{dCd}}}}{{EnAd}{{Ah{dAf}}}}0{{AIbAd}{{Ah{dAf}}}}0{{AIdAd}{{Ah{dAf}}}}{{AIfAd}{{Ah{dAf}}}}{cc{}}{{{B`{n}}}En}{D`En}2221{c{{Ah{EnAIb}}}{{Ab{{A`{n}}}}}}3333{An{{Ah{En}}}}{{{A`{n}}}En}{{Enc}dFh}{ce{}{}}000{{{B`{n}}{A`{n}}}En}{{}AId}{AnAId}{{{B`{n}}}AId}{AIfM`}{{AIf{A`{n}}}{{Ah{ElCd}}}}{AIdAId}{{AIfAIh}{{Ah{M`Cd}}}}{{AIfM`}d}{EnAIj}::::{cl{}}0{c{{Ah{e}}}{}{}}0000000{cBh{}}000{{AId{A`{n}}}AId}>>>>{{AId{A`{n}}}{{Ah{ElCd}}}}``````````````````??????????`{{MlAd}{{Ah{dAf}}}}0{{AIlAd}{{Ah{dAf}}}}0{{AInAd}{{Ah{dAf}}}}{{AJ`Ad}{{Ah{dAf}}}}{{A@nAd}{{Ah{dAf}}}}{CdMl}{cc{}}0{CdAIl}111{AJ`A@n}{AInA@n}`{{{O`{{B`{Nn}}}}AHf}{{O`{{B`{Nn}}}}}}{ce{}{}}0000````{{{AD`{M`}}}{{O`{{B`{Nn}}}}}}{Ml{{Bf{Bd}}}}{AIl{{Bf{Bd}}}}`{cl{}}0{c{{Ah{e}}}{}{}}000000000{cBh{}}000066666````````````6666{{ce}{{Ah{dCd}}}AEhAAh}{{cAHf}{{Ah{AJbCd}}}ABl}{{cM`AHf}{{`{{Hl{}{{Dn{{Ah{AJbCd}}}}}}}}}AJd}{{c{O`{{B`{Nn}}}}eg}{{Ah{dMl}}}AJdAAd{AAhAEh}}{{ce{AD`{Nn}}g}{{Ah{dAIl}}}ABlAEhAEf}0{{{AJf{c}}}cAJd}{{{AJf{c}}Ad}{{Ah{dAf}}}Nh}{{{AJh{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}0{{{AJf{c}}}EnAJd}{{AJbc}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}AJd}{ce{}{}}0{{AEhAHd}{{`{{Hl{}{{Dn{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}}}}}}}}{{En{O`{{B`{Nn}}}}AAbc}{{AJf{c}}}AJd}{{{AJf{c}}}{{AJh{c}}}AJd}{{cAAbe}{{Ah{EnCd}}}AJdAAh}{{cAAbe}{{Ah{EnCd}}}AJdAEf}{{ABlM`El}{{`{{Hl{}{{Dn{{Ah{FfCd}}}}}}}}}}{AEhEn}{{AAhAHd{Dd{EnEn}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}{{AAdM`}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}{ABl{{`{{Hl{}{{Dn{{Ah{M`Cd}}}}}}}}}}{AAd{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}{AAh{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}{AEhAAb}{{{AJf{c}}}AAbAJd}{c{{Ah{e}}}{}{}}000{cBh{}}0{{c{AD`{Nn}}}{{`{{AGl{}{{In{{Ah{{AHh{Nn}}Cd}}}}}}}}}AEh}{{ce{AD`{Nn}}}{{`{{AGl{}{{In{{Ah{{AHh{Nn}}Cd}}}}}}}}}AEhABl}{ce{}{}}0{{AAdM`{A`{n}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}{{AAdM`Ff}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}`````{{cb}d{}}0003333333333{{{AJj{c}}}{{AJj{c}}}If}{{{AJl{c}}}{{AJl{c}}}If}{{{AJn{c}}}{{AJn{c}}}If}{{{AK`{c}}}{{AK`{c}}}If}{{ce}d{}{}}000{{cAHf}AJn{{Ab{{A`{n}}}}}}{{cAHf}AK`{{Ab{{A`{n}}}}}}{{cM`AHf}{{Ah{{AJj{e}}Cd}}}AJdAAd}{{cM`AHf}{{Ah{{AJj{e}}Cd}}}AKbAKd}{{cM`AHf}{{Ah{{AJl{e}}Cd}}}AKbAKd}{{cM`AHf}{{Ah{{AJl{e}}Cd}}}AJdAAd}````{{}{{AJj{c}}}AKf}{{}{{AJl{c}}}AKf}{{}{{AJn{c}}}AKf}{{}{{AK`{c}}}AKf}{{{AJn{c}}{AJn{c}}}jAKh}{{{AK`{c}}{AK`{c}}}jAKh}{{ce}j{}{}}00000{{{AJn{c}}}AK`{{Ab{{A`{n}}}}}}{{{AK`{c}}}AJn{{Ab{{A`{n}}}}}}{{AKjAd}{{Ah{dAf}}}}{{{AJj{c}}Ad}{{Ah{dAf}}}Nh}{{{AJl{c}}Ad}{{Ah{dAf}}}Nh}{{{AJn{c}}Ad}{{Ah{dAf}}}Nh}{{{AK`{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}00000000{{{AJj{c}}e}{{Ah{dCd}}}AKdAKb}{{{AJj{c}}e}{{Ah{dCd}}}AAdAJd}{{{AJl{c}}e}{{Ah{dCd}}}AKdAKb}{{{AJl{c}}e}{{Ah{dCd}}}AAdAJd}{ce{}{}}0000{AK`{{Bb{n}}}}{AJn{{Bb{n}}}}{{AKjAHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}}0{{{AJj{c}}AHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}AKl}{{{AJj{c}}AHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}ABl}{{{AJl{c}}AHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}ABl}{{{AJl{c}}AHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}AKl}{{{AJn{c}}AHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}{{Ab{{A`{n}}}}}}0{{{AK`{c}}AHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}{{Ab{{A`{n}}}}}}0{{{AJn{c}}g}{{AJn{e}}}{}{{Ab{{A`{n}}}}}{{Nl{c}{{Dn{e}}}}}}{{{AK`{c}}g}{{AK`{e}}}{}{{Ab{{A`{n}}}}}{{Nl{c}{{Dn{e}}}}}}{AKjEn}0{{{AJj{c}}}EnABl}{{{AJj{c}}}EnAKl}{{{AJl{c}}}EnABl}{{{AJl{c}}}EnAKl}{{{AJn{c}}}En{{Ab{{A`{n}}}}}}0{{{AK`{c}}}En{{Ab{{A`{n}}}}}}0`````{{AKjAHd{Dd{EnEn}}}{{Ah{dCd}}}}0{{{AJj{c}}AHd{Dd{EnEn}}}{{Ah{dCd}}}AKd}{{{AJj{c}}AHd{Dd{EnEn}}}{{Ah{dCd}}}AAd}{{{AJl{c}}AHd{Dd{EnEn}}}{{Ah{dCd}}}AAd}{{{AJl{c}}AHd{Dd{EnEn}}}{{Ah{dCd}}}AKd}{{{AJn{c}}AHd{Dd{EnEn}}}{{Ah{dCd}}}{{AKn{{A`{n}}}}}}0{{{AK`{c}}AHd{Dd{EnEn}}}{{Ah{dCd}}}{{AKn{{A`{n}}}}}}0{AKj{{Ah{dCd}}}}0{{{AJj{c}}}{{Ah{dCd}}}AKd}{{{AJj{c}}}{{Ah{dCd}}}AAd}{{{AJl{c}}}{{Ah{dCd}}}AKd}{{{AJl{c}}}{{Ah{dCd}}}AAd}{{{AJn{c}}}{{Ah{dCd}}}{{AKn{{A`{n}}}}}}0{{{AK`{c}}}{{Ah{dCd}}}{{AKn{{A`{n}}}}}}0{ce{}{}}000{AKjAAb}0{{{AJj{c}}}AAbABl}{{{AJj{c}}}AAbAKl}{{{AJl{c}}}AAbABl}{{{AJl{c}}}AAbAKl}{{{AJn{c}}}AAb{{Ab{{A`{n}}}}}}0{{{AK`{c}}}AAb{{Ab{{A`{n}}}}}}0`````{c{{Ah{e}}}{}{}}000000000{cBh{}}000099999```````99{{{AL`{c}}}{{A`{n}}}AKb}{{ce}{{Ah{dCd}}}ALbALd}{{cAHf}{{Ah{ALfCd}}}{AKbALh}}{{cM`AHf}{{Ah{ALfCd}}}AKb}{{c{AD`{Nn}}eg}{{Ah{dMl}}}AKbAKd{ALdALb}}{{ce{AD`{Nn}}g}{{Ah{dAIl}}}{AKlALj}ALbALl}0{AKd{{Ah{dCd}}}}{{{AL`{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}{{ALfc}{{Ah{dCd}}}AKb}{ce{}{}}{c{{ABj{g}}}{}{}{{Lb{}{{In{e}}}}}}1{{ALbAHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}}{{EnAAbc{AD`{Nn}}}{{AL`{c}}}AKb}{{EnAAbc{AD`{Nn}}ALn}{{AL`{c}}}AKb}{{{AL`{c}}}BfAKb}{{cAAbe}{{Ah{EnCd}}}AKbALd}{{cAAbe}{{Ah{EnCd}}}AKbALl}{{AKlM`{A`{n}}}{{Ah{ElCd}}}}{{AKlM`{A`{n}}}{{Ah{dCd}}}}{ALbEn}{{ALdAHd{Dd{EnEn}}}{{Ah{dCd}}}}{ALj{{Ah{{Bf{M`}}Cd}}}}{ALd{{Ah{dCd}}}}{c{{ABn{i}}}{}{}{}{{Lb{}{{In{{Ah{eg}}}}}}}}{ALbAAb}{{{AL`{c}}}AAbAKb}{c{{Ah{e}}}{}{}}0{cBh{}}{{c{AD`{Nn}}}{{`{{J`{}{{In{{Ah{{AHh{Nn}}Cd}}}}}}}}}ALb}{{ce{AD`{Nn}}}{{`{{J`{}{{In{{Ah{{AHh{Nn}}Cd}}}}}}}}}ALbAKl}{ce{}{}}{{AKdM`{A`{n}}}{{Ah{dCd}}}}{{AKdM`{A`{n}}}{{Ah{ElCd}}}}`````````{{cb}d{}}33333333333333{{{AM`{c}}}{{AM`{c}}}If}{{ce}d{}{}}{{}{{AM`{c}}}AKf}{{{AM`{c}}{AM`{c}}}jAKh}{{ce}j{}{}}00{{AMbAd}{{Ah{dAf}}}}{{AMdAd}{{Ah{dAf}}}}{{AMfAd}{{Ah{dAf}}}}{{{AM`{c}}Ad}{{Ah{dAf}}}Nh}{{AHnAd}{{Ah{dAf}}}}{{AI`Ad}{{Ah{dAf}}}}{{AMhAd}{{Ah{dAf}}}}{cc{}}0000000{ce{}{}}000000{c{{ABj{g}}}{}{}{{Lb{}{{In{e}}}}}}00000111111{AI`n}{{AAb{O`{{B`{Nn}}}}}AMb}{{AHdAHd}AMd}{{AHdAHd}AMf}{AAbAHn}{{AAb{AD`{Nn}}n}AI`}{{AAb{AD`{Nn}}}AMh}{AMbBf}{AMdBf}{AMfBf}{AHnBf}{AI`Bf}{AMhBf}{AM`El}?{c{{ABn{i}}}{}{}{}{{Lb{}{{In{{Ah{eg}}}}}}}}00000{AMbAAb}{AI`AAb}{AMhAAb}{c{{Ah{e}}}{}{}}0000000000000{cBh{}}000000{ce{}{}}000000{{{AM`{c}}}AM`{}}``````````````````{{cb}d{}}0000`{AMj{{Ah{{Hn{Lb}}Cd}}}}333333333333{AMlAMl}{AMnAMn}{AN`AN`}{ANbANb}{AMjAMj}{{ce}d{}{}}0000`{{AMjj{AFh{AFf}}}{{Ah{dCd}}}}{{AMjEb}{{Ah{DlCd}}}}`{{}AMl}{{}AN`}{{AMj{Bb{D`}}}{{Ah{dCd}}}}{AMj{{Ah{dCd}}}}{{AMjD`}{{Ah{AEnCd}}}}0{{AMjD`KdKh{Hn{E`}}}{{Ah{dCd}}}}{{AMlAd}{{Ah{dAf}}}}{{AMnAd}{{Ah{dAf}}}}{{AN`Ad}{{Ah{dAf}}}}{{ANbAd}{{Ah{dAf}}}}{{ANdAd}{{Ah{dAf}}}}{{AMjAd}{{Ah{dAf}}}}{cc{}}00000000009{{AMjD`}{{Ah{BfCd}}}}0{{AMjD`M`}{{Ah{Cd}}}}{{AMjFfCl}{{Ah{EfCd}}}}{{AMjKdAF`Clc}{{Ah{{Dd{EfM`}}Cd}}}{{Kl{}{{Kj{AGf}}}}Kn}}{{AMjANd}{{Ah{jCd}}}}{{AMjcCle}{{Ah{{Dd{EfM`}}Cd}}}{{AGl{}{{In{{Ah{FfCd}}}}}}AGnLf}{{Kl{}{{Kj{AGf}}}}Kn}}`?{ce{}{}}00000{c{{Ah{AMjCd}}}{{Ab{ANf}}}}```````{{KdANb}{{Ah{AMjCd}}}}{{AMjD`}Kd}0`{AMj{{Ah{{Hn{Lb}}Cd}}}}`{{AMjDl{Bf{Eb}}}{{Ah{dCd}}}}{AMjd}{AMj{{Ah{dCd}}}}3`{{AMjEb}Ef}{AMj{{Hn{Lb}}}}99999{{AMjc}{{Ah{dCd}}}{{E`{D`ANh}{{Dn{{Bf{ANh}}}}}}LfANj}}{c{{Ah{e}}}{}{}}00000000000{cBh{}}00000{{AMjAMlj}{{Ah{dCd}}}}======``{{cb}d{}}0{ANl{{Ah{{`{AAf}}Cd}}}}{ANn{{Ah{{Hn{Lb}}Cd}}}}{ce{}{}}000{ANnANn}{ANlANl}{{ce}d{}{}}0{{ANnj{AFh{AFf}}}{{Ah{dCd}}}}{{ANnEb}{{Ah{DlCd}}}}{ANl{{Ah{{`{ABl}}Cd}}}}{{}ANn}{{ANn{Bb{D`}}}{{Ah{dCd}}}}{{ANnD`}{{Ah{AEnCd}}}}0{{ANnD`KdKh{Hn{E`}}}{{Ah{dCd}}}}{{ANnAd}{{Ah{dAf}}}}{{ANlAd}{{Ah{dAf}}}}{cc{}}000{ANn{{Ah{dCd}}}}{{ANnD`}{{Ah{BfCd}}}}0{{ANnD`M`}{{Ah{ANlCd}}}}{ANlD`}{{ANnFfCl}{{Ah{EfCd}}}}{{ANnKdAF`Clc}{{Ah{{Dd{EfM`}}Cd}}}{{Kl{}{{Kj{AGf}}}}Kn}}{{ANncCle}{{Ah{{Dd{EfM`}}Cd}}}{{AGl{}{{In{{Ah{FfCd}}}}}}AGnLf}{{Kl{}{{Kj{AGf}}}}Kn}}{{ANnANl}{{Ah{dCd}}}}{ce{}{}}0{ANlj}{{}ANn}{ANl{{Ah{{`{AEh}}Cd}}}}{ANn{{Ah{{Hn{Lb}}Cd}}}}{{ANnDl{Bf{Eb}}}{{Ah{dCd}}}}{ANnd}{ANlOb}3{{ANnEb}Ef}{ANn{{Hn{Lb}}}}99{c{{Ah{e}}}{}{}}000{cBh{}}0;;```{{cb}d{}}{{}{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}{{{O`{e}}}{{AD`{c}}}{}{{AOb{}{{In{c}}}}}}{{{O`{e}}{O`{e}}}{}{AO`If}{{AOb{}{{In{c}}}}}}000{{{O`{e}}{O`{e}}}dAOd{{AOb{}{{In{c}}}}}}111101111{{{O`{e}}{O`{e}}}dAO`{{AOb{}{{In{c}}}}}}3{ce{}{}}000{{{AD`{c}}}{{A`{c}}}{}}{{{O`{c}}}{{O`{c}}}AOb}{{ce}d{}{}}{{{AD`{c}}{AD`{c}}}EdAOd}{{ce}Ed{}{}}{{{AD`{c}}c}jAOd}{{{O`{e}}}{}{}{{AOb{}{{In{c}}}}}}{{{AD`{c}}{AD`{c}}}{{O`{e}}}{AOdIf}{{AOb{}{{In{c}}}}}}{{{O`{e}}{AD`{c}}}d{AO`If}{{AOb{}{{In{c}}}}}}>{{}{{AD`{c}}}{}}{{{O`{c}}e}jAOb{{Ab{AD`}}}}{{{AD`{c}}{AD`{c}}}jAKh}{{ce}j{}{}}00000{{{O`{e}}Ad}{{Ah{dAf}}}Nh{{AOb{}{{In{c}}}}}}{{{AD`{c}}Ad}{{Ah{dAf}}}Nh}{{{AHh{c}}}{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}{{{AOf{c}}}{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}{j{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}{{{AOh{c}}}{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}{cc{}}{{{AOj{c}}}{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}{AOl{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}2>={{{AD`{c}}{AD`{c}}}jAOd}{ce{}{}}{{{O`{e}}}{{AOn{e}}}{}{{AOb{}{{In{c}}}}}}{{{AD`{c}}}jAO`}3{{{AD`{c}}}j{}}44{{{O`{e}}}{{B@`{c}}}{}{{AOb{}{{In{c}}}}}}{{{AD`{c}}}{{B@`{c}}}{}}{{{AOn{e}}}{{Bf{{O`{e}}}}}{}{{AOb{}{{In{c}}}}}}{{{A`{c}}}{{Bf{{AD`{c}}}}}AOd}{{{AOn{e}}}{{O`{e}}}{}{{AOb{}{{In{c}}}}}}{{{A`{c}}}{{AD`{c}}}{}}{{{O`{e}}}{}{AO`If}{{AOb{}{{In{c}}}}}}0{{{AD`{c}}{AD`{c}}}{{Bf{Ed}}}B@b}`{c{{AD`{c}}}{}}{{{AD`{c}}c}{{Dd{{AD`{c}}{AD`{c}}}}}AOd}{{{O`{e}}{O`{e}}}{}{AO`If}{{AOb{}{{In{c}}}}}}000{{{O`{e}}{O`{e}}}dAOd{{AOb{}{{In{c}}}}}}{{{AD`{c}}{AD`{c}}}{{O`{e}}}{AOdIf}{{AOb{}{{In{c}}}}}}{{{O`{e}}{AD`{c}}}d{AO`If}{{AOb{}{{In{c}}}}}}{ce{}{}}{c{{Ah{e}}}{}{}}0{cBh{}}0432````````{{cb}d{}}3333{{{AOj{c}}}{{AOj{c}}}If}{{ce}d{}{}}1{{{AOj{c}}}{{B@d{c}}}{}}{{{AOj{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}{{{AHh{c}}}{{AOj{c}}}{}}{{{AOh{c}}}{{AOj{c}}}{}}22{{ce}{{Bf{{AHh{El}}}}}{}{{B@f{El}}}};;{c{{ABj{g}}}{}{}{{Lb{}{{In{e}}}}}}<{AO`j}{{}AO`}{{{B@`{c}}}Bf{}}{{ceg}{{AHh{El}}}{}{{Il{{Bf{El}}}}}{{Il{{Bf{El}}}}}}:{ce{}{}}{c{{ABn{i}}}{}{}{}{{Lb{}{{In{{Ah{eg}}}}}}}}{c{{Ah{e}}}{}{}}000{cBh{}}0933``{{cb}d{}}0{B@h{{Ah{{`{AAf}}Cd}}}}{B@j{{Ah{{Hn{Lb}}Cd}}}}6666{B@jB@j}{B@hB@h}{{ce}d{}{}}0{{B@jj{AFh{AFf}}}{{Ah{dCd}}}}{{B@jEb}{{Ah{DlCd}}}}{B@h{{Ah{{`{ABl}}Cd}}}}{{}B@j}{{B@j{Bb{D`}}}{{Ah{dCd}}}}{{B@jD`}{{Ah{AEnCd}}}}0{{B@jD`KdKh{Hn{E`}}}{{Ah{dCd}}}}{{B@jAd}{{Ah{dAf}}}}{{B@hAd}{{Ah{dAf}}}}{cc{}}0{gB@j{{Il{l}}}{{Ab{{A`{n}}}}}{{J`{}{{In{{Dd{ce}}}}}}}}11{B@j{{Ah{dCd}}}}{{B@jD`}{{Ah{BfCd}}}}{{B@jD`}{{Bf{Ff}}}}1{{B@jD`M`}{{Ah{B@hCd}}}}{B@hD`}{{B@jFfCl}{{Ah{EfCd}}}}{{B@jKdAF`Clc}{{Ah{{Dd{EfM`}}Cd}}}{{Kl{}{{Kj{AGf}}}}Kn}}{{B@jcCle}{{Ah{{Dd{EfM`}}Cd}}}{{AGl{}{{In{{Ah{FfCd}}}}}}AGnLf}{{Kl{}{{Kj{AGf}}}}Kn}}{{B@jc}D`{{Ab{{A`{n}}}}}}{{B@jB@h}{{Ah{dCd}}}}{{B@je}{{Bf{D`}}}{{Ab{{A`{n}}}}}{{J`{}{{In{c}}}}}}{ce{}{}}0{B@hj}{g{{Dd{B@j{Mb{lEn}}}}}{{Il{l}}}{{Ab{{A`{n}}}}}{{J`{}{{In{{Dd{ce}}}}}}}}{B@h{{Ah{{`{AEh}}Cd}}}}{B@j{{Ah{{Hn{Lb}}Cd}}}}{{B@jDl{Bf{Eb}}}{{Ah{dCd}}}}{B@jd}{B@hOb}3{{B@jEb}Ef}{B@j{{Hn{Lb}}}}99{c{{Ah{e}}}{}{}}000{cBh{}}0;;```````````{{cb}d{}}{c{{Df{eg}}}{}{}Dh}{{{B@l{ce}}}{{B@l{ce}}}{}{}}{B@n{{A`{n}}}}{{{AB`{BA`}}}{{Fl{Fj}}}}{ce{}{}}00000{BAbBAb}{{ce}d{}{}}{{BAbBAb}Ed}{{ce}Ed{}{}}{{}{{B@l{ce}}}AKf{}}{{}B@n}{B@n}{c{{Ah{BAb}}}Bl}{ce{}{{Ej{Eh}}}}0{{BAbBAb}j}{{ce}j{}{}}00{B@n{{Ah{dCd}}}}{{{B@l{ce}}Ad}{{Ah{dAf}}}NhNh}{{B@nAd}{{Ah{dAf}}}}{{BAbAd}{{Ah{dAf}}}}{cc{}}{{{Bb{n}}}B@n}111{ce{}{}}00{B@n{{Dd{{Bb{n}}{O`{{B`{El}}}}}}}}`{{{B@l{ce}}}j{}{}}`{{{B@l{ce}}i}{{B@l{cg}}}{}{}{}{{Nl{e}{{Dn{g}}}}}}{{{B@l{ce}}i}{{B@l{ge}}}{}{}{}{{Nl{c}{{Dn{g}}}}}}{{{B@l{ce}}}{{Bf{c}}}{}{}}{{}B@n}{{BA`Eb}d}{{FjEb}d}{{BAbBAb}{{Bf{Ed}}}}{{B@nc}{{Ah{dCd}}}AKd}`{{{B@l{FfBAd}}M`{A`{n}}}{{Ah{ElCd}}}}{{B@nM`{A`{n}}}{{Ah{ElCd}}}}{{BAbc}AhBn}{{{B@l{FfBAd}}}{{Ah{{Bf{M`}}Cd}}}}{{{B@l{c{Dd{eM`}}}}}M`{{Ab{{A`{n}}}}}{}}{B@n{{Ah{{Bf{M`}}Cd}}}}{{{AB`{BA`}}Eb}Ef}{ce{}{}}{{{O`{{B`{Nn}}}}M`}M`}{c{{Ah{{Df{eg}}{Fn{e}}}}}{}{}Dh}{c{{Ah{e}}}{}{}}000{B@n{{Ah{{Bb{n}}}}}}11{{{B@l{ce}}k}{{Ah{{B@l{cg}}i}}}{}{}{}{}{{Nl{e}{{Dn{{Ah{gi}}}}}}}}{cBh{}}00666<``6666{{{BAf{c}}}M`{}}{{{BAh{c}}}M`{}}{{{BAf{c}}Ad}{{Ah{dAf}}}Nh}{{{BAh{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}0;;{{{BAf{c}}}{{Dd{cM`}}}{}}{{{BAh{c}}}{{Dd{cM`}}}{}}{c{{BAf{c}}}{}}{c{{BAh{c}}}{}}{{{I`{{BAh{c}}}}Jh}{{Jj{{Ah{dCd}}}}}{BAjAGn}}0{{{I`{{BAh{c}}}}Jh{A`{n}}}{{Jj{{Ah{ElCd}}}}}{BAjAGn}}{{{BAf{c}}}{{Ah{{B`{n}}Cd}}}AJd}{{{BAf{c}}El}{{Ah{FfCd}}}AJd}{c{{Ah{e}}}{}{}}000>>{ce{}{}}0`````````{{cb}d{}}00{{{BAl{c}}}d{}}222222222222{BAnd}{JdJd}{BB`BB`}{BBbBBb}{{ce}d{}{}}00{{}BAn}{{}BBb}{BAn}7{{BB`BB`}j}{{ce}j{}{}}009{{BAnAd}{{Ah{dAf}}}}{{JdAd}{{Ah{dAf}}}}{{BB`Ad}{{Ah{dAf}}}}{{BBbAd}{{Ah{dAf}}}}{{BBdAd}{{Ah{dAf}}}}0{{{BAl{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}00000000{BAnJd}{ce{}{}}00000{c{}{}}{{ce}{{Ih{g}}}{}IjHl}{BBbBAn}`{{{I`{{BAl{c}}}}Jh}Jj{}}{{cg}{{K`{ei}}}{}{}{{Ij{}{{Dn{e}}}}}{{Hl{}{{Dn{e}}}}}}{BAnd}{{}BAn}{{Jdg}{{BAl{c}}}Lf{{Hl{}{{Dn{c}}}}}{{Nl{}{{Dn{e}}}}Lf}}{{Jde}d{{Hl{}{{Dn{d}}}}}{{Nl{}{{Dn{c}}}}Lf}}``999{cl{}}{c{{Ah{e}}}{}{}}00000000000{{{I`{c}}Jh}Jj{}}{{Jdg}{{Ah{{BAl{c}}BBd}}}Lf{{Hl{}{{Dn{c}}}}}{{Nl{}{{Dn{e}}}}Lf}}{{Jde}{{Ah{dBBd}}}{{Hl{}{{Dn{d}}}}}{{Nl{}{{Dn{c}}}}Lf}}{{Jd{Hn{Nl}}}{{Ah{dBBd}}}}{cBh{}}00000{ce{}{}}00000{JdEl}```````````````{{cb}d{}}00000{{{Kl{}{{Kj{c}}}}c}{{Ah{dOj}}}{LfANj}}{{{AFh{c}}c}{{Ah{dOj}}}{LfANj}}{{{BBf{c}}c}{{Ah{dOj}}}{LfANj}}{{{BBh{ceg}}e}{{Ah{dOj}}}Kl{LfANj}{{E`{e}{{Dn{}}}}IfLfANj}}{{{BBj{ceg}}e}{{Ah{dOj}}}Kl{LfANj}{{E`{e}{{Dn{Bf}}}}IfLfANj}}{{{Jn{c}}}{{Ah{dOj}}}{LfANj}}8888888888888888{{{Kl{}{{Kj{c}}}}}{{AFh{c}}}{LfANj}}{{{AFh{c}}}{{AFh{c}}}{}}{{{BBf{c}}}{{BBf{c}}}{}}{{{BBh{ceg}}}{{BBh{ceg}}}Kl{LfANj}{{E`{e}{{Dn{}}}}IfLfANj}}{{{BBj{ceg}}}{{BBj{ceg}}}Kl{LfANj}{{E`{e}{{Dn{Bf}}}}IfLfANj}}{{{Jn{c}}}{{Jn{c}}}{}}{OjOj}{{ce}d{}{}}00000{{}{{BBf{c}}}{}}{{{AFh{c}}Ad}{{Ah{dAf}}}{}}{{{BBf{c}}Ad}{{Ah{dAf}}}{}}{{{BBh{ceg}}Ad}{{Ah{dAf}}}Kl{LfANj}{{E`{e}{{Dn{}}}}IfLfANj}}{{{BBj{ceg}}Ad}{{Ah{dAf}}}Kl{LfANj}{{E`{e}{{Dn{Bf}}}}IfLfANj}}{{{Jn{c}}Ad}{{Ah{dAf}}}{}}{{OjAd}{{Ah{dAf}}}}0{{{BBl{ce}}Ad}{{Ah{dAf}}}NhNh}{{{BBn{ce}}Ad}{{Ah{dAf}}}NhNh}{cc{}}0000000000000{ce{}{}}0000000{{{BBl{ce}}}cAAd{{BC`{M`}}}}{{{BBn{ce}}}cAAd{{E`{M`El}{{Dn{{Ah{dCd}}}}}}}}{{{BCb{c}}}{{Jn{c}}}{}}{{ce}{{BBl{ce}}}AAd{{BC`{M`}}}}{{ce}{{BBn{ce}}}AAd{{E`{M`El}{{Dn{{Ah{dCd}}}}}}}}{KnM`}{{{AFh{c}}}M`{LfANj}}{{{BBf{c}}}M`{}}{{{BBh{ceg}}}M`{KnKl}{LfANj}{{E`{e}{{Dn{}}}}IfLfANj}}{{{BBj{ceg}}}M`Kn{}{}}{{{Jn{c}}}M`{}}{{{Jn{c}}{Jn{c}}}j{}}{{{Kl{}{{Kj{c}}}}c}{{`{{Hl{}{{Dn{{Ah{dOj}}}}}}Lf}}}{LfANj}}{{{AFh{c}}c}{{Ah{dOj}}}{LfANj}}{{{BBf{c}}c}{{Ah{dOj}}}{LfANj}}{{{BBh{ceg}}e}{{Ah{dOj}}}Kl{LfANj}{{E`{e}{{Dn{}}}}IfLfANj}}{{{BBj{ceg}}e}{{Ah{dOj}}}Kl{LfANj}{{E`{e}{{Dn{Bf}}}}IfLfANj}}{{{Jn{c}}}{{Ah{dOj}}}{LfANj}}{{{BBl{ce}}M`}{{Ah{dCd}}}AAd{{BC`{M`El}}}}{{{BBn{ce}}M`}{{Ah{dCd}}}AAd{{E`{M`El}{{Dn{{Ah{dCd}}}}}}}}{{{BBl{ce}}}{{Ah{dCd}}}AAd{{BC`{M`El}}}}{{{BBn{ce}}}{{Ah{dCd}}}AAd{{E`{M`El}{{Dn{{Ah{dCd}}}}}}}}{ce{}{}}00000{cl{}}{c{{Ah{e}}}{}{}}000000000000000{{{Kl{}{{Kj{c}}}}c}{{Ah{dOj}}}{LfANj}}<;:98{cBh{}}000000044444444{{{Kl{}{{Kj{c}}}}g}{{BBj{{Kl{}{{Kj{c}}}}eg}}}{LfANj}{LfANj}{{E`{e}{{Dn{{Bf{c}}}}}}LfANjIf}}{{{Kl{}{{Kj{c}}}}g}{{BBh{{Kl{}{{Kj{c}}}}eg}}}{LfANj}{LfANj}{{E`{e}{{Dn{c}}}}LfANjIf}}{{{BBl{ce}}M`{A`{n}}}{{Ah{dCd}}}AAd{{BC`{M`El}}}}{{{BBn{ce}}M`{A`{n}}}{{Ah{dCd}}}AAd{{E`{M`El}{{Dn{{Ah{dCd}}}}}}}}{{{BBl{ce}}M`Ff}{{Ah{dCd}}}AAd{{BC`{M`El}}}}{{{BBn{ce}}M`Ff}{{Ah{dCd}}}AAd{{E`{M`El}{{Dn{{Ah{dCd}}}}}}}}`````{{cb}d{}}0`{BCdBCf}`{BCdBCh}===={BCdBCd}{BCjBCj}{{ce}d{}{}}0{BCl{{BCn{BCd}}}}{c{{BCn{BCd}}}{{Ab{ANf}}}}{BCdc{}}`{BCdBD`}{{BCdAd}BDb}{{BCjAd}BDb}{BCdBDd}{BDfBDd}{cc{}}000`{BCdBDh}{ce{}{}}0{BDdBCd}`{BCdBDj}`{BCdBDl}33{c{{Ah{e}}}{}{}}000{cBh{}}055`{{cb}d{}}66{BCfBCf}{{ce}d{}{}}{BCf{{BCn{BDn}}}}0{{BCfBDn}{{BCn{d}}}}{{BCfBDn}{{BCn{{Bf{BE`}}}}}}{{BCfAd}BDb}>>{{BCfBE`}{{BCn{d}}}}={BCf{{BCn{{`{{AGl{}{{In{{BCn{BDn}}}}}}}}}}}}{cBCf{}}05?;;:?`````````````````````9999999{{BChc}{{BCn{BEb}}}{{Il{Ff}}}}{{BChce}{{BCn{BEb}}}{{Il{Ff}}}{{Il{Dl}}}}{{BChKdjBAbBEd}{{BCn{BEf}}}}{{BChcBAb}{{BCn{BEf}}}{AHbAGnLf}}{{BChcBAb}{{BCn{BEf}}}{{AGl{}{{In{{BEh{Ff}}}}}}LfAGn}}{ce{}{}}00000000000000000000000000000{{cg}{{BEj{i}}}{}{}{{BEl{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}000{BChBCh}{BEnBEn}{BEbBEb}{BF`BF`}{BFbBFb}{BFdBFd}{BFfBFf}{{ce}d{}{}}000000{{BChj}{{BCn{{`{{AGl{}{{In{{BCn{AFf}}}}}}}}}}}}{{BChL`BAb{Bb{Dl}}}{{BCn{{Dd{D`Dl}}}}}}{{BChD`}{{BCn{d}}}}{c{{Ah{BEd}}}Bl}{c{{Ah{BFh}}}Bl}{c{{Ah{BFj}}}Bl}{c{{Ah{BFl}}}Bl}{c{{Ah{BFd}}}Bl}{c{{Ah{BFf}}}Bl}{{BChD`Db}{{BCn{BFn}}}}0{{BChD`BFd}{{BCn{BFn}}}}`{{BEnBEn}j}{{BFbBFb}j}{{ce}j{}{}}00000`{{BChD`KdKfKh}{{BCn{BG`}}}}{BEf{{BCn{BEb}}}}{BFn{{BCn{BF`}}}}{BG`{{BCn{BFb}}}}{{BChAd}BDb}{{BEdAd}BDb}{{BEnAd}BDb}{{BEbAd}BDb}{{BFhAd}BDb}{{BFjAd}BDb}{{BFlAd}BDb}{{BEfAd}BDb}{{BF`Ad}BDb}{{BFnAd}BDb}{{BFbAd}BDb}{{BG`Ad}BDb}{{BGbAd}BDb}{{BFdAd}BDb}{{BFfAd}BDb}``{cc{}}000000000000000000000{{BChD`}{{BCn{L`}}}}````{ce{}{}}00000000000000{c{}{}}001111{BGbj}{{ce}{{Ih{g}}}{}IjHl}00{BCh{{BCn{{`{{AGl{}{{In{{BCn{BFj}}}}}}}}}}}}{BCh{{BCn{{`{{AGl{}{{In{{BCn{BFh}}}}}}}}}}}}{BCh{{BCn{{`{{AGl{}{{In{{BCn{BFl}}}}}}}}}}}}{{BChD`}{{BCn{Ff}}}}`{{cg}{{BGd{ei}}}{}{}{{BEl{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}000`{gBFn{{Il{Jl}}}{{Il{Cb}}}{{AGl{}{{In{{BCn{ce}}}}}}LfAGn}}{gBG`{{Il{Kb}}}{{Il{Cb}}}{{AGl{}{{In{{BCn{ce}}}}}}LfAGn}}``{{{I`{BEf}}Jh}{{Jj{c}}}{}}{{{I`{BFn}}Jh}{{Jj{c}}}{}}{{{I`{BG`}}Jh}{{Jj{c}}}{}}{{{I`{BEf}}Jh}{{Jj{{Bf{c}}}}}{}}{{{I`{BFn}}Jh}{{Jj{{Bf{c}}}}}{}}{{{I`{BG`}}Jh}{{Jj{{Bf{c}}}}}{}}{{{I`{BGb}}Jh}{{Jj{{Bf{c}}}}}{}}{{{I`{BGb}}JhBGf}{{Jj{{BEh{d}}}}}}{{cg}{{K`{ei}}}{}{}{{Ij{}{{Dn{e}}}}}{{Hl{}{{Dn{e}}}}}}00{{c{BGj{BGhegi}}}{{BGl{kegi}}}{}BGn{BH`BHb}BHd{}}000{{c{BGj{BGhegi}}BHf}{{BGl{kegi}}}{}BGn{BH`BHb}BHd{}}000{{BChD`}{{BCn{BGb}}}}{{BChD`M`{Bf{El}}}{{BCn{BGb}}}}{{BChD`M`{Bf{El}}}{{BCn{Ff}}}}{{BChD`}{{BCn{Ff}}}}{BGb{{BCn{Ff}}}}{cBCh{}}0{{BEdc}AhBn}{{BFhc}AhBn}{{BFjc}AhBn}{{BFlc}AhBn}{{BFdc}AhBn}{{BFfc}AhBn}{{BChD`ClBj}{{BCn{Cf}}}}{BGbM`}```{BGb{{Dd{El{Bf{El}}}}}}`{{BChD`}{{BCn{BEn}}}}```{ce{}{}}000000``{c{{Ah{e}}}{}{}}00000000000000000000000000000{{{I`{c}}Jh}Jj{}}00{{{I`{c}}Jh}{{Jj{{Bf{Ah}}}}}{}}000{cBh{}}00000000000000{{BChj}{{BCn{{`{{AGl{}{{In{{BCn{AFl}}}}}}}}}}}}555555555555555{{cg}{{BHh{i}}}{}{}{{BEl{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}000````````````````````````````````````{{cb}d{}}000000{BHjBDn}88888888888888888888{{cg}{{BEj{i}}}{}{}{{BEl{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}0{BD`BD`}{BDfBDf}{BHjBHj}{BHlBHl}{BHnBHn}{BI`BI`}{BIbBIb}{{ce}d{}{}}000000{BDf{{BCn{d}}}}{{BHjc}{{BCn{Ff}}}{{Il{BDd}}}}{BHjD`}{BHjM`}{{BHjc}{{BCn{BGb}}}{{Il{BDd}}}}{BD`{{BCn{BDf}}}}{{BDfBDnc}{{BCn{El}}}{{Il{Ff}}}}{c{{Ah{BHj}}}Bl}{c{{Ah{BId}}}Bl}{c{{Ah{BHl}}}Bl}{c{{Ah{BHn}}}Bl}{{BD`BIf}{{BCn{d}}}}{{BDfBDf}j}{{BHjBHj}j}{{BHnBHn}j}{{BI`BI`}j}{{BIbBIb}j}{{ce}j{}{}}00000000000000{{BDfBHjcKh}{{BCn{BIh}}}{{Ab{ANf}}}}{BIj{{BCn{BI`}}}}{BIh{{BCn{BIb}}}}`{{BD`Ad}BDb}{{BDfAd}BDb}{{BHjAd}BDb}{{BIdAd}BDb}{{BHlAd}BDb}0{{BHnAd}BDb}{{BHnAd}{{Ah{dAf}}}}{{BIjAd}BDb}{{BI`Ad}BDb}{{BIhAd}BDb}{{BIbAd}BDb}{cc{}}0{BIlBHj}1{BInBHj}222{BJ`BHn}33333333333{An{{Ah{BHlc}}}{}}{BDf{{BCn{BJb}}}}{{BDfBDncj}{{BCn{{Bf{BHj}}}}}{{Ab{{A`{n}}}}}}{{BDfc}{{BCn{{`{{AGl{}{{In{{BCn{BHj}}}}}}}}}}}{{Il{BJd}}}}{{BDfc}{{BCn{{Bf{BHj}}}}}{{Il{BJd}}}}{BDf{{BCn{{Bf{{Bb{BJf}}}}}}}}`{BDfBIf}{BHjBJh}{{BD`BJj}{{BCn{BDf}}}}{{BD`BJj}{{BCn{{Dd{BDf{`{{AGl{}{{In{{BCn{BHn}}}}}}}}}}}}}}{{BDfBDnFfcj}{{BCn{BIj}}}{{Ab{ANf}}}}{{BD`BJl}{{BCn{BDf}}}}{ce{}{}}00000000000{BHj{{A`{n}}}}`{BDf{{BCn{d}}}}{BD`{{BCn{{`{{AGl{}{{In{{BCn{{Dd{BIfBJn}}}}}}}}}}}}}}{{cg}{{BGd{ei}}}{}{}{{BEl{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}0{{BD`BIf}{{BCn{{Bf{BDf}}}}}}``{{{I`{BIj}}Jh}{{Jj{{Bf{c}}}}}{}}{{{I`{BIh}}Jh}{{Jj{{Bf{c}}}}}{}}{{c{BGj{BGhegi}}}{{BGl{kegi}}}{}BGn{BH`BHb}BHd{}}0{{c{BGj{BGhegi}}BHf}{{BGl{kegi}}}{}BGn{BH`BHb}BHd{}}0{cBD`{}}0`{{BHjc}AhBn}{{BIdc}AhBn}{{BHlc}AhBn}{{BHnc}AhBn}{{BDfBDnce}{{BCn{D`}}}{{Il{Ff}}}{{Il{Ff}}}}{{BDfBJb}{{BCn{d}}}}{{BDfBDncD`M`}{{BCn{d}}}{{Il{Ff}}}}{{BDfBHlBj}{{BCn{BJj}}}}`{{BDf{Bb{Db}}}{{BCn{d}}}}`{BDf{{BCn{BK`}}}}{BDf{{BCn{{`{{AGl{}{{In{{BCn{BHn}}}}}}}}}}}}{BHjM`}{ce{}{}}000000{cl{}}0{c{{Ah{e}}}{}{}}0000000000000000000{{{I`{c}}Jh}{{Jj{{Bf{Ah}}}}}{}}0{cBh{}}0000000004444444444{{cg}{{BHh{i}}}{}{}{{BEl{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}0``````````````````````{{cb}d{}}0``666666{BDhBDh}{BKbBKb}{{ce}d{}{}}0{{}BKb}{c{{Ah{BKd}}}Bl}{{BDhAd}BDb}{{BKbAd}BDb}{{BKdAd}BDb}{cc{}}0000???{cBDh{}}0{{BKdc}AhBn}{{BDhcg}{{BCn{{Dd{{`{{BKj{BKf}{{BKh{Cb}}}}}}{`{{AGl{}{{In{{BCn{BKl}}}}}}}}}}}}}{{Il{BKn}}}{{Il{BL`}}}{{J`{}{{In{e}}}}}}{{BDhBKnBKb}{{BCn{{Dd{{`{{BKj{BKf}{{BKh{Cb}}}}}}{`{{AGl{}{{In{{BCn{BKl}}}}}}}}}}}}}}``{ce{}{}}0`{c{{Ah{e}}}{}{}}00000{cBh{}}00222``{{cb}d{}}{{BDjDb}{{BCn{d}}}}`4444{BDjBDj}{{ce}d{}{}}{{BDjBL`}{{BCn{{Bf{BLb}}}}}}{BDj{{BCn{{`{{AGl{}{{In{{BCn{BLb}}}}}}}}}}}}{c{{Ah{BLd}}}Bl}{{BDjAd}BDb}{{BLdAd}BDb}{cc{}}00{BDj{{BCn{{Bf{BLf}}}}}}==`{BDj{{BCn{Db}}}}{BDj{{BCn{BL`}}}}{cBDj{}}0`{{BLdc}AhBn}{{BDjj}{{BCn{d}}}}{BDj{{BCn{{Mb{l`}}}}}}{BDj{{BCn{BLd}}}}{ce{}{}}{c{{Ah{e}}}{}{}}000{cBh{}}0`22``{{cb}d{}}3333{BDlBDl}{{ce}d{}{}}{{BDlDl}{{BCn{d}}}}{c{{Ah{BLh}}}Bl}{{BDlAd}BDb}{{BLhAd}BDb}`{cc{}}00`::{BDl{{BCn{{`{{AGl{}{{In{{BCn{BLh}}}}}}}}}}}}0`{cBDl{}}0{{BLhc}AhBn}=<<<<;;==```````````````````````````````````````````````````:::::::::::::::::::`{c{{Df{eg}}}{}{}Dh}00{BJh{{Dd{{B`{n}}{B`{n}}{A`{n}}}}}}{BJhFf}{BLj{{B`{n}}}}{BLl{{B`{n}}}}{BIf{{B`{n}}}}{BDn{{B`{n}}}}{BJh{{A`{n}}}}2{BIf{{A`{n}}}}2{BDn{{A`{n}}}}{BInBDn}{BJhBDn}{BIlBDn}{ce{}{}}0000000000000000000000000000000000000000000000000{{{BLn{c}}}BJl{{BMd{}{{BM`{BMb}}}}BMf}}`{BJjBJj}{BMhBMh}{BMjBMj}{BMlBMl}{BMnBMn}{BJnBJn}{BJlBJl}{BIlBIl}{BN`BN`}{BInBIn}{BJhBJh}{BNbBNb}{BNdBNd}{BE`BE`}{BLjBLj}{BNfBNf}{BLlBLl}{BIfBIf}{BDnBDn}{{ce}d{}{}}000000000000000000{BMbj}{{BIlBIl}Ed}{{BInBIn}Ed}{{BJhBJh}Ed}{{BNbBNb}Ed}{{BLjBLj}Ed}{{BLlBLl}Ed}{{BIfBIf}Ed}{{BDnBDn}Ed}{{ce}Ed{}{}}0000000{BIlD`}{BNbD`}{BIlM`}{BNbM`}{{{A`{n}}}{{Ah{BNdCb}}}}{{}BMn}{{}BJh}{{}BNd}{{}BLj}{{}BLl}{{}BIf}{{}BDn}{{{BLn{c}}eBE`}{{Ah{ElBNh}}}{{BMd{}{{BM`{BMb}}}}BMf}{{Ab{{A`{n}}}}}}{BIl}{BIn}{c{{Ah{BJj}}}Bl}{c{{Ah{BMl}}}Bl}{c{{Ah{BJn}}}Bl}{c{{Ah{BJl}}}Bl}{c{{Ah{BIl}}}Bl}{c{{Ah{BN`}}}Bl}{c{{Ah{BIn}}}Bl}{c{{Ah{BJh}}}Bl}{c{{Ah{BNb}}}Bl}{c{{Ah{BE`}}}Bl}{c{{Ah{BLj}}}Bl}{c{{Ah{BNf}}}Bl}{c{{Ah{BLl}}}Bl}{c{{Ah{BIf}}}Bl}{c{{Ah{BDn}}}Bl}{M`BNb}{{}BNb}{{BIn{Bb{n}}}d}{{BNd{Bf{El}}}{{Ah{{Bb{n}}Cb}}}}{ce{}{{Ej{Eh}}}}00000`{BIlBIn}{{BMlBMl}j}{{BIlBIl}j}{{BN`BN`}j}{{BInBIn}j}{{BJhBJh}j}{{BNbBNb}j}{{BNdBNd}j}{{BLjBLj}j}{{BLlBLl}j}{{BIfBIf}j}{{BDnBDn}j}{{ce}j{}{}}00000000000000000000000000000000{{BJjAd}{{Ah{dAf}}}}0{{BMhAd}{{Ah{dAf}}}}{{BMjAd}{{Ah{dAf}}}}{{BMlAd}{{Ah{dAf}}}}{{BMnAd}{{Ah{dAf}}}}{{BJnAd}{{Ah{dAf}}}}0{{BJlAd}{{Ah{dAf}}}}{{BNjAd}{{Ah{dAf}}}}0{{BMbAd}{{Ah{dAf}}}}{{{BLn{c}}Ad}{{Ah{dAf}}}Nh}{{BNlAd}{{Ah{dAf}}}}0{{BNhAd}{{Ah{dAf}}}}0{{BNnAd}{{Ah{dAf}}}}0{{BIlAd}{{Ah{dAf}}}}{{BN`Ad}{{Ah{dAf}}}}{{BInAd}{{Ah{dAf}}}}{{BJhAd}{{Ah{dAf}}}}{{BNbAd}{{Ah{dAf}}}}{{BNdAd}{{Ah{dAf}}}}{{BE`Ad}{{Ah{dAf}}}}0{{BLjAd}{{Ah{dAf}}}}0{{BNfAd}{{Ah{dAf}}}}0{{BLlAd}{{Ah{dAf}}}}0{{BIfAd}{{Ah{dAf}}}}0{{BDnAd}{{Ah{dAf}}}}0{BIfl}{BDnl}{cc{}}00000{BIfBJl}{BNfBJl}22222{BNnBNh}3{BNlBNh}4444{BIlBIn}555{BO`BE`}6{BE`BLj}07{BObBLj}8{BO`BNf}9{BNfBLl}{BObBLl}1{BLlBIf}{{{B`{n}}}BIf}=1{BNfBIf}1{{{B`{n}}}BDn}0?{BE`BDn}{BLjBDn}0{{{A`{n}}}{{Ah{BJjCj}}}}{{{B`{n}}}BE`}{{{B`{n}}}{{Ah{BLjBOd}}}}{{{B`{n}}}BNf}{{{B`{n}}}{{Ah{BLlBOd}}}}{{BInBNfBE`}BIl}{{BInBNfBE`}BN`}{cBNd{{J`{}{{In{{Dd{BDnM`}}}}}}}}{cBNd{{J`{}{{In{{Dd{M`BDn}}}}}}}}{{BNfBE`cBNb}BIl{{Ab{{A`{n}}}}}}{{n{B`{n}}}{{Ah{BJlCb}}}}{cc{}}000000000000000000{An{{Ah{BJj}}}}{An{{Ah{BE`}}}}{An{{Ah{BLj}}}}{An{{Ah{BNf}}}}{An{{Ah{BLl}}}}{An{{Ah{BIf}}}}{An{{Ah{BDn}}}}{{BNdBDn}{{Bf{M`}}}}{{BNdBNd}{{Bf{{BOf{M`}}}}}}{{BLjc}dFh}{{BLlc}dFh}{{BIfc}dFh}{{BDnc}dFh}{{{BLn{c}}eBE`g}{{Ah{D`BNh}}}{{BMd{}{{BM`{BMb}}}}BMf}{{Ab{{A`{n}}}}}{{Ab{{A`{n}}}}}}`{BJlBIf}{{{BLn{c}}}BIf{{BMd{}{{BM`{BMb}}}}BMf}}{BInBJh}{BE`BDn}{BNfBIf}{{{BLn{c}}eBE`D`M`}{{Ah{ElBNh}}}{{BMd{}{{BM`{BMb}}}}BMf}{{Ab{{A`{n}}}}}}{{BNdBDnM`}d}{{{BLn{c}}BIl{B`{n}}BMl}{{Ah{ElBNh}}}{{BMd{}{{BM`{BMb}}}}BMf}}{ce{}{}}000000000000000000000000{BIf{{Ah{BLlBOd}}}}{BDn{{Ah{BLjBOd}}}}{BNbj}{BNdj}{BNd{{BOh{BDnM`}}}}{BIl{{A`{n}}}}{BIn{{A`{n}}}}{BJh{{A`{n}}}}{BJhFf}{BJlBJn}{BNdEl}{{BJlBJl}{{Ah{jBNj}}}}{{BNdBNd}d}{{BMbBJl}{{Ah{jBNj}}}}`{BInBIf}{BJhBIf}`{{BJl{Bb{Db}}}BJj}{BJlBMb}{{BOjc}{{BLn{c}}}{{BMd{}{{BM`{BMb}}}}BMf}}{{BJhBNb}BIn}{{ceg}BJh{{Il{BIf}}}{{Il{BDn}}}{{Ab{{A`{n}}}}}}{{D`M`M`}BNb}{cBE`{BOlBOn}}{cBNf{BOlBOn}}{{D`M`}BNb}{BJhBIn}```{{BIlBIl}{{Bf{Ed}}}}{{BInBIn}{{Bf{Ed}}}}{{BJhBJh}{{Bf{Ed}}}}{{BNbBNb}{{Bf{Ed}}}}{{BLjBLj}{{Bf{Ed}}}}{{BLlBLl}{{Bf{Ed}}}}{{BIfBIf}{{Bf{Ed}}}}{{BDnBDn}{{Bf{Ed}}}}{BE`BLj}{BNfBLl}{{BIfc}{{Ah{BLlBOd}}}C@`}{{BDnc}{{Ah{BLjBOd}}}C@`}{BJl{{Dd{n{B`{n}}}}}}{BInBNb}{{{BLn{c}}eBE`}BJh{{BMd{}{{BM`{BMb}}}}BMf}{{Ab{{A`{n}}}}}}{BJl{{Ah{BNfBNl}}}}{{{BLn{c}}}{{Ah{BNfBNl}}}{{BMd{}{{BM`{BMb}}}}BMf}}{{BJjc}AhBn}{{BMlc}AhBn}{{BJnc}AhBn}{{BJlc}AhBn}{{BIlc}AhBn}{{BN`c}AhBn}{{BInc}AhBn}{{BJhc}AhBn}{{BNbc}AhBn}{{BE`c}AhBn}{{BLjc}AhBn}{{BNfc}AhBn}{{BLlc}AhBn}{{BIfc}AhBn}{{BDnc}AhBn}{{BMb{AB`{E`}}}j}{{BInBNfBE`}BIl}{{BE`{A`{n}}}C@b}{{BNf{A`{n}}}C@b}{BIlBN`}{BNh{{Bf{Bd}}}}`{{BMb{C@d{BMh}}}d}{BMbEl}`{{{BLn{c}}}{{Ah{{C@f{BIl}}Cb}}}{{BMd{}{{BM`{BMb}}}}BMf}}{{{BLn{c}}{C@f{BIl}}{B`{n}}BMn}{{Ah{{Bf{{C@f{BIl}}}}Cb}}}{{BMd{}{{BM`{BMb}}}}BMf}}{BIlM`}{BNbM`}{BJh{{Dd{{B`{n}}{B`{n}}Ff}}}}{BJj{{Bb{n}}}}{BE`{{B`{n}}}}{BNf{{B`{n}}}}{BIf{{B`{n}}}}{BDn{{B`{n}}}}{ce{}{}}000000000000000000{cl{}}00000000000{BIn{{Bb{n}}}}{c{{Ah{{Df{eg}}{Fn{e}}}}}{}{}Dh}00{c{{Ah{e}}}{}{}}00000{n{{Ah{BJn{C@h{BJn}}}}}}11111111111111{BDn{{Ah{BLj}}}}22{BIf{{Ah{BLl}}}}333{{}{{Ah{BJn{C@h{BJn}}}}}}4444444444444444444444444{cBh{}}000000000000000000000000{{BMb{C@d{BMh}}}d}{BIl{{Ah{dBNn}}}}{BIn{{Ah{dBNn}}}}{{BIlc}{{Ah{dBOd}}}C@`}{{BN`BInBLlBLj}{{Ah{dBOd}}}}{{BE`{A`{n}}C@b}{{Ah{dBOd}}}}{{BLj{A`{n}}C@b}{{Ah{dBOd}}}}{{BNf{A`{n}}C@b}{{Ah{dBOd}}}}{{BLl{A`{n}}C@b}{{Ah{dBOd}}}}{ce{}{}}000000000000000000000000````````````{{cb}d{}}0111111{BK`BK`}{C@jC@j}{{ce}d{}{}}0{{C@jBIf}{{Ah{jCb}}}}{C@j{{Ah{C@lCb}}}}{{}BK`}{{}C@n}{{C@jBDn}{{Ah{dCb}}}}{{C@jBIfBDnFf}{{Ah{ElCb}}}}{c{{Ah{BK`}}}Bl}{C@jd}{{C@jBIf}{{Ah{dCb}}}}{{BK`BK`}j}{{ce}j{}{}}00{{C@jBDn}{{Ah{{Bf{BE`}}Cb}}}}{{C@jBIf}{{Ah{BNfCb}}}}{C@j{{Ah{dCb}}}}{{BK`Ad}{{Ah{dAf}}}}{{C@jAd}{{Ah{dAf}}}}{{C@nAd}{{Ah{dAf}}}}{cc{}}0000{{C@jBIf}{{Ah{BJbCb}}}}{{C@jBIfBDnFfj}{{Ah{{Bf{BIl}}Cb}}}}{{C@jBIfBJd{C@d{{Ah{BIlCb}}}}}{{Ah{dCb}}}}{{C@jBIf}{{Ah{BK`Cb}}}}{{C@jBIf}{{Ah{{Bf{{Bb{{B`{n}}}}}}Cb}}}}`{{C@jBIfBNd}{{Ah{{Bf{{BOf{M`}}}}Cb}}}}{{C@jBE`}{{Ah{BDnCb}}}}{{C@jBJl}{{Ah{BIfCb}}}}{{C@jBIfBDnFfD`M`}{{Ah{dCb}}}}{{C@jBIfBIl{B`{n}}BMl}{{Ah{dCb}}}}{ce{}{}}00{{C@j{C@d{{Ah{BDnCb}}}}}{{Ah{dCb}}}}{{C@j{C@d{{Ah{{Dd{BIfBJn}}Cb}}}}}{{Ah{dCb}}}}{{C@jBIfC@n}{{Ah{dCb}}}}{{C@jBIf{B`{n}}}{{Ah{dCb}}}}{{BK`c}AhBn}{{C@jBIfBJb}{{Ah{dCb}}}}{{C@jBIfj}{{Ah{dCb}}}}{C@j{{Ah{CA`Cb}}}}{{CA`{Bf{{AB`{E`}}}}l}C@j}{{C@jBIf{C@d{BMh}}}{{Ah{dCb}}}}{{C@n{C@d{BMh}}}C@n}``{C@nC@n}``{{C@jBIf}{{Ah{{C@f{BIl}}Cb}}}}{{C@jBIf{C@f{BIl}}{B`{n}}BMn}{{Ah{{Dd{{Bf{{C@f{BIl}}}}BMn}}Cb}}}}>>{c{{Ah{e}}}{}{}}00000{cBh{}}006{ce{}{}}00``````````````````````{{cb}d{}}000011111111111111{CAbCAb}{CAdCAd}{CAfCAf}{CAhCAh}{BJ`BJ`}{{ce}d{}{}}0000`{c{{Ah{CAb}}}Bl}{c{{Ah{CAd}}}Bl}{c{{Ah{CAf}}}Bl}{c{{Ah{BJ`}}}Bl}`{{{Ah{AEnCd}}}BMl}{{CAbCAb}j}{{CAdCAd}j}{{CAfCAf}j}{{BJ`BJ`}j}{{ce}j{}{}}00000000000`{{CAbAd}{{Ah{dAf}}}}{{CAdAd}{{Ah{dAf}}}}{{CAfAd}{{Ah{dAf}}}}{{CAhAd}{{Ah{dAf}}}}{{BJ`Ad}{{Ah{dAf}}}}0{{CAjAd}{{Ah{dAf}}}}{{CAlAd}{{Ah{dAf}}}}{cc{}}0000{CAnBJ`}1111111{CAlBDn}{{CAhCB`}{{Ah{dCb}}}}{ce{}{}}000000{{CAhBIfj}{{Ah{dCb}}}}{{CAjC@j}{{Ah{BDnCb}}}}{{CAjC@j}{{Ah{CAlCb}}}}``{{CAjBDn}{{Ah{dCb}}}}`{{CAbc}AhBn}{{CAdc}AhBn}{{CAfc}AhBn}{{BJ`c}AhBn}{{CAlBDnC@j}{{Ah{dCb}}}}{CAh{{Ah{dCb}}}}{{JbCBbCA`cGdCAj}{{Ah{CAhCb}}}Jf}{{CAhBIf{Bb{Db}}}{{Ah{dCb}}}}`{{CAhBIf}{{Ah{{`{{AGl{}{{In{{Ah{BJ`Cb}}}}}}AGn}}Cb}}}}`====={cl{}}{c{{Ah{e}}}{}{}}0000000000000{cBh{}}000000{ce{}{}}000000``````{{cb}d{}}`11{CBdCBd}{{ce}d{}{}}{{}CBd}``````````{{CBdAd}{{Ah{dAf}}}}{cc{}}06{CBd{{ACd{{Dd{AnACb}}}}}}{{}An}````````8::98`````````````````````7777888888888888{CBfCBf}{CBhCBh}{CBjCBj}{CBlCBl}9999`{{JbC@jBIfDb}{{Ah{CBhCBn}}}}{{}CBj}{c{{Ah{CBl}}}Bl}{{CBlCBl}j}{{ce}j{}{}}00{{CBfAd}{{Ah{dAf}}}}{{CBhAd}{{Ah{dAf}}}}{{CBjAd}{{Ah{dAf}}}}{{CC`Ad}{{Ah{dAf}}}}0{{CBnAd}{{Ah{dAf}}}}0{{CBlAd}{{Ah{dAf}}}}{cc{}}000000000{{C@jCB`e}{{Ah{CBhCC`}}}{{Hl{}{{Dn{CBf}}}}}{{E`{BIfId}{{Dn{c}}}}}}{ce{}{}}00000{CC`{{Bf{BIf}}}}``{CC`{{Bf{Id}}}}``{{CBlc}AhBn}{CC`{{Bf{Bd}}}}{CBn{{Bf{Bd}}}}`5555{cl{}}0{c{{Ah{e}}}{}{}}00000000000{cBh{}}00000888888`````````````````````````````````````````````````{{cb}d{}}0000000000{{}{{CCd{CCb}}}}{CA`CA`}0{{{CCd{c}}BDn}{{CCd{c}}}{}}{BDn{{CCd{CCb}}}}{{C@`BDn}{{Ah{BLjBOd}}}}>>>>>>>>>>>>>>>>>>>>>>>>>>>>{{{CCd{CCf}}}BJd}{{{CCd{CCb}}}BJd}{CChCCh}{CCjCCj}{BJbBJb}{CClCCl}{CCbCCb}{CCfCCf}{BJdBJd}{CCnCCn}{CD`CD`}{CDbCDb}{CDdCDd}{{ce}d{}{}}0000000000{{CA`BIf}d}{CA`{{Ah{C@lCb}}}}{{}CCh}{{}BJb}{{}{{CCd{c}}}AKf}{{}CCb}{{}CCf}{{}CCn}{{}CD`}{{}CDb}{{}CDd}{{CA`BDn}{{Ah{dCb}}}}{c{{Ah{BJb}}}Bl}{c{{Ah{CCl}}}Bl}{c{{Ah{CCb}}}Bl}{c{{Ah{CCf}}}Bl}{c{{Ah{BJd}}}Bl}{c{{Ah{CCn}}}Bl}{c{{Ah{CD`}}}Bl}{c{{Ah{CDb}}}Bl}{c{{Ah{CDd}}}Bl}{{BJbBJb}j}{{CClCCl}j}{{CDbCDb}j}{{CDdCDd}j}{{ce}j{}{}}00000000000{CA`{{Ah{dCb}}}}{{CA`Ad}{{Ah{dAf}}}}{{CChAd}{{Ah{dAf}}}}{{CDfAd}{{Ah{dAf}}}}0{{CCjAd}{{Ah{dAf}}}}{{BJbAd}{{Ah{dAf}}}}{{CClAd}{{Ah{dAf}}}}0{{{CCd{c}}Ad}{{Ah{dAf}}}Nh}{{CCbAd}{{Ah{dAf}}}}{{CCfAd}{{Ah{dAf}}}}{{BJdAd}{{Ah{dAf}}}}{{CCnAd}{{Ah{dAf}}}}{{CD`Ad}{{Ah{dAf}}}}{{CDbAd}{{Ah{dAf}}}}{{CDdAd}{{Ah{dAf}}}}{cc{}}0{CbCDf}1111111{{{CCd{CCb}}}BJd}{{{CCd{CCf}}}BJd}3333{cCDb{{Ab{{A`{n}}}}}}4{BDnCDd}55555555555{An{{Ah{CCl}}}}`{{CA`BDn}{{Ah{{Bf{BE`}}Cb}}}}{{CDhBIf}{{Ah{BJbCb}}}}{{CA`BIf}{{Ah{BJbCb}}}}0{{CA`BIfBDncj}{{Ah{{Bf{BIl}}Cb}}}{{Ab{{A`{n}}}}}}{{CA`BIf}{{Ah{CDjCb}}}}{{CA`BIfc}{{Ah{CDlCb}}}{{Il{BJd}}}}{{CA`BIf}{{Ah{{Bf{{ACd{{B`{n}}}}}}Cb}}}}{{CA`BIfBNd}{{Ah{{Bf{{BOf{M`}}}}Cb}}}}{{CA`BE`}{{Ah{dCb}}}}{{CA`BJl}{{Ah{CCjCb}}}}{{{CCd{c}}}{{CCd{c}}}{}}{ce{}{}}0000000000000{{{CCd{c}}e}{{CCd{c}}}{}{{Ab{{A`{n}}}}}}{c{{CCd{CCb}}}{{Ab{{A`{n}}}}}}10{{{CCd{c}}M`}{{CCd{c}}}{}}{BJd{{Bf{M`}}}}{CA`{{Ah{{`{{Lb{}{{In{{Ah{BE`Cb}}}}}}}}Cb}}}}{CA`{{Ah{{`{{Lb{}{{In{{Ah{{Dd{BIfBJn}}Cb}}}}}}}}Cb}}}}{{CA`BIf}{{Ah{BMbCDf}}}}{{BJbBIn}j}{{CClc}j{{Ab{{A`{n}}}}}}{{CDb{A`{n}}}j}{{CDdBDn}j}{{}CA`}{{C@`BIf}{{Ah{BLlBOd}}}}{{CA`c}{{Ah{BE`Cb}}}{BOlBOn}}{{CA`BNf}{{Ah{BLnCb}}}}<{BJdM`}{{CA`BIf}{{Ah{BLnCDf}}}}{c{{Ah{CA`Cb}}}{{Ab{ANf}}}}{{C@`{B`{n}}}{{Ah{BObBOd}}}}{{CA`{B`{n}}}{{Ah{BObBOd}}}}{{CCh{B`{n}}}{{Ah{BObBOd}}}}{{CA`BIf{B`{n}}}{{Ah{dCb}}}}{{CA`BIf}{{Ah{dCb}}}}{{BJbc}AhBn}{{CClc}AhBn}{{CCbc}AhBn}{{CCfc}AhBn}{{BJdc}AhBn}{{CCnc}AhBn}{{CD`c}AhBn}{{CDbc}AhBn}{{CDdc}AhBn}{{CA`BIfBJb}{{Ah{dCb}}}}{{}{{CCd{CCf}}}}{CA`{{Ah{CDnCb}}}}0{{{CCd{CCb}}CD`CCn}{{CCd{CCb}}}}{{{CCd{CCf}}CCn}{{CCd{CCf}}}}{CDf{{Bf{Bd}}}}{ce{}{}}0000000000{cl{}}0{c{{Ah{e}}}{}{}}000000000000000000000000000{cBh{}}000000000000033333333333333``````{{{CE`{{Dd{{B`{n}}{B`{n}}{A`{n}}}}{Dd{M`{B`{n}}{B`{n}}M`{B`{n}}}}}}}{{Ah{C@lCb}}}}4444444444{{CEbAd}{{Ah{dAf}}}}{{BOjAd}{{Ah{dAf}}}}{{CEdAd}{{Ah{dAf}}}}{{C@lAd}{{Ah{dAf}}}}{{CDjAd}{{Ah{dAf}}}}{cc{}}0000{{BOjBIf}{{Ah{BJbCb}}}};;;;;{c{{ABj{g}}}{}{}{{Lb{}{{In{e}}}}}}000<<<<{CEbBf}{CEdBf}{C@lBf}{CDjBf}{{BOj{B`{n}}}{{Ah{BObBOd}}}}{c{{ABn{i}}}{}{}{}{{Lb{}{{In{{Ah{eg}}}}}}}}000{c{{Ah{e}}}{}{}}000000000{cBh{}}0000{ce{}{}}0000`````````````````````````````````````````````````````````````````````````{{cb}d{}}00`111111111111{CEfCEf}{CEhCEh}{CEjCEj}{{ce}d{}{}}00{{CEfCEf}Ed}{{CEhCEh}Ed}{{ce}Ed{}{}}0``{c{{Ah{CEl}}}Bl}{c{{Ah{BKf}}}Bl}{c{{Ah{BKl}}}Bl}{c{{Ah{CEf}}}Bl}{c{{Ah{CEh}}}Bl}{{CEfCEf}j}{{CEhCEh}j}{{ce}j{}{}}00000{{CElAd}{{Ah{dAf}}}}{{BKfAd}{{Ah{dAf}}}}{{BKlAd}{{Ah{dAf}}}}{{CEfAd}{{Ah{dAf}}}}{{CEhAd}{{Ah{dAf}}}}{{CEjAd}{{Ah{dAf}}}}{cc{}}000{{{CEn{Id}}}CEf}11111{ce{}{}}00000{CBbCEj}{{CEfCEf}{{Bf{Ed}}}}{{CEhCEh}{{Bf{Ed}}}}`{{CElc}AhBn}{{BKfc}AhBn}{{BKlc}AhBn}{{CEfc}AhBn}{{CEhc}AhBn}{{CEjBKnCEl{Hn{AGl}}}{{`{{AGl{}{{In{{Ah{BKlC`}}}}}}AGn}}}}`999{c{{Ah{e}}}{}{}}00000000000{cBh{}}00000;;;;;;`{{cb}d{}}````````<<{CF`CF`}{{ce}d{}{}}{{}CF`}{{CF`Ad}{{Ah{dAf}}}}{cc{}}0{ce{}{}}{CF`{{ACd{{Dd{AnACb}}}}}}````````{{}An}``2::92```````````8{{{AB`{CBb}}CB`}{{CFb{{BCn{d}}}}}}3333{{CBbBKnFf}{{Ah{dCb}}}}0{CBbCBb}9{{CBbAd}{{Ah{dAf}}}}{{CFdAd}{{Ah{dAf}}}}88{{JbCFfCFh}CBb}9{{CBbNj}{{Ah{dCb}}}}99{c{}{}}{{CBbBKn{Bb{Id}}}{{Ah{CFdCb}}}}{{ce}{{Ih{g}}}{}IjHl}{CBbEl}{{{I`{CFd}}Jh}Jj}{{CBbBKn}{{Ah{dCb}}}}{{cg}{{K`{ei}}}{}{}{{Ij{}{{Dn{e}}}}}{{Hl{}{{Dn{e}}}}}}{{CBbBKn}{{Ah{{CFj{{CEn{Id}}}}Cb}}}}{CBb{{`{{AGl{}{{In{{Ah{{Dd{BKn{CEn{Id}}}}CFl}}}}}}}}}}{ce{}{}}{c{{Ah{e}}}{}{}}000{{{I`{c}}Jh}Jj{}}{cBh{}}0{{CBb{A`{CFn}}}{{Ah{dCb}}}}`44`44{{}{{CG`{c}}}{}}{{{CG`{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}{{{CG`{c}}CGbc}d{}}83{{cALnEl}{{Ah{{Bf{Ff}}Cb}}}{AHbAGn}}{{cALnEl}{{Ah{{Bf{{CGd{Id}}}}Cb}}}{AHbAGn}}997:{{{CG`{c}}}{{`{{Lb{}{{In{{Dd{CGbc}}}}}}}}}{}}{{cALn{CGd{Id}}El}{{Ah{dCb}}}{BAjAGn}}``````````````````````````````````{{cb}d{}}0000000000{c{{Df{eg}}}{}{}Dh}{BKn{{B`{n}}}}{CGf{{A`{n}}}}1{BKn{{A`{n}}}}{ce{}{}}00000000000000000000000`{CGhCGh}{CGjCGj}{BKnBKn}{{{CGd{c}}}{{CGd{c}}}If}{{{CGl{c}}}{{CGl{c}}}If}{{{CGn{c}}}{{CGn{c}}}If}{{{CH`{c}}}{{CH`{c}}}If}{{{CEn{c}}}{{CEn{c}}}If}{{{CHb{c}}}{{CHb{c}}}If}{CFfCFf}{CGfCGf}{{ce}d{}{}}0000000000{{CGhCGh}Ed}{{CGjCGj}Ed}{{BKnBKn}Ed}{{{CEn{c}}{CEn{c}}}EdAOd}{{ce}Ed{}{}}000{{}CFf}{{}CGf}{c{{Ah{CGh}}}Bl}{c{{Ah{CGj}}}Bl}{c{{Ah{BKn}}}Bl}{c{{Ah{{CGd{e}}}}}BlCHd}{c{{Ah{{CEn{e}}}}}BlCHd}{c{{Ah{CGf}}}Bl}{ce{}{{Ej{Eh}}}}0{{CGhCGh}j}{{CGjCGj}j}{{BKnBKn}j}{{{CEn{c}}{CEn{c}}}jAKh}{{CGfCGf}j}{{ce}j{}{}}00000000000000{{CGhAd}{{Ah{dAf}}}}{{CGjAd}{{Ah{dAf}}}}{{BKnAd}{{Ah{dAf}}}}0{{{CGd{c}}Ad}{{Ah{dAf}}}Nh}{{{CGl{c}}Ad}{{Ah{dAf}}}Nh}{{{CGn{c}}Ad}{{Ah{dAf}}}Nh}{{{CH`{c}}Ad}{{Ah{dAf}}}Nh}{{{CHf{ce}}Ad}{{Ah{dAf}}}NhNh}{{{CEn{c}}Ad}{{Ah{dAf}}}Nh}{{{CHb{c}}Ad}{{Ah{dAf}}}{}}{{CFfAd}{{Ah{dAf}}}}{{CGfAd}{{Ah{dAf}}}}{cc{}}0{cBKn{{Il{{B`{n}}}}}}1111111{{{CHh{c}}}{{CEn{c}}}{}}{{{CHj{c}}}{{CEn{c}}}{}}333{{{B`{n}}}BKn}44444444444{An{{Ah{BKn}}}}{{{CHf{ce}}{CGn{c}}CGb}{{`{{Lb{}{{In{{CH`{c}}}}}}}}}CHl{ABdIf}}{{{CHf{ce}}BKn}jCHl{ABdIf}}{{BKnc}dFh}{CGfFf}{ce{}{}}00000000000{CGhj}{{{CGd{c}}}CHn{}}{{{CHf{ce}}}ElCHl{ABdIf}}`{{{CHf{ce}}}cCHl{ABdIf}}`{{cCGfCFfe}{{CHf{ce}}}CHl{ABdIf}}{cCGf{{Il{Ff}}}}{{CGhCGh}{{Bf{Ed}}}}{{CGjCGj}{{Bf{Ed}}}}{{BKnBKn}{{Bf{Ed}}}}{{{CEn{c}}{CEn{c}}}{{Bf{Ed}}}B@b}{{CI`e}dIf{{Il{{CIb{c}}}}}}{{CI`g}dIf{{Il{{CIb{c}}}}}{{J`{}{{In{e}}}}}}{{CGhc}AhBn}{{CGjc}AhBn}{{BKnc}AhBn}{{{CGd{c}}e}AhCIdBn}{{{CEn{c}}e}AhCIdBn}{{CGfc}AhBn}{{{CGd{c}}}{{Ah{ElCn}}}CId}`{{{CHf{ce}}BKn}{{Bf{{CIf{ce}}}}}CHl{ABdIf}}{{{CHf{ce}}}{{`{{Lb{}{{In{{Dd{BKn{CIf{ce}}}}}}}}}}}CHl{ABdIf}}{ce{}{}}0000000000{cl{}}`{{{CHf{ce}}}{{`{{Lb{}{{In{BKn}}}}}}}CHl{ABdIf}}{c{{Ah{{Df{eg}}{Fn{e}}}}}{}{}Dh}{c{{Ah{e}}}{}{}}00000000000000000000000{cBh{}}00000000000`555555555555```````````````````55{{CHnAd}{{Ah{dAf}}}}{cc{}}73327```````````````````````````````{{cb}d{}}000888888888888`{{{CIh{c}}}{{CIh{c}}}If}{{{CIj{c}}}{{CIj{c}}}If}{{{CIl{c}}}{{CIl{c}}}If}{CInCIn}{{ce}d{}{}}000{{}CIn}{c{{Ah{{CIj{e}}}}}BlCHd}{{{CIf{ce}}}c{}{}}{{{CIb{c}}{CIb{c}}}jAKh}{{{CIj{c}}{CIj{c}}}jAKh}{{{CIl{c}}{CIl{c}}}jAKh}{{ce}j{}{}}00000000{{{CIh{c}}Ad}{{Ah{dAf}}}Nh}{{{CIb{c}}Ad}{{Ah{dAf}}}Nh}{{{CIj{c}}Ad}{{Ah{dAf}}}Nh}{{{CIl{c}}Ad}{{Ah{dAf}}}Nh}{{{CIf{ce}}Ad}{{Ah{dAf}}}NhNh}{{CInAd}{{Ah{dAf}}}}{cc{}}0{{{CJ`{c}}}{{CIb{c}}}{}}{{{CJb{c}}}{{CIb{c}}}{}}{{{CJd{c}}}{{CIj{c}}}{}}{CJf{{CIj{c}}}{}}4{CJh{{CIl{c}}}{}}{{{CJj{c}}}{{CIl{c}}}{}}6666666{{{CIf{ce}}}CJlCHlABd}{{{CIf{ce}}{CIh{c}}CGb}{{`{{Lb{}{{In{{CIb{c}}}}}}}}}CHlABd}{{{CIf{ce}}}jCHlABd}{ce{}{}}00000{{{CIj{c}}}CHn{}}````{{c{Bf{CGf}}CFf}{{CIf{cCJn}}}CHl}{{CI`e}dIf{{Il{{CIb{c}}}}}}{{CI`g}dIf{{Il{{CIb{c}}}}}{{J`{}{{In{e}}}}}}{{{CIj{c}}e}AhCIdBn}{{{CIf{ce}}}CInCHlABd}6666{c{{Ah{e}}}{}{}}00000000000{cBh{}}00000888888{{c{Bf{CGf}}CFfe}{{CIf{ce}}}CHlABd}``9999{{{CK`{ce}}c}j{CKbCKdIf}{}}{{}{{CKf{c}}}{}}{{}{{CK`{ce}}}{}{}}{{{CKf{c}}CGb}{{`{{Lb{}{{In{{Dd{CGbc}}}}}}}}}{}}{{{CK`{ce}}CGb}El{CKbCKdIf}{}}{{{CK`{ce}}c}{{Bf{CGb}}}{CKbCKdIf}{}}{{{CKf{c}}}{{Bf{{Dd{CGb{Bb{c}}}}}}}{}}{{{CKf{c}}Ad}{{Ah{dAf}}}Nh}{{{CK`{ce}}Ad}{{Ah{dAf}}}NhNh}{cc{}}0{{{CK`{ce}}c}{{Bf{e}}}{CKbCKdIf}{}}{{{CKf{c}}CGbc}d{}}{{{CK`{ce}}ceCGb}d{CKbCKdIf}{}}{ce{}{}}0{{{CK`{ce}}}j{CKbCKdIf}{}}{{{CKf{c}}}{{`{{Lb{}{{In{{Dd{CGbc}}}}}}}}}{}}{{{CK`{ce}}}{{`{{Lb{}{{In{{Dd{ceCGb}}}}}}}}}{CKbCKdIf}{}}{{{CK`{ce}}}El{CKbCKdIf}{}}{{}{{CKf{c}}}{}}{{{CKf{c}}CGbc}dAKh}9{c{{Ah{e}}}{}{}}000{cBh{}}088`{{cb}d{}}99{CKhCKh}{{ce}d{}{}}{{}CKh}``````````{{CKhAd}BDb}{cc{}}0{{}{{BCn{{Mb{l`}}}}}}?{CKh{{ACd{{Dd{AnACb}}}}}}{{}An}{ce{}{}};{{}{{BEh{d}}}}<;1````:::{JbCKj}{{JbDb}{{Ah{dCb}}}}{{JbDbAn}{{Ah{dCb}}}}{{DbBj}d}{{CFhBj}d}666666{Jb{{Dd{BCl{Bf{BCl}}}}}}{{}CKl}{DbDb}{CFhCFh}{JbJb}{{ce}d{}{}}00{{JbADd{A`{n}}}{{Ah{dCb}}}}{{DbDb}Ed}{{CFhCFh}Ed}{{ce}Ed{}{}}0{{JbId}{{Ah{CKnCb}}}}{{JbDb{A`{n}}}{{Ah{NjCb}}}}{{JbId{A`{n}}}{{Ah{NjCb}}}}{{JbId}{{Bf{BLb}}}}{Jb{{Bb{BLb}}}}{{}CFh}`{c{{Ah{Db}}}Bl}{c{{Ah{CFh}}}Bl}`{Db{{`{{Lb{}{{In{BCl}}}}}}}}{JbCL`}``{Jb{{Bf{CLb}}}}`{Jb{{CLh{{CLf{CLd}}}}}}`{{DbDb}j}{{CFhCFh}j}{{ce}j{}{}}00000{{DbAd}{{Ah{dAf}}}}{{CFhAd}{{Ah{dAf}}}}{{JbAd}{{Ah{dAf}}}}{cc{}}{BLbDb}{{{Dd{Id{Bf{BLf}}{A`{BCl}}}}}Db}{CLjDb}{IdDb}{CLjCFh}55{{Id{Bf{BLf}}{Bb{BCl}}}Db}666{Jb{{Bf{BLf}}}}`{ce{}{}}00{CFhj}````{Jbd}6{Jb{{Ah{DbCb}}}}{JbId}`{{DbDb}{{Bf{Ed}}}}{{CFhCFh}{{Bf{Ed}}}}```{Db{{Bf{BLf}}}}`{JbCLl}{{Dbc}AhBn}{{CFhc}AhBn}{{Jb{Bb{{Bb{n}}}}}{{Ah{dCb}}}}````;;;{c{{Ah{e}}}{}{}}00000{cBh{}}00`==={Jb{{`{{AGl{}{{In{BLf}}}}}}}}{{Dbc}Db{{J`{}{{In{BCl}}}}}}{{DbBLf}Db}`````````{{}CLn}00{{}CM`}``110`{{CMbId}d}{ce{}{}}0{{cg}{{BEj{i}}}{}{}{{BEl{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}{{CMbAd}{{Ah{dAf}}}}{cc{}}33{{CMbId}j}0{{cg}{{BGd{ei}}}{}{}{{BEl{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}{JbCMb}{CMb{{Dd{Id{Ah{NjCb}}}}}}{CMbEl}0{{{I`{CMb}}Jh}{{Jj{Bf}}}}{{CMbId{A`{n}}}d};{{c{BGj{BGhegi}}}{{BGl{kegi}}}{}BGn{BH`BHb}BHd{}}{{c{BGj{BGhegi}}BHf}{{BGl{kegi}}}{}BGn{BH`BHb}BHd{}}{c{{Ah{e}}}{}{}}0{cBh{}}>{{cg}{{BHh{i}}}{}{}{{BEl{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}```{{cb}d{}}{{CMdc}dCLb}`{ce{}{}}000{CMfCMf}{{ce}d{}{}}{{}CMd}`0{{CMfAd}{{Ah{dAf}}}}{{CMdAd}{{Ah{dAf}}}}{cc{}}{CMhCMf}{cCMd{{J`{}{{In{{Hn{CLb}}}}}}}}22{{{Bb{{Hn{CLb}}}}}CMd}99````{{CLbCFh}d}{{CMdCFh}d}{{CLbJbId}{{Bf{{I`{{Hn{AGl}}}}}}}}{{CMdJbId}{{Bf{{I`{{Hn{AGl}}}}}}}}={c{{Ah{e}}}{}{}}000{cBh{}}0??```??{{CMjAd}{{Ah{dAf}}}}:{ce{}{}}{{}CMj}{lCMj}{{CMjJbId}{{Bf{{I`{{Hn{AGl}}}}}}}}6653`33{{CMlAd}{{Ah{dAf}}}}?4{Id{{Ah{CMlCb}}}}{{CMlCFh}d}{{CMlJbId}{{Bf{{I`{{Hn{AGl}}}}}}}}::97```````{{cb}d{}}00888888{CMnCMn}{CN`CN`}{CNbCNb}{{ce}d{}{}}00{CMnd}{{CMnAd}{{Ah{dAf}}}}{{CN`Ad}{{Ah{dAf}}}}{{CNbAd}{{Ah{dAf}}}}{cc{}}00000{ce{}{}}00{CLlCMn}{{}CN`}{{CLlCNd}CMn}{CNdCN`}{CNdCNb}{{CMnCFh}d}{{CNbCNf}{{Ah{dCb}}}}{{CN`JbId}{{Bf{{I`{{Hn{AGl}}}}}}}}{{CNbId}{{Ah{CNfCb}}}}999{c{{Ah{e}}}{}{}}00000{cBh{}}005;;;{{CLlCNdAHlCNh}CMn}``{{}{{CLh{{CLf{CLd}}}}}}{{CNjIdAn}{{`{{Hl{}{{Dn{{Ah{DbCb}}}}}}}}}}{{CNjIdAn{A`{M`}}}{{`{{Hl{}{{Dn{{Ah{DbCb}}}}}}}}}}{{CNjAn}{{`{{Hl{}{{Dn{{Ah{DbCb}}}}}}}}}}{{CNjAn{A`{M`}}}{{`{{Hl{}{{Dn{{Ah{DbCb}}}}}}}}}}{{CNjcCNh}{{`{{Hl{}{{Dn{{Ah{{`{{Lb{}{{In{CNl}}}}}}Cb}}}}}}}}}CNn}{{CNjcCNh}{{`{{Hl{}{{Dn{{Ah{{`{{Lb{}{{In{CNl}}}}}}Cb}}}}}}}}}{CNnIf}}{{CNjcCNh{A`{M`}}}{{`{{Hl{}{{Dn{{Ah{{`{{Lb{}{{In{CNl}}}}}}Cb}}}}}}}}}{CNnIf}}020`7``````{{cb}d{}}{CO`An}{{{COb{c}}}{{Mb{c{Bb{l}}}}}{COdCOfCKbAOd}}{ce{}{}}00000{CLjCLj}{{ce}d{}{}}{{CO`CO`}Ed}{{ce}Ed{}{}}`{{CO`CO`}j}{{CLjCLj}j}{{ce}j{}{}}00000{{CO`Ad}{{Ah{dAf}}}}0{{CLjAd}{{Ah{dAf}}}}{{{COb{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}{{{COb{CO`}}}CLj}01{CLj{{COb{CO`}}}}2{{{A`{COh}}}{{Ah{CLjCb}}}}{{{A`{COh}}}{{Ah{{COb{c}}Cb}}}{COdCOfCKbAOd}}{{Ide}{{COb{c}}}{COdCOfCKbAOd}{{Lb{}{{In{{Dd{cl}}}}}}}}{CNf{{Ah{CLjCb}}}}{CNf{{Ah{{COb{c}}Cb}}}{COdCOfCKbAOd}}7{An{{Ah{CO`}}}}{{Idc}{{Ah{{COb{e}}Cb}}}{{Lb{}{{In{l}}}}}{COdCOfCKbAOd}}{An{{Ah{IdCb}}}}{{CO`c}dFh}{ce{}{}}00{{{CLh{{CLf{CLd}}}}IdAn}{{Ah{{COb{c}}Cb}}}{COdCOfCKbAOd}}{{{CLh{{CLf{CLd}}}}An}{{Ah{{COb{c}}Cb}}}{COdCOfCKbAOd}}{{Id{Bf{CNd}}{AGj{BCl}}}CLj}{{{COb{c}}}Id{COdCOfCKbAOd}}`{{CO`CO`}{{Bf{Ed}}}}`{{CLjAnAHl}{{Ah{{`{{Lb{}{{In{COh}}}}}}Cb}}}}{{{COb{c}}AnAHl}{{Ah{{`{{Lb{}{{In{COh}}}}}}Cb}}}{COdCOfCKbAOd}}7{{CLjCLlAHl}{{Ah{CNfCb}}}}{{{COb{c}}CLlAHl}{{Ah{CNfCb}}}{COdCOfCKbAOd}}{cl{}}{Idl}{c{{Ah{e}}}{}{}}{An{{Ah{CO`}}}}11111{cBh{}}00>>>````````````````````````````````````````````````````{{cb}d{}}0000000000{NjCOj}{NjCOl}```{{COnj}COn}{CB`{{Ah{{Bb{n}}Cb}}}}{{CKl{Bb{{Bb{n}}}}}CKl}{{CKlD@`}{{Ah{JbCb}}}}{ce{}{}}0000000000000000000000000000000000000{{cg}{{BEj{i}}}{}{}{{BEl{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}0{NjNj}{N`N`}{MjMj}{ADdADd}{MnMn}{D@bD@b}{D@dD@d}{BLbBLb}{D@fD@f}{CFnCFn}{D@hD@h}{{ce}d{}{}}0000000000{{NjADd{A`{n}}}d}{Nj{{Bf{Mn}}}}{NjMn}{{ADdADd}Ed}{{CFnCFn}Ed}{{D@hD@h}Ed}{{ce}Ed{}{}}00{{CKlAHl}CKl}{{COnc}COn{D@jLfANj}}{Nj{{Hn{D@l}}}}`{{COnEl}COn}{{COn{Bf{El}}}COn}1{NjEl}{{}COn}{{}ADd}{{}CKl}{{}D@n}{c{{Ah{D@b}}}Bl}{c{{Ah{D@d}}}Bl}{c{{Ah{BLb}}}Bl}{c{{Ah{D@f}}}Bl}`{{CKl{Hn{CLb}}}CKl}{{CKl{CLh{{CLf{CLd}}}}}CKl}{AEbd}{DA`d}{{COnj}COn}{{N`N`}j}{{MjMj}j}{{ADdADd}j}{{MnMn}j}{{D@bD@b}j}{{D@dD@d}j}{{BLbBLb}j}{{D@fD@f}j}{{CFnCFn}j}{{D@hD@h}j}{{ce}j{}{}}00000000000000000000000000000{{Nj{A`{n}}{A`{n}}{A`{n}}}{{Ah{dDAb}}}}{DA`{{Ah{dMj}}}}{{NjAd}{{Ah{dAf}}}}{{AEbAd}{{Ah{dAf}}}}{{N`Ad}{{Ah{dAf}}}}0{{DA`Ad}{{Ah{dAf}}}}{{MjAd}{{Ah{dAf}}}}0{{COnAd}{{Ah{dAf}}}}{{ADdAd}{{Ah{dAf}}}}0{{CKlAd}{{Ah{dAf}}}}{{MnAd}{{Ah{dAf}}}}0{{CKjAd}{{Ah{dAf}}}}{{CB`Ad}{{Ah{dAf}}}}{{D@bAd}{{Ah{dAf}}}}0{{D@dAd}{{Ah{dAf}}}}{{BLbAd}{{Ah{dAf}}}}{{D@fAd}{{Ah{dAf}}}}0{{CKnAd}{{Ah{dAf}}}}{{CL`Ad}{{Ah{dAf}}}}{{CFnAd}{{Ah{dAf}}}}{{D@hAd}{{Ah{dAf}}}}0{cc{}}00{DAdN`}{MnN`}22{MnMj}3{AHlADd}{DAfADd}{D@`ADd}{nADd}{ACjADd}888{DAhMn}{DAjMn}:::::::::::::::::::::6{M`{{Ah{ADdDAl}}}}{M`ADd}{Nj{{Ah{IdCb}}}}{Nj{{Bf{{Hn{ACb}}}}}}{CB`{{Ah{{Hn{ACb}}Mn}}}}{BLbj}{{ADdc}dFh}{{CFnc}dFh}{{D@hc}dFh}{AEbDAf}{DA`DAf}``{{COnD@`}COn}{{COnCNh}COn}{{CKlj}CKl}{ce{}{}}000000000000000000{CB`{{Ah{{Dd{NjDAn}}CB`}}}}{c{}{}}0{ADdM`}33{AEbj}{{ce}{{Ih{g}}}{}IjHl}0{{COn{Bf{CNh}}}COn}7{{CKl{Bb{Db}}}CKl}`{BLb{{Bf{CNh}}}}``0```{Nj{{Bf{CNl}}}}{CB`{{Bf{CNl}}}}{{CLl{Bb{{Bb{n}}}}{AB`{COn}}j}{{Ah{DB`Cb}}}}{{COnADd}COn}0{Nj{{Bf{El}}}}{{COn{Bf{DBb}}}COn}{{COnAHl}COn}{{cg}{{BGd{ei}}}{}{}{{BEl{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}0{{COnD@`}COn}{{COn{Bf{DBd}}}COn}``{NjDBf}{NjDBh}5{{ADdADd}{{Bf{Ed}}}}{{CFnCFn}{{Bf{Ed}}}}{{D@hD@h}{{Bf{Ed}}}}{Nj{{Bf{{Hn{ACb}}}}}}9{{{I`{CKj}}Jh}Jj}{{{I`{CB`}}Jh}Jj}{{{I`{DA`}}Jh}{{Jj{{Ah{dCd}}}}}}{{{I`{CKn}}Jh}{{Jj{Bf}}}}{{{I`{CL`}}Jh}{{Jj{Bf}}}}{{{I`{AEb}}JhBGf}{{Jj{{Ah{dCd}}}}}}3{{{I`{DA`}}Jh{A`{n}}}{{Jj{{Ah{ElCd}}}}}}{DA`{{Ah{DBjDBl}}}}{CKlCKl}{{CKlCNd}CKl}{{cg}{{K`{ei}}}{}{}{{Ij{}{{Dn{e}}}}}{{Hl{}{{Dn{e}}}}}}0{{c{BGj{BGhegi}}}{{BGl{kegi}}}{}BGn{BH`BHb}BHd{}}0{{c{BGj{BGhegi}}BHf}{{BGl{kegi}}}{}BGn{BH`BHb}BHd{}}0{{AEb{A`{n}}}{{Ah{{Bf{El}}N`}}}}{{AEbElj}{{Ah{{Bf{DBn}}N`}}}}{{AEb{A`{Ff}}}{{Ah{{Bf{El}}N`}}}}{NjDC`}{{AEb{A`{n}}}{{Ah{dDCb}}}}{{AEbEl}{{Ah{{Bb{n}}DCd}}}}{{COnADd}COn}{{CKlD@n}CKl}``{NjBCl}{CB`BCl}{{DA`ADd}{{Ah{dDBl}}}}{NjCNh}{{CKlCLl}CKl}{{NjFf}{{Ah{dDCf}}}}{{COnM`}COn}{{D@bc}AhBn}{{D@dc}AhBn}{{BLbc}AhBn}{{D@fc}AhBn}{{NjADd}d}0{{DA`DBj}{{Ah{dDBl}}}}1{N`{{Bf{Bd}}}}{Mj{{Bf{Bd}}}}{Mn{{Bf{Bd}}}}{NjEl}{NjDCh}{{AEbADd}{{Ah{dDBl}}}}{DA`{{Ah{ADdDCj}}}}{{COnADd}COn}{{COnDCl}COn}{ce{}{}}0000000000{cl{}}000000{{CKlCOn}CKl}{c{{Ah{e}}}{}{}}000000{M`{{Ah{ADdDAl}}}}{DCn{{Ah{ADdDAl}}}}{El{{Ah{ADdDAl}}}}3333333333333333333333333333333{{{I`{c}}Jh}Jj{}}`{cBh{}}0000000000000000008888888888888888888{NjDD`}{{DA`{A`{n}}}{{Ah{ElMj}}}}{{DA`{A`{n}}}{{Ah{dMj}}}}{{DA`{A`{Ff}}}{{Ah{dMj}}}}{{DA`Ff}{{Ah{dMj}}}}{{DA`{A`{Ff}}}{{Ah{DDbMj}}}}{{cg}{{BHh{i}}}{}{}{{BEl{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}0``````````{{cb}d{}}00{c{{Df{eg}}}{}{}Dh}{Id{{B`{n}}}}{Id{{A`{n}}}}{ce{}{}}000000000{C@bC@b}{IdId}{CLlCLl}{{ce}d{}{}}00{{IdId}Ed}{{ce}Ed{}{}}{c{{Ah{C@b}}}Bl}{c{{Ah{Id}}}Bl}{c{{Ah{CLl}}}Bl}{ce{}{{Ej{Eh}}}}0{{C@bC@b}j}{{IdId}j}{{ce}j{}{}}00000{{C@bAd}{{Ah{dAf}}}}000{{DDdAd}{{Ah{dAf}}}}{{IdAd}{{Ah{dAf}}}}0{{DDfAd}{{Ah{dAf}}}}0{{CLlAd}{{Ah{dAf}}}}0{Idl}{DDhC@b}{cc{}}{{{B`{n}}}C@b}011{BObId}{AjDDf}{BOdDDf}4{BO`CLl}5{{{B`{n}}}CLl}5{{{B`{n}}}{{Ah{IdBOd}}}}1{{{B`{n}}{B`{n}}}C@b}888{{{A`{n}}}{{Ah{C@bBOd}}}}{An{{Ah{C@bBOd}}}}{An{{Ah{Id}}}}{An{{Ah{CLl}}}}{{}CLl}{cCLl{BOlBOn}}{{Idc}dFh}{ce{}{}}0000{{DDdDDj}{{Ah{dCb}}}}{{IdId}{{Bf{Ed}}}}{CLlId}{C@b{{B`{n}}}}0{{DDdDDj}d}{{C@bc}AhBn}{{Idc}AhBn}{{CLlc}AhBn}{{CLlId}DDd}{{CLl{A`{n}}}C@b}{DDf{{Bf{Bd}}}}77{CLl{{B`{n}}}}{CLl{{Ah{{DDl{l}}DDn}}}}==={cl{}}000{C@b{{Bb{n}}}}{c{{Ah{{Df{eg}}{Fn{e}}}}}{}{}Dh}{c{{Ah{e}}}{}{}}{DE`{{Ah{C@bDDn}}}}0{{{A`{n}}}{{Ah{C@bBOd}}}}2{{{B`{n}}}{{Ah{Id}}}}3{{{A`{n}}}{{Ah{Id}}}}44{{{A`{n}}}{{Ah{CLl}}}}{c{{Ah{CLlCb}}}{{Ab{{A`{n}}}}}}66666{cBh{}}0000{{Id{A`{n}}C@b}{{Ah{dBOd}}}}{ce{}{}}0000````{{cb}d{}}`````````11``{DEbDEb}{{ce}d{}{}}{{}DEb}``````{{DEbAd}{{Ah{dAf}}}}{cc{}}0`6{DEb{{ACd{{Dd{AnACb}}}}}}```{{}An}````````````````````````````````````````````````8{c{{Ah{e}}}{}{}}0;```````9`````8{DEdDEf}{{DEhD@`}{{Ah{DEdCb}}}}{c{{Ah{DEdCb}}}{{Il{BCl}}}}1{D@`{{Ah{DEdCb}}}}000===={DEhDEh};{DEd}{DEdd}{{DEhDEh}j}{{ce}j{}{}}00{{DEhAd}{{Ah{dAf}}}}{{DEdAd}{{Ah{dAf}}}}>{CNlDEh}{DEjDEd}{cc{}}0{ce{}{}}0`{DEhCNl}`1{c{{Ah{e}}}{}{}}000{cBh{}}0233`{{cb}d{}}44{DElDEl}{{ce}d{}{}}{{}DEl}{{DElDEl}j}>>>{{DElAd}{{Ah{dAf}}}}::9{DEnj}`3`:887:``6::::{DF`DF`}5{DFbd}{{DF`DF`}j}{{ce}j{}{}}00{{DF`Ad}{{Ah{dAf}}}}{{DFbAd}{{Ah{dAf}}}}{cc{}}00{{DF`c}dFh}{ce{}{}}0{DFb{{Ah{dCb}}}}{{}{{Ah{DFbCb}}}}{{DFbc}{{Ah{DF`Cb}}}{{E`{j}{{Dn{{I`{{Hn{Hl}}}}}}}}ANjLf}}3{c{{Ah{e}}}{}{}}000{cBh{}}0{{DFbDF`}{{Ah{dCb}}}}66````{{cb}d{}}00077777777`{DFdDFd}{DFfDFf}{DFhDFh}{DFjDFj}{{ce}d{}{}}000{{}DFd}{{}DFf}{{}DFh}{{DFfDFf}j}{{DFhDFh}j}{{ce}j{}{}}00000{{DFdAd}{{Ah{dAf}}}}{{DFfAd}{{Ah{dAf}}}}0{{DFhAd}{{Ah{dAf}}}}{{DFjAd}{{Ah{dAf}}}}{cc{}}0000000{{DFjCM`{Bf{{AB`{DEd}}}}{Bf{{AB`{DEd}}}}}{{Ah{{AB`{DFf}}Cb}}}}{{DFjCM`{Bf{{AB`{DEd}}}}{Bf{{AB`{DEd}}}}}{{Ah{{DFl{{Ah{{AB`{DFf}}Cb}}}}Cb}}}}`````{ce{}{}}000````{DFd{{ACd{{Dd{AnACb}}}}}}{DFh{{`{{Lb{}{{In{{Dd{BLfCNh}}}}}}}}}}``{{}An}{{{Bf{DFn}}{CLh{{CLf{CLd}}}}}{{Ah{DFjCb}}}}```{{DFjFfBCl}d}``````````5555{cl{}}{c{{Ah{e}}}{}{}}0000000{cBh{}}000`8888````{{cb}d{}}9999{DG`DG`}{{ce}d{}{}}{{}DG`}{{DGbAd}{{Ah{dAf}}}}0{{DG`Ad}{{Ah{dAf}}}}{cc{}}{CbDGb}{DGdDGb}22{ce{}{}}06{{DG`CNl{A`{n}}}{{Ah{CNhDGb}}}}{DGb{{Bf{Bd}}}}2>====<<22`````;;;;{DGfj}3333333333{DGhDGh}{DGfDGf}{DGjDGj}{DFnDFn}>>>>{DFnd}{{}DGh}{{}DGj}{{}DFn}```{{DGfDGf}j}{{ce}j{}{}}00`{{DGhAd}{{Ah{dAf}}}}{{DGfAd}{{Ah{dAf}}}}0{{DGjAd}{{Ah{dAf}}}}{{DFnAd}{{Ah{dAf}}}}{{DGlAd}{{Ah{dAf}}}}{cc{}}00000000{ce{}{}}0000{DGh{{ACd{{Dd{AnACb}}}}}}```{{}An}`{DGjDFn}```{DFn{{DFl{{Ah{DGfl}}}}}}`{DFnd}5555{cl{}}{c{{Ah{e}}}{}{}}000000000{cBh{}}0000{{DFn{BOf{D@`}}}d}`````99999{DFn{{DH`{{Bf{DGn}}}}}}````````````````````````````````````````````````{{cb}d{}}000000{{DHbc}DHb{{E`{}{{Dn{{I`{{Hn{Hl}}}}}}}}LfANj}}<<<<<<<<<<<<<<<<<<<<{{DHbCLl{CLh{{CLf{CLd}}}}}{{Dd{DHdDHf}}}}{{DHbj}DHb}{BLfBLf}{DHhDHh}{DHjDHj}{DHdDHd}{D@nD@n}{CM`CM`}{CLnCLn}{{ce}d{}{}}000000{DHhd}{DHd{{Ah{dDHl}}}}0{{BLfBLf}Ed}{{CLnCLn}Ed}{{ce}Ed{}{}}0{DHd{{Ah{{Dd{DHhEl}}DHl}}}}{{CM`BLf}j}{{BLfD@`}CM`}{BLf}{c{{Ah{BLf}}}Bl}{c{{Ah{CLn}}}Bl}{{}CM`}{{BLfBLf}j}{{DHhDHh}j}{{D@nD@n}j}{{CM`CM`}j}{{CLnCLn}j}{{ce}j{}{}}00000000000000{{BLfAd}{{Ah{dAf}}}}0{{DHhAd}{{Ah{dAf}}}}{{DHjAd}{{Ah{dAf}}}}{{DHlAd}{{Ah{dAf}}}}0{{DHdAd}{{Ah{dAf}}}}{{DHfAd}{{Ah{dAf}}}}{{DHbAd}{{Ah{dAf}}}}{{D@nAd}{{Ah{dAf}}}}{{CM`Ad}{{Ah{dAf}}}}0{{CLnAd}{{Ah{dAf}}}}0{cc{}}{DHnBLf}{CNdBLf}222{CdDHl}{DI`DHl}{DIbDHl}{DIdDHl}{DIfDHl}777777{c{{Ah{CM`Cb}}}{{J`{}{{In{CLn}}}}}}8888888{An{{Ah{BLf}}}}{BLfCM`}{{CM`BLf}{{Bf{{AB`{CLn}}}}}}{{BLfc}dFh}`{{DHbj}DHb}{ce{}{}}000000000{DHhj}{DHd{{Ah{jDHl}}}}{CM`j}44{CM`El}{DHh{{Bf{BCl}}}}{DHd{{Bf{BCl}}}}{cDHb{{Il{BLf}}}}{CM`{{`{{Lb{}{{In{{AB`{CLn}}}}}}}}}}{{DHhj}{{Ah{dCb}}}}{{DHdj}d}{{BLfBLf}{{Bf{Ed}}}}{{CLnCLn}{{Bf{Ed}}}}{DHd{{Ah{CNhDHl}}}}{{DHbDIh}DHb}{{DHbCNd}DHb}{DHdId}{DHf{{Bf{{Ah{{Dd{DHjEl}}DHl}}}}}}{D@nCM`}{{DHhIdFf}{{Ah{dCb}}}}{{DHdIdFf}{{Ah{dDHl}}}}{{DHh{B`{n}}}{{Ah{dCb}}}}0{{DHd{B`{n}}}{{Ah{dDHl}}}}{{BLfc}AhBn}{{CLnc}AhBn}`{{DHbId}DHb}{{DHbc}DHb{{Il{BLf}}}}{DHl{{Bf{Bd}}}}``{ce{}{}}000000{cl{}}000{c{{Ah{e}}}{}{}}0000000000000000000{cBh{}}000000000`{CM`{{`{{Lb{}{{In{BLf}}}}}}}}4444444444``````````{{cb}d{}}55{DIhDIh}{{ce}d{}{}}{{DIhDIh}j}{{ce}j{}{}}00{{DIhAd}{{Ah{dAf}}}}{cc{}}0;{DIj{{Bf{DIh}}}}<::9{DIhAn}=```````````````88{DIld}{{DInDIhDJ`}{{Ah{dCb}}}}````??????????????????????``{{DIn{DJd{DJb}}}}{{c{DJd{e}}}{}{}{}}`{{DIlDJf}DIn}{DInDIn}{DJhDJh}==6{{}DJh}{{}{{DJj{ce}}}{AKfNh}{AKfNh}}{{}DJl}`````{{DIlAd}{{Ah{dAf}}}}{{DInAd}{{Ah{dAf}}}}{{DJhAd}{{Ah{dAf}}}}{{DJ`Ad}{{Ah{dAf}}}}{{{DJj{ce}}Ad}{{Ah{dAf}}}{NhNh}{NhNh}}{{{DJn{ce}}Ad}{{Ah{dAf}}}{NhNh}{NhNh}}{{DK`Ad}{{Ah{dAf}}}}{{{DKb{ce}}Ad}{{Ah{dAf}}}{NhNh}{NhNh}}{{DJlAd}{{Ah{dAf}}}}{{{DKd{ce}}Ad}{{Ah{dAf}}}NhNh}{{DKfAd}{{Ah{dAf}}}}{cc{}}000000000000`{DKf{{Bf{BCl}}}}`0`{ce{}{}}0000000000{DIlj}{DJh{{ACd{{Dd{AnACb}}}}}}`{DIl{{A`{n}}}}`{{}An}{CLlDIl}```{{{I`{DJ`}}Jh}{{Jj{{Ah{dCd}}}}}}{{{I`{DJ`}}JhBGf}{{Jj{{Ah{dCd}}}}}}1{{{I`{DJ`}}Jh{A`{n}}}{{Jj{{Ah{ElCd}}}}}}{{{I`{DJ`}}Jh{A`{DKh}}}{{Jj{{Ah{ElCd}}}}}}{DIlId}`{DIlCLl}`````{DKf{{Ah{dCb}}}}{{{DJj{ce}}}{{Ah{DKfCb}}}NhNh}`>{DKf{{DKj{{Ah{dCb}}}}}}`>>{c{{Ah{e}}}{}{}}000000000000000000000{cBh{}}0000000000``{ce{}{}}0000000000````````````````````````````````````{{cb}d{}}00{DKl{{Ah{DKnDL`}}}}{c{{Df{eg}}}{}{}Dh}{DLb{{B`{n}}}}{DKl{{Ah{DLdDL`}}}}{DKl{{Ah{DLfDL`}}}}{DKl{{Ah{DLhDL`}}}}{DKl{{Ah{DLjDL`}}}}{DKl{{Ah{DLlDL`}}}}{DKl{{Ah{DLnDL`}}}}{DKl{{Ah{DM`DL`}}}}{DKl{{Ah{DMbDL`}}}}{DKl{{Ah{DMdDL`}}}}{DLb{{A`{n}}}}{DKl{{Ah{DMfDL`}}}}{DKl{{Ah{DMhDL`}}}}{DKl{{Ah{DMjDL`}}}}{DKl{{Ah{DMlDL`}}}}{DKl{{Ah{DMnDL`}}}}{DKl{{Ah{DN`DL`}}}}{DKlDNb}{ce{}{}}00000000000{DNdDNd}{DNfDNf}{DLbDLb}{{ce}d{}{}}00{{DLbDLb}Ed}{{ce}Ed{}{}}{{DNd{A`{n}}}{{Ah{{Dd{DNhEl}}DNj}}}}{{}DNd}{{}DLb}{DLb{{A`{n}}}}{ce{}{{Ej{Eh}}}}0{{DNfDNf}j}{{DLbDLb}j}{{ce}j{}{}}00000{DKlDKn}{DKlDLd}{DKlDLf}{DKlDLh}{DKlDLj}{DKlDLl}{DKlDLn}{DKlDM`}{DKlDMb}{DKlDMd}{DKlDMf}{DKlDMh}{DKlDMj}{DKlDMl}{DKlDMn}{DKlDN`}{{DNdAd}{{Ah{dAf}}}}{{DNfAd}{{Ah{dAf}}}}{{DLbAd}{{Ah{dAf}}}}0{{DKlAd}{{Ah{dAf}}}}{{DNjAd}{{Ah{dAf}}}}0{{DNlAd}{{Ah{dAf}}}}0{cc{}}00{{{B`{n}}}DLb}0{DMdDKl}2{DM`DKl}{DKnDKl}{DLlDKl}{DLnDKl}{DMbDKl}{DMfDKl}{DMhDKl}{DLdDKl}{DMnDKl}{DMlDKl}{DMjDKl}{DN`DKl}{DLhDKl}{DLfDKl}{DLjDKl}{cc{}}0000{DNd{{Bf{DNn}}}}{{DLbc}dFh}{ce{}{}}00000{{{A`{n}}}j}{DKlj}000000000000000`{{{A`{n}}}{{Ah{DLbDNl}}}}{{{A`{n}}}{{Ah{{Dd{DLbBCl}}DNl}}}}{{DLbDLb}{{Bf{Ed}}}}{DLb{{Bb{n}}}}{{DLbBCl}{{Bb{n}}}}777{cl{}}00{c{{Ah{{Df{eg}}{Fn{e}}}}}{}{}Dh}{c{{Ah{e}}}{}{}}0{n{{Ah{DNf}}}}1111111111{cBh{}}00000<<<<<<`````<<<<{BCl{{Ah{{CLh{{CLf{CLd}}}}Cb}}}}{{DO`CLl}{{Hn{CMd}}}}{DO`{{CLh{{CLf{CLd}}}}}}{{DObAd}{{Ah{dAf}}}}{{DO`Ad}{{Ah{dAf}}}}{cc{}}0{ce{}{}}0``{{DO`IdCNh}{{Ah{dCb}}}}`{{}{{Ah{DO`Cb}}}}{{}{{Ah{{Dd{CM`BLfDKf}}Cb}}}}{l{{Ah{DO`Cb}}}}====;;44`{{cb}d{}}55{DOdDOd}{{ce}d{}{}}{c{{Ah{DOd}}}Bl}{{DOdDOd}j}{{ce}j{}{}}00{{DOdAd}{{Ah{dAf}}}}0<{{{A`{n}}}{{Ah{DOdCj}}}}={An{{Ah{DOd}}}}={Db{{Ah{DOdCb}}}}{DOdDb}{{DOdc}AhBn}{DOd{{Bb{n}}}}{ce{}{}}{cl{}}{c{{Ah{e}}}{}{}}0{cBh{}}3`{{CLl{Bf{Id}}{Bb{{Bb{n}}}}j}{{Ah{DOfDOh}}}}{{CLl{Bb{{Bb{n}}}}j}{{Ah{DOjDOh}}}}`````5555555555{{DOlAd}{{Ah{dAf}}}}{{DOnAd}{{Ah{dAf}}}}{{DOhAd}{{Ah{dAf}}}}0{{E@`Ad}{{Ah{dAf}}}}0{{E@bAd}{{Ah{dAf}}}}0{cc{}}00{E@dDOh}{E@fE@`}22{E@fE@b}{CLl{{Ah{{Dd{E@hE@j}}DOh}}}}?????{E@h{{Ah{DOlE@`}}}}{DOlId}{DOh{{Bf{Bd}}}}{E@`{{Bf{Bd}}}}{E@b{{Bf{Bd}}}}{cl{}}00{c{{Ah{e}}}{}{}}000000000{cBh{}}0000{{DOlE@l{A`{n}}{A`{n}}}{{Ah{dE@b}}}}{ce{}{}}0000````{{cb}d{}}11111111`{{{E@n{c}}}{{E@n{c}}}{IfIfLf}}{{ce}d{}{}}{{}{{EA`{c}}}{}}{{{DKj{c}}}{}{}}{{{DKj{c}}}d{}}{{{E@n{c}}}d{IfLf}}{EAbd}{{{DKj{c}}Ad}{{Ah{dAf}}}Nh}{{{E@n{c}}Ad}{{Ah{dAf}}}{NhIfLf}}{{EAbAd}{{Ah{dAf}}}}{{{EA`{c}}Ad}{{Ah{dAf}}}Nh}{{{EAd{c}}}{{DKj{c}}}{}}{cc{}}0{{{EAd{c}}}{{E@n{c}}}{IfLf}}111`????{c{}{}}00{{ce}{{Ih{g}}}{}IjHl}00{{AnEAf}EAb}{{{I`{{DKj{c}}}}Jh}Jj{}}{{{I`{{E@n{c}}}}Jh}Jj{IfLf}}{{{I`{{EA`{c}}}}Jh}Jj{HlAGn}}{{cg}{{K`{ei}}}{}{}{{Ij{}{{Dn{e}}}}}{{Hl{}{{Dn{e}}}}}}00{ce{}{}}{c{{Ah{e}}}{}{}}0000000{{{I`{c}}Jh}Jj{}}00{cBh{}}0003333`33{{ce}{{EAh{ce}}}AHbAHb}{{{I`{{EAh{ce}}}}El}dEAjEAj}{{{EAh{ce}}Ad}{{Ah{dAf}}}NhNh}?{{{EAh{ce}}}{{Dd{ce}}}AHbAHb}{{{I`{{EAh{ce}}}}}{{Dd{{I`{c}}{I`{e}}}}}AHbAHb}181{{{I`{{EAh{ce}}}}Jh}{{Jj{{Ah{{A`{n}}Cd}}}}}EAjEAj}{{{I`{{EAh{ce}}}}JhBGf}{{Jj{{Ah{dCd}}}}}AHbAHb}997:`````````````````````````{{cb}d{}}000{{{AB`{EAl}}CB`}{{CFb{{BCn{d}}}}}}{{{EAn{c}}{A`{n}}{AB`{EAl}}}{{EAn{c}}}Jf}{{{EB`{c}}D@`}{{EB`{c}}}Jf}{{{EAn{c}}}cJf}????????????????{{{EB`{c}}}{{BCn{{EAn{c}}}}}Jf}{{{EBb{c}}}EBdJf}{c{{BCn{d}}}{{Ab{ANf}}}}{{{EAn{c}}}BCdJf}{{{EBb{c}}}BCdJf}{EBfEBf}{EBhEBh}{EBjEBj}{{{EBb{c}}}{{EBb{c}}}If}{{ce}d{}{}}000{{}{{EB`{ANn}}}}{{}EBl}{{}EBh}{{{EBb{c}}}e{}{}}{c{{Ah{EBh}}}Bl}{{{EB`{c}}}{{EB`{c}}}Jf}{{{EB`{c}}EBn}{{EB`{c}}}Jf}{{{EAn{c}}}GdJf}{{{EB`{c}}}{{BCn{{EB`{c}}}}}Jf}{{{EB`{c}}BCl}{{BCn{{EB`{c}}}}}Jf}{{{EAn{c}}}JbJf}{{{EBb{c}}}JbJf}{{EBhEBh}j}{{ce}j{}{}}00{{EBfAd}BDb}{{{EB`{c}}Ad}BDb{LhNh}}{{EC`Ad}BDb}{{EBlAd}BDb}{{{EAn{c}}Ad}BDb{}}{{EBhAd}BDb}{{EBjAd}BDb}{{{EBb{c}}Ad}BDbNh}{cc{}}000{{{Hn{CMd}}}EBl}11111111{{{EB`{c}}EBh}{{EB`{c}}}Jf}{{{EAn{c}}{A`{n}}}{{Bf{{AB`{e}}}}}JfEAl}{{{EBb{c}}{A`{n}}}{{Bf{{AB`{e}}}}}JfEAl}{{{EAn{c}}}CBbJf}{{{EBb{c}}}{{Bf{BLf}}}Jf}{{{EB`{c}}j}{{EB`{c}}}Jf}{ce{}{}}00000001{c{{BCn{EBj}}}{{Ab{ANf}}}}{{{EBb{c}}}{{Bb{BCl}}}Jf}{{{EBb{c}}}{{BCn{{Bb{BCl}}}}}Jf}{{{EBb{c}}}CL`Jf}{{{EAn{c}}}JdJf}{{{EBb{c}}}JdJf}{{}{{EB`{ANn}}}}0{{{EBb{c}}}{{Bf{BCl}}}Jf}{{{EB`{c}}EBl}{{EB`{c}}}Jf}{{{EBb{c}}}IdJf}{{{EB`{c}}e}{{BCn{{EB`{AMj}}}}}Jf{{Ab{ANf}}}}{c{{BCn{{EB`{AMj}}}}}{{Ab{ANf}}}}0{{{EB`{c}}{Hn{E`}}}{{EB`{c}}}Jf}{{{EB`{c}}D@n}{{EB`{c}}}Jf}{{{EB`{c}}ECb{Bf{BCl}}}{{EB`{c}}}Jf}{{{EB`{c}}CLl}{{EB`{c}}}Jf}{{EBhc}AhBn}{{{AB`{EAl}}}{{CFb{d}}}}0{{{EBb{c}}}{{BCn{d}}}Jf}{{{EB`{c}}}{{BCn{{EBb{c}}}}}Jf}{{{EAn{c}}}{{BCn{{EBb{c}}}}}Jf}{{cD@`}{{BCn{d}}}{{Ab{ANf}}}}{ce{}{}}000{c{{Ah{e}}}{}{}}000000000000000{cBh{}}000000022222222{{cEBfEC`}{{EB`{c}}}Lh}````````{{cb}d{}}04444{{cj}{{BCn{l}}}{{Ab{ANf}}}}{ECdECd}{ECfECf}{{ce}d{}{}}0{{ECdECd}Ed}{{ce}Ed{}{}}{{ECdECd}j}{{ce}j{}{}}00`{{ECdAd}BDb}{{ECfAd}BDb}{ANfECd}{KdECd}{cc{}}000{ce{}{}}0{{c{Bf{l}}{Bf{Kd}}}{{BCn{Kd}}}{{Ab{{A`{n}}}}}}{Kd{{BCn{CLl}}}}{ECd{{ECh{An}}}}5{{ECdECd}{{Bf{Ed}}}}{ECdANf}{c{{BCn{ECf}}}{{Ab{ANf}}}}{{c{Bf{l}}{Bf{Kd}}}{{BCn{Ff}}}{{Ab{ANf}}}}{c{{BCn{l}}}{{Ab{ANf}}}}{{KdBEd}{{BCn{{Bb{ECd}}}}}}0`99{c{{Ah{e}}}{}{}}000{cBh{}}0;;{{Kdl}ECd}```<<{{ECjAd}BDb}0>{CdECj}{AIlECj}?{ECj{{Bf{Bd}}}}{cl{}}776{ce{}{}}````````{{cb}d{}}{EClAn}{EClANf}33{EClECl}{{ce}d{}{}}{{EClECl}j}{{ce}j{}{}}00{{EClAd}{{Ah{dAf}}}}{{EClAd}BDb}{cc{}}0{An{{Ah{EClc}}}{}};;<0{c{{Ah{e}}}{}{}}0{cBh{}}={{EClc}Kd{{Ab{ANf}}}}````=={{{ECn{c}}c}d{NhLfANj}}????????{ED`ED`}{{{ECn{c}}}{{ECn{c}}}{}}<<{{ED`Ad}BDb}{{{EDb{c}}Ad}BDb{NhAHbAGn}}{{{EDd{c}}Ad}BDbNh}{{{ECn{c}}Ad}BDbNh};;;;;;{{ED`M`}d}{ce{}{}}000{{{EDd{c}}}c{}}{{M`D@`}ED`}{c{{Dd{{EDd{c}}{EDf{M`}}}}}{}}{{{EDh{c}}}{{ECn{c}}}{NhLfANj}}{{}{{ECn{c}}}{NhLfANj}}{{{I`{{EDd{c}}}}Jh}{{Jj{{BEh{d}}}}}{BAjAGn}}{{{I`{{EDb{c}}}}JhBGf}{{Jj{{BEh{d}}}}}{AHbAGn}}1{{{I`{{EDd{c}}}}Jh{A`{n}}}{{Jj{{BEh{El}}}}}{BAjAGn}}{{{ECn{c}}c}{{BCn{d}}}{NhLfANj}}:{ED`{{CFj{D@`}}}}::{c{{Ah{e}}}{}{}}0000000{{{ECn{c}}c}d{NhLfANj}}{cBh{}}000===={{ED`c}{{EDb{c}}}{AHbAGn}}","D":"AHOhBEn","p":[[5,"Private",9206],[1,"unit"],[6,"DecodeKind",10,9207],[5,"DecodeError",10,9207],[1,"bool"],[5,"String",9208],[1,"u8"],[1,"slice"],[10,"AsRef",9209],[5,"Formatter",9210],[5,"Error",9210],[6,"Result",9211],[6,"HexOrBase32ParseError",10,9212],[6,"FromHexError",9213],[1,"str"],[1,"array"],[5,"Vec",9214],[10,"Error",9215],[6,"Option",9216],[5,"TypeId",9217],[6,"AddrInfoOptions",97,9218],[10,"Deserializer",9219],[10,"Serializer",9220],[5,"RpcError",133,9221],[5,"Error",9222],[5,"Error",9223],[5,"BlobTicket",157,9224],[10,"Ticket",157,9225],[6,"Error",157,9225],[6,"BlobFormat",216,9226],[6,"Error",9227],[5,"Hash",216,9226],[5,"NodeAddr",6458,9218],[1,"tuple"],[5,"BitSlice",9228],[10,"BitOrder",9229],[5,"SystemTime",9230],[5,"Tag",216,9231],[17,"Output"],[10,"Fn",9232],[5,"HashAndFormat",216,9226],[6,"Ordering",9233],[5,"TempTag",216,9231],[1,"char"],[10,"FromIterator",9234],[1,"usize"],[5,"Hash",2016,9235],[5,"Hash",9236],[5,"DownloadKind",405,9237],[5,"HashAndFormat",9236],[5,"Bytes",9238],[10,"Hasher",9239],[10,"TagDrop",2981,9231],[5,"Weak",9240],[6,"BitSpanError",9241],[5,"TypeName",9242],[5,"TypeName",9242],[5,"Downloader",405,9237],[5,"DownloadHandle",405,9237],[5,"IntentId",405,9237],[5,"DownloadRequest",405,9237],[6,"DownloadError",405,9237],[5,"ConcurrencyLimits",405,9237],[5,"RetryConfig",405,9237],[6,"FailureAction",405,9237],[6,"GetError",798,9243],[17,"Connection"],[10,"Getter",405,9237],[5,"BroadcastProgressSender",9244],[10,"Future",9245],[5,"Box",9246],[5,"Pin",9247],[10,"Dialer",405,9237],[5,"PublicKey",7357,9248],[10,"Clone",9249],[5,"Join2",9250],[10,"IntoFuture",9251],[10,"Into",9209],[17,"Item"],[10,"IntoIterator",9234],[5,"Endpoint",6458,9252],[5,"LocalPoolHandle",3098,9253],[10,"Store",1512,9254],[5,"Context",9255],[6,"Poll",9256],[6,"DownloadProgress",705,9257],[5,"FlumeProgressSender",3207,9258],[5,"Race2",9259],[6,"ExportProgress",580,9260],[5,"PathBuf",9261],[6,"ExportFormat",1512,9254],[6,"ExportMode",1512,9254],[17,"Msg"],[10,"ProgressSender",3207,9258],[10,"IdGenerator",3207,9258],[5,"Collection",614,9262],[10,"Iterator",9263],[10,"SimpleStore",614,9262],[10,"Send",9264],[10,"Map",1512,9254],[5,"AtStartRoot",825,9265],[6,"EndBlobNext",825,9265],[5,"HashSeq",1127,9266],[1,"u64"],[5,"BTreeMap",9267],[5,"Stats",650,9268],[10,"DoubleEndedIterator",9269],[6,"GetResponseError",650,9268],[6,"WriteError",6847,9270],[6,"DecodeError",2115,9271],[6,"ConnectionError",6847,9272],[6,"ReadError",6847,9273],[1,"f64"],[6,"BlobInfo",705,9257],[6,"BlobId",705,9257],[10,"Debug",9210],[5,"Connection",6847,9274],[10,"FnOnce",9232],[5,"ChunkNum",1851,9275],[5,"RangeSet",2782,9276],[6,"BaoBlobSize",1512,9254],[6,"ConnectedNextError",825,9265],[6,"DecodeError",825,9265],[6,"AtBlobHeaderNextError",825,9265],[6,"ProgressSendError",3207,9258],[5,"AtStartChild",825,9265],[5,"AtBlobHeader",825,9265],[5,"AtEndBlob",825,9265],[5,"AtBlobContent",825,9265],[5,"AtClosing",825,9265],[5,"AtInitial",825,9265],[5,"AtConnected",825,9265],[6,"ConnectedNext",825,9265],[6,"BlobContentNext",825,9265],[6,"BaoContentItem",2115,9277],[5,"GetRequest",1219,9278],[5,"BaoTree",1851,9279],[10,"AsyncSliceWriter",2197,9280],[10,"BaoBatchWriter",1512,9254],[10,"OutboardMut",2197,9281],[5,"TransferState",1038,9282],[5,"BlobState",1038,9282],[6,"BlobProgress",1038,9282],[5,"Arc",9240],[5,"RangeSpecSeq",1219,9283],[10,"Rng",9284],[5,"HashSeqStream",1127,9266],[5,"HashSeqIter",1127,9266],[5,"IntoFallible",9285],[10,"AsyncSliceReader",2197,9280],[5,"Convert",9285],[5,"Metrics",1189,9286],[10,"Any",9217],[5,"IntoIter",9287],[5,"RangeSpec",1219,9283],[6,"Request",1219,9278],[6,"Closed",1219,9278],[5,"NonEmptyRequestRangeSpecIter",1219,9283],[5,"UnknownErrorCode",1219,9278],[5,"RangeSetRef",2782,9276],[5,"RequestRangeSpecIter",9283],[5,"VarInt",6847,9288],[6,"Event",1381,9289],[5,"TransferStats",1381,9289],[6,"SentStatus",1381,9289],[6,"AddProgress",1381,9289],[5,"ResponseWriter",1381,9289],[10,"EventSender",1381,9289],[5,"RecvStream",6847,9273],[5,"SliceReaderStats",9290],[10,"AsyncStreamWriter",9280],[10,"Outboard",2197,9281],[10,"MapEntryMut",1512,9254],[10,"ReadableStore",1512,9254],[6,"EntryStatus",1512,9254],[6,"ImportMode",1512,9254],[6,"ReportLevel",1512,9254],[6,"Event",1512,9254],[6,"ConsistencyCheckProgress",1512,9254],[5,"BoxedProgressSender",3207,9258],[10,"MapEntry",1512,9254],[6,"ValidateProgress",1512,9254],[17,"EntryMut"],[10,"MapMut",1512,9254],[6,"GcMarkEvent",1512,9254],[6,"GcSweepEvent",1512,9254],[6,"ImportProgress",1512,9254],[6,"ExportProgress",1512,9254],[5,"BTreeSet",9291],[10,"Stream",9292],[10,"Unpin",9264],[17,"Entry"],[10,"AsyncRead",9293],[5,"TreeNode",1851,9279],[5,"BlockSize",1851,9275],[5,"Range",9294],[6,"PostOrderOffset",1851,9279],[1,"u32"],[5,"PostOrderChunkIter",2462,9295],[5,"PreOrderPartialChunkIterRef",2462,9295],[5,"HexError",2016,9235],[5,"Hasher",2016,9235],[5,"OutputReader",2016,9235],[6,"SeekFrom",9296],[5,"ArrayString",9297],[6,"EncodeError",2115,9271],[5,"Parent",2115,9277],[5,"Leaf",2115,9277],[10,"CreateOutboard",2197,9281],[10,"AsyncStreamReader",9280],[5,"ResponseDecoder",2197,9281],[6,"ResponseDecoderNext",2197,9281],[5,"PreOrderOutboard",2254,9298],[5,"PostOrderOutboard",2254,9298],[5,"PostOrderMemOutboard",2254,9298],[5,"PreOrderMemOutboard",2254,9298],[10,"Read",9296],[10,"WriteAt",2416,9299],[10,"Default",9300],[10,"PartialEq",9233],[5,"EmptyOutboard",2254,9298],[10,"ReadAt",2416,9299],[10,"AsMut",9209],[5,"DecodeResponseIter",2416,9301],[10,"Outboard",2416,9301],[10,"OutboardMut",2416,9301],[10,"CreateOutboard",2416,9301],[10,"Seek",9296],[10,"Size",2416,9299],[10,"Write",9296],[5,"BytesMut",9302],[6,"BaoChunk",2462,9295],[5,"ResponseIter",2462,9295],[5,"PostOrderNodeIter",2462,9295],[5,"PreOrderNodeIter",2462,9295],[5,"ResponseIterRef",2462,9295],[5,"Store",2589,9303],[5,"InlineOptions",2589,9303],[5,"PathOptions",2589,9303],[5,"BatchOptions",2589,9303],[5,"Options",2589,9303],[5,"FlatStorePaths",2589,9303],[5,"Path",9261],[6,"EntryData",9304],[10,"Sync",9264],[5,"Entry",2723,9305],[5,"Store",2723,9305],[10,"RangeSetEntry",2874,9276],[10,"Array",9306],[10,"Ord",9233],[5,"RangeTo",9294],[5,"RangeFrom",9294],[6,"RangeSetRange",2874,9276],[5,"RangeFull",9294],[5,"SmallVec",9306],[5,"Iter",2874,9276],[10,"PartialOrd",9233],[6,"Bound",9294],[10,"RangeExt",9307],[5,"Entry",2918,9308],[5,"Store",2918,9308],[6,"MemOrFile",2981,9309],[5,"SparseMemFile",2981,9310],[10,"TagCounter",2981,9231],[6,"SetTagOption",2981,9231],[5,"File",9311],[5,"TrackingReader",3067,9312],[5,"TrackingWriter",3067,9312],[10,"AsyncWrite",9313],[5,"Run",3098,9253],[5,"LocalPool",3098,9253],[6,"PanicMode",3098,9253],[5,"Config",3098,9253],[6,"SpawnError",3098,9253],[5,"IgnoreProgressSender",3207,9258],[5,"WithMap",3207,9258],[5,"WithFilterMap",3207,9258],[5,"ProgressSliceWriter",3207,9258],[5,"FallibleProgressSliceWriter",3207,9258],[10,"FnMut",9232],[5,"Sender",9314],[5,"Iroh",3368],[5,"Client",3419],[5,"Client",3443],[5,"RpcService",3368,9315],[6,"SocketAddr",9316],[8,"Result",9222],[5,"Client",3761],[8,"Result",9210],[8,"RpcClient",3368],[5,"Doc",3761],[5,"Client",4029],[5,"Client",4087],[5,"Client",4129],[5,"AuthorId",4164,9317],[5,"Author",4164,9317],[5,"AddOutcome",3443],[6,"WrapOption",3443],[5,"AddProgress",3443],[8,"Result",9223],[5,"Chain2",9318],[10,"IntoStream",9319],[6,"BlobStatus",3443],[5,"DownloadOutcome",3443],[5,"ExportOutcome",3443],[5,"DownloadOptions",3443],[6,"DownloadMode",3443],[5,"CollectionInfo",3443],[5,"BlobInfo",3443],[5,"IncompleteBlobInfo",3443],[5,"DownloadProgress",3443],[5,"ExportProgress",3443],[5,"Reader",3443],[5,"Merge2",9320],[5,"ReadBuf",9321],[6,"NotKeyed",9322],[5,"RateLimiter",9323],[5,"RatelimitedStream",9324],[10,"DirectStateStore",9322],[10,"Clock",9325],[10,"ReasonablyRealtime",9326],[10,"RateLimitingMiddleware",9327],[5,"Jitter",9328],[5,"Zip2",9329],[5,"Entry",3761],[6,"ShareMode",3761],[6,"LiveEvent",3761],[5,"ImportFileOutcome",3761],[5,"ExportFileOutcome",3761],[6,"ImportProgress",3761],[5,"NamespaceId",4164,9317],[5,"ExportFileProgress",3761],[5,"ImportFileProgress",3761],[5,"SignedEntry",4164,9330],[5,"Entry",4164,9330],[6,"LiveEvent",4936,9331],[6,"DownloadPolicy",5268,9332],[5,"Query",5268,9332],[8,"PeerIdBytes",4164,9330],[5,"RecordIdentifier",4164,9330],[5,"DocTicket",4164,9333],[6,"Capability",4164,9330],[6,"CapabilityKind",4164,9330],[5,"OpenState",4850,9334],[5,"SubscribeOpts",4029],[5,"SubscribeRequest",4029,9335],[6,"Command",5724,9336],[17,"Error"],[10,"Sink",9337],[6,"Event",5724,9336],[5,"TopicId",5942,9338],[8,"NodeId",6458,9248],[5,"ConnectionInfo",6847],[5,"NodeStatus",4087],[5,"RelayUrl",7951,9218],[5,"TagInfo",4129],[5,"AuthorPublicKey",4164,9317],[5,"NamespacePublicKey",4164,9317],[5,"Replica",4164,9330],[17,"Target"],[5,"ReplicaInfo",4164,9330],[10,"Deref",9339],[10,"DerefMut",9339],[6,"Event",4164,9330],[6,"InsertOrigin",4164,9330],[6,"ContentStatus",4164,9330],[5,"SyncOutcome",4164,9330],[5,"EntrySignature",4164,9330],[5,"Record",4164,9330],[5,"AuthorHeads",4164,9340],[5,"NamespaceSecret",4164,9317],[6,"InsertError",4164,9330],[6,"CapabilityError",4164,9330],[5,"ReadOnly",4164,9330],[6,"ValidationFailure",4164,9330],[5,"SigningKey",9341],[5,"VerifyingKey",9342],[5,"Error",9343],[5,"NonZero",9344],[5,"Iter",9267],[5,"StoreInstance",5594,9345],[10,"CryptoRngCore",9346],[10,"Sized",9264],[10,"PublicKeyStore",5268,9347],[5,"Signature",7357,9348],[5,"Sender",9349],[5,"Message",9350],[5,"TryFromPrimitiveError",9351],[5,"SyncHandle",4850,9334],[5,"ContentHashesIterator",5594,9345],[5,"OpenOpts",4850,9334],[5,"Store",5268,9345],[5,"SyncEvent",4936,9352],[6,"SyncReason",4936,9353],[6,"Origin",4936,9353],[5,"Engine",4936,9331],[6,"DefaultAuthorStorage",4936,9331],[5,"DefaultAuthor",4936,9331],[6,"Event",9352],[5,"Connecting",6847,9252],[5,"Gossip",5874,9354],[5,"Metrics",5098,9355],[6,"AcceptOutcome",5135,9356],[5,"SyncFinished",5135,9356],[5,"Timings",5135,9356],[6,"AbortReason",5135,9356],[6,"ConnectError",5135,9356],[6,"AcceptError",5135,9356],[5,"FlatQuery",5268,9332],[5,"QueryBuilder",5268,9332],[5,"SingleLatestPerKeyQuery",5268,9332],[5,"MemPublicKeyStore",5268,9347],[6,"ImportNamespaceOutcome",5268,9332],[6,"FilterKind",5268,9332],[6,"SortDirection",5268,9332],[6,"SortBy",5268,9332],[6,"KeyFilter",5268,9332],[6,"AuthorFilter",5268,9332],[6,"OpenError",5268,9332],[10,"DownloadPolicyStore",5268,9332],[5,"LatestIterator",5594,9345],[5,"QueryIterator",9357],[5,"ReadOnlyTables",9358],[5,"ReadOnlyTable",9359],[5,"RecordsRange",5594,9360],[5,"ParentIterator",5594,9345],[6,"GossipEvent",5724,9336],[5,"Message",5724,9336],[5,"GossipDispatcher",5724,9336],[5,"SubscribeOptions",5724,9336],[6,"Event",5942,9361],[5,"Metrics",5838,9362],[8,"Boxed",9363],[5,"JoinTopicFut",5874,9354],[5,"Config",5942,9361],[5,"AddrInfo",6458,9218],[5,"Receiver",9364],[6,"RecvError",9365],[5,"DirectAddr",6847,9366],[5,"Timers",5925,9367],[5,"Instant",9230],[5,"Message",5942,9338],[5,"PeerData",5942,9368],[6,"DeliveryScope",5942,9369],[6,"Scope",5942,9369],[5,"Timer",5942,9338],[6,"InEvent",5942,9338],[6,"OutEvent",5942,9338],[6,"Command",5942,9361],[10,"Deserialize",9219],[5,"State",5942,9338],[6,"Event",9369],[6,"Event",9370],[10,"PeerIdentity",5942,9368],[6,"MessageKind",6222,9338],[10,"IO",5942,9361],[6,"OutEvent",6250,9361],[10,"Serialize",9220],[5,"State",6250,9361],[6,"InEvent",6250,9361],[6,"Message",6250,9361],[6,"Timer",6250,9361],[5,"Stats",6250,9361],[6,"OutEvent",9369],[6,"OutEvent",9370],[6,"Message",9370],[6,"Message",9369],[6,"Timer",9369],[6,"Timer",9370],[5,"Stats",9369],[5,"StdRng",9371],[5,"TimeBoundCache",6391,9372],[10,"Hash",9239],[10,"Eq",9233],[5,"TimerMap",6391,9372],[5,"Metrics",6428],[5,"Accept",6847,9252],[5,"Builder",6847,9252],[5,"ConnectionTypeStream",6847,9373],[5,"DirectAddrsStream",6847,9366],[10,"Discovery",6623,9374],[5,"TokioRuntimeProvider",9375],[5,"GenericConnector",9376],[5,"AsyncResolver",9377],[5,"NodeInfo",6769,9378],[5,"SecretKey",7357,9248],[5,"RelayNode",7951,9379],[5,"RelayMap",7951,9379],[5,"Dialer",6597,9380],[5,"ConcurrentDiscovery",6623,9374],[5,"DiscoveryItem",6623,9374],[5,"Peer",9381],[5,"DnsDiscovery",6665,9382],[5,"LocalSwarmDiscovery",6680,9383],[5,"PkarrPublisher",6693,9384],[5,"PkarrResolver",6693,9384],[5,"PkarrRelayClient",6693,9384],[5,"Url",9385],[5,"SignedPacket",9386],[5,"Duration",9387],[10,"ResolverExt",6754,9388],[6,"IpAddr",9389],[10,"IntoName",9390],[6,"IrohAttr",6769,9378],[5,"TxtAttrs",6769,9378],[10,"FromStr",9391],[10,"Display",9210],[5,"Record",9392],[5,"AcceptBi",9274],[5,"AcceptUni",9274],[5,"TransportConfig",6847,9393],[1,"u16"],[6,"ControlMsg",6847,9394],[5,"DirectAddrInfo",6847,9394],[6,"ConnectionType",6847,9394],[6,"DirectAddrType",6847,9366],[10,"ControllerFactory",9395],[10,"Controller",9395],[6,"RelayMode",7951,9379],[5,"SendStream",6847,9270],[5,"ExportKeyingMaterialError",9396],[6,"ReadableError",9397],[5,"StreamId",9398],[6,"Close",9399],[5,"Error",9400],[5,"VarIntBoundsExceeded",9288],[5,"ZeroRttAccepted",9274],[5,"ServerConfig",9393],[5,"IdleTimeout",9393],[5,"MtuDiscoveryConfig",9393],[5,"OpenBi",9274],[5,"OpenUni",9274],[1,"i32"],[5,"UnknownStream",9274],[5,"Chunk",9401],[5,"ReadDatagram",9274],[6,"ReadExactError",9273],[6,"ReadToEndError",9273],[6,"SendDatagramError",9274],[5,"ConnectionStats",9402],[6,"StoppedError",9270],[1,"f32"],[1,"u128"],[5,"WeakConnectionHandle",9274],[5,"Written",9403],[5,"SharedSecret",7357,9404],[6,"KeyParsingError",7357,9248],[5,"InternalSignature",9405],[10,"Buffer",9406],[5,"Zeroizing",9407],[6,"Error",9408],[5,"Signature",9409],[5,"MagicsockMetrics",7501],[5,"UdpSocket",7599,9410],[5,"BorrowedFd",9411],[6,"IpFamily",7599,9412],[5,"UdpSocket",9413],[5,"LocalAddresses",7646,9414],[5,"Ipv6Addr",9389],[5,"CallbackToken",7670,9415],[5,"Monitor",7670,9416],[5,"Metrics",7705,9417],[5,"Report",7705,9418],[5,"RelayLatencies",7705,9418],[5,"Client",7705,9418],[5,"Receiver",9419],[5,"Client",7846,9420],[5,"Pinger",7811,9421],[6,"PingError",7811,9421],[6,"SurgeError",9422],[5,"ProbeOutput",7846,9420],[5,"Metrics",7846,9423],[5,"Config",7846,9420],[5,"Service",7846,9420],[5,"SocketAddrV4",9316],[5,"Receiver",9424],[5,"HttpClientBuilder",7951],[5,"HttpClient",7951],[5,"HttpClientReceiver",7951],[5,"RelayConn",7951],[6,"ReceivedMessage",7951,9425],[6,"HttpClientError",7951],[5,"RelayUrlInfo",9394],[6,"Error",9426],[5,"Error",9427],[5,"Error",9428],[5,"JoinError",9429],[6,"Protocol",8223,9430],[5,"HeaderValue",9431],[5,"ServerActorTask",8248,9432],[5,"ClientConnHandler",8248,9432],[6,"MaybeTlsStreamServer",8248],[5,"Incoming",9433],[5,"Request",9434],[5,"HeaderMap",9435],[5,"Metrics",8248,9436],[5,"ServerConfig",8248,9437],[5,"Limits",8248,9437],[5,"RelayConfig",8248,9437],[5,"StunConfig",8248,9437],[5,"TlsConfig",8248,9437],[6,"CertConfig",8248,9437],[5,"Server",8248,9437],[5,"IoSlice",9296],[5,"AbortingJoinHandle",8767,9438],[6,"StunAttribute",8433,9439],[5,"AlternateServer",9440],[5,"StunError",9441],[5,"TransactionId",8433,9442],[5,"ErrorCode",9443],[6,"Fingerprint",9444],[5,"MappedAddress",9445],[6,"MessageIntegrity",9446],[6,"MessageIntegritySha256",9447],[5,"Nonce",9448],[5,"PasswordAlgorithm",9449],[5,"PasswordAlgorithms",9450],[5,"Realm",9451],[5,"Software",9452],[5,"Unknown",9453],[5,"UnknownAttributes",9454],[5,"UserHash",9455],[5,"UserName",9456],[5,"XorMappedAddress",9457],[5,"AttributeType",9439],[5,"MessageDecoder",8433,9458],[6,"MessageClass",8433,9459],[5,"StunMessage",9459],[5,"StunDecodeError",8433,9441],[6,"Error",8433,9460],[5,"DecoderContext",9458],[5,"DnsPkarrServer",8640,9461],[5,"CleanupDropGuard",8640,9462],[5,"NodeTicket",8670,9463],[5,"ClientConfig",9464],[5,"GenError",8701,9465],[5,"ServerConfig",9466],[5,"P2pCertificate",8701,9465],[5,"P2pExtension",8701,9465],[5,"ParseError",8701,9465],[5,"VerificationError",8701,9465],[6,"Error",9467],[6,"Error",9468],[5,"Certificate",9469],[5,"PrivateKey",9469],[6,"SignatureScheme",9470],[5,"SharedAbortingJoinHandle",8767,9438],[5,"MaybeFuture",8767,9438],[5,"CancelOnDrop",8767,9438],[5,"JoinHandle",9471],[5,"AbortHandle",9472],[5,"Chain",8837,9473],[10,"AsyncBufRead",9474],[10,"ProtocolHandler",8855,9475],[5,"ProtocolBuilder",8855,9476],[5,"Builder",8855,9476],[5,"Node",8855],[5,"CancellationToken",9477],[6,"DocsStorage",8855,9476],[6,"GcPolicy",8855,9476],[6,"RpcStatus",8855,9478],[6,"DiscoveryConfig",8855,9476],[8,"DnsResolver",6754,9388],[6,"StorageConfig",8855,9476],[8,"IrohServerEndpoint",8855],[5,"DataSource",9037],[5,"PathContent",9037],[6,"Cow",9479],[6,"BaoValidationError",9090],[6,"IrohPaths",9107],[5,"Progress",9140],[5,"ProgressEmitter",9140],[5,"ProgressAsyncReader",9140],[5,"ProgressWriter",9140],[5,"Receiver",9480],[5,"Sender",9480],[8,"RpcResult",133],[15,"Kind",215],[15,"Found",605],[15,"Progress",605],[15,"Done",605],[15,"Partial",782],[15,"Complete",782],[15,"FoundLocal",785],[15,"Found",785],[15,"FoundHashSeq",785],[15,"Progress",785],[15,"Done",785],[15,"AllDone",1478],[15,"Done",1478],[15,"Found",1478],[15,"Progress",1478],[15,"ClientConnected",1488],[15,"GetRequestReceived",1488],[15,"CustomGetRequestReceived",1488],[15,"TransferHashSeqStarted",1488],[15,"TransferBlobCompleted",1488],[15,"TransferCompleted",1488],[15,"TransferAborted",1488],[15,"TaggedBlobAdded",1488],[15,"Update",1814],[15,"Start",1817],[15,"Progress",1817],[15,"Done",1817],[15,"OutboardDone",1824],[15,"Found",1824],[15,"CopyProgress",1824],[15,"Size",1824],[15,"OutboardProgress",1824],[15,"EntryDone",1834],[15,"Entry",1834],[15,"PartialEntry",1834],[15,"EntryProgress",1834],[15,"PartialEntryProgress",1834],[15,"PartialEntryDone",1834],[15,"Starting",1834],[15,"Parent",2580],[15,"Leaf",2580],[8,"ProgressSendResult",3207],[15,"Partial",3758],[15,"Complete",3758],[15,"Wrap",3760],[15,"IngestDone",4016],[15,"Found",4016],[15,"Progress",4016],[15,"AllDone",4016],[15,"InsertRemote",4024],[15,"InsertLocal",4024],[15,"ContentReady",4024],[15,"LocalInsert",5711],[15,"RemoteInsert",5711],[15,"Sync",5718],[15,"InsertRemote",5093],[15,"InsertLocal",5093],[15,"ContentReady",5093],[15,"Connect",5253],[15,"Open",5253],[15,"Sync",5253],[15,"Close",5253],[15,"Abort",5253],[15,"Connect",5265],[15,"Sync",5265],[15,"Close",5265],[8,"Command",5874],[8,"Event",5874],[15,"ReceivedPacket",8218],[15,"Health",8218],[15,"ServerRestarting",8218],[15,"Manual",8430],[15,"LetsEncrypt",8430],[8,"MemNode",8855],[8,"FsNode",8855],[15,"Running",9031]],"r":[[4,9481],[5,9481],[6,9481],[7,9481],[8,9481],[9,9481],[11,9207],[12,9207],[14,9212],[39,9212],[46,9212],[47,9212],[59,9212],[60,9212],[61,9212],[81,9226],[82,9226],[83,9226],[90,9248],[91,9248],[92,9482],[93,9248],[94,9248],[95,9404],[96,9348],[97,9218],[98,9218],[101,9218],[104,9218],[135,9221],[136,9221],[157,9224],[159,9225],[162,9463],[164,9225],[216,9226],[218,9226],[219,9226],[221,9483],[223,9231],[224,9231],[274,9483],[294,9483],[309,9483],[337,9483],[344,9483],[354,9483],[362,9483],[363,9483],[369,9483],[399,9483],[409,9237],[412,9237],[413,9237],[415,9237],[416,9237],[417,9237],[418,9237],[420,9237],[421,9237],[422,9237],[424,9237],[583,9260],[592,9260],[593,9260],[594,9260],[613,9484],[614,9262],[616,9262],[653,9268],[655,9268],[666,9268],[674,9268],[687,9268],[691,9268],[692,9268],[707,9257],[708,9257],[713,9257],[725,9257],[755,9257],[777,9257],[799,9243],[825,9265],[826,9265],[827,9265],[828,9265],[829,9265],[830,9265],[831,9265],[832,9265],[833,9265],[834,9265],[837,9265],[838,9265],[839,9265],[841,9265],[971,9265],[1038,9282],[1039,9282],[1042,9282],[1044,9282],[1122,9485],[1123,9485],[1124,9485],[1125,9485],[1126,9485],[1127,9266],[1128,9266],[1129,9266],[1169,9266],[1189,9286],[1219,9278],[1220,9278],[1223,9278],[1224,9278],[1225,9283],[1227,9283],[1228,9283],[1229,9278],[1232,9278],[1382,9289],[1387,9289],[1388,9289],[1393,9289],[1395,9289],[1401,9289],[1441,9289],[1442,9289],[1449,9289],[1452,9289],[1457,9289],[1515,9254],[1516,9254],[1520,9254],[1528,9254],[1536,9254],[1540,9254],[1541,9254],[1542,9254],[1543,9254],[1544,9254],[1547,9254],[1549,9254],[1550,9254],[1551,9254],[1553,9254],[1554,9254],[1555,9254],[1556,9254],[1565,9254],[1566,9254],[1571,9254],[1577,9254],[1705,9486],[1732,9486],[1737,9486],[1851,9279],[1852,9275],[1853,9279],[1854,9275],[1855,9279],[1856,9279],[1857,9279],[1859,9279],[1951,9279],[1954,9279],[2016,9235],[2017,9235],[2018,9235],[2019,9235],[2020,9235],[2021,9235],[2045,9235],[2075,9235],[2081,9235],[2115,9277],[2116,9271],[2117,9271],[2120,9277],[2126,9277],[2160,9277],[2161,9277],[2169,9277],[2171,9277],[2174,9277],[2197,9280],[2198,9280],[2199,9277],[2200,9281],[2204,9281],[2205,9281],[2207,9281],[2208,9281],[2213,9281],[2216,9281],[2217,9281],[2218,9281],[2231,9281],[2232,9281],[2248,9487],[2249,9487],[2254,9298],[2255,9298],[2256,9298],[2257,9298],[2258,9298],[2416,9301],[2417,9301],[2418,9301],[2419,9301],[2420,9299],[2421,9299],[2422,9299],[2426,9301],[2429,9301],[2430,9301],[2431,9301],[2443,9301],[2444,9301],[2457,9488],[2458,9488],[2462,9295],[2465,9295],[2466,9295],[2467,9295],[2468,9295],[2469,9295],[2470,9295],[2590,9303],[2591,9303],[2592,9303],[2593,9303],[2595,9303],[2596,9303],[2597,9303],[2723,9305],[2724,9305],[2782,9276],[2783,9276],[2784,9276],[2856,9489],[2874,9276],[2877,9276],[2878,9276],[2879,9276],[2880,9276],[2881,9276],[2918,9308],[2919,9308],[2984,9309],[2986,9231],[2987,9310],[2988,9231],[2989,9231],[2990,9231],[2991,9231],[3030,9231],[3032,9231],[3041,9231],[3050,9231],[3067,9312],[3068,9312],[3099,9253],[3100,9253],[3101,9253],[3103,9253],[3104,9253],[3106,9253],[3207,9258],[3209,9258],[3210,9258],[3211,9258],[3212,9258],[3215,9258],[3216,9258],[3217,9258],[3218,9258],[3220,9258],[3221,9258],[3368,3761],[3370,4087],[3372,9315],[3783,9353],[3789,9352],[3791,9353],[4035,9335],[4164,9317],[4165,9340],[4166,9317],[4167,9317],[4169,9330],[4170,9330],[4171,9330],[4174,9330],[4175,9330],[4176,9333],[4177,9330],[4179,9330],[4180,9330],[4182,9330],[4183,9330],[4188,9330],[4190,9317],[4192,9317],[4193,9317],[4195,9330],[4196,9330],[4199,9330],[4201,9330],[4202,9330],[4204,9330],[4205,9330],[4206,9330],[4209,9330],[4212,9330],[4234,9490],[4399,9490],[4624,9490],[4627,9490],[4679,9490],[4682,9490],[4850,9334],[4851,9334],[4852,9334],[4939,9331],[4940,9331],[4942,9331],[4945,9331],[4950,9353],[4954,9352],[4956,9353],[4993,9331],[5098,9355],[5136,9356],[5137,9356],[5138,9356],[5145,9356],[5146,9356],[5154,9356],[5155,9356],[5181,9356],[5206,9356],[5271,9332],[5274,9332],[5275,9332],[5280,9332],[5281,9332],[5282,9332],[5285,9332],[5286,9347],[5290,9332],[5294,9347],[5295,9332],[5296,9332],[5297,9332],[5298,9332],[5299,9332],[5300,9345],[5456,9332],[5594,9345],[5595,9345],[5596,9345],[5597,9360],[5598,9345],[5599,9345],[5664,9340],[5666,9330],[5667,9330],[5668,9330],[5671,9330],[5672,9330],[5673,9330],[5675,9330],[5676,9330],[5678,9330],[5679,9330],[5684,9330],[5688,9330],[5689,9330],[5692,9330],[5694,9330],[5695,9330],[5697,9330],[5698,9330],[5699,9330],[5702,9330],[5705,9330],[5720,9491],[5721,9491],[5722,9491],[5723,9491],[5726,9336],[5727,9336],[5729,9336],[5730,9336],[5732,9336],[5736,9336],[5838,9362],[5875,9354],[5876,9354],[5877,9354],[5878,9354],[5880,9354],[5922,9354],[5925,9367],[5934,9367],[5935,9367],[5941,9367],[5943,9361],[5945,9361],[5946,9369],[5949,9361],[5950,9361],[5951,9338],[5953,9338],[5958,9338],[5959,9368],[5962,9368],[5967,9369],[5969,9338],[5972,9338],[5974,9338],[6155,9368],[6170,9368],[6209,9368],[6227,9338],[6228,9338],[6229,9338],[6230,9338],[6236,9338],[6237,9338],[6239,9338],[6251,9361],[6253,9361],[6254,9361],[6257,9361],[6260,9361],[6261,9361],[6263,9361],[6266,9361],[6274,9361],[6275,9361],[6278,9361],[6391,9372],[6392,9372],[6458,9218],[6459,9252],[6460,9218],[6461,9248],[6495,9492],[6498,9492],[6502,9492],[6504,9492],[6506,9492],[6536,9481],[6537,9492],[6538,9492],[6539,9492],[6547,9492],[6548,9492],[6549,9492],[6556,9492],[6557,9492],[6558,9492],[6559,9492],[6572,9492],[6579,9493],[6580,9493],[6581,9493],[6582,9493],[6583,9493],[6584,9493],[6585,9494],[6586,9494],[6587,9494],[6588,9494],[6589,9494],[6590,9494],[6591,9494],[6592,9495],[6593,9495],[6594,9495],[6595,9495],[6596,9495],[6597,9380],[6623,9374],[6624,9374],[6625,9374],[6636,9374],[6649,9374],[6650,9374],[6665,9382],[6666,9382],[6667,9382],[6680,9383],[6693,9384],[6694,9384],[6695,9384],[6696,9384],[6697,9384],[6698,9384],[6699,9384],[6754,9388],[6755,9388],[6756,9388],[6767,9388],[6768,9388],[6770,9378],[6771,9378],[6772,9378],[6774,9378],[6815,9378],[6833,9378],[6847,9252],[6848,9218],[6850,9252],[6852,9252],[6853,9274],[6855,9272],[6859,9394],[6860,9373],[6861,9394],[6863,9366],[6864,9394],[6865,9366],[6866,9366],[6867,9252],[6874,9218],[6879,9273],[6880,9273],[6884,9270],[6889,9393],[6894,9288],[6896,9270],[7001,9252],[7123,9252],[7178,9252],[7360,9248],[7361,9248],[7362,9482],[7363,9248],[7364,9248],[7365,9404],[7366,9348],[7599,9412],[7600,9410],[7633,9496],[7635,9496],[7646,9414],[7661,9414],[7670,9415],[7671,9416],[7705,9418],[7706,9417],[7707,9418],[7708,9418],[7813,9421],[7814,9421],[7846,9420],[7847,9420],[7848,9423],[7849,9420],[7850,9420],[7973,9497],[7984,9425],[7987,9379],[7988,9379],[7989,9379],[7991,9218],[8120,9498],[8159,9498],[8223,9430],[8224,9430],[8225,9430],[8248,9437],[8249,9432],[8251,9437],[8254,9436],[8256,9437],[8257,9437],[8258,9432],[8259,9437],[8260,9437],[8262,9437],[8434,9460],[8443,9459],[8444,9458],[8456,9439],[8457,9441],[8459,9442],[8582,9460],[8599,9499],[8600,9460],[8601,9460],[8603,9460],[8604,9460],[8637,9500],[8638,9500],[8639,9500],[8640,9462],[8641,9461],[8646,9501],[8660,9462],[8670,9463],[8698,9502],[8699,9502],[8700,9502],[8701,9465],[8702,9465],[8703,9465],[8704,9465],[8705,9465],[8732,9465],[8738,9465],[8767,9438],[8768,9438],[8769,9438],[8770,9438],[8780,9438],[8837,9473],[8840,9473],[8855,9476],[8857,9476],[8861,9476],[8862,9476],[8864,9476],[8874,9476],[8875,9475],[8876,9478],[8879,9476]],"b":[[40,"impl-Display-for-DecodeKind"],[41,"impl-Debug-for-DecodeKind"],[42,"impl-Debug-for-DecodeError"],[43,"impl-Display-for-DecodeError"],[44,"impl-Debug-for-HexOrBase32ParseError"],[45,"impl-Display-for-HexOrBase32ParseError"],[50,"impl-From%3CFromHexError%3E-for-HexOrBase32ParseError"],[52,"impl-From%3CDecodeError%3E-for-HexOrBase32ParseError"],[117,"impl-Display-for-AddrInfoOptions"],[118,"impl-Debug-for-AddrInfoOptions"],[143,"impl-Debug-for-RpcError"],[144,"impl-Display-for-RpcError"],[146,"impl-From%3CError%3E-for-RpcError"],[147,"impl-From%3CError%3E-for-RpcError"],[179,"impl-Debug-for-BlobTicket"],[180,"impl-Display-for-BlobTicket"],[181,"impl-Display-for-Error"],[182,"impl-Debug-for-Error"],[185,"impl-From%3CDecodeError%3E-for-Error"],[186,"impl-From%3CError%3E-for-Error"],[230,"impl-Hash"],[231,"impl-Value-for-Hash"],[233,"impl-RedbValue-for-Tag"],[234,"impl-Value-for-Tag"],[238,"impl-Borrow%3C%5Bu8%5D%3E-for-Hash"],[239,"impl-Borrow%3C%5Bu8;+32%5D%3E-for-Hash"],[267,"impl-RedbKey-for-Tag"],[268,"impl-Key-for-Tag"],[297,"impl-Value-for-Tag"],[298,"impl-RedbValue-for-Tag"],[299,"impl-Debug-for-Hash"],[300,"impl-Display-for-Hash"],[301,"impl-Debug-for-BlobFormat"],[302,"impl-Display-for-BlobFormat"],[303,"impl-Debug-for-HashAndFormat"],[304,"impl-Display-for-HashAndFormat"],[305,"impl-Debug-for-Tag"],[306,"impl-Display-for-Tag"],[313,"impl-From%3CHash%3E-for-Hash"],[314,"impl-From%3C%5Bu8;+32%5D%3E-for-Hash"],[315,"impl-From%3C%26%5Bu8;+32%5D%3E-for-Hash"],[316,"impl-From%3CHash%3E-for-Hash"],[319,"impl-From%3CDownloadKind%3E-for-HashAndFormat"],[320,"impl-From%3CHashAndFormat%3E-for-HashAndFormat"],[322,"impl-From%3CBytes%3E-for-Tag"],[323,"impl-From%3CString%3E-for-Tag"],[324,"impl-From%3C%26str%3E-for-Tag"],[326,"impl-Hash"],[327,"impl-Value-for-Hash"],[329,"impl-RedbValue-for-Tag"],[330,"impl-Value-for-Tag"],[397,"impl-Value-for-Tag"],[398,"impl-RedbValue-for-Tag"],[472,"impl-Display-for-IntentId"],[473,"impl-Debug-for-IntentId"],[478,"impl-Debug-for-DownloadKind"],[479,"impl-Display-for-DownloadKind"],[480,"impl-Debug-for-DownloadError"],[481,"impl-Display-for-DownloadError"],[503,"impl-DownloadKind"],[504,"impl-Hash-for-DownloadKind"],[676,"impl-Debug-for-GetResponseError"],[677,"impl-Display-for-GetResponseError"],[679,"impl-From%3CError%3E-for-GetResponseError"],[680,"impl-From%3CWriteError%3E-for-GetResponseError"],[681,"impl-From%3CDecodeError%3E-for-GetResponseError"],[683,"impl-From%3CConnectionError%3E-for-GetResponseError"],[684,"impl-From%3CError%3E-for-GetResponseError"],[685,"impl-From%3CReadError%3E-for-GetResponseError"],[807,"impl-Debug-for-GetError"],[808,"impl-Display-for-GetError"],[809,"impl-From%3CConnectedNextError%3E-for-GetError"],[810,"impl-From%3CWriteError%3E-for-GetError"],[812,"impl-From%3CReadError%3E-for-GetError"],[813,"impl-From%3CDecodeError%3E-for-GetError"],[814,"impl-From%3CAtBlobHeaderNextError%3E-for-GetError"],[815,"impl-From%3CProgressSendError%3E-for-GetError"],[816,"impl-From%3CError%3E-for-GetError"],[817,"impl-From%3CConnectionError%3E-for-GetError"],[899,"impl-Display-for-ConnectedNextError"],[900,"impl-Debug-for-ConnectedNextError"],[904,"impl-Debug-for-AtBlobHeaderNextError"],[905,"impl-Display-for-AtBlobHeaderNextError"],[907,"impl-Debug-for-DecodeError"],[908,"impl-Display-for-DecodeError"],[915,"impl-From%3CAtStartChild%3E-for-ConnectedNext"],[917,"impl-From%3CAtStartRoot%3E-for-ConnectedNext"],[918,"impl-From%3CAtClosing%3E-for-ConnectedNext"],[926,"impl-From%3CAtBlobHeaderNextError%3E-for-DecodeError"],[927,"impl-From%3CError%3E-for-DecodeError"],[929,"impl-From%3CDecodeError%3E-for-DecodeError"],[931,"impl-From%3C(AtBlobContent,+Result%3CBaoContentItem,+DecodeError%3E)%3E-for-BlobContentNext"],[932,"impl-From%3CAtEndBlob%3E-for-BlobContentNext"],[935,"impl-From%3CAtStartChild%3E-for-EndBlobNext"],[936,"impl-From%3CAtClosing%3E-for-EndBlobNext"],[1297,"impl-Debug-for-UnknownErrorCode"],[1298,"impl-Display-for-UnknownErrorCode"],[1680,"impl-Display-for-ReportLevel"],[1681,"impl-Debug-for-ReportLevel"],[1867,"impl-Add-for-ChunkNum"],[1868,"impl-Add%3Cu64%3E-for-ChunkNum"],[1906,"impl-PartialEq%3Cu64%3E-for-ChunkNum"],[1907,"impl-PartialEq-for-ChunkNum"],[1923,"impl-Debug-for-ChunkNum"],[1924,"impl-Display-for-ChunkNum"],[1925,"impl-Debug-for-BlockSize"],[1926,"impl-Display-for-BlockSize"],[1929,"impl-Debug-for-TreeNode"],[1930,"impl-Display-for-TreeNode"],[1965,"impl-PartialOrd-for-ChunkNum"],[1966,"impl-PartialOrd%3Cu64%3E-for-ChunkNum"],[1982,"impl-Sub-for-ChunkNum"],[1983,"impl-Sub%3Cu64%3E-for-ChunkNum"],[2046,"impl-PartialEq-for-Hash"],[2047,"impl-PartialEq%3C%5Bu8;+iroh_blake3::::%7Bimpl%235%7D::%7Bconstant%230%7D%5D%3E-for-Hash"],[2048,"impl-PartialEq%3C%5Bu8%5D%3E-for-Hash"],[2056,"impl-Debug-for-Hash"],[2057,"impl-Display-for-Hash"],[2058,"impl-Display-for-HexError"],[2059,"impl-Debug-for-HexError"],[2063,"impl-From%3C%5Bu8;+iroh_blake3::::%7Bimpl%231%7D::%7Bconstant%230%7D%5D%3E-for-Hash"],[2064,"impl-From%3CHash%3E-for-Hash"],[2144,"impl-Display-for-DecodeError"],[2145,"impl-Debug-for-DecodeError"],[2146,"impl-Display-for-EncodeError"],[2147,"impl-Debug-for-EncodeError"],[2158,"impl-From%3CLeaf%3E-for-BaoContentItem"],[2159,"impl-From%3CParent%3E-for-BaoContentItem"],[2283,"impl-CreateOutboard-for-PreOrderOutboard%3CW%3E"],[2284,"impl-CreateOutboard-for-PreOrderOutboard%3CW%3E"],[2285,"impl-CreateOutboard-for-PostOrderOutboard%3CW%3E"],[2286,"impl-CreateOutboard-for-PostOrderOutboard%3CW%3E"],[2319,"impl-CreateOutboard-for-PreOrderOutboard%3CW%3E"],[2320,"impl-CreateOutboard-for-PreOrderOutboard%3CW%3E"],[2321,"impl-CreateOutboard-for-PostOrderOutboard%3CW%3E"],[2322,"impl-CreateOutboard-for-PostOrderOutboard%3CW%3E"],[2330,"impl-Outboard-for-EmptyOutboard"],[2331,"impl-Outboard-for-EmptyOutboard"],[2332,"impl-Outboard-for-PreOrderOutboard%3CR%3E"],[2333,"impl-Outboard-for-PreOrderOutboard%3CR%3E"],[2334,"impl-Outboard-for-PostOrderOutboard%3CR%3E"],[2335,"impl-Outboard-for-PostOrderOutboard%3CR%3E"],[2336,"impl-Outboard-for-PostOrderMemOutboard%3CT%3E"],[2337,"impl-Outboard-for-PostOrderMemOutboard%3CT%3E"],[2338,"impl-Outboard-for-PreOrderMemOutboard%3CT%3E"],[2339,"impl-Outboard-for-PreOrderMemOutboard%3CT%3E"],[2342,"impl-Outboard-for-EmptyOutboard"],[2343,"impl-Outboard-for-EmptyOutboard"],[2344,"impl-Outboard-for-PreOrderOutboard%3CR%3E"],[2345,"impl-Outboard-for-PreOrderOutboard%3CR%3E"],[2346,"impl-Outboard-for-PostOrderOutboard%3CR%3E"],[2347,"impl-Outboard-for-PostOrderOutboard%3CR%3E"],[2348,"impl-Outboard-for-PostOrderMemOutboard%3CT%3E"],[2349,"impl-Outboard-for-PostOrderMemOutboard%3CT%3E"],[2350,"impl-Outboard-for-PreOrderMemOutboard%3CT%3E"],[2351,"impl-Outboard-for-PreOrderMemOutboard%3CT%3E"],[2357,"impl-OutboardMut-for-EmptyOutboard"],[2358,"impl-OutboardMut-for-EmptyOutboard"],[2359,"impl-OutboardMut-for-PreOrderOutboard%3CW%3E"],[2360,"impl-OutboardMut-for-PreOrderOutboard%3CW%3E"],[2361,"impl-OutboardMut-for-PostOrderOutboard%3CW%3E"],[2362,"impl-OutboardMut-for-PostOrderOutboard%3CW%3E"],[2363,"impl-OutboardMut-for-PostOrderMemOutboard%3CT%3E"],[2364,"impl-OutboardMut-for-PostOrderMemOutboard%3CT%3E"],[2365,"impl-OutboardMut-for-PreOrderMemOutboard%3CT%3E"],[2366,"impl-OutboardMut-for-PreOrderMemOutboard%3CT%3E"],[2367,"impl-OutboardMut-for-EmptyOutboard"],[2368,"impl-OutboardMut-for-EmptyOutboard"],[2369,"impl-OutboardMut-for-PreOrderOutboard%3CW%3E"],[2370,"impl-OutboardMut-for-PreOrderOutboard%3CW%3E"],[2371,"impl-OutboardMut-for-PostOrderOutboard%3CW%3E"],[2372,"impl-OutboardMut-for-PostOrderOutboard%3CW%3E"],[2373,"impl-OutboardMut-for-PostOrderMemOutboard%3CT%3E"],[2374,"impl-OutboardMut-for-PostOrderMemOutboard%3CT%3E"],[2375,"impl-OutboardMut-for-PreOrderMemOutboard%3CT%3E"],[2376,"impl-OutboardMut-for-PreOrderMemOutboard%3CT%3E"],[2381,"impl-Outboard-for-EmptyOutboard"],[2382,"impl-Outboard-for-EmptyOutboard"],[2383,"impl-Outboard-for-PreOrderOutboard%3CR%3E"],[2384,"impl-Outboard-for-PreOrderOutboard%3CR%3E"],[2385,"impl-Outboard-for-PostOrderOutboard%3CR%3E"],[2386,"impl-Outboard-for-PostOrderOutboard%3CR%3E"],[2387,"impl-Outboard-for-PostOrderMemOutboard%3CT%3E"],[2388,"impl-Outboard-for-PostOrderMemOutboard%3CT%3E"],[2389,"impl-Outboard-for-PreOrderMemOutboard%3CT%3E"],[2390,"impl-Outboard-for-PreOrderMemOutboard%3CT%3E"],[2788,"impl-BitAnd%3CRangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2789,"impl-BitAnd%3C%26RangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2790,"impl-BitAnd%3C%26RangeSet%3CA%3E%3E-for-RangeSet%3CA%3E"],[2791,"impl-BitAnd-for-RangeSet%3CA%3E"],[2793,"impl-BitOr-for-RangeSet%3CA%3E"],[2794,"impl-BitOr%3CRangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2795,"impl-BitOr%3C%26RangeSet%3CA%3E%3E-for-RangeSet%3CA%3E"],[2796,"impl-BitOr%3C%26RangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2798,"impl-BitXor%3C%26RangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2799,"impl-BitXor%3CRangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2800,"impl-BitXor%3C%26RangeSet%3CA%3E%3E-for-RangeSet%3CA%3E"],[2801,"impl-BitXor-for-RangeSet%3CA%3E"],[2829,"impl-From%3CRange%3CT%3E%3E-for-RangeSet%3CA%3E"],[2830,"impl-From%3CRangeTo%3CT%3E%3E-for-RangeSet%3CA%3E"],[2831,"impl-From%3Cbool%3E-for-RangeSet%3CA%3E"],[2832,"impl-From%3CRangeFrom%3CT%3E%3E-for-RangeSet%3CA%3E"],[2834,"impl-From%3CRangeSetRange%3CT%3E%3E-for-RangeSet%3CA%3E"],[2835,"impl-From%3CRangeFull%3E-for-RangeSet%3CA%3E"],[2853,"impl-Not-for-%26RangeSet%3CA%3E"],[2854,"impl-Not-for-RangeSet%3CA%3E"],[2859,"impl-Sub%3CRangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2860,"impl-Sub-for-RangeSet%3CA%3E"],[2861,"impl-Sub%3C%26RangeSet%3CA%3E%3E-for-RangeSet%3CA%3E"],[2862,"impl-Sub%3C%26RangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2893,"impl-From%3CRange%3CT%3E%3E-for-RangeSetRange%3CT%3E"],[2894,"impl-From%3CRangeFrom%3CT%3E%3E-for-RangeSetRange%3CT%3E"],[3045,"impl-Size-for-MemOrFile%3CBytes,+File%3E"],[3046,"impl-MemOrFile%3CM,+(F,+u64)%3E"],[3143,"impl-Display-for-SpawnError"],[3144,"impl-Debug-for-SpawnError"],[3269,"impl-Display-for-ProgressSendError"],[3270,"impl-Debug-for-ProgressSendError"],[3394,"impl-From%3C%26Iroh%3E-for-%26RpcClient%3CRpcService,+Connection%3CRpcService%3E%3E"],[3395,"impl-From%3C%26Doc%3E-for-%26RpcClient%3CRpcService,+Connection%3CRpcService%3E%3E"],[3878,"impl-Display-for-ShareMode"],[3879,"impl-Debug-for-ShareMode"],[3880,"impl-Debug-for-LiveEvent"],[3881,"impl-Display-for-LiveEvent"],[3888,"impl-From%3CSignedEntry%3E-for-Entry"],[3890,"impl-From%3CEntry%3E-for-Entry"],[4245,"impl-AsRef%3C%5Bu8;+32%5D%3E-for-NamespaceId"],[4246,"impl-AsRef%3C%5Bu8%5D%3E-for-NamespaceId"],[4247,"impl-AsRef%3C%5Bu8;+32%5D%3E-for-AuthorId"],[4248,"impl-AsRef%3C%5Bu8%5D%3E-for-AuthorId"],[4445,"impl-Debug-for-DocTicket"],[4446,"impl-Display-for-DocTicket"],[4451,"impl-Display-for-CapabilityKind"],[4452,"impl-Debug-for-CapabilityKind"],[4454,"impl-Display-for-CapabilityError"],[4455,"impl-Debug-for-CapabilityError"],[4458,"impl-Display-for-ReadOnly"],[4459,"impl-Debug-for-ReadOnly"],[4460,"impl-Display-for-InsertError"],[4461,"impl-Debug-for-InsertError"],[4462,"impl-Display-for-ValidationFailure"],[4463,"impl-Debug-for-ValidationFailure"],[4470,"impl-Debug-for-Author"],[4471,"impl-Display-for-Author"],[4472,"impl-Display-for-AuthorPublicKey"],[4473,"impl-Debug-for-AuthorPublicKey"],[4474,"impl-Display-for-NamespaceSecret"],[4475,"impl-Debug-for-NamespaceSecret"],[4476,"impl-Debug-for-NamespacePublicKey"],[4477,"impl-Display-for-NamespacePublicKey"],[4478,"impl-Debug-for-NamespaceId"],[4479,"impl-Display-for-NamespaceId"],[4480,"impl-Debug-for-AuthorId"],[4481,"impl-Display-for-AuthorId"],[4490,"impl-From%3CNamespaceId%3E-for-Capability"],[4491,"impl-From%3CNamespaceSecret%3E-for-Capability"],[4497,"impl-From%3CValidationFailure%3E-for-InsertError"],[4499,"impl-From%3CReadOnly%3E-for-InsertError"],[4510,"impl-From%3CAuthor%3E-for-AuthorPublicKey"],[4511,"impl-From%3C%26Author%3E-for-AuthorPublicKey"],[4513,"impl-From%3CVerifyingKey%3E-for-AuthorPublicKey"],[4517,"impl-From%3CNamespaceSecret%3E-for-NamespacePublicKey"],[4518,"impl-From%3CVerifyingKey%3E-for-NamespacePublicKey"],[4519,"impl-From%3C%26NamespaceSecret%3E-for-NamespacePublicKey"],[4520,"impl-From%3C%26NamespacePublicKey%3E-for-NamespaceId"],[4521,"impl-From%3C%26%5Bu8;+32%5D%3E-for-NamespaceId"],[4523,"impl-From%3CNamespacePublicKey%3E-for-NamespaceId"],[4524,"impl-From%3CNamespaceSecret%3E-for-NamespaceId"],[4525,"impl-From%3C%5Bu8;+32%5D%3E-for-NamespaceId"],[4526,"impl-From%3C%26%5Bu8;+32%5D%3E-for-AuthorId"],[4527,"impl-From%3C%5Bu8;+32%5D%3E-for-AuthorId"],[4529,"impl-From%3CAuthor%3E-for-AuthorId"],[4530,"impl-From%3C%26AuthorPublicKey%3E-for-AuthorId"],[4531,"impl-From%3CAuthorPublicKey%3E-for-AuthorId"],[4539,"impl-FromIterator%3C(AuthorId,+u64)%3E-for-AuthorHeads"],[4540,"impl-FromIterator%3C(u64,+AuthorId)%3E-for-AuthorHeads"],[5015,"impl-Display-for-LiveEvent"],[5016,"impl-Debug-for-LiveEvent"],[5191,"impl-Display-for-AcceptError"],[5192,"impl-Debug-for-AcceptError"],[5193,"impl-Display-for-ConnectError"],[5194,"impl-Debug-for-ConnectError"],[5347,"impl-QueryBuilder%3CSingleLatestPerKeyQuery%3E"],[5348,"impl-QueryBuilder%3CFlatQuery%3E"],[5411,"impl-Display-for-OpenError"],[5412,"impl-Debug-for-OpenError"],[5415,"impl-Debug-for-FilterKind"],[5416,"impl-Display-for-FilterKind"],[5435,"impl-From%3CQueryBuilder%3CFlatQuery%3E%3E-for-Query"],[5436,"impl-From%3CQueryBuilder%3CSingleLatestPerKeyQuery%3E%3E-for-Query"],[5459,"impl-DownloadPolicyStore-for-Store"],[5460,"impl-Store"],[5990,"impl-AsRef%3C%5Bu8;+32%5D%3E-for-TopicId"],[5991,"impl-AsRef%3C%5Bu8%5D%3E-for-TopicId"],[6079,"impl-Debug-for-TopicId"],[6080,"impl-Display-for-TopicId"],[6100,"impl-From%3CEvent%3CPI%3E%3E-for-Event%3CPI%3E"],[6101,"impl-From%3CEvent%3CPI%3E%3E-for-Event%3CPI%3E"],[6329,"impl-From%3COutEvent%3CPI%3E%3E-for-OutEvent%3CPI%3E"],[6330,"impl-From%3COutEvent%3CPI%3E%3E-for-OutEvent%3CPI%3E"],[6331,"impl-From%3CMessage%3CPI%3E%3E-for-Message%3CPI%3E"],[6332,"impl-From%3CMessage%3E-for-Message%3CPI%3E"],[6334,"impl-From%3CTimer%3E-for-Timer%3CPI%3E"],[6335,"impl-From%3CTimer%3CPI%3E%3E-for-Timer%3CPI%3E"],[6519,"impl-From%3CConnectionInfo%3E-for-NodeAddr"],[6520,"impl-From%3C(PublicKey,+Option%3CRelayUrl%3E,+%26%5BSocketAddr%5D)%3E-for-NodeAddr"],[6521,"impl-From%3CNodeInfo%3E-for-NodeAddr"],[6522,"impl-From%3CPublicKey%3E-for-NodeAddr"],[6606,"impl-Dialer-for-Dialer"],[6607,"impl-Dialer"],[6611,"impl-Dialer-for-Dialer"],[6612,"impl-Dialer"],[6614,"impl-Dialer"],[6615,"impl-Dialer-for-Dialer"],[6797,"impl-Display-for-IrohAttr"],[6798,"impl-Debug-for-IrohAttr"],[6802,"impl-From%3CTxtAttrs%3CIrohAttr%3E%3E-for-NodeInfo"],[6803,"impl-From%3C%26TxtAttrs%3CIrohAttr%3E%3E-for-NodeInfo"],[7056,"impl-Display-for-ReadError"],[7057,"impl-Debug-for-ReadError"],[7059,"impl-Debug-for-WriteError"],[7060,"impl-Display-for-WriteError"],[7062,"impl-Debug-for-VarInt"],[7063,"impl-Display-for-VarInt"],[7065,"impl-Display-for-ConnectionError"],[7066,"impl-Debug-for-ConnectionError"],[7069,"impl-Debug-for-ControlMsg"],[7070,"impl-Display-for-ControlMsg"],[7073,"impl-Display-for-ConnectionType"],[7074,"impl-Debug-for-ConnectionType"],[7078,"impl-Display-for-DirectAddrType"],[7079,"impl-Debug-for-DirectAddrType"],[7083,"impl-From%3CReadableError%3E-for-ReadError"],[7084,"impl-From%3CConnectionError%3E-for-ReadError"],[7089,"impl-From%3Cu32%3E-for-VarInt"],[7090,"impl-From%3CStreamId%3E-for-VarInt"],[7091,"impl-From%3Cu16%3E-for-VarInt"],[7092,"impl-From%3Cu8%3E-for-VarInt"],[7093,"impl-From%3CClosed%3E-for-VarInt"],[7097,"impl-From%3CClose%3E-for-ConnectionError"],[7098,"impl-From%3CError%3E-for-ConnectionError"],[7275,"impl-TryFrom%3Cu64%3E-for-VarInt"],[7276,"impl-TryFrom%3Cu128%3E-for-VarInt"],[7277,"impl-TryFrom%3Cusize%3E-for-VarInt"],[7404,"impl-Display-for-Signature"],[7405,"impl-LowerHex-for-Signature"],[7406,"impl-Debug-for-Signature"],[7407,"impl-UpperHex-for-Signature"],[7409,"impl-Debug-for-PublicKey"],[7410,"impl-Display-for-PublicKey"],[7411,"impl-Display-for-KeyParsingError"],[7412,"impl-Debug-for-KeyParsingError"],[7413,"impl-Display-for-SecretKey"],[7414,"impl-Debug-for-SecretKey"],[7416,"impl-From%3CInternalSignature%3E-for-Signature"],[7418,"impl-From%3C%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[7419,"impl-From%3C%26%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[7423,"impl-From%3CHexOrBase32ParseError%3E-for-KeyParsingError"],[7424,"impl-From%3CError%3E-for-KeyParsingError"],[7426,"impl-From%3CSigningKey%3E-for-SecretKey"],[7428,"impl-From%3C%5Bu8;+32%5D%3E-for-SecretKey"],[7460,"impl-Signature"],[7461,"impl-SignatureEncoding-for-Signature"],[7474,"impl-TryFrom%3CSignature%3E-for-Signature"],[7475,"impl-TryFrom%3C%26Signature%3E-for-Signature"],[7476,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-Signature"],[7478,"impl-TryFrom%3C%26%5Bu8;+32%5D%3E-for-PublicKey"],[7480,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-PublicKey"],[7742,"impl-Debug-for-Report"],[7743,"impl-Display-for-Report"],[7823,"impl-Display-for-PingError"],[7824,"impl-Debug-for-PingError"],[7827,"impl-From%3CError%3E-for-PingError"],[7828,"impl-From%3CSurgeError%3E-for-PingError"],[7887,"impl-Display-for-ProbeOutput"],[7888,"impl-Debug-for-ProbeOutput"],[8077,"impl-Debug-for-RelayUrl"],[8078,"impl-Display-for-RelayUrl"],[8081,"impl-Debug-for-HttpClientError"],[8082,"impl-Display-for-HttpClientError"],[8087,"impl-Display-for-RelayMap"],[8088,"impl-Debug-for-RelayMap"],[8089,"impl-Debug-for-RelayNode"],[8090,"impl-Display-for-RelayNode"],[8092,"impl-From%3CRelayUrlInfo%3E-for-RelayUrl"],[8093,"impl-From%3CUrl%3E-for-RelayUrl"],[8097,"impl-From%3CError%3E-for-HttpClientError"],[8098,"impl-From%3CError%3E-for-HttpClientError"],[8099,"impl-From%3CError%3E-for-HttpClientError"],[8100,"impl-From%3CError%3E-for-HttpClientError"],[8101,"impl-From%3CJoinError%3E-for-HttpClientError"],[8540,"impl-Display-for-TransactionId"],[8541,"impl-Debug-for-TransactionId"],[8543,"impl-Debug-for-StunDecodeError"],[8544,"impl-Display-for-StunDecodeError"],[8545,"impl-Display-for-Error"],[8546,"impl-Debug-for-Error"],[8550,"impl-From%3C%26%5Bu8;+stun_rs::::types::%7Bimpl%2313%7D::%7Bconstant%230%7D%5D%3E-for-TransactionId"],[8551,"impl-From%3C%5Bu8;+stun_rs::::types::%7Bimpl%2314%7D::%7Bconstant%230%7D%5D%3E-for-TransactionId"],[8552,"impl-From%3CRealm%3E-for-StunAttribute"],[8554,"impl-From%3CPasswordAlgorithm%3E-for-StunAttribute"],[8555,"impl-From%3CAlternateServer%3E-for-StunAttribute"],[8556,"impl-From%3CMessageIntegritySha256%3E-for-StunAttribute"],[8557,"impl-From%3CNonce%3E-for-StunAttribute"],[8558,"impl-From%3CPasswordAlgorithms%3E-for-StunAttribute"],[8559,"impl-From%3CSoftware%3E-for-StunAttribute"],[8560,"impl-From%3CUnknown%3E-for-StunAttribute"],[8561,"impl-From%3CErrorCode%3E-for-StunAttribute"],[8562,"impl-From%3CUserName%3E-for-StunAttribute"],[8563,"impl-From%3CUserHash%3E-for-StunAttribute"],[8564,"impl-From%3CUnknownAttributes%3E-for-StunAttribute"],[8565,"impl-From%3CXorMappedAddress%3E-for-StunAttribute"],[8566,"impl-From%3CMappedAddress%3E-for-StunAttribute"],[8567,"impl-From%3CFingerprint%3E-for-StunAttribute"],[8568,"impl-From%3CMessageIntegrity%3E-for-StunAttribute"],[8681,"impl-Debug-for-NodeTicket"],[8682,"impl-Display-for-NodeTicket"],[8718,"impl-Debug-for-GenError"],[8719,"impl-Display-for-GenError"],[8720,"impl-Debug-for-ParseError"],[8721,"impl-Display-for-ParseError"],[8722,"impl-Display-for-VerificationError"],[8723,"impl-Debug-for-VerificationError"],[9059,"impl-From%3C%26Path%3E-for-DataSource"],[9060,"impl-From%3CPathBuf%3E-for-DataSource"],[9095,"impl-Debug-for-BaoValidationError"],[9096,"impl-Display-for-BaoValidationError"],[9098,"impl-From%3CError%3E-for-BaoValidationError"],[9099,"impl-From%3CEncodeError%3E-for-BaoValidationError"],[9116,"impl-AsRef%3Cstr%3E-for-IrohPaths"],[9117,"impl-AsRef%3CPath%3E-for-IrohPaths"],[9126,"impl-Display-for-IrohPaths"],[9127,"impl-Debug-for-IrohPaths"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAEsWnwIFAAAACQABABQAEwApAAUAMwAAADUAAgBAABEAagAGAHIABQB5AAEAfwAGAIoABwCTAAIAlwAGAKcABgCvAAgAugABAL4AAgDJAAEAzAAMAOIABADoAAQA7gAkABQBEgAoAQwAOgEDAEABAQBDAQIASAEJAFMBAgBnAQMAbgEDAHQBGwCRAQQAqwEWAMMBIQDoAQAA7AEAAPEBBAD3AQAA+QEAAAUCAAAHAgAAEAIAABICAAAWAi0ASwIFAFQCAABWAgAAWAIFAGoCCQB1AgIAeQIAAIMCAACGAgQAkgIEAJkCAQCcAgEAnwIDAKQCAgCoAgIArAIDALYCCwDTAgIA1wIWAPECAgD1AgAA+gICAP4CCwAMAwIAJgMFAC0DBQA0AwUAXQMbAIEDEACUAwAAlgMBAJkDAACfAwEAogMAAKQDAQCoAwEAygMBAM0DAgDRAzcAFgQIACEEBQApBBIAPwQCAFAEAgBUBA4AawQRAIAEAwCKBAEAkQQAAJUEAgCZBAwApwQSALsEAAC9BAYA0gQEANsEGwD4BBsAFwUAAB4FBwAvBQAAOQUAADwFAwBCBQUASQUcAHsFFACRBQgAnwUCAK4FAwCzBRMACAYAAC0GBgA2BikAYwYCAGcGBQBvBhcAiAYNAKMGBgDJBgAAywYFANgGLgAJBwwAGgcQAEcHBgBRBwkAYAcPAHEHGgCTBwQAmQcBAKIHAACnBwEArgcDAL8HAQDDBwcAzAcOANwHBADnBwMA7AcPAP0HAAD/BwUACAgGABAIAQAXCAQAHQgAACcIAAApCAAALAgRAD8IAwBWCAkAYQgHAGsIAABvCAEAfQgBAIAIFQCiCAMArQgBAMMIBQDLCAEA1AgVAOwIAwD0CAsAAgkEAAwJBwAbCQkAJwkJADYJIQBdCRMAeAkBAIIJAACHCQAAiwkAAJcJAgCcCQAAqAkcAMwJAADaCQUA5wkFAO4JAAD4CRsAJwoEAC0KFgBFCgEASAoCAEwKCABbCgoAZwoAAGkKAAB8CgAAfgoBAIEKAACDCgYAiwoRAJ4KBQCmChUAvgoKAMsKAADNChEA4goAAOQKFAD6CgMA/woAAAQLDQATCwIAJgsCACwLBAAzCwQAOgsAAEMLBgBLCwEATgsBAFELAQBWCwAAWQsDAF4LCABpCxUAgQsEAIcLAgCLCwEAjgsAAJILAACUCxEAsQsBALQLAAC2CxcAzwsAANILAADgCwAA4wsDAOgLAADqCwAA7AsHAPULBgD+CwMABAwBAA4MDAAkDAIAKAwLADUMDQBEDAYAUQwCAFsMAQBfDAEAZwwQAHsMCwCXDAUAngwUALQMFQDSDAUA5gwEAO0MHwAODRQAJQ0EACsNAAAuDQEANA0HAD4NAABBDQMARw0BAFINCQBdDQQAZg0AAGgNAABsDQEAbw0EAIkNBgCVDS8AyA0FANINBwDfDQ4A/w0GABoOBgAiDgIAKA4AACoOAwAzDhIASw4HAFgOAABeDgYAZw4zAJwOEgDTDgYA2w4jAAYPAwALDxMAIw8LADEPAAAzDwAANw8AADwPBwBaDwEAYA8BAGUPBwBuDwMAfA80AMcPAQDLDw4A3Q8BAOIPAgDpDwEA7A8LAPoPAAD9DwUABRACAAoQAAAREAEAFBAAABgQBgAgEAEAJBAGACwQAgAyEAAAORALAHgQEgCMEAIAlRAEAJ0QMQDRECUA+BAPAA0RBgAVERAAKhEFADIRUACLEQEAkhEAAJQRAACZEQAAnREAAJ8RAQCiEQAApBEAAKYRBACsEQQAshEDALwRAQDAERkA3BEDACISBwAzEg4ARxIAAFESAABWEh4AdhJRANESGAD2EhoAEhMCABgTBgAgEwQAKBMHADETAAA4ExAAXxMcAH0TAwCDEw8AlBMHAKETAACkEwQAuRMDAMQTIQDsExEA/xMAAAEUDgAlFBcAPxQNAFMUAwBkFAIAaBQsALcUCgDDFAEAyBQbAOYUFQD+FAgACBUYACIVDwA0FQAAPBUBAEIVAABEFQwAVBUAAIIVAQCGFQgAlRVFAOIVDgD2FQAAABYIAA0WEwBqFgIAbhYVAIYWEgCdFgAAoBYCAKoWAQCtFgQAtBYaANAWDgDgFgAA4hYQAP4WBQAGFwMADRcAABEXAAATFwAAFRcAABcXAAAaFwcAJBcBACcXAwAxFwMAWRcLAGcXGQCCF0gAzRcAANUXAQDbFwsA6RcAAP8XAwAFGAUADxgLAB0YJABDGAsAYhgCAGcYAwCKGA8AmxgJAKYYEQC6GAMAvxgBAMQYAwDZGAAA2xgbAPoYAwD/GAEABRkBABUZBwAeGRAAMBkAADMZAwA4GQIAPxkCAEcZBQBPGQUAVhkDAF8ZAABhGQEAbBkKAHgZBACAGQIAkhkBAJoZAQChGQsArhkCAMgZAwDOGQEA0RkAANQZAADWGQAA2BkHAOMZAADmGQYA7xkBAPIZAQD1GQAA/hkAAAAaCQANGgIAFBoEABoaAgAgGgUALRoSAEMaAgBOGgAAUBoAAFIaCwBfGgIAeBoBAHsaCQCGGgsAkxoBAJYaAACdGgEAoRoAAKoaAACuGgAAsRoAALMaDAD0GgoACBs9AEkbBQBXGwIAWxsDAGIbAQBlGycAjxsZAKwbAQCwGwAAshsEALobAQDGGwoA2BsCAPYbAQD5GwEA/BsBABEcAQAaHAIAHxwHACocBQBBHAMASRwCAFIcEQBlHAYAbxwfAJAcJQC8HAEAyBwDAM0cKgD5HAAA+xwBAP8cAgADHQAABR0AAAodAgAOHQIAEx0AABodAAAfHQIAJB0AACYdAAApHQYAMR0LAD4dCQBJHQQAUh0AAFQdCQBgHQIAaB0BAGsdAABuHQQAeh0GAIIdEACWHQYAnh0IAKkdBQC0HQEAvR0NAMwdAQDPHQAA1R0GAN0dAQDgHQoA7B0AAPIdBAD5HQ0ACR4BABAeBgAYHgEAHh4LACseFwBHHgMAWh4AAF4eAABnHhcAgB4DAIgeCgCUHgEAlx4AAJweCgCsHgMAsR4RAMQeAADGHgAAyh4KANoeAwDjHgQA6x4BAO4eAADwHhMABh8IAEAfBgBIHxMAXh8NAG8fAwB2HwIAeh8hAJ0fAQCiHwQArh8HALgfAADRHwEA3h8BAOMfAADmHygAESAJACUgCQAwIAAAMyADADggAABIIAEAUCAVAGggAQBsIAMAcSACAHkgCgCPIAEAoiAAAKYgAACrIAQAviAiAOMgCgASIQIAFiEAACEhAAApIRMAPiEAAEAhCgBbIQgAZyECAGshDgB8IQIAgCEAAJshAACeIR8AwyEDAMohAQDXIQcA4CELAO0hAgDzIQcAAyIRABgiAQAcIgAAJSIUADsiBABEIggATiILAFwiAABfIgAAZSIFAGwiGQCHIgEAiiIBAJIiBQCxIgMAuSIPAM4iDADiIgsA8iIAAPciAwAcIwAAIyMjAFAjBQBXIwkAYiMDAGgjAQBwIwAAeCMJAIYjAwCLIwEAjiMFAJwjDACqIwEArSMGALkjAQC8Iw8A0CMBANwjAwDjIwkA7iMHAA=="}],\ -["iroh_base",{"t":"CCCCCCPFGPGPPPPNNNNNNNNNNNNHNNNNNNHHNNNNNNNNOHHHONNNNNNNNNNNNNNNNNNGTFFPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTPPGISFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFGPPFPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNONNNNNNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNPPFINNNNNNNNNNNNNNNNNNFPGTPFPKPNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNO","n":["base32","hash","key","node_addr","rpc","ticket","Base32","DecodeError","DecodeKind","Hex","HexOrBase32ParseError","Length","Padding","Symbol","Trailing","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_append","fmt_short","from","from","from","from","from","into","into","into","kind","parse_array","parse_array_hex_or_base32","parse_vec","position","source","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","BlobFormat","EMPTY","Hash","HashAndFormat","HashSeq","Raw","as_bytes","as_bytes","as_bytes","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","cmp","compare","default","deserialize","deserialize","deserialize","encode_hex","encode_hex_upper","eq","eq","eq","fixed_width","fixed_width","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","format","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_str","from_str","hash","hash","hash","hash","hash_seq","into","into","into","is_hash_seq","is_raw","new","new","partial_cmp","partial_cmp","partial_cmp","raw","serialize","serialize","serialize","to_hex","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","type_name","type_name","vzip","vzip","vzip","BYTE_SIZE","Base32","Key","KeyParsingError","NodeId","PUBLIC_KEY_LENGTH","PublicKey","SecretKey","SharedSecret","Signature","as_bytes","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","deserialize","deserialize","deserialize","encode_hex","encode_hex_upper","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_components","from_slice","from_str","from_str","from_str","generate","generate_with_rng","hash","into","into","into","into","into","open","partial_cmp","public","r_bytes","s_bytes","seal","serialize","serialize","serialize","shared","sign","source","to_bytes","to_bytes","to_bytes","to_openssh","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_vec","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_openssh","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","AddrInfo","AddrInfoOptions","Addresses","Id","NodeAddr","Relay","RelayAndAddresses","RelayUrl","apply_options","apply_options","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","default","default","deref","deserialize","deserialize","deserialize","deserialize","direct_addresses","direct_addresses","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_parts","from_str","from_str","hash","info","into","into","into","into","is_empty","new","node_id","partial_cmp","partial_cmp","partial_cmp","relay_url","relay_url","serialize","serialize","serialize","serialize","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","with_direct_addresses","with_relay_url","Err","Ok","RpcError","RpcResult","borrow","borrow_mut","clone","clone_into","deserialize","fmt","fmt","from","from","from","into","serialize","to_owned","to_string","try_from","try_into","type_id","vzip","BlobTicket","Encoding","Error","KIND","Kind","NodeTicket","Postcard","Ticket","Verify","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deserialize","deserialize","deserialize","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","format","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_str","from_str","hash","into","into","into","into_parts","new","new","node_addr","node_addr","recursive","serialize","serialize","serialize","source","to_bytes","to_bytes","to_bytes","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","expected"],"q":[[0,"iroh_base"],[6,"iroh_base::base32"],[67,"iroh_base::hash"],[165,"iroh_base::key"],[294,"iroh_base::node_addr"],[394,"iroh_base::rpc"],[416,"iroh_base::ticket"],[491,"iroh_base::ticket::Error"],[492,"data_encoding"],[493,"alloc::string"],[494,"core::convert"],[495,"core::fmt"],[496,"core::result"],[497,"hex::error"],[498,"alloc::vec"],[499,"core::error"],[500,"core::option"],[501,"core::any"],[502,"core::cmp"],[503,"serde::de"],[504,"core::iter::traits::collect"],[505,"iroh_blake3"],[506,"core::hash"],[507,"serde::ser"],[508,"redb::types"],[509,"ed25519"],[510,"iroh_base::key::encryption"],[511,"ed25519_dalek::signature"],[512,"ed25519_dalek::verifying"],[513,"ed25519_dalek::errors"],[514,"ed25519_dalek::signing"],[515,"signature::error"],[516,"rand_core"],[517,"core::marker"],[518,"aead"],[519,"anyhow"],[520,"zeroize"],[521,"ssh_key::error"],[522,"ssh_key::signature"],[523,"core::net::socket_addr"],[524,"core::iter::traits::iterator"],[525,"url"],[526,"std::io::error"],[527,"iroh_base::ticket::blob"],[528,"iroh_base::ticket::node"],[529,"postcard::error"],[530,"ed25519_dalek::constants"]],"i":[0,0,0,0,0,0,12,0,0,12,0,1,1,1,1,1,2,12,1,2,12,1,2,1,2,1,2,0,1,1,2,2,12,12,0,0,1,2,12,12,12,1,2,12,2,0,0,0,2,12,1,2,1,2,12,1,2,12,1,2,12,1,2,12,1,2,12,0,21,0,0,22,22,21,21,23,21,21,21,21,22,23,21,22,23,21,22,23,21,22,23,21,22,23,21,22,21,22,23,21,21,21,22,23,21,23,21,21,22,22,23,23,21,23,21,21,21,21,22,23,21,21,23,21,23,21,22,23,23,23,21,22,23,22,22,21,23,21,22,23,23,21,22,23,21,21,22,23,21,22,23,21,22,23,21,22,23,21,22,23,21,23,21,22,23,34,37,37,0,0,0,0,0,0,0,33,33,34,36,33,37,35,34,36,33,37,35,34,33,35,34,33,35,33,34,33,35,33,33,34,33,34,34,34,34,36,33,33,37,37,35,35,33,34,34,34,34,36,33,33,37,37,37,35,35,35,34,33,35,34,34,34,33,35,35,35,33,34,36,33,37,35,36,33,35,34,34,36,34,33,35,35,35,37,34,34,35,35,34,33,35,34,33,37,35,34,34,34,34,34,36,33,33,33,37,35,35,35,34,36,33,37,35,34,36,33,37,35,33,34,36,33,37,35,0,0,52,52,0,52,52,0,51,53,51,53,52,54,51,53,52,54,51,53,52,54,51,53,52,54,51,53,54,53,52,54,51,53,52,54,51,53,51,53,52,54,51,53,52,52,54,54,51,51,51,53,52,54,54,51,52,54,54,51,51,53,52,54,53,51,51,51,53,54,51,53,51,53,52,54,51,53,52,54,52,54,51,53,52,54,51,53,52,54,51,53,52,54,51,53,52,54,51,51,70,70,0,0,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,0,68,0,67,68,0,68,0,68,65,66,68,65,66,68,65,66,65,66,67,65,66,65,66,65,65,66,66,68,68,65,65,66,68,68,68,67,65,66,65,66,65,65,66,68,65,65,66,65,66,65,67,65,66,68,67,65,66,65,66,65,66,68,65,66,68,65,66,68,65,66,68,65,66,68,71],"f":"```````````````{ce{}{}}00000{bb}{dd}{{ce}f{}{}}0{{bb}h}{{dd}h}{cj{{A`{{n{l}}}}}}{{bAb}{{Af{fAd}}}}0{{dAb}{{Af{fAd}}}}0{{AhAb}Aj}0{{cj}f{{A`{{n{l}}}}}}4{cc{}}0{dAh}{AlAh}2===`{An{{Af{{B`{l}}d}}}}{An{{Af{{B`{l}}Ah}}}}{An{{Af{{Bb{l}}d}}}}`{Ah{{Bf{Bd}}}}{ce{}{}}0{cj{}}00{c{{Af{e}}}{}{}}00000{cBh{}}00333``````3{Bj{{B`{l}}}}4{Bj{{n{l}}}}01555555{BjBj}{BlBl}{BnBn}{{ce}f{}{}}00{{BjBj}C`}{{BlBl}C`}{{BnBn}C`}{{{n{l}}{n{l}}}C`}{{}Bl}{c{{Af{Bj}}}Cb}{c{{Af{Bl}}}Cb}{c{{Af{Bn}}}Cb}{ce{}{{Cf{Cd}}}}0{{BjBj}h}{{BlBl}h}{{BnBn}h}{{}{{Bf{Ch}}}}0{{BjAb}Aj}0{{BlAb}Aj}0{{BnAb}Aj}0{Bjj}`{CjBj}{cc{}}{{{B`{l}}}Bj}0110{{{n{l}}}c{}}0{An{{Af{Bjc}}}{}}{An{{Af{Bnc}}}{}}{{Bjc}fCl}{{Blc}fCl}{{Bnc}fCl}`{BjBn}{ce{}{}}00{Blh}0{cBj{{A`{{n{l}}}}}}{{BjBl}Bn}{{BjBj}{{Bf{C`}}}}{{BlBl}{{Bf{C`}}}}{{BnBn}{{Bf{C`}}}}7{{Bjc}AfCn}{{Blc}AfCn}{{Bnc}AfCn}{Bjj}:::{cj{}}00{c{{Af{e}}}{}{}}00000{cBh{}}00{{}D`}0>>>``````````{Db{{B`{l}}}}{Db{{n{l}}}}{ce{}{}}000000000{DdDd}{DbDb}{DfDf}{{ce}f{}{}}00{{DbDb}C`}{c{{Af{Dd}}}Cb}{c{{Af{Db}}}Cb}{c{{Af{Df}}}Cb}{ce{}{{Cf{Cd}}}}0{{DdDd}h}{{DbDb}h}{{DdAb}{{Af{fAd}}}}000{{DhAb}Aj}{{DbAb}Aj}0{{DjAb}Aj}0{{DfAb}Aj}0{Dbj}{cc{}}{{{B`{l}}}Dd}0{DlDd}2{DnDb}3{E`Dj}{AhDj}5{{{B`{l}}}Df}{EbDf}76{{{B`{l}}}{{Af{DbE`}}}}2{{{B`{l}}{B`{l}}}Dd}{{{n{l}}}{{Af{DdEd}}}}{An{{Af{DdEd}}}}{An{{Af{Dbc}}}{}}{An{{Af{Dfc}}}{}}{{}Df}{cDf{EfEh}}{{Dbc}fCl}{ce{}{}}0000{{DhEj}{{El{f}}}}{{DbDb}{{Bf{C`}}}}{DfDb}{Dd{{B`{l}}}}0{{DhEj}f}{{Ddc}AfCn}{{Dbc}AfCn}{{Dfc}AfCn}{{DfDb}Dh}{{Df{n{l}}}Dd}{Dj{{Bf{Bd}}}}77{Df{{B`{l}}}}{Df{{F`{{En{j}}}}}}==={cj{}}000{Dd{{Bb{l}}}}{c{{Af{e}}}{}{}}{Fb{{Af{DdFd}}}}{{{n{l}}}{{Af{DdEd}}}}12{{{B`{l}}}{{Af{Dbc}}}{}}3{{{n{l}}}{{Af{Dbc}}}{}}44{{{n{l}}}{{Af{Dfc}}}{}}{c{{El{Df}}}{{A`{{n{l}}}}}}66666{cBh{}}0000{{Db{n{l}}Dd}{{Af{fE`}}}}{ce{}{}}0000````````{{FfFh}f}{{FjFh}f}22222222{FfFf}{FjFj}{FhFh}{FlFl}{{ce}f{}{}}000{{FfFf}C`}{{FjFj}C`}{{FlFl}C`}{{}Fj}{{}Fh}{Flc{}}{c{{Af{Ff}}}Cb}{c{{Af{Fj}}}Cb}{c{{Af{Fh}}}Cb}{c{{Af{Fl}}}Cb}{Ff{{`{{Gb{}{{Fn{G`}}}}}}}}`{{FfFf}h}{{FjFj}h}{{FhFh}h}{{FlFl}h}{{FfAb}Aj}{{FjAb}Aj}{{FhAb}Aj}0{{FlAb}Aj}0{GdFf}{cc{}}{{{Gf{Db{Bf{Fl}}{n{G`}}}}}Ff}111{GhFl}{{Db{Bf{Fl}}{Bb{G`}}}Ff}{An{{Af{Fhc}}}{}}{An{{Af{Flc}}}{}}{{Flc}fCl}`{ce{}{}}000{Fjh}{DbFf}`{{FfFf}{{Bf{C`}}}}{{FjFj}{{Bf{C`}}}}{{FlFl}{{Bf{C`}}}}{Ff{{Bf{Fl}}}}`{{Ffc}AfCn}{{Fjc}AfCn}{{Fhc}AfCn}{{Flc}AfCn}::::{cj{}}0{c{{Af{e}}}{}{}}0000000{cBh{}}000===={{Ffc}Ff{{Gj{}{{Fn{G`}}}}}}{{FfFl}Ff}````??{GlGl}{{ce}f{}{}}{c{{Af{Gl}}}Cb}{{GlAb}Aj}0{cc{}}{GnGl}{H`Gl}{ce{}{}}{{Glc}AfCn}1=<<;1`````````111111{HbHb}{HdHd}99{An{{Af{HfHh}}}}{c{{El{Hb}}}Cb}{c{{El{Hd}}}Cb}{{HbHb}h}{{HdHd}h}{{HbAb}Aj}0{{HdAb}Aj}0{{HhAb}Aj}0{HbBl}??{HjHh}{dHh}{cc{}}{{{n{l}}}{{Af{HfHh}}}}{{{n{l}}}{{Af{HbHh}}}}{{{n{l}}}{{Af{HdHh}}}}{An{{El{Hbc}}}{}}{An{{El{Hdc}}}{}}{HbBj}{ce{}{}}00{Hb{{Gf{FfBjBl}}}}{{FfBjBl}{{El{Hb}}}}{Ff{{El{Hd}}}}{HbFf}{HdFf}{Hbh}{Hfj}{{Hbc}ElCn}{{Hdc}ElCn}{Hh{{Bf{Bd}}}}{Hf{{Bb{l}}}}{Hb{{Bb{l}}}}{Hd{{Bb{l}}}}=={cj{}}00{c{{Af{e}}}{}{}}00000{cBh{}}00{ce{}{}}00`","D":"ACf","p":[[6,"DecodeKind",6,492],[5,"DecodeError",6,492],[1,"unit"],[1,"bool"],[5,"String",493],[1,"u8"],[1,"slice"],[10,"AsRef",494],[5,"Formatter",495],[5,"Error",495],[6,"Result",496],[6,"HexOrBase32ParseError",6],[8,"Result",495],[6,"FromHexError",497],[1,"str"],[1,"array"],[5,"Vec",498],[10,"Error",499],[6,"Option",500],[5,"TypeId",501],[5,"Hash",67],[6,"BlobFormat",67],[5,"HashAndFormat",67],[6,"Ordering",502],[10,"Deserializer",503],[1,"char"],[10,"FromIterator",504],[1,"usize"],[5,"Hash",505],[10,"Hasher",506],[10,"Serializer",507],[5,"TypeName",508],[5,"PublicKey",165],[5,"Signature",165,509],[5,"SecretKey",165],[5,"SharedSecret",165,510],[6,"KeyParsingError",165],[5,"InternalSignature",511],[5,"VerifyingKey",512],[8,"SignatureError",513],[5,"SigningKey",514],[5,"Error",515],[10,"CryptoRngCore",516],[10,"Sized",517],[10,"Buffer",518],[8,"Result",519],[5,"Zeroizing",520],[8,"Result",521],[5,"Signature",522],[6,"Error",521],[5,"NodeAddr",294],[6,"AddrInfoOptions",294],[5,"AddrInfo",294],[5,"RelayUrl",294],[17,"Item"],[6,"SocketAddr",523],[10,"Iterator",524],[8,"NodeId",165],[1,"tuple"],[5,"Url",525],[10,"IntoIterator",504],[5,"RpcError",394],[5,"Error",526],[5,"Error",519],[5,"BlobTicket",416,527],[5,"NodeTicket",416,528],[10,"Ticket",416],[6,"Error",416],[6,"Error",529],[8,"RpcResult",394],[15,"Kind",491]],"r":[[7,492],[8,492],[170,530],[173,510],[174,509],[416,527],[421,528]],"b":[[28,"impl-Display-for-DecodeKind"],[29,"impl-Debug-for-DecodeKind"],[30,"impl-Display-for-DecodeError"],[31,"impl-Debug-for-DecodeError"],[32,"impl-Display-for-HexOrBase32ParseError"],[33,"impl-Debug-for-HexOrBase32ParseError"],[38,"impl-From%3CDecodeError%3E-for-HexOrBase32ParseError"],[39,"impl-From%3CFromHexError%3E-for-HexOrBase32ParseError"],[73,"impl-Value-for-Hash"],[74,"impl-Hash"],[77,"impl-Borrow%3C%5Bu8%5D%3E-for-Hash"],[78,"impl-Borrow%3C%5Bu8;+32%5D%3E-for-Hash"],[106,"impl-Debug-for-Hash"],[107,"impl-Display-for-Hash"],[108,"impl-Display-for-BlobFormat"],[109,"impl-Debug-for-BlobFormat"],[110,"impl-Debug-for-HashAndFormat"],[111,"impl-Display-for-HashAndFormat"],[114,"impl-From%3CHash%3E-for-Hash"],[116,"impl-From%3C%5Bu8;+32%5D%3E-for-Hash"],[117,"impl-From%3C%26%5Bu8;+32%5D%3E-for-Hash"],[120,"impl-Hash"],[121,"impl-Value-for-Hash"],[201,"impl-Debug-for-Signature"],[202,"impl-UpperHex-for-Signature"],[203,"impl-LowerHex-for-Signature"],[204,"impl-Display-for-Signature"],[206,"impl-Debug-for-PublicKey"],[207,"impl-Display-for-PublicKey"],[208,"impl-Debug-for-KeyParsingError"],[209,"impl-Display-for-KeyParsingError"],[210,"impl-Display-for-SecretKey"],[211,"impl-Debug-for-SecretKey"],[214,"impl-From%3C%26%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[215,"impl-From%3C%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[216,"impl-From%3CInternalSignature%3E-for-Signature"],[220,"impl-From%3CError%3E-for-KeyParsingError"],[221,"impl-From%3CHexOrBase32ParseError%3E-for-KeyParsingError"],[223,"impl-From%3C%5Bu8;+32%5D%3E-for-SecretKey"],[224,"impl-From%3CSigningKey%3E-for-SecretKey"],[254,"impl-Signature"],[255,"impl-SignatureEncoding-for-Signature"],[267,"impl-TryFrom%3CSignature%3E-for-Signature"],[268,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-Signature"],[269,"impl-TryFrom%3C%26Signature%3E-for-Signature"],[271,"impl-TryFrom%3C%26%5Bu8;+32%5D%3E-for-PublicKey"],[273,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-PublicKey"],[338,"impl-Display-for-AddrInfoOptions"],[339,"impl-Debug-for-AddrInfoOptions"],[340,"impl-Debug-for-RelayUrl"],[341,"impl-Display-for-RelayUrl"],[342,"impl-From%3CPublicKey%3E-for-NodeAddr"],[344,"impl-From%3C(PublicKey,+Option%3CRelayUrl%3E,+%26%5BSocketAddr%5D)%3E-for-NodeAddr"],[403,"impl-Debug-for-RpcError"],[404,"impl-Display-for-RpcError"],[406,"impl-From%3CError%3E-for-RpcError"],[407,"impl-From%3CError%3E-for-RpcError"],[440,"impl-Display-for-BlobTicket"],[441,"impl-Debug-for-BlobTicket"],[442,"impl-Display-for-NodeTicket"],[443,"impl-Debug-for-NodeTicket"],[444,"impl-Display-for-Error"],[445,"impl-Debug-for-Error"],[449,"impl-From%3CError%3E-for-Error"],[450,"impl-From%3CDecodeError%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAFEBLQABAAAABQABABAACwAdAAUAJwABADIAEQBKAAAATAAkAHMAAAB1AAEAegAGAIoAAgCOAAIAkgATALEAIwDXAAIA2wAAAN0AAQDgAAEA6AACAO0AAAD0AAAA+QACAP4AAAAAAQAAAwEGAAsBCgAXAQkAIgEEADEBGQBNAQoAWQEAAF0BAABfAQIAagECAG8BGQCPAQYAlwEBAJoBBgCqAQkAtQEJAMIBAQDGAQMA1QECANkBEwA="}],\ -["iroh_blobs",{"t":"GTFFPSPEENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNCNNNNNNNNNCONNNNNNNNNNNNNNNCNNNONCNNNNNCNNNNNCCNNNNCNNNNNNNNNNNNNNNNNNNCNNNPPPPFRRKGPFFFFPGKFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNONNNNNNNNNNMNOOOOONNNNMNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPGPPNNNNNNHHHNNNNNNNNNNOOOOOOOOCFTKNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNPPPGPFPNNNNNOONNCNNONNNNCNNNNNNNNNNNNCNNNCCNNNNNNNNNNNNPPGGPPPPGPPPPPPPPNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNHNNNNOOOOOOOOOOOOOOOOPGPPPPPNNNNNNNNNNNNNNNNNNNNFFGFFFFFFGPPGGGPGPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGFPPIPFNNNNNNNNNOONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNONNNONNNOONONNNONNNNNNNNNNNNNNNHHHHHFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNFNNNNNNOOOOOOOOOOOONNNNNNNNNNNSGTPFSFPFFGPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGPPPPGKPPPPFPGPPPPPFNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNHHNNNNNOHMOHNNNNHNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPKGPPPGPPPPPPPIPPPRPRPGPPPGGGGIPPGPGGGPKKKKPPPPPPPPKGPPPPKPPPPPGPPNNNNNNNEMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNNNMNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNMNNMMMMMMNNMMNNNNNNNNNNNNNMCNMMNECNNNNNNMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTFIFFTFFFNNNNNONNNNNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNOOOOOOONNNNONONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPGPGFFKKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNCNNNNNMMNNNCNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPFFFPGFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPFFKFRPGIKFPFFNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["BlobFormat","EMPTY","Hash","HashAndFormat","HashSeq","IROH_BLOCK_SIZE","Raw","Tag","TempTag","__clone_box","__clone_box","__clone_box","as_bits","as_bytes","as_bytes","as_bytes","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","cmp","compare","compare","compare","compare","default","deserialize","deserialize","deserialize","downloader","encode_hex","encode_hex_upper","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export","fixed_width","fixed_width","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","format","format","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_ref","from_ref","from_ref","from_str","from_str","get","hash","hash","hash","hash","hash_seq","hashseq","into","into","into","is_hash_seq","is_raw","metrics","new","new","partial_cmp","partial_cmp","partial_cmp","protocol","provider","raw","serialize","serialize","serialize","store","to_hex","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_as_bits","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","type_name","type_name","util","vzip","vzip","vzip","AbortRequest","ActorClosed","AllIntentsDropped","Cancelled","ConcurrencyLimits","Connection","Connection","Dialer","DownloadError","DownloadFailed","DownloadHandle","DownloadKind","DownloadRequest","Downloader","DropPeer","FailureAction","Getter","IntentId","NoProviders","RetryConfig","RetryLater","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cancel","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","default","default","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","format","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","get","hash","hash","hash","hash_and_format","initial_retry_delay","into","into","into","into","into","into","into","into","into","into_future","is_pending","join","max_concurrent_dials_per_hash","max_concurrent_requests","max_concurrent_requests_per_node","max_open_connections","max_retries_per_node","new","new","nodes_have","partial_cmp","pending_count","poll","progress_sender","queue","queue_dial","race","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_config","Abort","AllDone","Done","ExportProgress","Found","Progress","__clone_box","borrow","borrow_mut","clone","clone_into","deserialize","export","export_blob","export_collection","fmt","from","from_ref","into","serialize","to_owned","try_from","try_into","type_id","vzip","hash","id","id","id","meta","offset","outpath","size","collection","Collection","HEADER","SimpleStore","__clone_box","borrow","borrow_mut","clone","clone_into","default","deserialize","eq","extend","fmt","from","from_iter","from_ref","index","into","into_iter","is_empty","iter","len","load","load","load_db","push","read_fsm","read_fsm_all","serialize","store","to_blobs","to_owned","try_from","try_into","type_id","vzip","Connection","Decode","Generic","GetResponseError","Read","Stats","Write","__clone_box","borrow","borrow","borrow_mut","borrow_mut","bytes_read","bytes_written","clone","clone_into","db","default","deserialize","elapsed","eq","equivalent","equivalent","equivalent","error","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_ref","fsm","into","into","mbits","progress","request","serialize","source","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Abort","AllDone","BlobId","BlobInfo","Child","Complete","Connected","Done","DownloadProgress","Found","FoundHashSeq","FoundLocal","InitialState","Missing","Partial","Progress","Root","__clone_box","__clone_box","__clone_box","blob_info","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","compare","deserialize","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","get_to_db","hash","into","into","into","missing_ranges","partial_cmp","serialize","serialize","size","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","valid_ranges","valid_ranges","vzip","vzip","vzip","entry","size","valid_ranges","child","child","children","hash","hash","hash","id","id","id","offset","size","size","valid_ranges","BadRequest","GetError","Io","LocalFailure","NoncompliantNode","NotFound","RemoteReset","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","from","into","source","to_string","try_from","try_into","type_id","vzip","AtBlobContent","AtBlobHeader","AtBlobHeaderNextError","AtClosing","AtConnected","AtEndBlob","AtInitial","AtStartChild","AtStartRoot","BlobContentNext","Closing","Closing","ConnectedNext","ConnectedNextError","DecodeError","Done","EndBlobNext","Io","Io","Io","LeafHashMismatch","LeafNotFound","More","MoreChildren","NotFound","NotFound","ParentHashMismatch","ParentNotFound","PostcardSer","Read","Read","RequestTooBig","StartChild","StartRoot","Write","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","child_offset","concatenate_into_vec","concatenate_into_vec","drain","drain","finish","finish","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into","into","new","next","next","next","next","next","next","next","next","offset","offset","ranges","ranges","ranges","source","source","start","to_string","to_string","to_string","tree","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_all","write_all","write_all_batch","write_all_batch","write_all_with_outboard","write_all_with_outboard","BlobProgress","BlobState","Done","Pending","ProgressId","Progressing","TransferState","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","child_count","children","clone","clone","clone","clone_into","clone_into","clone_into","connected","current","default","deserialize","deserialize","deserialize","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","get_blob","get_current","hash","into","into","into","local_ranges","new","new","on_progress","progress","progress_id_to_blob","root","root","serialize","serialize","serialize","size","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","get_chunk_probe","get_hash_seq_and_sizes","get_unverified_size","get_verified_size","random_hash_seq_ranges","HashSeq","HashSeqIter","HashSeqStream","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","fmt","fmt","fmt","from","from","from","from_iter","from_ref","from_ref","from_ref","get","into","into","into","into_fallible","into_inner","into_iter","into_iter","is_empty","iter","len","new","next","next","parse_hash_seq","pop_front","skip","to_owned","to_owned","to_owned","transpose_into_fallible","try_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Metrics","__clone_box","borrow","borrow_mut","clone","clone_into","default","download_bytes_total","download_time_total","downloader_tick_connection_ready","downloader_tick_goodbye_node","downloader_tick_main","downloader_tick_message_received","downloader_tick_retry_node","downloader_tick_transfer_completed","downloader_tick_transfer_failed","downloads_error","downloads_notfound","downloads_success","fmt","from","from_ref","into","iter","name","to_owned","try_from","try_into","type_id","vzip","ALPN","Closed","EMPTY","Get","GetRequest","MAX_MESSAGE_SIZE","NonEmptyRequestRangeSpecIter","ProviderTerminating","RangeSpec","RangeSpecSeq","Request","RequestReceived","StreamDropped","UnknownErrorCode","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","all","all","all","as_single","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","deserialize","deserialize","deserialize","deserialize","empty","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_ranges","from_ranges_infinite","from_ref","from_ref","from_ref","from_ref","from_ref","hash","hash","hash","hash","into","into","into","into","into","into","into","into_fallible","into_iter","is_all","is_empty","iter","iter_non_empty","last_chunk","last_chunks","new","new","new","next","ranges","reason","serialize","serialize","serialize","serialize","single","to_chunk_ranges","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","transpose_into_fallible","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Abort","AddProgress","AllDone","ClientConnected","CustomGetRequestReceived","Done","Event","EventSender","Found","GetRequestReceived","NotFound","Progress","ResponseWriter","Sent","SentStatus","TaggedBlobAdded","TransferAborted","TransferBlobCompleted","TransferCompleted","TransferHashSeqStarted","TransferStats","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","default","deserialize","duration","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_ref","from_ref","from_ref","handle_connection","handle_get","into","into","into","into","into","read","read_request","send","send","send_blob","serialize","to_owned","to_owned","to_owned","transfer_collection","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","format","hash","hash","id","id","id","name","offset","size","tag","connection_id","connection_id","connection_id","connection_id","connection_id","connection_id","connection_id","format","hash","hash","hash","index","len","num_blobs","request_id","request_id","request_id","request_id","request_id","request_id","size","stats","stats","tag","Abort","Abort","AllDone","BaoBatchWriter","BaoBlobSize","Blob","Collection","Complete","ConsistencyCheckProgress","Copy","Copy","CopyProgress","CustomDebug","CustomDebug","CustomWarning","CustomWarning","DbIter","Done","Done","Entry","Entry","EntryDone","EntryMut","EntryProgress","EntryStatus","Error","Error","Error","Event","ExportFormat","ExportMode","ExportProgress","ExportProgressCb","Found","GcCompleted","GcMarkEvent","GcStarted","GcSweepEvent","ImportMode","ImportProgress","Info","Map","MapEntry","MapEntryMut","MapMut","NotFound","OutboardDone","OutboardProgress","Partial","PartialEntry","PartialEntryDone","PartialEntryProgress","Progress","ReadableStore","ReportLevel","Size","Start","Start","Starting","Store","Trace","TryReference","TryReference","Unverified","Update","ValidateProgress","Verified","Warn","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","bao_tree","batch_writer","blobs","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","consistency_check","create_tag","data_reader","default","default","default","delete","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","entry_status","entry_status_sync","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","fs","gc_mark","gc_mark","gc_start","gc_sweep","gc_sweep","get","get_mut","get_or_create","hash","import_bytes","import_file","import_reader","import_reader","import_stream","insert_complete","into","into","into","into","into","into","into","into","into","into","into","into","into","is_complete","mem","new","outboard","partial_blobs","partial_cmp","range_collections","readonly_mem","serialize","serialize","serialize","serialize","serialize","serialize","set_tag","shutdown","size","sync","tags","temp_tag","temp_tags","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","validate","validate","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_batch","entry","level","message","hash","id","id","id","offset","path","stable","hash","id","id","id","id","id","name","offset","offset","size","error","hash","hash","id","id","id","id","id","id","offset","offset","path","path","ranges","size","size","total","ALWAYS_INLINE","BatchOptions","Entry","FlatStorePaths","InlineOptions","NO_INLINE","Options","PathOptions","Store","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","batch","batch_writer","blobs","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","complete","consistency_check","create_tag","data_path","data_reader","default","default","delete","dump","entry_status","entry_status_sync","export","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","gc_start","get","get_mut","get_or_create","hash","import_bytes","import_file","import_flat_store","import_stream","inline","insert_complete","into","into","into","into","into","into","is_complete","load","max_data_inlined","max_outboard_inlined","max_read_batch","max_read_duration","max_write_batch","max_write_duration","meta","new","outboard","owned_data_path","owned_outboard_path","partial","partial_blobs","path","set_tag","shutdown","size","sync","tags","temp_path","temp_tag","temp_tags","to_owned","to_owned","to_owned","to_owned","to_owned","transform_entries","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","update_inline_options","vzip","vzip","vzip","vzip","vzip","vzip","Entry","Store","__clone_box","__clone_box","batch_writer","blobs","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","consistency_check","create_tag","data_reader","default","delete","entry_status","entry_status_sync","export","fmt","fmt","from","from","from_ref","from_ref","gc_start","get","get_mut","get_or_create","hash","import_bytes","import_file","import_stream","insert_complete","into","into","is_complete","new","outboard","partial_blobs","set_tag","shutdown","size","tags","temp_tag","temp_tags","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Entry","Store","__clone_box","__clone_box","batch_writer","blobs","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","consistency_check","create_tag","data_reader","default","delete","entry_status","entry_status_sync","export","fmt","fmt","from","from","from_iter","from_ref","from_ref","gc_start","get","get_content","get_mut","get_or_create","hash","import_bytes","import_file","import_stream","insert","insert_complete","insert_many","into","into","is_complete","new","outboard","partial_blobs","set_tag","shutdown","size","tags","temp_tag","temp_tags","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Auto","File","Mem","MemOrFile","Named","SetTagOption","SparseMemFile","Tag","TagCounter","TagDrop","TempTag","__clone_box","__clone_box","as_bits","as_bytes","as_bytes","as_ref","as_ref","as_weak","auto","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","compare","compare","compare","compare","default","default","deref","deserialize","deserialize","drop","encode_hex","encode_hex_upper","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fixed_width","fixed_width","flush","fmt","fmt","fmt","fmt","fmt","fmt","format","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_ref","from_ref","hash","inner","into","into","into","into","into","into_parts","io","is_mem","leak","local_pool","map_file","map_mem","mem","new","new","on_create","on_drop","partial_cmp","partial_cmp","persist","progress","read_at","read_at","serialize","serialize","size","size","size","temp_tag","to_owned","to_owned","to_string","total_bytes","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_map_file","type_id","type_id","type_id","type_id","type_id","type_name","type_name","vzip","vzip","vzip","vzip","vzip","write_at","TrackingReader","TrackingWriter","borrow","borrow","borrow_mut","borrow_mut","bytes_read","bytes_written","fmt","fmt","from","from","into","into","into_parts","into_parts","new","new","poll_flush","poll_shutdown","poll_write","read","read_bytes","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Cancelled","Config","LocalPool","LocalPoolHandle","LogAndContinue","PanicMode","Run","Shutdown","SpawnError","__clone_box","__clone_box","__clone_box","abort","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cancelled","clone","clone","clone","clone_into","clone_into","clone_into","default","default","deref","drop","eq","equivalent","equivalent","equivalent","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","from_ref","from_ref","handle","into","into","into","into","into","into","into_future","join","new","panic_mode","poll","race","shutdown","single","spawn","spawn_detached","thread_name_prefix","threads","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","try_spawn","try_spawn_detached","try_spawn_detached_boxed","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","waiting_tasks","BoxedProgressSender","Err","FallibleProgressSliceWriter","FlumeProgressSender","IdGenerator","IgnoreProgressSender","Msg","Ok","ProgressSendError","ProgressSendResult","ProgressSender","ProgressSliceWriter","ReceiverDropped","WithFilterMap","WithMap","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","blocking_send","blocking_send","blocking_send","blocking_send","blocking_send","blocking_send","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","boxed","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","into","into","into","into","into","into","into","into","into_inner","into_inner","new","new","new","new_id","new_id","new_id","new_id","new_id","new_id","same_channel","send","send","send","send","send","send","set_len","set_len","sync","sync","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_send","try_send","try_send","try_send","try_send","try_send","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_filter_map","with_map","write_at","write_at","write_bytes_at","write_bytes_at"],"q":[[0,"iroh_blobs"],[132,"iroh_blobs::downloader"],[307,"iroh_blobs::export"],[332,"iroh_blobs::export::ExportProgress"],[340,"iroh_blobs::format"],[341,"iroh_blobs::format::collection"],[377,"iroh_blobs::get"],[432,"iroh_blobs::get::db"],[509,"iroh_blobs::get::db::BlobInfo"],[512,"iroh_blobs::get::db::DownloadProgress"],[525,"iroh_blobs::get::error"],[552,"iroh_blobs::get::fsm"],[765,"iroh_blobs::get::progress"],[849,"iroh_blobs::get::request"],[854,"iroh_blobs::hashseq"],[916,"iroh_blobs::metrics"],[946,"iroh_blobs::protocol"],[1108,"iroh_blobs::provider"],[1205,"iroh_blobs::provider::AddProgress"],[1215,"iroh_blobs::provider::Event"],[1239,"iroh_blobs::store"],[1547,"iroh_blobs::store::ConsistencyCheckProgress"],[1550,"iroh_blobs::store::ExportProgress"],[1557,"iroh_blobs::store::ImportProgress"],[1567,"iroh_blobs::store::ValidateProgress"],[1584,"iroh_blobs::store::fs"],[1724,"iroh_blobs::store::mem"],[1783,"iroh_blobs::store::readonly_mem"],[1846,"iroh_blobs::util"],[1987,"iroh_blobs::util::io"],[2018,"iroh_blobs::util::local_pool"],[2127,"iroh_blobs::util::progress"],[2288,"dyn_clone::sealed"],[2289,"bitvec::slice"],[2290,"bitvec::order"],[2291,"iroh_base::hash"],[2292,"core::cmp"],[2293,"core::result"],[2294,"serde::de"],[2295,"core::iter::traits::collect"],[2296,"core::option"],[2297,"core::fmt"],[2298,"alloc::string"],[2299,"iroh_blake3"],[2300,"core::hash"],[2301,"core::convert"],[2302,"serde::ser"],[2303,"bitvec::ptr::span"],[2304,"core::any"],[2305,"redb::types"],[2306,"futures_lite::future"],[2307,"iroh_base::key"],[2308,"core::clone"],[2309,"futures_concurrency::future::join::tuple"],[2310,"core::future::into_future"],[2311,"core::future::future"],[2312,"iroh_base::node_addr"],[2313,"iroh_net::endpoint"],[2314,"iroh_blobs::store::traits"],[2315,"alloc::vec"],[2316,"core::pin"],[2317,"core::task::wake"],[2318,"core::task::poll"],[2319,"futures_concurrency::future::race::tuple"],[2320,"std::path"],[2321,"anyhow"],[2322,"core::iter::traits::iterator"],[2323,"bytes::bytes"],[2324,"core::marker"],[2325,"alloc::collections::btree::map"],[2326,"core::iter::traits::double_ended"],[2327,"bao_tree::io::error"],[2328,"iroh_quinn::send_stream"],[2329,"postcard::error"],[2330,"iroh_quinn::recv_stream"],[2331,"iroh_quinn_proto::connection"],[2332,"core::error"],[2333,"std::io::error"],[2334,"iroh_quinn::connection"],[2335,"core::ops::function"],[2336,"bao_tree"],[2337,"bao_tree::io"],[2338,"iroh_io"],[2339,"bao_tree::io::fsm"],[2340,"bao_tree::tree"],[2341,"alloc::sync"],[2342,"iroh_blobs::protocol::range_spec"],[2343,"rand::rng"],[2344,"fallible_iterator"],[2345,"alloc::vec::into_iter"],[2346,"iroh_quinn_proto::varint"],[2347,"iroh_io::stats"],[2348,"alloc::collections::btree::set"],[2349,"futures_core::stream"],[2350,"tokio::io::async_read"],[2351,"alloc::boxed"],[2352,"iroh_blobs::util::mem_or_file"],[2353,"iroh_blobs::util::sparse_mem_file"],[2354,"std::time"],[2355,"core::default"],[2356,"range_collections::range_set"],[2357,"positioned_io"],[2358,"std::fs"],[2359,"tokio::io::async_write"],[2360,"flume"]],"i":[0,5,0,0,9,0,9,0,0,5,9,10,5,5,5,10,5,5,5,5,9,10,5,9,10,5,9,10,5,9,10,5,9,10,5,5,9,10,9,5,9,10,0,5,5,5,9,10,5,5,5,9,9,9,10,10,10,0,5,10,5,5,9,9,10,10,5,0,10,5,5,5,5,9,10,10,5,5,10,5,9,10,5,10,0,5,9,10,10,10,0,5,9,10,9,9,0,5,10,5,9,10,0,0,10,5,9,10,0,5,5,9,10,5,9,10,5,5,9,10,5,9,10,5,9,10,5,10,0,5,9,10,39,35,39,35,0,45,42,0,0,35,0,0,0,0,39,0,0,0,35,0,39,33,34,23,35,31,33,39,36,37,34,23,35,32,31,33,39,36,37,34,23,35,32,31,31,33,34,23,35,31,33,34,23,35,31,33,33,36,37,33,23,33,33,33,23,23,23,33,33,39,36,37,34,23,23,35,35,32,31,23,33,39,39,36,37,34,23,23,35,32,31,33,34,23,35,31,42,33,23,23,23,37,33,39,36,37,34,23,35,32,31,32,45,32,36,36,36,36,37,34,31,31,33,45,32,34,31,45,32,33,34,23,35,31,33,23,35,33,39,36,37,34,23,35,32,31,33,39,36,37,34,23,35,32,31,32,33,39,36,37,34,23,35,32,31,33,39,36,37,34,23,35,32,31,31,66,66,66,0,66,66,66,66,66,66,66,66,0,0,0,66,66,66,66,66,66,66,66,66,66,226,226,227,228,226,227,226,226,0,0,74,0,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,77,74,74,74,74,74,74,74,74,74,74,74,74,74,88,88,88,0,88,0,88,43,43,88,43,88,43,43,43,43,0,43,43,43,43,43,43,43,0,43,88,88,43,88,88,88,88,88,88,88,43,0,43,88,43,0,0,43,88,43,88,43,88,43,88,43,88,43,88,62,62,0,0,99,97,62,62,0,62,62,62,62,97,97,62,99,97,62,99,0,97,62,99,97,62,99,97,62,99,97,62,99,99,99,62,99,99,99,99,99,97,62,99,97,62,99,97,62,99,0,99,97,62,99,97,99,62,99,97,97,62,99,97,62,99,97,62,99,97,62,99,0,97,97,62,99,229,230,229,231,232,233,231,232,233,232,234,235,234,231,232,231,40,0,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,0,0,0,0,0,0,0,0,0,0,117,82,0,0,0,118,0,107,108,106,106,106,118,82,108,106,106,106,107,108,106,107,117,117,107,115,116,117,107,81,110,111,108,113,106,118,112,82,114,115,116,117,107,81,110,111,108,113,106,118,112,82,114,110,111,113,111,113,81,110,113,115,116,117,107,107,81,110,111,108,108,113,106,106,118,112,82,114,115,116,117,117,117,117,107,107,81,110,111,108,113,106,106,106,106,118,118,118,112,82,82,82,114,81,111,113,115,116,117,107,81,110,111,108,113,106,118,112,82,114,115,115,116,81,110,111,113,112,114,111,113,81,110,111,107,106,0,107,108,106,113,115,116,117,107,81,110,111,108,113,106,118,112,82,114,115,116,117,107,81,110,111,108,113,106,118,112,82,114,115,116,117,107,81,110,111,108,113,106,118,112,82,114,115,116,117,107,81,110,111,108,113,106,118,112,82,114,111,113,111,113,111,113,0,0,127,127,0,127,0,125,126,127,125,126,127,125,126,127,126,125,125,126,127,125,126,127,125,125,127,125,126,127,125,126,127,125,125,125,126,126,126,127,127,127,125,126,127,125,126,127,125,126,127,125,125,126,125,126,127,126,125,126,125,126,125,125,125,125,126,127,126,125,126,127,125,126,127,125,126,127,125,126,127,125,126,127,0,0,0,0,0,0,0,0,83,132,133,83,132,133,83,132,133,83,132,133,83,132,133,83,132,133,83,132,133,83,83,132,133,83,83,132,133,133,83,83,133,83,83,83,83,132,133,0,83,132,83,132,133,133,83,83,132,133,83,132,133,83,132,133,83,132,133,0,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,0,0,140,141,0,0,0,142,0,0,0,142,142,0,140,130,141,120,142,140,130,120,130,140,130,143,141,120,142,144,140,130,143,141,120,142,144,140,130,141,120,142,140,130,141,120,142,140,130,141,120,130,140,130,141,120,142,140,140,140,130,130,130,141,141,141,120,120,120,142,142,142,140,130,143,141,120,142,144,144,140,130,143,141,141,120,142,144,130,130,140,130,141,120,142,140,130,142,120,140,130,143,141,120,142,144,143,143,140,140,130,130,120,120,140,130,120,143,120,142,140,130,141,120,120,140,140,130,141,120,142,144,143,140,130,143,141,120,142,142,144,140,130,143,141,120,142,144,140,130,143,141,120,142,144,140,130,143,141,120,142,144,150,0,150,147,147,150,0,0,150,147,149,150,0,149,0,147,147,147,147,147,0,147,148,149,147,148,150,151,149,147,148,150,151,149,147,148,149,147,148,149,148,150,148,149,149,149,149,147,148,150,151,149,147,148,150,151,149,147,148,149,0,0,147,148,150,151,149,148,0,152,148,0,150,147,148,149,0,147,148,150,151,149,147,148,150,151,149,147,148,150,151,149,147,148,150,151,149,236,237,236,238,239,237,238,239,238,236,240,241,242,243,244,245,246,247,247,241,244,244,242,243,241,242,243,244,245,246,244,245,246,247,165,169,169,0,0,68,68,161,0,162,69,175,173,174,173,174,0,176,165,169,80,169,171,169,0,173,174,163,0,0,0,0,0,175,164,0,164,0,0,0,163,0,0,0,0,161,175,175,161,169,169,169,176,0,0,175,176,165,169,0,163,162,69,104,165,0,104,163,161,104,162,69,68,163,164,0,158,159,161,104,173,174,175,162,69,68,176,163,165,169,164,161,104,173,174,175,162,69,68,176,163,165,169,164,161,104,162,69,68,163,164,161,104,162,69,68,163,164,163,163,159,57,168,162,69,68,57,104,69,68,163,165,169,171,171,161,104,162,69,163,164,161,161,161,104,104,104,162,162,162,69,69,69,163,163,163,164,164,164,159,161,104,173,174,175,162,69,68,176,163,163,165,169,164,161,104,173,174,175,162,69,68,176,163,165,169,164,161,104,162,69,68,163,164,0,57,57,57,57,57,80,171,171,168,57,57,57,57,57,171,161,104,173,174,175,162,69,68,176,163,165,169,164,168,0,104,168,159,163,0,0,104,69,68,163,165,169,57,57,168,123,159,57,159,161,104,162,69,68,163,164,163,161,104,173,174,175,162,69,68,176,163,165,169,164,161,104,173,174,175,162,69,68,176,163,165,169,164,161,104,173,174,175,162,69,68,176,163,165,169,164,57,57,104,161,104,173,174,175,162,69,68,176,163,165,169,164,123,248,248,248,249,249,250,251,250,249,249,252,253,254,255,256,252,253,254,256,255,257,258,259,258,260,257,259,261,262,260,261,258,259,262,258,259,263,185,0,0,0,0,185,0,0,0,185,186,187,188,184,188,183,184,185,186,187,188,189,184,185,186,187,188,189,184,185,186,187,188,184,185,186,187,188,184,189,184,184,186,183,185,187,184,184,184,184,184,185,186,187,188,189,184,185,186,187,188,189,184,185,186,187,188,184,184,184,184,184,183,184,184,184,184,188,184,185,186,187,188,189,184,183,184,185,185,187,187,187,187,189,184,183,184,184,189,184,188,184,184,183,184,184,186,184,184,185,186,187,188,184,184,185,186,187,188,189,184,185,186,187,188,189,184,185,186,187,188,189,184,184,185,186,187,188,189,184,0,0,194,193,193,194,194,193,194,193,194,193,194,193,194,194,193,194,194,194,194,194,194,193,194,193,194,193,194,194,194,194,193,194,194,194,194,194,193,193,194,193,194,194,194,193,194,194,194,194,193,194,193,194,193,194,193,194,193,0,0,196,195,195,196,196,195,196,195,196,195,196,195,196,196,195,196,196,196,196,196,196,195,196,195,196,196,195,196,196,196,196,196,195,196,196,196,196,196,196,196,195,195,196,195,196,196,196,195,196,196,196,196,195,196,195,196,195,196,195,196,195,203,197,197,0,203,0,0,0,0,0,0,167,203,198,167,167,197,198,199,167,197,198,167,167,203,86,197,198,167,203,86,167,203,167,203,167,203,167,167,167,203,197,198,198,167,203,86,198,198,167,203,167,167,167,203,203,203,167,167,198,197,198,167,167,203,86,86,197,198,198,167,167,167,167,203,86,167,167,167,203,86,86,197,198,167,203,86,198,0,197,86,0,197,197,197,198,86,199,200,167,203,198,0,197,198,167,203,197,197,198,199,167,203,167,0,198,197,198,167,203,86,197,198,198,167,203,86,197,197,198,167,203,86,167,167,197,198,167,203,86,198,0,0,209,210,209,210,209,210,209,210,209,210,209,210,209,210,209,210,210,210,210,209,209,209,210,209,210,209,210,209,210,217,0,0,0,215,0,0,215,0,56,215,216,213,214,56,215,216,217,213,214,56,215,216,217,213,214,56,215,216,56,215,216,214,216,214,214,215,215,215,215,214,214,56,215,216,217,217,213,214,56,215,216,217,213,56,215,216,214,214,56,215,216,217,213,213,213,214,216,213,213,214,214,56,56,216,216,56,215,216,217,214,56,215,216,217,213,214,56,215,216,217,213,213,56,56,56,214,56,215,216,217,213,214,56,215,216,217,213,56,0,218,0,0,0,0,72,218,0,0,0,0,109,0,0,166,219,220,221,63,109,72,166,219,220,221,63,166,219,220,221,63,109,222,223,166,219,220,221,63,109,222,223,72,166,219,220,221,63,109,166,219,220,221,63,109,219,166,219,220,221,63,109,109,222,223,166,219,220,221,63,109,222,223,166,219,220,221,63,109,166,219,220,221,63,109,222,223,222,223,63,222,223,73,166,219,220,221,63,63,72,166,219,220,221,63,222,223,222,223,166,219,220,221,63,109,109,166,219,220,221,63,109,222,223,166,219,220,221,63,109,222,223,72,166,219,220,221,63,166,219,220,221,63,109,222,223,166,219,220,221,63,109,222,223,72,72,222,223,222,223],"f":"`````````{{cb}d{}}00{c{{f{eg}}}{}{}h}{{}}{j{{n{l}}}}1{j{{A`{l}}}}01{ce{}{}}00000{jj}{AbAb}{AdAd}{{ce}d{}{}}00{{jj}Af}{{AbAb}Af}{{AdAd}Af}{{ce}Af{}{}}{{{A`{l}}{A`{l}}}Af}11{{}Ab}{c{{Ah{j}}}Aj}{c{{Ah{Ab}}}Aj}{c{{Ah{Ad}}}Aj}`{ce{}{{An{Al}}}}0{{jj}B`}{{AbAb}B`}{{AdAd}B`}{{ce}B`{}{}}00000000`{{}{{Bd{Bb}}}}0{{jBf}{{Ah{dBh}}}}0{{AbBf}{{Ah{dBh}}}}0{{AdBf}{{Ah{dBh}}}}0{jBj}``{cc{}}{{{n{l}}}j}0{Blj}22{BnAd}{{{A`{l}}}}30444{C`{{Ah{j}}}}{C`{{Ah{Ad}}}}`{{jc}dCb}{{Abc}dCb}{{Adc}dCb}`{jAd}`{ce{}{}}00{AbB`}0`{cj{{Cd{{A`{l}}}}}}{{jAb}Ad}{{jj}{{Bd{Af}}}}{{AbAb}{{Bd{Af}}}}{{AdAd}{{Bd{Af}}}}``7{{jc}AhCf}{{Abc}AhCf}{{Adc}AhCf}`{jBj}:::{cBj{}}00{c{{Ah{{f{eg}}{Ch{e}}}}}{}{}h}{c{{Ah{e}}}{}{}}00000{cCj{}}00{{}Cl}0`???`````````````````````{{cb}d{}}0000{ce{}{}}00000000000000000{{CnD`}d}{DbDb}{DdDd}{BnBn}{DfDf}{CnCn}{{ce}d{}{}}0000{{DbDb}Af}{{ce}Af{}{}}{{}Dh}{{}Dj}{{DbDb}B`}{{BnBn}B`}{{ce}B`{}{}}00000{{DbBf}Dl}0{{DnBf}Dl}{{DhBf}Dl}{{DjBf}Dl}{{DdBf}Dl}{{BnBf}Dl}0{{DfBf}Dl}0{{D`Bf}Dl}{{CnBf}Dl}{BnAb}{cc{}}0{E`Dn}111{AdBn}222222222`{{Dbc}dCb}{Bnj}{{Bnc}dCb}{BnAd}`{ce{}{}}00000000{c{}{}}{{{Ej{}{{Eb{c}}}}El}B`En}{{ce}{{F`{g}}}{}FbFd}`````{{cg}Dd{{Ff{Bn}}}{{Ff{Fh}}}{{Fl{}{{Fj{e}}}}}}{{cFnG`}CnGb}{{Cnj{Gd{El}}}d}{{DbDb}{{Bd{Af}}}}{{{Ej{}{{Eb{c}}}}}BbEn}{{{Gf{D`}}Gh}{{Gj{c}}}{}}{{Dd{Gn{Gl}}}Dd}{{CnDd}D`}{{{Ej{}{{Eb{c}}}}El}dEn}{{cg}{{H`{ei}}}{}{}{{Fb{}{{Hb{e}}}}}{{Fd{}{{Hb{e}}}}}}====={cBj{}}00{c{{Ah{e}}}{}{}}00000000000000000{{{Gf{c}}Gh}Gj{}}{cCj{}}00000000{ce{}{}}00000000{{cFnG`DhDj}CnGb}``````{{cb}d{}}22{HdHd}{{ce}d{}{}}{c{{Ah{Hd}}}Aj}{{cjHfHhHje}{{Hl{d}}}Gb{{I`{}{{Hn{Hd}}}}Ib}}{{cjHfHje}{{Hl{d}}}Gb{{I`{}{{Hn{Hd}}}}Ib}}0{{HdBf}Dl}{cc{}}09{{Hdc}AhCf}:==;:````````````8::{IdId}7{{}Id}{c{{Ah{Id}}}Aj}{{IdId}B`}{{Idg}d{{Ff{Bj}}}{{Ff{j}}}{{Fl{}{{Fj{{If{ce}}}}}}}}{{IdBf}Dl}7{gId{{Ff{Bj}}}{{Ff{j}}}{{Fl{}{{Fj{{If{ce}}}}}}}}8{{IdBb}c{}}{ce{}{}}{Idc{}}{IdB`}{Id{{`{{Ih{}{{Fj{{If{Bjj}}}}}}}}}}{IdBb}{{Ijj}{{`{{Fd{}{{Hb{{Hl{Il}}}}}}In}}}}{{jc}{{Hl{Id}}}Ij}{{cj}{{Hl{Id}}}J`}{{IdBjj}d}{Jb{{Hl{{If{JdJfId}}}}}}{Jb{{Hl{{If{Id{Jj{JhIl}}Ef}}}}}}{{Idc}AhCf}{{Idc}{{Hl{Jl}}}Gb}{Id{{`{{Jn{}{{Fj{Il}}}}}}}}={c{{Ah{e}}}{}{}}0{cCj{}}?```````{{cb}d{}}{ce{}{}}000``{EfEf}{{ce}d{}{}}`{{}Ef}{c{{Ah{Ef}}}Aj}`{{EfEf}B`}{{ce}B`{}{}}00`{{EfBf}Dl}{{K`Bf}Dl}0{cc{}}0{KbK`}{KdK`}{KfK`}{KhK`}{KjK`}{KlK`}6`??{EfKn}``{{Efc}AhCf}{K`{{Bd{L`}}}}{ce{}{}}{cBj{}}{c{{Ah{e}}}{}{}}000{cCj{}}033`````````````````{{cb}d{}}00{{cj}{{Ld{{Lb{c}}}}}Gb}555555{{{Lb{c}}}{{Lb{c}}}{EnGb}}{GlGl}{LfLf}{{ce}d{}{}}00{{LfLf}Af}{{ce}Af{}{}}{c{{Ah{Gl}}}Aj}{c{{Ah{Lf}}}Aj}{{LfLf}B`}{{ce}B`{}{}}00{{{Lb{c}}Bf}Dl{LhGb}}{{GlBf}Dl}{{LfBf}Dl}{cc{}}00000{{cgAdi}{{Ah{EfE`}}}Gb{{Fd{}{{Hb{{Hl{Lj}}}}}}}{{Ll{}{{Hb{e}}}}}{{I`{}{{Hn{Gl}}}}Ib}}{{Lfc}dCb}{ce{}{}}00{{{Lb{c}}}LnGb}{{LfLf}{{Bd{Af}}}}{{Glc}AhCf}{{Lfc}AhCf}{{{Lb{c}}}{{Bd{M`}}}Gb}555{c{{Ah{e}}}{}{}}00000{cCj{}}00{{}{{Hl{Ln}}}}7888```````````````````````88{{E`Bf}Dl}0{KdE`}={MbE`}{MdE`}{MfE`}{KjE`}{MhE`}{KhE`}{MjE`}{ce{}{}}{E`{{Bd{L`}}}}{cBj{}}>>=2```````````````````````````````````2222222222222222222222222222{MlJh}{Mn{{Ah{{If{N`{Gd{l}}}}Md}}}}{Nb{{Ah{{If{N`{Gd{l}}}}Md}}}}{Mn{{Ah{N`Md}}}}{Nb{{Ah{N`Md}}}}{JbNd}{MlNd}{NbNd}{{NfBf}Dl}{{NhBf}Dl}{{NjBf}Dl}{{MfBf}Dl}0{{JbBf}Dl}{{MlBf}Dl}{{MnBf}Dl}{{MhBf}Dl}0{{NbBf}Dl}{{MdBf}Dl}0{{NlBf}Dl}{{N`Bf}Dl}{{JdBf}Dl}{{NdBf}Dl}{cc{}}0{JbNj}{NdNj}{MlNj}3{KdMf}444444{MhMd}{MbMd}6{KbMd}{{{If{Nb{Ah{NnMd}}}}}Nl}{N`Nl}99{NdJd}{MlJd};;{Jbj}{Mnj}{Nbj}{ce{}{}}0000000000000{{LjO`}Nf}{Nf{{Hl{NhKj}}}}{Nh{{Hl{NjMf}}}}{JbMn}{{Mlj}Mn}{Mn{{Hl{{If{NbJh}}Mh}}}}{NbNl}{N`Jd}{Nd{{Ah{EfKh}}}}{MnJh}{NbJh}{JbLn}{MlLn}{MnLn}{Mf{{Bd{L`}}}}{Md{{Bd{L`}}}}?{cBj{}}00{NbOb}{c{{Ah{e}}}{}{}}000000000000000000000000000{cCj{}}0000000000000{ce{}{}}0000000000000{{Mnc}{{Ah{N`Md}}}Od}{{Nbc}{{Ah{N`Md}}}Od}{{Mnc}{{Ah{N`Md}}}Of}{{Nbc}{{Ah{N`Md}}}Of}{{Mn{Bd{c}}e}{{Ah{N`Md}}}OhOd}{{Nb{Bd{c}}e}{{Ah{N`Md}}}OhOd}```````{{cb}d{}}00777777``{OjOj}{OlOl}{OnOn}{{ce}d{}{}}00``{{}On}{c{{Ah{Oj}}}Aj}{c{{Ah{Ol}}}Aj}{c{{Ah{On}}}Aj}{{OjOj}B`}{{OlOl}B`}{{OnOn}B`}{{ce}B`{}{}}00000000{{OjBf}Dl}{{OlBf}Dl}{{OnBf}Dl}{cc{}}00000{{OjLf}{{Bd{Ol}}}}{Oj{{Bd{Ol}}}}`{ce{}{}}00`{jOj}{jOl}{{OjGl}d}``{OjOl}`{{Ojc}AhCf}{{Olc}AhCf}{{Onc}AhCf}`777{c{{Ah{e}}}{}{}}00000{cCj{}}00999{{LjjA@`}{{Hl{Ef}}}}{{LjjJh}{{Hl{{If{Jf{A@b{{A`{Jh}}}}}}}}}}{{Ljj}{{Hl{{If{JhEf}}}}}}0{{{A`{Jh}}c}A@dA@f}```{{cb}d{}}00>>>>>>{JfJf}{A@hA@h}{A@jA@j}{{ce}d{}{}}00{{JfBf}Dl}{{A@hBf}Dl}{{A@jBf}Dl}{cc{}}00{cJf{{Fl{}{{Fj{j}}}}}}111{{JfBb}{{Bd{j}}}}{ce{}{}}00{c{{A@l{g}}}{}{}{{Ih{}{{Fj{e}}}}}}{JfIl}{Jfc{}}3{JfB`}{Jf{{`{{Ih{}{{Fj{j}}}}}}}}{JfBb}{Il{{Bd{Jf}}}}{A@h{{Ld{{Bd{j}}}}}}{A@j{{Bd{c}}}{}}{c{{Hl{{If{A@hJh}}}}}A@n}{Jf{{Bd{j}}}}{{A@hJh}{{Ld{d}}}}<<<{c{{AA`{i}}}{}{}{}{{Ih{}{{Fj{{Ah{eg}}}}}}}}{Il{{Ah{Jfc}}}{}}{c{{Ah{e}}}{}{}}00000{cCj{}}00{ce{}{}}00`{{cb}d{}}11{AAbAAb}{{ce}d{}{}}{{}AAb}````````````{{AAbBf}Dl}{cc{}}06{AAb{{AAf{{If{C`AAd}}}}}}{{}C`}8::98``````````````77777{{}AAh}{{}A@d}{jO`}{A@d{{Bd{{If{JhAAh}}}}}}<<<<<<<<<<<<<<{AAhAAh}{A@dA@d}{AAjAAj}{O`O`}{AAlAAl}>>>>>{c{{Ah{AAh}}}Aj}{c{{Ah{A@d}}}Aj}{c{{Ah{AAj}}}Aj}{c{{Ah{O`}}}Aj};{{AAhAAh}B`}{{A@dA@d}B`}{{AAjAAj}B`}{{O`O`}B`}{{AAlAAl}B`}{{ce}B`{}{}}00000000000000{{AAhBf}Dl}{{A@dBf}Dl}{{AAnBf}Dl}{{AAjBf}Dl}{{O`Bf}Dl}{{AAlBf}Dl}{{AB`Bf}Dl}0{cc{}}000{O`AAj}111{eA@d{{Cd{ABb}}}{{Fl{}{{Fj{c}}}}}}022222{{AAhc}dCb}{{A@dc}dCb}{{AAlc}dCb}`{ce{}{}}000000{c{{A@l{g}}}{}{}{{Ih{}{{Fj{e}}}}}}1{AAhB`}0`{A@dAAn}{jO`}0{cAAh{{Cd{ABb}}}}{cA@d{{Fl{}{{Fj{AAh}}}}}}{{jA@d}O`}{AAn{{Bd{c}}}{}}`{AAl{{A`{l}}}}{{AAhc}AhCf}{{A@dc}AhCf}{{AAjc}AhCf}{{O`c}AhCf}9{AAhLn}>>>>>{cBj{}}{c{{AA`{i}}}{}{}{}{{Ih{}{{Fj{{Ah{eg}}}}}}}}{c{{Ah{e}}}{}{}}00000{ABd{{Ah{AAlc}}}{}}11111111{cCj{}}000000{ce{}{}}000000`````````````````````{{cb}d{}}001111111111{ABfABf}{ABhABh}{ABjABj}{{ce}d{}{}}00{{}ABh}{c{{Ah{ABl}}}Aj}`{{ABjABj}B`}{{ce}B`{}{}}00{{ABfBf}Dl}{{ABhBf}Dl}{{ABlBf}Dl}{{{ABn{c}}Bf}DlLh}{{ABjBf}Dl}{cc{}}0000000{{LjceG`}dJ`AC`}{{cO`{ABn{e}}}{{Hl{d}}}J`AC`}{ce{}{}}0000`{ACb{{Hl{AAj}}}}{{AC`ABf}{{ACd{d}}}}`{{cjAAhe}{{Hl{{If{ABjJhACf}}}}}J`ACh}{{ABlc}AhCf}444{{O`c{ABn{e}}giABh}{{Hl{ABj}}}J`AC`ACjA@n}{c{{Ah{e}}}{}{}}000000000{cCj{}}000077777``````````````````````````````````````````````````````````````````````````````````````````````````````{{cb}d{}}000000`{ACl{{`{{Fd{}{{Hb{{Ld{{`{Of}}}}}}}}In}}}}{ACn{{`{{Fd{}{{Hb{{Ld{{AD`{j}}}}}}}}In}}}}::::::::::::::::::::::::::{ADbADb}{M`M`}{ADdADd}{HjHj}{HhHh}{ADfADf}{ADhADh}{{ce}d{}{}}000000{{ADfADf}Af}{{ce}Af{}{}}{{ACnB`{ADl{ADj}}}{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}}{{GbAd}{{`{{Fd{}{{Hb{{Ld{ADn}}}}}}In}}}}{AE`{{`{{Fd{}{{Hb{{Ld{{`{A@n}}}}}}}}In}}}}{{}ADd}{{}Hj}{{}Hh}{{Gb{Gd{j}}}{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}}{c{{Ah{M`}}}Aj}{c{{Ah{Hj}}}Aj}{c{{Ah{Hh}}}Aj}{c{{Ah{ADf}}}Aj}{c{{Ah{ADj}}}Aj}{c{{Ah{AEb}}}Aj}{{{AEf{}{{AEd{c}}}}j}{{`{{Fd{}{{Hb{{Ld{ADb}}}}}}In}}}ACl}{{{AEf{}{{AEd{c}}}}j}{{Ld{ADb}}}ACl}{{ADbADb}B`}{{M`M`}B`}{{ADdADd}B`}{{HjHj}B`}{{ADfADf}B`}{{ADhADh}B`}{{ce}B`{}{}}00000000000000000{{ACnjHfHjAEh}{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}}{{ADbBf}Dl}{{M`Bf}Dl}{{AEjBf}Dl}{{AElBf}Dl}{{AEnBf}Dl}{{ADdBf}Dl}{{HjBf}Dl}{{HhBf}Dl}{{AF`Bf}Dl}{{ADfBf}Dl}0{{ADjBf}Dl}{{AEbBf}Dl}{{ADhBf}Dl}{cc{}}0000000000000000000`{{Gb{AFb{j}}}{{`{{AFd{}{{Fj{AEj}}}}AFf}}}}0{Gb{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}}{{Gb{AFb{j}}}{{`{{AFd{}{{Fj{AEl}}}}AFf}}}}0{{{J`{}{{AFh{c}}}}j}{{`{{Fd{}{{Hb{{Ld{{Bd{c}}}}}}}}In}}}AE`}{{{AEf{}{{AEd{c}}}}j}{{`{{Fd{}{{Hb{{Ld{{Bd{c}}}}}}}}In}}}ACl}{{{AEf{}{{AEd{c}}}}jJh}{{`{{Fd{}{{Hb{{Ld{c}}}}}}In}}}ACl}{AE`j}{{GbIlAb}{{`{{Fd{}{{Hb{{Ld{Jl}}}}}}In}}}}{{GbHfADdAbc}{{`{{Fd{}{{Hb{{Ld{{If{JlJh}}}}}}}}In}}}{{I`{}{{Hn{AEn}}}}Ib}}{{GbcAbe}{{`{{Fd{}{{Hb{{Ld{{If{JlJh}}}}}}}}In}}}{AFjInAFf}{{I`{}{{Hn{AEn}}}}Ib}}0{{GbcAbe}{{`{{Fd{}{{Hb{{Ld{{If{JlJh}}}}}}}}In}}}{{AFd{}{{Fj{{Ld{Il}}}}}}InAFf}{{I`{}{{Hn{AEn}}}}Ib}}{{{AEf{}{{AEd{c}}}}c}{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}ACl}{ce{}{}}000000000000{AE`B`}`{{JhB`}M`}{AE`{{`{{Fd{}{{Hb{{Ld{{`{ACj}}}}}}}}In}}}}{ACn{{`{{Fd{}{{Hb{{Ld{{AD`{j}}}}}}}}In}}}}{{ADfADf}{{Bd{Af}}}}``{{M`c}AhCf}{{Hjc}AhCf}{{Hhc}AhCf}{{ADfc}AhCf}{{ADjc}AhCf}{{AEbc}AhCf}{{GbADn{Bd{Ad}}}{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}}{Gb{{`{{Fd{}{{Hb{d}}}}In}}}}{AE`M`}{Of{{`{{Fd{}{{Hb{{Ld{d}}}}}}}}}}{ACn{{`{{Fd{}{{Hb{{Ld{{AD`{{If{ADnAd}}}}}}}}}}In}}}}{{GbAd}Jl}{ACn{{AFl{Ih}}}}{ce{}{}}000000{cBj{}}{c{{Ah{e}}}{}{}}0000000000000000000000000{cCj{}}000000000000{{GbB`{ADl{AEb}}}{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}}0{M`Jh}5555555555555{{OfJh{Gd{Nn}}}{{`{{Fd{}{{Hb{{Ld{d}}}}}}}}}}``````````````````````````````````````````````{{cb}d{}}0000`{AFn{{Ld{{`{Of}}}}}}{AG`{{Ld{{AD`{j}}}}}}999999999999{AGbAGb}{AGdAGd}{AGfAGf}{AGhAGh}{AG`AG`}{{ce}d{}{}}0000`{{AG`B`{ADl{ADj}}}{{Ld{d}}}}{{AG`Ad}{{Ld{ADn}}}}`{AFn{{Ld{{`{A@n}}}}}}{{}AGb}{{}AGf}{{AG`{Gd{j}}}{{Ld{d}}}}{AG`{{Ld{d}}}}{{AG`j}{{Ld{ADb}}}}0{{AG`jHfHjAEh}{{Ld{d}}}}{{AGbBf}Dl}{{AGdBf}Dl}{{AGfBf}Dl}{{AGhBf}Dl}{{AGjBf}Dl}{{AG`Bf}Dl}{cc{}}00000000009{{AG`j}{{Ld{{Bd{c}}}}}{}}0{{AG`jJh}{{Ld{c}}}{}}{AFnj}{{AG`IlAb}{{Ld{Jl}}}}{{AG`HfADdAbc}{{Ld{{If{JlJh}}}}}{{I`{}{{Hn{AEn}}}}Ib}}{{AG`AGj}{{Ld{B`}}}}{{AG`cAbe}{{Ld{{If{JlJh}}}}}{{AFd{}{{Fj{{Ld{Il}}}}}}AFfIn}{{I`{}{{Hn{AEn}}}}Ib}}`{{AG`c}{{Ld{d}}}{}}{ce{}{}}00000{AFnB`}{c{{Ld{AG`}}}{{Cd{AGl}}}}```````{{HfAGh}{{Ld{AG`}}}}{AFn{{Ld{{`{ACj}}}}}}{{AG`j}Hf}0`{AG`{{Ld{{AD`{j}}}}}}`{{AG`ADn{Bd{Ad}}}{{Ld{d}}}}{AG`d}{AFnM`}{AG`{{Ld{d}}}}{AG`{{Ld{{AD`{{If{ADnAd}}}}}}}}`{{AG`Ad}Jl}{AG`{{AFl{Ih}}}}====={{AG`c}{{Ld{d}}}{{AGn{j`}{{Hb{{Bd{`}}}}}}InAH`}}{c{{Ah{e}}}{}{}}00000000000{cCj{}}00000{{AG`AGbB`}{{Ld{d}}}}{ce{}{}}00000``{{cb}d{}}0{AHb{{Ld{{`{Of}}}}}}{AHd{{Ld{{AD`{j}}}}}}3333{AHdAHd}{AHbAHb}{{ce}d{}{}}0{{AHdB`{ADl{ADj}}}{{Ld{d}}}}{{AHdAd}{{Ld{ADn}}}}{AHb{{Ld{{`{A@n}}}}}}{{}AHd}{{AHd{Gd{j}}}{{Ld{d}}}}{{AHdj}{{Ld{ADb}}}}0{{AHdjHfHjAEh}{{Ld{d}}}}{{AHdBf}Dl}{{AHbBf}Dl}{cc{}}000{AHd{{Ld{d}}}}{{AHdj}{{Ld{{Bd{c}}}}}{}}0{{AHdjJh}{{Ld{AHb}}}}{AHbj}{{AHdIlAb}{{Ld{Jl}}}}{{AHdHfADdAbc}{{Ld{{If{JlJh}}}}}{{I`{}{{Hn{AEn}}}}Ib}}{{AHdcAbe}{{Ld{{If{JlJh}}}}}{{AFd{}{{Fj{{Ld{Il}}}}}}AFfIn}{{I`{}{{Hn{AEn}}}}Ib}}{{AHdAHb}{{Ld{d}}}}{ce{}{}}0{AHbB`}{{}AHd}{AHb{{Ld{{`{ACj}}}}}}{AHd{{Ld{{AD`{j}}}}}}{{AHdADn{Bd{Ad}}}{{Ld{d}}}}{AHdd}{AHbM`}{AHd{{Ld{{AD`{{If{ADnAd}}}}}}}}{{AHdAd}Jl}{AHd{{AFl{Ih}}}}::{c{{Ah{e}}}{}{}}000{cCj{}}0<<``{{cb}d{}}0{AHf{{Ld{{`{Of}}}}}}{AHh{{Ld{{AD`{j}}}}}}????{AHhAHh}{AHfAHf}{{ce}d{}{}}0{{AHhB`{ADl{ADj}}}{{Ld{d}}}}{{AHhAd}{{Ld{ADn}}}}{AHf{{Ld{{`{A@n}}}}}}{{}AHh}{{AHh{Gd{j}}}{{Ld{d}}}}{{AHhj}{{Ld{ADb}}}}0{{AHhjHfHjAEh}{{Ld{d}}}}{{AHhBf}Dl}{{AHfBf}Dl}{cc{}}0{gAHh{{Ff{Bj}}}{{Cd{{A`{l}}}}}{{Fl{}{{Fj{{If{ce}}}}}}}}11{AHh{{Ld{d}}}}{{AHhj}{{Ld{{Bd{c}}}}}{}}{{AHhj}{{Bd{Il}}}}1{{AHhjJh}{{Ld{AHf}}}}{AHfj}{{AHhIlAb}{{Ld{Jl}}}}{{AHhHfADdAbc}{{Ld{{If{JlJh}}}}}{{I`{}{{Hn{AEn}}}}Ib}}{{AHhcAbe}{{Ld{{If{JlJh}}}}}{{AFd{}{{Fj{{Ld{Il}}}}}}AFfIn}{{I`{}{{Hn{AEn}}}}Ib}}{{AHhc}j{{Cd{{A`{l}}}}}}{{AHhAHf}{{Ld{d}}}}{{AHhe}{{Bd{j}}}{{Cd{{A`{l}}}}}{{Fl{}{{Fj{c}}}}}}{ce{}{}}0{AHfB`}{g{{If{AHh{Jj{BjBl}}}}}{{Ff{Bj}}}{{Cd{{A`{l}}}}}{{Fl{}{{Fj{{If{ce}}}}}}}}{AHf{{Ld{{`{ACj}}}}}}{AHh{{Ld{{AD`{j}}}}}}{{AHhADn{Bd{Ad}}}{{Ld{d}}}}{AHhd}{AHfM`}{AHh{{Ld{{AD`{{If{ADnAd}}}}}}}}{{AHhAd}Jl}{AHh{{AFl{Ih}}}}::{c{{Ah{e}}}{}{}}000{cCj{}}0<<```````````{{cb}d{}}0{c{{f{eg}}}{}{}h}>>{{{AHj{ce}}}{{AHj{ce}}}{}{}}{AHl{{A`{l}}}}{{{A@b{AHn}}}{{AIb{AI`}}}}{{AIdc}ADn{{AGn{{A`{l}}}{{Hb{B`}}}}}}{ce{}{}}00{ADn{{A`{l}}}}1111111{ADnADn}{AIfAIf}{{ce}d{}{}}0{{ADnADn}Af}{{AIfAIf}Af}{{{A`{l}}{A`{l}}}Af}{{ce}Af{}{}}10{{}{{AHj{ce}}}AIh{}}{{}AHl}{AHlc{}}{c{{Ah{ADn}}}Aj}{c{{Ah{AIf}}}Aj}{Jld}{ce{}{{An{Al}}}}0{{ADnADn}B`}{{AIfAIf}B`}{{ce}B`{}{}}00000{{}{{Bd{Bb}}}}0{AHl{{Ld{d}}}}{{{AHj{ce}}Bf}DlLhLh}{{AHlBf}Dl}{{ADnBf}Dl}0{{AIfBf}Dl}{{JlBf}Dl}{JlAb}{cc{}}{{{Gd{l}}}AHl}1{BjADn}2{C`ADn}{IlADn}44{{{A`{l}}}c{}}055{Jlj}{JlAd}{ce{}{}}0000{AHl{{If{{Gd{l}}{AIj{Bb}}}}}}`{{{AHj{ce}}}B`{}{}}{Jld}`{{{AHj{ce}}i}{{AHj{cg}}}{}{}{}{{Ll{e}{{Hb{g}}}}}}{{{AHj{ce}}i}{{AHj{ge}}}{}{}{}{{Ll{c}{{Hb{g}}}}}}{{{AHj{ce}}}{{Bd{c}}}{}{}}{{}AHl}{{Ad{Bd{{AIb{AI`}}}}}Jl}{{AHnAd}d}{{AI`Ad}d}{{ADnADn}{{Bd{Af}}}}{{AIfAIf}{{Bd{Af}}}}{{AHlc}{{Ld{d}}}AIl}`{{{AHj{IlAIn}}Jh{A`{l}}}{{Ld{Bb}}}}{{AHlJh{A`{l}}}{{Ld{Bb}}}}{{ADnc}AhCf}{{AIfc}AhCf}{{{AHj{IlAIn}}}{{Ld{{Bd{Jh}}}}}}{{{AHj{c{If{eJh}}}}}Jh{{Cd{{A`{l}}}}}{}}{AHl{{Ld{{Bd{Jh}}}}}}{{{A@b{AHn}}Ad}Jl}{ce{}{}}0{cBj{}}{{LnJh}Jh}{c{{Ah{{f{eg}}{Ch{e}}}}}{}{}h}{c{{Ah{e}}}{}{}}000000{AHl{{Ah{{Gd{l}}c}}}{}}111{{{AHj{ce}}k}{{Ah{{AHj{cg}}i}}}{}{}{}{}{{Ll{e}{{Hb{{Ah{gi}}}}}}}}{cCj{}}0000{{}Cl}{{}AJ`}99999{{AHlJh{A`{l}}}{{Ld{Bb}}}}``::::{{{AJb{c}}}Jh{}}{{{AJd{c}}}Jh{}}{{{AJb{c}}Bf}DlLh}{{{AJd{c}}Bf}DlLh}{cc{}}0??{{{AJb{c}}}{{If{cJh}}}{}}{{{AJd{c}}}{{If{cJh}}}{}}{c{{AJb{c}}}{}}{c{{AJd{c}}}{}}{{{Gf{{AJd{c}}}}Gh}{{Gj{{Ld{d}}}}}{AJfAFf}}0{{{Gf{{AJd{c}}}}Gh{A`{l}}}{{Gj{{Ld{Bb}}}}}{AJfAFf}}{{{AJb{c}}}{{Ld{{n{l}}}}}AJh}{{{AJb{c}}Bb}{{Ld{Il}}}AJh}{c{{Ah{e}}}{}{}}000{cCj{}}0{ce{}{}}0`````````{{cb}d{}}00{{{AJj{c}}}d{}}222222222222{AJld}{G`G`}{AJnAJn}{AK`AK`}{{ce}d{}{}}00{{}AJl}{{}AK`}{AJlc{}}7{{AJnAJn}B`}{{ce}B`{}{}}009{{AJlBf}Dl}{{G`Bf}Dl}{{AJnBf}Dl}{{AK`Bf}Dl}{{AKbBf}Dl}0{{{AJj{c}}Bf}DlLh}{cc{}}00000000{AJlG`}{ce{}{}}00000{c{}{}}{{ce}{{F`{g}}}{}FbFd}{AK`AJl}`{{{Gf{{AJj{c}}}}Gh}{{Gj{e}}}{}{}}{{cg}{{H`{ei}}}{}{}{{Fb{}{{Hb{e}}}}}{{Fd{}{{Hb{e}}}}}}{AJld}{{}AJl}{{G`g}{{AJj{c}}}In{{Fd{}{{Hb{c}}}}}{{Ll{}{{Hb{e}}}}In}}{{G`e}d{{Fd{}{{Hb{d}}}}}{{Ll{}{{Hb{c}}}}In}}``999{cBj{}}{c{{Ah{e}}}{}{}}00000000000{{{Gf{c}}Gh}Gj{}}{{G`g}{{Ah{{AJj{c}}AKb}}}In{{Fd{}{{Hb{c}}}}}{{Ll{}{{Hb{e}}}}In}}{{G`e}{{Ah{dAKb}}}{{Fd{}{{Hb{d}}}}}{{Ll{}{{Hb{c}}}}In}}{{G`{AFl{Ll}}}{{Ah{dAKb}}}}{cCj{}}00000{ce{}{}}00000{G`Bb}```````````````{{cb}d{}}00000{{{I`{}{{Hn{c}}}}c}{{AKd{d}}}{InAH`}}{{{ADl{c}}c}{{AKd{d}}}{InAH`}}{{{AKf{c}}c}{{Ah{dMj}}}{InAH`}}{{{AKh{ceg}}e}{{Ah{dMj}}}I`{InAH`}{{AGn{e}{{Hb{}}}}EnInAH`}}{{{AKj{ceg}}e}{{Ah{dMj}}}I`{InAH`}{{AGn{e}{{Hb{Bd}}}}EnInAH`}}{{{Gn{c}}e}{{Ah{dMj}}}{InAH`}{}}8888888888888888{{{I`{}{{Hn{c}}}}}{{ADl{c}}}{InAH`}}{{{ADl{c}}}{{ADl{c}}}{}}{{{AKf{c}}}{{AKf{c}}}{}}{{{AKh{ceg}}}{{AKh{ceg}}}I`{InAH`}{{AGn{e}{{Hb{}}}}EnInAH`}}{{{AKj{ceg}}}{{AKj{ceg}}}I`{InAH`}{{AGn{e}{{Hb{Bd}}}}EnInAH`}}{{{Gn{c}}}{{Gn{c}}}{}}{MjMj}{{ce}d{}{}}00000{{}{{AKf{c}}}{}}{{{ADl{c}}Bf}Dl{}}{{{AKf{c}}Bf}Dl{}}{{{AKh{ceg}}Bf}DlI`{InAH`}{{AGn{e}{{Hb{}}}}EnInAH`}}{{{AKj{ceg}}Bf}DlI`{InAH`}{{AGn{e}{{Hb{Bd}}}}EnInAH`}}{{{Gn{c}}Bf}Dl{}}{{MjBf}Dl}0{{{AKl{ce}}Bf}DlLhLh}{{{AKn{ce}}Bf}DlLhLh}{cc{}}0000000000000{ce{}{}}0000000{{{AKl{ce}}}cOd{{AL`{Jh}}}}{{{AKn{ce}}}cOd{{AGn{JhBb}{{Hb{{Ld{d}}}}}}}}{{{ALb{c}}}{{Gn{c}}}{}}{{ce}{{AKl{ce}}}Od{{AL`{Jh}}}}{{ce}{{AKn{ce}}}Od{{AGn{JhBb}{{Hb{{Ld{d}}}}}}}}{IbJh}{{{ADl{c}}}Jh{InAH`}}{{{AKf{c}}}Jh{}}{{{AKh{ceg}}}Jh{IbI`}{InAH`}{{AGn{e}{{Hb{}}}}EnInAH`}}{{{AKj{ceg}}}JhIb{}{}}{{{Gn{c}}}Jh{}}{{{Gn{c}}{Gn{c}}}B`{}}{{{I`{}{{Hn{c}}}}c}{{`{{Fd{}{{Hb{{AKd{d}}}}}}In}}}{InAH`}}{{{ADl{c}}c}{{AKd{d}}}{InAH`}}{{{AKf{c}}c}{{Ah{dMj}}}{InAH`}}{{{AKh{ceg}}e}{{Ah{dMj}}}I`{InAH`}{{AGn{e}{{Hb{}}}}EnInAH`}}{{{AKj{ceg}}e}{{Ah{dMj}}}I`{InAH`}{{AGn{e}{{Hb{Bd}}}}EnInAH`}}{{{Gn{c}}e}{{Ah{dMj}}}{InAH`}{}}{{{AKl{ce}}Jh}{{Ld{d}}}Od{{AL`{JhBb}}}}{{{AKn{ce}}Jh}{{Ld{d}}}Od{{AGn{JhBb}{{Hb{{Ld{d}}}}}}}}{{{AKl{ce}}}{{Ld{d}}}Od{{AL`{JhBb}}}}{{{AKn{ce}}}{{Ld{d}}}Od{{AGn{JhBb}{{Hb{{Ld{d}}}}}}}}{ce{}{}}00000{cBj{}}{c{{Ah{e}}}{}{}}000000000000000{{{I`{}{{Hn{c}}}}c}{{AKd{d}}}{InAH`}}<;:98{cCj{}}000000044444444{{{I`{}{{Hn{c}}}}g}{{AKj{{I`{}{{Hn{c}}}}eg}}}{InAH`}{InAH`}{{AGn{e}{{Hb{{Bd{c}}}}}}InAH`En}}{{{I`{}{{Hn{c}}}}g}{{AKh{{I`{}{{Hn{c}}}}eg}}}{InAH`}{InAH`}{{AGn{e}{{Hb{c}}}}InAH`En}}{{{AKl{ce}}Jh{A`{l}}}{{Ld{d}}}Od{{AL`{JhBb}}}}{{{AKn{ce}}Jh{A`{l}}}{{Ld{d}}}Od{{AGn{JhBb}{{Hb{{Ld{d}}}}}}}}{{{AKl{ce}}JhIl}{{Ld{d}}}Od{{AL`{JhBb}}}}{{{AKn{ce}}JhIl}{{Ld{d}}}Od{{AGn{JhBb}{{Hb{{Ld{d}}}}}}}}","D":"FHn","p":[[5,"Private",2288],[1,"unit"],[5,"BitSlice",2289],[10,"BitOrder",2290],[5,"Hash",0,2291],[1,"u8"],[1,"array"],[1,"slice"],[6,"BlobFormat",0,2291],[5,"HashAndFormat",0,2291],[6,"Ordering",2292],[6,"Result",2293],[10,"Deserializer",2294],[1,"char"],[10,"FromIterator",2295],[1,"bool"],[1,"usize"],[6,"Option",2296],[5,"Formatter",2297],[5,"Error",2297],[5,"String",2298],[5,"Hash",2299],[5,"DownloadKind",132],[1,"str"],[10,"Hasher",2300],[10,"AsRef",2301],[10,"Serializer",2302],[6,"BitSpanError",2303],[5,"TypeId",2304],[5,"TypeName",2305],[5,"Downloader",132],[5,"DownloadHandle",132],[5,"IntentId",132],[5,"DownloadRequest",132],[6,"DownloadError",132],[5,"ConcurrencyLimits",132],[5,"RetryConfig",132],[8,"Result",2297],[6,"FailureAction",132],[6,"GetError",525],[17,"Connection"],[10,"Getter",132],[5,"Stats",377],[8,"BoxedLocal",2306],[10,"Dialer",132],[8,"NodeId",2307],[10,"Clone",2308],[5,"Join2",2309],[10,"IntoFuture",2310],[10,"Future",2311],[10,"Into",2301],[5,"NodeAddr",2312],[17,"Item"],[10,"IntoIterator",2295],[5,"Endpoint",2313],[5,"LocalPoolHandle",2018],[10,"Store",1239,2314],[5,"Vec",2315],[5,"Pin",2316],[5,"Context",2317],[6,"Poll",2318],[6,"DownloadProgress",432],[5,"FlumeProgressSender",2127],[5,"Race2",2319],[17,"Output"],[6,"ExportProgress",307],[5,"PathBuf",2320],[6,"ExportFormat",1239,2314],[6,"ExportMode",1239,2314],[8,"Result",2321],[17,"Msg"],[10,"ProgressSender",2127],[10,"IdGenerator",2127],[5,"Collection",341],[1,"tuple"],[10,"Iterator",2322],[10,"SimpleStore",341],[5,"Bytes",2323],[10,"Send",2324],[10,"Map",1239,2314],[5,"AtStartRoot",552],[6,"EndBlobNext",552],[5,"HashSeq",854],[1,"u64"],[5,"BTreeMap",2325],[5,"TempTag",1846],[10,"DoubleEndedIterator",2326],[6,"GetResponseError",377],[6,"DecodeError",2327],[6,"WriteError",2328],[6,"Error",2329],[6,"ReadError",2330],[6,"ConnectionError",2331],[5,"Error",2321],[1,"f64"],[10,"Error",2332],[6,"BlobInfo",432],[8,"Result",2333],[6,"BlobId",432],[10,"Debug",2297],[5,"Connection",2334],[10,"FnOnce",2335],[8,"ChunkRanges",2336],[6,"BaoBlobSize",1239,2314],[5,"Error",2333],[6,"DecodeError",552],[6,"ConnectedNextError",552],[6,"AtBlobHeaderNextError",552],[6,"ProgressSendError",2127],[5,"AtStartChild",552],[5,"AtBlobHeader",552],[5,"AtEndBlob",552],[5,"AtBlobContent",552],[5,"AtClosing",552],[5,"AtInitial",552],[5,"AtConnected",552],[6,"ConnectedNext",552],[6,"BlobContentNext",552],[6,"BaoContentItem",2337],[5,"GetRequest",946],[5,"BaoTree",2336],[10,"AsyncSliceWriter",2338],[10,"BaoBatchWriter",1239,2314],[10,"OutboardMut",2339],[5,"TransferState",765],[5,"BlobState",765],[6,"BlobProgress",765],[5,"ChunkNum",2340],[5,"Arc",2341],[5,"RangeSpecSeq",946,2342],[10,"Rng",2343],[5,"HashSeqStream",854],[5,"HashSeqIter",854],[5,"IntoFallible",2344],[10,"AsyncSliceReader",2338],[5,"Convert",2344],[5,"Metrics",916],[10,"Any",2304],[5,"IntoIter",2345],[5,"RangeSpec",946,2342],[6,"Request",946],[6,"Closed",946],[5,"NonEmptyRequestRangeSpecIter",946,2342],[5,"UnknownErrorCode",946],[8,"ChunkRangesRef",2336],[5,"VarInt",2346],[6,"Event",1108],[5,"TransferStats",1108],[6,"SentStatus",1108],[6,"AddProgress",1108],[5,"ResponseWriter",1108],[10,"EventSender",1108],[5,"RecvStream",2330],[8,"Boxed",2306],[5,"SliceReaderStats",2347],[10,"AsyncStreamWriter",2338],[10,"Outboard",2339],[10,"MapEntryMut",1239,2314],[10,"ReadableStore",1239,2314],[8,"DbIter",1239,2314],[6,"EntryStatus",1239,2314],[6,"ImportMode",1239,2314],[6,"ReportLevel",1239,2314],[6,"Event",1239,2314],[6,"ConsistencyCheckProgress",1239,2314],[5,"BoxedProgressSender",2127],[5,"Tag",1846],[10,"MapEntry",1239,2314],[6,"ValidateProgress",1239,2314],[17,"EntryMut"],[10,"MapMut",1239,2314],[8,"ExportProgressCb",1239,2314],[6,"GcMarkEvent",1239,2314],[6,"GcSweepEvent",1239,2314],[6,"ImportProgress",1239,2314],[6,"ExportProgress",1239,2314],[5,"BTreeSet",2348],[10,"Stream",2349],[10,"Unpin",2324],[17,"Entry"],[10,"AsyncRead",2350],[5,"Box",2351],[8,"Entry",1584],[5,"Store",1584],[5,"InlineOptions",1584],[5,"PathOptions",1584],[5,"BatchOptions",1584],[5,"Options",1584],[5,"FlatStorePaths",1584],[5,"Path",2320],[10,"Fn",2335],[10,"Sync",2324],[5,"Entry",1724],[5,"Store",1724],[5,"Entry",1783],[5,"Store",1783],[6,"MemOrFile",1846,2352],[5,"SparseMemFile",1846,2353],[10,"TagCounter",1846],[10,"TagDrop",1846],[5,"Weak",2341],[5,"SystemTime",2354],[6,"SetTagOption",1846],[10,"Default",2355],[8,"RangeSet2",2356],[10,"WriteAt",2357],[5,"File",2358],[5,"TypeName",2305],[5,"TrackingReader",1987],[5,"TrackingWriter",1987],[10,"AsyncWrite",2359],[10,"AsyncStreamReader",2338],[5,"Run",2018],[5,"LocalPool",2018],[6,"PanicMode",2018],[5,"Config",2018],[6,"SpawnError",2018],[8,"ProgressSendResult",2127],[5,"IgnoreProgressSender",2127],[5,"WithMap",2127],[5,"WithFilterMap",2127],[5,"ProgressSliceWriter",2127],[5,"FallibleProgressSliceWriter",2127],[10,"FnMut",2335],[5,"Sender",2360],[15,"Found",332],[15,"Progress",332],[15,"Done",332],[15,"Partial",509],[15,"Complete",509],[15,"FoundLocal",512],[15,"Found",512],[15,"FoundHashSeq",512],[15,"Progress",512],[15,"Done",512],[15,"AllDone",1205],[15,"Done",1205],[15,"Found",1205],[15,"Progress",1205],[15,"ClientConnected",1215],[15,"GetRequestReceived",1215],[15,"CustomGetRequestReceived",1215],[15,"TransferHashSeqStarted",1215],[15,"TransferBlobCompleted",1215],[15,"TransferCompleted",1215],[15,"TransferAborted",1215],[15,"TaggedBlobAdded",1215],[15,"Update",1547],[15,"Start",1550],[15,"Progress",1550],[15,"Done",1550],[15,"OutboardDone",1557],[15,"Found",1557],[15,"CopyProgress",1557],[15,"Size",1557],[15,"OutboardProgress",1557],[15,"EntryDone",1567],[15,"Entry",1567],[15,"PartialEntry",1567],[15,"EntryProgress",1567],[15,"PartialEntryProgress",1567],[15,"PartialEntryDone",1567],[15,"Starting",1567]],"r":[[0,2291],[2,2291],[3,2291],[7,1846],[8,1846],[952,2342],[954,2342],[955,2342],[1242,2314],[1243,2314],[1247,2314],[1255,2314],[1263,2314],[1267,2314],[1268,2314],[1269,2314],[1270,2314],[1271,2314],[1274,2314],[1276,2314],[1277,2314],[1278,2314],[1280,2314],[1281,2314],[1282,2314],[1283,2314],[1292,2314],[1293,2314],[1298,2314],[1304,2314],[1849,2352],[1852,2353]],"b":[[13,"impl-Value-for-Hash"],[14,"impl-Hash"],[17,"impl-Borrow%3C%5Bu8%5D%3E-for-Hash"],[18,"impl-Borrow%3C%5Bu8;+32%5D%3E-for-Hash"],[60,"impl-Debug-for-Hash"],[61,"impl-Display-for-Hash"],[62,"impl-Display-for-BlobFormat"],[63,"impl-Debug-for-BlobFormat"],[64,"impl-Display-for-HashAndFormat"],[65,"impl-Debug-for-HashAndFormat"],[70,"impl-From%3C%26%5Bu8;+32%5D%3E-for-Hash"],[71,"impl-From%3C%5Bu8;+32%5D%3E-for-Hash"],[72,"impl-From%3CHash%3E-for-Hash"],[76,"impl-Value-for-Hash"],[77,"impl-Hash"],[199,"impl-Display-for-IntentId"],[200,"impl-Debug-for-IntentId"],[205,"impl-Debug-for-DownloadKind"],[206,"impl-Display-for-DownloadKind"],[207,"impl-Debug-for-DownloadError"],[208,"impl-Display-for-DownloadError"],[230,"impl-DownloadKind"],[231,"impl-Hash-for-DownloadKind"],[403,"impl-Debug-for-GetResponseError"],[404,"impl-Display-for-GetResponseError"],[407,"impl-From%3CDecodeError%3E-for-GetResponseError"],[408,"impl-From%3CWriteError%3E-for-GetResponseError"],[409,"impl-From%3CError%3E-for-GetResponseError"],[410,"impl-From%3CReadError%3E-for-GetResponseError"],[411,"impl-From%3CConnectionError%3E-for-GetResponseError"],[412,"impl-From%3CError%3E-for-GetResponseError"],[534,"impl-Debug-for-GetError"],[535,"impl-Display-for-GetError"],[536,"impl-From%3CWriteError%3E-for-GetError"],[538,"impl-From%3CError%3E-for-GetError"],[539,"impl-From%3CDecodeError%3E-for-GetError"],[540,"impl-From%3CConnectedNextError%3E-for-GetError"],[541,"impl-From%3CConnectionError%3E-for-GetError"],[542,"impl-From%3CAtBlobHeaderNextError%3E-for-GetError"],[543,"impl-From%3CReadError%3E-for-GetError"],[544,"impl-From%3CProgressSendError%3E-for-GetError"],[626,"impl-Display-for-ConnectedNextError"],[627,"impl-Debug-for-ConnectedNextError"],[631,"impl-Display-for-AtBlobHeaderNextError"],[632,"impl-Debug-for-AtBlobHeaderNextError"],[634,"impl-Display-for-DecodeError"],[635,"impl-Debug-for-DecodeError"],[642,"impl-From%3CAtStartRoot%3E-for-ConnectedNext"],[643,"impl-From%3CAtClosing%3E-for-ConnectedNext"],[644,"impl-From%3CAtStartChild%3E-for-ConnectedNext"],[653,"impl-From%3CAtBlobHeaderNextError%3E-for-DecodeError"],[654,"impl-From%3CError%3E-for-DecodeError"],[656,"impl-From%3CDecodeError%3E-for-DecodeError"],[657,"impl-From%3C(AtBlobContent,+Result%3CBaoContentItem,+DecodeError%3E)%3E-for-BlobContentNext"],[658,"impl-From%3CAtEndBlob%3E-for-BlobContentNext"],[661,"impl-From%3CAtClosing%3E-for-EndBlobNext"],[662,"impl-From%3CAtStartChild%3E-for-EndBlobNext"],[1024,"impl-Display-for-UnknownErrorCode"],[1025,"impl-Debug-for-UnknownErrorCode"],[1408,"impl-Display-for-ReportLevel"],[1409,"impl-Debug-for-ReportLevel"],[1860,"impl-RedbValue-for-Tag"],[1861,"impl-Value-for-Tag"],[1883,"impl-RedbKey-for-Tag"],[1885,"impl-Key-for-Tag"],[1903,"impl-RedbValue-for-Tag"],[1904,"impl-Value-for-Tag"],[1908,"impl-Display-for-Tag"],[1909,"impl-Debug-for-Tag"],[1916,"impl-From%3CString%3E-for-Tag"],[1918,"impl-From%3C%26str%3E-for-Tag"],[1919,"impl-From%3CBytes%3E-for-Tag"],[1922,"impl-Value-for-Tag"],[1923,"impl-RedbValue-for-Tag"],[1953,"impl-Size-for-MemOrFile%3CBytes,+File%3E"],[1954,"impl-MemOrFile%3CM,+(F,+u64)%3E"],[1979,"impl-Value-for-Tag"],[1980,"impl-RedbValue-for-Tag"],[2063,"impl-Display-for-SpawnError"],[2064,"impl-Debug-for-SpawnError"],[2189,"impl-Display-for-ProgressSendError"],[2190,"impl-Debug-for-ProgressSendError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAKkFowAIAAYAEAAaACwADQA7AAcARwACAEwAAQBPAAUAVgACAGQAAgBqAAIAbwARAIIAAgCaABYAsgAhANcAAADbAAAA4AAEAOYAAADoAAAA9AAAAPYAAAD/AAAAAQEAAAUBLQA6AQUAQwEAAEUBAABHAQUAWQEJAGQBAgBoAQAAcgEAAHUBBACBAQQAiAEBAIsBAQCOAQMAkwECAJgBBgClAQsAwgECAMYBFgDgAQIA5AEAAOkBAgDtAQsA+wECABUCBAAbAgYAIwIFAEwCGwBwAhAAgwICAIcCAACOAgEAkQICAJYCAQC5AgEAvAICAMACNwAFAwgAEAMFABgDEgAuAwIAPwMCAEMDDgBaAxEAbwMDAHkDAQCAAwAAhAMCAIgDDACWAxIAqgMAAKwDBgDBAwQAygMbAOcDGwAHBAAADQQHAB4EAAAoBAAAKwQDADEEBQA4BBwAagQUAIAECACOBAIAnQQDAKIEEwD3BAAAHAUHACYFKQBTBQIAVwUFAF8FFwB4BQ0AkwUGALwFAQC/BQUAzAUuAP4FDAAPBhAAOgYEAEAGFwBZBgEAXAYDAGEGCABwBgsAfQYAAH8GAACGBgAAkAYAAJQGAACWBgIAmgYAAJwGBgCkBhEAtwYFAL8GFQDXBgoA5AYAAOYGEQD6BhUAEgcEABgHAgAcBwEAHwcAACMHAAAlBxEAQgcEAEgHAABLBy0AewcAAH0HAAB/BwEAgwcDAJoHAQCeBwQApAcAAKYHAgCqBwsAtwcMAMYHAwDMBwEA1gcMAOwHAgDwBwsA/QcNAAwIBgAZCAIAIwgBACcIAQAvCBAAQwgLAF8IBQBmCBQAfAgVAJoIBQCuCAQAtQgfANYIFADtCAMA"}],\ +["iroh",{"t":"CCCCCCCCCCPFGPGPPPPNNNNNNNNNNNNNNNNNNNNHNNNNNNHHNNNNNNNNNNOHHHONNNNNNNNNNNNNNNNNNGFFPPOOPPGISFFFFFGPPFPPFNNNNNNNONNNNNNNNNONOONNNNNNNPPFINNNNNNNNNNNNNNNNNNNNFPGTPFPKPNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNMNNNNNNNNNNNNOGTFFPSPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNCNONNNNNNNNNNNNNNNNNNNNNNNNNCNNNNONCNNNNNNNNNCNNNNNNNCCNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNPPPPFRRKGPFFFFPGKFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNONNNNNNNNNNMNOOOOONNNNMNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPGPPNNNNNNHHHNNNNNNNNNNOOOOOOOOCFTKNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNPPPGPFPNNNNNOONNCNNONNNNCNNNNNNNNNNNNCNNNCCNNNNNNNNNNNNPPGGPPPPGPPPPPPPPNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNHNNNNOOOOOOOOOOOOOOOOPGPPPPPNNNNNNNNNNNNNNNNNNNNFFGFFFFFFGPPGGGPGPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGFPPIPFNNNNNNNNNOONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNONNNONNNOONONNNONNNNNNNNNNNNNNNHHHHHFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNFNNNNNNOOOOOOOOOOOONNNNNNNNNNNSGTPFSFPFFGPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGPPPPGKPPPPFPGPPPPPFNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNHHNNNNNOHMOHNNNNHNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPKGPPPGPPPPPPPIPPPRPRPGPPPGGGGIPPGPGGGPKKKKPPPPPPPPKGPPPPKPPPPPGPPNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNNNMNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNMNMMMMMMNMMNNNNNNNNNNNNNMCNMMNCNNNNNNMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFFIFIIGPFPTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFSSFNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGGGPPFPPPPPFPPPPPPNNNNNNNNNNONNNNNNNNNNNNNNNNCHNNNNNOOCOHNNCNNNNNNNNNNNNNNNNNNNNNNKKGKPPPKKPFGNNNNHNMHHHNNNNNNMNNMNNHHMMMMMMMMNNNNNNNHHNNMMFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNKFKKKKKNNNHNMHHHMNNMNNNMNNNHHMNMMMMNMNNNNHHNNMGPPFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOTFIFFTFFFNNNNNONNNNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNOOOOOOONNNONONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFIFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNFPPFIKGFNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPGPGFFKKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNCNNNNMMNNCNNNNNNNNHNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPFFFPGFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFPFFKFRPGIKFPFFNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNEFEIFNNCNCNNNNNNNNNNNNCNNNNNNNNNCNNNNCNCNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNFFFGFFPPGFFFFFFPPPFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNONNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNONNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONONOOONNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOPPPFPPPFFFFPFFGPPPGPPPGPPPPGFPGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNONNNNNOONNNNNNNNONNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOPPFPPFFGGNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNONNNNNNNNNNNNFFNNONNNNNNNNNNNNNNNNNONNNNONNNNNNNNNNNONNFFNNNNNNNNNNNONNNONNNNONNNNNNNNNNNNFFFFPGGGPPGIFFPFGPGGPPPPSPFPFFPIIPPFPFFPFFFPPFPPGPPNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNCNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNOONOONNNNNNNNNNNNNNNNNPPPFGPFPPGPPPPGPPPFPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOHNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONONNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOFNONNNNNOOOOOOOOOONNNNNNOOOOOOOONNNNNPGGGPPPPPPGSPPPPPPPFFNNNNNNNNNNNNNNNNNNNNNNNNOHNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNOONOONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOPPPGPPGKPPPPGFGPPGFPPPGPPPKFFFGGFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPGGGPPGIFPFGPGGPPPPSPPPIIPPFPFFPFFFPPFPPGPPOOOOOOOOOOOOCCCCPPGGPFGPFPPPFNNNONNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNFNOOOOOOOONNNNNNNNNNOOOOOOOONOONNNNNPIISFPFPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNFNNNNNNNNHHNNNNNHPGPFGPPGKGPFPPPPGFPPKPPPPGPFPPFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNNNNMNNNNNNNNCNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNPPPPPGFGGPPPPPFFPFPNNNNNNNNNPGPFSPPGPPKGPGPPGPPPPPPPFFPPGPPNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNOOOOOOOOOONNNHNNNNNHNNNFFFINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNCNNOCNCNCNNNNNNNNNNNNNNNNNNNNNNNNONNNNCCCCNNNNONNCCCNONNNNCCCCNNNNNNNNNNNNCNNNNNNSSSSCCSSSHHHHSSHHHFNNNNNNNNNNNNNNNNNNNNNNNNNFKFNNONNNNNNNCNNNNNNNNNNNOCCONNNNNNNNNNNNNFSSNNNNNNNNNNNNFNNNNNNNNNNNNSSSSFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIKHMMMMMMMMMMCHPSGFPFNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNONONNNNNNHNNNNNNNNNNNNNFFPFPFFPGFPPGFGPFFGFFPPPTTPFPPPPGFPPPFPPPPFPPPPFPGPPNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNHNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOONOOONNHNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTPPGISFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNOOOOOOOOONNOONNNOOOOOONNNONNOOONOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNOOOOOOONOGFPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNCNNNNNNNNNNFNNNNNNNNNNNNNNHONONNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNOOOONNOONNOOONOOOOOOOOOONNNNNNNNNNNNNNNNNONNNNPPGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNONNNNNNNNNNNNNNNNNNNNNOOONONOOONONNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNPPPPPPPPPPPPPPFFGFPPPPSPPPPPPPPPPGPFFGFPFPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNOOOOOGSSPPNNNNNNNNNNNNNNNNNNNNGFPFPGFPFFFFFPFNNNNOOOONNNNNNNNNNNNNNNNNNNNNNOONNONNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNONONONNNNNNNNNNNNNONONNOOONNNNNNONOOOOONNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNOOOOPGPPPPPPPPGFPPPPPPPPPPPGFPFPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNCHHNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSFFNNNNHNNNNNNNNOONONHNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNCHHFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNCNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNHNNNNNNNNNNNNNNFPSPPPGGIGPIPIPFPPPFKGPPGNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOCCCCFFNNNNNNHNNNNNNNNNNONNNNNNNNNNHHNNNNHHHHHONNNNNNNNNNNGPPNNNNNNNNNNNNNNPPPPGPPPNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["client","metrics","node","util","base32","hash","key","node_addr","rpc","ticket","Base32","DecodeError","DecodeKind","Hex","HexOrBase32ParseError","Length","Padding","Symbol","Trailing","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_append","fmt_short","from","from","from","from","from","from_ref","from_ref","into","into","into","kind","parse_array","parse_array_hex_or_base32","parse_vec","position","source","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","BlobFormat","Hash","HashAndFormat","HashSeq","Raw","format","hash","Base32","Key","KeyParsingError","NodeId","PUBLIC_KEY_LENGTH","PublicKey","SecretKey","SharedSecret","Signature","AddrInfo","AddrInfoOptions","Addresses","Id","NodeAddr","Relay","RelayAndAddresses","RelayUrl","__clone_box","borrow","borrow_mut","clone","clone_into","default","deserialize","direct_addresses","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from_ref","from_str","info","into","node_id","relay_url","serialize","to_owned","to_string","try_from","try_into","type_id","vzip","Err","Ok","RpcError","RpcResult","__clone_box","borrow","borrow_mut","clone","clone_into","deserialize","fmt","fmt","from","from","from","from_ref","into","serialize","to_owned","to_string","try_from","try_into","type_id","vzip","BlobTicket","Encoding","Error","KIND","Kind","NodeTicket","Postcard","Ticket","Verify","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deserialize","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","format","from","from","from","from","from_bytes","from_bytes","from_ref","from_str","hash","into","into","into_parts","new","node_addr","recursive","serialize","serialize","source","to_bytes","to_bytes","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","expected","BlobFormat","EMPTY","Hash","HashAndFormat","HashSeq","IROH_BLOCK_SIZE","Raw","Tag","TempTag","__clone_box","__clone_box","__clone_box","__clone_box","as_bits","as_bytes","as_bytes","as_bytes","as_bytes","as_bytes","as_ref","auto","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compare","compare","compare","compare","compare","compare","compare","default","deserialize","deserialize","deserialize","deserialize","downloader","drop","encode_hex","encode_hex_upper","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export","fixed_width","fixed_width","fixed_width","fixed_width","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","format","format","format","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_bytes","from_ref","from_ref","from_ref","from_ref","from_str","from_str","get","hash","hash","hash","hash","hash","hash_seq","hashseq","inner","into","into","into","into","into","is_hash_seq","is_raw","leak","metrics","new","new","new","partial_cmp","partial_cmp","partial_cmp","partial_cmp","protocol","provider","raw","serialize","serialize","serialize","serialize","store","to_hex","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_name","type_name","type_name","type_name","util","vzip","vzip","vzip","vzip","vzip","AbortRequest","ActorClosed","AllIntentsDropped","Cancelled","ConcurrencyLimits","Connection","Connection","Dialer","DownloadError","DownloadFailed","DownloadHandle","DownloadKind","DownloadRequest","Downloader","DropPeer","FailureAction","Getter","IntentId","NoProviders","RetryConfig","RetryLater","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cancel","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","default","default","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","format","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","get","hash","hash","hash","hash_and_format","initial_retry_delay","into","into","into","into","into","into","into","into","into","into_future","is_pending","join","max_concurrent_dials_per_hash","max_concurrent_requests","max_concurrent_requests_per_node","max_open_connections","max_retries_per_node","new","new","nodes_have","partial_cmp","pending_count","poll","progress_sender","queue","queue_dial","race","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_config","Abort","AllDone","Done","ExportProgress","Found","Progress","__clone_box","borrow","borrow_mut","clone","clone_into","deserialize","export","export_blob","export_collection","fmt","from","from_ref","into","serialize","to_owned","try_from","try_into","type_id","vzip","hash","id","id","id","meta","offset","outpath","size","collection","Collection","HEADER","SimpleStore","__clone_box","borrow","borrow_mut","clone","clone_into","default","deserialize","eq","extend","fmt","from","from_iter","from_ref","index","into","into_iter","is_empty","iter","len","load","load","load_db","push","read_fsm","read_fsm_all","serialize","store","to_blobs","to_owned","try_from","try_into","type_id","vzip","Connection","Decode","Generic","GetResponseError","Read","Stats","Write","__clone_box","borrow","borrow","borrow_mut","borrow_mut","bytes_read","bytes_written","clone","clone_into","db","default","deserialize","elapsed","eq","equivalent","equivalent","equivalent","error","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_ref","fsm","into","into","mbits","progress","request","serialize","source","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Abort","AllDone","BlobId","BlobInfo","Child","Complete","Connected","Done","DownloadProgress","Found","FoundHashSeq","FoundLocal","InitialState","Missing","Partial","Progress","Root","__clone_box","__clone_box","__clone_box","blob_info","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","compare","deserialize","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","get_to_db","hash","into","into","into","missing_ranges","partial_cmp","serialize","serialize","size","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","valid_ranges","valid_ranges","vzip","vzip","vzip","entry","size","valid_ranges","child","child","children","hash","hash","hash","id","id","id","offset","size","size","valid_ranges","BadRequest","GetError","Io","LocalFailure","NoncompliantNode","NotFound","RemoteReset","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","from","into","source","to_string","try_from","try_into","type_id","vzip","AtBlobContent","AtBlobHeader","AtBlobHeaderNextError","AtClosing","AtConnected","AtEndBlob","AtInitial","AtStartChild","AtStartRoot","BlobContentNext","Closing","Closing","ConnectedNext","ConnectedNextError","DecodeError","Done","EndBlobNext","Io","Io","Io","LeafHashMismatch","LeafNotFound","More","MoreChildren","NotFound","NotFound","ParentHashMismatch","ParentNotFound","PostcardSer","Read","Read","RequestTooBig","StartChild","StartRoot","Write","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","child_offset","concatenate_into_vec","concatenate_into_vec","drain","drain","finish","finish","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into","into","new","next","next","next","next","next","next","next","next","offset","offset","ranges","ranges","ranges","source","source","start","to_string","to_string","to_string","tree","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_all","write_all","write_all_batch","write_all_batch","write_all_with_outboard","write_all_with_outboard","BlobProgress","BlobState","Done","Pending","ProgressId","Progressing","TransferState","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","child_count","children","clone","clone","clone","clone_into","clone_into","clone_into","connected","current","default","deserialize","deserialize","deserialize","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","get_blob","get_current","hash","into","into","into","local_ranges","new","new","on_progress","progress","progress_id_to_blob","root","root","serialize","serialize","serialize","size","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","get_chunk_probe","get_hash_seq_and_sizes","get_unverified_size","get_verified_size","random_hash_seq_ranges","HashSeq","HashSeqIter","HashSeqStream","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","fmt","fmt","fmt","from","from","from","from_iter","from_ref","from_ref","from_ref","get","into","into","into","into_fallible","into_inner","into_iter","into_iter","is_empty","iter","len","new","next","next","parse_hash_seq","pop_front","skip","to_owned","to_owned","to_owned","transpose_into_fallible","try_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Metrics","__clone_box","borrow","borrow_mut","clone","clone_into","default","download_bytes_total","download_time_total","downloader_tick_connection_ready","downloader_tick_goodbye_node","downloader_tick_main","downloader_tick_message_received","downloader_tick_retry_node","downloader_tick_transfer_completed","downloader_tick_transfer_failed","downloads_error","downloads_notfound","downloads_success","fmt","from","from_ref","into","iter","name","to_owned","try_from","try_into","type_id","vzip","ALPN","Closed","EMPTY","Get","GetRequest","MAX_MESSAGE_SIZE","NonEmptyRequestRangeSpecIter","ProviderTerminating","RangeSpec","RangeSpecSeq","Request","RequestReceived","StreamDropped","UnknownErrorCode","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","all","all","all","as_single","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","deserialize","deserialize","deserialize","deserialize","empty","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_ranges","from_ranges_infinite","from_ref","from_ref","from_ref","from_ref","from_ref","hash","hash","hash","hash","into","into","into","into","into","into","into","into_fallible","into_iter","is_all","is_empty","iter","iter_non_empty","last_chunk","last_chunks","new","new","new","next","ranges","reason","serialize","serialize","serialize","serialize","single","to_chunk_ranges","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","transpose_into_fallible","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Abort","AddProgress","AllDone","ClientConnected","CustomGetRequestReceived","Done","Event","EventSender","Found","GetRequestReceived","NotFound","Progress","ResponseWriter","Sent","SentStatus","TaggedBlobAdded","TransferAborted","TransferBlobCompleted","TransferCompleted","TransferHashSeqStarted","TransferStats","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","default","deserialize","duration","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_ref","from_ref","from_ref","handle_connection","handle_get","into","into","into","into","into","read","read_request","send","send","send_blob","serialize","to_owned","to_owned","to_owned","transfer_collection","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","format","hash","hash","id","id","id","name","offset","size","tag","connection_id","connection_id","connection_id","connection_id","connection_id","connection_id","connection_id","format","hash","hash","hash","index","len","num_blobs","request_id","request_id","request_id","request_id","request_id","request_id","size","stats","stats","tag","Abort","Abort","AllDone","BaoBatchWriter","BaoBlobSize","Blob","Collection","Complete","ConsistencyCheckProgress","Copy","Copy","CopyProgress","CustomDebug","CustomDebug","CustomWarning","CustomWarning","DbIter","Done","Done","Entry","Entry","EntryDone","EntryMut","EntryProgress","EntryStatus","Error","Error","Error","Event","ExportFormat","ExportMode","ExportProgress","ExportProgressCb","Found","GcCompleted","GcMarkEvent","GcStarted","GcSweepEvent","ImportMode","ImportProgress","Info","Map","MapEntry","MapEntryMut","MapMut","NotFound","OutboardDone","OutboardProgress","Partial","PartialEntry","PartialEntryDone","PartialEntryProgress","Progress","ReadableStore","ReportLevel","Size","Start","Start","Starting","Store","Trace","TryReference","TryReference","Unverified","Update","ValidateProgress","Verified","Warn","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","batch_writer","blobs","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","consistency_check","create_tag","data_reader","default","default","default","delete","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","entry_status","entry_status_sync","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","fs","gc_mark","gc_start","gc_sweep","get","get_mut","get_or_create","hash","import_bytes","import_file","import_reader","import_stream","insert_complete","into","into","into","into","into","into","into","into","into","into","into","into","into","is_complete","mem","new","outboard","partial_blobs","partial_cmp","readonly_mem","serialize","serialize","serialize","serialize","serialize","serialize","set_tag","shutdown","size","sync","tags","temp_tag","temp_tags","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","validate","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_batch","entry","level","message","hash","id","id","id","offset","path","stable","hash","id","id","id","id","id","name","offset","offset","size","error","hash","hash","id","id","id","id","id","id","offset","offset","path","path","ranges","size","size","total","BaoTree","BlockSize","ByteRanges","ChunkNum","ChunkRanges","ChunkRangesRef","PostOrderOffset","Stable","TreeNode","Unstable","ZERO","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","add","add","add_block_size","block_size","blocks","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","chunk_log","chunk_range","chunks","chunks","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","compare","compare","compare","count_below","default","div","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_bytes","from_chunk_log","from_ref","from_ref","from_ref","from_ref","from_ref","full_chunks","hash","hash","into","into","into","into","into","io","is_leaf","is_min_value","iter","left_child","level","mid","min_value","mul","new","next_left_ancestor","node_range","outboard_size","parent","partial_cmp","partial_cmp","partial_cmp","partial_cmp","post_order_chunks_iter","post_order_nodes_iter","post_order_offset","post_order_offset","post_order_range","pre_order_nodes_iter","pre_order_offset","ranges_pre_order_chunks_iter_ref","restricted_parent","right_child","right_count","root","size","sub","sub","subtract_block_size","to_bytes","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_usize","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","value","vzip","vzip","vzip","vzip","vzip","Hash","Hasher","HexError","KEY_LEN","OUT_LEN","OutputReader","__clone_box","__clone_box","__clone_box","__clone_box","as_bytes","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","count","default","derive_key","eq","eq","eq","equivalent","equivalent","equivalent","fill","finalize","finalize_xof","flush","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_bytes","from_hex","from_ref","from_ref","from_ref","from_ref","from_str","hash","hash","into","into","into","into","keyed_hash","new","new_derive_key","new_keyed","position","read","reset","seek","set_position","to_hex","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","update","vzip","vzip","vzip","vzip","write","BaoContentItem","DecodeError","EncodeError","Io","Io","Leaf","Leaf","LeafHashMismatch","LeafHashMismatch","LeafNotFound","LeafWrite","Parent","Parent","ParentHashMismatch","ParentHashMismatch","ParentNotFound","ParentWrite","SizeMismatch","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","data","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","fsm","full_chunk_groups","into","into","into","into","into","node","offset","outboard","pair","round_up_to_chunks","source","source","sync","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","AsyncSliceReader","AsyncSliceWriter","BaoContentItem","CreateOutboard","Done","Leaf","More","Outboard","OutboardMut","Parent","ResponseDecoder","ResponseDecoderNext","borrow","borrow","borrow_mut","borrow_mut","copy","create","create_sized","decode_ranges","encode_ranges","encode_ranges_validated","finish","fmt","fmt","from","from","hash","init_from","into","into","load","new","next","outboard","outboard_post_order","read_at","root","save","set_len","size","sync","sync","tree","tree","try_from","try_from","try_into","try_into","type_id","type_id","valid_outboard_ranges","valid_ranges","vzip","vzip","write_at","write_bytes_at","EmptyOutboard","PostOrderMemOutboard","PostOrderOutboard","PreOrderMemOutboard","PreOrderOutboard","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","create","create","create_sized","create_sized","create_sized","create_sized","data","data","data","data","default","default","default","default","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","flip","flip","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","init_from","init_from","init_from","init_from","into","into","into","into","into","into_inner_with_prefix","into_inner_with_suffix","load","load","load","load","load","load","load","load","load","load","map_data","map_data","root","root","root","root","root","root","root","root","root","root","root","root","root","root","root","save","save","save","save","save","save","save","save","save","save","sync","sync","sync","sync","sync","sync","sync","sync","sync","sync","to_owned","to_owned","to_owned","to_owned","tree","tree","tree","tree","tree","tree","tree","tree","tree","tree","tree","tree","tree","tree","tree","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","CreateOutboard","DecodeResponseIter","Outboard","OutboardMut","ReadAt","Size","WriteAt","borrow","borrow_mut","buffer","copy","create","create_sized","decode_ranges","encode_ranges","encode_ranges_validated","flush","fmt","from","init_from","into","into_fallible","into_iter","load","new","new_with_buffer","next","outboard","outboard_post_order","read_at","read_exact_at","root","save","size","sync","transpose_into_fallible","tree","tree","try_from","try_into","type_id","valid_outboard_ranges","valid_ranges","vzip","write_all_at","write_at","BaoChunk","Leaf","Parent","PostOrderChunkIter","PostOrderNodeIter","PreOrderNodeIter","PreOrderPartialChunkIterRef","ResponseIter","ResponseIterRef","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_ref","into","into","into","into","into","into","into","into_fallible","into_fallible","into_fallible","into_fallible","into_fallible","into_fallible","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","min_full_level","new","new","new","new","new","new","next","next","next","next","next","next","size","to_owned","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","tree","tree","tree","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","without_ranges","is_root","is_root","left","node","ranges","ranges","right","size","start_chunk","ALWAYS_INLINE","BatchOptions","Entry","FlatStorePaths","InlineOptions","NO_INLINE","Options","PathOptions","Store","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","batch","blobs","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","complete","consistency_check","create_tag","data_path","default","default","delete","dump","entry_status","entry_status_sync","export","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","gc_start","get","get_mut","get_or_create","import_bytes","import_file","import_flat_store","import_stream","inline","insert_complete","into","into","into","into","into","into","load","max_data_inlined","max_outboard_inlined","max_read_batch","max_read_duration","max_write_batch","max_write_duration","meta","new","owned_data_path","owned_outboard_path","partial","partial_blobs","path","set_tag","shutdown","sync","tags","temp_path","temp_tag","temp_tags","to_owned","to_owned","to_owned","to_owned","to_owned","transform_entries","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","update_inline_options","vzip","vzip","vzip","vzip","vzip","vzip","Entry","Store","__clone_box","__clone_box","batch_writer","blobs","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","consistency_check","create_tag","data_reader","default","delete","entry_status","entry_status_sync","export","fmt","fmt","from","from","from_ref","from_ref","gc_start","get","get_mut","get_or_create","hash","import_bytes","import_file","import_stream","insert_complete","into","into","is_complete","new","outboard","partial_blobs","set_tag","shutdown","size","tags","temp_tag","temp_tags","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","RangeSet","RangeSet2","RangeSetRef","__clone_box","all","as_ref","bitand","bitand","bitand","bitand","bitand_assign","bitor","bitor","bitor","bitor","bitor_assign","bitxor","bitxor","bitxor","bitxor","bitxor_assign","borrow","borrow","borrow","borrow_mut","borrow_mut","boundaries","clone","clone_into","cmp","compare","contains","deref","difference","difference_with","empty","empty","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from","from","from","from_ref","intersection","intersection_with","intersects","into","into_inner","is_all","is_disjoint","is_empty","is_subset","is_superset","iter","iter","new","new","new_unchecked","new_unchecked","not","not","partial_cmp","range_set","single","split","sub","sub","sub","sub","sub_assign","symmetric_difference","symmetric_difference_with","to_owned","try_from","try_into","type_id","type_id","union","union_with","vzip","Iter","Range","RangeFrom","RangeSet","RangeSet2","RangeSetEntry","RangeSetRange","RangeSetRef","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","cloned","end_bound","fmt","from","from","from","from","from_ref","intersection","into","into","into_fallible","into_iter","is_min_value","min_value","next","normalize","start_bound","to_owned","transpose_into_fallible","try_from","try_from","try_into","try_into","type_id","type_id","union","vzip","vzip","Entry","Store","__clone_box","__clone_box","batch_writer","blobs","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","consistency_check","create_tag","data_reader","default","delete","entry_status","entry_status_sync","export","fmt","fmt","from","from","from_iter","from_ref","from_ref","gc_start","get","get_content","get_mut","get_or_create","hash","import_bytes","import_file","import_stream","insert","insert_complete","insert_many","into","into","is_complete","new","outboard","partial_blobs","set_tag","shutdown","size","tags","temp_tag","temp_tags","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Auto","File","Mem","MemOrFile","Named","SetTagOption","SparseMemFile","Tag","TagCounter","TagDrop","TempTag","__clone_box","as_bits","as_ref","as_ref","as_weak","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","cmp","compare","default","default","deref","deserialize","encode_hex","encode_hex_upper","eq","equivalent","equivalent","equivalent","flush","fmt","fmt","fmt","from","from","from","from","from_ref","into","into","into","into_parts","io","is_mem","local_pool","map_file","map_mem","mem","new","on_create","on_drop","partial_cmp","persist","progress","read_at","read_at","serialize","size","size","size","temp_tag","to_owned","total_bytes","try_as_bits","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_map_file","type_id","type_id","type_id","vzip","vzip","vzip","write_at","TrackingReader","TrackingWriter","borrow","borrow","borrow_mut","borrow_mut","bytes_read","bytes_written","fmt","fmt","from","from","into","into","into_parts","into_parts","new","new","poll_flush","poll_shutdown","poll_write","read","read_bytes","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Cancelled","Config","LocalPool","LocalPoolHandle","LogAndContinue","PanicMode","Run","Shutdown","SpawnError","__clone_box","__clone_box","__clone_box","abort","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cancelled","clone","clone","clone","clone_into","clone_into","clone_into","default","default","deref","drop","eq","equivalent","equivalent","equivalent","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","from_ref","from_ref","handle","into","into","into","into","into","into","into_future","join","new","panic_mode","poll","race","shutdown","single","spawn","spawn_detached","thread_name_prefix","threads","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","try_spawn","try_spawn_detached","try_spawn_detached_boxed","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","waiting_tasks","AsyncChannelProgressSender","BoxedProgressSender","Err","FallibleProgressSliceWriter","FlumeProgressSender","IdGenerator","IgnoreProgressSender","Msg","Ok","ProgressSendError","ProgressSendResult","ProgressSender","ProgressSliceWriter","ReceiverDropped","WithFilterMap","WithMap","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","blocking_send","blocking_send","blocking_send","blocking_send","blocking_send","blocking_send","blocking_send","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","boxed","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","into","into","into","into","into","into","into","into","into","into_inner","into_inner","new","new","new","new","new_id","new_id","new_id","new_id","new_id","new_id","new_id","same_channel","same_channel","send","send","send","send","send","send","send","set_len","set_len","sync","sync","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_send","try_send","try_send","try_send","try_send","try_send","try_send","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_filter_map","with_map","write_at","write_at","write_bytes_at","write_bytes_at","Doc","Iroh","NodeStatus","RpcClient","RpcService","__clone_box","__clone_box","authors","authors","blobs","blobs","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","connect_addr","connect_path","deref","docs","docs","fmt","fmt","from","from","from","from","from_ref","from_ref","gossip","gossip","into","into","new","node","node","tags","tags","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Client","__clone_box","borrow","borrow_mut","clone","clone_into","create","default","delete","export","fmt","from","from_ref","import","into","list","ref_cast","ref_cast_mut","set_default","to_owned","try_from","try_into","type_id","vzip","AddOutcome","AddProgress","BlobInfo","BlobStatus","Client","CollectionInfo","Complete","Direct","DownloadMode","DownloadOptions","DownloadOutcome","DownloadProgress","ExportOutcome","ExportProgress","IncompleteBlobInfo","NoWrap","Partial","Queued","Reader","Wrap","WrapOption","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","add_bytes","add_bytes_named","add_from_path","add_reader","add_stream","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","chain","chain","chain","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","consistency_check","create_collection","delete_blob","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","download","download_hash_seq","download_with_opts","downloaded_size","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","expected_size","export","finish","finish","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","format","format","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","get_collection","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_future","into_future","into_future","into_stream","into_stream","into_stream","into_stream","is_complete","join","join","join","list","list_collections","list_incomplete","load","local_size","merge","merge","merge","merge","mode","new","new","nodes","path","poll","poll","poll","poll_next","poll_next","poll_next","poll_next","poll_read","race","race","race","ratelimit_stream","ratelimit_stream","ratelimit_stream","ratelimit_stream","ratelimit_stream_with_jitter","ratelimit_stream_with_jitter","ratelimit_stream_with_jitter","ratelimit_stream_with_jitter","read","read_at","read_at_to_bytes","read_to_bytes","read_to_bytes","ref_cast","ref_cast_mut","serialize","serialize","serialize","serialize","serialize","serialize","share","size","size","size","size","size_hint","stats","status","tag","tag","tag","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","total_blobs_count","total_blobs_size","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","try_poll","try_poll","try_poll_next","try_poll_next","try_poll_next","try_poll_next","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","validate","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","zip","zip","zip","zip","size","size","name","Abort","Accept","AllDone","Client","Connect","ContentReady","DirectJoin","Doc","Entry","ExportFileOutcome","ExportFileProgress","Found","ImportFileOutcome","ImportFileProgress","ImportProgress","IngestDone","InsertLocal","InsertRemote","LiveEvent","NeighborDown","NeighborUp","NewNeighbor","Origin","PendingContentReady","Progress","Read","Resync","ShareMode","SyncEvent","SyncFinished","SyncReason","SyncReport","Write","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","author","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","chain","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","close","content_bytes","content_hash","content_len","content_reader","create","del","deserialize","deserialize","deserialize","deserialize","drop_doc","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export_file","finish","finish","finished","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","get_download_policy","get_exact","get_many","get_one","get_sync_peers","hash","id","id","import","import_and_subscribe","import_file","import_namespace","into","into","into","into","into","into","into","into","into","into","into_stream","into_stream","key","key","leave","list","merge","merge","open","origin","peer","poll_next","poll_next","ratelimit_stream","ratelimit_stream","ratelimit_stream_with_jitter","ratelimit_stream_with_jitter","ref_cast","ref_cast_mut","result","serialize","serialize","serialize","serialize","set_bytes","set_download_policy","set_hash","share","size","start_sync","started","status","subscribe","timestamp","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_poll_next","try_poll_next","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","zip","zip","hash","id","id","id","key","name","offset","size","content_status","entry","entry","from","hash","Broadcast","BroadcastNeighbors","Client","Gossip","Lagged","SubscribeOpts","SubscribeRequest","SubscribeResponse","SubscribeUpdate","__clone_box","__clone_box","bootstrap","bootstrap","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","deserialize","fmt","fmt","fmt","from","from","from","from_ref","from_ref","into","into","into","ref_cast","ref_cast_mut","serialize","subscribe","subscribe_with_opts","subscription_capacity","subscription_capacity","to_owned","to_owned","topic","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Client","NodeStatus","__clone_box","add_node_addr","addr","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","connection_info","connections","deserialize","fmt","fmt","from","from","from_ref","home_relay","into","into","listen_addrs","node_addr","node_id","ref_cast","ref_cast_mut","rpc_addr","serialize","shutdown","stats","status","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","version","vzip","vzip","Client","TagInfo","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","delete","deserialize","fmt","fmt","format","from","from","from_ref","hash","into","into","list","list_hash_seq","name","ref_cast","ref_cast_mut","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Author","AuthorHeads","AuthorId","AuthorPublicKey","BadSignature","Capability","CapabilityError","CapabilityKind","Closed","Complete","ContentStatus","ContentStatusCallback","DocTicket","Entry","EntryIsEmpty","EntrySignature","Event","Incomplete","InsertError","InsertOrigin","InvalidEmptyEntry","InvalidNamespace","Local","LocalInsert","MAX_TIMESTAMP_FUTURE_SHIFT","Missing","NamespaceId","NamespaceMismatch","NamespacePublicKey","NamespaceSecret","NewerEntryExists","PeerIdBytes","ProtocolMessage","Read","Read","ReadOnly","ReadOnly","Record","RecordIdentifier","RemoteInsert","Replica","ReplicaInfo","SignedEntry","Store","Sync","SyncOutcome","TooFarInTheFuture","Validation","ValidationFailure","Write","Write","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","actor","as_bits","as_bits","as_bits","as_byte_tuple","as_bytes","as_bytes","as_bytes","as_bytes","as_bytes","as_ref","as_ref","as_ref","as_ref","as_ref","author","author","author_bytes","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","capability","capability","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","closed","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","compare","compare","compare","compare","compare","compare","compare","compare","content_hash","content_hash","content_len","content_len","decode","default","default","default","default","default","default","default","delete_prefix","deref","deref","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","empty","empty_current","encode","encode","encode_hex","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","encode_hex_upper","engine","entry","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","fmt_short","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_bytes","from_entry","from_entry","from_iter","from_iter","from_parts","from_raw","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","from_str","from_str","from_str","from_str","from_str","from_str","get","has_news_for","hash","hash","hash","hash","hash_and_insert","heads_received","id","id","id","id","id","insert","insert","insert_remote_entry","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_public_key","into_public_key","is_empty","is_empty","iter","key","key","key","key_bytes","kind","len","merge","merge","merge_capability","metrics","namespace","namespace","net","new","new","new","new","new","new","new","new","new_current","new_empty","nodes","num_recv","num_sent","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","public_key","public_key","public_key","public_key","raw","record","record_id","secret_key","secret_key","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_content_status_callback","sign","sign","sign","signature","source","store","subscribe","subscribers_count","sync","sync_initial_message","sync_process_message","timestamp","timestamp","to_byte_tuple","to_bytes","to_bytes","to_bytes","to_bytes","to_bytes","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_vec","try_as_bits","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_primitive","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unsubscribe","validate_empty","validate_empty","verify","verify","verify","verify","verify","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","entry","entry","from","namespace","namespace","remote_content_status","should_download","from","remote_content_status","OpenOpts","OpenState","SyncHandle","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","close","content_hashes","default","default","delete_author","delete_prefix","deserialize","drop","drop_replica","eq","equivalent","equivalent","equivalent","export_author","export_secret_key","flush_store","fmt","fmt","fmt","from","from","from","from_ref","from_ref","get_download_policy","get_exact","get_many","get_state","get_sync_peers","handles","has_news_for_us","import_author","import_namespace","insert_local","insert_remote","into","into","into","list_authors","list_replicas","open","register_useful_peer","serialize","set_download_policy","set_sync","shutdown","spawn","subscribe","subscribe","subscribe","subscribers","sync","sync","sync","sync_initial_message","sync_process_message","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unsubscribe","vzip","vzip","vzip","Accept","Connect","ContentReady","DefaultAuthor","DefaultAuthorStorage","DirectJoin","Engine","InsertLocal","InsertRemote","LiveEvent","Mem","NeighborDown","NeighborUp","NewNeighbor","Origin","PendingContentReady","Persistent","Resync","SyncEvent","SyncFinished","SyncReason","SyncReport","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","default_author","deserialize","deserialize","deserialize","deserialize","endpoint","entry_to_content_status","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","finished","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","get","handle_connection","into","into","into","into","into","into","into","leave","load","load","origin","peer","persist","result","serialize","serialize","serialize","serialize","set","shutdown","spawn","start_sync","started","subscribe","sync","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","content_status","entry","entry","from","hash","Metrics","__clone_box","actor_tick_main","borrow","borrow_mut","clone","clone_into","default","doc_gossip_tick_actor","doc_gossip_tick_event","doc_gossip_tick_main","doc_gossip_tick_pending_join","doc_live_tick_actor","doc_live_tick_main","doc_live_tick_pending_downloads","doc_live_tick_replica_event","doc_live_tick_running_sync_accept","doc_live_tick_running_sync_connect","fmt","from","from_ref","into","iter","name","new_entries_local","new_entries_local_size","new_entries_remote","new_entries_remote_size","sync_via_accept_failure","sync_via_accept_success","sync_via_connect_failure","sync_via_connect_success","to_owned","try_from","try_into","type_id","vzip","Abort","AbortReason","AcceptError","AcceptOutcome","Allow","AlreadySyncing","Close","Close","Connect","Connect","ConnectError","DOCS_ALPN","InternalServerError","NotFound","Open","Reject","RemoteAbort","Sync","Sync","SyncFinished","Timings","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","connect","connect_and_sync","default","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","handle_connection","into","into","into","into","into","into","namespace","namespace","outcome","peer","peer","process","serialize","source","source","timings","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","error","error","error","error","namespace","namespace","namespace","peer","peer","peer","peer","reason","error","error","error","Any","Any","Asc","AuthorFilter","AuthorKey","Desc","DownloadPolicy","DownloadPolicyStore","EverythingExcept","Exact","Exact","Exact","FilterKind","FlatQuery","ImportNamespaceOutcome","Inserted","KeyAuthor","KeyFilter","MemPublicKeyStore","NoChange","NotFound","NothingExcept","OpenError","Other","Prefix","Prefix","PublicKeyStore","Query","QueryBuilder","SingleLatestPerKeyQuery","SortBy","SortDirection","Store","Upgraded","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","all","as_mut","as_ref","author","author","author_key","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","close_replica","content_hashes","default","default","default","default","default","default","default","default","default","delete_author","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","flush","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","fs","get_author","get_download_policy","get_download_policy","get_download_policy","get_exact","get_latest_for_each_author","get_many","get_sync_peers","has_news_for_us","import_author","import_namespace","include_empty","into","into","into","into","into","into","into","into","into","into","into","into","into","into","key_exact","key_exact","key_prefix","key_prefix","limit","limit","list_authors","list_namespaces","load_replica_info","matches","matches","matches","matches","memory","namespace_key","new_author","new_replica","offset","offset","open_replica","persistent","public_key","public_key","public_key","register_useful_peer","remove_replica","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_download_policy","single_latest_per_key","snapshot","snapshot_owned","sort_by","sort_direction","source","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","ContentHashesIterator","LatestIterator","ParentIterator","RecordsRange","Store","StoreInstance","all","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_download_policy","into","into","into","into","into","into_fallible","into_fallible","into_fallible","into_fallible","into_iter","into_iter","into_iter","into_iter","next","next","next","next","public_key","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","AuthorHeads","BadSignature","Capability","CapabilityError","CapabilityKind","Closed","Complete","ContentStatus","ContentStatusCallback","Entry","EntryIsEmpty","EntrySignature","Event","Incomplete","InsertError","InsertOrigin","InvalidEmptyEntry","InvalidNamespace","Local","LocalInsert","MAX_TIMESTAMP_FUTURE_SHIFT","Missing","NamespaceMismatch","NewerEntryExists","PeerIdBytes","ProtocolMessage","Read","Read","ReadOnly","ReadOnly","Record","RecordIdentifier","RemoteInsert","Replica","ReplicaInfo","SignedEntry","Store","Sync","SyncOutcome","TooFarInTheFuture","Validation","ValidationFailure","Write","Write","heads_received","num_recv","num_sent","entry","entry","from","namespace","namespace","remote_content_status","should_download","from","remote_content_status","dispatcher","metrics","net","proto","Broadcast","BroadcastNeighbors","Command","Event","Gossip","GossipDispatcher","GossipEvent","Lagged","Message","NeighborDown","NeighborUp","Received","SubscribeOptions","__clone_box","__clone_box","__clone_box","bootstrap","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","compare","compare","content","delivered_from","deserialize","deserialize","deserialize","deserialize","deserialize","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","into","into","into","into","into","into","new","partial_cmp","partial_cmp","scope","serialize","serialize","serialize","serialize","serialize","subscribe_with_opts","subscription_capacity","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","Metrics","__clone_box","actor_tick_dialer","actor_tick_dialer_failure","actor_tick_dialer_success","actor_tick_endpoint","actor_tick_in_event_rx","actor_tick_main","actor_tick_rx","actor_tick_timers","borrow","borrow_mut","clone","clone_into","default","fmt","from","from_ref","into","iter","msgs_ctrl_recv","msgs_ctrl_recv_size","msgs_ctrl_sent","msgs_ctrl_sent_size","msgs_data_recv","msgs_data_recv_size","msgs_data_sent","msgs_data_sent_size","name","neighbor_down","neighbor_up","to_owned","try_from","try_into","type_id","vzip","Broadcast","Command","Event","GOSSIP_ALPN","Gossip","Join","JoinTopicFut","NeighborDown","NeighborUp","Quit","Received","__clone_box","accept","borrow","borrow","borrow_mut","borrow_mut","broadcast","broadcast_neighbors","clone","clone_into","fmt","fmt","from","from","from_endpoint","from_ref","handle_connection","into","into","into_future","join","join","max_message_size","poll","quit","race","subscribe","subscribe_all","to_owned","try_from","try_from","try_into","try_into","try_poll","type_id","type_id","update_direct_addresses","util","vzip","vzip","Timers","borrow","borrow_mut","default","fmt","from","insert","into","new","read_lp","read_message","try_from","try_into","type_id","vzip","wait_and_drain","write_message","Broadcast","Command","Command","Config","DeliveryScope","DisconnectPeer","EmitEvent","Event","IO","InEvent","Join","Message","NeighborDown","NeighborUp","Neighbors","Neighbors","OutEvent","PeerData","PeerData","PeerDisconnected","PeerIdentity","Quit","Received","RecvMessage","ScheduleTimer","Scope","SendMessage","State","Swarm","Swarm","Timer","TimerExpired","TopicId","UpdatePeerData","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_bits","as_bytes","as_bytes","as_ref","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broadcast","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compare","compare","compare","compare","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","encode_hex","encode_hex_upper","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","handle","has_active_peers","hash","inner","into","into","into","into","into","into","into","into","into","into","into","into","is_direct","kind","max_message_size","max_message_size","me","membership","new","new","partial_cmp","partial_cmp","partial_cmp","partial_cmp","push","push_from_iter","serialize","serialize","serialize","serialize","serialize","serialize","size","state","state","states","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","topic","topics","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","util","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Command","Control","Data","DisconnectPeer","EmitEvent","InEvent","Message","MessageKind","OutEvent","PeerData","PeerDisconnected","RecvMessage","ScheduleTimer","SendMessage","State","Timer","TimerExpired","TopicId","UpdatePeerData","borrow","borrow_mut","fmt","from","into","try_from","try_into","type_id","vzip","Broadcast","Command","Command","Config","DEFAULT_MAX_MESSAGE_SIZE","DisconnectPeer","EmitEvent","Event","Gossip","Gossip","IO","InEvent","Join","Message","NeighborDown","NeighborUp","OutEvent","PeerData","PeerDisconnected","Quit","Received","RecvMessage","ScheduleTimer","SendMessage","State","Stats","Swarm","Swarm","Timer","TimerExpired","UpdatePeerData","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broadcast","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","deserialize","endpoint","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","gossip_stats","handle","has_active_peers","into","into","into","into","into","into","kind","max_message_size","membership","messages_received","messages_sent","new","push","push_from_iter","serialize","stats","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","with_rng","TimeBoundCache","TimerMap","borrow","borrow","borrow_mut","borrow_mut","contains_key","default","default","drain_until","expire_until","expires","first","fmt","fmt","from","from","get","insert","insert","into","into","is_empty","iter","iter","len","new","remove","remove","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Metrics","__clone_box","borrow","borrow_mut","clone","clone_into","default","doc_gossip_tick_actor","doc_gossip_tick_event","doc_gossip_tick_main","doc_gossip_tick_pending_join","doc_live_tick_actor","doc_live_tick_main","doc_live_tick_pending_downloads","doc_live_tick_replica_event","doc_live_tick_running_sync_accept","doc_live_tick_running_sync_connect","fmt","from","from_ref","get_metrics","into","iter","name","to_owned","try_from","try_init_metrics_collection","try_into","type_id","vzip","AddrInfo","Endpoint","NodeAddr","NodeId","__clone_box","__clone_box","__clone_box","accept","add_node_addr","add_node_addr_with_source","apply_options","apply_options","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bound_sockets","builder","clone","clone","clone","clone_into","clone_into","clone_into","close","cmp","cmp","compare","compare","conn_type_stream","connect","connect_by_node_id","connection_info","connection_infos","default","defaults","deserialize","deserialize","dialer","direct_addresses","direct_addresses","direct_addresses","discovery","discovery","dns","dns_resolver","endpoint","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_parts","from_ref","from_ref","from_ref","home_relay","info","into","into","into","is_empty","key","metrics","net","netcheck","network_change","new","node_addr","node_id","node_id","partial_cmp","partial_cmp","ping","portmapper","relay","relay_url","relay_url","secret_key","serialize","serialize","set_alpns","stun","test_utils","ticket","tls","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","util","vzip","vzip","vzip","watch_home_relay","with_direct_addresses","with_relay_url","DEFAULT_HTTPS_PORT","DEFAULT_HTTP_PORT","DEFAULT_METRICS_PORT","DEFAULT_STUN_PORT","prod","staging","AP_RELAY_HOSTNAME","EU_RELAY_HOSTNAME","NA_RELAY_HOSTNAME","default_ap_relay_node","default_eu_relay_node","default_na_relay_node","default_relay_map","EU_RELAY_HOSTNAME","NA_RELAY_HOSTNAME","default_eu_relay_node","default_na_relay_node","default_relay_map","Dialer","abort_dial","borrow","borrow_mut","chain","fmt","from","into","into_stream","is_pending","is_pending","merge","new","next_conn","pending_count","pending_count","poll_next","queue_dial","queue_dial","ratelimit_stream","ratelimit_stream_with_jitter","try_from","try_into","type_id","vzip","zip","ConcurrentDiscovery","Discovery","DiscoveryItem","__clone_box","add","addr_info","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","dns","empty","fmt","fmt","from","from","from","from","from_ref","from_services","into","into","last_updated","local_swarm_discovery","pkarr","provenance","publish","publish","resolve","resolve","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","DnsDiscovery","N0_DNS_NODE_ORIGIN_PROD","N0_DNS_NODE_ORIGIN_STAGING","borrow","borrow_mut","fmt","from","into","n0_dns","new","resolve","try_from","try_into","type_id","vzip","LocalSwarmDiscovery","borrow","borrow_mut","fmt","from","into","new","publish","resolve","try_from","try_into","type_id","vzip","DEFAULT_PKARR_TTL","DEFAULT_REPUBLISH_INTERVAL","N0_DNS_PKARR_RELAY_PROD","N0_DNS_PKARR_RELAY_STAGING","PkarrPublisher","PkarrRelayClient","PkarrResolver","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","drop","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","into","into","into","n0_dns","n0_dns","new","new","new","publish","publish","resolve","resolve","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_addr_info","vzip","vzip","vzip","with_options","DnsResolver","ResolverExt","default_resolver","lookup_by_id","lookup_by_id_staggered","lookup_by_name","lookup_by_name_staggered","lookup_ipv4","lookup_ipv4_ipv6","lookup_ipv4_ipv6_staggered","lookup_ipv4_staggered","lookup_ipv6","lookup_ipv6_staggered","node_info","resolver","Addr","IROH_TXT_NAME","IrohAttr","NodeInfo","Relay","TxtAttrs","__clone_box","as_ref","attrs","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","cmp","compare","direct_addresses","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_hickory_records","from_hickory_records","from_parts","from_pkarr_signed_packet","from_pkarr_signed_packet","from_ref","from_str","from_strings","from_z32","hash","into","into","into","lookup_by_id","lookup_by_name","new","node_id","node_id","partial_cmp","relay_url","to_hickory_records","to_hickory_records","to_owned","to_pkarr_signed_packet","to_pkarr_signed_packet","to_string","to_z32","try_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Accept","AddrInfo","ApplicationClosed","Builder","CallMeMaybe","Connecting","Connection","ConnectionClosed","ConnectionError","ConnectionInfo","ConnectionLost","ConnectionLost","ConnectionType","ConnectionTypeStream","ControlMsg","Direct","DirectAddr","DirectAddrInfo","DirectAddrType","DirectAddrsStream","Endpoint","IllegalOrderedRead","Local","LocallyClosed","MAX","MAX_SIZE","Mixed","NodeAddr","None","Ping","Pong","Portmapped","ReadError","RecvStream","Relay","Reset","Reset","SendStream","Stopped","Stun","Stun4LocalPort","TimedOut","TransportConfig","TransportError","Unknown","UnknownStream","UnknownStream","VarInt","VersionMismatch","WriteError","ZeroRttRejected","ZeroRttRejected","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","accept_bi","accept_uni","addr","addr","addrs","allow_spin","alpn","alpns","bind","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","chain","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","close","close_reason","closed","cmp","cmp","cmp","compare","compare","compare","concurrent_connections","congestion_controller_factory","congestion_state","conn_type","crypto_buffer_size","datagram_receive_buffer_size","datagram_send_buffer_size","datagram_send_buffer_space","default","default","default","default_relay_mode","deserialize","deserialize","deserialize","deserialize","direct_addresses","discovery","dns_resolver","drop","drop","enable_segmentation_offload","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export_keying_material","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_u32","from_u64","from_u64_unchecked","get_remote_node_id","handshake_data","handshake_data","has_send_address","hash","hash","hash","id","id","id","info","initial_mtu","initial_rtt","insecure_skip_relay_cert_verify","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_0rtt","into_future","into_future","into_inner","into_stream","into_stream","is_0rtt","join","join","keep_alive_interval","keylog","known_nodes","last_alive","last_alive_relay","last_control","last_payload","last_received","last_used","latency","latency","local_ip","local_ip","make_server_config","max_concurrent_bidi_streams","max_concurrent_uni_streams","max_datagram_size","max_idle_timeout","max_tlps","merge","merge","min_mtu","mtu_discovery_config","node_id","node_id","open_bi","open_uni","packet_threshold","partial_cmp","partial_cmp","partial_cmp","peer_identity","persistent_congestion_threshold","poll","poll","poll_flush","poll_next","poll_next","poll_read","poll_shutdown","poll_write","priority","proxy_from_env","proxy_url","race","race","ratelimit_stream","ratelimit_stream","ratelimit_stream_with_jitter","ratelimit_stream_with_jitter","read","read_chunk","read_chunks","read_datagram","read_exact","read_to_end","receive_window","relay_mode","relay_url","relay_url","remote_address","remote_address","reset","rtt","secret_key","send_datagram","send_window","serialize","serialize","serialize","serialize","set_max_concurrent_bi_streams","set_max_concurrent_uni_streams","set_priority","set_receive_window","source","source","source","stable_id","stats","stop","stopped","stream_receive_window","time_threshold","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","transport_config","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","typ","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","weak_handle","write","write_all","write_all_chunks","write_chunk","write_chunks","zip","zip","BYTE_SIZE","Base32","Key","KeyParsingError","NodeId","PUBLIC_KEY_LENGTH","PublicKey","SecretKey","SharedSecret","Signature","__clone_box","__clone_box","__clone_box","as_bits","as_bytes","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","compare","deserialize","deserialize","deserialize","encode_hex","encode_hex_upper","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_components","from_ref","from_ref","from_ref","from_slice","from_str","from_str","from_str","generate","generate_with_rng","hash","into","into","into","into","into","open","partial_cmp","public","r_bytes","s_bytes","seal","serialize","serialize","serialize","shared","sign","source","to_bytes","to_bytes","to_bytes","to_openssh","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_vec","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_openssh","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","MagicsockMetrics","NetcheckMetrics","PortmapMetrics","RelayMetrics","__clone_box","accepts","actor_link_change","actor_tick_direct_addr_heartbeat","actor_tick_direct_addr_update_receiver","actor_tick_main","actor_tick_msg","actor_tick_other","actor_tick_portmap_changed","actor_tick_re_stun","borrow","borrow_mut","bytes_recv","bytes_sent","clone","clone_into","default","derp_accepts","disco_packets_dropped","disco_packets_recv","disco_packets_sent","disconnects","external_address_updated","fmt","from","from_ref","got_ping","into","iter","local_port_updates","mapping_attempts","mapping_failures","name","num_direct_conns_added","num_direct_conns_removed","num_relay_conns_added","num_relay_conns_removed","other_packets_dropped","other_packets_recv","other_packets_sent","pcp_available","pcp_probes","probes_started","re_stun_calls","recv_data_ipv4","recv_data_ipv6","recv_data_relay","recv_datagrams","recv_disco_bad_key","recv_disco_bad_parse","recv_disco_call_me_maybe","recv_disco_call_me_maybe_bad_disco","recv_disco_ping","recv_disco_pong","recv_disco_relay","recv_disco_udp","relay_home_change","reports","reports_full","send_data","send_data_network_down","send_disco_relay","send_disco_udp","send_ipv4","send_ipv6","send_packets_dropped","send_packets_recv","send_packets_sent","send_relay","send_relay_error","sent_disco_call_me_maybe","sent_disco_ping","sent_disco_pong","sent_disco_relay","sent_disco_udp","sent_pong","stun_packets_dropped","stun_packets_recv_ipv4","stun_packets_recv_ipv6","stun_packets_sent_ipv4","stun_packets_sent_ipv6","to_owned","try_from","try_into","type_id","unique_client_keys","unknown_frames","update_direct_addrs","upnp_available","upnp_gateway_updated","upnp_probes","upnp_probes_failed","vzip","websocket_accepts","IpFamily","UdpSocket","V4","V6","__clone_box","as_fd","bind","bind_full","bind_local","bind_local_v4","bind_local_v6","bind_v4","bind_v6","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from_ref","into","into","ip","local_addr","netmon","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unspecified_addr","vzip","vzip","LocalAddresses","__clone_box","borrow","borrow_mut","clone","clone_into","default","eq","equivalent","equivalent","equivalent","fmt","from","from_ref","into","is_unicast_link_local","loopback","new","regular","to_owned","try_from","try_into","type_id","vzip","CallbackToken","Monitor","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from","from_ref","hash","into","into","network_change","new","subscribe","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unsubscribe","vzip","vzip","Client","Metrics","RelayLatencies","Report","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","captive_portal","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","default","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_ref","from_ref","from_ref","from_ref","get_report","get_report_channel","global_v4","global_v6","hair_pinning","icmpv4","icmpv6","into","into","into","into","ipv4","ipv4_can_send","ipv6","ipv6_can_send","iter","iter","mapping_varies_by_dest_ip","mapping_varies_by_dest_ipv6","name","new","os_has_ipv6","portmap_probe","preferred_relay","receive_stun_packet","relay_latency","relay_v4_latency","relay_v6_latency","reports","reports_full","stun_packets_dropped","stun_packets_recv_ipv4","stun_packets_recv_ipv6","stun_packets_sent_ipv4","stun_packets_sent_ipv6","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","udp","vzip","vzip","vzip","vzip","Client","Ping","PingError","Pinger","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","fmt","fmt","fmt","from","from","from","from","from_ref","into","into","new","send","source","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Client","Config","Metrics","ProbeOutput","Service","__clone_box","__clone_box","__clone_box","__clone_box","all_available","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","deactivate","default","default","default","enable_nat_pmp","enable_pcp","enable_upnp","eq","equivalent","equivalent","equivalent","external_address_updated","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","into","into","into","into","into","iter","local_port_updates","mapping_attempts","mapping_failures","name","nat_pmp","new","pcp","pcp_available","pcp_probes","probe","probes_started","procure_mapping","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update_local_port","upnp","upnp_available","upnp_gateway_updated","upnp_probes","upnp_probes_failed","vzip","vzip","vzip","vzip","vzip","watch_external_address","ActorGone","Build","CannotAckPings","Closed","ConnectTimeout","Custom","Default","DialIO","DialTask","Disabled","Dns","DnsTimeout","Health","Http","HttpClient","HttpClientBuilder","HttpClientError","HttpClientReceiver","Hyper","IPDisabled","InvalidUrl","KeepAlive","MAX_PACKET_SIZE","NoClient","NoLocalAddr","NoNodeForTarget","PeerGone","Ping","PingAborted","PingTimeout","Pong","Proxy","Receive","ReceivedMessage","ReceivedPacket","RelayConn","RelayMap","RelayMode","RelayNode","RelayNodeNotAvail","RelayUrl","Send","ServerRestarting","Staging","StunOnlyNodesFound","UnexpectedStatusCode","Upgrade","WebsocketError","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","address_family_selector","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","can_ack_pings","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","close","close","close_for_reconnect","cmp","cmp","compare","compare","connect","contains_node","default_from_node","deref","deserialize","deserialize","empty","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_nodes","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","from_url","get_node","hash","http","insecure_skip_cert_verify","into","into","into","into","into","into","into","into","into","into","is_closed","is_connected","is_empty","is_preferred","is_prober","len","local_addr","local_addr","new","nodes","note_preferred","note_preferred","partial_cmp","partial_cmp","ping","protocol","proxy_url","public_key","recv","relay_map","send","send","send_ping","send_pong","send_pong","serialize","serialize","server","server_public_key","server_url","source","stun_only","stun_port","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","url","urls","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","data","problem","reconnect_in","source","try_for","Protocol","RELAY_PATH","RELAY_PROBE_PATH","Relay","Websocket","__clone_box","borrow","borrow_mut","clone","clone_into","eq","equivalent","equivalent","equivalent","fmt","from","from_ref","into","parse_header","to_owned","try_from","try_into","type_id","upgrade_header","vzip","CertConfig","ClientConnHandler","LetsEncrypt","Limits","Manual","MaybeTlsStreamServer","Metrics","Plain","RelayConfig","Server","ServerActorTask","ServerConfig","StunConfig","Tls","TlsConfig","__clone_box","__clone_box","abort","accept","accept_conn_burst","accept_conn_limit","accepts","bind_addr","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes_recv","bytes_sent","call","call","cert","client_conn_handler","clone","clone","clone_into","clone_into","close","default","default","default","derp_accepts","disco_packets_dropped","disco_packets_recv","disco_packets_sent","disconnects","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","got_ping","http_addr","http_bind_addr","https_addr","https_bind_addr","into","into","into","into","into","into","into","into","into","into","into","is_closed","iter","limits","meta_cert","metrics_addr","name","new","other_packets_dropped","other_packets_recv","other_packets_sent","poll_flush","poll_read","poll_shutdown","poll_write","poll_write_vectored","public_key","relay","secret_key","secret_key","send_packets_dropped","send_packets_recv","send_packets_sent","sent_pong","shutdown","spawn","stun","stun_addr","task_handle","tls","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unique_client_keys","unknown_frames","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","websocket_accepts","certs","config","private_key","AlternateServer","Error","ErrorCode","ErrorResponse","Fingerprint","Indication","InvalidFingerprint","InvalidMessage","MalformedAttrs","MappedAddress","MessageClass","MessageDecoder","MessageIntegrity","MessageIntegritySha256","NoFingerprint","Nonce","NotBinding","NotSuccessResponse","PasswordAlgorithm","PasswordAlgorithms","Realm","Request","Software","StunAttribute","StunDecodeError","SuccessResponse","TransactionId","Unknown","UnknownAttributes","UserHash","UserName","XorMappedAddress","__clone_box","__clone_box","__clone_box","as_alternate_server","as_bits","as_bytes","as_error_code","as_fingerprint","as_mapped_address","as_message_integrity","as_message_integrity_sha256","as_nonce","as_password_algorithm","as_password_algorithms","as_realm","as_ref","as_software","as_unknown","as_unknown_attributes","as_user_hash","as_user_name","as_xor_mapped_address","attribute_type","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","compare","decode","default","default","deref","encode_hex","encode_hex_upper","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","expect_alternate_server","expect_error_code","expect_fingerprint","expect_mapped_address","expect_message_integrity","expect_message_integrity_sha256","expect_nonce","expect_password_algorithm","expect_password_algorithms","expect_realm","expect_software","expect_unknown","expect_unknown_attributes","expect_user_hash","expect_user_name","expect_xor_mapped_address","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","get_context","hash","into","into","into","into","into","into","is","is_alternate_server","is_error_code","is_fingerprint","is_mapped_address","is_message_integrity","is_message_integrity_sha256","is_nonce","is_password_algorithm","is_password_algorithms","is_realm","is_software","is_unknown","is_unknown_attributes","is_user_hash","is_user_name","is_xor_mapped_address","methods","parse_binding_request","parse_response","partial_cmp","request","response","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","BINDING","RESERVED","SHARED_SECRET","CleanupDropGuard","DnsPkarrServer","borrow","borrow","borrow_mut","borrow_mut","create_dns_resolver","discovery","dns_resolver","fmt","fmt","from","from","into","into","nameserver","node_origin","on_node","pkarr_url","run","run_relay_server","run_with_origin","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","NodeTicket","__clone_box","borrow","borrow_mut","clone","clone_into","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from_bytes","from_ref","from_str","into","new","node_addr","serialize","to_bytes","to_owned","to_string","try_from","try_into","type_id","vzip","certificate","make_client_config","make_server_config","GenError","P2pCertificate","P2pExtension","ParseError","VerificationError","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","generate","into","into","into","into","into","parse","peer_id","source","source","source","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify_signature","vzip","vzip","vzip","vzip","vzip","AbortingJoinHandle","CancelOnDrop","MaybeFuture","SharedAbortingJoinHandle","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","clone","clone_into","default","deref","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","inner","into","into","into","into","into_future","into_future","into_future","join","join","join","new","poll","poll","poll","race","race","race","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_poll","try_poll","try_poll","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","Chain","borrow","borrow_mut","chain","consume","fmt","from","get_mut","get_pin_mut","get_ref","into","into_inner","poll_fill_buf","poll_read","try_from","try_into","type_id","vzip","Builder","Custom","DEFAULT_RPC_ADDR","Default","Disabled","Disabled","DiscoveryConfig","DocsStorage","FsNode","GcPolicy","Interval","IrohServerEndpoint","Mem","MemNode","Memory","Node","None","Persistent","Persistent","ProtocolBuilder","ProtocolHandler","RpcStatus","Running","Stopped","StorageConfig","__clone_box","__clone_box","__clone_box","__clone_box","accept","accept","bind_port","blobs_db","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","cancel_token","clear","client","client","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","default","deref","deserialize","disable_docs","dns_resolver","downloader","enable_rpc","enable_rpc_with_addr","endpoint","endpoint","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","gc_policy","get_protocol","get_protocol","gossip","home_relay","insecure_skip_relay_cert_verify","into","into","into","into","into","into","into","into","keylog","load","local_address","local_endpoint_addresses","local_endpoints","local_pool_handle","local_pool_handle","memory","memory","my_rpc_addr","node_discovery","node_id","persist","persistent","persistent","register_gc_done_cb","relay_mode","rpc_endpoint","secret_key","serialize","shutdown","shutdown","shutdown","spawn","spawn","store","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_db_and_store","client","port","fs","io","path","progress","DataSource","PathContent","__clone_box","__clone_box","borrow","borrow","borrow_mut","borrow_mut","canonicalized_path_to_string","clone","clone","clone_into","clone_into","cmp","compare","eq","equivalent","equivalent","equivalent","files","fmt","fmt","from","from","from","from","from_ref","from_ref","into","into","key_to_path","load_secret_key","name","new","partial_cmp","path","path_content_info","path_to_key","relative_canonicalized_path_to_string","scan_dir","scan_path","size","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","with_name","BaoValidationError","EncodeError","IoError","borrow","borrow_mut","fmt","fmt","from","from","from","into","source","to_string","try_from","try_into","type_id","vzip","BaoStoreDir","Console","DefaultAuthor","DocsDatabase","IrohPaths","PeerData","RpcLock","SecretKey","__clone_box","as_ref","as_ref","borrow","borrow_mut","clone","clone_into","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from_ref","from_str","into","to_owned","to_string","try_from","try_from","try_into","type_id","vzip","with_root","Progress","ProgressAsyncReader","ProgressEmitter","ProgressWriter","__clone_box","__clone_box","blocking_send","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","fmt","fmt","fmt","fmt","from","from","from","from","from_ref","from_ref","inc","into","into","into","into","into_inner","new","new","new","none","poll_flush","poll_read","poll_shutdown","poll_write","send","set_total","subscribe","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_send","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","wrap_async_read"],"q":[[0,"iroh"],[4,"iroh::base"],[10,"iroh::base::base32"],[81,"iroh::base::hash"],[88,"iroh::base::key"],[97,"iroh::base::node_addr"],[133,"iroh::base::rpc"],[157,"iroh::base::ticket"],[215,"iroh::base::ticket::Error"],[216,"iroh::blobs"],[405,"iroh::blobs::downloader"],[580,"iroh::blobs::export"],[605,"iroh::blobs::export::ExportProgress"],[613,"iroh::blobs::format"],[614,"iroh::blobs::format::collection"],[650,"iroh::blobs::get"],[705,"iroh::blobs::get::db"],[782,"iroh::blobs::get::db::BlobInfo"],[785,"iroh::blobs::get::db::DownloadProgress"],[798,"iroh::blobs::get::error"],[825,"iroh::blobs::get::fsm"],[1038,"iroh::blobs::get::progress"],[1122,"iroh::blobs::get::request"],[1127,"iroh::blobs::hashseq"],[1189,"iroh::blobs::metrics"],[1219,"iroh::blobs::protocol"],[1381,"iroh::blobs::provider"],[1478,"iroh::blobs::provider::AddProgress"],[1488,"iroh::blobs::provider::Event"],[1512,"iroh::blobs::store"],[1814,"iroh::blobs::store::ConsistencyCheckProgress"],[1817,"iroh::blobs::store::ExportProgress"],[1824,"iroh::blobs::store::ImportProgress"],[1834,"iroh::blobs::store::ValidateProgress"],[1851,"iroh::blobs::store::bao_tree"],[2016,"iroh::blobs::store::bao_tree::blake3"],[2115,"iroh::blobs::store::bao_tree::io"],[2197,"iroh::blobs::store::bao_tree::io::fsm"],[2254,"iroh::blobs::store::bao_tree::io::outboard"],[2416,"iroh::blobs::store::bao_tree::io::sync"],[2462,"iroh::blobs::store::bao_tree::iter"],[2580,"iroh::blobs::store::bao_tree::iter::BaoChunk"],[2589,"iroh::blobs::store::fs"],[2723,"iroh::blobs::store::mem"],[2782,"iroh::blobs::store::range_collections"],[2874,"iroh::blobs::store::range_collections::range_set"],[2918,"iroh::blobs::store::readonly_mem"],[2981,"iroh::blobs::util"],[3067,"iroh::blobs::util::io"],[3098,"iroh::blobs::util::local_pool"],[3207,"iroh::blobs::util::progress"],[3389,"iroh::client"],[3440,"iroh::client::authors"],[3464,"iroh::client::blobs"],[3779,"iroh::client::blobs::BlobStatus"],[3781,"iroh::client::blobs::WrapOption"],[3782,"iroh::client::docs"],[4037,"iroh::client::docs::ImportProgress"],[4045,"iroh::client::docs::LiveEvent"],[4050,"iroh::client::gossip"],[4108,"iroh::client::node"],[4150,"iroh::client::tags"],[4185,"iroh::docs"],[4862,"iroh::docs::Event"],[4869,"iroh::docs::InsertOrigin"],[4871,"iroh::docs::actor"],[4957,"iroh::docs::engine"],[5114,"iroh::docs::engine::LiveEvent"],[5119,"iroh::docs::metrics"],[5156,"iroh::docs::net"],[5274,"iroh::docs::net::AcceptError"],[5286,"iroh::docs::net::ConnectError"],[5289,"iroh::docs::store"],[5615,"iroh::docs::store::fs"],[5685,"iroh::docs::sync"],[5732,"iroh::docs::sync::Event"],[5739,"iroh::docs::sync::InsertOrigin"],[5741,"iroh::gossip"],[5745,"iroh::gossip::dispatcher"],[5859,"iroh::gossip::metrics"],[5895,"iroh::gossip::net"],[5946,"iroh::gossip::net::util"],[5963,"iroh::gossip::proto"],[6243,"iroh::gossip::proto::state"],[6271,"iroh::gossip::proto::topic"],[6412,"iroh::gossip::proto::util"],[6449,"iroh::metrics"],[6479,"iroh::net"],[6600,"iroh::net::defaults"],[6606,"iroh::net::defaults::prod"],[6613,"iroh::net::defaults::staging"],[6618,"iroh::net::dialer"],[6644,"iroh::net::discovery"],[6686,"iroh::net::discovery::dns"],[6701,"iroh::net::discovery::local_swarm_discovery"],[6714,"iroh::net::discovery::pkarr"],[6775,"iroh::net::dns"],[6790,"iroh::net::dns::node_info"],[6868,"iroh::net::endpoint"],[7378,"iroh::net::key"],[7522,"iroh::net::metrics"],[7620,"iroh::net::net"],[7667,"iroh::net::net::ip"],[7691,"iroh::net::net::netmon"],[7726,"iroh::net::netcheck"],[7832,"iroh::net::ping"],[7867,"iroh::net::portmapper"],[7972,"iroh::net::relay"],[8239,"iroh::net::relay::ReceivedMessage"],[8244,"iroh::net::relay::http"],[8269,"iroh::net::relay::server"],[8451,"iroh::net::relay::server::CertConfig"],[8454,"iroh::net::stun"],[8658,"iroh::net::stun::methods"],[8661,"iroh::net::test_utils"],[8691,"iroh::net::ticket"],[8719,"iroh::net::tls"],[8722,"iroh::net::tls::certificate"],[8788,"iroh::net::util"],[8858,"iroh::net::util::chain"],[8876,"iroh::node"],[9052,"iroh::node::RpcStatus"],[9054,"iroh::util"],[9058,"iroh::util::fs"],[9111,"iroh::util::io"],[9128,"iroh::util::path"],[9161,"iroh::util::progress"],[9227,"dyn_clone::sealed"],[9228,"data_encoding"],[9229,"alloc::string"],[9230,"core::convert"],[9231,"core::fmt"],[9232,"core::result"],[9233,"iroh_base::base32"],[9234,"hex::error"],[9235,"alloc::vec"],[9236,"core::error"],[9237,"core::option"],[9238,"core::any"],[9239,"iroh_base::node_addr"],[9240,"serde::de"],[9241,"serde::ser"],[9242,"iroh_base::rpc"],[9243,"anyhow"],[9244,"std::io::error"],[9245,"iroh_base::ticket::blob"],[9246,"iroh_base::ticket"],[9247,"iroh_base::hash"],[9248,"postcard::error"],[9249,"bitvec::slice"],[9250,"bitvec::order"],[9251,"std::time"],[9252,"iroh_blobs::util"],[9253,"core::ops::function"],[9254,"core::cmp"],[9255,"core::iter::traits::collect"],[9256,"iroh_blake3"],[9257,"iroh_blobs::store::fs::migrate_redb_v1_v2::old"],[9258,"iroh_blobs::downloader"],[9259,"bytes::bytes"],[9260,"core::hash"],[9261,"alloc::sync"],[9262,"bitvec::ptr::span"],[9263,"redb::types"],[9264,"iroh_blobs::get::error"],[9265,"iroh_blobs::downloader::progress"],[9266,"core::future::future"],[9267,"alloc::boxed"],[9268,"core::pin"],[9269,"iroh_base::key"],[9270,"core::clone"],[9271,"futures_concurrency::future::join::tuple"],[9272,"core::future::into_future"],[9273,"iroh_net::endpoint"],[9274,"iroh_blobs::util::local_pool"],[9275,"iroh_blobs::store::traits"],[9276,"core::task::wake"],[9277,"core::task::poll"],[9278,"iroh_blobs::get::db"],[9279,"iroh_blobs::util::progress"],[9280,"futures_concurrency::future::race::tuple"],[9281,"iroh_blobs::export"],[9282,"std::path"],[9283,"iroh_blobs::format::collection"],[9284,"core::iter::traits::iterator"],[9285,"core::marker"],[9286,"iroh_blobs::get::fsm"],[9287,"iroh_blobs::hashseq"],[9288,"alloc::collections::btree::map"],[9289,"iroh_blobs::get"],[9290,"core::iter::traits::double_ended"],[9291,"iroh_quinn::recv_stream"],[9292,"iroh_quinn::send_stream"],[9293,"iroh_quinn_proto::connection"],[9294,"bao_tree::io::error"],[9295,"iroh_quinn::connection"],[9296,"bao_tree::tree"],[9297,"range_collections::range_set"],[9298,"bao_tree::io"],[9299,"iroh_blobs::protocol"],[9300,"bao_tree"],[9301,"iroh_io"],[9302,"bao_tree::io::fsm"],[9303,"iroh_blobs::get::progress"],[9304,"iroh_blobs::protocol::range_spec"],[9305,"rand::rng"],[9306,"fallible_iterator"],[9307,"iroh_blobs::metrics"],[9308,"alloc::vec::into_iter"],[9309,"iroh_quinn_proto::varint"],[9310,"iroh_blobs::provider"],[9311,"iroh_io::stats"],[9312,"alloc::collections::btree::set"],[9313,"futures_core::stream"],[9314,"tokio::io::async_read"],[9315,"core::ops::range"],[9316,"bao_tree::iter"],[9317,"std::io"],[9318,"arrayvec::array_string"],[9319,"bao_tree::io::outboard"],[9320,"positioned_io"],[9321,"core::default"],[9322,"bao_tree::io::sync"],[9323,"bytes::bytes_mut"],[9324,"iroh_blobs::store::fs"],[9325,"iroh_blobs::store::fs::test_support"],[9326,"iroh_blobs::store::mem"],[9327,"smallvec"],[9328,"wyz::range"],[9329,"iroh_blobs::store::readonly_mem"],[9330,"iroh_blobs::util::mem_or_file"],[9331,"iroh_blobs::util::sparse_mem_file"],[9332,"std::fs"],[9333,"iroh_blobs::util::io"],[9334,"tokio::io::async_write"],[9335,"flume"],[9336,"async_channel"],[9337,"iroh::rpc_protocol"],[9338,"core::net::socket_addr"],[9339,"iroh_docs::keys"],[9340,"futures_concurrency::stream::chain::tuple"],[9341,"futures_concurrency::stream::into_stream"],[9342,"futures_concurrency::stream::merge::tuple"],[9343,"tokio::io::read_buf"],[9344,"governor::state::direct"],[9345,"governor::state"],[9346,"governor::state::direct::streams"],[9347,"governor::clock"],[9348,"governor::clock::with_std"],[9349,"governor::middleware"],[9350,"governor::jitter"],[9351,"futures_concurrency::stream::zip::tuple"],[9352,"iroh_docs::sync"],[9353,"iroh_docs::engine"],[9354,"iroh_docs::store"],[9355,"iroh_docs::ticket"],[9356,"iroh_docs::actor"],[9357,"iroh::rpc_protocol::gossip"],[9358,"iroh_gossip::dispatcher"],[9359,"futures_sink"],[9360,"iroh_gossip::proto::state"],[9361,"core::ops::deref"],[9362,"iroh_docs::heads"],[9363,"ed25519_dalek::signing"],[9364,"ed25519_dalek::verifying"],[9365,"signature::error"],[9366,"core::num::nonzero"],[9367,"iroh_docs::store::fs"],[9368,"rand_core"],[9369,"iroh_docs::store::pubkeys"],[9370,"ed25519"],[9371,"iroh_docs::ranger"],[9372,"num_enum"],[9373,"iroh_docs::engine::live"],[9374,"iroh_docs::engine::state"],[9375,"iroh_gossip::net"],[9376,"iroh_docs::metrics"],[9377,"iroh_docs::net"],[9378,"iroh_docs::store::fs::query"],[9379,"iroh_docs::store::fs::tables"],[9380,"redb::table"],[9381,"iroh_docs::store::fs::ranges"],[9382,"iroh_gossip::proto::topic"],[9383,"iroh_gossip::metrics"],[9384,"futures_lite::future"],[9385,"tokio::sync::broadcast"],[9386,"tokio::sync::broadcast::error"],[9387,"iroh_net::magicsock"],[9388,"iroh_gossip::net::util"],[9389,"iroh_gossip::proto"],[9390,"iroh_gossip::proto::plumtree"],[9391,"iroh_gossip::proto::hyparview"],[9392,"rand::rngs::std"],[9393,"iroh_gossip::proto::util"],[9394,"iroh_net::magicsock::node_map"],[9395,"iroh_net::discovery"],[9396,"hickory_resolver::name_server::connection_provider::tokio_runtime"],[9397,"hickory_resolver::name_server::connection_provider"],[9398,"hickory_resolver::async_resolver"],[9399,"iroh_net::dns::node_info"],[9400,"iroh_net::relay::map"],[9401,"iroh_net::dialer"],[9402,"swarm_discovery"],[9403,"iroh_net::discovery::dns"],[9404,"iroh_net::discovery::local_swarm_discovery"],[9405,"iroh_net::discovery::pkarr"],[9406,"url"],[9407,"pkarr::signed_packet"],[9408,"core::time"],[9409,"iroh_net::dns"],[9410,"core::net::ip_addr"],[9411,"hickory_proto::rr::domain::name"],[9412,"core::str::traits"],[9413,"hickory_proto::rr::resource"],[9414,"iroh_quinn_proto::config"],[9415,"iroh_net::magicsock::node_map::node_state"],[9416,"iroh_quinn_proto::congestion"],[9417,"iroh_quinn_proto::crypto"],[9418,"iroh_quinn_proto::connection::streams::recv"],[9419,"iroh_quinn_proto"],[9420,"iroh_quinn_proto::frame"],[9421,"iroh_quinn_proto::transport_error"],[9422,"iroh_quinn_proto::connection::assembler"],[9423,"iroh_quinn_proto::connection::stats"],[9424,"iroh_quinn_proto::connection::streams::send"],[9425,"iroh_base::key::encryption"],[9426,"ed25519_dalek::signature"],[9427,"aead"],[9428,"zeroize"],[9429,"ssh_key::error"],[9430,"ssh_key::signature"],[9431,"iroh_net::net::udp"],[9432,"std::os::fd::owned"],[9433,"iroh_net::net::ip_family"],[9434,"tokio::net::udp"],[9435,"iroh_net::net::ip"],[9436,"iroh_net::net::netmon::actor"],[9437,"iroh_net::net::netmon"],[9438,"iroh_net::netcheck::metrics"],[9439,"iroh_net::netcheck"],[9440,"tokio::sync::oneshot"],[9441,"iroh_net::portmapper"],[9442,"iroh_net::ping"],[9443,"surge_ping::error"],[9444,"iroh_net::portmapper::metrics"],[9445,"tokio::sync::watch"],[9446,"iroh_net::relay::client::conn"],[9447,"tokio::runtime::task::error"],[9448,"http::error"],[9449,"tokio_tungstenite_wasm::error"],[9450,"hyper::error"],[9451,"iroh_net::relay::http"],[9452,"http::header::value"],[9453,"iroh_net::relay::server::actor"],[9454,"hyper::body::incoming"],[9455,"http::request"],[9456,"http::header::map"],[9457,"iroh_net::relay::server::metrics"],[9458,"iroh_net::relay::server"],[9459,"iroh_net::util"],[9460,"stun_rs::attributes"],[9461,"stun_rs::attributes::stun::alternate_server"],[9462,"stun_rs::error"],[9463,"stun_rs::types"],[9464,"stun_rs::attributes::stun::error_code"],[9465,"stun_rs::attributes::stun::fingerprint"],[9466,"stun_rs::attributes::stun::mapped_address"],[9467,"stun_rs::attributes::stun::message_integrity"],[9468,"stun_rs::attributes::stun::message_integrity_sha256"],[9469,"stun_rs::attributes::stun::nonce"],[9470,"stun_rs::attributes::stun::password_algorithm"],[9471,"stun_rs::attributes::stun::password_algorithms"],[9472,"stun_rs::attributes::stun::realm"],[9473,"stun_rs::attributes::stun::software"],[9474,"stun_rs::attributes::unknown"],[9475,"stun_rs::attributes::stun::unknown_attributes"],[9476,"stun_rs::attributes::stun::user_hash"],[9477,"stun_rs::attributes::stun::user_name"],[9478,"stun_rs::attributes::stun::xor_mapped_address"],[9479,"stun_rs::context"],[9480,"stun_rs::message"],[9481,"iroh_net::stun"],[9482,"iroh_net::test_utils::dns_and_pkarr_servers"],[9483,"iroh_net::test_utils"],[9484,"iroh_base::ticket::node"],[9485,"rustls::client::client_conn"],[9486,"iroh_net::tls::certificate"],[9487,"rustls::server::server_conn"],[9488,"rcgen::error"],[9489,"webpki::error"],[9490,"rustls::key"],[9491,"rustls::enums"],[9492,"tokio::runtime::task::join"],[9493,"tokio::runtime::task::abort"],[9494,"iroh_net::util::chain"],[9495,"tokio::io::async_buf_read"],[9496,"iroh::node::protocol"],[9497,"iroh::node::builder"],[9498,"tokio_util::sync::cancellation_token"],[9499,"iroh::node::rpc_status"],[9500,"alloc::borrow"],[9501,"tokio::sync::mpsc::bounded"],[9502,"iroh_base"],[9503,"ed25519_dalek::constants"],[9504,"iroh_blobs"],[9505,"iroh_blobs::format"],[9506,"iroh_blobs::get::request"],[9507,"iroh_blobs::store"],[9508,"bao_tree::io::fsm::validate"],[9509,"bao_tree::io::sync::validate"],[9510,"range_collections"],[9511,"iroh_docs"],[9512,"iroh_gossip"],[9513,"iroh_net"],[9514,"iroh_net::defaults"],[9515,"iroh_net::defaults::prod"],[9516,"iroh_net::defaults::staging"],[9517,"iroh_net::net"],[9518,"iroh_net::relay::codec"],[9519,"iroh_net::relay"],[9520,"stun_rs"],[9521,"stun_rs::methods"],[9522,"iroh_net::test_utils::dns_server"],[9523,"iroh_net::tls"]],"i":[0,0,0,0,0,0,0,0,0,0,13,0,0,13,0,3,3,3,3,3,4,3,4,13,3,4,13,3,4,3,4,3,4,3,3,3,4,4,4,0,3,3,4,4,13,13,0,0,3,4,13,13,13,3,4,3,4,13,4,0,0,0,4,13,3,4,3,4,13,3,4,13,3,4,13,3,4,13,3,4,13,0,0,0,30,30,41,41,548,548,0,0,0,0,0,0,0,0,0,21,21,0,21,21,0,21,21,21,21,21,21,21,437,21,21,21,21,21,21,21,21,21,33,21,33,437,21,21,21,21,21,21,21,678,678,0,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,0,29,0,28,29,0,29,0,29,27,27,29,27,29,27,27,28,27,27,27,27,27,27,27,29,29,27,27,29,29,29,28,27,27,27,27,27,29,27,27,27,27,28,27,29,28,27,27,27,29,27,29,27,29,27,29,27,29,679,0,32,0,0,30,0,30,0,0,32,30,41,38,32,32,32,41,38,38,32,38,32,32,32,30,41,38,38,43,32,30,41,38,43,32,30,41,38,32,30,41,38,32,30,41,38,32,32,30,41,38,38,38,30,32,30,41,38,0,43,32,32,32,30,41,38,32,32,32,30,30,30,41,41,41,38,38,38,0,32,41,38,38,32,32,30,30,41,41,38,38,43,32,0,43,41,32,32,32,32,32,30,41,41,41,38,38,38,38,43,32,32,41,38,38,32,30,41,38,32,41,0,32,30,41,43,41,41,0,43,32,30,41,38,43,30,30,43,0,32,41,43,32,30,41,38,0,0,41,32,30,41,38,0,32,32,30,41,38,32,30,41,38,32,32,30,41,38,43,32,30,41,38,43,32,30,41,38,43,32,41,38,38,0,32,30,41,38,43,65,62,65,62,0,73,68,0,0,62,0,0,0,0,65,0,0,0,62,0,65,60,61,50,62,58,60,65,63,64,61,50,62,59,58,60,65,63,64,61,50,62,59,58,58,60,61,50,62,58,60,61,50,62,58,60,60,63,64,60,50,60,60,60,50,50,50,60,60,65,63,64,61,50,50,62,62,59,58,50,60,65,65,63,64,61,50,50,62,59,58,60,61,50,62,58,68,60,50,50,50,64,60,65,63,64,61,50,62,59,58,59,73,59,63,63,63,63,64,61,58,58,60,73,59,61,58,73,59,60,61,50,62,58,60,50,62,60,65,63,64,61,50,62,59,58,60,65,63,64,61,50,62,59,58,59,60,65,63,64,61,50,62,59,58,60,65,63,64,61,50,62,59,58,58,89,89,89,0,89,89,89,89,89,89,89,89,0,0,0,89,89,89,89,89,89,89,89,89,89,680,680,681,682,680,681,680,680,0,0,96,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,98,96,96,96,96,96,96,96,96,96,96,96,96,96,108,108,108,0,108,0,108,106,106,108,106,108,106,106,106,106,0,106,106,106,106,106,106,106,0,106,108,108,106,108,108,108,108,108,108,108,106,0,106,108,106,0,0,106,108,106,108,106,108,106,108,106,108,106,108,86,86,0,0,115,114,86,86,0,86,86,86,86,114,114,86,115,114,86,115,0,114,86,115,114,86,115,114,86,115,114,86,115,115,115,86,115,115,115,115,115,114,86,115,114,86,115,114,86,115,0,115,114,86,115,114,115,86,115,114,114,86,115,114,86,115,114,86,115,114,86,115,0,114,114,86,115,683,684,683,685,686,687,685,686,687,686,688,689,688,685,686,685,66,0,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,0,0,0,0,0,0,0,0,0,0,133,102,0,0,0,134,0,124,125,122,122,122,134,102,125,122,122,122,124,125,122,124,133,133,124,131,132,133,124,101,126,127,125,129,122,134,128,102,130,131,132,133,124,101,126,127,125,129,122,134,128,102,130,126,127,129,127,129,101,126,129,131,132,133,124,124,101,126,127,125,125,129,122,122,134,128,102,130,131,132,133,133,133,133,124,124,101,126,127,125,129,122,122,122,122,134,134,134,128,102,102,102,130,101,127,129,131,132,133,124,101,126,127,125,129,122,134,128,102,130,131,131,132,101,126,127,129,128,130,127,129,101,126,127,124,122,0,124,125,122,129,131,132,133,124,101,126,127,125,129,122,134,128,102,130,131,132,133,124,101,126,127,125,129,122,134,128,102,130,131,132,133,124,101,126,127,125,129,122,134,128,102,130,131,132,133,124,101,126,127,125,129,122,134,128,102,130,127,129,127,129,127,129,0,0,143,143,0,143,0,141,142,143,141,142,143,141,142,143,142,141,141,142,143,141,142,143,141,141,143,141,142,143,141,142,143,141,141,141,142,142,142,143,143,143,141,142,143,141,142,143,141,142,143,141,141,142,141,142,143,142,141,142,141,142,141,141,141,141,142,143,142,141,142,143,141,142,143,141,142,143,141,142,143,141,142,143,0,0,0,0,0,0,0,0,103,147,148,103,147,148,103,147,148,103,147,148,103,147,148,103,147,148,103,147,148,103,103,147,148,103,103,147,148,148,103,103,148,103,103,103,103,147,148,0,103,147,103,147,148,148,103,103,147,148,103,147,148,103,147,148,103,147,148,0,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,0,0,155,156,0,0,0,157,0,0,0,157,157,0,155,145,156,136,157,155,145,136,145,155,145,158,156,136,157,159,155,145,158,156,136,157,159,155,145,156,136,157,155,145,156,136,157,155,145,156,136,145,155,145,156,136,157,155,155,155,145,145,145,156,156,156,136,136,136,157,157,157,155,145,158,156,136,157,159,159,155,145,158,156,156,136,157,159,145,145,155,145,156,136,157,155,145,157,136,155,145,158,156,136,157,159,158,158,155,155,145,145,136,136,155,145,136,158,136,157,155,145,156,136,136,155,155,145,156,136,157,159,158,155,145,158,156,136,157,157,159,155,145,158,156,136,157,159,155,145,158,156,136,157,159,155,145,158,156,136,157,159,166,0,166,163,163,166,0,0,166,163,165,166,0,165,0,163,163,163,163,163,0,163,164,165,163,164,166,167,165,163,164,166,167,165,163,164,165,163,164,165,164,166,164,165,165,165,165,163,164,166,167,165,163,164,166,167,165,163,164,165,0,0,163,164,166,167,165,164,0,168,164,0,166,163,164,165,0,163,164,166,167,165,163,164,166,167,165,163,164,166,167,165,163,164,166,167,165,690,691,690,692,693,691,692,693,692,690,694,695,696,697,698,699,700,701,701,695,698,698,696,697,695,696,697,698,699,700,698,699,700,701,179,182,182,0,0,91,91,175,0,176,92,187,185,186,185,186,0,188,179,182,100,182,184,182,0,185,186,177,0,0,0,0,0,187,178,0,178,0,0,0,177,0,0,0,0,175,187,187,175,182,182,182,188,0,0,187,188,179,182,0,177,176,92,121,179,0,121,177,175,121,176,92,91,177,178,173,174,175,121,185,186,187,176,92,91,188,177,179,182,178,175,121,185,186,187,176,92,91,188,177,179,182,178,175,121,176,92,91,177,178,175,121,176,92,91,177,178,177,177,174,83,181,176,92,91,83,121,92,91,177,179,182,184,184,175,121,176,92,177,178,175,175,175,121,121,121,176,176,176,92,92,92,177,177,177,178,178,178,174,175,121,185,186,187,176,92,91,188,177,177,179,182,178,175,121,185,186,187,176,92,91,188,177,179,182,178,175,121,176,92,91,177,178,0,83,83,83,100,184,184,181,83,83,83,83,184,175,121,185,186,187,176,92,91,188,177,179,182,178,181,0,121,181,174,177,0,121,92,91,177,179,182,83,83,181,139,174,83,174,175,121,176,92,91,177,178,177,175,121,185,186,187,176,92,91,188,177,179,182,178,175,121,185,186,187,176,92,91,188,177,179,182,178,175,121,185,186,187,176,92,91,188,177,179,182,178,83,121,175,121,185,186,187,176,92,91,188,177,179,182,178,139,702,702,702,703,703,704,705,704,703,703,706,707,708,709,710,706,707,708,710,709,711,712,713,712,714,711,713,715,716,714,715,712,713,716,712,713,717,0,0,0,0,0,0,0,197,0,197,195,119,195,137,197,194,119,119,194,137,137,119,195,137,197,194,119,195,137,197,194,195,195,194,119,137,119,195,137,197,194,119,195,137,197,194,119,195,194,119,195,194,194,119,119,119,119,195,137,194,119,119,119,195,195,195,137,137,137,194,194,194,119,119,195,195,137,197,194,194,119,195,137,197,194,195,195,119,195,137,197,194,119,119,195,119,195,137,197,194,0,194,119,0,194,194,194,119,119,137,194,194,137,194,119,119,195,194,137,137,137,194,194,137,137,137,194,194,194,137,137,119,119,194,119,119,195,137,197,194,119,195,194,119,119,195,137,197,194,119,195,137,197,194,119,195,137,197,194,197,119,195,137,197,194,0,0,0,0,0,0,47,201,202,203,47,47,201,202,203,47,201,202,203,47,201,202,203,47,201,202,203,202,202,0,47,47,47,47,47,47,203,202,202,202,47,47,201,201,202,203,47,47,47,201,202,203,47,47,47,201,202,203,47,0,47,47,201,202,203,0,202,202,202,203,203,202,203,203,47,47,201,202,203,47,201,47,201,202,203,47,201,202,203,47,201,202,203,202,47,201,202,203,202,0,0,0,112,206,0,135,112,206,112,206,0,135,112,206,112,206,206,112,206,207,208,135,112,206,207,208,135,208,112,112,206,206,207,208,135,112,112,206,206,207,208,135,135,135,0,0,112,206,207,208,135,207,208,0,207,0,112,206,0,112,206,112,206,207,208,135,112,206,207,208,135,112,206,207,208,135,112,206,207,208,135,0,0,0,0,212,135,212,0,0,135,0,0,211,212,211,212,0,209,209,0,0,0,211,211,212,211,212,211,209,211,212,172,211,211,0,0,150,172,140,138,150,138,140,172,211,211,212,211,212,211,212,0,0,211,212,138,138,0,0,0,0,0,213,214,215,216,221,213,214,215,216,221,213,214,215,216,213,214,215,216,213,214,215,216,215,216,213,213,214,214,213,214,215,216,213,214,215,216,215,216,215,215,215,216,216,216,215,216,221,213,214,215,216,221,213,214,215,216,213,214,215,216,213,213,214,214,221,213,214,215,216,216,215,221,221,213,213,214,214,215,215,216,216,215,216,221,221,213,213,214,214,215,215,216,216,221,213,214,215,216,221,221,213,213,214,214,215,215,216,216,221,221,213,213,214,214,215,215,216,216,213,214,215,216,221,221,213,213,214,214,215,215,216,216,221,213,214,215,216,221,213,214,215,216,221,213,214,215,216,221,213,214,215,216,221,213,214,215,216,0,0,0,0,0,0,0,224,224,224,0,227,227,0,0,0,218,224,224,227,224,224,224,225,224,224,224,0,0,222,222,225,226,229,226,224,225,224,224,224,224,0,0,224,218,218,0,232,232,0,0,0,0,0,0,232,233,234,235,232,199,200,236,233,234,235,232,199,200,236,232,232,232,232,232,232,232,233,234,235,232,199,200,236,233,234,235,232,199,200,236,232,233,234,235,232,199,200,236,233,234,235,199,200,236,233,234,235,199,200,236,200,233,234,235,199,200,236,233,234,235,199,200,236,232,232,233,234,235,199,200,236,233,200,236,233,234,235,232,199,200,236,233,234,235,232,199,200,236,233,234,235,232,199,200,236,233,234,235,232,199,200,236,232,718,719,718,718,718,719,718,719,719,238,0,0,0,0,238,0,0,0,238,239,240,241,237,241,237,238,239,240,241,242,237,238,239,240,241,242,237,238,239,240,241,237,238,239,240,241,237,242,237,237,239,238,240,237,237,237,237,237,238,239,240,241,242,237,238,239,240,241,242,237,238,239,240,241,237,237,237,237,237,237,237,237,237,241,237,238,239,240,241,242,237,237,238,238,240,240,240,240,242,237,237,237,242,237,241,237,237,237,237,239,237,237,238,239,240,241,237,237,238,239,240,241,242,237,238,239,240,241,242,237,238,239,240,241,242,237,237,238,239,240,241,242,237,0,0,247,246,246,247,247,246,247,246,247,246,247,246,247,247,246,247,247,247,247,247,247,246,247,246,247,246,247,247,247,247,246,247,247,247,247,247,246,246,247,246,247,247,247,246,247,247,247,247,246,247,246,247,246,247,246,247,246,0,0,0,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,160,120,160,160,120,120,160,160,160,120,160,120,120,160,120,160,120,120,120,160,160,160,120,160,120,120,120,120,120,120,120,120,160,120,160,120,120,160,160,160,160,160,120,160,120,160,120,160,120,120,160,0,160,160,120,120,120,120,120,160,120,120,120,120,120,160,160,120,120,0,253,253,0,0,0,0,0,253,256,253,256,253,253,253,253,253,253,256,253,253,253,253,253,256,253,256,256,248,248,256,253,253,253,256,256,253,256,253,256,253,253,256,253,0,0,261,260,260,261,261,260,261,260,261,260,261,260,261,261,260,261,261,261,261,261,261,260,261,260,261,261,260,261,261,261,261,261,260,261,261,261,261,261,261,261,260,260,261,260,261,261,261,260,261,261,261,261,260,261,260,261,260,261,260,261,260,265,262,262,0,265,0,0,0,0,0,0,265,263,262,263,264,262,263,265,262,263,265,265,265,265,265,262,263,263,265,263,263,265,265,265,265,263,262,263,265,262,263,263,265,265,262,263,265,263,0,262,0,262,262,262,263,264,53,265,263,0,262,263,265,262,262,263,264,265,0,263,262,263,265,262,263,263,265,262,262,263,265,262,263,265,263,0,0,267,268,267,268,267,268,267,268,267,268,267,268,267,268,267,268,268,268,268,267,267,267,268,267,268,267,268,267,268,274,0,0,0,272,0,0,272,0,82,272,273,270,271,82,272,273,274,270,271,82,272,273,274,270,271,82,272,273,82,272,273,271,273,271,271,272,272,272,272,271,271,82,272,273,274,274,270,271,82,272,273,274,270,82,272,273,271,271,82,272,273,274,270,270,270,271,273,270,270,271,271,82,82,273,273,82,272,273,274,271,82,272,273,274,270,271,82,272,273,274,270,270,82,82,82,271,82,272,273,274,270,271,82,272,273,274,270,82,0,0,720,0,0,0,0,94,720,0,0,0,0,123,0,0,180,275,276,277,278,87,123,94,180,275,276,277,278,87,180,275,276,277,278,87,123,279,280,180,275,276,277,278,87,123,279,280,94,180,275,276,277,278,87,123,180,275,276,277,278,87,123,275,180,275,276,277,278,87,123,123,279,280,180,275,276,277,278,87,123,279,280,180,275,276,277,278,87,123,180,275,276,277,278,87,123,279,280,279,280,278,87,279,280,95,180,275,276,277,278,87,278,87,94,180,275,276,277,278,87,279,280,279,280,180,275,276,277,278,87,123,123,180,275,276,277,278,87,123,279,280,180,275,276,277,278,87,123,279,280,94,180,275,276,277,278,87,180,275,276,277,278,87,123,279,280,180,275,276,277,278,87,123,279,280,94,94,279,280,279,280,0,0,0,0,0,284,287,0,284,0,284,284,287,284,287,284,287,284,287,284,284,284,0,284,284,287,292,292,284,287,284,287,0,284,284,287,284,0,284,0,284,284,287,284,287,284,287,284,287,284,287,0,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,0,0,0,0,0,0,305,309,0,0,0,0,0,0,0,300,305,309,0,300,0,286,305,299,306,307,308,309,286,286,286,286,286,286,300,305,299,310,311,312,301,306,313,307,314,315,308,309,286,300,305,299,310,311,312,301,306,313,307,314,315,308,309,301,313,314,315,286,305,299,306,307,308,309,286,305,299,306,307,308,309,286,286,286,300,310,311,312,308,309,286,286,286,306,305,307,305,305,305,307,307,307,312,286,301,313,314,286,300,305,299,310,311,312,301,306,313,307,314,315,308,309,299,308,286,300,305,299,310,311,312,301,306,313,307,314,315,308,309,286,305,299,306,307,308,309,286,299,310,311,312,286,300,305,299,310,311,312,301,306,313,307,314,315,308,309,301,313,314,301,313,314,315,315,301,313,314,286,286,286,286,306,301,313,314,315,308,313,314,308,311,301,313,314,301,313,314,315,315,301,313,314,301,313,314,315,301,313,314,315,286,286,286,286,315,286,286,300,310,311,312,308,309,286,315,299,311,312,315,306,286,299,310,308,286,305,299,306,307,308,309,310,310,286,300,305,299,310,311,312,301,306,313,307,314,315,308,309,286,300,305,299,310,311,312,301,306,313,307,314,315,308,309,301,313,314,301,313,314,315,286,300,305,299,310,311,312,301,306,313,307,314,315,308,309,286,286,300,305,299,310,311,312,301,306,313,307,314,315,308,309,301,313,314,315,721,722,723,332,396,332,0,396,329,395,0,0,0,0,332,0,0,0,332,329,329,0,329,329,395,0,329,332,328,395,0,0,329,0,395,328,290,293,327,328,329,330,331,327,290,293,327,332,328,329,335,330,334,331,290,293,327,332,328,329,335,330,334,331,335,334,290,293,327,328,329,330,331,290,293,327,328,329,330,331,293,327,327,327,327,290,293,327,332,328,329,290,293,327,329,330,331,293,293,293,327,327,327,329,329,329,330,330,330,331,331,331,293,335,334,394,290,293,327,332,328,328,329,329,335,330,334,331,290,293,327,327,327,332,328,329,329,335,330,334,331,290,293,327,328,329,330,331,328,293,293,293,293,293,330,293,327,290,290,293,290,290,293,327,332,328,329,335,330,334,331,335,334,327,330,293,290,335,334,290,394,394,335,334,335,334,335,334,290,290,394,327,332,328,329,293,293,293,293,330,293,394,293,293,327,290,293,327,328,329,330,331,328,329,290,293,327,332,328,329,335,330,334,331,290,293,327,332,328,329,335,330,334,331,335,334,290,293,327,332,328,329,335,330,334,331,290,293,327,332,328,329,335,330,334,331,335,334,724,725,726,724,727,725,726,725,728,729,728,728,730,349,349,0,352,352,0,0,0,0,294,347,347,348,294,347,348,294,347,348,294,347,294,347,347,348,294,347,348,294,347,348,294,347,294,347,348,294,294,348,294,294,347,348,294,347,348,294,347,348,294,347,348,294,347,348,294,347,348,0,0,295,295,356,295,356,295,356,295,295,295,295,356,295,356,295,356,295,295,295,356,356,295,295,295,295,356,356,295,295,295,295,295,356,295,356,295,356,356,295,356,0,0,296,296,358,296,358,296,296,296,358,296,358,358,296,358,296,358,296,358,296,296,358,296,296,358,296,296,358,296,358,296,358,296,358,0,0,0,0,377,0,0,0,374,368,0,0,0,0,374,0,0,368,0,0,377,377,367,366,0,368,0,375,0,0,374,0,0,345,344,0,374,0,0,366,0,0,0,374,367,0,377,374,0,345,344,343,366,367,368,369,345,344,337,370,336,342,371,372,298,359,373,360,333,297,0,342,333,297,342,342,359,360,333,297,342,333,333,297,297,336,342,337,343,366,367,368,369,345,344,375,363,361,376,374,377,337,370,336,342,371,372,298,359,373,360,333,297,343,366,367,368,369,345,344,375,363,361,376,374,377,337,370,336,342,371,372,298,359,373,360,333,297,361,343,343,366,367,368,369,345,344,337,370,336,342,371,372,298,359,373,360,333,297,343,366,367,368,369,345,344,337,370,336,342,371,372,298,359,373,360,333,297,363,337,336,342,371,359,360,333,297,337,336,342,371,359,360,333,297,337,371,337,371,372,369,342,372,359,360,333,297,361,337,336,343,368,345,344,337,370,336,342,371,298,359,373,360,333,297,371,371,336,372,342,333,297,342,333,297,0,337,368,337,370,336,342,371,372,359,360,333,297,368,368,368,337,337,337,370,370,370,336,336,336,342,342,342,371,371,371,372,372,372,359,359,359,360,360,360,333,333,333,297,297,297,343,343,366,367,368,369,345,345,344,375,375,363,361,376,376,374,374,377,377,337,370,336,342,371,372,298,298,359,359,373,373,360,360,333,333,297,297,333,297,343,366,367,368,369,345,344,344,344,375,363,361,376,374,374,374,377,337,370,336,336,342,371,372,298,298,359,359,359,359,373,373,360,360,360,360,333,333,333,333,333,333,297,297,297,297,297,297,343,298,359,373,360,337,370,372,372,337,344,343,366,367,368,369,345,344,337,370,336,342,371,372,298,359,373,360,333,297,343,298,359,373,360,333,297,372,372,359,360,333,297,361,369,344,361,336,298,373,361,372,361,343,366,367,368,369,345,344,375,363,361,376,374,377,337,370,336,342,371,372,298,359,373,360,333,297,333,297,371,372,372,337,336,342,342,344,372,344,372,363,0,336,342,0,343,363,361,336,342,371,298,373,371,336,343,369,369,337,336,342,371,359,360,333,297,298,373,333,297,344,336,361,344,361,343,368,345,344,337,370,336,342,371,298,359,373,360,333,297,363,336,298,373,337,374,0,363,363,0,361,361,337,371,342,343,298,373,333,297,343,366,367,368,369,345,344,337,370,336,342,371,372,298,359,373,360,333,297,343,345,375,376,374,377,298,359,373,360,333,297,336,342,333,297,343,366,367,368,369,345,345,344,375,363,361,376,374,377,337,370,336,342,371,372,298,359,359,373,360,360,333,297,345,343,366,367,368,369,345,344,375,363,361,376,374,377,337,370,336,342,371,372,298,359,373,360,333,297,343,366,367,368,369,345,344,375,363,361,376,374,377,337,370,336,342,371,372,298,359,373,360,333,297,363,337,336,337,370,298,359,373,360,343,366,367,368,369,345,344,375,363,361,376,374,377,337,370,336,342,371,372,298,359,373,360,333,297,731,732,732,731,732,732,732,733,733,0,0,0,346,390,346,390,392,346,390,392,346,390,346,390,390,390,346,392,390,390,346,390,390,346,346,346,346,390,390,390,346,390,392,346,390,392,346,390,390,390,390,390,390,346,390,390,390,390,390,346,390,392,390,390,390,390,346,390,390,390,390,390,392,392,346,392,346,392,390,390,346,390,346,390,392,346,390,392,346,390,392,390,346,390,392,396,396,338,0,0,395,0,338,338,0,398,338,338,395,0,338,398,395,0,338,0,395,394,395,396,397,338,394,395,396,397,338,398,399,394,395,396,397,338,398,399,394,395,396,397,338,394,395,396,397,338,397,394,395,396,338,397,0,394,395,396,338,394,394,394,395,395,395,396,396,396,338,338,338,394,394,395,396,397,338,338,398,399,394,395,396,397,338,338,398,399,394,395,396,397,338,399,397,394,395,396,397,338,398,399,397,398,399,394,394,398,394,394,395,396,338,399,397,397,397,394,397,397,394,395,396,397,338,338,394,395,396,397,338,398,399,394,395,396,397,338,398,399,394,395,396,397,338,398,399,394,395,396,397,338,398,399,734,735,734,734,736,0,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,409,0,0,0,404,407,409,408,409,408,0,0,407,407,409,404,408,409,408,0,0,404,405,406,407,404,405,406,409,408,407,404,405,406,409,408,407,404,405,406,407,404,405,406,407,406,0,406,407,407,407,407,407,404,405,406,409,409,408,408,407,404,405,406,409,408,407,404,405,406,407,0,404,405,406,409,408,407,409,405,405,409,405,406,407,409,408,405,404,405,406,407,409,408,404,405,406,409,408,407,404,405,406,409,408,407,404,405,406,409,408,407,404,405,406,409,408,407,737,738,739,740,741,739,740,738,741,739,740,741,742,743,744,418,419,416,0,417,416,0,0,339,415,418,419,0,0,0,414,417,0,0,414,420,339,0,420,415,418,0,0,0,0,0,0,0,414,413,414,339,415,410,412,340,416,417,418,419,340,393,393,411,340,386,393,413,420,414,339,415,411,410,412,340,416,417,418,419,393,413,420,414,339,415,411,410,412,340,416,417,418,419,411,411,413,414,339,415,410,412,340,416,417,418,419,413,414,339,415,410,412,340,416,417,418,419,393,393,413,339,411,410,412,416,417,418,419,393,339,415,410,412,340,416,417,418,419,339,415,418,419,339,339,339,415,415,415,418,418,418,419,419,419,393,393,413,420,420,414,339,415,415,411,410,412,340,416,417,418,419,393,413,420,420,414,339,415,411,410,412,340,340,340,416,417,418,418,419,419,413,414,339,415,410,412,340,416,417,418,419,415,0,393,421,393,393,393,393,393,393,393,393,393,411,393,413,420,414,339,415,411,410,412,340,416,417,418,419,411,340,411,340,411,340,393,393,393,339,415,418,419,393,386,393,393,411,340,393,393,386,393,413,393,393,339,415,410,412,340,416,417,418,419,393,340,393,393,411,411,420,413,414,339,415,410,412,340,416,417,418,419,420,415,393,413,420,414,339,415,411,410,412,340,416,417,418,419,393,413,420,414,339,415,411,410,412,340,416,417,418,419,393,413,420,414,339,415,411,410,412,340,416,417,418,419,393,413,420,414,339,415,411,410,412,340,416,417,418,419,0,0,0,0,0,0,391,426,383,427,391,422,426,383,427,391,422,426,383,427,391,422,426,383,427,391,422,383,426,383,427,391,422,426,427,391,422,426,427,391,422,426,427,391,422,383,426,427,391,422,426,383,427,391,422,426,383,427,391,422,426,383,427,391,422,426,383,427,391,422,0,377,0,0,0,374,368,0,0,0,374,0,0,368,0,0,377,377,367,366,0,368,375,374,0,0,345,344,0,374,0,0,366,0,0,0,374,367,0,377,374,0,345,344,369,369,369,731,732,732,731,732,732,732,733,733,0,0,0,0,349,349,0,0,352,0,0,352,0,428,428,428,0,428,429,430,431,431,349,352,428,429,430,431,349,352,428,429,430,428,429,430,428,429,430,428,429,428,429,429,429,431,349,352,428,429,428,429,428,428,428,429,429,429,431,349,352,428,429,430,431,349,352,428,428,429,430,428,429,430,431,349,352,428,429,430,430,428,429,429,431,349,352,428,429,430,431,428,429,430,431,349,352,428,429,430,431,349,352,428,429,430,431,349,352,428,429,430,431,349,352,428,429,430,0,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,745,0,0,0,0,745,0,746,746,745,746,402,402,402,435,402,435,402,402,402,402,402,435,402,435,402,402,402,402,435,435,402,435,402,435,402,435,402,402,402,402,435,402,435,435,402,435,402,0,402,435,0,441,441,441,441,441,441,441,441,0,0,441,441,441,441,441,0,450,0,448,0,0,449,449,0,0,0,450,0,432,432,445,446,0,0,449,448,0,450,432,448,449,0,449,0,445,446,0,448,0,448,445,446,353,443,447,448,449,432,450,436,444,353,353,444,353,353,445,446,353,443,447,448,449,452,432,450,436,444,445,446,353,443,447,448,449,452,432,450,436,444,436,445,446,353,443,447,448,449,432,450,436,444,445,446,353,443,447,448,449,432,450,436,444,445,446,353,432,445,446,353,432,436,444,445,446,353,443,432,444,353,353,445,446,353,432,444,445,445,445,446,446,446,353,353,353,432,432,432,444,444,444,445,446,353,353,443,447,448,449,452,432,450,436,444,445,446,353,353,443,447,448,449,452,432,432,432,450,436,444,353,445,446,353,443,447,448,449,432,450,436,444,353,452,452,353,444,445,446,353,443,447,448,449,452,432,450,436,444,445,443,452,436,452,436,452,444,445,446,353,432,457,457,445,446,353,443,432,444,443,0,452,452,445,446,353,443,447,448,449,432,450,436,444,353,0,452,353,445,446,353,443,447,448,449,452,432,450,436,444,445,446,353,443,447,448,449,452,432,450,436,444,445,446,353,443,447,448,449,452,432,450,436,444,0,445,446,353,443,447,448,449,452,432,450,436,444,448,456,456,449,449,0,0,0,0,449,448,448,449,449,0,0,448,0,448,456,456,456,456,456,456,456,456,456,450,0,461,0,0,458,458,0,462,463,0,0,450,0,432,432,0,458,461,450,432,461,458,458,0,0,462,463,0,461,461,461,462,463,464,461,458,462,463,460,464,461,458,462,463,460,464,436,461,462,463,464,461,462,463,464,464,462,460,458,462,463,458,458,458,462,462,462,463,463,463,461,458,462,463,460,464,461,458,458,458,462,462,462,463,463,463,460,464,461,462,463,464,460,460,460,461,458,462,463,460,464,462,436,436,464,464,460,457,457,462,460,461,462,463,464,461,458,462,463,460,464,461,458,462,463,460,464,461,458,462,463,460,464,461,458,462,463,460,464,460,0,0,476,473,476,473,473,476,473,476,473,473,476,476,473,476,473,473,476,473,476,473,473,476,473,473,476,476,473,476,473,476,473,476,473,476,473,0,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,0,477,477,477,477,477,0,477,477,477,0,0,0,0,33,437,81,81,81,81,33,437,33,437,81,33,437,81,81,81,33,437,81,33,437,81,81,33,437,33,437,81,81,81,81,81,437,0,33,437,0,33,81,437,0,81,0,81,0,33,437,33,33,33,437,437,437,33,437,81,33,33,33,33,33,437,437,81,33,33,437,81,81,33,33,437,81,437,0,0,0,0,81,33,81,81,33,33,437,0,0,0,33,437,81,33,437,81,0,0,0,0,33,437,81,33,437,81,33,437,81,33,437,81,0,33,437,81,81,33,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,0,0,0,492,491,492,492,491,492,491,492,492,491,0,491,492,491,492,492,491,491,492,491,492,491,492,0,0,492,482,491,482,491,492,492,491,492,491,492,491,492,491,0,0,0,494,494,494,494,494,494,494,494,494,494,494,494,0,495,495,495,495,495,495,495,495,495,495,495,495,0,0,0,0,0,0,0,496,497,498,496,497,498,496,497,498,496,497,498,496,497,498,496,496,497,498,496,497,498,496,497,498,496,497,498,496,497,496,497,498,496,498,497,498,496,497,498,496,497,498,496,497,498,496,497,498,496,496,497,498,496,0,0,0,502,502,502,502,502,502,502,502,502,502,0,0,505,0,0,0,505,0,486,505,506,505,486,506,505,486,506,486,486,505,505,486,505,486,505,505,505,486,486,486,505,505,486,506,505,486,486,486,506,506,486,506,506,486,506,486,505,506,0,505,505,486,506,506,506,486,506,486,505,486,486,506,486,486,506,505,0,505,505,486,506,505,486,506,505,486,506,505,486,506,0,0,111,0,514,0,0,111,0,0,109,110,0,0,0,516,0,0,0,0,0,109,517,111,162,162,516,0,516,514,514,517,0,0,516,109,111,0,110,517,517,111,0,111,517,109,110,0,111,0,109,110,117,109,110,162,111,514,515,355,516,440,517,117,117,515,440,355,512,401,479,479,117,169,109,521,110,512,162,479,111,478,401,514,515,355,516,480,481,440,517,117,169,109,521,110,512,162,479,111,478,401,514,515,355,516,480,481,440,517,480,481,117,109,110,162,111,514,515,355,516,440,517,117,109,110,162,111,514,515,355,516,440,517,117,117,117,162,440,517,162,440,517,479,512,117,355,512,512,512,117,512,162,479,0,514,515,355,516,437,479,479,169,521,512,109,110,162,111,514,515,355,516,440,517,109,109,109,110,110,110,162,162,162,111,111,111,514,514,514,515,515,515,355,355,355,516,516,516,440,440,440,517,517,517,117,521,117,169,109,109,521,110,110,512,162,162,479,111,111,478,401,514,514,515,355,516,516,480,481,440,517,517,117,169,109,109,109,521,110,110,512,162,162,162,162,162,162,479,111,111,111,478,401,514,515,355,516,480,481,440,517,117,109,110,162,111,514,515,355,516,440,517,162,162,162,0,117,401,355,162,440,517,169,521,355,33,512,512,479,117,169,109,521,110,512,162,479,111,478,401,514,515,355,516,480,481,440,517,401,478,401,162,480,481,169,478,401,512,479,479,515,355,515,515,355,355,515,355,117,401,0,512,512,117,512,512,480,481,512,512,33,355,117,117,512,162,440,517,117,512,478,401,521,480,481,169,521,521,521,479,479,478,401,480,481,480,481,169,169,169,117,169,169,512,479,437,355,117,401,521,117,479,117,512,514,515,355,516,117,117,521,117,109,110,111,117,117,169,521,512,512,117,109,110,162,111,514,515,355,516,440,517,109,110,162,111,514,516,517,479,117,169,109,521,110,512,162,162,162,162,479,111,478,401,514,515,355,516,480,481,440,517,117,169,109,521,110,512,162,479,111,478,401,514,515,355,516,480,481,440,517,401,440,117,169,109,521,110,512,162,479,111,478,401,514,515,355,516,480,481,440,517,117,169,109,521,110,512,162,479,111,478,401,514,515,355,516,480,481,440,517,117,521,521,521,521,521,480,481,387,548,548,0,0,0,0,0,0,0,387,74,487,74,74,74,387,547,74,548,487,387,547,74,548,487,387,74,487,387,74,487,74,74,387,74,487,74,74,387,74,387,387,387,74,74,74,387,387,387,387,547,74,74,548,548,487,487,74,387,387,387,387,547,74,74,548,548,548,487,487,487,387,74,487,387,387,74,487,387,387,74,487,487,487,74,387,547,74,548,487,547,74,487,387,387,547,387,74,487,487,487,548,387,387,487,487,387,74,487,387,74,548,487,387,74,387,387,387,387,547,74,74,74,548,487,487,487,387,547,74,548,487,387,547,74,548,487,74,387,547,74,548,487,0,0,0,0,554,597,554,554,554,554,554,554,554,554,554,554,597,597,554,554,554,597,597,597,597,597,573,554,554,554,597,554,554,573,573,573,554,554,554,554,554,597,597,597,573,573,573,554,554,554,554,554,554,554,554,554,554,554,554,554,554,563,563,554,554,554,554,554,554,597,597,597,554,554,554,554,554,554,554,597,563,563,563,563,563,554,554,554,554,597,597,554,573,573,573,573,554,597,0,0,557,557,557,555,555,555,555,555,555,555,555,557,555,557,555,557,557,555,555,557,557,557,557,557,555,557,557,555,555,557,557,555,0,557,0,557,557,555,557,555,557,555,557,557,555,0,559,559,559,559,559,559,559,559,559,559,559,559,559,559,0,559,559,559,559,559,559,559,559,0,0,561,561,562,561,562,561,561,562,561,561,561,561,561,562,561,562,561,561,561,562,562,562,562,561,561,562,561,562,561,562,562,561,562,0,0,0,0,563,564,565,566,563,564,565,566,563,564,565,566,564,563,564,565,566,563,564,565,566,563,564,565,564,565,564,564,564,565,565,565,563,564,564,565,566,563,564,565,566,563,564,565,566,566,566,564,564,564,564,564,563,564,565,566,564,564,564,564,563,565,564,564,563,566,564,564,564,566,564,564,564,563,563,563,563,563,563,563,563,564,565,566,564,563,564,565,566,563,564,565,566,563,564,565,566,564,563,564,565,566,570,570,0,0,569,570,569,570,569,569,569,569,570,570,569,570,570,570,569,569,570,569,569,569,570,569,570,570,569,570,569,570,569,570,569,0,0,0,0,0,573,572,574,568,572,573,572,574,568,575,573,572,574,568,575,573,572,574,568,573,572,574,568,568,573,574,568,574,574,574,572,572,572,572,573,573,572,572,574,568,575,573,572,574,568,575,573,572,574,568,573,572,574,568,575,573,573,573,573,573,572,568,572,573,573,568,573,568,573,572,574,568,572,573,572,574,568,575,573,572,574,568,575,573,572,574,568,575,568,572,573,573,573,573,573,572,574,568,575,568,583,583,583,583,583,520,520,583,583,520,583,583,582,583,0,0,0,0,583,583,583,582,0,583,583,583,582,582,583,583,582,583,583,0,582,0,0,0,0,583,0,583,582,520,583,583,583,583,357,581,582,579,520,489,488,578,357,581,582,583,579,580,578,520,489,488,357,581,582,583,579,580,578,520,489,488,578,578,357,581,582,579,520,489,488,357,581,582,579,520,489,488,581,579,579,357,488,357,488,579,489,489,357,357,488,489,357,581,520,489,488,357,357,357,581,581,581,520,520,520,489,489,489,488,488,488,357,357,581,582,583,583,579,580,578,520,489,489,488,488,357,357,357,581,582,583,583,583,583,583,583,579,580,578,520,489,488,489,357,581,582,579,520,489,488,357,489,489,357,0,578,357,581,582,583,579,580,578,520,489,488,581,579,489,578,578,489,581,579,578,489,581,579,357,488,579,578,578,579,580,520,581,579,581,581,579,357,488,0,578,578,583,488,488,357,581,582,579,520,489,488,357,583,489,488,357,581,582,583,579,580,578,520,489,488,357,581,582,583,579,580,578,520,489,488,357,581,582,583,579,580,578,520,489,488,488,489,357,581,582,583,579,580,578,520,489,488,747,748,749,747,749,0,0,0,589,589,589,589,589,589,589,589,589,589,589,589,589,589,589,589,589,589,589,589,589,589,0,0,603,0,603,0,0,593,0,0,0,0,0,593,0,592,597,591,592,599,599,597,601,591,592,597,593,598,600,601,602,599,603,604,591,592,597,593,598,600,601,602,599,603,604,597,597,592,592,602,591,592,597,592,597,591,597,598,599,597,597,597,597,597,591,592,597,593,598,600,601,602,599,603,604,591,592,597,593,598,600,601,602,599,603,604,592,597,597,604,600,604,602,591,592,597,593,598,600,601,602,599,603,604,591,597,600,591,598,597,591,597,597,597,593,593,593,593,593,591,598,591,600,597,597,597,597,604,604,598,604,604,600,592,597,591,592,597,593,598,600,601,602,599,603,604,591,592,597,593,598,600,601,602,599,603,604,591,592,597,593,598,600,601,602,599,603,604,597,597,591,592,597,593,598,600,601,602,599,603,604,597,750,751,750,607,0,607,628,607,628,631,631,631,607,0,0,607,607,631,607,631,631,607,607,607,628,607,0,0,628,0,607,607,607,607,607,627,628,610,607,610,610,607,607,607,607,607,607,607,607,607,610,607,607,607,607,607,607,607,627,628,610,607,630,631,627,628,610,607,630,631,627,628,610,627,628,610,610,610,627,627,610,610,610,610,628,610,628,628,628,610,610,610,607,607,607,607,607,607,607,607,607,607,607,607,607,607,607,607,627,628,610,610,607,630,630,631,631,627,628,610,610,610,607,607,607,607,607,607,607,607,607,607,607,607,607,607,607,607,607,630,631,627,628,610,627,610,627,628,610,607,630,631,0,607,607,607,607,607,607,607,607,607,607,607,607,607,607,607,607,0,0,0,610,0,0,627,628,610,610,630,631,610,627,628,628,610,607,630,631,627,628,610,607,630,631,627,628,610,607,630,631,627,628,610,607,630,631,0,0,0,0,0,634,633,634,633,0,633,633,634,633,634,633,634,633,633,633,633,633,633,0,633,634,633,634,633,634,633,634,633,0,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,635,0,0,0,0,0,0,0,0,639,640,637,641,642,639,640,637,641,642,639,640,637,637,641,641,642,642,639,640,637,637,641,641,642,642,0,639,640,637,641,642,0,639,637,641,642,637,641,642,639,640,637,641,642,639,640,637,641,642,639,640,637,641,642,639,639,640,637,641,642,0,0,0,0,648,606,648,650,649,606,648,650,649,0,648,648,649,606,606,648,650,606,648,650,649,606,606,648,648,650,649,648,649,606,648,650,649,606,648,649,606,648,649,650,606,648,649,606,648,649,648,606,648,650,649,606,648,650,649,606,648,649,606,648,650,649,606,648,650,649,0,653,653,0,653,653,653,653,653,653,653,653,653,653,653,653,653,653,0,663,0,663,660,661,0,0,0,0,661,0,665,0,660,0,663,660,665,0,0,0,662,662,0,660,661,662,658,655,656,657,656,660,657,665,663,656,661,662,658,660,657,665,663,656,661,662,658,657,658,662,656,658,660,661,662,658,660,661,662,658,657,663,661,658,661,657,657,656,657,657,656,658,661,661,661,661,660,657,665,663,656,661,662,658,660,657,665,663,663,656,661,662,658,660,661,662,658,657,656,658,656,658,657,660,657,665,663,656,661,662,658,657,662,658,658,658,656,658,752,658,658,657,658,657,753,658,657,657,657,657,661,655,655,658,657,656,662,660,661,662,658,660,657,665,663,656,661,662,658,660,657,665,663,656,661,662,658,660,657,665,663,656,661,662,658,660,657,665,663,656,661,662,658,657,754,754,0,0,0,0,0,0,667,668,667,668,667,668,0,667,668,667,668,667,667,667,667,667,667,668,667,668,667,667,667,668,667,668,667,668,0,0,667,667,667,667,0,0,0,0,0,668,667,668,667,668,667,668,667,668,667,668,667,0,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,671,671,671,671,0,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,0,0,0,0,673,672,672,673,674,675,672,673,674,675,672,673,672,673,672,673,674,675,672,673,674,675,672,673,672,673,673,674,675,672,675,673,675,672,672,675,674,675,675,672,673,673,673,672,673,674,675,672,673,674,675,672,672,673,674,675,672,673,674,675,672,673],"f":"```````````````````{{cb}d{}}0{ce{}{}}00000{ff}{hh}{{ce}d{}{}}0{{ff}j}{{hh}j}{{ce}j{}{}}00000{cl{{Ab{{A`{n}}}}}}{{fAd}{{Ah{dAf}}}}0{{hAd}{{Ah{dAf}}}}0{{AjAd}{{Ah{dAf}}}}0{{cl}d{{Ab{{A`{n}}}}}}4{cc{}}00{hAj}{AlAj}22>>>`{An{{Ah{{B`{n}}h}}}}{An{{Ah{{B`{n}}Aj}}}}{An{{Ah{{Bb{n}}h}}}}`{Aj{{Bf{Bd}}}}{ce{}{}}0{cl{}}00{c{{Ah{e}}}{}{}}00000{cBh{}}00333````````````````````````{{cb}d{}}44{BjBj}{{ce}d{}{}}{{}Bj}{c{{Ah{Bj}}}Bl}`{{BjBj}j}{{ce}j{}{}}00{{BjAd}{{Ah{dAf}}}}0{cc{}}0{An{{Ah{Bj}}}}`=``{{Bjc}AhBn}>=<<;>````:>>{C`C`}9{c{{Ah{C`}}}Bl}{{C`Ad}{{Ah{dAf}}}}0{CbC`}{CdC`}77{ce{}{}}{{C`c}AhBn}1{cl{}}{c{{Ah{e}}}{}{}}0{cBh{}}4`````````{{cb}d{}}5555{CfCf}{{ce}d{}{}}{An{{Ah{ChCj}}}}{c{{Ah{Cf}}}Bl}{{CfCf}j}{{ce}j{}{}}00{{CfAd}{{Ah{dAf}}}}0{{CjAd}{{Ah{dAf}}}}0{CfCl}{cc{}}0{hCj}{CnCj}{{{A`{n}}}{{Ah{ChCj}}}}{{{A`{n}}}{{Ah{CfCj}}}}4{An{{Ah{Cf}}}}{CfD`}{ce{}{}}0{Cf{{Dd{DbD`Cl}}}}{{DbD`Cl}{{Ah{CfCb}}}}{CfDb}{Cfj}{Chl}{{Cfc}AhBn}{Cj{{Bf{Bd}}}}{Ch{{Bb{n}}}}{Cf{{Bb{n}}}}9{cl{}}0{c{{Ah{e}}}{}{}}000{cBh{}}0<<``````````{{cb}d{}}000{c{{Df{eg}}}{}{}Dh}{{}}{D`{{B`{n}}}}111{D`{{A`{n}}}}{{Djc}Dl{{E`{{A`{n}}}{{Dn{j}}}}}}2{ce{}{}}200{Dl{{A`{n}}}}1111111{D`D`}{ClCl}{EbEb}{DlDl}{{ce}d{}{}}000{{D`D`}Ed}{{ClCl}Ed}{{EbEb}Ed}{{DlDl}Ed}{{{A`{n}}{A`{n}}}Ed}{{ce}Ed{}{}}00011{{}Cl}{c{{Ah{D`}}}Bl}{c{{Ah{Cl}}}Bl}{c{{Ah{Eb}}}Bl}{c{{Ah{Dl}}}Bl}`{Efd}{ce{}{{Ej{Eh}}}}0{{D`D`}j}{{ClCl}j}{{EbEb}j}{{DlDl}j}{{ce}j{}{}}00000000000`{{}{{Bf{El}}}}000{{D`Ad}{{Ah{dAf}}}}0{{ClAd}{{Ah{dAf}}}}0{{EbAd}{{Ah{dAf}}}}0{{DlAd}{{Ah{dAf}}}}0{{EfAd}{{Ah{dAf}}}}{D`l}`{EfCl}`{EnD`}{F`D`}{{{B`{n}}}D`}{cc{}}10{FbEb}{FdEb}22{lDl}{AnDl}{FfDl}5{{{A`{n}}}}70006666{An{{Ah{D`}}}}{An{{Ah{Eb}}}}`{{D`c}dFh}{{Clc}dFh}{{Ebc}dFh}{EfD`}`{D`Eb}`{EfEb}{ce{}{}}0000{Clj}0{Efd}`{cD`{{Ab{{A`{n}}}}}}{{D`Cl}Eb}{{Eb{Bf{{Fl{Fj}}}}}Ef}{{D`D`}{{Bf{Ed}}}}{{ClCl}{{Bf{Ed}}}}{{EbEb}{{Bf{Ed}}}}{{DlDl}{{Bf{Ed}}}}``;{{D`c}AhBn}{{Clc}AhBn}{{Ebc}AhBn}{{Dlc}AhBn}`{D`l}>>>>{cl{}}000{c{{Ah{{Df{eg}}{Fn{e}}}}}{}{}Dh}{c{{Ah{e}}}{}{}}000000000{cBh{}}0000{{}G`}00{{}Gb}`{ce{}{}}0000`````````````````````{{cb}d{}}0000111111111111111111{{GdGf}d}{GhGh}{GjGj}{FdFd}{GlGl}{GdGd}{{ce}d{}{}}0000{{GhGh}Ed}{{ce}Ed{}{}}{{}Gn}{{}H`}{{GhGh}j}{{FdFd}j}{{ce}j{}{}}00000{{GhAd}{{Ah{dAf}}}}0{{HbAd}{{Ah{dAf}}}}{{GnAd}{{Ah{dAf}}}}{{H`Ad}{{Ah{dAf}}}}{{GjAd}{{Ah{dAf}}}}{{FdAd}{{Ah{dAf}}}}0{{GlAd}{{Ah{dAf}}}}0{{GfAd}{{Ah{dAf}}}}{{GdAd}{{Ah{dAf}}}}{FdCl}{cc{}}0{HdHb}1111{EbFd}22222222{{{Hh{}{{Hf{c}}}}FdcHj}{{I`{{Hn{Hl}}}}}{}}{{Ghc}dFh}{FdD`}{{Fdc}dFh}{FdEb}`{ce{}{}}00000000{c{}{}}{{{Ib{}{{Hf{c}}}}Id}jIf}{{ce}{{Ih{g}}}{}IjHl}`````{{cg}Gj{{Il{Fd}}}{{Il{Db}}}{{J`{}{{In{e}}}}}}{{cJbJd}GdJf}{{GdD`{Bb{Id}}}d}{{GhGh}{{Bf{Ed}}}}{{{Ib{}{{Hf{c}}}}}ElIf}{{{I`{Gf}}Jh}Jj}{{Gj{Jn{Jl}}}Gj}{{GdGj}Gf}{{{Ib{}{{Hf{c}}}}Id}dIf}{{cg}{{K`{ei}}}{}{}{{Ij{}{{Dn{e}}}}}{{Hl{}{{Dn{e}}}}}}====={cl{}}00{c{{Ah{e}}}{}{}}00000000000000000{{{I`{c}}Jh}Jj{}}{cBh{}}00000000{ce{}{}}00000000{{cJbJdGnH`}GdJf}``````{{cb}d{}}22{KbKb}{{ce}d{}{}}{c{{Ah{Kb}}}Bl}{{cD`KdKfKhe}{{Ah{dCb}}}Jf{{Kl{}{{Kj{Kb}}}}Kn}}{{cD`KdKhe}{{Ah{dCb}}}Jf{{Kl{}{{Kj{Kb}}}}Kn}}0{{KbAd}{{Ah{dAf}}}}{cc{}}09{{Kbc}AhBn}:==;:````````````8::{L`L`}7{{}L`}{c{{Ah{L`}}}Bl}{{L`L`}j}{{L`g}d{{Il{l}}}{{Il{D`}}}{{J`{}{{In{{Dd{ce}}}}}}}}{{L`Ad}{{Ah{dAf}}}}7{gL`{{Il{l}}}{{Il{D`}}}{{J`{}{{In{{Dd{ce}}}}}}}}8{{L`El}}{ce{}{}}{L`}{L`j}{L`{{`{{Lb{}{{In{{Dd{lD`}}}}}}}}}}{L`El}{{LdD`}{{`{{Hl{}{{Dn{{Ah{FfCb}}}}}}Lf}}}}{{D`c}{{Ah{L`Cb}}}Ld}{{cD`}{{Ah{L`Cb}}}Lh}{{L`lD`}d}{Lj{{Ah{{Dd{LlLnL`}}Cb}}}}{Lj{{Ah{{Dd{L`{Mb{M`Ff}}Md}}Cb}}}}{{L`c}AhBn}{{L`c}{{Ah{EfCb}}}Jf}{L`{{`{Mf}}}}={c{{Ah{e}}}{}{}}0{cBh{}}?```````{{cb}d{}}{ce{}{}}000``{MdMd}{{ce}d{}{}}`{{}Md}{c{{Ah{Md}}}Bl}`{{MdMd}j}{{ce}j{}{}}00`{{MdAd}{{Ah{dAf}}}}{{MhAd}{{Ah{dAf}}}}0{cc{}}{MjMh}1{CbMh}{MlMh}{CnMh}{MnMh}{N`Mh}6`??{MdNb}``{{Mdc}AhBn}{Mh{{Bf{Bd}}}}{ce{}{}}{cl{}}{c{{Ah{e}}}{}{}}000{cBh{}}033`````````````````{{cb}d{}}00{{cD`}{{Ah{{Nd{c}}Cd}}}Jf}555555{{{Nd{c}}}{{Nd{c}}}{IfJf}}{JlJl}{NfNf}{{ce}d{}{}}00{{NfNf}Ed}{{ce}Ed{}{}}{c{{Ah{Jl}}}Bl}{c{{Ah{Nf}}}Bl}{{NfNf}j}{{ce}j{}{}}00{{{Nd{c}}Ad}{{Ah{dAf}}}{NhJf}}{{JlAd}{{Ah{dAf}}}}{{NfAd}{{Ah{dAf}}}}{cc{}}00000{{cgEbi}{{Ah{MdHd}}}Jf{{Hl{}{{Dn{{Ah{NjCb}}}}}}}{{Nl{}{{Dn{e}}}}}{{Kl{}{{Kj{Jl}}}}Kn}}{{Nfc}dFh}{ce{}{}}00{{{Nd{c}}}{{O`{{B`{Nn}}}}}Jf}{{NfNf}{{Bf{Ed}}}}{{Jlc}AhBn}{{Nfc}AhBn}{{{Nd{c}}}{{Bf{Ob}}}Jf}555{c{{Ah{e}}}{}{}}00000{cBh{}}00{{}{{Ah{{O`{{B`{Nn}}}}Cb}}}}7888```````````````````````88{{HdAd}{{Ah{dAf}}}}0{MjHd}{CdHd}{MnHd}{OdHd}{cc{}}{OfHd}{OhHd}{OjHd}{MlHd}{ce{}{}}{Hd{{Bf{Bd}}}}{cl{}}??>2```````````````````````````````````2222222222222222222222222222{OlM`}{On{{Ah{{Dd{A@`{Bb{n}}}}Od}}}}{A@b{{Ah{{Dd{A@`{Bb{n}}}}Od}}}}{On{{Ah{A@`Od}}}}{A@b{{Ah{A@`Od}}}}{LjA@d}{OlA@d}{A@bA@d}{{A@fAd}{{Ah{dAf}}}}{{A@hAd}{{Ah{dAf}}}}{{A@jAd}{{Ah{dAf}}}}{{OhAd}{{Ah{dAf}}}}0{{LjAd}{{Ah{dAf}}}}{{OlAd}{{Ah{dAf}}}}{{OnAd}{{Ah{dAf}}}}{{OjAd}{{Ah{dAf}}}}0{{A@bAd}{{Ah{dAf}}}}{{OdAd}{{Ah{dAf}}}}0{{A@lAd}{{Ah{dAf}}}}{{A@`Ad}{{Ah{dAf}}}}{{LlAd}{{Ah{dAf}}}}{{A@dAd}{{Ah{dAf}}}}{cc{}}0{A@dA@j}{LjA@j}2{OlA@j}3{MlOh}44444{CdOd}5{N`Od}{OjOd}{{{Dd{A@b{Ah{A@nOd}}}}}A@l}{A@`A@l}999{OlLl}{A@dLl};{LjD`}{OnD`}{A@bD`}{ce{}{}}0000000000000{{NjAA`}A@f}{A@f{{Ah{A@hMn}}}}{A@h{{Ah{A@jOh}}}}{LjOn}{{OlD`}On}{On{{Ah{{Dd{A@bM`}}Oj}}}}{A@bA@l}{A@`Ll}{A@d{{Ah{MdMj}}}}{OnM`}{A@bM`}{Lj{{O`{{B`{Nn}}}}}}{Ol{{O`{{B`{Nn}}}}}}{On{{O`{{B`{Nn}}}}}}{Oh{{Bf{Bd}}}}{Od{{Bf{Bd}}}}?{cl{}}00{A@bAAb}{c{{Ah{e}}}{}{}}000000000000000000000000000{cBh{}}0000000000000{ce{}{}}0000000000000{{Onc}{{Ah{A@`Od}}}AAd}{{A@bc}{{Ah{A@`Od}}}AAd}{{Onc}{{Ah{A@`Od}}}AAf}{{A@bc}{{Ah{A@`Od}}}AAf}{{On{Bf{c}}e}{{Ah{A@`Od}}}AAhAAd}{{A@b{Bf{c}}e}{{Ah{A@`Od}}}AAhAAd}```````{{cb}d{}}00777777``{AAjAAj}{AAlAAl}{AAnAAn}{{ce}d{}{}}00``{{}AAn}{c{{Ah{AAj}}}Bl}{c{{Ah{AAl}}}Bl}{c{{Ah{AAn}}}Bl}{{AAjAAj}j}{{AAlAAl}j}{{AAnAAn}j}{{ce}j{}{}}00000000{{AAjAd}{{Ah{dAf}}}}{{AAlAd}{{Ah{dAf}}}}{{AAnAd}{{Ah{dAf}}}}{cc{}}00000{{AAjNf}{{Bf{AAl}}}}{AAj{{Bf{AAl}}}}`{ce{}{}}00`{D`AAj}{D`AAl}{{AAjJl}d}``{AAjAAl}`{{AAjc}AhBn}{{AAlc}AhBn}{{AAnc}AhBn}`777{c{{Ah{e}}}{}{}}00000{cBh{}}00999{{NjD`Nn}{{Ah{MdCb}}}}{{NjD`M`}{{Ah{{Dd{Ln{AB`{{A`{M`}}}}}}Cb}}}}{{NjD`}{{Ah{{Dd{M`Md}}Cb}}}}0{{{A`{M`}}c}ABbABd}```{{cb}d{}}00>>>>>>{LnLn}{ABfABf}{ABhABh}{{ce}d{}{}}00{{LnAd}{{Ah{dAf}}}}{{ABfAd}{{Ah{dAf}}}}{{ABhAd}{{Ah{dAf}}}}{cc{}}00{cLn{{J`{}{{In{D`}}}}}}111{{LnEl}{{Bf{D`}}}}{ce{}{}}00{c{{ABj{g}}}{}{}{{Lb{}{{In{e}}}}}}{LnFf}{Ln}3{Lnj}{Ln{{`{{Lb{}{{In{D`}}}}}}}}{LnEl}{Ff{{Bf{Ln}}}}{ABf{{Ah{{Bf{D`}}Cd}}}}{ABhBf}{c{{Ah{{Dd{ABfM`}}Cb}}}ABl}{Ln{{Bf{D`}}}}{{ABfM`}{{Ah{dCd}}}}<<<{c{{ABn{i}}}{}{}{}{{Lb{}{{In{{Ah{eg}}}}}}}}{Ff{{Ah{Ln}}}}{c{{Ah{e}}}{}{}}00000{cBh{}}00{ce{}{}}00`{{cb}d{}}11{AC`AC`}{{ce}d{}{}}{{}AC`}````````````{{AC`Ad}{{Ah{dAf}}}}{cc{}}06{AC`{{ACd{{Dd{AnACb}}}}}}{{}An}8::98``````````````77777{{}ACf}{{}ABb}{D`AA`}{ABb{{Bf{{Dd{M`ACf}}}}}}<<<<<<<<<<<<<<{ACfACf}{ABbABb}{AChACh}{AA`AA`}{ACjACj}>>>>>{c{{Ah{ACf}}}Bl}{c{{Ah{ABb}}}Bl}{c{{Ah{ACh}}}Bl}{c{{Ah{AA`}}}Bl};{{ACfACf}j}{{ABbABb}j}{{AChACh}j}{{AA`AA`}j}{{ACjACj}j}{{ce}j{}{}}00000000000000{{ACfAd}{{Ah{dAf}}}}{{ABbAd}{{Ah{dAf}}}}{{AClAd}{{Ah{dAf}}}}{{AChAd}{{Ah{dAf}}}}{{AA`Ad}{{Ah{dAf}}}}{{ACjAd}{{Ah{dAf}}}}{{ACnAd}{{Ah{dAf}}}}0{cc{}}000{AA`ACh}111{eABb{{Ab{{AD`{Nn}}}}}{{J`{}{{In{c}}}}}}022222{{ACfc}dFh}{{ABbc}dFh}{{ACjc}dFh}`{ce{}{}}000000{c{{ABj{g}}}{}{}{{Lb{}{{In{e}}}}}}1{ACfj}0{ABbADb}{ABbACl}{D`AA`}0{cACf{{Ab{{AD`{Nn}}}}}}{cABb{{J`{}{{In{ACf}}}}}}{{D`ABb}AA`}{AClBf}`{ACj{{A`{n}}}}{{ACfc}AhBn}{{ABbc}AhBn}{{AChc}AhBn}{{AA`c}AhBn}9{ACf{{O`{{B`{Nn}}}}}}?????{cl{}}{c{{ABn{i}}}{}{}{}{{Lb{}{{In{{Ah{eg}}}}}}}}{c{{Ah{e}}}{}{}}0000{ADd{{Ah{ACj}}}}111111111{cBh{}}000000{ce{}{}}000000`````````````````````{{cb}d{}}001111111111{ADfADf}{ADhADh}{ADjADj}{{ce}d{}{}}00{{}ADh}{c{{Ah{ADl}}}Bl}`{{ADjADj}j}{{ce}j{}{}}00{{ADfAd}{{Ah{dAf}}}}{{ADhAd}{{Ah{dAf}}}}{{ADlAd}{{Ah{dAf}}}}{{{ADn{c}}Ad}{{Ah{dAf}}}Nh}{{ADjAd}{{Ah{dAf}}}}{cc{}}0000000{{NjceJd}dLhAE`}{{cAA`{ADn{e}}}{{Ah{dCb}}}LhAE`}{ce{}{}}0000`{AEb{{Ah{AChCb}}}}{{AE`ADf}{{I`{{Hn{Hl}}}}}}`{{cD`ACfe}{{Ah{{Dd{ADjM`AEd}}Cb}}}LhAEf}{{ADlc}AhBn}444{{AA`c{ADn{e}}giADh}{{Ah{ADjCb}}}LhAE`AEhABl}{c{{Ah{e}}}{}{}}000000000{cBh{}}000077777``````````````````````````````````````````````````````````````````````````````````````````````````````{{cb}d{}}000000{AEj{{`{{Hl{}{{Dn{{Ah{{`{AAf}}Cd}}}}}}Lf}}}}{AEl{{`{{Hl{}{{Dn{{Ah{{Hn{Lb}}Cd}}}}}}Lf}}}}::::::::::::::::::::::::::{AEnAEn}{ObOb}{AF`AF`}{KhKh}{KfKf}{AFbAFb}{AFdAFd}{{ce}d{}{}}000000{{AFbAFb}Ed}{{ce}Ed{}{}}{{AElj{AFh{AFf}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}}{{JfEb}{{`{{Hl{}{{Dn{{Ah{DlCd}}}}}}Lf}}}}{AFj{{`{{Hl{}{{Dn{{Ah{{`{ABl}}Cd}}}}}}Lf}}}}{{}AF`}{{}Kh}{{}Kf}{{Jf{Bb{D`}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}}{c{{Ah{Ob}}}Bl}{c{{Ah{Kh}}}Bl}{c{{Ah{Kf}}}Bl}{c{{Ah{AFb}}}Bl}{c{{Ah{AFf}}}Bl}{c{{Ah{AFl}}}Bl}{{{AG`{}{{AFn{c}}}}D`}{{`{{Hl{}{{Dn{{Ah{AEnCd}}}}}}Lf}}}AEj}{{{AG`{}{{AFn{c}}}}D`}{{Ah{AEnCd}}}AEj}{{AEnAEn}j}{{ObOb}j}{{AF`AF`}j}{{KhKh}j}{{AFbAFb}j}{{AFdAFd}j}{{ce}j{}{}}00000000000000000{{AElD`KdKh{Hn{E`}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}}{{AEnAd}{{Ah{dAf}}}}{{ObAd}{{Ah{dAf}}}}{{AGbAd}{{Ah{dAf}}}}{{AGdAd}{{Ah{dAf}}}}{{AGfAd}{{Ah{dAf}}}}{{AF`Ad}{{Ah{dAf}}}}{{KhAd}{{Ah{dAf}}}}{{KfAd}{{Ah{dAf}}}}{{AGhAd}{{Ah{dAf}}}}{{AFbAd}{{Ah{dAf}}}}0{{AFfAd}{{Ah{dAf}}}}{{AFlAd}{{Ah{dAf}}}}{{AFdAd}{{Ah{dAf}}}}{cc{}}0000000000000000000`{{Jf{AGj{D`}}}{{`{{AGl{}{{In{AGb}}}}AGn}}}}{Jf{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}}{{Jf{AGj{D`}}}{{`{{AGl{}{{In{AGd}}}}AGn}}}}{{{Lh{}{{AH`{c}}}}D`}{{`{{Hl{}{{Dn{{Ah{{Bf{c}}Cd}}}}}}Lf}}}AFj}{{{AG`{}{{AFn{c}}}}D`}{{`{{Hl{}{{Dn{{Ah{{Bf{c}}Cd}}}}}}Lf}}}AEj}{{{AG`{}{{AFn{c}}}}D`M`}{{`{{Hl{}{{Dn{{Ah{cCd}}}}}}Lf}}}AEj}{AFjD`}{{JfFfCl}{{`{{Hl{}{{Dn{{Ah{EfCd}}}}}}Lf}}}}{{JfKdAF`Clc}{{`{{Hl{}{{Dn{{Ah{{Dd{EfM`}}Cd}}}}}}Lf}}}{{Kl{}{{Kj{AGf}}}}Kn}}{{JfcCle}{{`{{Hl{}{{Dn{{Ah{{Dd{EfM`}}Cd}}}}}}Lf}}}{AHbLfAGn}{{Kl{}{{Kj{AGf}}}}Kn}}{{JfcCle}{{`{{Hl{}{{Dn{{Ah{{Dd{EfM`}}Cd}}}}}}Lf}}}{{AGl{}{{In{{Ah{FfCd}}}}}}LfAGn}{{Kl{}{{Kj{AGf}}}}Kn}}{{{AG`{}{{AFn{c}}}}c}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}AEj}{ce{}{}}000000000000{AFjj}`{{M`j}Ob}{AFj{{`{{Hl{}{{Dn{{Ah{{`{AEh}}Cd}}}}}}Lf}}}}{AEl{{`{{Hl{}{{Dn{{Ah{{Hn{Lb}}Cd}}}}}}Lf}}}}{{AFbAFb}{{Bf{Ed}}}}`{{Obc}AhBn}{{Khc}AhBn}{{Kfc}AhBn}{{AFbc}AhBn}{{AFfc}AhBn}{{AFlc}AhBn}{{JfDl{Bf{Eb}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}}{Jf{{`{{Hl{}{{Dn{d}}}}Lf}}}}{AFjOb}{AAf{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}};{{JfEb}Ef}{AEl{{Hn{Lb}}}}{ce{}{}}000000{cl{}}{c{{Ah{e}}}{}{}}0000000000000000000000000{cBh{}}000000000000{{Jfj{AFh{AFl}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}Lf}}}}{ObM`}5555555555555{{AAfM`{Bb{A@n}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}````````````````````````````````````````````````{{cb}d{}}0000{{NnNn}}{{NnM`}}{{AHdn}{{Bf{AHd}}}}{AAbAHf}{AAbM`}<<<<<<<<<<{AHfEl}{AHfn}{AHd{{AHh{Nn}}}}{M`Nn}{AAbNn}{NnNn}{AHfAHf}{AAbAAb}{AHjAHj}{AHdAHd}{{ce}d{}{}}0000{{NnNn}Ed}{{AHfAHf}Ed}{{AHdAHd}Ed}{{ce}Ed{}{}}00{AHdM`}{{}Nn}{{NnM`}}{{NnNn}j}{{NnM`}j}{{AHfAHf}j}{{AAbAAb}j}{{AHdAHd}j}{{ce}j{}{}}00000000000{{NnAd}{{Ah{dAf}}}}0{{AHfAd}{{Ah{dAf}}}}0{{AAbAd}{{Ah{dAf}}}}{{AHjAd}{{Ah{dAf}}}}{{AHdAd}{{Ah{dAf}}}}0{cc{}}0000{M`{{Bf{AHf}}}}{nAHf}22222{M`Nn}{{Nnc}dFh}{{AHfc}dFh}{ce{}{}}0000`{AHdj}{Nnj}`{AHd{{Bf{AHd}}}}{AHdAHl}{AHdNn}{{}Nn}{{NnM`}}{{M`AHf}AAb}5{AHd{{AHh{AHd}}}}{AAbM`}7{{NnNn}{{Bf{Ed}}}}{{NnM`}{{Bf{Ed}}}}{{AHfAHf}{{Bf{Ed}}}}{{AHdAHd}{{Bf{Ed}}}}{AAbAHn}{AAb{{`{{Lb{}{{In{AHd}}}}}}}}{{AAbAHd}{{Bf{AHj}}}}{AHdM`}{AHd{{AHh{M`}}}}3{{AAbAHd}{{Bf{M`}}}}{{AAb{AD`{Nn}}n}AI`}{{AHdAHd}{{Bf{AHd}}}}{AHd{{Bf{AHd}}}}{AHdAHl}{AAbAHd}?{{NnNn}}{{NnM`}}{{AHdn}AHd}{NnM`}{ce{}{}}0000{cl{}}00{NnEl}{c{{Ah{e}}}{}{}}000000000{cBh{}}0000{AHjM`}55555``````{{cb}d{}}000{En{{B`{n}}}}77777777{EnEn}{AIbAIb}{AIdAId}{AIfAIf}{{ce}d{}{}}000{AIdM`}{{}AId}{{An{A`{n}}}{{B`{n}}}}{{En{B`{n}}}j}{{En{A`{n}}}j}{{EnEn}j}{{ce}j{}{}}00{{AIf{A`{n}}}d}{AIdEn}{AIdAIf}{AId{{Ah{dCd}}}}{{EnAd}{{Ah{dAf}}}}0{{AIbAd}{{Ah{dAf}}}}0{{AIdAd}{{Ah{dAf}}}}{{AIfAd}{{Ah{dAf}}}}{cc{}}{D`En}{{{B`{n}}}En}2220{c{{Ah{EnAIb}}}{{Ab{{A`{n}}}}}}3333{An{{Ah{En}}}}{{{A`{n}}}En}{{Enc}dFh}{ce{}{}}000{{{B`{n}}{A`{n}}}En}{{}AId}{AnAId}{{{B`{n}}}AId}{AIfM`}{{AIf{A`{n}}}{{Ah{ElCd}}}}{AIdAId}{{AIfAIh}{{Ah{M`Cd}}}}{{AIfM`}d}{EnAIj}::::{cl{}}0{c{{Ah{e}}}{}{}}0000000{cBh{}}000{{AId{A`{n}}}AId}>>>>{{AId{A`{n}}}{{Ah{ElCd}}}}``````````````````??????????`{{N`Ad}{{Ah{dAf}}}}0{{AIlAd}{{Ah{dAf}}}}0{{AInAd}{{Ah{dAf}}}}{{AJ`Ad}{{Ah{dAf}}}}{{A@nAd}{{Ah{dAf}}}}{CdN`}{cc{}}0{CdAIl}111{AInA@n}{AJ`A@n}`{{{O`{{B`{Nn}}}}AHf}{{O`{{B`{Nn}}}}}}{ce{}{}}0000````{{{AD`{M`}}}{{O`{{B`{Nn}}}}}}{N`{{Bf{Bd}}}}{AIl{{Bf{Bd}}}}`{cl{}}0{c{{Ah{e}}}{}{}}000000000{cBh{}}000066666````````````6666{{ce}{{Ah{dCd}}}AEhAAh}{{cAHf}{{Ah{AJbCd}}}ABl}{{cM`AHf}{{`{{Hl{}{{Dn{{Ah{AJbCd}}}}}}}}}AJd}{{c{O`{{B`{Nn}}}}eg}{{Ah{dN`}}}AJdAAd{AAhAEh}}{{ce{AD`{Nn}}g}{{Ah{dAIl}}}ABlAEhAEf}0{{{AJf{c}}}cAJd}{{{AJf{c}}Ad}{{Ah{dAf}}}Nh}{{{AJh{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}0{{{AJf{c}}}EnAJd}{{AJbc}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}AJd}{ce{}{}}0{{AEhAHd}{{`{{Hl{}{{Dn{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}}}}}}}}{{En{O`{{B`{Nn}}}}AAbc}{{AJf{c}}}AJd}{{{AJf{c}}}{{AJh{c}}}AJd}{{cAAbe}{{Ah{EnCd}}}AJdAAh}{{cAAbe}{{Ah{EnCd}}}AJdAEf}{{ABlM`El}{{`{{Hl{}{{Dn{{Ah{FfCd}}}}}}}}}}{AEhEn}{{AAhAHd{Dd{EnEn}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}{{AAdM`}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}{ABl{{`{{Hl{}{{Dn{{Ah{M`Cd}}}}}}}}}}{AAd{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}{AAh{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}{AEhAAb}{{{AJf{c}}}AAbAJd}{c{{Ah{e}}}{}{}}000{cBh{}}0{{c{AD`{Nn}}}{{`{{AGl{}{{In{{Ah{{AHh{Nn}}Cd}}}}}}}}}AEh}{{ce{AD`{Nn}}}{{`{{AGl{}{{In{{Ah{{AHh{Nn}}Cd}}}}}}}}}AEhABl}{ce{}{}}0{{AAdM`{A`{n}}}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}{{AAdM`Ff}{{`{{Hl{}{{Dn{{Ah{dCd}}}}}}}}}}`````{{cb}d{}}0003333333333{{{AJj{c}}}{{AJj{c}}}If}{{{AJl{c}}}{{AJl{c}}}If}{{{AJn{c}}}{{AJn{c}}}If}{{{AK`{c}}}{{AK`{c}}}If}{{ce}d{}{}}000{{cAHf}AJn{{Ab{{A`{n}}}}}}{{cAHf}AK`{{Ab{{A`{n}}}}}}{{cM`AHf}{{Ah{{AJj{e}}Cd}}}AJdAAd}{{cM`AHf}{{Ah{{AJj{e}}Cd}}}AKbAKd}{{cM`AHf}{{Ah{{AJl{e}}Cd}}}AJdAAd}{{cM`AHf}{{Ah{{AJl{e}}Cd}}}AKbAKd}````{{}{{AJj{c}}}AKf}{{}{{AJl{c}}}AKf}{{}{{AJn{c}}}AKf}{{}{{AK`{c}}}AKf}{{{AJn{c}}{AJn{c}}}jAKh}{{{AK`{c}}{AK`{c}}}jAKh}{{ce}j{}{}}00000{{{AJn{c}}}AK`{{Ab{{A`{n}}}}}}{{{AK`{c}}}AJn{{Ab{{A`{n}}}}}}{{AKjAd}{{Ah{dAf}}}}{{{AJj{c}}Ad}{{Ah{dAf}}}Nh}{{{AJl{c}}Ad}{{Ah{dAf}}}Nh}{{{AJn{c}}Ad}{{Ah{dAf}}}Nh}{{{AK`{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}00000000{{{AJj{c}}e}{{Ah{dCd}}}AAdAJd}{{{AJj{c}}e}{{Ah{dCd}}}AKdAKb}{{{AJl{c}}e}{{Ah{dCd}}}AAdAJd}{{{AJl{c}}e}{{Ah{dCd}}}AKdAKb}{ce{}{}}0000{AK`{{Bb{n}}}}{AJn{{Bb{n}}}}{{AKjAHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}}0{{{AJj{c}}AHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}AKl}{{{AJj{c}}AHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}ABl}{{{AJl{c}}AHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}AKl}{{{AJl{c}}AHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}ABl}{{{AJn{c}}AHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}{{Ab{{A`{n}}}}}}0{{{AK`{c}}AHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}{{Ab{{A`{n}}}}}}0{{{AJn{c}}g}{{AJn{e}}}{}{{Ab{{A`{n}}}}}{{Nl{c}{{Dn{e}}}}}}{{{AK`{c}}g}{{AK`{e}}}{}{{Ab{{A`{n}}}}}{{Nl{c}{{Dn{e}}}}}}{AKjEn}0{{{AJj{c}}}EnAKl}{{{AJj{c}}}EnABl}{{{AJl{c}}}EnAKl}{{{AJl{c}}}EnABl}{{{AJn{c}}}En{{Ab{{A`{n}}}}}}0{{{AK`{c}}}En{{Ab{{A`{n}}}}}}0`````{{AKjAHd{Dd{EnEn}}}{{Ah{dCd}}}}0{{{AJj{c}}AHd{Dd{EnEn}}}{{Ah{dCd}}}AAd}{{{AJj{c}}AHd{Dd{EnEn}}}{{Ah{dCd}}}AKd}{{{AJl{c}}AHd{Dd{EnEn}}}{{Ah{dCd}}}AAd}{{{AJl{c}}AHd{Dd{EnEn}}}{{Ah{dCd}}}AKd}{{{AJn{c}}AHd{Dd{EnEn}}}{{Ah{dCd}}}{{AKn{{A`{n}}}}}}0{{{AK`{c}}AHd{Dd{EnEn}}}{{Ah{dCd}}}{{AKn{{A`{n}}}}}}0{AKj{{Ah{dCd}}}}0{{{AJj{c}}}{{Ah{dCd}}}AKd}{{{AJj{c}}}{{Ah{dCd}}}AAd}{{{AJl{c}}}{{Ah{dCd}}}AKd}{{{AJl{c}}}{{Ah{dCd}}}AAd}{{{AJn{c}}}{{Ah{dCd}}}{{AKn{{A`{n}}}}}}0{{{AK`{c}}}{{Ah{dCd}}}{{AKn{{A`{n}}}}}}0{ce{}{}}000{AKjAAb}0{{{AJj{c}}}AAbABl}{{{AJj{c}}}AAbAKl}{{{AJl{c}}}AAbAKl}{{{AJl{c}}}AAbABl}{{{AJn{c}}}AAb{{Ab{{A`{n}}}}}}0{{{AK`{c}}}AAb{{Ab{{A`{n}}}}}}0`````{c{{Ah{e}}}{}{}}000000000{cBh{}}000099999```````99{{{AL`{c}}}{{A`{n}}}AKb}{{ce}{{Ah{dCd}}}ALbALd}{{cAHf}{{Ah{ALfCd}}}{AKbALh}}{{cM`AHf}{{Ah{ALfCd}}}AKb}{{c{AD`{Nn}}eg}{{Ah{dN`}}}AKbAKd{ALdALb}}{{ce{AD`{Nn}}g}{{Ah{dAIl}}}{AKlALj}ALbALl}0{AKd{{Ah{dCd}}}}{{{AL`{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}{{ALfc}{{Ah{dCd}}}AKb}{ce{}{}}{c{{ABj{g}}}{}{}{{Lb{}{{In{e}}}}}}1{{ALbAHd}{{Ah{{Bf{{Dd{EnEn}}}}Cd}}}}{{EnAAbc{AD`{Nn}}}{{AL`{c}}}AKb}{{EnAAbc{AD`{Nn}}ALn}{{AL`{c}}}AKb}{{{AL`{c}}}BfAKb}{{cAAbe}{{Ah{EnCd}}}AKbALd}{{cAAbe}{{Ah{EnCd}}}AKbALl}{{AKlM`{A`{n}}}{{Ah{ElCd}}}}{{AKlM`{A`{n}}}{{Ah{dCd}}}}{ALbEn}{{ALdAHd{Dd{EnEn}}}{{Ah{dCd}}}}{ALj{{Ah{{Bf{M`}}Cd}}}}{ALd{{Ah{dCd}}}}{c{{ABn{i}}}{}{}{}{{Lb{}{{In{{Ah{eg}}}}}}}}{ALbAAb}{{{AL`{c}}}AAbAKb}{c{{Ah{e}}}{}{}}0{cBh{}}{{c{AD`{Nn}}}{{`{{J`{}{{In{{Ah{{AHh{Nn}}Cd}}}}}}}}}ALb}{{ce{AD`{Nn}}}{{`{{J`{}{{In{{Ah{{AHh{Nn}}Cd}}}}}}}}}ALbAKl}{ce{}{}}{{AKdM`{A`{n}}}{{Ah{dCd}}}}{{AKdM`{A`{n}}}{{Ah{ElCd}}}}`````````{{cb}d{}}33333333333333{{{AM`{c}}}{{AM`{c}}}If}{{ce}d{}{}}{{}{{AM`{c}}}AKf}{{{AM`{c}}{AM`{c}}}jAKh}{{ce}j{}{}}00{{AMbAd}{{Ah{dAf}}}}{{AMdAd}{{Ah{dAf}}}}{{AMfAd}{{Ah{dAf}}}}{{{AM`{c}}Ad}{{Ah{dAf}}}Nh}{{AHnAd}{{Ah{dAf}}}}{{AI`Ad}{{Ah{dAf}}}}{{AMhAd}{{Ah{dAf}}}}{cc{}}0000000{ce{}{}}000000{c{{ABj{g}}}{}{}{{Lb{}{{In{e}}}}}}00000111111{AI`n}{{AAb{O`{{B`{Nn}}}}}AMb}{{AHdAHd}AMd}{{AHdAHd}AMf}{AAbAHn}{{AAb{AD`{Nn}}n}AI`}{{AAb{AD`{Nn}}}AMh}{AMbBf}{AMdBf}{AMfBf}{AHnBf}{AI`Bf}{AMhBf}{AM`El}?{c{{ABn{i}}}{}{}{}{{Lb{}{{In{{Ah{eg}}}}}}}}00000{AMbAAb}{AI`AAb}{AMhAAb}{c{{Ah{e}}}{}{}}0000000000000{cBh{}}000000{ce{}{}}000000{{{AM`{c}}}AM`{}}``````````````````{{cb}d{}}0000`{AMj{{Ah{{Hn{Lb}}Cd}}}}333333333333{AMlAMl}{AMnAMn}{AN`AN`}{ANbANb}{AMjAMj}{{ce}d{}{}}0000`{{AMjj{AFh{AFf}}}{{Ah{dCd}}}}{{AMjEb}{{Ah{DlCd}}}}`{{}AMl}{{}AN`}{{AMj{Bb{D`}}}{{Ah{dCd}}}}{AMj{{Ah{dCd}}}}{{AMjD`}{{Ah{AEnCd}}}}0{{AMjD`KdKh{Hn{E`}}}{{Ah{dCd}}}}{{AMlAd}{{Ah{dAf}}}}{{AMnAd}{{Ah{dAf}}}}{{AN`Ad}{{Ah{dAf}}}}{{ANbAd}{{Ah{dAf}}}}{{ANdAd}{{Ah{dAf}}}}{{AMjAd}{{Ah{dAf}}}}{cc{}}00000000009{{AMjD`}{{Ah{BfCd}}}}0{{AMjD`M`}{{Ah{Cd}}}}{{AMjFfCl}{{Ah{EfCd}}}}{{AMjKdAF`Clc}{{Ah{{Dd{EfM`}}Cd}}}{{Kl{}{{Kj{AGf}}}}Kn}}{{AMjANd}{{Ah{jCd}}}}{{AMjcCle}{{Ah{{Dd{EfM`}}Cd}}}{{AGl{}{{In{{Ah{FfCd}}}}}}AGnLf}{{Kl{}{{Kj{AGf}}}}Kn}}`?{ce{}{}}00000{c{{Ah{AMjCd}}}{{Ab{ANf}}}}```````{{KdANb}{{Ah{AMjCd}}}}{{AMjD`}Kd}0`{AMj{{Ah{{Hn{Lb}}Cd}}}}`{{AMjDl{Bf{Eb}}}{{Ah{dCd}}}}{AMjd}{AMj{{Ah{dCd}}}}3`{{AMjEb}Ef}{AMj{{Hn{Lb}}}}99999{{AMjc}{{Ah{dCd}}}{{E`{D`ANh}{{Dn{{Bf{ANh}}}}}}LfANj}}{c{{Ah{e}}}{}{}}00000000000{cBh{}}00000{{AMjAMlj}{{Ah{dCd}}}}======``{{cb}d{}}0{ANl{{Ah{{`{AAf}}Cd}}}}{ANn{{Ah{{Hn{Lb}}Cd}}}}{ce{}{}}000{ANnANn}{ANlANl}{{ce}d{}{}}0{{ANnj{AFh{AFf}}}{{Ah{dCd}}}}{{ANnEb}{{Ah{DlCd}}}}{ANl{{Ah{{`{ABl}}Cd}}}}{{}ANn}{{ANn{Bb{D`}}}{{Ah{dCd}}}}{{ANnD`}{{Ah{AEnCd}}}}0{{ANnD`KdKh{Hn{E`}}}{{Ah{dCd}}}}{{ANnAd}{{Ah{dAf}}}}{{ANlAd}{{Ah{dAf}}}}{cc{}}000{ANn{{Ah{dCd}}}}{{ANnD`}{{Ah{BfCd}}}}0{{ANnD`M`}{{Ah{ANlCd}}}}{ANlD`}{{ANnFfCl}{{Ah{EfCd}}}}{{ANnKdAF`Clc}{{Ah{{Dd{EfM`}}Cd}}}{{Kl{}{{Kj{AGf}}}}Kn}}{{ANncCle}{{Ah{{Dd{EfM`}}Cd}}}{{AGl{}{{In{{Ah{FfCd}}}}}}AGnLf}{{Kl{}{{Kj{AGf}}}}Kn}}{{ANnANl}{{Ah{dCd}}}}{ce{}{}}0{ANlj}{{}ANn}{ANl{{Ah{{`{AEh}}Cd}}}}{ANn{{Ah{{Hn{Lb}}Cd}}}}{{ANnDl{Bf{Eb}}}{{Ah{dCd}}}}{ANnd}{ANlOb}3{{ANnEb}Ef}{ANn{{Hn{Lb}}}}99{c{{Ah{e}}}{}{}}000{cBh{}}0;;```{{cb}d{}}{{}{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}{{{O`{e}}}{{AD`{c}}}{}{{AOb{}{{In{c}}}}}}{{{O`{e}}{O`{e}}}{}{AO`If}{{AOb{}{{In{c}}}}}}000{{{O`{e}}{O`{e}}}dAOd{{AOb{}{{In{c}}}}}}111101111{{{O`{e}}{O`{e}}}dAO`{{AOb{}{{In{c}}}}}}{ce{}{}}4000{{{AD`{c}}}{{A`{c}}}{}}{{{O`{c}}}{{O`{c}}}AOb}{{ce}d{}{}}{{{AD`{c}}{AD`{c}}}EdAOd}{{ce}Ed{}{}}{{{AD`{c}}c}jAOd}{{{O`{e}}}{}{}{{AOb{}{{In{c}}}}}}{{{AD`{c}}{AD`{c}}}{{O`{e}}}{AOdIf}{{AOb{}{{In{c}}}}}}{{{O`{e}}{AD`{c}}}d{AO`If}{{AOb{}{{In{c}}}}}}>{{}{{AD`{c}}}{}}{{{O`{c}}e}jAOb{{Ab{AD`}}}}{{{AD`{c}}{AD`{c}}}jAKh}{{ce}j{}{}}00000{{{O`{e}}Ad}{{Ah{dAf}}}Nh{{AOb{}{{In{c}}}}}}{{{AD`{c}}Ad}{{Ah{dAf}}}Nh}{{{AOf{c}}}{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}{j{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}{AOh{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}{{{AOj{c}}}{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}{cc{}}{{{AOl{c}}}{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}{{{AHh{c}}}{{O`{e}}}AO`{{AOb{}{{In{c}}}}}}2>={{{AD`{c}}{AD`{c}}}jAOd}{ce{}{}}{{{O`{e}}}{{AOn{e}}}{}{{AOb{}{{In{c}}}}}}{{{AD`{c}}}jAO`}3{{{AD`{c}}}j{}}44{{{O`{e}}}{{B@`{c}}}{}{{AOb{}{{In{c}}}}}}{{{AD`{c}}}{{B@`{c}}}{}}{{{AOn{e}}}{{Bf{{O`{e}}}}}{}{{AOb{}{{In{c}}}}}}{{{A`{c}}}{{Bf{{AD`{c}}}}}AOd}{{{AOn{e}}}{{O`{e}}}{}{{AOb{}{{In{c}}}}}}{{{A`{c}}}{{AD`{c}}}{}}{{{O`{e}}}{}{AO`If}{{AOb{}{{In{c}}}}}}0{{{AD`{c}}{AD`{c}}}{{Bf{Ed}}}B@b}`{c{{AD`{c}}}{}}{{{AD`{c}}c}{{Dd{{AD`{c}}{AD`{c}}}}}AOd}{{{O`{e}}{O`{e}}}{}{AO`If}{{AOb{}{{In{c}}}}}}000{{{O`{e}}{O`{e}}}dAOd{{AOb{}{{In{c}}}}}}{{{AD`{c}}{AD`{c}}}{{O`{e}}}{AOdIf}{{AOb{}{{In{c}}}}}}{{{O`{e}}{AD`{c}}}d{AO`If}{{AOb{}{{In{c}}}}}}{ce{}{}}{c{{Ah{e}}}{}{}}0{cBh{}}0432````````{{cb}d{}}3333{{{AOj{c}}}{{AOj{c}}}If}{{ce}d{}{}}1{{{AOj{c}}}{{B@d{c}}}{}}{{{AOj{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}0{{{AOf{c}}}{{AOj{c}}}{}}{{{AHh{c}}}{{AOj{c}}}{}}2{{ce}{{Bf{{AHh{El}}}}}{}{{B@f{El}}}};;{c{{ABj{g}}}{}{}{{Lb{}{{In{e}}}}}}<{AO`j}{{}AO`}{{{B@`{c}}}Bf{}}{{ceg}{{AHh{El}}}{}{{Il{{Bf{El}}}}}{{Il{{Bf{El}}}}}}:{ce{}{}}{c{{ABn{i}}}{}{}{}{{Lb{}{{In{{Ah{eg}}}}}}}}{c{{Ah{e}}}{}{}}000{cBh{}}0933``{{cb}d{}}0{B@h{{Ah{{`{AAf}}Cd}}}}{B@j{{Ah{{Hn{Lb}}Cd}}}}6666{B@jB@j}{B@hB@h}{{ce}d{}{}}0{{B@jj{AFh{AFf}}}{{Ah{dCd}}}}{{B@jEb}{{Ah{DlCd}}}}{B@h{{Ah{{`{ABl}}Cd}}}}{{}B@j}{{B@j{Bb{D`}}}{{Ah{dCd}}}}{{B@jD`}{{Ah{AEnCd}}}}0{{B@jD`KdKh{Hn{E`}}}{{Ah{dCd}}}}{{B@jAd}{{Ah{dAf}}}}{{B@hAd}{{Ah{dAf}}}}{cc{}}0{gB@j{{Il{l}}}{{Ab{{A`{n}}}}}{{J`{}{{In{{Dd{ce}}}}}}}}11{B@j{{Ah{dCd}}}}{{B@jD`}{{Ah{BfCd}}}}{{B@jD`}{{Bf{Ff}}}}1{{B@jD`M`}{{Ah{B@hCd}}}}{B@hD`}{{B@jFfCl}{{Ah{EfCd}}}}{{B@jKdAF`Clc}{{Ah{{Dd{EfM`}}Cd}}}{{Kl{}{{Kj{AGf}}}}Kn}}{{B@jcCle}{{Ah{{Dd{EfM`}}Cd}}}{{AGl{}{{In{{Ah{FfCd}}}}}}AGnLf}{{Kl{}{{Kj{AGf}}}}Kn}}{{B@jc}D`{{Ab{{A`{n}}}}}}{{B@jB@h}{{Ah{dCd}}}}{{B@je}{{Bf{D`}}}{{Ab{{A`{n}}}}}{{J`{}{{In{c}}}}}}{ce{}{}}0{B@hj}{g{{Dd{B@j{Mb{lEn}}}}}{{Il{l}}}{{Ab{{A`{n}}}}}{{J`{}{{In{{Dd{ce}}}}}}}}{B@h{{Ah{{`{AEh}}Cd}}}}{B@j{{Ah{{Hn{Lb}}Cd}}}}{{B@jDl{Bf{Eb}}}{{Ah{dCd}}}}{B@jd}{B@hOb}3{{B@jEb}Ef}{B@j{{Hn{Lb}}}}99{c{{Ah{e}}}{}{}}000{cBh{}}0;;```````````{{cb}d{}}{c{{Df{eg}}}{}{}Dh}{{{B@l{ce}}}{{B@l{ce}}}{}{}}{B@n{{A`{n}}}}{{{AB`{BA`}}}{{Fl{Fj}}}}{ce{}{}}00000{BAbBAb}{{ce}d{}{}}{{BAbBAb}Ed}{{ce}Ed{}{}}{{}{{B@l{ce}}}AKf{}}{{}B@n}{B@n}{c{{Ah{BAb}}}Bl}{ce{}{{Ej{Eh}}}}0{{BAbBAb}j}{{ce}j{}{}}00{B@n{{Ah{dCd}}}}{{{B@l{ce}}Ad}{{Ah{dAf}}}NhNh}{{B@nAd}{{Ah{dAf}}}}{{BAbAd}{{Ah{dAf}}}}{cc{}}0{{{Bb{n}}}B@n}11{ce{}{}}00{B@n{{Dd{{Bb{n}}{O`{{B`{El}}}}}}}}`{{{B@l{ce}}}j{}{}}`{{{B@l{ce}}i}{{B@l{cg}}}{}{}{}{{Nl{e}{{Dn{g}}}}}}{{{B@l{ce}}i}{{B@l{ge}}}{}{}{}{{Nl{c}{{Dn{g}}}}}}{{{B@l{ce}}}{{Bf{c}}}{}{}}{{}B@n}{{BA`Eb}d}{{FjEb}d}{{BAbBAb}{{Bf{Ed}}}}{{B@nc}{{Ah{dCd}}}AKd}`{{{B@l{FfBAd}}M`{A`{n}}}{{Ah{ElCd}}}}{{B@nM`{A`{n}}}{{Ah{ElCd}}}}{{BAbc}AhBn}{{{B@l{c{Dd{eM`}}}}}M`{{Ab{{A`{n}}}}}{}}{{{B@l{FfBAd}}}{{Ah{{Bf{M`}}Cd}}}}{B@n{{Ah{{Bf{M`}}Cd}}}}{{{AB`{BA`}}Eb}Ef}{ce{}{}}{{{O`{{B`{Nn}}}}M`}M`}{c{{Ah{{Df{eg}}{Fn{e}}}}}{}{}Dh}{c{{Ah{e}}}{}{}}0000{B@n{{Ah{{Bb{n}}}}}}1{{{B@l{ce}}k}{{Ah{{B@l{cg}}i}}}{}{}{}{}{{Nl{e}{{Dn{{Ah{gi}}}}}}}}{cBh{}}00666<``6666{{{BAf{c}}}M`{}}{{{BAh{c}}}M`{}}{{{BAf{c}}Ad}{{Ah{dAf}}}Nh}{{{BAh{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}0;;{{{BAf{c}}}{{Dd{cM`}}}{}}{{{BAh{c}}}{{Dd{cM`}}}{}}{c{{BAf{c}}}{}}{c{{BAh{c}}}{}}{{{I`{{BAh{c}}}}Jh}{{Jj{{Ah{dCd}}}}}{BAjAGn}}0{{{I`{{BAh{c}}}}Jh{A`{n}}}{{Jj{{Ah{ElCd}}}}}{BAjAGn}}{{{BAf{c}}}{{Ah{{B`{n}}Cd}}}AJd}{{{BAf{c}}El}{{Ah{FfCd}}}AJd}{c{{Ah{e}}}{}{}}000>>{ce{}{}}0`````````{{cb}d{}}00{{{BAl{c}}}d{}}222222222222{BAnd}{JdJd}{BB`BB`}{BBbBBb}{{ce}d{}{}}00{{}BAn}{{}BBb}{BAn}7{{BB`BB`}j}{{ce}j{}{}}009{{BAnAd}{{Ah{dAf}}}}{{JdAd}{{Ah{dAf}}}}{{BB`Ad}{{Ah{dAf}}}}{{BBbAd}{{Ah{dAf}}}}{{BBdAd}{{Ah{dAf}}}}0{{{BAl{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}00000000{BAnJd}{ce{}{}}00000{c{}{}}{{ce}{{Ih{g}}}{}IjHl}{BBbBAn}`{{{I`{{BAl{c}}}}Jh}Jj{}}{{cg}{{K`{ei}}}{}{}{{Ij{}{{Dn{e}}}}}{{Hl{}{{Dn{e}}}}}}{BAnd}{{}BAn}{{Jdg}{{BAl{c}}}Lf{{Hl{}{{Dn{c}}}}}{{Nl{}{{Dn{e}}}}Lf}}{{Jde}d{{Hl{}{{Dn{d}}}}}{{Nl{}{{Dn{c}}}}Lf}}``999{cl{}}{c{{Ah{e}}}{}{}}00000000000{{{I`{c}}Jh}Jj{}}{{Jdg}{{Ah{{BAl{c}}BBd}}}Lf{{Hl{}{{Dn{c}}}}}{{Nl{}{{Dn{e}}}}Lf}}{{Jde}{{Ah{dBBd}}}{{Hl{}{{Dn{d}}}}}{{Nl{}{{Dn{c}}}}Lf}}{{Jd{Hn{Nl}}}{{Ah{dBBd}}}}{cBh{}}00000{ce{}{}}00000{JdEl}````````````````{{cb}d{}}000000{{{Kl{}{{Kj{c}}}}c}{{Ah{dOf}}}{LfANj}}{{{AFh{c}}c}{{Ah{dOf}}}{LfANj}}{{{BBf{c}}c}{{Ah{dOf}}}{LfANj}}{{{BBh{ceg}}e}{{Ah{dOf}}}Kl{LfANj}{{E`{e}{{Dn{}}}}IfLfANj}}{{{BBj{ceg}}e}{{Ah{dOf}}}Kl{LfANj}{{E`{e}{{Dn{Bf}}}}IfLfANj}}{{{BBl{c}}}{{Ah{dOf}}}{LfANj}}{{{Jn{c}}}{{Ah{dOf}}}{LfANj}}999999999999999999{{{Kl{}{{Kj{c}}}}}{{AFh{c}}}{LfANj}}{{{AFh{c}}}{{AFh{c}}}{}}{{{BBf{c}}}{{BBf{c}}}{}}{{{BBh{ceg}}}{{BBh{ceg}}}Kl{LfANj}{{E`{e}{{Dn{}}}}IfLfANj}}{{{BBj{ceg}}}{{BBj{ceg}}}Kl{LfANj}{{E`{e}{{Dn{Bf}}}}IfLfANj}}{{{BBl{c}}}{{BBl{c}}}{}}{{{Jn{c}}}{{Jn{c}}}{}}{OfOf}{{ce}d{}{}}000000{{}{{BBf{c}}}{}}{{{AFh{c}}Ad}{{Ah{dAf}}}{}}{{{BBf{c}}Ad}{{Ah{dAf}}}{}}{{{BBh{ceg}}Ad}{{Ah{dAf}}}Kl{LfANj}{{E`{e}{{Dn{}}}}IfLfANj}}{{{BBj{ceg}}Ad}{{Ah{dAf}}}Kl{LfANj}{{E`{e}{{Dn{Bf}}}}IfLfANj}}{{{BBl{c}}Ad}{{Ah{dAf}}}{}}{{{Jn{c}}Ad}{{Ah{dAf}}}{}}{{OfAd}{{Ah{dAf}}}}0{{{BBn{ce}}Ad}{{Ah{dAf}}}NhNh}{{{BC`{ce}}Ad}{{Ah{dAf}}}NhNh}{cc{}}000000000000000{ce{}{}}00000000{{{BBn{ce}}}cAAd{{BCb{M`}}}}{{{BC`{ce}}}cAAd{{E`{M`El}{{Dn{{Ah{dCd}}}}}}}}{{{BCd{c}}}{{BBl{c}}}{}}{{{BCf{c}}}{{Jn{c}}}{}}{{ce}{{BBn{ce}}}AAd{{BCb{M`}}}}{{ce}{{BC`{ce}}}AAd{{E`{M`El}{{Dn{{Ah{dCd}}}}}}}}{KnM`}{{{AFh{c}}}M`{LfANj}}{{{BBf{c}}}M`{}}{{{BBh{ceg}}}M`{KnKl}{LfANj}{{E`{e}{{Dn{}}}}IfLfANj}}{{{BBj{ceg}}}M`Kn{}{}}{{{BBl{c}}}M`{}}{{{Jn{c}}}M`{}}{{{BBl{c}}{BBl{c}}}j{}}{{{Jn{c}}{Jn{c}}}j{}}{{{Kl{}{{Kj{c}}}}c}{{`{{Hl{}{{Dn{{Ah{dOf}}}}}}Lf}}}{LfANj}}{{{AFh{c}}c}{{Ah{dOf}}}{LfANj}}{{{BBf{c}}c}{{Ah{dOf}}}{LfANj}}{{{BBh{ceg}}e}{{Ah{dOf}}}Kl{LfANj}{{E`{e}{{Dn{}}}}IfLfANj}}{{{BBj{ceg}}e}{{Ah{dOf}}}Kl{LfANj}{{E`{e}{{Dn{Bf}}}}IfLfANj}}{{{BBl{c}}}{{Ah{dOf}}}{LfANj}}{{{Jn{c}}}{{Ah{dOf}}}{LfANj}}{{{BBn{ce}}M`}{{Ah{dCd}}}AAd{{BCb{M`El}}}}{{{BC`{ce}}M`}{{Ah{dCd}}}AAd{{E`{M`El}{{Dn{{Ah{dCd}}}}}}}}{{{BBn{ce}}}{{Ah{dCd}}}AAd{{BCb{M`El}}}}{{{BC`{ce}}}{{Ah{dCd}}}AAd{{E`{M`El}{{Dn{{Ah{dCd}}}}}}}}{ce{}{}}000000{cl{}}{c{{Ah{e}}}{}{}}00000000000000000{{{Kl{}{{Kj{c}}}}c}{{Ah{dOf}}}{LfANj}}=<;:98{cBh{}}00000000444444444{{{Kl{}{{Kj{c}}}}g}{{BBj{{Kl{}{{Kj{c}}}}eg}}}{LfANj}{LfANj}{{E`{e}{{Dn{{Bf{c}}}}}}LfANjIf}}{{{Kl{}{{Kj{c}}}}g}{{BBh{{Kl{}{{Kj{c}}}}eg}}}{LfANj}{LfANj}{{E`{e}{{Dn{c}}}}LfANjIf}}{{{BBn{ce}}M`{A`{n}}}{{Ah{dCd}}}AAd{{BCb{M`El}}}}{{{BC`{ce}}M`{A`{n}}}{{Ah{dCd}}}AAd{{E`{M`El}{{Dn{{Ah{dCd}}}}}}}}{{{BBn{ce}}M`Ff}{{Ah{dCd}}}AAd{{BCb{M`El}}}}{{{BC`{ce}}M`Ff}{{Ah{dCd}}}AAd{{E`{M`El}{{Dn{{Ah{dCd}}}}}}}}`````{{cb}d{}}0`{BChBCj}`{BChBCl}===={BChBCh}{BCnBCn}{{ce}d{}{}}0{BD`{{BDb{BCh}}}}{c{{BDb{BCh}}}{{Ab{ANf}}}}{BChc{}}`{BChBDd}{{BChAd}BDf}{{BCnAd}BDf}{BChBDh}{BDjBDh}{cc{}}000`{BChBDl}{ce{}{}}0{BDhBCh}`{BChBDn}`{BChBE`}33{c{{Ah{e}}}{}{}}000{cBh{}}055`{{cb}d{}}66{BCjBCj}{{ce}d{}{}}{BCj{{BDb{BEb}}}}0{{BCjBEb}{{BDb{d}}}}{{BCjBEb}{{BDb{{Bf{BEd}}}}}}{{BCjAd}BDf}>>{{BCjBEd}{{BDb{d}}}}={BCj{{BDb{{`{{AGl{}{{In{{BDb{BEb}}}}}}}}}}}}{cBCj{}}05?;;:?`````````````````````9999999{{BClc}{{BDb{BEf}}}{{Il{Ff}}}}{{BClce}{{BDb{BEf}}}{{Il{Ff}}}{{Il{Dl}}}}{{BClKdjBAbBEh}{{BDb{BEj}}}}{{BClcBAb}{{BDb{BEj}}}{AHbAGnLf}}{{BClcBAb}{{BDb{BEj}}}{{AGl{}{{In{{BEl{Ff}}}}}}LfAGn}}{ce{}{}}00000000000000000000000000000{{cg}{{BEn{i}}}{}{}{{BF`{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}000{BClBCl}{BFbBFb}{BEfBEf}{BFdBFd}{BFfBFf}{BFhBFh}{BFjBFj}{{ce}d{}{}}000000{{BClj}{{BDb{{`{{AGl{}{{In{{BDb{AFf}}}}}}}}}}}}{{BClL`BAb{Bb{Dl}}}{{BDb{{Dd{D`Dl}}}}}}{{BClD`}{{BDb{d}}}}{c{{Ah{BEh}}}Bl}{c{{Ah{BFl}}}Bl}{c{{Ah{BFn}}}Bl}{c{{Ah{BG`}}}Bl}{c{{Ah{BFh}}}Bl}{c{{Ah{BFj}}}Bl}{{BClD`Db}{{BDb{BGb}}}}0{{BClD`BFh}{{BDb{BGb}}}}`{{BFbBFb}j}{{BFfBFf}j}{{ce}j{}{}}00000`{{BClD`KdKfKh}{{BDb{BGd}}}}{BEj{{BDb{BEf}}}}{BGb{{BDb{BFd}}}}{BGd{{BDb{BFf}}}}{{BClAd}BDf}{{BEhAd}BDf}{{BFbAd}BDf}{{BEfAd}BDf}{{BFlAd}BDf}{{BFnAd}BDf}{{BG`Ad}BDf}{{BEjAd}BDf}{{BFdAd}BDf}{{BGbAd}BDf}{{BFfAd}BDf}{{BGdAd}BDf}{{BGfAd}BDf}{{BFhAd}BDf}{{BFjAd}BDf}``{cc{}}000000000000000000000{{BClD`}{{BDb{L`}}}}````{ce{}{}}00000000000000{c{}{}}001111{BGfj}{{ce}{{Ih{g}}}{}IjHl}00{BCl{{BDb{{`{{AGl{}{{In{{BDb{BFn}}}}}}}}}}}}{BCl{{BDb{{`{{AGl{}{{In{{BDb{BFl}}}}}}}}}}}}{BCl{{BDb{{`{{AGl{}{{In{{BDb{BG`}}}}}}}}}}}}{{BClD`}{{BDb{Ff}}}}`{{cg}{{BGh{ei}}}{}{}{{BF`{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}000`{gBGb{{Il{Jl}}}{{Il{Cb}}}{{AGl{}{{In{{BDb{ce}}}}}}LfAGn}}{gBGd{{Il{Kb}}}{{Il{Cb}}}{{AGl{}{{In{{BDb{ce}}}}}}LfAGn}}``{{{I`{BEj}}Jh}{{Jj{c}}}{}}{{{I`{BGb}}Jh}{{Jj{c}}}{}}{{{I`{BGd}}Jh}{{Jj{c}}}{}}{{{I`{BEj}}Jh}{{Jj{{Bf{c}}}}}{}}{{{I`{BGb}}Jh}{{Jj{{Bf{c}}}}}{}}{{{I`{BGd}}Jh}{{Jj{{Bf{c}}}}}{}}{{{I`{BGf}}Jh}{{Jj{{Bf{c}}}}}{}}{{{I`{BGf}}JhBGj}{{Jj{{BEl{d}}}}}}{{cg}{{K`{ei}}}{}{}{{Ij{}{{Dn{e}}}}}{{Hl{}{{Dn{e}}}}}}00{{c{BGn{BGlegi}}}{{BH`{kegi}}}{}BHb{BHdBHf}BHh{}}000{{c{BGn{BGlegi}}BHj}{{BH`{kegi}}}{}BHb{BHdBHf}BHh{}}000{{BClD`}{{BDb{BGf}}}}{{BClD`M`{Bf{El}}}{{BDb{BGf}}}}{{BClD`M`{Bf{El}}}{{BDb{Ff}}}}{{BClD`}{{BDb{Ff}}}}{BGf{{BDb{Ff}}}}{cBCl{}}0{{BEhc}AhBn}{{BFlc}AhBn}{{BFnc}AhBn}{{BG`c}AhBn}{{BFhc}AhBn}{{BFjc}AhBn}{{BClD`ClBj}{{BDb{Cf}}}}{BGfM`}```{BGf{{Dd{El{Bf{El}}}}}}`{{BClD`}{{BDb{BFb}}}}```{ce{}{}}000000``{c{{Ah{e}}}{}{}}00000000000000000000000000000{{{I`{c}}Jh}Jj{}}00{{{I`{c}}Jh}{{Jj{{Bf{Ah}}}}}{}}000{cBh{}}00000000000000{{BClj}{{BDb{{`{{AGl{}{{In{{BDb{AFl}}}}}}}}}}}}555555555555555{{cg}{{BHl{i}}}{}{}{{BF`{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}000````````````````````````````````````{{cb}d{}}000000{BHnBEb}88888888888888888888{{cg}{{BEn{i}}}{}{}{{BF`{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}0{BDdBDd}{BDjBDj}{BHnBHn}{BI`BI`}{BIbBIb}{BIdBId}{BIfBIf}{{ce}d{}{}}000000{BDj{{BDb{d}}}}{{BHnc}{{BDb{Ff}}}{{Il{BDh}}}}{BHnD`}{BHnM`}{{BHnc}{{BDb{BGf}}}{{Il{BDh}}}}{BDd{{BDb{BDj}}}}{{BDjBEbc}{{BDb{El}}}{{Il{Ff}}}}{c{{Ah{BHn}}}Bl}{c{{Ah{BIh}}}Bl}{c{{Ah{BI`}}}Bl}{c{{Ah{BIb}}}Bl}{{BDdBIj}{{BDb{d}}}}{{BDjBDj}j}{{BHnBHn}j}{{BIbBIb}j}{{BIdBId}j}{{BIfBIf}j}{{ce}j{}{}}00000000000000{{BDjBHncKh}{{BDb{BIl}}}{{Ab{ANf}}}}{BIn{{BDb{BId}}}}{BIl{{BDb{BIf}}}}`{{BDdAd}BDf}{{BDjAd}BDf}{{BHnAd}BDf}{{BIhAd}BDf}{{BI`Ad}BDf}0{{BIbAd}BDf}{{BIbAd}{{Ah{dAf}}}}{{BInAd}BDf}{{BIdAd}BDf}{{BIlAd}BDf}{{BIfAd}BDf}{cc{}}0{BJ`BHn}{BJbBHn}222{BJdBIb}333333333333{An{{Ah{BI`c}}}{}}{BDj{{BDb{BJf}}}}{{BDjBEbcj}{{BDb{{Bf{BHn}}}}}{{Ab{{A`{n}}}}}}{{BDjc}{{BDb{{`{{AGl{}{{In{{BDb{BHn}}}}}}}}}}}{{Il{BJh}}}}{{BDjc}{{BDb{{Bf{BHn}}}}}{{Il{BJh}}}}{BDj{{BDb{{Bf{{Bb{BJj}}}}}}}}`{BDjBIj}{BHnBJl}{{BDdBJn}{{BDb{BDj}}}}{{BDdBJn}{{BDb{{Dd{BDj{`{{AGl{}{{In{{BDb{BIb}}}}}}}}}}}}}}{{BDjBEbFfcj}{{BDb{BIn}}}{{Ab{ANf}}}}{{BDdBK`}{{BDb{BDj}}}}{ce{}{}}00000000000{BHn{{A`{n}}}}`{BDj{{BDb{d}}}}{BDd{{BDb{{`{{AGl{}{{In{{BDb{{Dd{BIjBKb}}}}}}}}}}}}}}{{cg}{{BGh{ei}}}{}{}{{BF`{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}0{{BDdBIj}{{BDb{{Bf{BDj}}}}}}``{{{I`{BIn}}Jh}{{Jj{{Bf{c}}}}}{}}{{{I`{BIl}}Jh}{{Jj{{Bf{c}}}}}{}}{{c{BGn{BGlegi}}}{{BH`{kegi}}}{}BHb{BHdBHf}BHh{}}0{{c{BGn{BGlegi}}BHj}{{BH`{kegi}}}{}BHb{BHdBHf}BHh{}}0{cBDd{}}0`{{BHnc}AhBn}{{BIhc}AhBn}{{BI`c}AhBn}{{BIbc}AhBn}{{BDjBEbce}{{BDb{D`}}}{{Il{Ff}}}{{Il{Ff}}}}{{BDjBJf}{{BDb{d}}}}{{BDjBEbcD`M`}{{BDb{d}}}{{Il{Ff}}}}{{BDjBI`Bj}{{BDb{BJn}}}}`{{BDj{Bb{Db}}}{{BDb{d}}}}`{BDj{{BDb{BKd}}}}{BDj{{BDb{{`{{AGl{}{{In{{BDb{BIb}}}}}}}}}}}}{BHnM`}{ce{}{}}000000{cl{}}0{c{{Ah{e}}}{}{}}0000000000000000000{{{I`{c}}Jh}{{Jj{{Bf{Ah}}}}}{}}0{cBh{}}0000000004444444444{{cg}{{BHl{i}}}{}{}{{BF`{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}0``````````````````````{{cb}d{}}0``666666{BDlBDl}{BKfBKf}{{ce}d{}{}}0{{}BKf}{c{{Ah{BKh}}}Bl}{{BDlAd}BDf}{{BKfAd}BDf}{{BKhAd}BDf}{cc{}}0000???{cBDl{}}0{{BKhc}AhBn}{{BDlcg}{{BDb{{Dd{{`{{BKn{BKj}{{BKl{Cb}}}}}}{`{{AGl{}{{In{{BDb{BL`}}}}}}}}}}}}}{{Il{BLb}}}{{Il{BLd}}}{{J`{}{{In{e}}}}}}{{BDlBLbBKf}{{BDb{{Dd{{`{{BKn{BKj}{{BKl{Cb}}}}}}{`{{AGl{}{{In{{BDb{BL`}}}}}}}}}}}}}}``{ce{}{}}0`{c{{Ah{e}}}{}{}}00000{cBh{}}00222``{{cb}d{}}{{BDnDb}{{BDb{d}}}}`4444{BDnBDn}{{ce}d{}{}}{{BDnBLd}{{BDb{{Bf{BLf}}}}}}{BDn{{BDb{{`{{AGl{}{{In{{BDb{BLf}}}}}}}}}}}}{c{{Ah{BLh}}}Bl}{{BDnAd}BDf}{{BLhAd}BDf}{cc{}}00{BDn{{BDb{{Bf{BLj}}}}}}==`{BDn{{BDb{Db}}}}{BDn{{BDb{BLd}}}}{cBDn{}}0`{{BLhc}AhBn}{{BDnj}{{BDb{d}}}}{BDn{{BDb{{Mb{l`}}}}}}{BDn{{BDb{BLh}}}}{ce{}{}}{c{{Ah{e}}}{}{}}000{cBh{}}0`22``{{cb}d{}}3333{BE`BE`}{{ce}d{}{}}{{BE`Dl}{{BDb{d}}}}{c{{Ah{BLl}}}Bl}{{BE`Ad}BDf}{{BLlAd}BDf}`{cc{}}00`::{BE`{{BDb{{`{{AGl{}{{In{{BDb{BLl}}}}}}}}}}}}0`{cBE`{}}0{{BLlc}AhBn}=<<<<;;==```````````````````````````````````````````````````:::::::::::::::::::`{c{{Df{eg}}}{}{}Dh}00{BJl{{Dd{{B`{n}}{B`{n}}{A`{n}}}}}}{BJlFf}{BLn{{B`{n}}}}{BM`{{B`{n}}}}{BIj{{B`{n}}}}{BEb{{B`{n}}}}{BJl{{A`{n}}}}2{BIj{{A`{n}}}}2{BEb{{A`{n}}}}{BJ`BEb}{BJlBEb}{BJbBEb}{ce{}{}}0000000000000000000000000000000000000000000000000{{{BMb{c}}}BK`{{BMh{}{{BMd{BMf}}}}BMj}}`{BJnBJn}{BMlBMl}{BMnBMn}{BN`BN`}{BNbBNb}{BKbBKb}{BK`BK`}{BJbBJb}{BNdBNd}{BJ`BJ`}{BJlBJl}{BNfBNf}{BNhBNh}{BEdBEd}{BLnBLn}{BNjBNj}{BM`BM`}{BIjBIj}{BEbBEb}{{ce}d{}{}}000000000000000000{BMfj}{{BJbBJb}Ed}{{BJ`BJ`}Ed}{{BJlBJl}Ed}{{BNfBNf}Ed}{{BLnBLn}Ed}{{BM`BM`}Ed}{{BIjBIj}Ed}{{BEbBEb}Ed}{{ce}Ed{}{}}0000000{BJbD`}{BNfD`}{BJbM`}{BNfM`}{{{A`{n}}}{{Ah{BNhCb}}}}{{}BNb}{{}BJl}{{}BNh}{{}BLn}{{}BM`}{{}BIj}{{}BEb}{{{BMb{c}}eBEd}{{Ah{ElBNl}}}{{BMh{}{{BMd{BMf}}}}BMj}{{Ab{{A`{n}}}}}}{BJb}{BJ`}{c{{Ah{BJn}}}Bl}{c{{Ah{BN`}}}Bl}{c{{Ah{BKb}}}Bl}{c{{Ah{BK`}}}Bl}{c{{Ah{BJb}}}Bl}{c{{Ah{BNd}}}Bl}{c{{Ah{BJ`}}}Bl}{c{{Ah{BJl}}}Bl}{c{{Ah{BNf}}}Bl}{c{{Ah{BEd}}}Bl}{c{{Ah{BLn}}}Bl}{c{{Ah{BNj}}}Bl}{c{{Ah{BM`}}}Bl}{c{{Ah{BIj}}}Bl}{c{{Ah{BEb}}}Bl}{M`BNf}{{}BNf}{{BJ`{Bb{n}}}d}{{BNh{Bf{El}}}{{Ah{{Bb{n}}Cb}}}}{ce{}{{Ej{Eh}}}}00000`{BJbBJ`}{{BN`BN`}j}{{BJbBJb}j}{{BNdBNd}j}{{BJ`BJ`}j}{{BJlBJl}j}{{BNfBNf}j}{{BNhBNh}j}{{BLnBLn}j}{{BM`BM`}j}{{BIjBIj}j}{{BEbBEb}j}{{ce}j{}{}}00000000000000000000000000000000{{BJnAd}{{Ah{dAf}}}}0{{BMlAd}{{Ah{dAf}}}}{{BMnAd}{{Ah{dAf}}}}{{BN`Ad}{{Ah{dAf}}}}{{BNbAd}{{Ah{dAf}}}}{{BKbAd}{{Ah{dAf}}}}0{{BK`Ad}{{Ah{dAf}}}}{{BNnAd}{{Ah{dAf}}}}0{{BMfAd}{{Ah{dAf}}}}{{{BMb{c}}Ad}{{Ah{dAf}}}Nh}{{BO`Ad}{{Ah{dAf}}}}0{{BNlAd}{{Ah{dAf}}}}0{{BObAd}{{Ah{dAf}}}}0{{BJbAd}{{Ah{dAf}}}}{{BNdAd}{{Ah{dAf}}}}{{BJ`Ad}{{Ah{dAf}}}}{{BJlAd}{{Ah{dAf}}}}{{BNfAd}{{Ah{dAf}}}}{{BNhAd}{{Ah{dAf}}}}{{BEdAd}{{Ah{dAf}}}}0{{BLnAd}{{Ah{dAf}}}}0{{BNjAd}{{Ah{dAf}}}}0{{BM`Ad}{{Ah{dAf}}}}0{{BIjAd}{{Ah{dAf}}}}0{{BEbAd}{{Ah{dAf}}}}0{BIjl}{BEbl}{cc{}}000000{BIjBK`}{BNjBK`}2222{BO`BNl}{BObBNl}44444{BJbBJ`}555{BOdBEd}6{BEdBLn}7{BOfBLn}18{BOdBNj}9{BOfBM`}{BNjBM`}0{BNjBIj}{BM`BIj}0{{{B`{n}}}BIj}0>>{BLnBEb}{BEdBEb}1{{{B`{n}}}BEb}0{{{A`{n}}}{{Ah{BJnCj}}}}{{{B`{n}}}BEd}{{{B`{n}}}{{Ah{BLnBOh}}}}{{{B`{n}}}BNj}{{{B`{n}}}{{Ah{BM`BOh}}}}{{BJ`BNjBEd}BJb}{{BJ`BNjBEd}BNd}{cBNh{{J`{}{{In{{Dd{BEbM`}}}}}}}}{cBNh{{J`{}{{In{{Dd{M`BEb}}}}}}}}{{BNjBEdcBNf}BJb{{Ab{{A`{n}}}}}}{{n{B`{n}}}{{Ah{BK`Cb}}}}{cc{}}000000000000000000{An{{Ah{BJn}}}}{An{{Ah{BEd}}}}{An{{Ah{BLn}}}}{An{{Ah{BNj}}}}{An{{Ah{BM`}}}}{An{{Ah{BIj}}}}{An{{Ah{BEb}}}}{{BNhBEb}{{Bf{M`}}}}{{BNhBNh}{{Bf{{BOj{M`}}}}}}{{BLnc}dFh}{{BM`c}dFh}{{BIjc}dFh}{{BEbc}dFh}{{{BMb{c}}eBEdg}{{Ah{D`BNl}}}{{BMh{}{{BMd{BMf}}}}BMj}{{Ab{{A`{n}}}}}{{Ab{{A`{n}}}}}}`{BK`BIj}{{{BMb{c}}}BIj{{BMh{}{{BMd{BMf}}}}BMj}}{BJ`BJl}{BEdBEb}{BNjBIj}{{{BMb{c}}eBEdD`M`}{{Ah{ElBNl}}}{{BMh{}{{BMd{BMf}}}}BMj}{{Ab{{A`{n}}}}}}{{BNhBEbM`}d}{{{BMb{c}}BJb{B`{n}}BN`}{{Ah{ElBNl}}}{{BMh{}{{BMd{BMf}}}}BMj}}{ce{}{}}000000000000000000000000{BIj{{Ah{BM`BOh}}}}{BEb{{Ah{BLnBOh}}}}{BNfj}{BNhj}{BNh{{BOl{BEbM`}}}}{BJb{{A`{n}}}}{BJ`{{A`{n}}}}{BJl{{A`{n}}}}{BJlFf}{BK`BKb}{BNhEl}{{BK`BK`}{{Ah{jBNn}}}}{{BNhBNh}d}{{BMfBK`}{{Ah{jBNn}}}}`{BJ`BIj}{BJlBIj}`{{BK`{Bb{Db}}}BJn}{BK`BMf}{{BOnc}{{BMb{c}}}{{BMh{}{{BMd{BMf}}}}BMj}}{{BJlBNf}BJ`}{{ceg}BJl{{Il{BIj}}}{{Il{BEb}}}{{Ab{{A`{n}}}}}}{{D`M`M`}BNf}{cBEd{C@`C@b}}{cBNj{C@`C@b}}{{D`M`}BNf}{BJlBJ`}```{{BJbBJb}{{Bf{Ed}}}}{{BJ`BJ`}{{Bf{Ed}}}}{{BJlBJl}{{Bf{Ed}}}}{{BNfBNf}{{Bf{Ed}}}}{{BLnBLn}{{Bf{Ed}}}}{{BM`BM`}{{Bf{Ed}}}}{{BIjBIj}{{Bf{Ed}}}}{{BEbBEb}{{Bf{Ed}}}}{BEdBLn}{BNjBM`}{{BIjc}{{Ah{BM`BOh}}}C@d}{{BEbc}{{Ah{BLnBOh}}}C@d}{BK`{{Dd{n{B`{n}}}}}}{BJ`BNf}{{{BMb{c}}eBEd}BJl{{BMh{}{{BMd{BMf}}}}BMj}{{Ab{{A`{n}}}}}}{BK`{{Ah{BNjBO`}}}}{{{BMb{c}}}{{Ah{BNjBO`}}}{{BMh{}{{BMd{BMf}}}}BMj}}{{BJnc}AhBn}{{BN`c}AhBn}{{BKbc}AhBn}{{BK`c}AhBn}{{BJbc}AhBn}{{BNdc}AhBn}{{BJ`c}AhBn}{{BJlc}AhBn}{{BNfc}AhBn}{{BEdc}AhBn}{{BLnc}AhBn}{{BNjc}AhBn}{{BM`c}AhBn}{{BIjc}AhBn}{{BEbc}AhBn}{{BMf{AB`{E`}}}j}{{BJ`BNjBEd}BJb}{{BEd{A`{n}}}C@f}{{BNj{A`{n}}}C@f}{BJbBNd}{BNl{{Bf{Bd}}}}`{{BMf{BCf{BMl}}}d}{BMfEl}`{{{BMb{c}}}{{Ah{{C@h{BJb}}Cb}}}{{BMh{}{{BMd{BMf}}}}BMj}}{{{BMb{c}}{C@h{BJb}}{B`{n}}BNb}{{Ah{{Bf{{C@h{BJb}}}}Cb}}}{{BMh{}{{BMd{BMf}}}}BMj}}{BJbM`}{BNfM`}{BJl{{Dd{{B`{n}}{B`{n}}Ff}}}}{BJn{{Bb{n}}}}{BEd{{B`{n}}}}{BNj{{B`{n}}}}{BIj{{B`{n}}}}{BEb{{B`{n}}}}{ce{}{}}000000000000000000{cl{}}00000000000{BJ`{{Bb{n}}}}{c{{Ah{{Df{eg}}{Fn{e}}}}}{}{}Dh}00{c{{Ah{e}}}{}{}}00000{n{{Ah{BKb{C@j{BKb}}}}}}111111111111111{BEb{{Ah{BLn}}}}22{BIj{{Ah{BM`}}}}33{{}{{Ah{BKb{C@j{BKb}}}}}}4444444444444444444444444{cBh{}}000000000000000000000000{{BMf{BCf{BMl}}}d}{BJb{{Ah{dBOb}}}}{BJ`{{Ah{dBOb}}}}{{BJbc}{{Ah{dBOh}}}C@d}{{BNdBJ`BM`BLn}{{Ah{dBOh}}}}{{BEd{A`{n}}C@f}{{Ah{dBOh}}}}{{BLn{A`{n}}C@f}{{Ah{dBOh}}}}{{BNj{A`{n}}C@f}{{Ah{dBOh}}}}{{BM`{A`{n}}C@f}{{Ah{dBOh}}}}{ce{}{}}000000000000000000000000````````````{{cb}d{}}0111111{BKdBKd}{C@lC@l}{{ce}d{}{}}0{{C@lBIj}{{Ah{jCb}}}}{C@l{{Ah{C@nCb}}}}{{}BKd}{{}CA`}{{C@lBEb}{{Ah{dCb}}}}{{C@lBIjBEbFf}{{Ah{ElCb}}}}{c{{Ah{BKd}}}Bl}{C@ld}{{C@lBIj}{{Ah{dCb}}}}{{BKdBKd}j}{{ce}j{}{}}00{{C@lBEb}{{Ah{{Bf{BEd}}Cb}}}}{{C@lBIj}{{Ah{BNjCb}}}}{C@l{{Ah{dCb}}}}{{BKdAd}{{Ah{dAf}}}}{{C@lAd}{{Ah{dAf}}}}{{CA`Ad}{{Ah{dAf}}}}{cc{}}0000{{C@lBIj}{{Ah{BJfCb}}}}{{C@lBIjBEbFfj}{{Ah{{Bf{BJb}}Cb}}}}{{C@lBIjBJh{BCf{{Ah{BJbCb}}}}}{{Ah{dCb}}}}{{C@lBIj}{{Ah{BKdCb}}}}{{C@lBIj}{{Ah{{Bf{{Bb{{B`{n}}}}}}Cb}}}}`{{C@lBIjBNh}{{Ah{{Bf{{BOj{M`}}}}Cb}}}}{{C@lBEd}{{Ah{BEbCb}}}}{{C@lBK`}{{Ah{BIjCb}}}}{{C@lBIjBEbFfD`M`}{{Ah{dCb}}}}{{C@lBIjBJb{B`{n}}BN`}{{Ah{dCb}}}}{ce{}{}}00{{C@l{BCf{{Ah{BEbCb}}}}}{{Ah{dCb}}}}{{C@l{BCf{{Ah{{Dd{BIjBKb}}Cb}}}}}{{Ah{dCb}}}}{{C@lBIjCA`}{{Ah{dCb}}}}{{C@lBIj{B`{n}}}{{Ah{dCb}}}}{{BKdc}AhBn}{{C@lBIjBJf}{{Ah{dCb}}}}{{C@lBIjj}{{Ah{dCb}}}}{C@l{{Ah{CAbCb}}}}{{CAb{Bf{{AB`{E`}}}}l}C@l}{{C@lBIj{BCf{BMl}}}{{Ah{dCb}}}}{{CA`{BCf{BMl}}}CA`}``{CA`CA`}``{{C@lBIj}{{Ah{{C@h{BJb}}Cb}}}}{{C@lBIj{C@h{BJb}}{B`{n}}BNb}{{Ah{{Dd{{Bf{{C@h{BJb}}}}BNb}}Cb}}}}>>{c{{Ah{e}}}{}{}}00000{cBh{}}006{ce{}{}}00``````````````````````{{cb}d{}}000011111111111111{CAdCAd}{CAfCAf}{CAhCAh}{CAjCAj}{BJdBJd}{{ce}d{}{}}0000`{c{{Ah{CAd}}}Bl}{c{{Ah{CAf}}}Bl}{c{{Ah{CAh}}}Bl}{c{{Ah{BJd}}}Bl}`{{{Ah{AEnCd}}}BN`}{{CAdCAd}j}{{CAfCAf}j}{{CAhCAh}j}{{BJdBJd}j}{{ce}j{}{}}00000000000`{{CAdAd}{{Ah{dAf}}}}{{CAfAd}{{Ah{dAf}}}}{{CAhAd}{{Ah{dAf}}}}{{CAjAd}{{Ah{dAf}}}}{{BJdAd}{{Ah{dAf}}}}0{{CAlAd}{{Ah{dAf}}}}{{CAnAd}{{Ah{dAf}}}}{cc{}}0000{CB`BJd}1111111{CAnBEb}{{CAjCBb}{{Ah{dCb}}}}{ce{}{}}000000{{CAjBIjj}{{Ah{dCb}}}}{{CAlC@l}{{Ah{BEbCb}}}}{{CAlC@l}{{Ah{CAnCb}}}}``{{CAlBEb}{{Ah{dCb}}}}`{{CAdc}AhBn}{{CAfc}AhBn}{{CAhc}AhBn}{{BJdc}AhBn}{{CAnBEbC@l}{{Ah{dCb}}}}{CAj{{Ah{dCb}}}}{{JbCBdCAbcGdCAl}{{Ah{CAjCb}}}Jf}{{CAjBIj{Bb{Db}}}{{Ah{dCb}}}}`{{CAjBIj}{{Ah{{`{{AGl{}{{In{{Ah{BJdCb}}}}}}AGn}}Cb}}}}`====={cl{}}{c{{Ah{e}}}{}{}}0000000000000{cBh{}}000000{ce{}{}}000000``````{{cb}d{}}`11{CBfCBf}{{ce}d{}{}}{{}CBf}``````````{{CBfAd}{{Ah{dAf}}}}{cc{}}06{CBf{{ACd{{Dd{AnACb}}}}}}{{}An}````````8::98`````````````````````7777888888888888{CBhCBh}{CBjCBj}{CBlCBl}{CBnCBn}9999`{{JbC@lBIjDb}{{Ah{CBjCC`}}}}{{}CBl}{c{{Ah{CBn}}}Bl}{{CBnCBn}j}{{ce}j{}{}}00{{CBhAd}{{Ah{dAf}}}}{{CBjAd}{{Ah{dAf}}}}{{CBlAd}{{Ah{dAf}}}}{{CCbAd}{{Ah{dAf}}}}0{{CC`Ad}{{Ah{dAf}}}}0{{CBnAd}{{Ah{dAf}}}}{cc{}}000000000{{C@lCBbe}{{Ah{CBjCCb}}}{{Hl{}{{Dn{CBh}}}}}{{E`{BIjId}{{Dn{c}}}}}}{ce{}{}}00000{CCb{{Bf{BIj}}}}``{CCb{{Bf{Id}}}}``{{CBnc}AhBn}{CCb{{Bf{Bd}}}}{CC`{{Bf{Bd}}}}`5555{cl{}}0{c{{Ah{e}}}{}{}}00000000000{cBh{}}00000888888`````````````````````````````````````````````````{{cb}d{}}0000000000{{}{{CCf{CCd}}}}{CAbCAb}0{{{CCf{c}}BEb}{{CCf{c}}}{}}{BEb{{CCf{CCd}}}}{{C@dBEb}{{Ah{BLnBOh}}}}>>>>>>>>>>>>>>>>>>>>>>>>>>>>{{{CCf{CCh}}}BJh}{{{CCf{CCd}}}BJh}{CCjCCj}{CClCCl}{BJfBJf}{CCnCCn}{CCdCCd}{CChCCh}{BJhBJh}{CD`CD`}{CDbCDb}{CDdCDd}{CDfCDf}{{ce}d{}{}}0000000000{{CAbBIj}d}{CAb{{Ah{C@nCb}}}}{{}CCj}{{}BJf}{{}{{CCf{c}}}AKf}{{}CCd}{{}CCh}{{}CD`}{{}CDb}{{}CDd}{{}CDf}{{CAbBEb}{{Ah{dCb}}}}{c{{Ah{BJf}}}Bl}{c{{Ah{CCn}}}Bl}{c{{Ah{CCd}}}Bl}{c{{Ah{CCh}}}Bl}{c{{Ah{BJh}}}Bl}{c{{Ah{CD`}}}Bl}{c{{Ah{CDb}}}Bl}{c{{Ah{CDd}}}Bl}{c{{Ah{CDf}}}Bl}{{BJfBJf}j}{{CCnCCn}j}{{CDdCDd}j}{{CDfCDf}j}{{ce}j{}{}}00000000000{CAb{{Ah{dCb}}}}{{CAbAd}{{Ah{dAf}}}}{{CCjAd}{{Ah{dAf}}}}{{CDhAd}{{Ah{dAf}}}}0{{CClAd}{{Ah{dAf}}}}{{BJfAd}{{Ah{dAf}}}}{{CCnAd}{{Ah{dAf}}}}0{{{CCf{c}}Ad}{{Ah{dAf}}}Nh}{{CCdAd}{{Ah{dAf}}}}{{CChAd}{{Ah{dAf}}}}{{BJhAd}{{Ah{dAf}}}}{{CD`Ad}{{Ah{dAf}}}}{{CDbAd}{{Ah{dAf}}}}{{CDdAd}{{Ah{dAf}}}}{{CDfAd}{{Ah{dAf}}}}{cc{}}0{CbCDh}1111111{{{CCf{CCd}}}BJh}2{{{CCf{CCh}}}BJh}333{cCDd{{Ab{{A`{n}}}}}}{BEbCDf}555555555555{An{{Ah{CCn}}}}`{{CAbBEb}{{Ah{{Bf{BEd}}Cb}}}}{{CDjBIj}{{Ah{BJfCb}}}}{{CAbBIj}{{Ah{BJfCb}}}}0{{CAbBIjBEbcj}{{Ah{{Bf{BJb}}Cb}}}{{Ab{{A`{n}}}}}}{{CAbBIj}{{Ah{CDlCb}}}}{{CAbBIjc}{{Ah{CDnCb}}}{{Il{BJh}}}}{{CAbBIj}{{Ah{{Bf{{ACd{{B`{n}}}}}}Cb}}}}{{CAbBIjBNh}{{Ah{{Bf{{BOj{M`}}}}Cb}}}}{{CAbBEd}{{Ah{dCb}}}}{{CAbBK`}{{Ah{CClCb}}}}{{{CCf{c}}}{{CCf{c}}}{}}{ce{}{}}0000000000000{{{CCf{c}}e}{{CCf{c}}}{}{{Ab{{A`{n}}}}}}{c{{CCf{CCd}}}{{Ab{{A`{n}}}}}}10{{{CCf{c}}M`}{{CCf{c}}}{}}{BJh{{Bf{M`}}}}{CAb{{Ah{{`{{Lb{}{{In{{Ah{BEdCb}}}}}}}}Cb}}}}{CAb{{Ah{{`{{Lb{}{{In{{Ah{{Dd{BIjBKb}}Cb}}}}}}}}Cb}}}}{{CAbBIj}{{Ah{BMfCDh}}}}{{BJfBJ`}j}{{CCnc}j{{Ab{{A`{n}}}}}}{{CDd{A`{n}}}j}{{CDfBEb}j}{{}CAb}{{C@dBIj}{{Ah{BM`BOh}}}}{{CAbc}{{Ah{BEdCb}}}{C@`C@b}}{{CAbBNj}{{Ah{BMbCb}}}}<{BJhM`}{{CAbBIj}{{Ah{BMbCDh}}}}{c{{Ah{CAbCb}}}{{Ab{ANf}}}}{{C@d{B`{n}}}{{Ah{BOfBOh}}}}{{CAb{B`{n}}}{{Ah{BOfBOh}}}}{{CCj{B`{n}}}{{Ah{BOfBOh}}}}{{CAbBIj{B`{n}}}{{Ah{dCb}}}}{{CAbBIj}{{Ah{dCb}}}}{{BJfc}AhBn}{{CCnc}AhBn}{{CCdc}AhBn}{{CChc}AhBn}{{BJhc}AhBn}{{CD`c}AhBn}{{CDbc}AhBn}{{CDdc}AhBn}{{CDfc}AhBn}{{CAbBIjBJf}{{Ah{dCb}}}}{{}{{CCf{CCh}}}}{CAb{{Ah{CE`Cb}}}}0{{{CCf{CCd}}CDbCD`}{{CCf{CCd}}}}{{{CCf{CCh}}CD`}{{CCf{CCh}}}}{CDh{{Bf{Bd}}}}{ce{}{}}0000000000{cl{}}0{c{{Ah{e}}}{}{}}000000000000000000000000000{cBh{}}000000000000033333333333333``````{{{CEb{{Dd{{B`{n}}{B`{n}}{A`{n}}}}{Dd{M`{B`{n}}{B`{n}}M`{B`{n}}}}}}}{{Ah{C@nCb}}}}4444444444{{CEdAd}{{Ah{dAf}}}}{{BOnAd}{{Ah{dAf}}}}{{CEfAd}{{Ah{dAf}}}}{{C@nAd}{{Ah{dAf}}}}{{CDlAd}{{Ah{dAf}}}}{cc{}}0000{{BOnBIj}{{Ah{BJfCb}}}};;;;;{c{{ABj{g}}}{}{}{{Lb{}{{In{e}}}}}}000<<<<{CEdBf}{CEfBf}{C@nBf}{CDlBf}{{BOn{B`{n}}}{{Ah{BOfBOh}}}}{c{{ABn{i}}}{}{}{}{{Lb{}{{In{{Ah{eg}}}}}}}}000{c{{Ah{e}}}{}{}}000000000{cBh{}}0000{ce{}{}}0000`````````````````````````````````````````````````````````````````````````{{cb}d{}}00`111111111111{CEhCEh}{CEjCEj}{CElCEl}{{ce}d{}{}}00{{CEhCEh}Ed}{{CEjCEj}Ed}{{ce}Ed{}{}}0``{c{{Ah{CEn}}}Bl}{c{{Ah{BKj}}}Bl}{c{{Ah{BL`}}}Bl}{c{{Ah{CEh}}}Bl}{c{{Ah{CEj}}}Bl}{{CEhCEh}j}{{CEjCEj}j}{{ce}j{}{}}00000{{CEnAd}{{Ah{dAf}}}}{{BKjAd}{{Ah{dAf}}}}{{BL`Ad}{{Ah{dAf}}}}{{CEhAd}{{Ah{dAf}}}}{{CEjAd}{{Ah{dAf}}}}{{CElAd}{{Ah{dAf}}}}{cc{}}000{{{CF`{Id}}}CEh}11111{ce{}{}}00000{CBdCEl}{{CEhCEh}{{Bf{Ed}}}}{{CEjCEj}{{Bf{Ed}}}}`{{CEnc}AhBn}{{BKjc}AhBn}{{BL`c}AhBn}{{CEhc}AhBn}{{CEjc}AhBn}{{CElBLbCEn{Hn{AGl}}}{{`{{AGl{}{{In{{Ah{BL`C`}}}}}}AGn}}}}`999{c{{Ah{e}}}{}{}}00000000000{cBh{}}00000;;;;;;`{{cb}d{}}````````<<{CFbCFb}{{ce}d{}{}}{{}CFb}{{CFbAd}{{Ah{dAf}}}}{cc{}}0{ce{}{}}{CFb{{ACd{{Dd{AnACb}}}}}}````````{{}An}``2::92```````````8{{{AB`{CBd}}CBb}{{CFd{{BDb{d}}}}}}3333{{CBdBLbFf}{{Ah{dCb}}}}0{CBdCBd}9{{CBdAd}{{Ah{dAf}}}}{{CFfAd}{{Ah{dAf}}}}88{{JbCFhCFj}CBd}9{{CBdNj}{{Ah{dCb}}}}99{c{}{}}{{CBdBLb{Bb{Id}}}{{Ah{CFfCb}}}}{{ce}{{Ih{g}}}{}IjHl}{CBdEl}{{{I`{CFf}}Jh}Jj}{{CBdBLb}{{Ah{dCb}}}}{{cg}{{K`{ei}}}{}{}{{Ij{}{{Dn{e}}}}}{{Hl{}{{Dn{e}}}}}}{{CBdBLb}{{Ah{{CFl{{CF`{Id}}}}Cb}}}}{CBd{{`{{AGl{}{{In{{Ah{{Dd{BLb{CF`{Id}}}}CFn}}}}}}}}}}{ce{}{}}{c{{Ah{e}}}{}{}}000{{{I`{c}}Jh}Jj{}}{cBh{}}0{{CBd{A`{CG`}}}{{Ah{dCb}}}}`44`44{{}{{CGb{c}}}{}}{{{CGb{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}{{{CGb{c}}CGdc}d{}}83{{cALnEl}{{Ah{{Bf{Ff}}Cb}}}{AHbAGn}}{{cALnEl}{{Ah{{Bf{{CGf{Id}}}}Cb}}}{AHbAGn}}997:{{{CGb{c}}}{{`{{Lb{}{{In{{Dd{CGdc}}}}}}}}}{}}{{cALn{CGf{Id}}El}{{Ah{dCb}}}{BAjAGn}}``````````````````````````````````{{cb}d{}}0000000000{c{{Df{eg}}}{}{}Dh}{BLb{{B`{n}}}}{CGh{{A`{n}}}}{BLb{{A`{n}}}}2{ce{}{}}00000000000000000000000`{CGjCGj}{CGlCGl}{BLbBLb}{{{CGf{c}}}{{CGf{c}}}If}{{{CGn{c}}}{{CGn{c}}}If}{{{CH`{c}}}{{CH`{c}}}If}{{{CHb{c}}}{{CHb{c}}}If}{{{CF`{c}}}{{CF`{c}}}If}{{{CHd{c}}}{{CHd{c}}}If}{CFhCFh}{CGhCGh}{{ce}d{}{}}0000000000{{CGjCGj}Ed}{{CGlCGl}Ed}{{BLbBLb}Ed}{{{CF`{c}}{CF`{c}}}EdAOd}{{ce}Ed{}{}}000{{}CFh}{{}CGh}{c{{Ah{CGj}}}Bl}{c{{Ah{CGl}}}Bl}{c{{Ah{BLb}}}Bl}{c{{Ah{{CGf{e}}}}}BlCHf}{c{{Ah{{CF`{e}}}}}BlCHf}{c{{Ah{CGh}}}Bl}{ce{}{{Ej{Eh}}}}0{{CGjCGj}j}{{CGlCGl}j}{{BLbBLb}j}{{{CF`{c}}{CF`{c}}}jAKh}{{CGhCGh}j}{{ce}j{}{}}00000000000000{{CGjAd}{{Ah{dAf}}}}{{CGlAd}{{Ah{dAf}}}}{{BLbAd}{{Ah{dAf}}}}0{{{CGf{c}}Ad}{{Ah{dAf}}}Nh}{{{CGn{c}}Ad}{{Ah{dAf}}}Nh}{{{CH`{c}}Ad}{{Ah{dAf}}}Nh}{{{CHb{c}}Ad}{{Ah{dAf}}}Nh}{{{CHh{ce}}Ad}{{Ah{dAf}}}NhNh}{{{CF`{c}}Ad}{{Ah{dAf}}}Nh}{{{CHd{c}}Ad}{{Ah{dAf}}}{}}{{CFhAd}{{Ah{dAf}}}}{{CGhAd}{{Ah{dAf}}}}{cc{}}0{cBLb{{Il{{B`{n}}}}}}111111{{{CHj{c}}}{{CF`{c}}}{}}{{{CHl{c}}}{{CF`{c}}}{}}3333{{{B`{n}}}BLb}44444444444{An{{Ah{BLb}}}}{{{CHh{ce}}{CH`{c}}CGd}{{`{{Lb{}{{In{{CHb{c}}}}}}}}}CHn{ABdIf}}{{{CHh{ce}}BLb}jCHn{ABdIf}}{{BLbc}dFh}{CGhFf}{ce{}{}}00000000000{CGjj}{{{CGf{c}}}CI`{}}{{{CHh{ce}}}ElCHn{ABdIf}}`{{{CHh{ce}}}cCHn{ABdIf}}`{{cCGhCFhe}{{CHh{ce}}}CHn{ABdIf}}{cCGh{{Il{Ff}}}}{{CGjCGj}{{Bf{Ed}}}}{{CGlCGl}{{Bf{Ed}}}}{{BLbBLb}{{Bf{Ed}}}}{{{CF`{c}}{CF`{c}}}{{Bf{Ed}}}B@b}{{CIbe}dIf{{Il{{CId{c}}}}}}{{CIbg}dIf{{Il{{CId{c}}}}}{{J`{}{{In{e}}}}}}{{CGjc}AhBn}{{CGlc}AhBn}{{BLbc}AhBn}{{{CGf{c}}e}AhCIfBn}{{{CF`{c}}e}AhCIfBn}{{CGhc}AhBn}{{{CGf{c}}}{{Ah{ElCn}}}CIf}`{{{CHh{ce}}BLb}{{Bf{{CIh{ce}}}}}CHn{ABdIf}}{{{CHh{ce}}}{{`{{Lb{}{{In{{Dd{BLb{CIh{ce}}}}}}}}}}}CHn{ABdIf}}{ce{}{}}0000000000{cl{}}`{{{CHh{ce}}}{{`{{Lb{}{{In{BLb}}}}}}}CHn{ABdIf}}{c{{Ah{{Df{eg}}{Fn{e}}}}}{}{}Dh}{c{{Ah{e}}}{}{}}00000000000000000000000{cBh{}}00000000000`555555555555```````````````````55{{CI`Ad}{{Ah{dAf}}}}{cc{}}73327```````````````````````````````{{cb}d{}}000888888888888`{{{CIj{c}}}{{CIj{c}}}If}{{{CIl{c}}}{{CIl{c}}}If}{{{CIn{c}}}{{CIn{c}}}If}{CJ`CJ`}{{ce}d{}{}}000{{}CJ`}{c{{Ah{{CIl{e}}}}}BlCHf}{{{CIh{ce}}}c{}{}}{{{CId{c}}{CId{c}}}jAKh}{{{CIl{c}}{CIl{c}}}jAKh}{{{CIn{c}}{CIn{c}}}jAKh}{{ce}j{}{}}00000000{{{CIj{c}}Ad}{{Ah{dAf}}}Nh}{{{CId{c}}Ad}{{Ah{dAf}}}Nh}{{{CIl{c}}Ad}{{Ah{dAf}}}Nh}{{{CIn{c}}Ad}{{Ah{dAf}}}Nh}{{{CIh{ce}}Ad}{{Ah{dAf}}}NhNh}{{CJ`Ad}{{Ah{dAf}}}}{cc{}}{{{CJb{c}}}{{CId{c}}}{}}1{{{CJd{c}}}{{CId{c}}}{}}2{CJf{{CIl{c}}}{}}{{{CJh{c}}}{{CIl{c}}}{}}{CJj{{CIn{c}}}{}}{{{CJl{c}}}{{CIn{c}}}{}}6666666{{{CIh{ce}}}CJnCHnABd}{{{CIh{ce}}{CIj{c}}CGd}{{`{{Lb{}{{In{{CId{c}}}}}}}}}CHnABd}{{{CIh{ce}}}jCHnABd}{ce{}{}}00000{{{CIl{c}}}CI`{}}````{{c{Bf{CGh}}CFh}{{CIh{cCK`}}}CHn}{{CIbe}dIf{{Il{{CId{c}}}}}}{{CIbg}dIf{{Il{{CId{c}}}}}{{J`{}{{In{e}}}}}}{{{CIl{c}}e}AhCIfBn}{{{CIh{ce}}}CJ`CHnABd}6666{c{{Ah{e}}}{}{}}00000000000{cBh{}}00000888888{{c{Bf{CGh}}CFhe}{{CIh{ce}}}CHnABd}``9999{{{CKb{ce}}c}j{CKdCKfIf}{}}{{}{{CKh{c}}}{}}{{}{{CKb{ce}}}{}{}}{{{CKh{c}}CGd}{{`{{Lb{}{{In{{Dd{CGdc}}}}}}}}}{}}{{{CKb{ce}}CGd}El{CKdCKfIf}{}}{{{CKb{ce}}c}{{Bf{CGd}}}{CKdCKfIf}{}}{{{CKh{c}}}{{Bf{{Dd{CGd{Bb{c}}}}}}}{}}{{{CKh{c}}Ad}{{Ah{dAf}}}Nh}{{{CKb{ce}}Ad}{{Ah{dAf}}}NhNh}{cc{}}0{{{CKb{ce}}c}{{Bf{e}}}{CKdCKfIf}{}}{{{CKh{c}}CGdc}d{}}{{{CKb{ce}}ceCGd}d{CKdCKfIf}{}}{ce{}{}}0{{{CKb{ce}}}j{CKdCKfIf}{}}{{{CKh{c}}}{{`{{Lb{}{{In{{Dd{CGdc}}}}}}}}}{}}{{{CKb{ce}}}{{`{{Lb{}{{In{{Dd{ceCGd}}}}}}}}}{CKdCKfIf}{}}{{{CKb{ce}}}El{CKdCKfIf}{}}{{}{{CKh{c}}}{}}{{{CKh{c}}CGdc}dAKh}9{c{{Ah{e}}}{}{}}000{cBh{}}088`{{cb}d{}}99{CKjCKj}{{ce}d{}{}}{{}CKj}``````````{{CKjAd}BDf}{cc{}}0{{}{{BDb{{Mb{l`}}}}}}?{CKj{{ACd{{Dd{AnACb}}}}}}{{}An}{ce{}{}};{{}{{BEl{d}}}}<;1````:::{JbCKl}{{JbDb}{{Ah{dCb}}}}{{JbDbAn}{{Ah{dCb}}}}{{DbBj}d}{{CFjBj}d}666666{Jb{{Dd{BD`{Bf{BD`}}}}}}{{}CKn}{DbDb}{CFjCFj}{JbJb}{{ce}d{}{}}00{{JbADd{A`{n}}}{{Ah{dCb}}}}{{DbDb}Ed}{{CFjCFj}Ed}{{ce}Ed{}{}}0{{JbId}{{Ah{CL`Cb}}}}{{JbDb{A`{n}}}{{Ah{NjCb}}}}{{JbId{A`{n}}}{{Ah{NjCb}}}}{{JbId}{{Bf{BLf}}}}{Jb{{Bb{BLf}}}}{{}CFj}`{c{{Ah{Db}}}Bl}{c{{Ah{CFj}}}Bl}`{Db{{`{{Lb{}{{In{BD`}}}}}}}}{JbCLb}``{Jb{{Bf{CLd}}}}`{Jb{{CLj{{CLh{CLf}}}}}}`{{DbDb}j}{{CFjCFj}j}{{ce}j{}{}}00000{{DbAd}{{Ah{dAf}}}}{{CFjAd}{{Ah{dAf}}}}{{JbAd}{{Ah{dAf}}}}{cc{}}{CLlDb}{IdDb}{BLfDb}{{{Dd{Id{Bf{BLj}}{A`{BD`}}}}}Db}4{CLlCFj}5{{Id{Bf{BLj}}{Bb{BD`}}}Db}666{Jb{{Bf{BLj}}}}`{ce{}{}}00{CFjj}````{Jbd}8{Jb{{Ah{DbCb}}}}{JbId}`{{DbDb}{{Bf{Ed}}}}{{CFjCFj}{{Bf{Ed}}}}```{Db{{Bf{BLj}}}}`{JbCLn}{{Dbc}AhBn}{{CFjc}AhBn}{{Jb{Bb{{Bb{n}}}}}{{Ah{dCb}}}}````;;;{c{{Ah{e}}}{}{}}00000{cBh{}}00`==={Jb{{`{{AGl{}{{In{BLj}}}}}}}}{{Dbc}Db{{J`{}{{In{BD`}}}}}}{{DbBLj}Db}`````````{{}CM`}00{{}CMb}``110`{{CMdId}d}{ce{}{}}0{{cg}{{BEn{i}}}{}{}{{BF`{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}{{CMdAd}{{Ah{dAf}}}}{cc{}}33{{CMdId}j}0{{cg}{{BGh{ei}}}{}{}{{BF`{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}{JbCMd}{CMd{{Dd{Id{Ah{NjCb}}}}}}{CMdEl}0{{{I`{CMd}}Jh}{{Jj{Bf}}}}{{CMdId{A`{n}}}d};{{c{BGn{BGlegi}}}{{BH`{kegi}}}{}BHb{BHdBHf}BHh{}}{{c{BGn{BGlegi}}BHj}{{BH`{kegi}}}{}BHb{BHdBHf}BHh{}}{c{{Ah{e}}}{}{}}0{cBh{}}>{{cg}{{BHl{i}}}{}{}{{BF`{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}```{{cb}d{}}{{CMfc}dCLd}`{ce{}{}}000{CMhCMh}{{ce}d{}{}}{{}CMf}`0{{CMhAd}{{Ah{dAf}}}}{{CMfAd}{{Ah{dAf}}}}{cc{}}{CMjCMh}1{cCMf{{J`{}{{In{{Hn{CLd}}}}}}}}2{{{Bb{{Hn{CLd}}}}}CMf}99````{{CLdCFj}d}{{CMfCFj}d}{{CLdJbId}{{Bf{{I`{{Hn{AGl}}}}}}}}{{CMfJbId}{{Bf{{I`{{Hn{AGl}}}}}}}}={c{{Ah{e}}}{}{}}000{cBh{}}0??```??{{CMlAd}{{Ah{dAf}}}}:{ce{}{}}{{}CMl}{lCMl}{{CMlJbId}{{Bf{{I`{{Hn{AGl}}}}}}}}6653`33{{CMnAd}{{Ah{dAf}}}}?4{Id{{Ah{CMnCb}}}}{{CMnCFj}d}{{CMnJbId}{{Bf{{I`{{Hn{AGl}}}}}}}}::97```````{{cb}d{}}00888888{CN`CN`}{CNbCNb}{CNdCNd}{{ce}d{}{}}00{CN`d}{{CN`Ad}{{Ah{dAf}}}}{{CNbAd}{{Ah{dAf}}}}{{CNdAd}{{Ah{dAf}}}}{cc{}}00000{ce{}{}}00{CLnCN`}{{}CNb}{{CLnCNf}CN`}{CNfCNb}{CNfCNd}{{CN`CFj}d}{{CNdCNh}{{Ah{dCb}}}}{{CNbJbId}{{Bf{{I`{{Hn{AGl}}}}}}}}{{CNdId}{{Ah{CNhCb}}}}999{c{{Ah{e}}}{}{}}00000{cBh{}}005;;;{{CLnCNfAHlCNj}CN`}``{{}{{CLj{{CLh{CLf}}}}}}{{CNlIdAn}{{`{{Hl{}{{Dn{{Ah{DbCb}}}}}}}}}}{{CNlIdAn{A`{M`}}}{{`{{Hl{}{{Dn{{Ah{DbCb}}}}}}}}}}{{CNlAn}{{`{{Hl{}{{Dn{{Ah{DbCb}}}}}}}}}}{{CNlAn{A`{M`}}}{{`{{Hl{}{{Dn{{Ah{DbCb}}}}}}}}}}{{CNlcCNj}{{`{{Hl{}{{Dn{{Ah{{`{{Lb{}{{In{CNn}}}}}}Cb}}}}}}}}}CO`}{{CNlcCNj}{{`{{Hl{}{{Dn{{Ah{{`{{Lb{}{{In{CNn}}}}}}Cb}}}}}}}}}{CO`If}}{{CNlcCNj{A`{M`}}}{{`{{Hl{}{{Dn{{Ah{{`{{Lb{}{{In{CNn}}}}}}Cb}}}}}}}}}{CO`If}}020`7``````{{cb}d{}}{CObAn}{{{COd{c}}}{{Mb{c{Bb{l}}}}}{COfCOhCKdAOd}}{ce{}{}}00000{CLlCLl}{{ce}d{}{}}{{CObCOb}Ed}{{ce}Ed{}{}}`{{CObCOb}j}{{CLlCLl}j}{{ce}j{}{}}00000{{CObAd}{{Ah{dAf}}}}0{{CLlAd}{{Ah{dAf}}}}{{{COd{c}}Ad}{{Ah{dAf}}}Nh}{cc{}}{{{COd{COb}}}CLl}011{CLl{{COd{COb}}}}{{{A`{COj}}}{{Ah{CLlCb}}}}{{{A`{COj}}}{{Ah{{COd{c}}Cb}}}{COfCOhCKdAOd}}{{Ide}{{COd{c}}}{COfCOhCKdAOd}{{Lb{}{{In{{Dd{cl}}}}}}}}{CNh{{Ah{CLlCb}}}}{CNh{{Ah{{COd{c}}Cb}}}{COfCOhCKdAOd}}7{An{{Ah{COb}}}}{{Idc}{{Ah{{COd{e}}Cb}}}{{Lb{}{{In{l}}}}}{COfCOhCKdAOd}}{An{{Ah{IdCb}}}}{{CObc}dFh}{ce{}{}}00{{{CLj{{CLh{CLf}}}}IdAn}{{Ah{{COd{c}}Cb}}}{COfCOhCKdAOd}}{{{CLj{{CLh{CLf}}}}An}{{Ah{{COd{c}}Cb}}}{COfCOhCKdAOd}}{{Id{Bf{CNf}}{AGj{BD`}}}CLl}{{{COd{c}}}Id{COfCOhCKdAOd}}`{{CObCOb}{{Bf{Ed}}}}`{{CLlAnAHl}{{Ah{{`{{Lb{}{{In{COj}}}}}}Cb}}}}{{{COd{c}}AnAHl}{{Ah{{`{{Lb{}{{In{COj}}}}}}Cb}}}{COfCOhCKdAOd}}7{{CLlCLnAHl}{{Ah{CNhCb}}}}{{{COd{c}}CLnAHl}{{Ah{CNhCb}}}{COfCOhCKdAOd}}{cl{}}{Idl}?{c{{Ah{e}}}{}{}}00000{cBh{}}00===````````````````````````````````````````````````````{{cb}d{}}0000000000{NjCOl}{NjCOn}```{{D@`j}D@`}{CBb{{Ah{{Bb{n}}Cb}}}}{{CKn{Bb{{Bb{n}}}}}CKn}{{CKnD@b}{{Ah{JbCb}}}}{ce{}{}}0000000000000000000000000000000000000{{cg}{{BEn{i}}}{}{}{{BF`{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}0{NjNj}{MjMj}{MlMl}{ADdADd}{MnMn}{D@dD@d}{D@fD@f}{BLfBLf}{D@hD@h}{CG`CG`}{D@jD@j}{{ce}d{}{}}0000000000{{NjADd{A`{n}}}d}{Nj{{Bf{Mn}}}}{NjMn}{{ADdADd}Ed}{{CG`CG`}Ed}{{D@jD@j}Ed}{{ce}Ed{}{}}00{{CKnAHl}CKn}{{D@`c}D@`{D@lLfANj}}{Nj{{Hn{D@n}}}}`{{D@`El}D@`}{{D@`{Bf{El}}}D@`}1{NjEl}{{}D@`}{{}ADd}{{}CKn}{{}DA`}{c{{Ah{D@d}}}Bl}{c{{Ah{D@f}}}Bl}{c{{Ah{BLf}}}Bl}{c{{Ah{D@h}}}Bl}`{{CKn{Hn{CLd}}}CKn}{{CKn{CLj{{CLh{CLf}}}}}CKn}{AEbd}{DAbd}{{D@`j}D@`}{{MjMj}j}{{MlMl}j}{{ADdADd}j}{{MnMn}j}{{D@dD@d}j}{{D@fD@f}j}{{BLfBLf}j}{{D@hD@h}j}{{CG`CG`}j}{{D@jD@j}j}{{ce}j{}{}}00000000000000000000000000000{{Nj{A`{n}}{A`{n}}{A`{n}}}{{Ah{dDAd}}}}{DAb{{Ah{dMl}}}}{{NjAd}{{Ah{dAf}}}}{{AEbAd}{{Ah{dAf}}}}{{MjAd}{{Ah{dAf}}}}0{{DAbAd}{{Ah{dAf}}}}{{MlAd}{{Ah{dAf}}}}0{{D@`Ad}{{Ah{dAf}}}}{{ADdAd}{{Ah{dAf}}}}0{{CKnAd}{{Ah{dAf}}}}{{MnAd}{{Ah{dAf}}}}0{{CKlAd}{{Ah{dAf}}}}{{CBbAd}{{Ah{dAf}}}}{{D@dAd}{{Ah{dAf}}}}0{{D@fAd}{{Ah{dAf}}}}{{BLfAd}{{Ah{dAf}}}}{{D@hAd}{{Ah{dAf}}}}0{{CL`Ad}{{Ah{dAf}}}}{{CLbAd}{{Ah{dAf}}}}{{CG`Ad}{{Ah{dAf}}}}{{D@jAd}{{Ah{dAf}}}}0{cc{}}00{DAfMj}{MnMj}2{MnMl}33{AHlADd}{ACjADd}5{DAhADd}{nADd}{D@bADd}88{DAjMn}{DAlMn}:::::::::::::::::::::6{M`{{Ah{ADdDAn}}}}{M`ADd}{Nj{{Ah{IdCb}}}}{Nj{{Bf{{Hn{ACb}}}}}}{CBb{{Ah{{Hn{ACb}}Mn}}}}{BLfj}{{ADdc}dFh}{{CG`c}dFh}{{D@jc}dFh}{AEbDAh}{DAbDAh}``{{D@`D@b}D@`}{{D@`CNj}D@`}{{CKnj}CKn}{ce{}{}}000000000000000000{CBb{{Ah{{Dd{NjDB`}}CBb}}}}{c{}{}}0{ADdM`}33{AEbj}{{ce}{{Ih{g}}}{}IjHl}0{{D@`{Bf{CNj}}}D@`}7{{CKn{Bb{Db}}}CKn}`{BLf{{Bf{CNj}}}}``0```{Nj{{Bf{CNn}}}}{CBb{{Bf{CNn}}}}{{CLn{Bb{{Bb{n}}}}{AB`{D@`}}j}{{Ah{DBbCb}}}}{{D@`ADd}D@`}0{Nj{{Bf{El}}}}{{D@`{Bf{DBd}}}D@`}{{D@`AHl}D@`}{{cg}{{BGh{ei}}}{}{}{{BF`{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}0{{D@`D@b}D@`}{{D@`{Bf{DBf}}}D@`}``{NjDBh}{NjDBj}5{{ADdADd}{{Bf{Ed}}}}{{CG`CG`}{{Bf{Ed}}}}{{D@jD@j}{{Bf{Ed}}}}{Nj{{Bf{{Hn{ACb}}}}}}9{{{I`{CKl}}Jh}Jj}{{{I`{CBb}}Jh}Jj}{{{I`{DAb}}Jh}{{Jj{{Ah{dCd}}}}}}{{{I`{CL`}}Jh}{{Jj{Bf}}}}{{{I`{CLb}}Jh}{{Jj{Bf}}}}{{{I`{AEb}}JhBGj}{{Jj{{Ah{dCd}}}}}}3{{{I`{DAb}}Jh{A`{n}}}{{Jj{{Ah{ElCd}}}}}}{DAb{{Ah{DBlDBn}}}}{CKnCKn}{{CKnCNf}CKn}{{cg}{{K`{ei}}}{}{}{{Ij{}{{Dn{e}}}}}{{Hl{}{{Dn{e}}}}}}0{{c{BGn{BGlegi}}}{{BH`{kegi}}}{}BHb{BHdBHf}BHh{}}0{{c{BGn{BGlegi}}BHj}{{BH`{kegi}}}{}BHb{BHdBHf}BHh{}}0{{AEb{A`{n}}}{{Ah{{Bf{El}}Mj}}}}{{AEbElj}{{Ah{{Bf{DC`}}Mj}}}}{{AEb{A`{Ff}}}{{Ah{{Bf{El}}Mj}}}}{NjDCb}{{AEb{A`{n}}}{{Ah{dDCd}}}}{{AEbEl}{{Ah{{Bb{n}}DCf}}}}{{D@`ADd}D@`}{{CKnDA`}CKn}``{NjBD`}{CBbBD`}{{DAbADd}{{Ah{dDBn}}}}{NjCNj}{{CKnCLn}CKn}{{NjFf}{{Ah{dDCh}}}}{{D@`M`}D@`}{{D@dc}AhBn}{{D@fc}AhBn}{{BLfc}AhBn}{{D@hc}AhBn}{{NjADd}d}0{{DAbDBl}{{Ah{dDBn}}}}1{Mj{{Bf{Bd}}}}{Ml{{Bf{Bd}}}}{Mn{{Bf{Bd}}}}{NjEl}{NjDCj}{{AEbADd}{{Ah{dDBn}}}}{DAb{{Ah{ADdDCl}}}}{{D@`ADd}D@`}{{D@`DCn}D@`}{ce{}{}}0000000000{cl{}}000000{{CKnD@`}CKn}{c{{Ah{e}}}{}{}}000000{El{{Ah{ADdDAn}}}}{M`{{Ah{ADdDAn}}}}{DD`{{Ah{ADdDAn}}}}3333333333333333333333333333333{{{I`{c}}Jh}Jj{}}`{cBh{}}0000000000000000008888888888888888888{NjDDb}{{DAb{A`{n}}}{{Ah{ElMl}}}}{{DAb{A`{n}}}{{Ah{dMl}}}}{{DAb{A`{Ff}}}{{Ah{dMl}}}}{{DAbFf}{{Ah{dMl}}}}{{DAb{A`{Ff}}}{{Ah{DDdMl}}}}{{cg}{{BHl{i}}}{}{}{{BF`{}{{In{e}}}}}{{AGl{}{{In{e}}}}}}0``````````{{cb}d{}}00{c{{Df{eg}}}{}{}Dh}{Id{{B`{n}}}}{Id{{A`{n}}}}{ce{}{}}000000000{C@fC@f}{IdId}{CLnCLn}{{ce}d{}{}}00{{IdId}Ed}{{ce}Ed{}{}}{c{{Ah{C@f}}}Bl}{c{{Ah{Id}}}Bl}{c{{Ah{CLn}}}Bl}{ce{}{{Ej{Eh}}}}0{{C@fC@f}j}{{IdId}j}{{ce}j{}{}}00000{{C@fAd}{{Ah{dAf}}}}000{{DDfAd}{{Ah{dAf}}}}{{IdAd}{{Ah{dAf}}}}0{{DDhAd}{{Ah{dAf}}}}0{{CLnAd}{{Ah{dAf}}}}0{Idl}{DDjC@f}{{{B`{n}}}C@f}0{cc{}}00{BOfId}{AjDDh}{BOhDDh}33{BOdCLn}{{{B`{n}}}CLn}6{{{B`{n}}}{{Ah{IdBOh}}}}1{{{B`{n}}{B`{n}}}C@f}777{{{A`{n}}}{{Ah{C@fBOh}}}}{An{{Ah{C@fBOh}}}}{An{{Ah{Id}}}}{An{{Ah{CLn}}}}{{}CLn}{cCLn{C@`C@b}}{{Idc}dFh}{ce{}{}}0000{{DDfDDl}{{Ah{dCb}}}}{{IdId}{{Bf{Ed}}}}{CLnId}{C@f{{B`{n}}}}0{{DDfDDl}d}{{C@fc}AhBn}{{Idc}AhBn}{{CLnc}AhBn}{{CLnId}DDf}{{CLn{A`{n}}}C@f}{DDh{{Bf{Bd}}}}77{CLn{{B`{n}}}}{CLn{{Ah{{DDn{l}}DE`}}}}==={cl{}}000{C@f{{Bb{n}}}}{c{{Ah{{Df{eg}}{Fn{e}}}}}{}{}Dh}{DEb{{Ah{C@fDE`}}}}0{c{{Ah{e}}}{}{}}{{{A`{n}}}{{Ah{C@fBOh}}}}1{{{A`{n}}}{{Ah{Id}}}}2{{{B`{n}}}{{Ah{Id}}}}3{{{A`{n}}}{{Ah{CLn}}}}4{c{{Ah{CLnCb}}}{{Ab{{A`{n}}}}}}55555{cBh{}}0000{{Id{A`{n}}C@f}{{Ah{dBOh}}}}{ce{}{}}0000````{{cb}d{}}`````````11``{DEdDEd}{{ce}d{}{}}{{}DEd}``````{{DEdAd}{{Ah{dAf}}}}{cc{}}0`6{DEd{{ACd{{Dd{AnACb}}}}}}```{{}An}````````````````````````````````````````````````8{c{{Ah{e}}}{}{}}0;```````9`````8{DEfDEh}{{DEjD@b}{{Ah{DEfCb}}}}{c{{Ah{DEfCb}}}{{Il{BD`}}}}1{D@b{{Ah{DEfCb}}}}000===={DEjDEj};{DEf}{DEfd}{{DEjDEj}j}{{ce}j{}{}}00{{DEjAd}{{Ah{dAf}}}}{{DEfAd}{{Ah{dAf}}}}>{CNnDEj}?{DElDEf}{cc{}}{ce{}{}}0`{DEjCNn}`1{c{{Ah{e}}}{}{}}000{cBh{}}0233`{{cb}d{}}44{DEnDEn}{{ce}d{}{}}{{}DEn}{{DEnDEn}j}>>>{{DEnAd}{{Ah{dAf}}}}::9{DF`j}`3`:887:``6::::{DFbDFb}5{DFdd}{{DFbDFb}j}{{ce}j{}{}}00{{DFbAd}{{Ah{dAf}}}}{{DFdAd}{{Ah{dAf}}}}{cc{}}00{{DFbc}dFh}{ce{}{}}0{DFd{{Ah{dCb}}}}{{}{{Ah{DFdCb}}}}{{DFdc}{{Ah{DFbCb}}}{{E`{j}{{Dn{{I`{{Hn{Hl}}}}}}}}ANjLf}}3{c{{Ah{e}}}{}{}}000{cBh{}}0{{DFdDFb}{{Ah{dCb}}}}66````{{cb}d{}}00077777777`{DFfDFf}{DFhDFh}{DFjDFj}{DFlDFl}{{ce}d{}{}}000{{}DFf}{{}DFh}{{}DFj}{{DFhDFh}j}{{DFjDFj}j}{{ce}j{}{}}00000{{DFfAd}{{Ah{dAf}}}}{{DFhAd}{{Ah{dAf}}}}0{{DFjAd}{{Ah{dAf}}}}{{DFlAd}{{Ah{dAf}}}}{cc{}}0000000{{DFlCMb{Bf{{AB`{DEf}}}}{Bf{{AB`{DEf}}}}}{{Ah{{AB`{DFh}}Cb}}}}{{DFlCMb{Bf{{AB`{DEf}}}}{Bf{{AB`{DEf}}}}}{{Ah{{DFn{{Ah{{AB`{DFh}}Cb}}}}Cb}}}}`````{ce{}{}}000````{DFf{{ACd{{Dd{AnACb}}}}}}{DFj{{`{{Lb{}{{In{{Dd{BLjCNj}}}}}}}}}}``{{}An}{{{Bf{DG`}}{CLj{{CLh{CLf}}}}}{{Ah{DFlCb}}}}```{{DFlFfBD`}d}``````````5555{cl{}}{c{{Ah{e}}}{}{}}0000000{cBh{}}000`8888````{{cb}d{}}9999{DGbDGb}{{ce}d{}{}}{{}DGb}{{DGdAd}{{Ah{dAf}}}}0{{DGbAd}{{Ah{dAf}}}}{CbDGd}{DGfDGd}{cc{}}00{ce{}{}}06{{DGbCNn{A`{n}}}{{Ah{CNjDGd}}}}{DGd{{Bf{Bd}}}}2>====<<22`````;;;;{DGhj}3333333333{DGjDGj}{DGhDGh}{DGlDGl}{DG`DG`}>>>>{DG`d}{{}DGj}{{}DGl}{{}DG`}```{{DGhDGh}j}{{ce}j{}{}}00`{{DGjAd}{{Ah{dAf}}}}{{DGhAd}{{Ah{dAf}}}}0{{DGlAd}{{Ah{dAf}}}}{{DG`Ad}{{Ah{dAf}}}}{{DGnAd}{{Ah{dAf}}}}{cc{}}00000000{ce{}{}}0000{DGj{{ACd{{Dd{AnACb}}}}}}```{{}An}`{DGlDG`}```{DG`{{DFn{{Ah{DGhl}}}}}}`{DG`d}5555{cl{}}{c{{Ah{e}}}{}{}}000000000{cBh{}}0000{{DG`{BOj{D@b}}}d}`````99999{DG`{{DHb{{Bf{DH`}}}}}}````````````````````````````````````````````````{{cb}d{}}000000{{DHdc}DHd{{E`{}{{Dn{{I`{{Hn{Hl}}}}}}}}LfANj}}<<<<<<<<<<<<<<<<<<<<{{DHdCLn{CLj{{CLh{CLf}}}}}{{Dd{DHfDHh}}}}{{DHdj}DHd}{BLjBLj}{DHjDHj}{DHlDHl}{DHfDHf}{DA`DA`}{CMbCMb}{CM`CM`}{{ce}d{}{}}000000{DHjd}{DHf{{Ah{dDHn}}}}0{{BLjBLj}Ed}{{CM`CM`}Ed}{{ce}Ed{}{}}0{DHf{{Ah{{Dd{DHjEl}}DHn}}}}{{CMbBLj}j}{{BLjD@b}CMb}{BLj}{c{{Ah{BLj}}}Bl}{c{{Ah{CM`}}}Bl}{{}CMb}{{BLjBLj}j}{{DHjDHj}j}{{DA`DA`}j}{{CMbCMb}j}{{CM`CM`}j}{{ce}j{}{}}00000000000000{{BLjAd}{{Ah{dAf}}}}0{{DHjAd}{{Ah{dAf}}}}{{DHlAd}{{Ah{dAf}}}}{{DHnAd}{{Ah{dAf}}}}0{{DHfAd}{{Ah{dAf}}}}{{DHhAd}{{Ah{dAf}}}}{{DHdAd}{{Ah{dAf}}}}{{DA`Ad}{{Ah{dAf}}}}{{CMbAd}{{Ah{dAf}}}}0{{CM`Ad}{{Ah{dAf}}}}0{CNfBLj}{cc{}}{DI`BLj}11{DIbDHn}{DIdDHn}{DIfDHn}4{CdDHn}{DIhDHn}666666{c{{Ah{CMbCb}}}{{J`{}{{In{CM`}}}}}}7777777{An{{Ah{BLj}}}}{BLjCMb}{{CMbBLj}{{Bf{{AB`{CM`}}}}}}{{BLjc}dFh}`{{DHdj}DHd}{ce{}{}}000000000{DHjj}{DHf{{Ah{jDHn}}}}{CMbj}44{CMbEl}{DHj{{Bf{BD`}}}}{DHf{{Bf{BD`}}}}{cDHd{{Il{BLj}}}}{CMb{{`{{Lb{}{{In{{AB`{CM`}}}}}}}}}}{{DHjj}{{Ah{dCb}}}}{{DHfj}d}{{BLjBLj}{{Bf{Ed}}}}{{CM`CM`}{{Bf{Ed}}}}{DHf{{Ah{CNjDHn}}}}{{DHdDIj}DHd}{{DHdCNf}DHd}{DHfId}{DHh{{Bf{{Ah{{Dd{DHlEl}}DHn}}}}}}{DA`CMb}{{DHjIdFf}{{Ah{dCb}}}}{{DHfIdFf}{{Ah{dDHn}}}}{{DHj{B`{n}}}{{Ah{dCb}}}}0{{DHf{B`{n}}}{{Ah{dDHn}}}}{{BLjc}AhBn}{{CM`c}AhBn}`{{DHdId}DHd}{{DHdc}DHd{{Il{BLj}}}}{DHn{{Bf{Bd}}}}``{ce{}{}}000000{cl{}}000{c{{Ah{e}}}{}{}}0000000000000000000{cBh{}}000000000`{CMb{{`{{Lb{}{{In{BLj}}}}}}}}4444444444``````````{{cb}d{}}55{DIjDIj}{{ce}d{}{}}{{DIjDIj}j}{{ce}j{}{}}00{{DIjAd}{{Ah{dAf}}}}{cc{}}0;{DIl{{Bf{DIj}}}}<::9{DIjAn}=```````````````88{DInd}{{DJ`DIjDJb}{{Ah{dCb}}}}````??????????????????????``{{DJ`{DJf{DJd}}}}{{c{DJf{e}}}{}{}{}}`{{DInDJh}DJ`}{DJ`DJ`}{DJjDJj}==6{{}DJj}{{}{{DJl{ce}}}{AKfNh}{AKfNh}}{{}DJn}`````{{DInAd}{{Ah{dAf}}}}{{DJ`Ad}{{Ah{dAf}}}}{{DJjAd}{{Ah{dAf}}}}{{DJbAd}{{Ah{dAf}}}}{{{DJl{ce}}Ad}{{Ah{dAf}}}{NhNh}{NhNh}}{{{DK`{ce}}Ad}{{Ah{dAf}}}{NhNh}{NhNh}}{{DKbAd}{{Ah{dAf}}}}{{{DKd{ce}}Ad}{{Ah{dAf}}}{NhNh}{NhNh}}{{DJnAd}{{Ah{dAf}}}}{{{DKf{ce}}Ad}{{Ah{dAf}}}NhNh}{{DKhAd}{{Ah{dAf}}}}{cc{}}000000000000`{DKh{{Bf{BD`}}}}`0`{ce{}{}}0000000000{DInj}{DJj{{ACd{{Dd{AnACb}}}}}}`{DIn{{A`{n}}}}`{{}An}{CLnDIn}```{{{I`{DJb}}Jh}{{Jj{{Ah{dCd}}}}}}{{{I`{DJb}}JhBGj}{{Jj{{Ah{dCd}}}}}}1{{{I`{DJb}}Jh{A`{n}}}{{Jj{{Ah{ElCd}}}}}}{{{I`{DJb}}Jh{A`{DKj}}}{{Jj{{Ah{ElCd}}}}}}{DInId}`{DInCLn}`````{DKh{{Ah{dCb}}}}{{{DJl{ce}}}{{Ah{DKhCb}}}NhNh}`>{DKh{{DKl{{Ah{dCb}}}}}}`>>{c{{Ah{e}}}{}{}}000000000000000000000{cBh{}}0000000000``{ce{}{}}0000000000````````````````````````````````````{{cb}d{}}00{DKn{{Ah{DL`DLb}}}}{c{{Df{eg}}}{}{}Dh}{DLd{{B`{n}}}}{DKn{{Ah{DLfDLb}}}}{DKn{{Ah{DLhDLb}}}}{DKn{{Ah{DLjDLb}}}}{DKn{{Ah{DLlDLb}}}}{DKn{{Ah{DLnDLb}}}}{DKn{{Ah{DM`DLb}}}}{DKn{{Ah{DMbDLb}}}}{DKn{{Ah{DMdDLb}}}}{DKn{{Ah{DMfDLb}}}}{DLd{{A`{n}}}}{DKn{{Ah{DMhDLb}}}}{DKn{{Ah{DMjDLb}}}}{DKn{{Ah{DMlDLb}}}}{DKn{{Ah{DMnDLb}}}}{DKn{{Ah{DN`DLb}}}}{DKn{{Ah{DNbDLb}}}}{DKnDNd}{ce{}{}}00000000000{DNfDNf}{DNhDNh}{DLdDLd}{{ce}d{}{}}00{{DLdDLd}Ed}{{ce}Ed{}{}}{{DNf{A`{n}}}{{Ah{{Dd{DNjEl}}DNl}}}}{{}DNf}{{}DLd}{DLd{{A`{n}}}}{ce{}{{Ej{Eh}}}}0{{DNhDNh}j}{{DLdDLd}j}{{ce}j{}{}}00000{DKnDL`}{DKnDLf}{DKnDLh}{DKnDLj}{DKnDLl}{DKnDLn}{DKnDM`}{DKnDMb}{DKnDMd}{DKnDMf}{DKnDMh}{DKnDMj}{DKnDMl}{DKnDMn}{DKnDN`}{DKnDNb}{{DNfAd}{{Ah{dAf}}}}{{DNhAd}{{Ah{dAf}}}}{{DLdAd}{{Ah{dAf}}}}0{{DKnAd}{{Ah{dAf}}}}{{DNlAd}{{Ah{dAf}}}}0{{DNnAd}{{Ah{dAf}}}}0{cc{}}0{{{B`{n}}}DLd}01{DLfDKn}{DMbDKn}{DNbDKn}{DMnDKn}{DM`DKn}{DMjDKn}{DLlDKn}{DLjDKn}9{DLhDKn}{DMdDKn}{DN`DKn}{DMhDKn}{DLnDKn}{DL`DKn}{DMlDKn}{DMfDKn}{cc{}}0000{DNf{{Bf{DO`}}}}{{DLdc}dFh}{ce{}{}}00000{{{A`{n}}}j}{DKnj}000000000000000`{{{A`{n}}}{{Ah{DLdDNn}}}}{{{A`{n}}}{{Ah{{Dd{DLdBD`}}DNn}}}}{{DLdDLd}{{Bf{Ed}}}}{DLd{{Bb{n}}}}{{DLdBD`}{{Bb{n}}}}777{cl{}}00{c{{Ah{{Df{eg}}{Fn{e}}}}}{}{}Dh}{c{{Ah{e}}}{}{}}0{n{{Ah{DNh}}}}1111111111{cBh{}}00000<<<<<<`````<<<<{BD`{{Ah{{CLj{{CLh{CLf}}}}Cb}}}}{{DObCLn}{{Hn{CMf}}}}{DOb{{CLj{{CLh{CLf}}}}}}{{DOdAd}{{Ah{dAf}}}}{{DObAd}{{Ah{dAf}}}}{cc{}}0{ce{}{}}0``{{DObIdCNj}{{Ah{dCb}}}}`{{}{{Ah{DObCb}}}}{{}{{Ah{{Dd{CMbBLjDKh}}Cb}}}}{l{{Ah{DObCb}}}}====;;44`{{cb}d{}}55{DOfDOf}{{ce}d{}{}}{c{{Ah{DOf}}}Bl}{{DOfDOf}j}{{ce}j{}{}}00{{DOfAd}{{Ah{dAf}}}}0<{{{A`{n}}}{{Ah{DOfCj}}}}={An{{Ah{DOf}}}}={Db{{Ah{DOfCb}}}}{DOfDb}{{DOfc}AhBn}{DOf{{Bb{n}}}}{ce{}{}}{cl{}}{c{{Ah{e}}}{}{}}0{cBh{}}3`{{CLn{Bf{Id}}{Bb{{Bb{n}}}}j}{{Ah{DOhDOj}}}}{{CLn{Bb{{Bb{n}}}}j}{{Ah{DOlDOj}}}}`````5555555555{{DOnAd}{{Ah{dAf}}}}{{E@`Ad}{{Ah{dAf}}}}{{DOjAd}{{Ah{dAf}}}}0{{E@bAd}{{Ah{dAf}}}}0{{E@dAd}{{Ah{dAf}}}}0{cc{}}00{E@fDOj}1{E@hE@b}2{E@hE@d}{CLn{{Ah{{Dd{E@jE@l}}DOj}}}}?????{E@j{{Ah{DOnE@b}}}}{DOnId}{DOj{{Bf{Bd}}}}{E@b{{Bf{Bd}}}}{E@d{{Bf{Bd}}}}{cl{}}00{c{{Ah{e}}}{}{}}000000000{cBh{}}0000{{DOnE@n{A`{n}}{A`{n}}}{{Ah{dE@d}}}}{ce{}{}}0000````{{cb}d{}}11111111`{{{EA`{c}}}{{EA`{c}}}{IfIfLf}}{{ce}d{}{}}{{}{{EAb{c}}}{}}{{{DKl{c}}}{}{}}{{{DKl{c}}}d{}}{{{EA`{c}}}d{IfLf}}{EAdd}{{{DKl{c}}Ad}{{Ah{dAf}}}Nh}{{{EA`{c}}Ad}{{Ah{dAf}}}{NhIfLf}}{{EAdAd}{{Ah{dAf}}}}{{{EAb{c}}Ad}{{Ah{dAf}}}Nh}{{{EAf{c}}}{{DKl{c}}}{}}{cc{}}{{{EAf{c}}}{{EA`{c}}}{IfLf}}1111`????{c{}{}}00{{ce}{{Ih{g}}}{}IjHl}00{{AnEAh}EAd}{{{I`{{DKl{c}}}}Jh}Jj{}}{{{I`{{EA`{c}}}}Jh}Jj{IfLf}}{{{I`{{EAb{c}}}}Jh}Jj{HlAGn}}{{cg}{{K`{ei}}}{}{}{{Ij{}{{Dn{e}}}}}{{Hl{}{{Dn{e}}}}}}00{ce{}{}}{c{{Ah{e}}}{}{}}0000000{{{I`{c}}Jh}Jj{}}00{cBh{}}0003333`33{{ce}{{EAj{ce}}}AHbAHb}{{{I`{{EAj{ce}}}}El}dEAlEAl}{{{EAj{ce}}Ad}{{Ah{dAf}}}NhNh}?{{{EAj{ce}}}{{Dd{ce}}}AHbAHb}{{{I`{{EAj{ce}}}}}{{Dd{{I`{c}}{I`{e}}}}}AHbAHb}181{{{I`{{EAj{ce}}}}Jh}{{Jj{{Ah{{A`{n}}Cd}}}}}EAlEAl}{{{I`{{EAj{ce}}}}JhBGj}{{Jj{{Ah{dCd}}}}}AHbAHb}997:`````````````````````````{{cb}d{}}000{{{AB`{EAn}}CBb}{{CFd{{BDb{d}}}}}}{{{EB`{c}}{A`{n}}{AB`{EAn}}}{{EB`{c}}}Jf}{{{EBb{c}}D@b}{{EBb{c}}}Jf}{{{EB`{c}}}cJf}????????????????{{{EBb{c}}}{{BDb{{EB`{c}}}}}Jf}{{{EBd{c}}}EBfJf}{c{{BDb{d}}}{{Ab{ANf}}}}{{{EB`{c}}}BChJf}{{{EBd{c}}}BChJf}{EBhEBh}{EBjEBj}{EBlEBl}{{{EBd{c}}}{{EBd{c}}}If}{{ce}d{}{}}000{{}{{EBb{ANn}}}}{{}EBn}{{}EBj}{{{EBd{c}}}e{}{}}{c{{Ah{EBj}}}Bl}{{{EBb{c}}}{{EBb{c}}}Jf}{{{EBb{c}}EC`}{{EBb{c}}}Jf}{{{EB`{c}}}GdJf}{{{EBb{c}}}{{BDb{{EBb{c}}}}}Jf}{{{EBb{c}}BD`}{{BDb{{EBb{c}}}}}Jf}{{{EB`{c}}}JbJf}{{{EBd{c}}}JbJf}{{EBjEBj}j}{{ce}j{}{}}00{{EBhAd}BDf}{{{EBb{c}}Ad}BDf{LhNh}}{{ECbAd}BDf}{{EBnAd}BDf}{{{EB`{c}}Ad}BDf{}}{{EBjAd}BDf}{{EBlAd}BDf}{{{EBd{c}}Ad}BDfNh}{cc{}}000{{{Hn{CMf}}}EBn}11111111{{{EBb{c}}EBj}{{EBb{c}}}Jf}{{{EB`{c}}{A`{n}}}{{Bf{{AB`{e}}}}}JfEAn}{{{EBd{c}}{A`{n}}}{{Bf{{AB`{e}}}}}JfEAn}{{{EB`{c}}}CBdJf}{{{EBd{c}}}{{Bf{BLj}}}Jf}{{{EBb{c}}j}{{EBb{c}}}Jf}{ce{}{}}00000001{c{{BDb{EBl}}}{{Ab{ANf}}}}{{{EBd{c}}}{{Bb{BD`}}}Jf}{{{EBd{c}}}{{BDb{{Bb{BD`}}}}}Jf}{{{EBd{c}}}CLbJf}{{{EB`{c}}}JdJf}{{{EBd{c}}}JdJf}{{}{{EBb{ANn}}}}0{{{EBd{c}}}{{Bf{BD`}}}Jf}{{{EBb{c}}EBn}{{EBb{c}}}Jf}{{{EBd{c}}}IdJf}{{{EBb{c}}e}{{BDb{{EBb{AMj}}}}}Jf{{Ab{ANf}}}}{c{{BDb{{EBb{AMj}}}}}{{Ab{ANf}}}}0{{{EBb{c}}{Hn{E`}}}{{EBb{c}}}Jf}{{{EBb{c}}DA`}{{EBb{c}}}Jf}{{{EBb{c}}ECd{Bf{BD`}}}{{EBb{c}}}Jf}{{{EBb{c}}CLn}{{EBb{c}}}Jf}{{EBjc}AhBn}{{{AB`{EAn}}}{{CFd{d}}}}0{{{EBd{c}}}{{BDb{d}}}Jf}{{{EBb{c}}}{{BDb{{EBd{c}}}}}Jf}{{{EB`{c}}}{{BDb{{EBd{c}}}}}Jf}{{cD@b}{{BDb{d}}}{{Ab{ANf}}}}{ce{}{}}000{c{{Ah{e}}}{}{}}000000000000000{cBh{}}000000022222222{{cEBhECb}{{EBb{c}}}Lh}````````{{cb}d{}}04444{{cj}{{BDb{l}}}{{Ab{ANf}}}}{ECfECf}{EChECh}{{ce}d{}{}}0{{ECfECf}Ed}{{ce}Ed{}{}}{{ECfECf}j}{{ce}j{}{}}00`{{ECfAd}BDf}{{EChAd}BDf}{cc{}}{KdECf}{ANfECf}222{ce{}{}}0{{c{Bf{l}}{Bf{Kd}}}{{BDb{Kd}}}{{Ab{{A`{n}}}}}}{Kd{{BDb{CLn}}}}{ECf{{ECj{An}}}}5{{ECfECf}{{Bf{Ed}}}}{ECfANf}{c{{BDb{ECh}}}{{Ab{ANf}}}}{{c{Bf{l}}{Bf{Kd}}}{{BDb{Ff}}}{{Ab{ANf}}}}{c{{BDb{l}}}{{Ab{ANf}}}}{{KdBEh}{{BDb{{Bb{ECf}}}}}}0`99{c{{Ah{e}}}{}{}}000{cBh{}}0;;{{Kdl}ECf}```<<{{EClAd}BDf}0{AIlECl}{cc{}}{CdECl}{ce{}{}}{ECl{{Bf{Bd}}}}{cl{}}9982````````{{cb}d{}}{ECnANf}{ECnAn}55{ECnECn}{{ce}d{}{}}{{ECnECn}j}{{ce}j{}{}}00{{ECnAd}{{Ah{dAf}}}}{{ECnAd}BDf}=={An{{Ah{ECnc}}}{}}<<:{c{{Ah{e}}}{}{}}10{cBh{}}>{{ECnc}Kd{{Ab{ANf}}}}````<<{{{ED`{c}}c}d{NhLfANj}}{ce{}{}}0000000{EDbEDb}{{{ED`{c}}}{{ED`{c}}}{}}<<{{EDbAd}BDf}{{{EDd{c}}Ad}BDf{NhAHbAGn}}{{{EDf{c}}Ad}BDfNh}{{{ED`{c}}Ad}BDfNh}{cc{}}00000{{EDbM`}d}8888{{{EDf{c}}}c{}}{{M`D@b}EDb}{c{{Dd{{EDf{c}}{EDh{M`}}}}}{}}{{{EDj{c}}}{{ED`{c}}}{NhLfANj}}{{}{{ED`{c}}}{NhLfANj}}{{{I`{{EDf{c}}}}Jh}{{Jj{{BEl{d}}}}}{BAjAGn}}{{{I`{{EDd{c}}}}JhBGj}{{Jj{{BEl{d}}}}}{AHbAGn}}1{{{I`{{EDf{c}}}}Jh{A`{n}}}{{Jj{{BEl{El}}}}}{BAjAGn}}{{{ED`{c}}c}{{BDb{d}}}{NhLfANj}}9{EDb{{CFl{D@b}}}}{ce{}{}}0{c{{Ah{e}}}{}{}}0000000{{{ED`{c}}c}d{NhLfANj}}{cBh{}}0003333{{EDbc}{{EDd{c}}}{AHbAGn}}","D":"AHOdBFl","p":[[5,"Private",9227],[1,"unit"],[6,"DecodeKind",10,9228],[5,"DecodeError",10,9228],[1,"bool"],[5,"String",9229],[1,"u8"],[1,"slice"],[10,"AsRef",9230],[5,"Formatter",9231],[5,"Error",9231],[6,"Result",9232],[6,"HexOrBase32ParseError",10,9233],[6,"FromHexError",9234],[1,"str"],[1,"array"],[5,"Vec",9235],[10,"Error",9236],[6,"Option",9237],[5,"TypeId",9238],[6,"AddrInfoOptions",97,9239],[10,"Deserializer",9240],[10,"Serializer",9241],[5,"RpcError",133,9242],[5,"Error",9243],[5,"Error",9244],[5,"BlobTicket",157,9245],[10,"Ticket",157,9246],[6,"Error",157,9246],[6,"BlobFormat",216,9247],[6,"Error",9248],[5,"Hash",216,9247],[5,"NodeAddr",6479,9239],[1,"tuple"],[5,"BitSlice",9249],[10,"BitOrder",9250],[5,"SystemTime",9251],[5,"Tag",216,9252],[17,"Output"],[10,"Fn",9253],[5,"HashAndFormat",216,9247],[6,"Ordering",9254],[5,"TempTag",216,9252],[1,"char"],[10,"FromIterator",9255],[1,"usize"],[5,"Hash",2016,9256],[5,"Hash",9257],[5,"HashAndFormat",9257],[5,"DownloadKind",405,9258],[5,"Bytes",9259],[10,"Hasher",9260],[10,"TagDrop",2981,9252],[5,"Weak",9261],[6,"BitSpanError",9262],[5,"TypeName",9263],[5,"TypeName",9263],[5,"Downloader",405,9258],[5,"DownloadHandle",405,9258],[5,"IntentId",405,9258],[5,"DownloadRequest",405,9258],[6,"DownloadError",405,9258],[5,"ConcurrencyLimits",405,9258],[5,"RetryConfig",405,9258],[6,"FailureAction",405,9258],[6,"GetError",798,9264],[17,"Connection"],[10,"Getter",405,9258],[5,"BroadcastProgressSender",9265],[10,"Future",9266],[5,"Box",9267],[5,"Pin",9268],[10,"Dialer",405,9258],[5,"PublicKey",7378,9269],[10,"Clone",9270],[5,"Join2",9271],[10,"IntoFuture",9272],[10,"Into",9230],[17,"Item"],[10,"IntoIterator",9255],[5,"Endpoint",6479,9273],[5,"LocalPoolHandle",3098,9274],[10,"Store",1512,9275],[5,"Context",9276],[6,"Poll",9277],[6,"DownloadProgress",705,9278],[5,"AsyncChannelProgressSender",3207,9279],[5,"Race2",9280],[6,"ExportProgress",580,9281],[5,"PathBuf",9282],[6,"ExportFormat",1512,9275],[6,"ExportMode",1512,9275],[17,"Msg"],[10,"ProgressSender",3207,9279],[10,"IdGenerator",3207,9279],[5,"Collection",614,9283],[10,"Iterator",9284],[10,"SimpleStore",614,9283],[10,"Send",9285],[10,"Map",1512,9275],[5,"AtStartRoot",825,9286],[6,"EndBlobNext",825,9286],[5,"HashSeq",1127,9287],[1,"u64"],[5,"BTreeMap",9288],[5,"Stats",650,9289],[10,"DoubleEndedIterator",9290],[6,"GetResponseError",650,9289],[6,"ReadError",6868,9291],[6,"WriteError",6868,9292],[6,"ConnectionError",6868,9293],[6,"DecodeError",2115,9294],[1,"f64"],[6,"BlobInfo",705,9278],[6,"BlobId",705,9278],[10,"Debug",9231],[5,"Connection",6868,9295],[10,"FnOnce",9253],[5,"ChunkNum",1851,9296],[5,"RangeSet",2782,9297],[6,"BaoBlobSize",1512,9275],[6,"DecodeError",825,9286],[6,"ProgressSendError",3207,9279],[6,"ConnectedNextError",825,9286],[6,"AtBlobHeaderNextError",825,9286],[5,"AtStartChild",825,9286],[5,"AtBlobHeader",825,9286],[5,"AtEndBlob",825,9286],[5,"AtBlobContent",825,9286],[5,"AtClosing",825,9286],[5,"AtInitial",825,9286],[5,"AtConnected",825,9286],[6,"ConnectedNext",825,9286],[6,"BlobContentNext",825,9286],[6,"BaoContentItem",2115,9298],[5,"GetRequest",1219,9299],[5,"BaoTree",1851,9300],[10,"AsyncSliceWriter",2197,9301],[10,"BaoBatchWriter",1512,9275],[10,"OutboardMut",2197,9302],[5,"TransferState",1038,9303],[5,"BlobState",1038,9303],[6,"BlobProgress",1038,9303],[5,"Arc",9261],[5,"RangeSpecSeq",1219,9304],[10,"Rng",9305],[5,"HashSeqStream",1127,9287],[5,"HashSeqIter",1127,9287],[5,"IntoFallible",9306],[10,"AsyncSliceReader",2197,9301],[5,"Convert",9306],[5,"Metrics",1189,9307],[10,"Any",9238],[5,"IntoIter",9308],[5,"RangeSpec",1219,9304],[6,"Request",1219,9299],[6,"Closed",1219,9299],[5,"NonEmptyRequestRangeSpecIter",1219,9304],[5,"UnknownErrorCode",1219,9299],[5,"RangeSetRef",2782,9297],[5,"RequestRangeSpecIter",9304],[5,"VarInt",6868,9309],[6,"Event",1381,9310],[5,"TransferStats",1381,9310],[6,"SentStatus",1381,9310],[6,"AddProgress",1381,9310],[5,"ResponseWriter",1381,9310],[10,"EventSender",1381,9310],[5,"RecvStream",6868,9291],[5,"SliceReaderStats",9311],[10,"AsyncStreamWriter",9301],[10,"Outboard",2197,9302],[10,"MapEntryMut",1512,9275],[10,"ReadableStore",1512,9275],[6,"EntryStatus",1512,9275],[6,"ImportMode",1512,9275],[6,"ReportLevel",1512,9275],[6,"Event",1512,9275],[6,"ConsistencyCheckProgress",1512,9275],[5,"BoxedProgressSender",3207,9279],[10,"MapEntry",1512,9275],[6,"ValidateProgress",1512,9275],[17,"EntryMut"],[10,"MapMut",1512,9275],[6,"GcMarkEvent",1512,9275],[6,"GcSweepEvent",1512,9275],[6,"ImportProgress",1512,9275],[6,"ExportProgress",1512,9275],[5,"BTreeSet",9312],[10,"Stream",9313],[10,"Unpin",9285],[17,"Entry"],[10,"AsyncRead",9314],[5,"TreeNode",1851,9300],[5,"BlockSize",1851,9296],[5,"Range",9315],[6,"PostOrderOffset",1851,9300],[1,"u32"],[5,"PostOrderChunkIter",2462,9316],[5,"PreOrderPartialChunkIterRef",2462,9316],[5,"HexError",2016,9256],[5,"Hasher",2016,9256],[5,"OutputReader",2016,9256],[6,"SeekFrom",9317],[5,"ArrayString",9318],[6,"EncodeError",2115,9294],[5,"Parent",2115,9298],[5,"Leaf",2115,9298],[10,"CreateOutboard",2197,9302],[10,"AsyncStreamReader",9301],[5,"ResponseDecoder",2197,9302],[6,"ResponseDecoderNext",2197,9302],[5,"PreOrderOutboard",2254,9319],[5,"PostOrderOutboard",2254,9319],[5,"PostOrderMemOutboard",2254,9319],[5,"PreOrderMemOutboard",2254,9319],[10,"Read",9317],[10,"WriteAt",2416,9320],[10,"Default",9321],[10,"PartialEq",9254],[5,"EmptyOutboard",2254,9319],[10,"ReadAt",2416,9320],[10,"AsMut",9230],[5,"DecodeResponseIter",2416,9322],[10,"Outboard",2416,9322],[10,"OutboardMut",2416,9322],[10,"CreateOutboard",2416,9322],[10,"Seek",9317],[10,"Size",2416,9320],[10,"Write",9317],[5,"BytesMut",9323],[6,"BaoChunk",2462,9316],[5,"ResponseIter",2462,9316],[5,"PostOrderNodeIter",2462,9316],[5,"PreOrderNodeIter",2462,9316],[5,"ResponseIterRef",2462,9316],[5,"Store",2589,9324],[5,"InlineOptions",2589,9324],[5,"PathOptions",2589,9324],[5,"BatchOptions",2589,9324],[5,"Options",2589,9324],[5,"FlatStorePaths",2589,9324],[5,"Path",9282],[6,"EntryData",9325],[10,"Sync",9285],[5,"Entry",2723,9326],[5,"Store",2723,9326],[10,"RangeSetEntry",2874,9297],[10,"Array",9327],[10,"Ord",9254],[5,"RangeFrom",9315],[5,"RangeFull",9315],[6,"RangeSetRange",2874,9297],[5,"RangeTo",9315],[5,"SmallVec",9327],[5,"Iter",2874,9297],[10,"PartialOrd",9254],[6,"Bound",9315],[10,"RangeExt",9328],[5,"Entry",2918,9329],[5,"Store",2918,9329],[6,"MemOrFile",2981,9330],[5,"SparseMemFile",2981,9331],[10,"TagCounter",2981,9252],[6,"SetTagOption",2981,9252],[5,"File",9332],[5,"TrackingReader",3067,9333],[5,"TrackingWriter",3067,9333],[10,"AsyncWrite",9334],[5,"Run",3098,9274],[5,"LocalPool",3098,9274],[6,"PanicMode",3098,9274],[5,"Config",3098,9274],[6,"SpawnError",3098,9274],[5,"IgnoreProgressSender",3207,9279],[5,"WithMap",3207,9279],[5,"WithFilterMap",3207,9279],[5,"FlumeProgressSender",3207,9279],[5,"ProgressSliceWriter",3207,9279],[5,"FallibleProgressSliceWriter",3207,9279],[10,"FnMut",9253],[5,"Sender",9335],[5,"Sender",9336],[5,"Iroh",3389],[5,"Client",3440],[5,"Client",3464],[5,"RpcService",3389,9337],[6,"SocketAddr",9338],[8,"Result",9243],[5,"Client",3782],[8,"Result",9231],[8,"RpcClient",3389],[5,"Doc",3782],[5,"Client",4050],[5,"Client",4108],[5,"Client",4150],[5,"AuthorId",4185,9339],[5,"Author",4185,9339],[5,"AddOutcome",3464],[6,"WrapOption",3464],[5,"AddProgress",3464],[8,"Result",9244],[5,"Chain2",9340],[10,"IntoStream",9341],[6,"BlobStatus",3464],[5,"DownloadOutcome",3464],[5,"ExportOutcome",3464],[5,"DownloadOptions",3464],[6,"DownloadMode",3464],[5,"CollectionInfo",3464],[5,"BlobInfo",3464],[5,"IncompleteBlobInfo",3464],[5,"DownloadProgress",3464],[5,"ExportProgress",3464],[5,"Reader",3464],[5,"Merge2",9342],[5,"ReadBuf",9343],[6,"NotKeyed",9344],[5,"RateLimiter",9345],[5,"RatelimitedStream",9346],[10,"DirectStateStore",9344],[10,"Clock",9347],[10,"ReasonablyRealtime",9348],[10,"RateLimitingMiddleware",9349],[5,"Jitter",9350],[5,"Zip2",9351],[5,"Entry",3782],[6,"ShareMode",3782],[6,"LiveEvent",3782],[5,"ImportFileOutcome",3782],[5,"ExportFileOutcome",3782],[6,"ImportProgress",3782],[5,"NamespaceId",4185,9339],[5,"ExportFileProgress",3782],[5,"ImportFileProgress",3782],[5,"Entry",4185,9352],[5,"SignedEntry",4185,9352],[6,"LiveEvent",4957,9353],[6,"DownloadPolicy",5289,9354],[5,"Query",5289,9354],[8,"PeerIdBytes",4185,9352],[5,"RecordIdentifier",4185,9352],[5,"DocTicket",4185,9355],[6,"Capability",4185,9352],[6,"CapabilityKind",4185,9352],[5,"OpenState",4871,9356],[5,"SubscribeOpts",4050],[5,"SubscribeRequest",4050,9357],[6,"Command",5745,9358],[17,"Error"],[10,"Sink",9359],[6,"Event",5745,9358],[5,"TopicId",5963,9360],[8,"NodeId",6479,9269],[5,"ConnectionInfo",6868],[5,"NodeStatus",4108],[5,"RelayUrl",7972,9239],[5,"TagInfo",4150],[5,"AuthorPublicKey",4185,9339],[5,"NamespacePublicKey",4185,9339],[5,"Replica",4185,9352],[17,"Target"],[5,"ReplicaInfo",4185,9352],[10,"Deref",9361],[10,"DerefMut",9361],[6,"Event",4185,9352],[6,"InsertOrigin",4185,9352],[6,"ContentStatus",4185,9352],[5,"SyncOutcome",4185,9352],[5,"EntrySignature",4185,9352],[5,"Record",4185,9352],[5,"AuthorHeads",4185,9362],[5,"NamespaceSecret",4185,9339],[6,"InsertError",4185,9352],[6,"CapabilityError",4185,9352],[5,"ReadOnly",4185,9352],[6,"ValidationFailure",4185,9352],[5,"SigningKey",9363],[5,"VerifyingKey",9364],[5,"Error",9365],[5,"NonZero",9366],[5,"Iter",9288],[5,"StoreInstance",5615,9367],[10,"CryptoRngCore",9368],[10,"Sized",9285],[10,"PublicKeyStore",5289,9369],[5,"Signature",7378,9370],[5,"Message",9371],[5,"TryFromPrimitiveError",9372],[5,"SyncHandle",4871,9356],[5,"ContentHashesIterator",5615,9367],[5,"OpenOpts",4871,9356],[5,"Store",5289,9367],[5,"SyncEvent",4957,9373],[6,"SyncReason",4957,9374],[6,"Origin",4957,9374],[5,"Engine",4957,9353],[6,"DefaultAuthorStorage",4957,9353],[5,"DefaultAuthor",4957,9353],[6,"Event",9373],[5,"Connecting",6868,9273],[5,"Gossip",5895,9375],[5,"Metrics",5119,9376],[6,"AcceptOutcome",5156,9377],[5,"SyncFinished",5156,9377],[5,"Timings",5156,9377],[6,"AbortReason",5156,9377],[6,"ConnectError",5156,9377],[6,"AcceptError",5156,9377],[5,"FlatQuery",5289,9354],[5,"QueryBuilder",5289,9354],[5,"SingleLatestPerKeyQuery",5289,9354],[5,"MemPublicKeyStore",5289,9369],[6,"ImportNamespaceOutcome",5289,9354],[6,"FilterKind",5289,9354],[6,"SortDirection",5289,9354],[6,"SortBy",5289,9354],[6,"KeyFilter",5289,9354],[6,"AuthorFilter",5289,9354],[6,"OpenError",5289,9354],[10,"DownloadPolicyStore",5289,9354],[5,"LatestIterator",5615,9367],[5,"QueryIterator",9378],[5,"ReadOnlyTables",9379],[5,"ReadOnlyTable",9380],[5,"RecordsRange",5615,9381],[5,"ParentIterator",5615,9367],[6,"GossipEvent",5745,9358],[5,"Message",5745,9358],[5,"GossipDispatcher",5745,9358],[5,"SubscribeOptions",5745,9358],[6,"Event",5963,9382],[5,"Metrics",5859,9383],[8,"Boxed",9384],[5,"JoinTopicFut",5895,9375],[5,"Config",5963,9382],[5,"AddrInfo",6479,9239],[5,"Receiver",9385],[6,"RecvError",9386],[5,"DirectAddr",6868,9387],[5,"Timers",5946,9388],[5,"Instant",9251],[5,"Message",5963,9360],[5,"PeerData",5963,9389],[6,"DeliveryScope",5963,9390],[6,"Scope",5963,9390],[5,"Timer",5963,9360],[6,"InEvent",5963,9360],[6,"OutEvent",5963,9360],[6,"Command",5963,9382],[10,"Deserialize",9240],[5,"State",5963,9360],[6,"Event",9390],[6,"Event",9391],[10,"PeerIdentity",5963,9389],[6,"MessageKind",6243,9360],[10,"IO",5963,9382],[6,"OutEvent",6271,9382],[10,"Serialize",9241],[5,"State",6271,9382],[6,"InEvent",6271,9382],[6,"Message",6271,9382],[6,"Timer",6271,9382],[5,"Stats",6271,9382],[6,"OutEvent",9390],[6,"OutEvent",9391],[6,"Message",9390],[6,"Message",9391],[6,"Timer",9390],[6,"Timer",9391],[5,"Stats",9390],[5,"StdRng",9392],[5,"TimeBoundCache",6412,9393],[10,"Hash",9260],[10,"Eq",9254],[5,"TimerMap",6412,9393],[5,"Metrics",6449],[5,"Accept",6868,9273],[5,"Builder",6868,9273],[5,"ConnectionTypeStream",6868,9394],[5,"DirectAddrsStream",6868,9387],[10,"Discovery",6644,9395],[5,"TokioRuntimeProvider",9396],[5,"GenericConnector",9397],[5,"AsyncResolver",9398],[5,"NodeInfo",6790,9399],[5,"SecretKey",7378,9269],[5,"RelayNode",7972,9400],[5,"RelayMap",7972,9400],[5,"Dialer",6618,9401],[5,"ConcurrentDiscovery",6644,9395],[5,"DiscoveryItem",6644,9395],[5,"Peer",9402],[5,"DnsDiscovery",6686,9403],[5,"LocalSwarmDiscovery",6701,9404],[5,"PkarrPublisher",6714,9405],[5,"PkarrResolver",6714,9405],[5,"PkarrRelayClient",6714,9405],[5,"Url",9406],[5,"SignedPacket",9407],[5,"Duration",9408],[10,"ResolverExt",6775,9409],[6,"IpAddr",9410],[10,"IntoName",9411],[6,"IrohAttr",6790,9399],[5,"TxtAttrs",6790,9399],[10,"FromStr",9412],[10,"Display",9231],[5,"Record",9413],[5,"AcceptBi",9295],[5,"AcceptUni",9295],[5,"TransportConfig",6868,9414],[1,"u16"],[6,"ControlMsg",6868,9415],[5,"DirectAddrInfo",6868,9415],[6,"ConnectionType",6868,9415],[6,"DirectAddrType",6868,9387],[10,"ControllerFactory",9416],[10,"Controller",9416],[6,"RelayMode",7972,9400],[5,"SendStream",6868,9292],[5,"ExportKeyingMaterialError",9417],[6,"ReadableError",9418],[5,"StreamId",9419],[6,"Close",9420],[5,"Error",9421],[5,"VarIntBoundsExceeded",9309],[5,"ZeroRttAccepted",9295],[5,"ServerConfig",9414],[5,"IdleTimeout",9414],[5,"MtuDiscoveryConfig",9414],[5,"OpenBi",9295],[5,"OpenUni",9295],[1,"i32"],[5,"UnknownStream",9295],[5,"Chunk",9422],[5,"ReadDatagram",9295],[6,"ReadExactError",9291],[6,"ReadToEndError",9291],[6,"SendDatagramError",9295],[5,"ConnectionStats",9423],[6,"StoppedError",9292],[1,"f32"],[1,"u128"],[5,"WeakConnectionHandle",9295],[5,"Written",9424],[5,"SharedSecret",7378,9425],[6,"KeyParsingError",7378,9269],[5,"InternalSignature",9426],[10,"Buffer",9427],[5,"Zeroizing",9428],[6,"Error",9429],[5,"Signature",9430],[5,"MagicsockMetrics",7522],[5,"UdpSocket",7620,9431],[5,"BorrowedFd",9432],[6,"IpFamily",7620,9433],[5,"UdpSocket",9434],[5,"LocalAddresses",7667,9435],[5,"Ipv6Addr",9410],[5,"CallbackToken",7691,9436],[5,"Monitor",7691,9437],[5,"Metrics",7726,9438],[5,"Report",7726,9439],[5,"RelayLatencies",7726,9439],[5,"Client",7726,9439],[5,"Receiver",9440],[5,"Client",7867,9441],[5,"Pinger",7832,9442],[6,"PingError",7832,9442],[6,"SurgeError",9443],[5,"ProbeOutput",7867,9441],[5,"Metrics",7867,9444],[5,"Config",7867,9441],[5,"Service",7867,9441],[5,"SocketAddrV4",9338],[5,"Receiver",9445],[5,"HttpClientBuilder",7972],[5,"HttpClient",7972],[5,"HttpClientReceiver",7972],[5,"RelayConn",7972],[6,"ReceivedMessage",7972,9446],[6,"HttpClientError",7972],[5,"RelayUrlInfo",9415],[5,"JoinError",9447],[5,"Error",9448],[6,"Error",9449],[5,"Error",9450],[6,"Protocol",8244,9451],[5,"HeaderValue",9452],[5,"ServerActorTask",8269,9453],[5,"ClientConnHandler",8269,9453],[6,"MaybeTlsStreamServer",8269],[5,"Incoming",9454],[5,"Request",9455],[5,"HeaderMap",9456],[5,"Metrics",8269,9457],[5,"ServerConfig",8269,9458],[5,"Limits",8269,9458],[5,"RelayConfig",8269,9458],[5,"StunConfig",8269,9458],[5,"TlsConfig",8269,9458],[6,"CertConfig",8269,9458],[5,"Server",8269,9458],[5,"IoSlice",9317],[5,"AbortingJoinHandle",8788,9459],[6,"StunAttribute",8454,9460],[5,"AlternateServer",9461],[5,"StunError",9462],[5,"TransactionId",8454,9463],[5,"ErrorCode",9464],[6,"Fingerprint",9465],[5,"MappedAddress",9466],[6,"MessageIntegrity",9467],[6,"MessageIntegritySha256",9468],[5,"Nonce",9469],[5,"PasswordAlgorithm",9470],[5,"PasswordAlgorithms",9471],[5,"Realm",9472],[5,"Software",9473],[5,"Unknown",9474],[5,"UnknownAttributes",9475],[5,"UserHash",9476],[5,"UserName",9477],[5,"XorMappedAddress",9478],[5,"AttributeType",9460],[5,"MessageDecoder",8454,9479],[6,"MessageClass",8454,9480],[5,"StunMessage",9480],[5,"StunDecodeError",8454,9462],[6,"Error",8454,9481],[5,"DecoderContext",9479],[5,"DnsPkarrServer",8661,9482],[5,"CleanupDropGuard",8661,9483],[5,"NodeTicket",8691,9484],[5,"ClientConfig",9485],[5,"GenError",8722,9486],[5,"ServerConfig",9487],[5,"P2pCertificate",8722,9486],[5,"P2pExtension",8722,9486],[5,"ParseError",8722,9486],[5,"VerificationError",8722,9486],[6,"Error",9488],[6,"Error",9489],[5,"Certificate",9490],[5,"PrivateKey",9490],[6,"SignatureScheme",9491],[5,"SharedAbortingJoinHandle",8788,9459],[5,"MaybeFuture",8788,9459],[5,"CancelOnDrop",8788,9459],[5,"JoinHandle",9492],[5,"AbortHandle",9493],[5,"Chain",8858,9494],[10,"AsyncBufRead",9495],[10,"ProtocolHandler",8876,9496],[5,"ProtocolBuilder",8876,9497],[5,"Builder",8876,9497],[5,"Node",8876],[5,"CancellationToken",9498],[6,"DocsStorage",8876,9497],[6,"GcPolicy",8876,9497],[6,"RpcStatus",8876,9499],[6,"DiscoveryConfig",8876,9497],[8,"DnsResolver",6775,9409],[6,"StorageConfig",8876,9497],[8,"IrohServerEndpoint",8876],[5,"DataSource",9058],[5,"PathContent",9058],[6,"Cow",9500],[6,"BaoValidationError",9111],[6,"IrohPaths",9128],[5,"Progress",9161],[5,"ProgressEmitter",9161],[5,"ProgressAsyncReader",9161],[5,"ProgressWriter",9161],[5,"Receiver",9501],[5,"Sender",9501],[8,"RpcResult",133],[15,"Kind",215],[15,"Found",605],[15,"Progress",605],[15,"Done",605],[15,"Partial",782],[15,"Complete",782],[15,"FoundLocal",785],[15,"Found",785],[15,"FoundHashSeq",785],[15,"Progress",785],[15,"Done",785],[15,"AllDone",1478],[15,"Done",1478],[15,"Found",1478],[15,"Progress",1478],[15,"ClientConnected",1488],[15,"GetRequestReceived",1488],[15,"CustomGetRequestReceived",1488],[15,"TransferHashSeqStarted",1488],[15,"TransferBlobCompleted",1488],[15,"TransferCompleted",1488],[15,"TransferAborted",1488],[15,"TaggedBlobAdded",1488],[15,"Update",1814],[15,"Start",1817],[15,"Progress",1817],[15,"Done",1817],[15,"OutboardDone",1824],[15,"Found",1824],[15,"CopyProgress",1824],[15,"Size",1824],[15,"OutboardProgress",1824],[15,"EntryDone",1834],[15,"Entry",1834],[15,"PartialEntry",1834],[15,"EntryProgress",1834],[15,"PartialEntryProgress",1834],[15,"PartialEntryDone",1834],[15,"Starting",1834],[15,"Parent",2580],[15,"Leaf",2580],[8,"ProgressSendResult",3207],[15,"Partial",3779],[15,"Complete",3779],[15,"Wrap",3781],[15,"IngestDone",4037],[15,"Found",4037],[15,"Progress",4037],[15,"AllDone",4037],[15,"InsertRemote",4045],[15,"InsertLocal",4045],[15,"ContentReady",4045],[15,"LocalInsert",5732],[15,"RemoteInsert",5732],[15,"Sync",5739],[15,"InsertRemote",5114],[15,"InsertLocal",5114],[15,"ContentReady",5114],[15,"Connect",5274],[15,"Open",5274],[15,"Sync",5274],[15,"Close",5274],[15,"Abort",5274],[15,"Connect",5286],[15,"Sync",5286],[15,"Close",5286],[8,"Command",5895],[8,"Event",5895],[15,"ReceivedPacket",8239],[15,"Health",8239],[15,"ServerRestarting",8239],[15,"Manual",8451],[15,"LetsEncrypt",8451],[8,"MemNode",8876],[8,"FsNode",8876],[15,"Running",9052]],"r":[[4,9502],[5,9502],[6,9502],[7,9502],[8,9502],[9,9502],[11,9228],[12,9228],[14,9233],[39,9233],[46,9233],[47,9233],[59,9233],[60,9233],[61,9233],[81,9247],[82,9247],[83,9247],[90,9269],[91,9269],[92,9503],[93,9269],[94,9269],[95,9425],[96,9370],[97,9239],[98,9239],[101,9239],[104,9239],[135,9242],[136,9242],[157,9245],[159,9246],[162,9484],[164,9246],[216,9247],[218,9247],[219,9247],[221,9504],[223,9252],[224,9252],[274,9504],[294,9504],[309,9504],[337,9504],[344,9504],[354,9504],[362,9504],[363,9504],[369,9504],[399,9504],[409,9258],[412,9258],[413,9258],[415,9258],[416,9258],[417,9258],[418,9258],[420,9258],[421,9258],[422,9258],[424,9258],[583,9281],[592,9281],[593,9281],[594,9281],[613,9505],[614,9283],[616,9283],[653,9289],[655,9289],[666,9289],[674,9289],[687,9289],[691,9289],[692,9289],[707,9278],[708,9278],[713,9278],[725,9278],[755,9278],[777,9278],[799,9264],[825,9286],[826,9286],[827,9286],[828,9286],[829,9286],[830,9286],[831,9286],[832,9286],[833,9286],[834,9286],[837,9286],[838,9286],[839,9286],[841,9286],[971,9286],[1038,9303],[1039,9303],[1042,9303],[1044,9303],[1122,9506],[1123,9506],[1124,9506],[1125,9506],[1126,9506],[1127,9287],[1128,9287],[1129,9287],[1169,9287],[1189,9307],[1219,9299],[1220,9299],[1223,9299],[1224,9299],[1225,9304],[1227,9304],[1228,9304],[1229,9299],[1232,9299],[1382,9310],[1387,9310],[1388,9310],[1393,9310],[1395,9310],[1401,9310],[1441,9310],[1442,9310],[1449,9310],[1452,9310],[1457,9310],[1515,9275],[1516,9275],[1520,9275],[1528,9275],[1536,9275],[1540,9275],[1541,9275],[1542,9275],[1543,9275],[1544,9275],[1547,9275],[1549,9275],[1550,9275],[1551,9275],[1553,9275],[1554,9275],[1555,9275],[1556,9275],[1565,9275],[1566,9275],[1571,9275],[1577,9275],[1705,9507],[1732,9507],[1737,9507],[1851,9300],[1852,9296],[1853,9300],[1854,9296],[1855,9300],[1856,9300],[1857,9300],[1859,9300],[1951,9300],[1954,9300],[2016,9256],[2017,9256],[2018,9256],[2019,9256],[2020,9256],[2021,9256],[2045,9256],[2075,9256],[2081,9256],[2115,9298],[2116,9294],[2117,9294],[2120,9298],[2126,9298],[2160,9298],[2161,9298],[2169,9298],[2171,9298],[2174,9298],[2197,9301],[2198,9301],[2199,9298],[2200,9302],[2204,9302],[2205,9302],[2207,9302],[2208,9302],[2213,9302],[2216,9302],[2217,9302],[2218,9302],[2231,9302],[2232,9302],[2248,9508],[2249,9508],[2254,9319],[2255,9319],[2256,9319],[2257,9319],[2258,9319],[2416,9322],[2417,9322],[2418,9322],[2419,9322],[2420,9320],[2421,9320],[2422,9320],[2426,9322],[2429,9322],[2430,9322],[2431,9322],[2443,9322],[2444,9322],[2457,9509],[2458,9509],[2462,9316],[2465,9316],[2466,9316],[2467,9316],[2468,9316],[2469,9316],[2470,9316],[2590,9324],[2591,9324],[2592,9324],[2593,9324],[2595,9324],[2596,9324],[2597,9324],[2723,9326],[2724,9326],[2782,9297],[2783,9297],[2784,9297],[2856,9510],[2874,9297],[2877,9297],[2878,9297],[2879,9297],[2880,9297],[2881,9297],[2918,9329],[2919,9329],[2984,9330],[2986,9252],[2987,9331],[2988,9252],[2989,9252],[2990,9252],[2991,9252],[3030,9252],[3032,9252],[3041,9252],[3050,9252],[3067,9333],[3068,9333],[3099,9274],[3100,9274],[3101,9274],[3103,9274],[3104,9274],[3106,9274],[3207,9279],[3208,9279],[3210,9279],[3211,9279],[3212,9279],[3213,9279],[3216,9279],[3217,9279],[3218,9279],[3219,9279],[3221,9279],[3222,9279],[3389,3782],[3391,4108],[3393,9337],[3804,9374],[3810,9373],[3812,9374],[4056,9357],[4185,9339],[4186,9362],[4187,9339],[4188,9339],[4190,9352],[4191,9352],[4192,9352],[4195,9352],[4196,9352],[4197,9355],[4198,9352],[4200,9352],[4201,9352],[4203,9352],[4204,9352],[4209,9352],[4211,9339],[4213,9339],[4214,9339],[4216,9352],[4217,9352],[4220,9352],[4222,9352],[4223,9352],[4225,9352],[4226,9352],[4227,9352],[4230,9352],[4233,9352],[4255,9511],[4420,9511],[4645,9511],[4648,9511],[4700,9511],[4703,9511],[4871,9356],[4872,9356],[4873,9356],[4960,9353],[4961,9353],[4963,9353],[4966,9353],[4971,9374],[4975,9373],[4977,9374],[5014,9353],[5119,9376],[5157,9377],[5158,9377],[5159,9377],[5166,9377],[5167,9377],[5175,9377],[5176,9377],[5202,9377],[5227,9377],[5292,9354],[5295,9354],[5296,9354],[5301,9354],[5302,9354],[5303,9354],[5306,9354],[5307,9369],[5311,9354],[5315,9369],[5316,9354],[5317,9354],[5318,9354],[5319,9354],[5320,9354],[5321,9367],[5477,9354],[5615,9367],[5616,9367],[5617,9367],[5618,9381],[5619,9367],[5620,9367],[5685,9362],[5687,9352],[5688,9352],[5689,9352],[5692,9352],[5693,9352],[5694,9352],[5696,9352],[5697,9352],[5699,9352],[5700,9352],[5705,9352],[5709,9352],[5710,9352],[5713,9352],[5715,9352],[5716,9352],[5718,9352],[5719,9352],[5720,9352],[5723,9352],[5726,9352],[5741,9512],[5742,9512],[5743,9512],[5744,9512],[5747,9358],[5748,9358],[5750,9358],[5751,9358],[5753,9358],[5757,9358],[5859,9383],[5896,9375],[5897,9375],[5898,9375],[5899,9375],[5901,9375],[5943,9375],[5946,9388],[5955,9388],[5956,9388],[5962,9388],[5964,9382],[5966,9382],[5967,9390],[5970,9382],[5971,9382],[5972,9360],[5974,9360],[5979,9360],[5980,9389],[5983,9389],[5988,9390],[5990,9360],[5993,9360],[5995,9360],[6176,9389],[6191,9389],[6230,9389],[6248,9360],[6249,9360],[6250,9360],[6251,9360],[6257,9360],[6258,9360],[6260,9360],[6272,9382],[6274,9382],[6275,9382],[6278,9382],[6281,9382],[6282,9382],[6284,9382],[6287,9382],[6295,9382],[6296,9382],[6299,9382],[6412,9393],[6413,9393],[6479,9239],[6480,9273],[6481,9239],[6482,9269],[6516,9513],[6519,9513],[6523,9513],[6525,9513],[6527,9513],[6557,9502],[6558,9513],[6559,9513],[6560,9513],[6568,9513],[6569,9513],[6570,9513],[6577,9513],[6578,9513],[6579,9513],[6580,9513],[6593,9513],[6600,9514],[6601,9514],[6602,9514],[6603,9514],[6604,9514],[6605,9514],[6606,9515],[6607,9515],[6608,9515],[6609,9515],[6610,9515],[6611,9515],[6612,9515],[6613,9516],[6614,9516],[6615,9516],[6616,9516],[6617,9516],[6618,9401],[6644,9395],[6645,9395],[6646,9395],[6657,9395],[6670,9395],[6671,9395],[6686,9403],[6687,9403],[6688,9403],[6701,9404],[6714,9405],[6715,9405],[6716,9405],[6717,9405],[6718,9405],[6719,9405],[6720,9405],[6775,9409],[6776,9409],[6777,9409],[6788,9409],[6789,9409],[6791,9399],[6792,9399],[6793,9399],[6795,9399],[6836,9399],[6854,9399],[6868,9273],[6869,9239],[6871,9273],[6873,9273],[6874,9295],[6876,9293],[6880,9415],[6881,9394],[6882,9415],[6884,9387],[6885,9415],[6886,9387],[6887,9387],[6888,9273],[6895,9239],[6900,9291],[6901,9291],[6905,9292],[6910,9414],[6915,9309],[6917,9292],[7022,9273],[7144,9273],[7199,9273],[7381,9269],[7382,9269],[7383,9503],[7384,9269],[7385,9269],[7386,9425],[7387,9370],[7620,9433],[7621,9431],[7654,9517],[7656,9517],[7667,9435],[7682,9435],[7691,9436],[7692,9437],[7726,9439],[7727,9438],[7728,9439],[7729,9439],[7834,9442],[7835,9442],[7867,9441],[7868,9441],[7869,9444],[7870,9441],[7871,9441],[7994,9518],[8005,9446],[8008,9400],[8009,9400],[8010,9400],[8012,9239],[8141,9519],[8180,9519],[8244,9451],[8245,9451],[8246,9451],[8269,9458],[8270,9453],[8272,9458],[8275,9457],[8277,9458],[8278,9458],[8279,9453],[8280,9458],[8281,9458],[8283,9458],[8455,9481],[8464,9480],[8465,9479],[8477,9460],[8478,9462],[8480,9463],[8603,9481],[8620,9520],[8621,9481],[8622,9481],[8624,9481],[8625,9481],[8658,9521],[8659,9521],[8660,9521],[8661,9483],[8662,9482],[8667,9522],[8681,9483],[8691,9484],[8719,9523],[8720,9523],[8721,9523],[8722,9486],[8723,9486],[8724,9486],[8725,9486],[8726,9486],[8753,9486],[8759,9486],[8788,9459],[8789,9459],[8790,9459],[8791,9459],[8801,9459],[8858,9494],[8861,9494],[8876,9497],[8878,9497],[8882,9497],[8883,9497],[8885,9497],[8895,9497],[8896,9496],[8897,9499],[8900,9497]],"b":[[40,"impl-Display-for-DecodeKind"],[41,"impl-Debug-for-DecodeKind"],[42,"impl-Display-for-DecodeError"],[43,"impl-Debug-for-DecodeError"],[44,"impl-Debug-for-HexOrBase32ParseError"],[45,"impl-Display-for-HexOrBase32ParseError"],[51,"impl-From%3CDecodeError%3E-for-HexOrBase32ParseError"],[52,"impl-From%3CFromHexError%3E-for-HexOrBase32ParseError"],[117,"impl-Debug-for-AddrInfoOptions"],[118,"impl-Display-for-AddrInfoOptions"],[143,"impl-Debug-for-RpcError"],[144,"impl-Display-for-RpcError"],[145,"impl-From%3CError%3E-for-RpcError"],[146,"impl-From%3CError%3E-for-RpcError"],[179,"impl-Debug-for-BlobTicket"],[180,"impl-Display-for-BlobTicket"],[181,"impl-Debug-for-Error"],[182,"impl-Display-for-Error"],[186,"impl-From%3CDecodeError%3E-for-Error"],[187,"impl-From%3CError%3E-for-Error"],[230,"impl-Value-for-Hash"],[231,"impl-Hash"],[233,"impl-Value-for-Tag"],[234,"impl-RedbValue-for-Tag"],[237,"impl-Borrow%3C%5Bu8;+32%5D%3E-for-Hash"],[239,"impl-Borrow%3C%5Bu8%5D%3E-for-Hash"],[267,"impl-Key-for-Tag"],[268,"impl-RedbKey-for-Tag"],[297,"impl-Value-for-Tag"],[298,"impl-RedbValue-for-Tag"],[299,"impl-Display-for-Hash"],[300,"impl-Debug-for-Hash"],[301,"impl-Debug-for-BlobFormat"],[302,"impl-Display-for-BlobFormat"],[303,"impl-Debug-for-HashAndFormat"],[304,"impl-Display-for-HashAndFormat"],[305,"impl-Debug-for-Tag"],[306,"impl-Display-for-Tag"],[312,"impl-From%3CHash%3E-for-Hash"],[313,"impl-From%3CHash%3E-for-Hash"],[314,"impl-From%3C%26%5Bu8;+32%5D%3E-for-Hash"],[316,"impl-From%3C%5Bu8;+32%5D%3E-for-Hash"],[318,"impl-From%3CHashAndFormat%3E-for-HashAndFormat"],[319,"impl-From%3CDownloadKind%3E-for-HashAndFormat"],[322,"impl-From%3CString%3E-for-Tag"],[323,"impl-From%3C%26str%3E-for-Tag"],[324,"impl-From%3CBytes%3E-for-Tag"],[326,"impl-Value-for-Hash"],[327,"impl-Hash"],[329,"impl-RedbValue-for-Tag"],[330,"impl-Value-for-Tag"],[397,"impl-Value-for-Tag"],[398,"impl-RedbValue-for-Tag"],[472,"impl-Display-for-IntentId"],[473,"impl-Debug-for-IntentId"],[478,"impl-Debug-for-DownloadKind"],[479,"impl-Display-for-DownloadKind"],[480,"impl-Display-for-DownloadError"],[481,"impl-Debug-for-DownloadError"],[503,"impl-DownloadKind"],[504,"impl-Hash-for-DownloadKind"],[676,"impl-Debug-for-GetResponseError"],[677,"impl-Display-for-GetResponseError"],[679,"impl-From%3CReadError%3E-for-GetResponseError"],[681,"impl-From%3CError%3E-for-GetResponseError"],[682,"impl-From%3CWriteError%3E-for-GetResponseError"],[683,"impl-From%3CError%3E-for-GetResponseError"],[684,"impl-From%3CConnectionError%3E-for-GetResponseError"],[685,"impl-From%3CDecodeError%3E-for-GetResponseError"],[807,"impl-Display-for-GetError"],[808,"impl-Debug-for-GetError"],[809,"impl-From%3CReadError%3E-for-GetError"],[810,"impl-From%3CError%3E-for-GetError"],[811,"impl-From%3CConnectionError%3E-for-GetError"],[812,"impl-From%3CDecodeError%3E-for-GetError"],[814,"impl-From%3CProgressSendError%3E-for-GetError"],[815,"impl-From%3CConnectedNextError%3E-for-GetError"],[816,"impl-From%3CAtBlobHeaderNextError%3E-for-GetError"],[817,"impl-From%3CWriteError%3E-for-GetError"],[899,"impl-Debug-for-ConnectedNextError"],[900,"impl-Display-for-ConnectedNextError"],[904,"impl-Display-for-AtBlobHeaderNextError"],[905,"impl-Debug-for-AtBlobHeaderNextError"],[907,"impl-Display-for-DecodeError"],[908,"impl-Debug-for-DecodeError"],[915,"impl-From%3CAtClosing%3E-for-ConnectedNext"],[916,"impl-From%3CAtStartRoot%3E-for-ConnectedNext"],[918,"impl-From%3CAtStartChild%3E-for-ConnectedNext"],[926,"impl-From%3CError%3E-for-DecodeError"],[928,"impl-From%3CDecodeError%3E-for-DecodeError"],[929,"impl-From%3CAtBlobHeaderNextError%3E-for-DecodeError"],[930,"impl-From%3C(AtBlobContent,+Result%3CBaoContentItem,+DecodeError%3E)%3E-for-BlobContentNext"],[931,"impl-From%3CAtEndBlob%3E-for-BlobContentNext"],[935,"impl-From%3CAtStartChild%3E-for-EndBlobNext"],[936,"impl-From%3CAtClosing%3E-for-EndBlobNext"],[1297,"impl-Display-for-UnknownErrorCode"],[1298,"impl-Debug-for-UnknownErrorCode"],[1680,"impl-Debug-for-ReportLevel"],[1681,"impl-Display-for-ReportLevel"],[1867,"impl-Add-for-ChunkNum"],[1868,"impl-Add%3Cu64%3E-for-ChunkNum"],[1906,"impl-PartialEq-for-ChunkNum"],[1907,"impl-PartialEq%3Cu64%3E-for-ChunkNum"],[1923,"impl-Debug-for-ChunkNum"],[1924,"impl-Display-for-ChunkNum"],[1925,"impl-Display-for-BlockSize"],[1926,"impl-Debug-for-BlockSize"],[1929,"impl-Display-for-TreeNode"],[1930,"impl-Debug-for-TreeNode"],[1965,"impl-PartialOrd-for-ChunkNum"],[1966,"impl-PartialOrd%3Cu64%3E-for-ChunkNum"],[1982,"impl-Sub-for-ChunkNum"],[1983,"impl-Sub%3Cu64%3E-for-ChunkNum"],[2046,"impl-PartialEq%3C%5Bu8;+iroh_blake3::::%7Bimpl%235%7D::%7Bconstant%230%7D%5D%3E-for-Hash"],[2047,"impl-PartialEq%3C%5Bu8%5D%3E-for-Hash"],[2048,"impl-PartialEq-for-Hash"],[2056,"impl-Display-for-Hash"],[2057,"impl-Debug-for-Hash"],[2058,"impl-Display-for-HexError"],[2059,"impl-Debug-for-HexError"],[2063,"impl-From%3CHash%3E-for-Hash"],[2064,"impl-From%3C%5Bu8;+iroh_blake3::::%7Bimpl%231%7D::%7Bconstant%230%7D%5D%3E-for-Hash"],[2144,"impl-Debug-for-DecodeError"],[2145,"impl-Display-for-DecodeError"],[2146,"impl-Debug-for-EncodeError"],[2147,"impl-Display-for-EncodeError"],[2158,"impl-From%3CParent%3E-for-BaoContentItem"],[2159,"impl-From%3CLeaf%3E-for-BaoContentItem"],[2283,"impl-CreateOutboard-for-PreOrderOutboard%3CW%3E"],[2284,"impl-CreateOutboard-for-PreOrderOutboard%3CW%3E"],[2285,"impl-CreateOutboard-for-PostOrderOutboard%3CW%3E"],[2286,"impl-CreateOutboard-for-PostOrderOutboard%3CW%3E"],[2319,"impl-CreateOutboard-for-PreOrderOutboard%3CW%3E"],[2320,"impl-CreateOutboard-for-PreOrderOutboard%3CW%3E"],[2321,"impl-CreateOutboard-for-PostOrderOutboard%3CW%3E"],[2322,"impl-CreateOutboard-for-PostOrderOutboard%3CW%3E"],[2330,"impl-Outboard-for-EmptyOutboard"],[2331,"impl-Outboard-for-EmptyOutboard"],[2332,"impl-Outboard-for-PreOrderOutboard%3CR%3E"],[2333,"impl-Outboard-for-PreOrderOutboard%3CR%3E"],[2334,"impl-Outboard-for-PostOrderOutboard%3CR%3E"],[2335,"impl-Outboard-for-PostOrderOutboard%3CR%3E"],[2336,"impl-Outboard-for-PostOrderMemOutboard%3CT%3E"],[2337,"impl-Outboard-for-PostOrderMemOutboard%3CT%3E"],[2338,"impl-Outboard-for-PreOrderMemOutboard%3CT%3E"],[2339,"impl-Outboard-for-PreOrderMemOutboard%3CT%3E"],[2342,"impl-Outboard-for-EmptyOutboard"],[2343,"impl-Outboard-for-EmptyOutboard"],[2344,"impl-Outboard-for-PreOrderOutboard%3CR%3E"],[2345,"impl-Outboard-for-PreOrderOutboard%3CR%3E"],[2346,"impl-Outboard-for-PostOrderOutboard%3CR%3E"],[2347,"impl-Outboard-for-PostOrderOutboard%3CR%3E"],[2348,"impl-Outboard-for-PostOrderMemOutboard%3CT%3E"],[2349,"impl-Outboard-for-PostOrderMemOutboard%3CT%3E"],[2350,"impl-Outboard-for-PreOrderMemOutboard%3CT%3E"],[2351,"impl-Outboard-for-PreOrderMemOutboard%3CT%3E"],[2357,"impl-OutboardMut-for-EmptyOutboard"],[2358,"impl-OutboardMut-for-EmptyOutboard"],[2359,"impl-OutboardMut-for-PreOrderOutboard%3CW%3E"],[2360,"impl-OutboardMut-for-PreOrderOutboard%3CW%3E"],[2361,"impl-OutboardMut-for-PostOrderOutboard%3CW%3E"],[2362,"impl-OutboardMut-for-PostOrderOutboard%3CW%3E"],[2363,"impl-OutboardMut-for-PostOrderMemOutboard%3CT%3E"],[2364,"impl-OutboardMut-for-PostOrderMemOutboard%3CT%3E"],[2365,"impl-OutboardMut-for-PreOrderMemOutboard%3CT%3E"],[2366,"impl-OutboardMut-for-PreOrderMemOutboard%3CT%3E"],[2367,"impl-OutboardMut-for-EmptyOutboard"],[2368,"impl-OutboardMut-for-EmptyOutboard"],[2369,"impl-OutboardMut-for-PreOrderOutboard%3CW%3E"],[2370,"impl-OutboardMut-for-PreOrderOutboard%3CW%3E"],[2371,"impl-OutboardMut-for-PostOrderOutboard%3CW%3E"],[2372,"impl-OutboardMut-for-PostOrderOutboard%3CW%3E"],[2373,"impl-OutboardMut-for-PostOrderMemOutboard%3CT%3E"],[2374,"impl-OutboardMut-for-PostOrderMemOutboard%3CT%3E"],[2375,"impl-OutboardMut-for-PreOrderMemOutboard%3CT%3E"],[2376,"impl-OutboardMut-for-PreOrderMemOutboard%3CT%3E"],[2381,"impl-Outboard-for-EmptyOutboard"],[2382,"impl-Outboard-for-EmptyOutboard"],[2383,"impl-Outboard-for-PreOrderOutboard%3CR%3E"],[2384,"impl-Outboard-for-PreOrderOutboard%3CR%3E"],[2385,"impl-Outboard-for-PostOrderOutboard%3CR%3E"],[2386,"impl-Outboard-for-PostOrderOutboard%3CR%3E"],[2387,"impl-Outboard-for-PostOrderMemOutboard%3CT%3E"],[2388,"impl-Outboard-for-PostOrderMemOutboard%3CT%3E"],[2389,"impl-Outboard-for-PreOrderMemOutboard%3CT%3E"],[2390,"impl-Outboard-for-PreOrderMemOutboard%3CT%3E"],[2788,"impl-BitAnd%3CRangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2789,"impl-BitAnd-for-RangeSet%3CA%3E"],[2790,"impl-BitAnd%3C%26RangeSet%3CA%3E%3E-for-RangeSet%3CA%3E"],[2791,"impl-BitAnd%3C%26RangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2793,"impl-BitOr%3C%26RangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2794,"impl-BitOr%3CRangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2795,"impl-BitOr-for-RangeSet%3CA%3E"],[2796,"impl-BitOr%3C%26RangeSet%3CA%3E%3E-for-RangeSet%3CA%3E"],[2798,"impl-BitXor%3CRangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2799,"impl-BitXor%3C%26RangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2800,"impl-BitXor-for-RangeSet%3CA%3E"],[2801,"impl-BitXor%3C%26RangeSet%3CA%3E%3E-for-RangeSet%3CA%3E"],[2829,"impl-From%3CRangeFrom%3CT%3E%3E-for-RangeSet%3CA%3E"],[2830,"impl-From%3Cbool%3E-for-RangeSet%3CA%3E"],[2831,"impl-From%3CRangeFull%3E-for-RangeSet%3CA%3E"],[2832,"impl-From%3CRangeSetRange%3CT%3E%3E-for-RangeSet%3CA%3E"],[2834,"impl-From%3CRangeTo%3CT%3E%3E-for-RangeSet%3CA%3E"],[2835,"impl-From%3CRange%3CT%3E%3E-for-RangeSet%3CA%3E"],[2853,"impl-Not-for-RangeSet%3CA%3E"],[2854,"impl-Not-for-%26RangeSet%3CA%3E"],[2859,"impl-Sub-for-RangeSet%3CA%3E"],[2860,"impl-Sub%3C%26RangeSet%3CA%3E%3E-for-RangeSet%3CA%3E"],[2861,"impl-Sub%3CRangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2862,"impl-Sub%3C%26RangeSet%3CA%3E%3E-for-%26RangeSet%3CA%3E"],[2894,"impl-From%3CRangeFrom%3CT%3E%3E-for-RangeSetRange%3CT%3E"],[2895,"impl-From%3CRange%3CT%3E%3E-for-RangeSetRange%3CT%3E"],[3045,"impl-MemOrFile%3CM,+(F,+u64)%3E"],[3046,"impl-Size-for-MemOrFile%3CBytes,+File%3E"],[3143,"impl-Debug-for-SpawnError"],[3144,"impl-Display-for-SpawnError"],[3277,"impl-Debug-for-ProgressSendError"],[3278,"impl-Display-for-ProgressSendError"],[3415,"impl-From%3C%26Iroh%3E-for-%26RpcClient%3CRpcService,+Connection%3CRpcService%3E%3E"],[3416,"impl-From%3C%26Doc%3E-for-%26RpcClient%3CRpcService,+Connection%3CRpcService%3E%3E"],[3899,"impl-Debug-for-ShareMode"],[3900,"impl-Display-for-ShareMode"],[3901,"impl-Debug-for-LiveEvent"],[3902,"impl-Display-for-LiveEvent"],[3909,"impl-From%3CEntry%3E-for-Entry"],[3910,"impl-From%3CSignedEntry%3E-for-Entry"],[4266,"impl-AsRef%3C%5Bu8;+32%5D%3E-for-NamespaceId"],[4267,"impl-AsRef%3C%5Bu8%5D%3E-for-NamespaceId"],[4268,"impl-AsRef%3C%5Bu8;+32%5D%3E-for-AuthorId"],[4269,"impl-AsRef%3C%5Bu8%5D%3E-for-AuthorId"],[4466,"impl-Debug-for-DocTicket"],[4467,"impl-Display-for-DocTicket"],[4472,"impl-Display-for-CapabilityKind"],[4473,"impl-Debug-for-CapabilityKind"],[4475,"impl-Display-for-CapabilityError"],[4476,"impl-Debug-for-CapabilityError"],[4479,"impl-Display-for-ReadOnly"],[4480,"impl-Debug-for-ReadOnly"],[4481,"impl-Display-for-InsertError"],[4482,"impl-Debug-for-InsertError"],[4483,"impl-Debug-for-ValidationFailure"],[4484,"impl-Display-for-ValidationFailure"],[4491,"impl-Display-for-Author"],[4492,"impl-Debug-for-Author"],[4493,"impl-Debug-for-AuthorPublicKey"],[4494,"impl-Display-for-AuthorPublicKey"],[4495,"impl-Debug-for-NamespaceSecret"],[4496,"impl-Display-for-NamespaceSecret"],[4497,"impl-Debug-for-NamespacePublicKey"],[4498,"impl-Display-for-NamespacePublicKey"],[4499,"impl-Debug-for-NamespaceId"],[4500,"impl-Display-for-NamespaceId"],[4501,"impl-Display-for-AuthorId"],[4502,"impl-Debug-for-AuthorId"],[4512,"impl-From%3CNamespaceId%3E-for-Capability"],[4513,"impl-From%3CNamespaceSecret%3E-for-Capability"],[4518,"impl-From%3CReadOnly%3E-for-InsertError"],[4519,"impl-From%3CValidationFailure%3E-for-InsertError"],[4531,"impl-From%3CAuthor%3E-for-AuthorPublicKey"],[4533,"impl-From%3CVerifyingKey%3E-for-AuthorPublicKey"],[4534,"impl-From%3C%26Author%3E-for-AuthorPublicKey"],[4538,"impl-From%3CVerifyingKey%3E-for-NamespacePublicKey"],[4539,"impl-From%3CNamespaceSecret%3E-for-NamespacePublicKey"],[4540,"impl-From%3C%26NamespaceSecret%3E-for-NamespacePublicKey"],[4541,"impl-From%3CNamespaceSecret%3E-for-NamespaceId"],[4542,"impl-From%3CNamespacePublicKey%3E-for-NamespaceId"],[4543,"impl-From%3C%26NamespacePublicKey%3E-for-NamespaceId"],[4544,"impl-From%3C%26%5Bu8;+32%5D%3E-for-NamespaceId"],[4545,"impl-From%3C%5Bu8;+32%5D%3E-for-NamespaceId"],[4548,"impl-From%3C%26AuthorPublicKey%3E-for-AuthorId"],[4549,"impl-From%3CAuthor%3E-for-AuthorId"],[4550,"impl-From%3CAuthorPublicKey%3E-for-AuthorId"],[4551,"impl-From%3C%26%5Bu8;+32%5D%3E-for-AuthorId"],[4552,"impl-From%3C%5Bu8;+32%5D%3E-for-AuthorId"],[4560,"impl-FromIterator%3C(AuthorId,+u64)%3E-for-AuthorHeads"],[4561,"impl-FromIterator%3C(u64,+AuthorId)%3E-for-AuthorHeads"],[5036,"impl-Debug-for-LiveEvent"],[5037,"impl-Display-for-LiveEvent"],[5212,"impl-Debug-for-AcceptError"],[5213,"impl-Display-for-AcceptError"],[5214,"impl-Debug-for-ConnectError"],[5215,"impl-Display-for-ConnectError"],[5368,"impl-QueryBuilder%3CSingleLatestPerKeyQuery%3E"],[5369,"impl-QueryBuilder%3CFlatQuery%3E"],[5432,"impl-Debug-for-OpenError"],[5433,"impl-Display-for-OpenError"],[5436,"impl-Debug-for-FilterKind"],[5437,"impl-Display-for-FilterKind"],[5456,"impl-From%3CQueryBuilder%3CFlatQuery%3E%3E-for-Query"],[5458,"impl-From%3CQueryBuilder%3CSingleLatestPerKeyQuery%3E%3E-for-Query"],[5480,"impl-Store"],[5481,"impl-DownloadPolicyStore-for-Store"],[6011,"impl-AsRef%3C%5Bu8%5D%3E-for-TopicId"],[6012,"impl-AsRef%3C%5Bu8;+32%5D%3E-for-TopicId"],[6100,"impl-Display-for-TopicId"],[6101,"impl-Debug-for-TopicId"],[6120,"impl-From%3CEvent%3CPI%3E%3E-for-Event%3CPI%3E"],[6121,"impl-From%3CEvent%3CPI%3E%3E-for-Event%3CPI%3E"],[6349,"impl-From%3COutEvent%3CPI%3E%3E-for-OutEvent%3CPI%3E"],[6351,"impl-From%3COutEvent%3CPI%3E%3E-for-OutEvent%3CPI%3E"],[6353,"impl-From%3CMessage%3E-for-Message%3CPI%3E"],[6354,"impl-From%3CMessage%3CPI%3E%3E-for-Message%3CPI%3E"],[6355,"impl-From%3CTimer%3E-for-Timer%3CPI%3E"],[6356,"impl-From%3CTimer%3CPI%3E%3E-for-Timer%3CPI%3E"],[6540,"impl-From%3CNodeInfo%3E-for-NodeAddr"],[6541,"impl-From%3CPublicKey%3E-for-NodeAddr"],[6542,"impl-From%3CConnectionInfo%3E-for-NodeAddr"],[6543,"impl-From%3C(PublicKey,+Option%3CRelayUrl%3E,+%26%5BSocketAddr%5D)%3E-for-NodeAddr"],[6627,"impl-Dialer"],[6628,"impl-Dialer-for-Dialer"],[6632,"impl-Dialer"],[6633,"impl-Dialer-for-Dialer"],[6635,"impl-Dialer"],[6636,"impl-Dialer-for-Dialer"],[6818,"impl-Display-for-IrohAttr"],[6819,"impl-Debug-for-IrohAttr"],[6823,"impl-From%3C%26TxtAttrs%3CIrohAttr%3E%3E-for-NodeInfo"],[6824,"impl-From%3CTxtAttrs%3CIrohAttr%3E%3E-for-NodeInfo"],[7077,"impl-Debug-for-ReadError"],[7078,"impl-Display-for-ReadError"],[7080,"impl-Display-for-WriteError"],[7081,"impl-Debug-for-WriteError"],[7083,"impl-Debug-for-VarInt"],[7084,"impl-Display-for-VarInt"],[7086,"impl-Debug-for-ConnectionError"],[7087,"impl-Display-for-ConnectionError"],[7090,"impl-Display-for-ControlMsg"],[7091,"impl-Debug-for-ControlMsg"],[7094,"impl-Display-for-ConnectionType"],[7095,"impl-Debug-for-ConnectionType"],[7099,"impl-Display-for-DirectAddrType"],[7100,"impl-Debug-for-DirectAddrType"],[7104,"impl-From%3CReadableError%3E-for-ReadError"],[7105,"impl-From%3CConnectionError%3E-for-ReadError"],[7110,"impl-From%3Cu32%3E-for-VarInt"],[7111,"impl-From%3CClosed%3E-for-VarInt"],[7113,"impl-From%3CStreamId%3E-for-VarInt"],[7114,"impl-From%3Cu8%3E-for-VarInt"],[7115,"impl-From%3Cu16%3E-for-VarInt"],[7118,"impl-From%3CClose%3E-for-ConnectionError"],[7119,"impl-From%3CError%3E-for-ConnectionError"],[7296,"impl-TryFrom%3Cusize%3E-for-VarInt"],[7297,"impl-TryFrom%3Cu64%3E-for-VarInt"],[7298,"impl-TryFrom%3Cu128%3E-for-VarInt"],[7425,"impl-Debug-for-Signature"],[7426,"impl-LowerHex-for-Signature"],[7427,"impl-UpperHex-for-Signature"],[7428,"impl-Display-for-Signature"],[7430,"impl-Debug-for-PublicKey"],[7431,"impl-Display-for-PublicKey"],[7432,"impl-Debug-for-KeyParsingError"],[7433,"impl-Display-for-KeyParsingError"],[7434,"impl-Debug-for-SecretKey"],[7435,"impl-Display-for-SecretKey"],[7437,"impl-From%3CInternalSignature%3E-for-Signature"],[7438,"impl-From%3C%26%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[7439,"impl-From%3C%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[7444,"impl-From%3CHexOrBase32ParseError%3E-for-KeyParsingError"],[7445,"impl-From%3CError%3E-for-KeyParsingError"],[7448,"impl-From%3CSigningKey%3E-for-SecretKey"],[7449,"impl-From%3C%5Bu8;+32%5D%3E-for-SecretKey"],[7481,"impl-Signature"],[7482,"impl-SignatureEncoding-for-Signature"],[7494,"impl-TryFrom%3C%26Signature%3E-for-Signature"],[7495,"impl-TryFrom%3CSignature%3E-for-Signature"],[7497,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-Signature"],[7499,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-PublicKey"],[7501,"impl-TryFrom%3C%26%5Bu8;+32%5D%3E-for-PublicKey"],[7763,"impl-Display-for-Report"],[7764,"impl-Debug-for-Report"],[7844,"impl-Display-for-PingError"],[7845,"impl-Debug-for-PingError"],[7847,"impl-From%3CError%3E-for-PingError"],[7848,"impl-From%3CSurgeError%3E-for-PingError"],[7908,"impl-Debug-for-ProbeOutput"],[7909,"impl-Display-for-ProbeOutput"],[8098,"impl-Display-for-RelayUrl"],[8099,"impl-Debug-for-RelayUrl"],[8102,"impl-Debug-for-HttpClientError"],[8103,"impl-Display-for-HttpClientError"],[8108,"impl-Debug-for-RelayMap"],[8109,"impl-Display-for-RelayMap"],[8110,"impl-Debug-for-RelayNode"],[8111,"impl-Display-for-RelayNode"],[8112,"impl-From%3CUrl%3E-for-RelayUrl"],[8114,"impl-From%3CRelayUrlInfo%3E-for-RelayUrl"],[8117,"impl-From%3CJoinError%3E-for-HttpClientError"],[8118,"impl-From%3CError%3E-for-HttpClientError"],[8119,"impl-From%3CError%3E-for-HttpClientError"],[8121,"impl-From%3CError%3E-for-HttpClientError"],[8122,"impl-From%3CError%3E-for-HttpClientError"],[8561,"impl-Debug-for-TransactionId"],[8562,"impl-Display-for-TransactionId"],[8564,"impl-Display-for-StunDecodeError"],[8565,"impl-Debug-for-StunDecodeError"],[8566,"impl-Display-for-Error"],[8567,"impl-Debug-for-Error"],[8570,"impl-From%3C%26%5Bu8;+stun_rs::::types::%7Bimpl%2313%7D::%7Bconstant%230%7D%5D%3E-for-TransactionId"],[8571,"impl-From%3C%5Bu8;+stun_rs::::types::%7Bimpl%2314%7D::%7Bconstant%230%7D%5D%3E-for-TransactionId"],[8573,"impl-From%3CErrorCode%3E-for-StunAttribute"],[8574,"impl-From%3CPasswordAlgorithm%3E-for-StunAttribute"],[8575,"impl-From%3CXorMappedAddress%3E-for-StunAttribute"],[8576,"impl-From%3CUserHash%3E-for-StunAttribute"],[8577,"impl-From%3CNonce%3E-for-StunAttribute"],[8578,"impl-From%3CUnknown%3E-for-StunAttribute"],[8579,"impl-From%3CMessageIntegrity%3E-for-StunAttribute"],[8580,"impl-From%3CMappedAddress%3E-for-StunAttribute"],[8582,"impl-From%3CFingerprint%3E-for-StunAttribute"],[8583,"impl-From%3CPasswordAlgorithms%3E-for-StunAttribute"],[8584,"impl-From%3CUserName%3E-for-StunAttribute"],[8585,"impl-From%3CSoftware%3E-for-StunAttribute"],[8586,"impl-From%3CMessageIntegritySha256%3E-for-StunAttribute"],[8587,"impl-From%3CAlternateServer%3E-for-StunAttribute"],[8588,"impl-From%3CUnknownAttributes%3E-for-StunAttribute"],[8589,"impl-From%3CRealm%3E-for-StunAttribute"],[8702,"impl-Debug-for-NodeTicket"],[8703,"impl-Display-for-NodeTicket"],[8739,"impl-Debug-for-GenError"],[8740,"impl-Display-for-GenError"],[8741,"impl-Debug-for-ParseError"],[8742,"impl-Display-for-ParseError"],[8743,"impl-Debug-for-VerificationError"],[8744,"impl-Display-for-VerificationError"],[9081,"impl-From%3CPathBuf%3E-for-DataSource"],[9082,"impl-From%3C%26Path%3E-for-DataSource"],[9116,"impl-Debug-for-BaoValidationError"],[9117,"impl-Display-for-BaoValidationError"],[9118,"impl-From%3CEncodeError%3E-for-BaoValidationError"],[9120,"impl-From%3CError%3E-for-BaoValidationError"],[9137,"impl-AsRef%3CPath%3E-for-IrohPaths"],[9138,"impl-AsRef%3Cstr%3E-for-IrohPaths"],[9147,"impl-Display-for-IrohPaths"],[9148,"impl-Debug-for-IrohPaths"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAFsWnwIFAAAACQABABQAEwApAAUANAADAEAAEQBqAAYAcgAFAHkAAQB/AAYAigAJAJUAAACXAAYApwAGAK8ACAC7AAEAvgACAMkAAQDMAAwA4gAFAOkAAwDuACQAFAESACgBDAA5AQIAPQEAAD8BAQBDAQIARwEAAEkBCABTAQIAZwEDAG4BAwB0ARsAkQEEAKsBFgDDASEA6AEAAO0BAADxAQQA9wEAAPkBAAAFAgAABwIAABACAAASAgAAFgItAEsCBQBUAgAAVgIAAFgCBQBqAgkAdQICAHkCAACDAgAAhgIEAJICBACZAgEAnAIBAJ8CAwCkAgIAqAIAAKoCBQC2AgsA0wICANcCFgDxAgIA9QIAAPoCAgD+AgsADAMCACYDBwAvAwMANAMFAF0DGwCBAxAAlAMBAJcDAACZAwAAnwMAAKEDAwCoAwEAygMBAM0DAgDRAzcAFgQIACEEBQApBBIAPwQCAFAEAgBUBA4AawQRAIAEAwCKBAEAkQQAAJUEAgCZBAwApwQSALsEAAC9BAYA0gQEANsEGwD4BBsAGAUAAB4FBwAvBQAAOQUAADwFAwBCBQUASQUcAHsFFACRBQgAnwUCAK4FAwCzBRMACAYAAC0GBgA2BikAYwYCAGcGBQBvBhcAiAYNAKMGBgDJBgAAywYFANgGLgAJBwwAGgcQAEcHBgBRBwkAYAcPAHEHGgCTBwQAmQcBAKIHAACnBwEArgcDAL8HAQDDBwcAzAcOANwHBADnBwMA7AcPAP0HAAD/BwUACAgGABAIAQAXCAQAHQgAACcIAAApCAAALAgRAD8IAwBWCAkAYQgHAGsIAABvCAEAfQgBAIAIFQCiCAMArQgBAMMIBQDLCAEA1AgVAOwIAwD0CAsAAgkEAAwJBwAbCQkAJwkJADYJIQBdCRMAeAkBAIIJAACHCQAAiwkAAJcJAgCcCQAAqAkcAMwJAADaCQUA5wkFAO4JAAD4CRsAJwoEAC0KFgBFCgEASAoCAEwKCABbCgoAZwoAAGkKAAB8CgAAfgoBAIEKAACDCgYAiwoRAJ4KBQCmChUAvgoKAMsKAADNChEA4goAAOQKFAD6CgMA/woAAAQLDQATCwIAJgsCACwLBAAzCwQAOgsAAEMLBgBLCwEATwsDAFYLAABZCwMAXgsIAGkLFQCBCwQAhwsCAIsLAQCOCwAAkgsAAJQLEQCxCwEAtAsAALYLFwDQCwAA0gsAAOALAADjCwIA5wsBAOoLAADsCwcA9QsGAP4LAwAEDAEADgwMACQMAgAoDAsANQwNAEQMBgBRDAIAWwwBAF8MAQBnDBAAewwLAJgMBgCgDBcAuQwYANsMBgDyDAUA+wwjACANFwA6DQQAQA0AAEMNAQBJDQcAUw0AAFYNAwBcDQEAZw0JAHINBAB7DQAAfQ0AAIENAQCEDQQAng0GAKoNLwDdDQUA5w0HAPQNDgAUDgYALw4GADcOAgA9DgAAPw4DAEgOEgBgDgcAbQ4AAHMOBgB8DjMAsQ4SAOgOBgDwDiMAGw8DACAPEwA4DwsARg8BAEsPAABRDwcAbw8BAHUPAQB6DwcAgw8DAJEPNADcDwEA4A8OAPIPAQD3DwIA/g8BAAEQCwAPEAAAEhAFABoQAgAfEAAAJhABACkQAAAtEAYANRABADkQBgBBEAIARxAAAE4QCwCNEBIAoRACAKoQBACyEDEA5hAlAA0RDwAiEQYAKhEQAD8RBQBHEVAAoREBAKcRAQCuEQAAshEAALQRAAC2EQEAuREAALsRBwDFEQUA0REBANURGQDxEQMANxIHAEgSDgBcEgAAZhIAAGsSHgCLElEA5hIYAAsTGgAnEwIALRMGADUTBAA9EwcARhMAAE0TEAB0ExwAkhMDAJgTDwCpEwcAthMAALkTBADOEwMA2RMhAAEUEQAUFAAAFhQOADoUFwBUFA0AaBQDAHkUAgB9FCwAzBQKANgUAQDdFBsA+xQVABMVCAAdFRgANxUPAEkVAABRFQAAUxUAAFcVAQBaFQsAahUAAJcVAQCbFQgAqhVFAPcVDgALFgAAFRYIACIWEwB/FgIAgxYVAJsWEgCyFgAAtRYCAL8WAQDCFgQAyRYaAOUWDgD1FgAA9xYQABMXBQAbFwMAIhcAACYXAAAoFwAAKhcAACwXAAAvFwcAORcBADwXAwBGFwMAbhcLAHwXGQCXF0gA4hcAAOkXAQDwFwsA/hcAABQYAwAaGAUAJBgLADIYJABYGAsAdxgCAHwYAwCfGA8AsBgJALsYEQDOGAAA0BgAANIYAwDZGAMA7hgAAPAYGwAPGQMAFBkBABoZAQAqGQcAMxkQAEUZAABIGQMATRkCAFQZAgBcGQUAZBkFAGsZAwB0GQAAdhkBAIEZCgCNGQMAkhkAAJUZAgCnGQEArxkBALYZCwDDGQIA3RkDAOMZAADlGQEA6hkBAO0ZBwD4GQAA+xkGAAQaAQAHGgAACRoBABMaAAAVGgkAIhoCACkaBAAvGgIANRoFAEIaEgBYGgIAYxoAAGUaAABnGgsAdBoCAI0aAQCQGgkAmxoLAKgaAQCsGgAAshoBALYaAAC/GgAAwxoAAMYaAADIGgwACRsKAB0bPQBeGwUAbBsCAHAbAwB3GwEAehsnAKQbGQDBGwEAxBsAAMcbAQDKGwIAzxsBANsbCgDtGwIACxwBAA4cAQARHAEAJhwBAC8cAgA0HAcAPxwFAFYcAwBeHAIAZxwRAHocBgCEHB8ApRwlANEcAQDdHAMA4hwqAA4dAgAUHQIAGR0BAB8dAgAjHQIAKB0AAC8dAAA0HQIAOR0AADsdAAA+HQYARh0LAFMdCQBeHQQAZx0AAGkdCQB1HQIAfR0BAIAdAACDHQQAjx0GAJcdEACrHQYAsx0IAL4dBQDJHQEA0h0NAOEdAADjHQEA6h0GAPIdAQD1HQoAAR4AAAceBAAOHg0AHh4BACUeBgAtHgEAMx4LAEAeFwBcHgMAbx4AAHMeAAB8HhcAlR4DAJ0eDACsHgAAsR4KAMEeAwDGHhEA2R4AANseAADfHgoA7x4DAPgeBAAAHwEAAx8AAAUfEwAbHwgAVR8GAF0fEwBzHw0AhB8DAIsfAgCPHyIAsx8AALYfAgC6HwEAwx8HAM0fAADmHwEA8x8BAPgfAAD7HygAJiAJADogCQBFIAAASCADAE0gAABdIAEAZSAVAH0gAQCBIAMAhiACAI4gCgCkIAEAtyAAALsgAADAIAQA0yAiAPggCgAnIQIAKyEAADYhAAA+IRMAUyEAAFUhCgBwIQgAeyEBAH4hBwCHIQcAkSECAJUhAACwIQAAsyEfANghAwDfIQEA7CEHAPUhCwACIgIACCIHABgiEQAtIgAALyIAADEiAAA6IhQAUCIEAFkiCABjIgsAcCIAAHQiAAB6IgUAgSIZAJwiAQCfIgEApyIFAMYiAwDOIg8A4yIMAPciCwAHIwAADCMDADEjAAA4IyMAZSMFAGwjCQB3IwEAeiMBAH0jAQCFIwAAjSMJAJsjBAChIwAAoyMFALEjDAC/IwEAwiMGAM4jAQDRIw8A5SMBAPEjAwD4IwkAAyQHAA=="}],\ +["iroh_base",{"t":"CCCCCCPFGPGPPPPNNNNNNNNNNNNHNNNNNNHHNNNNNNNNOHHHONNNNNNNNNNNNNNNNNNGTFFPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTPPGISFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFGPPFPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNONNNNNNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNPPFINNNNNNNNNNNNNNNNNNFPGTPFPKPNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNO","n":["base32","hash","key","node_addr","rpc","ticket","Base32","DecodeError","DecodeKind","Hex","HexOrBase32ParseError","Length","Padding","Symbol","Trailing","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_append","fmt_short","from","from","from","from","from","into","into","into","kind","parse_array","parse_array_hex_or_base32","parse_vec","position","source","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","BlobFormat","EMPTY","Hash","HashAndFormat","HashSeq","Raw","as_bytes","as_bytes","as_bytes","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","cmp","compare","default","deserialize","deserialize","deserialize","encode_hex","encode_hex_upper","eq","eq","eq","fixed_width","fixed_width","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","format","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_str","from_str","hash","hash","hash","hash","hash_seq","into","into","into","is_hash_seq","is_raw","new","new","partial_cmp","partial_cmp","partial_cmp","raw","serialize","serialize","serialize","to_hex","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","type_name","type_name","vzip","vzip","vzip","BYTE_SIZE","Base32","Key","KeyParsingError","NodeId","PUBLIC_KEY_LENGTH","PublicKey","SecretKey","SharedSecret","Signature","as_bytes","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","deserialize","deserialize","deserialize","encode_hex","encode_hex_upper","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_components","from_slice","from_str","from_str","from_str","generate","generate_with_rng","hash","into","into","into","into","into","open","partial_cmp","public","r_bytes","s_bytes","seal","serialize","serialize","serialize","shared","sign","source","to_bytes","to_bytes","to_bytes","to_openssh","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_vec","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_openssh","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","AddrInfo","AddrInfoOptions","Addresses","Id","NodeAddr","Relay","RelayAndAddresses","RelayUrl","apply_options","apply_options","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","default","default","deref","deserialize","deserialize","deserialize","deserialize","direct_addresses","direct_addresses","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_parts","from_str","from_str","hash","info","into","into","into","into","is_empty","new","node_id","partial_cmp","partial_cmp","partial_cmp","relay_url","relay_url","serialize","serialize","serialize","serialize","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","with_direct_addresses","with_relay_url","Err","Ok","RpcError","RpcResult","borrow","borrow_mut","clone","clone_into","deserialize","fmt","fmt","from","from","from","into","serialize","to_owned","to_string","try_from","try_into","type_id","vzip","BlobTicket","Encoding","Error","KIND","Kind","NodeTicket","Postcard","Ticket","Verify","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deserialize","deserialize","deserialize","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","format","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_str","from_str","hash","into","into","into","into_parts","new","new","node_addr","node_addr","recursive","serialize","serialize","serialize","source","to_bytes","to_bytes","to_bytes","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","expected"],"q":[[0,"iroh_base"],[6,"iroh_base::base32"],[67,"iroh_base::hash"],[165,"iroh_base::key"],[294,"iroh_base::node_addr"],[394,"iroh_base::rpc"],[416,"iroh_base::ticket"],[491,"iroh_base::ticket::Error"],[492,"data_encoding"],[493,"alloc::string"],[494,"core::convert"],[495,"core::fmt"],[496,"core::result"],[497,"hex::error"],[498,"alloc::vec"],[499,"core::error"],[500,"core::option"],[501,"core::any"],[502,"core::cmp"],[503,"serde::de"],[504,"core::iter::traits::collect"],[505,"iroh_blake3"],[506,"core::hash"],[507,"serde::ser"],[508,"redb::types"],[509,"ed25519"],[510,"iroh_base::key::encryption"],[511,"ed25519_dalek::signature"],[512,"ed25519_dalek::verifying"],[513,"ed25519_dalek::errors"],[514,"ed25519_dalek::signing"],[515,"signature::error"],[516,"rand_core"],[517,"core::marker"],[518,"aead"],[519,"anyhow"],[520,"zeroize"],[521,"ssh_key::error"],[522,"ssh_key::signature"],[523,"core::net::socket_addr"],[524,"core::iter::traits::iterator"],[525,"url"],[526,"std::io::error"],[527,"iroh_base::ticket::blob"],[528,"iroh_base::ticket::node"],[529,"postcard::error"],[530,"ed25519_dalek::constants"]],"i":[0,0,0,0,0,0,12,0,0,12,0,1,1,1,1,1,2,12,1,2,12,1,2,1,2,1,2,0,1,1,2,2,12,12,0,0,1,2,12,12,12,1,2,12,2,0,0,0,2,12,1,2,1,2,12,1,2,12,1,2,12,1,2,12,1,2,12,0,21,0,0,22,22,21,21,23,21,21,21,21,22,23,21,22,23,21,22,23,21,22,23,21,22,23,21,22,21,22,23,21,21,21,22,23,21,23,21,21,22,22,23,23,21,23,21,21,21,21,22,23,21,21,23,21,23,21,22,23,23,23,21,22,23,22,22,21,23,21,22,23,23,21,22,23,21,21,22,23,21,22,23,21,22,23,21,22,23,21,22,23,21,23,21,22,23,34,37,37,0,0,0,0,0,0,0,33,33,34,36,33,37,35,34,36,33,37,35,34,33,35,34,33,35,33,34,33,35,33,33,34,33,34,34,34,34,36,33,33,37,37,35,35,33,34,34,34,34,36,33,33,37,37,37,35,35,35,34,33,35,34,34,34,33,35,35,35,33,34,36,33,37,35,36,33,35,34,34,36,34,33,35,35,35,37,34,34,35,35,34,33,35,34,33,37,35,34,34,34,34,34,36,33,33,33,37,35,35,35,34,36,33,37,35,34,36,33,37,35,33,34,36,33,37,35,0,0,52,52,0,52,52,0,51,53,51,53,52,54,51,53,52,54,51,53,52,54,51,53,52,54,51,53,54,53,52,54,51,53,52,54,51,53,51,53,52,54,51,53,52,52,54,54,51,51,51,53,52,54,54,51,52,54,54,51,51,53,52,54,53,51,51,51,53,54,51,53,51,53,52,54,51,53,52,54,52,54,51,53,52,54,51,53,52,54,51,53,52,54,51,53,52,54,51,51,70,70,0,0,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,0,68,0,67,68,0,68,0,68,65,66,68,65,66,68,65,66,65,66,67,65,66,65,66,65,65,66,66,68,68,65,65,66,68,68,68,67,65,66,65,66,65,65,66,68,65,65,66,65,66,65,67,65,66,68,67,65,66,65,66,65,66,68,65,66,68,65,66,68,65,66,68,65,66,68,71],"f":"```````````````{ce{}{}}00000{bb}{dd}{{ce}f{}{}}0{{bb}h}{{dd}h}{cj{{A`{{n{l}}}}}}{{bAb}{{Af{fAd}}}}0{{dAb}{{Af{fAd}}}}0{{AhAb}Aj}0{{cj}f{{A`{{n{l}}}}}}4{cc{}}00{dAh}{AlAh}===`{An{{Af{{B`{l}}d}}}}{An{{Af{{B`{l}}Ah}}}}{An{{Af{{Bb{l}}d}}}}`{Ah{{Bf{Bd}}}}{ce{}{}}0{cj{}}00{c{{Af{e}}}{}{}}00000{cBh{}}00333``````3{Bj{{B`{l}}}}4{Bj{{n{l}}}}51055555{BjBj}{BlBl}{BnBn}{{ce}f{}{}}00{{BjBj}C`}{{BlBl}C`}{{BnBn}C`}{{{n{l}}{n{l}}}C`}{{}Bl}{c{{Af{Bj}}}Cb}{c{{Af{Bl}}}Cb}{c{{Af{Bn}}}Cb}{ce{}{{Cf{Cd}}}}0{{BjBj}h}{{BlBl}h}{{BnBn}h}{{}{{Bf{Ch}}}}0{{BjAb}Aj}0{{BlAb}Aj}0{{BnAb}Aj}0{Bjj}`{cc{}}{CjBj}{{{B`{l}}}Bj}022{{{n{l}}}c{}}10{An{{Af{Bjc}}}{}}{An{{Af{Bnc}}}{}}{{Bjc}fCl}{{Blc}fCl}{{Bnc}fCl}`{BjBn}{ce{}{}}00{Blh}0{cBj{{A`{{n{l}}}}}}{{BjBl}Bn}{{BjBj}{{Bf{C`}}}}{{BlBl}{{Bf{C`}}}}{{BnBn}{{Bf{C`}}}}7{{Bjc}AfCn}{{Blc}AfCn}{{Bnc}AfCn}{Bjj}:::{cj{}}00{c{{Af{e}}}{}{}}00000{cBh{}}00{{}D`}0>>>``````````{Db{{B`{l}}}}{Db{{n{l}}}}{ce{}{}}000000000{DdDd}{DbDb}{DfDf}{{ce}f{}{}}00{{DbDb}C`}{c{{Af{Dd}}}Cb}{c{{Af{Db}}}Cb}{c{{Af{Df}}}Cb}{ce{}{{Cf{Cd}}}}0{{DdDd}h}{{DbDb}h}{{DdAb}{{Af{fAd}}}}000{{DhAb}Aj}{{DbAb}Aj}0{{DjAb}Aj}0{{DfAb}Aj}0{Dbj}{{{B`{l}}}Dd}{cc{}}{DlDd}211{DnDb}{AhDj}{E`Dj}44{EbDf}{{{B`{l}}}Df}7{{{B`{l}}}{{Af{DbE`}}}}1{{{B`{l}}{B`{l}}}Dd}{{{n{l}}}{{Af{DdEd}}}}{An{{Af{DdEd}}}}{An{{Af{Dbc}}}{}}{An{{Af{Dfc}}}{}}{{}Df}{cDf{EfEh}}{{Dbc}fCl}{ce{}{}}0000{{DhEj}{{El{f}}}}{{DbDb}{{Bf{C`}}}}{DfDb}{Dd{{B`{l}}}}0{{DhEj}f}{{Ddc}AfCn}{{Dbc}AfCn}{{Dfc}AfCn}{{DfDb}Dh}{{Df{n{l}}}Dd}{Dj{{Bf{Bd}}}}77{Df{{B`{l}}}}{Df{{F`{{En{j}}}}}}==={cj{}}000{Dd{{Bb{l}}}}{c{{Af{e}}}{}{}}{Fb{{Af{DdFd}}}}0{{{n{l}}}{{Af{DdEd}}}}2{{{n{l}}}{{Af{Dbc}}}{}}{{{B`{l}}}{{Af{Dbc}}}{}}44{{{n{l}}}{{Af{Dfc}}}{}}5{c{{El{Df}}}{{A`{{n{l}}}}}}66666{cBh{}}0000{{Db{n{l}}Dd}{{Af{fE`}}}}{ce{}{}}0000````````{{FfFh}f}{{FjFh}f}22222222{FfFf}{FjFj}{FhFh}{FlFl}{{ce}f{}{}}000{{FfFf}C`}{{FjFj}C`}{{FlFl}C`}{{}Fj}{{}Fh}{Flc{}}{c{{Af{Ff}}}Cb}{c{{Af{Fj}}}Cb}{c{{Af{Fh}}}Cb}{c{{Af{Fl}}}Cb}{Ff{{`{{Gb{}{{Fn{G`}}}}}}}}`{{FfFf}h}{{FjFj}h}{{FhFh}h}{{FlFl}h}{{FfAb}Aj}{{FjAb}Aj}{{FhAb}Aj}0{{FlAb}Aj}0{{{Gd{Db{Bf{Fl}}{n{G`}}}}}Ff}{cc{}}{GfFf}11{GhFl}2{{Db{Bf{Fl}}{Bb{G`}}}Ff}{An{{Af{Fhc}}}{}}{An{{Af{Flc}}}{}}{{Flc}fCl}`{ce{}{}}000{Fjh}{DbFf}`{{FfFf}{{Bf{C`}}}}{{FjFj}{{Bf{C`}}}}{{FlFl}{{Bf{C`}}}}{Ff{{Bf{Fl}}}}`{{Ffc}AfCn}{{Fjc}AfCn}{{Fhc}AfCn}{{Flc}AfCn}::::{cj{}}0{c{{Af{e}}}{}{}}0000000{cBh{}}000===={{Ffc}Ff{{Gj{}{{Fn{G`}}}}}}{{FfFl}Ff}````??{GlGl}{{ce}f{}{}}{c{{Af{Gl}}}Cb}{{GlAb}Aj}0{GnGl}{H`Gl}{cc{}}{ce{}{}}{{Glc}AfCn}1=<<;1`````````111111{HbHb}{HdHd}99{An{{Af{HfHh}}}}{c{{El{Hb}}}Cb}{c{{El{Hd}}}Cb}{{HbHb}h}{{HdHd}h}{{HbAb}Aj}0{{HdAb}Aj}0{{HhAb}Aj}0{HbBl}=={dHh}>{HjHh}{{{n{l}}}{{Af{HfHh}}}}{{{n{l}}}{{Af{HbHh}}}}{{{n{l}}}{{Af{HdHh}}}}{An{{El{Hbc}}}{}}{An{{El{Hdc}}}{}}{HbBj}{ce{}{}}00{Hb{{Gd{FfBjBl}}}}{{FfBjBl}{{El{Hb}}}}{Ff{{El{Hd}}}}{HbFf}{HdFf}{Hbh}{Hfj}{{Hbc}ElCn}{{Hdc}ElCn}{Hh{{Bf{Bd}}}}{Hf{{Bb{l}}}}{Hb{{Bb{l}}}}{Hd{{Bb{l}}}}=={cj{}}00{c{{Af{e}}}{}{}}00000{cBh{}}00{ce{}{}}00`","D":"ACf","p":[[6,"DecodeKind",6,492],[5,"DecodeError",6,492],[1,"unit"],[1,"bool"],[5,"String",493],[1,"u8"],[1,"slice"],[10,"AsRef",494],[5,"Formatter",495],[5,"Error",495],[6,"Result",496],[6,"HexOrBase32ParseError",6],[8,"Result",495],[6,"FromHexError",497],[1,"str"],[1,"array"],[5,"Vec",498],[10,"Error",499],[6,"Option",500],[5,"TypeId",501],[5,"Hash",67],[6,"BlobFormat",67],[5,"HashAndFormat",67],[6,"Ordering",502],[10,"Deserializer",503],[1,"char"],[10,"FromIterator",504],[1,"usize"],[5,"Hash",505],[10,"Hasher",506],[10,"Serializer",507],[5,"TypeName",508],[5,"PublicKey",165],[5,"Signature",165,509],[5,"SecretKey",165],[5,"SharedSecret",165,510],[6,"KeyParsingError",165],[5,"InternalSignature",511],[5,"VerifyingKey",512],[8,"SignatureError",513],[5,"SigningKey",514],[5,"Error",515],[10,"CryptoRngCore",516],[10,"Sized",517],[10,"Buffer",518],[8,"Result",519],[5,"Zeroizing",520],[8,"Result",521],[5,"Signature",522],[6,"Error",521],[5,"NodeAddr",294],[6,"AddrInfoOptions",294],[5,"AddrInfo",294],[5,"RelayUrl",294],[17,"Item"],[6,"SocketAddr",523],[10,"Iterator",524],[1,"tuple"],[8,"NodeId",165],[5,"Url",525],[10,"IntoIterator",504],[5,"RpcError",394],[5,"Error",519],[5,"Error",526],[5,"BlobTicket",416,527],[5,"NodeTicket",416,528],[10,"Ticket",416],[6,"Error",416],[6,"Error",529],[8,"RpcResult",394],[15,"Kind",491]],"r":[[7,492],[8,492],[170,530],[173,510],[174,509],[416,527],[421,528]],"b":[[28,"impl-Display-for-DecodeKind"],[29,"impl-Debug-for-DecodeKind"],[30,"impl-Debug-for-DecodeError"],[31,"impl-Display-for-DecodeError"],[32,"impl-Debug-for-HexOrBase32ParseError"],[33,"impl-Display-for-HexOrBase32ParseError"],[39,"impl-From%3CDecodeError%3E-for-HexOrBase32ParseError"],[40,"impl-From%3CFromHexError%3E-for-HexOrBase32ParseError"],[73,"impl-Value-for-Hash"],[74,"impl-Hash"],[78,"impl-Borrow%3C%5Bu8;+32%5D%3E-for-Hash"],[79,"impl-Borrow%3C%5Bu8%5D%3E-for-Hash"],[106,"impl-Debug-for-Hash"],[107,"impl-Display-for-Hash"],[108,"impl-Debug-for-BlobFormat"],[109,"impl-Display-for-BlobFormat"],[110,"impl-Display-for-HashAndFormat"],[111,"impl-Debug-for-HashAndFormat"],[115,"impl-From%3CHash%3E-for-Hash"],[116,"impl-From%3C%26%5Bu8;+32%5D%3E-for-Hash"],[117,"impl-From%3C%5Bu8;+32%5D%3E-for-Hash"],[120,"impl-Value-for-Hash"],[121,"impl-Hash"],[201,"impl-Debug-for-Signature"],[202,"impl-UpperHex-for-Signature"],[203,"impl-LowerHex-for-Signature"],[204,"impl-Display-for-Signature"],[206,"impl-Debug-for-PublicKey"],[207,"impl-Display-for-PublicKey"],[208,"impl-Display-for-KeyParsingError"],[209,"impl-Debug-for-KeyParsingError"],[210,"impl-Debug-for-SecretKey"],[211,"impl-Display-for-SecretKey"],[213,"impl-From%3C%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[215,"impl-From%3CInternalSignature%3E-for-Signature"],[216,"impl-From%3C%26%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[220,"impl-From%3CHexOrBase32ParseError%3E-for-KeyParsingError"],[221,"impl-From%3CError%3E-for-KeyParsingError"],[224,"impl-From%3CSigningKey%3E-for-SecretKey"],[225,"impl-From%3C%5Bu8;+32%5D%3E-for-SecretKey"],[254,"impl-SignatureEncoding-for-Signature"],[255,"impl-Signature"],[267,"impl-TryFrom%3CSignature%3E-for-Signature"],[268,"impl-TryFrom%3C%26Signature%3E-for-Signature"],[269,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-Signature"],[271,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-PublicKey"],[272,"impl-TryFrom%3C%26%5Bu8;+32%5D%3E-for-PublicKey"],[338,"impl-Debug-for-AddrInfoOptions"],[339,"impl-Display-for-AddrInfoOptions"],[340,"impl-Debug-for-RelayUrl"],[341,"impl-Display-for-RelayUrl"],[342,"impl-From%3C(PublicKey,+Option%3CRelayUrl%3E,+%26%5BSocketAddr%5D)%3E-for-NodeAddr"],[344,"impl-From%3CPublicKey%3E-for-NodeAddr"],[403,"impl-Display-for-RpcError"],[404,"impl-Debug-for-RpcError"],[405,"impl-From%3CError%3E-for-RpcError"],[406,"impl-From%3CError%3E-for-RpcError"],[440,"impl-Display-for-BlobTicket"],[441,"impl-Debug-for-BlobTicket"],[442,"impl-Debug-for-NodeTicket"],[443,"impl-Display-for-NodeTicket"],[444,"impl-Debug-for-Error"],[445,"impl-Display-for-Error"],[449,"impl-From%3CDecodeError%3E-for-Error"],[451,"impl-From%3CError%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAFEBLAABAAAABQABABAACwAdAAUAKAABADIAEQBKAAAATAAkAHQAAgB5AAAAewAFAIoAAgCOAAIAkgATALEAIwDWAAAA2AABANwAAgDhAAEA6AACAO0AAAD0AAAA+QACAP4AAQADAQYACwEKABcBCQAiAQQAMQEZAE0BCgBZAQAAXAEAAF8BAgBqAQIAbwEZAI8BCACaAQYAqgEJALUBCQDCAQAAxAEAAMYBAwDVAQIA2QETAA=="}],\ +["iroh_blobs",{"t":"GTFFPSPEENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNCNNNNNNNNNCONNNNNNNNNNNNNNNCNNNONCNNNNNCNNNNNCCNNNNCNNNNNNNNNNNNNNNNNNNCNNNPPPPFRRKGPFFFFPGKFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNONNNNNNNNNNMNOOOOONNNNMNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPGPPNNNNNNHHHNNNNNNNNNNOOOOOOOOCFTKNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNPPPGPFPNNNNNOONNCNNONNNNCNNNNNNNNNNNNCNNNCCNNNNNNNNNNNNPPGGPPPPGPPPPPPPPNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNHNNNNOOOOOOOOOOOOOOOOPGPPPPPNNNNNNNNNNNNNNNNNNNNFFGFFFFFFGPPGGGPGPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGFPPIPFNNNNNNNNNOONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNONNNONNNOONONNNONNNNNNNNNNNNNNNHHHHHFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNFNNNNNNOOOOOOOOOOOONNNNNNNNNNNSGTPFSFPFFGPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGPPPPGKPPPPFPGPPPPPFNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNHHNNNNNOHMOHNNNNHNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPKGPPPGPPPPPPPIPPPRPRPGPPPGGGGIPPGPGGGPKKKKPPPPPPPPKGPPPPKPPPPPGPPNNNNNNNEMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNNNMNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNMNNMMMMMMNNMMNNNNNNNNNNNNNMCNMMNECNNNNNNMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTFIFFTFFFNNNNNONNNNNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNOOOOOOONNNNONONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPGPGFFKKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNCNNNNNMMNNNCNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPFFFPGFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFPFFKFRPGIKFPFFNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["BlobFormat","EMPTY","Hash","HashAndFormat","HashSeq","IROH_BLOCK_SIZE","Raw","Tag","TempTag","__clone_box","__clone_box","__clone_box","as_bits","as_bytes","as_bytes","as_bytes","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","cmp","compare","compare","compare","compare","default","deserialize","deserialize","deserialize","downloader","encode_hex","encode_hex_upper","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export","fixed_width","fixed_width","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","format","format","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_ref","from_ref","from_ref","from_str","from_str","get","hash","hash","hash","hash","hash_seq","hashseq","into","into","into","is_hash_seq","is_raw","metrics","new","new","partial_cmp","partial_cmp","partial_cmp","protocol","provider","raw","serialize","serialize","serialize","store","to_hex","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_as_bits","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","type_name","type_name","util","vzip","vzip","vzip","AbortRequest","ActorClosed","AllIntentsDropped","Cancelled","ConcurrencyLimits","Connection","Connection","Dialer","DownloadError","DownloadFailed","DownloadHandle","DownloadKind","DownloadRequest","Downloader","DropPeer","FailureAction","Getter","IntentId","NoProviders","RetryConfig","RetryLater","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cancel","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","default","default","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","format","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","get","hash","hash","hash","hash_and_format","initial_retry_delay","into","into","into","into","into","into","into","into","into","into_future","is_pending","join","max_concurrent_dials_per_hash","max_concurrent_requests","max_concurrent_requests_per_node","max_open_connections","max_retries_per_node","new","new","nodes_have","partial_cmp","pending_count","poll","progress_sender","queue","queue_dial","race","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_config","Abort","AllDone","Done","ExportProgress","Found","Progress","__clone_box","borrow","borrow_mut","clone","clone_into","deserialize","export","export_blob","export_collection","fmt","from","from_ref","into","serialize","to_owned","try_from","try_into","type_id","vzip","hash","id","id","id","meta","offset","outpath","size","collection","Collection","HEADER","SimpleStore","__clone_box","borrow","borrow_mut","clone","clone_into","default","deserialize","eq","extend","fmt","from","from_iter","from_ref","index","into","into_iter","is_empty","iter","len","load","load","load_db","push","read_fsm","read_fsm_all","serialize","store","to_blobs","to_owned","try_from","try_into","type_id","vzip","Connection","Decode","Generic","GetResponseError","Read","Stats","Write","__clone_box","borrow","borrow","borrow_mut","borrow_mut","bytes_read","bytes_written","clone","clone_into","db","default","deserialize","elapsed","eq","equivalent","equivalent","equivalent","error","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_ref","fsm","into","into","mbits","progress","request","serialize","source","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Abort","AllDone","BlobId","BlobInfo","Child","Complete","Connected","Done","DownloadProgress","Found","FoundHashSeq","FoundLocal","InitialState","Missing","Partial","Progress","Root","__clone_box","__clone_box","__clone_box","blob_info","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","compare","deserialize","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","get_to_db","hash","into","into","into","missing_ranges","partial_cmp","serialize","serialize","size","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","valid_ranges","valid_ranges","vzip","vzip","vzip","entry","size","valid_ranges","child","child","children","hash","hash","hash","id","id","id","offset","size","size","valid_ranges","BadRequest","GetError","Io","LocalFailure","NoncompliantNode","NotFound","RemoteReset","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","from","into","source","to_string","try_from","try_into","type_id","vzip","AtBlobContent","AtBlobHeader","AtBlobHeaderNextError","AtClosing","AtConnected","AtEndBlob","AtInitial","AtStartChild","AtStartRoot","BlobContentNext","Closing","Closing","ConnectedNext","ConnectedNextError","DecodeError","Done","EndBlobNext","Io","Io","Io","LeafHashMismatch","LeafNotFound","More","MoreChildren","NotFound","NotFound","ParentHashMismatch","ParentNotFound","PostcardSer","Read","Read","RequestTooBig","StartChild","StartRoot","Write","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","child_offset","concatenate_into_vec","concatenate_into_vec","drain","drain","finish","finish","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into","into","new","next","next","next","next","next","next","next","next","offset","offset","ranges","ranges","ranges","source","source","start","to_string","to_string","to_string","tree","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_all","write_all","write_all_batch","write_all_batch","write_all_with_outboard","write_all_with_outboard","BlobProgress","BlobState","Done","Pending","ProgressId","Progressing","TransferState","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","child_count","children","clone","clone","clone","clone_into","clone_into","clone_into","connected","current","default","deserialize","deserialize","deserialize","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","get_blob","get_current","hash","into","into","into","local_ranges","new","new","on_progress","progress","progress_id_to_blob","root","root","serialize","serialize","serialize","size","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","get_chunk_probe","get_hash_seq_and_sizes","get_unverified_size","get_verified_size","random_hash_seq_ranges","HashSeq","HashSeqIter","HashSeqStream","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","fmt","fmt","fmt","from","from","from","from_iter","from_ref","from_ref","from_ref","get","into","into","into","into_fallible","into_inner","into_iter","into_iter","is_empty","iter","len","new","next","next","parse_hash_seq","pop_front","skip","to_owned","to_owned","to_owned","transpose_into_fallible","try_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Metrics","__clone_box","borrow","borrow_mut","clone","clone_into","default","download_bytes_total","download_time_total","downloader_tick_connection_ready","downloader_tick_goodbye_node","downloader_tick_main","downloader_tick_message_received","downloader_tick_retry_node","downloader_tick_transfer_completed","downloader_tick_transfer_failed","downloads_error","downloads_notfound","downloads_success","fmt","from","from_ref","into","iter","name","to_owned","try_from","try_into","type_id","vzip","ALPN","Closed","EMPTY","Get","GetRequest","MAX_MESSAGE_SIZE","NonEmptyRequestRangeSpecIter","ProviderTerminating","RangeSpec","RangeSpecSeq","Request","RequestReceived","StreamDropped","UnknownErrorCode","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","all","all","all","as_single","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","deserialize","deserialize","deserialize","deserialize","empty","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_ranges","from_ranges_infinite","from_ref","from_ref","from_ref","from_ref","from_ref","hash","hash","hash","hash","into","into","into","into","into","into","into","into_fallible","into_iter","is_all","is_empty","iter","iter_non_empty","last_chunk","last_chunks","new","new","new","next","ranges","reason","serialize","serialize","serialize","serialize","single","to_chunk_ranges","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","transpose_into_fallible","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Abort","AddProgress","AllDone","ClientConnected","CustomGetRequestReceived","Done","Event","EventSender","Found","GetRequestReceived","NotFound","Progress","ResponseWriter","Sent","SentStatus","TaggedBlobAdded","TransferAborted","TransferBlobCompleted","TransferCompleted","TransferHashSeqStarted","TransferStats","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","default","deserialize","duration","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_ref","from_ref","from_ref","handle_connection","handle_get","into","into","into","into","into","read","read_request","send","send","send_blob","serialize","to_owned","to_owned","to_owned","transfer_collection","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","format","hash","hash","id","id","id","name","offset","size","tag","connection_id","connection_id","connection_id","connection_id","connection_id","connection_id","connection_id","format","hash","hash","hash","index","len","num_blobs","request_id","request_id","request_id","request_id","request_id","request_id","size","stats","stats","tag","Abort","Abort","AllDone","BaoBatchWriter","BaoBlobSize","Blob","Collection","Complete","ConsistencyCheckProgress","Copy","Copy","CopyProgress","CustomDebug","CustomDebug","CustomWarning","CustomWarning","DbIter","Done","Done","Entry","Entry","EntryDone","EntryMut","EntryProgress","EntryStatus","Error","Error","Error","Event","ExportFormat","ExportMode","ExportProgress","ExportProgressCb","Found","GcCompleted","GcMarkEvent","GcStarted","GcSweepEvent","ImportMode","ImportProgress","Info","Map","MapEntry","MapEntryMut","MapMut","NotFound","OutboardDone","OutboardProgress","Partial","PartialEntry","PartialEntryDone","PartialEntryProgress","Progress","ReadableStore","ReportLevel","Size","Start","Start","Starting","Store","Trace","TryReference","TryReference","Unverified","Update","ValidateProgress","Verified","Warn","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","bao_tree","batch_writer","blobs","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","consistency_check","create_tag","data_reader","default","default","default","delete","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","entry_status","entry_status_sync","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","fs","gc_mark","gc_mark","gc_start","gc_sweep","gc_sweep","get","get_mut","get_or_create","hash","import_bytes","import_file","import_reader","import_reader","import_stream","insert_complete","into","into","into","into","into","into","into","into","into","into","into","into","into","is_complete","mem","new","outboard","partial_blobs","partial_cmp","range_collections","readonly_mem","serialize","serialize","serialize","serialize","serialize","serialize","set_tag","shutdown","size","sync","tags","temp_tag","temp_tags","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","validate","validate","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_batch","entry","level","message","hash","id","id","id","offset","path","stable","hash","id","id","id","id","id","name","offset","offset","size","error","hash","hash","id","id","id","id","id","id","offset","offset","path","path","ranges","size","size","total","ALWAYS_INLINE","BatchOptions","Entry","FlatStorePaths","InlineOptions","NO_INLINE","Options","PathOptions","Store","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","batch","batch_writer","blobs","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","complete","consistency_check","create_tag","data_path","data_reader","default","default","delete","dump","entry_status","entry_status_sync","export","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","gc_start","get","get_mut","get_or_create","hash","import_bytes","import_file","import_flat_store","import_stream","inline","insert_complete","into","into","into","into","into","into","is_complete","load","max_data_inlined","max_outboard_inlined","max_read_batch","max_read_duration","max_write_batch","max_write_duration","meta","new","outboard","owned_data_path","owned_outboard_path","partial","partial_blobs","path","set_tag","shutdown","size","sync","tags","temp_path","temp_tag","temp_tags","to_owned","to_owned","to_owned","to_owned","to_owned","transform_entries","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","update_inline_options","vzip","vzip","vzip","vzip","vzip","vzip","Entry","Store","__clone_box","__clone_box","batch_writer","blobs","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","consistency_check","create_tag","data_reader","default","delete","entry_status","entry_status_sync","export","fmt","fmt","from","from","from_ref","from_ref","gc_start","get","get_mut","get_or_create","hash","import_bytes","import_file","import_stream","insert_complete","into","into","is_complete","new","outboard","partial_blobs","set_tag","shutdown","size","tags","temp_tag","temp_tags","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Entry","Store","__clone_box","__clone_box","batch_writer","blobs","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","consistency_check","create_tag","data_reader","default","delete","entry_status","entry_status_sync","export","fmt","fmt","from","from","from_iter","from_ref","from_ref","gc_start","get","get_content","get_mut","get_or_create","hash","import_bytes","import_file","import_stream","insert","insert_complete","insert_many","into","into","is_complete","new","outboard","partial_blobs","set_tag","shutdown","size","tags","temp_tag","temp_tags","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Auto","File","Mem","MemOrFile","Named","SetTagOption","SparseMemFile","Tag","TagCounter","TagDrop","TempTag","__clone_box","__clone_box","as_bits","as_bytes","as_bytes","as_ref","as_ref","as_weak","auto","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","compare","compare","compare","compare","default","default","deref","deserialize","deserialize","drop","encode_hex","encode_hex_upper","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fixed_width","fixed_width","flush","fmt","fmt","fmt","fmt","fmt","fmt","format","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_ref","from_ref","hash","inner","into","into","into","into","into","into_parts","io","is_mem","leak","local_pool","map_file","map_mem","mem","new","new","on_create","on_drop","partial_cmp","partial_cmp","persist","progress","read_at","read_at","serialize","serialize","size","size","size","temp_tag","to_owned","to_owned","to_string","total_bytes","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_map_file","type_id","type_id","type_id","type_id","type_id","type_name","type_name","vzip","vzip","vzip","vzip","vzip","write_at","TrackingReader","TrackingWriter","borrow","borrow","borrow_mut","borrow_mut","bytes_read","bytes_written","fmt","fmt","from","from","into","into","into_parts","into_parts","new","new","poll_flush","poll_shutdown","poll_write","read","read_bytes","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Cancelled","Config","LocalPool","LocalPoolHandle","LogAndContinue","PanicMode","Run","Shutdown","SpawnError","__clone_box","__clone_box","__clone_box","abort","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cancelled","clone","clone","clone","clone_into","clone_into","clone_into","default","default","deref","drop","eq","equivalent","equivalent","equivalent","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","from_ref","from_ref","handle","into","into","into","into","into","into","into_future","join","new","panic_mode","poll","race","shutdown","single","spawn","spawn_detached","thread_name_prefix","threads","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","try_spawn","try_spawn_detached","try_spawn_detached_boxed","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","waiting_tasks","AsyncChannelProgressSender","BoxedProgressSender","Err","FallibleProgressSliceWriter","FlumeProgressSender","IdGenerator","IgnoreProgressSender","Msg","Ok","ProgressSendError","ProgressSendResult","ProgressSender","ProgressSliceWriter","ReceiverDropped","WithFilterMap","WithMap","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","blocking_send","blocking_send","blocking_send","blocking_send","blocking_send","blocking_send","blocking_send","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","boxed","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","into","into","into","into","into","into","into","into","into","into_inner","into_inner","new","new","new","new","new_id","new_id","new_id","new_id","new_id","new_id","new_id","same_channel","same_channel","send","send","send","send","send","send","send","set_len","set_len","sync","sync","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_send","try_send","try_send","try_send","try_send","try_send","try_send","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_filter_map","with_map","write_at","write_at","write_bytes_at","write_bytes_at"],"q":[[0,"iroh_blobs"],[132,"iroh_blobs::downloader"],[307,"iroh_blobs::export"],[332,"iroh_blobs::export::ExportProgress"],[340,"iroh_blobs::format"],[341,"iroh_blobs::format::collection"],[377,"iroh_blobs::get"],[432,"iroh_blobs::get::db"],[509,"iroh_blobs::get::db::BlobInfo"],[512,"iroh_blobs::get::db::DownloadProgress"],[525,"iroh_blobs::get::error"],[552,"iroh_blobs::get::fsm"],[765,"iroh_blobs::get::progress"],[849,"iroh_blobs::get::request"],[854,"iroh_blobs::hashseq"],[916,"iroh_blobs::metrics"],[946,"iroh_blobs::protocol"],[1108,"iroh_blobs::provider"],[1205,"iroh_blobs::provider::AddProgress"],[1215,"iroh_blobs::provider::Event"],[1239,"iroh_blobs::store"],[1547,"iroh_blobs::store::ConsistencyCheckProgress"],[1550,"iroh_blobs::store::ExportProgress"],[1557,"iroh_blobs::store::ImportProgress"],[1567,"iroh_blobs::store::ValidateProgress"],[1584,"iroh_blobs::store::fs"],[1724,"iroh_blobs::store::mem"],[1783,"iroh_blobs::store::readonly_mem"],[1846,"iroh_blobs::util"],[1987,"iroh_blobs::util::io"],[2018,"iroh_blobs::util::local_pool"],[2127,"iroh_blobs::util::progress"],[2309,"dyn_clone::sealed"],[2310,"bitvec::slice"],[2311,"bitvec::order"],[2312,"iroh_base::hash"],[2313,"core::cmp"],[2314,"core::result"],[2315,"serde::de"],[2316,"core::iter::traits::collect"],[2317,"core::option"],[2318,"core::fmt"],[2319,"alloc::string"],[2320,"iroh_blake3"],[2321,"core::hash"],[2322,"core::convert"],[2323,"serde::ser"],[2324,"bitvec::ptr::span"],[2325,"core::any"],[2326,"redb::types"],[2327,"futures_lite::future"],[2328,"iroh_base::key"],[2329,"core::clone"],[2330,"futures_concurrency::future::join::tuple"],[2331,"core::future::into_future"],[2332,"core::future::future"],[2333,"iroh_base::node_addr"],[2334,"iroh_net::endpoint"],[2335,"iroh_blobs::store::traits"],[2336,"alloc::vec"],[2337,"core::pin"],[2338,"core::task::wake"],[2339,"core::task::poll"],[2340,"futures_concurrency::future::race::tuple"],[2341,"std::path"],[2342,"anyhow"],[2343,"core::iter::traits::iterator"],[2344,"bytes::bytes"],[2345,"core::marker"],[2346,"alloc::collections::btree::map"],[2347,"core::iter::traits::double_ended"],[2348,"iroh_quinn::send_stream"],[2349,"iroh_quinn_proto::connection"],[2350,"iroh_quinn::recv_stream"],[2351,"postcard::error"],[2352,"bao_tree::io::error"],[2353,"core::error"],[2354,"std::io::error"],[2355,"iroh_quinn::connection"],[2356,"core::ops::function"],[2357,"bao_tree"],[2358,"bao_tree::io"],[2359,"iroh_io"],[2360,"bao_tree::io::fsm"],[2361,"bao_tree::tree"],[2362,"alloc::sync"],[2363,"iroh_blobs::protocol::range_spec"],[2364,"rand::rng"],[2365,"fallible_iterator"],[2366,"alloc::vec::into_iter"],[2367,"iroh_quinn_proto::varint"],[2368,"iroh_io::stats"],[2369,"alloc::collections::btree::set"],[2370,"futures_core::stream"],[2371,"tokio::io::async_read"],[2372,"alloc::boxed"],[2373,"iroh_blobs::util::mem_or_file"],[2374,"iroh_blobs::util::sparse_mem_file"],[2375,"std::time"],[2376,"core::default"],[2377,"range_collections::range_set"],[2378,"positioned_io"],[2379,"std::fs"],[2380,"tokio::io::async_write"],[2381,"flume"],[2382,"async_channel"]],"i":[0,5,0,0,9,0,9,0,0,5,9,10,5,5,5,10,5,5,5,5,9,10,5,9,10,5,9,10,5,9,10,5,9,10,5,5,9,10,9,5,9,10,0,5,5,5,9,10,5,5,5,9,9,9,10,10,10,0,5,10,5,5,9,9,10,10,5,0,10,5,5,5,5,9,10,10,5,5,10,5,9,10,5,10,0,5,9,10,10,10,0,5,9,10,9,9,0,5,10,5,9,10,0,0,10,5,9,10,0,5,5,9,10,5,9,10,5,5,9,10,5,9,10,5,9,10,5,10,0,5,9,10,39,35,39,35,0,45,42,0,0,35,0,0,0,0,39,0,0,0,35,0,39,33,34,23,35,31,33,39,36,37,34,23,35,32,31,33,39,36,37,34,23,35,32,31,31,33,34,23,35,31,33,34,23,35,31,33,33,36,37,33,23,33,33,33,23,23,23,33,33,39,36,37,34,23,23,35,35,32,31,23,33,39,39,36,37,34,23,23,35,32,31,33,34,23,35,31,42,33,23,23,23,37,33,39,36,37,34,23,35,32,31,32,45,32,36,36,36,36,37,34,31,31,33,45,32,34,31,45,32,33,34,23,35,31,33,23,35,33,39,36,37,34,23,35,32,31,33,39,36,37,34,23,35,32,31,32,33,39,36,37,34,23,35,32,31,33,39,36,37,34,23,35,32,31,31,66,66,66,0,66,66,66,66,66,66,66,66,0,0,0,66,66,66,66,66,66,66,66,66,66,228,228,229,230,228,229,228,228,0,0,74,0,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,77,74,74,74,74,74,74,74,74,74,74,74,74,74,88,88,88,0,88,0,88,43,43,88,43,88,43,43,43,43,0,43,43,43,43,43,43,43,0,43,88,88,43,88,88,88,88,88,88,88,43,0,43,88,43,0,0,43,88,43,88,43,88,43,88,43,88,43,88,62,62,0,0,99,97,62,62,0,62,62,62,62,97,97,62,99,97,62,99,0,97,62,99,97,62,99,97,62,99,97,62,99,99,99,62,99,99,99,99,99,97,62,99,97,62,99,97,62,99,0,99,97,62,99,97,99,62,99,97,97,62,99,97,62,99,97,62,99,97,62,99,0,97,97,62,99,231,232,231,233,234,235,233,234,235,234,236,237,236,233,234,233,40,0,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,0,0,0,0,0,0,0,0,0,0,117,82,0,0,0,118,0,105,107,108,108,108,118,82,107,108,108,108,105,107,108,105,117,117,105,115,116,117,105,81,110,111,107,113,108,118,112,82,114,115,116,117,105,81,110,111,107,113,108,118,112,82,114,110,111,113,111,113,81,110,113,115,116,117,105,105,81,110,111,107,107,113,108,108,118,112,82,114,115,116,117,117,117,117,105,105,81,110,111,107,113,108,108,108,108,118,118,118,112,82,82,82,114,81,111,113,115,116,117,105,81,110,111,107,113,108,118,112,82,114,115,115,116,81,110,111,113,112,114,111,113,81,110,111,105,108,0,105,107,108,113,115,116,117,105,81,110,111,107,113,108,118,112,82,114,115,116,117,105,81,110,111,107,113,108,118,112,82,114,115,116,117,105,81,110,111,107,113,108,118,112,82,114,115,116,117,105,81,110,111,107,113,108,118,112,82,114,111,113,111,113,111,113,0,0,127,127,0,127,0,125,126,127,125,126,127,125,126,127,126,125,125,126,127,125,126,127,125,125,127,125,126,127,125,126,127,125,125,125,126,126,126,127,127,127,125,126,127,125,126,127,125,126,127,125,125,126,125,126,127,126,125,126,125,126,125,125,125,125,126,127,126,125,126,127,125,126,127,125,126,127,125,126,127,125,126,127,0,0,0,0,0,0,0,0,83,132,133,83,132,133,83,132,133,83,132,133,83,132,133,83,132,133,83,132,133,83,83,132,133,83,83,132,133,133,83,83,133,83,83,83,83,132,133,0,83,132,83,132,133,133,83,83,132,133,83,132,133,83,132,133,83,132,133,0,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,0,0,140,141,0,0,0,142,0,0,0,142,142,0,140,130,141,120,142,140,130,120,130,140,130,143,141,120,142,144,140,130,143,141,120,142,144,140,130,141,120,142,140,130,141,120,142,140,130,141,120,130,140,130,141,120,142,140,140,140,130,130,130,141,141,141,120,120,120,142,142,142,140,130,143,141,120,142,144,144,140,130,143,141,141,120,142,144,130,130,140,130,141,120,142,140,130,142,120,140,130,143,141,120,142,144,143,143,140,140,130,130,120,120,140,130,120,143,120,142,140,130,141,120,120,140,140,130,141,120,142,144,143,140,130,143,141,120,142,142,144,140,130,143,141,120,142,144,140,130,143,141,120,142,144,140,130,143,141,120,142,144,150,0,150,147,147,150,0,0,150,147,149,150,0,149,0,147,147,147,147,147,0,147,148,149,147,148,150,151,149,147,148,150,151,149,147,148,149,147,148,149,148,150,148,149,149,149,149,147,148,150,151,149,147,148,150,151,149,147,148,149,0,0,147,148,150,151,149,148,0,152,148,0,150,147,148,149,0,147,148,150,151,149,147,148,150,151,149,147,148,150,151,149,147,148,150,151,149,238,239,238,240,241,239,240,241,240,238,242,243,244,245,246,247,248,249,249,243,246,246,244,245,243,244,245,246,247,248,246,247,248,249,165,169,169,0,0,68,68,161,0,162,69,175,173,174,173,174,0,176,165,169,80,169,171,169,0,173,174,163,0,0,0,0,0,175,164,0,164,0,0,0,163,0,0,0,0,161,175,175,161,169,169,169,176,0,0,175,176,165,169,0,163,162,69,104,165,0,104,163,161,104,162,69,68,163,164,0,158,159,161,104,173,174,175,162,69,68,176,163,165,169,164,161,104,173,174,175,162,69,68,176,163,165,169,164,161,104,162,69,68,163,164,161,104,162,69,68,163,164,163,163,159,57,168,162,69,68,57,104,69,68,163,165,169,171,171,161,104,162,69,163,164,161,161,161,104,104,104,162,162,162,69,69,69,163,163,163,164,164,164,159,161,104,173,174,175,162,69,68,176,163,163,165,169,164,161,104,173,174,175,162,69,68,176,163,165,169,164,161,104,162,69,68,163,164,0,57,57,57,57,57,80,171,171,168,57,57,57,57,57,171,161,104,173,174,175,162,69,68,176,163,165,169,164,168,0,104,168,159,163,0,0,104,69,68,163,165,169,57,57,168,123,159,57,159,161,104,162,69,68,163,164,163,161,104,173,174,175,162,69,68,176,163,165,169,164,161,104,173,174,175,162,69,68,176,163,165,169,164,161,104,173,174,175,162,69,68,176,163,165,169,164,57,57,104,161,104,173,174,175,162,69,68,176,163,165,169,164,123,250,250,250,251,251,252,253,252,251,251,254,255,256,257,258,254,255,256,258,257,259,260,261,260,262,259,261,263,264,262,263,260,261,264,260,261,265,185,0,0,0,0,185,0,0,0,185,186,187,188,184,188,183,184,185,186,187,188,189,184,185,186,187,188,189,184,185,186,187,188,184,185,186,187,188,184,189,184,184,186,183,185,187,184,184,184,184,184,185,186,187,188,189,184,185,186,187,188,189,184,185,186,187,188,184,184,184,184,184,183,184,184,184,184,188,184,185,186,187,188,189,184,183,184,185,185,187,187,187,187,189,184,183,184,184,189,184,188,184,184,183,184,184,186,184,184,185,186,187,188,184,184,185,186,187,188,189,184,185,186,187,188,189,184,185,186,187,188,189,184,184,185,186,187,188,189,184,0,0,194,193,193,194,194,193,194,193,194,193,194,193,194,194,193,194,194,194,194,194,194,193,194,193,194,193,194,194,194,194,193,194,194,194,194,194,193,193,194,193,194,194,194,193,194,194,194,194,193,194,193,194,193,194,193,194,193,0,0,196,195,195,196,196,195,196,195,196,195,196,195,196,196,195,196,196,196,196,196,196,195,196,195,196,196,195,196,196,196,196,196,195,196,196,196,196,196,196,196,195,195,196,195,196,196,196,195,196,196,196,196,195,196,195,196,195,196,195,196,195,203,197,197,0,203,0,0,0,0,0,0,167,203,198,167,167,197,198,199,167,197,198,167,167,203,86,197,198,167,203,86,167,203,167,203,167,203,167,167,167,203,197,198,198,167,203,86,198,198,167,203,167,167,167,203,203,203,167,167,198,197,198,167,167,203,86,86,197,198,198,167,167,167,167,203,86,167,167,167,203,86,86,197,198,167,203,86,198,0,197,86,0,197,197,197,198,86,199,200,167,203,198,0,197,198,167,203,197,197,198,199,167,203,167,0,198,197,198,167,203,86,197,198,198,167,203,86,197,197,198,167,203,86,167,167,197,198,167,203,86,198,0,0,209,210,209,210,209,210,209,210,209,210,209,210,209,210,209,210,210,210,210,209,209,209,210,209,210,209,210,209,210,217,0,0,0,215,0,0,215,0,56,215,216,213,214,56,215,216,217,213,214,56,215,216,217,213,214,56,215,216,56,215,216,214,216,214,214,215,215,215,215,214,214,56,215,216,217,217,213,214,56,215,216,217,213,56,215,216,214,214,56,215,216,217,213,213,213,214,216,213,213,214,214,56,56,216,216,56,215,216,217,214,56,215,216,217,213,214,56,215,216,217,213,213,56,56,56,214,56,215,216,217,213,214,56,215,216,217,213,56,0,0,218,0,0,0,0,72,218,0,0,0,0,109,0,0,166,219,220,221,222,63,109,72,166,219,220,221,222,63,166,219,220,221,222,63,109,223,224,166,219,220,221,222,63,109,223,224,72,166,219,220,221,222,63,109,166,219,220,221,222,63,109,219,166,219,220,221,222,63,109,109,223,224,166,219,220,221,222,63,109,223,224,166,219,220,221,222,63,109,166,219,220,221,222,63,109,223,224,223,224,222,63,223,224,73,166,219,220,221,222,63,222,63,72,166,219,220,221,222,63,223,224,223,224,166,219,220,221,222,63,109,109,166,219,220,221,222,63,109,223,224,166,219,220,221,222,63,109,223,224,72,166,219,220,221,222,63,166,219,220,221,222,63,109,223,224,166,219,220,221,222,63,109,223,224,72,72,223,224,223,224],"f":"`````````{{cb}d{}}00{c{{f{eg}}}{}{}h}{{}}{j{{n{l}}}}1{j{{A`{l}}}}{ce{}{}}2100000{jj}{AbAb}{AdAd}{{ce}d{}{}}00{{jj}Af}{{AbAb}Af}{{AdAd}Af}{{ce}Af{}{}}{{{A`{l}}{A`{l}}}Af}11{{}Ab}{c{{Ah{j}}}Aj}{c{{Ah{Ab}}}Aj}{c{{Ah{Ad}}}Aj}`{ce{}{{An{Al}}}}0{{jj}B`}{{AbAb}B`}{{AdAd}B`}{{ce}B`{}{}}00000000`{{}{{Bd{Bb}}}}0{{jBf}{{Ah{dBh}}}}0{{AbBf}{{Ah{dBh}}}}0{{AdBf}{{Ah{dBh}}}}0{jBj}``{Blj}{{{n{l}}}j}0{cc{}}0{BnAd}12{{{A`{l}}}}0222{C`{{Ah{j}}}}{C`{{Ah{Ad}}}}`{{jc}dCb}{{Abc}dCb}{{Adc}dCb}`{jAd}`{ce{}{}}00{AbB`}0`{cj{{Cd{{A`{l}}}}}}{{jAb}Ad}{{jj}{{Bd{Af}}}}{{AbAb}{{Bd{Af}}}}{{AdAd}{{Bd{Af}}}}``7{{jc}AhCf}{{Abc}AhCf}{{Adc}AhCf}`{jBj}:::{cBj{}}00{c{{Ah{{f{eg}}{Ch{e}}}}}{}{}h}{c{{Ah{e}}}{}{}}00000{cCj{}}00{{}Cl}0`???`````````````````````{{cb}d{}}0000{ce{}{}}00000000000000000{{CnD`}d}{DbDb}{DdDd}{BnBn}{DfDf}{CnCn}{{ce}d{}{}}0000{{DbDb}Af}{{ce}Af{}{}}{{}Dh}{{}Dj}{{DbDb}B`}{{BnBn}B`}{{ce}B`{}{}}00000{{DbBf}Dl}0{{DnBf}Dl}{{DhBf}Dl}{{DjBf}Dl}{{DdBf}Dl}{{BnBf}Dl}0{{DfBf}Dl}0{{D`Bf}Dl}{{CnBf}Dl}{BnAb}{cc{}}{E`Dn}11111{AdBn}22222222`{{Dbc}dCb}{{Bnc}dCb}{Bnj}{BnAd}`{ce{}{}}00000000{c{}{}}{{{Ej{}{{Eb{c}}}}El}B`En}{{ce}{{F`{g}}}{}FbFd}`````{{cg}Dd{{Ff{Bn}}}{{Ff{Fh}}}{{Fl{}{{Fj{e}}}}}}{{cFnG`}CnGb}{{Cnj{Gd{El}}}d}{{DbDb}{{Bd{Af}}}}{{{Ej{}{{Eb{c}}}}}BbEn}{{{Gf{D`}}Gh}{{Gj{c}}}{}}{{Dd{Gn{Gl}}}Dd}{{CnDd}D`}{{{Ej{}{{Eb{c}}}}El}dEn}{{cg}{{H`{ei}}}{}{}{{Fb{}{{Hb{e}}}}}{{Fd{}{{Hb{e}}}}}}====={cBj{}}00{c{{Ah{e}}}{}{}}00000000000000000{{{Gf{c}}Gh}Gj{}}{cCj{}}00000000{ce{}{}}00000000{{cFnG`DhDj}CnGb}``````{{cb}d{}}22{HdHd}{{ce}d{}{}}{c{{Ah{Hd}}}Aj}{{cjHfHhHje}{{Hl{d}}}Gb{{I`{}{{Hn{Hd}}}}Ib}}{{cjHfHje}{{Hl{d}}}Gb{{I`{}{{Hn{Hd}}}}Ib}}0{{HdBf}Dl}{cc{}}09{{Hdc}AhCf}:==;:````````````8::{IdId}7{{}Id}{c{{Ah{Id}}}Aj}{{IdId}B`}{{Idg}d{{Ff{Bj}}}{{Ff{j}}}{{Fl{}{{Fj{{If{ce}}}}}}}}{{IdBf}Dl}7{gId{{Ff{Bj}}}{{Ff{j}}}{{Fl{}{{Fj{{If{ce}}}}}}}}8{{IdBb}c{}}{ce{}{}}{Idc{}}{IdB`}{Id{{`{{Ih{}{{Fj{{If{Bjj}}}}}}}}}}{IdBb}{{Ijj}{{`{{Fd{}{{Hb{{Hl{Il}}}}}}In}}}}{{jc}{{Hl{Id}}}Ij}{{cj}{{Hl{Id}}}J`}{{IdBjj}d}{Jb{{Hl{{If{JdJfId}}}}}}{Jb{{Hl{{If{Id{Jj{JhIl}}Ef}}}}}}{{Idc}AhCf}{{Idc}{{Hl{Jl}}}Gb}{Id{{`{{Jn{}{{Fj{Il}}}}}}}}={c{{Ah{e}}}{}{}}0{cCj{}}?```````{{cb}d{}}{ce{}{}}000``{EfEf}{{ce}d{}{}}`{{}Ef}{c{{Ah{Ef}}}Aj}`{{EfEf}B`}{{ce}B`{}{}}00`{{EfBf}Dl}{{K`Bf}Dl}0{cc{}}{KbK`}{KdK`}2{KfK`}{KhK`}{KjK`}{KlK`}6`??{EfKn}``{{Efc}AhCf}{K`{{Bd{L`}}}}{ce{}{}}{cBj{}}{c{{Ah{e}}}{}{}}000{cCj{}}033`````````````````{{cb}d{}}00{{cj}{{Ld{{Lb{c}}}}}Gb}555555{{{Lb{c}}}{{Lb{c}}}{EnGb}}{GlGl}{LfLf}{{ce}d{}{}}00{{LfLf}Af}{{ce}Af{}{}}{c{{Ah{Gl}}}Aj}{c{{Ah{Lf}}}Aj}{{LfLf}B`}{{ce}B`{}{}}00{{{Lb{c}}Bf}Dl{LhGb}}{{GlBf}Dl}{{LfBf}Dl}{cc{}}00000{{cgAdi}{{Ah{EfE`}}}Gb{{Fd{}{{Hb{{Hl{Lj}}}}}}}{{Ll{}{{Hb{e}}}}}{{I`{}{{Hn{Gl}}}}Ib}}{{Lfc}dCb}{ce{}{}}00{{{Lb{c}}}LnGb}{{LfLf}{{Bd{Af}}}}{{Glc}AhCf}{{Lfc}AhCf}{{{Lb{c}}}{{Bd{M`}}}Gb}555{c{{Ah{e}}}{}{}}00000{cCj{}}00{{}{{Hl{Ln}}}}7888```````````````````````88{{E`Bf}Dl}0{MbE`}={MdE`}{MfE`}{KfE`}{MhE`}{KbE`}{MjE`}{KdE`}{ce{}{}}{E`{{Bd{L`}}}}{cBj{}}>>=2```````````````````````````````````2222222222222222222222222222{MlJh}{Mn{{Ah{{If{N`{Gd{l}}}}Mh}}}}{Nb{{Ah{{If{N`{Gd{l}}}}Mh}}}}{Mn{{Ah{N`Mh}}}}{Nb{{Ah{N`Mh}}}}{JbNd}{MlNd}{NbNd}{{NfBf}Dl}{{NhBf}Dl}{{NjBf}Dl}{{MbBf}Dl}0{{JbBf}Dl}{{MlBf}Dl}{{MnBf}Dl}{{MfBf}Dl}0{{NbBf}Dl}{{MhBf}Dl}0{{NlBf}Dl}{{N`Bf}Dl}{{JdBf}Dl}{{NdBf}Dl}{cc{}}0{NdNj}{MlNj}{JbNj}3{KbMb}444444{KjMh}5{MdMh}{MfMh}{N`Nl}8{{{If{Nb{Ah{NnMh}}}}}Nl}9{MlJd}{NdJd};;{Jbj}{Mnj}{Nbj}{ce{}{}}0000000000000{{LjO`}Nf}{Nf{{Hl{NhKd}}}}{Nh{{Hl{NjMb}}}}{JbMn}{{Mlj}Mn}{Mn{{Hl{{If{NbJh}}Mf}}}}{NbNl}{N`Jd}{Nd{{Ah{EfKf}}}}{MnJh}{NbJh}{JbLn}{MlLn}{MnLn}{Mb{{Bd{L`}}}}{Mh{{Bd{L`}}}}?{cBj{}}00{NbOb}{c{{Ah{e}}}{}{}}000000000000000000000000000{cCj{}}0000000000000{ce{}{}}0000000000000{{Mnc}{{Ah{N`Mh}}}Od}{{Nbc}{{Ah{N`Mh}}}Od}{{Mnc}{{Ah{N`Mh}}}Of}{{Nbc}{{Ah{N`Mh}}}Of}{{Mn{Bd{c}}e}{{Ah{N`Mh}}}OhOd}{{Nb{Bd{c}}e}{{Ah{N`Mh}}}OhOd}```````{{cb}d{}}00777777``{OjOj}{OlOl}{OnOn}{{ce}d{}{}}00``{{}On}{c{{Ah{Oj}}}Aj}{c{{Ah{Ol}}}Aj}{c{{Ah{On}}}Aj}{{OjOj}B`}{{OlOl}B`}{{OnOn}B`}{{ce}B`{}{}}00000000{{OjBf}Dl}{{OlBf}Dl}{{OnBf}Dl}{cc{}}00000{{OjLf}{{Bd{Ol}}}}{Oj{{Bd{Ol}}}}`{ce{}{}}00`{jOj}{jOl}{{OjGl}d}``{OjOl}`{{Ojc}AhCf}{{Olc}AhCf}{{Onc}AhCf}`777{c{{Ah{e}}}{}{}}00000{cCj{}}00999{{LjjA@`}{{Hl{Ef}}}}{{LjjJh}{{Hl{{If{Jf{A@b{{A`{Jh}}}}}}}}}}{{Ljj}{{Hl{{If{JhEf}}}}}}0{{{A`{Jh}}c}A@dA@f}```{{cb}d{}}00>>>>>>{JfJf}{A@hA@h}{A@jA@j}{{ce}d{}{}}00{{JfBf}Dl}{{A@hBf}Dl}{{A@jBf}Dl}{cc{}}00{cJf{{Fl{}{{Fj{j}}}}}}111{{JfBb}{{Bd{j}}}}{ce{}{}}00{c{{A@l{g}}}{}{}{{Ih{}{{Fj{e}}}}}}{JfIl}{Jfc{}}3{JfB`}{Jf{{`{{Ih{}{{Fj{j}}}}}}}}{JfBb}{Il{{Bd{Jf}}}}{A@h{{Ld{{Bd{j}}}}}}{A@j{{Bd{c}}}{}}{c{{Hl{{If{A@hJh}}}}}A@n}{Jf{{Bd{j}}}}{{A@hJh}{{Ld{d}}}}<<<{c{{AA`{i}}}{}{}{}{{Ih{}{{Fj{{Ah{eg}}}}}}}}{c{{Ah{e}}}{}{}}{Il{{Ah{Jfc}}}{}}11111{cCj{}}00{ce{}{}}00`{{cb}d{}}11{AAbAAb}{{ce}d{}{}}{{}AAb}````````````{{AAbBf}Dl}{cc{}}06{AAb{{AAf{{If{C`AAd}}}}}}{{}C`}8;;98``````````````77777{{}AAh}{{}A@d}{jO`}{A@d{{Bd{{If{JhAAh}}}}}}<<<<<<<<<<<<<<{AAhAAh}{A@dA@d}{AAjAAj}{O`O`}{AAlAAl}>>>>>{c{{Ah{AAh}}}Aj}{c{{Ah{A@d}}}Aj}{c{{Ah{AAj}}}Aj}{c{{Ah{O`}}}Aj};{{AAhAAh}B`}{{A@dA@d}B`}{{AAjAAj}B`}{{O`O`}B`}{{AAlAAl}B`}{{ce}B`{}{}}00000000000000{{AAhBf}Dl}{{A@dBf}Dl}{{AAnBf}Dl}{{AAjBf}Dl}{{O`Bf}Dl}{{AAlBf}Dl}{{AB`Bf}Dl}0{cc{}}00{O`AAj}1111{eA@d{{Cd{ABb}}}{{Fl{}{{Fj{c}}}}}}022222{{AAhc}dCb}{{A@dc}dCb}{{AAlc}dCb}`{ce{}{}}000000{c{{A@l{g}}}{}{}{{Ih{}{{Fj{e}}}}}}1{AAhB`}0`{A@dAAn}{jO`}0{cAAh{{Cd{ABb}}}}{cA@d{{Fl{}{{Fj{AAh}}}}}}{{jA@d}O`}{AAn{{Bd{c}}}{}}`{AAl{{A`{l}}}}{{AAhc}AhCf}{{A@dc}AhCf}{{AAjc}AhCf}{{O`c}AhCf}9{AAhLn}>>>>>{cBj{}}{c{{AA`{i}}}{}{}{}{{Ih{}{{Fj{{Ah{eg}}}}}}}}{c{{Ah{e}}}{}{}}0000{ABd{{Ah{AAlc}}}{}}111111111{cCj{}}000000{ce{}{}}000000`````````````````````{{cb}d{}}001111111111{ABfABf}{ABhABh}{ABjABj}{{ce}d{}{}}00{{}ABh}{c{{Ah{ABl}}}Aj}`{{ABjABj}B`}{{ce}B`{}{}}00{{ABfBf}Dl}{{ABhBf}Dl}{{ABlBf}Dl}{{{ABn{c}}Bf}DlLh}{{ABjBf}Dl}{cc{}}0000000{{LjceG`}dJ`AC`}{{cO`{ABn{e}}}{{Hl{d}}}J`AC`}{ce{}{}}0000`{ACb{{Hl{AAj}}}}{{AC`ABf}{{ACd{d}}}}`{{cjAAhe}{{Hl{{If{ABjJhACf}}}}}J`ACh}{{ABlc}AhCf}444{{O`c{ABn{e}}giABh}{{Hl{ABj}}}J`AC`ACjA@n}{c{{Ah{e}}}{}{}}000000000{cCj{}}000077777``````````````````````````````````````````````````````````````````````````````````````````````````````{{cb}d{}}000000`{ACl{{`{{Fd{}{{Hb{{Ld{{`{Of}}}}}}}}In}}}}{ACn{{`{{Fd{}{{Hb{{Ld{{AD`{j}}}}}}}}In}}}}::::::::::::::::::::::::::{ADbADb}{M`M`}{ADdADd}{HjHj}{HhHh}{ADfADf}{ADhADh}{{ce}d{}{}}000000{{ADfADf}Af}{{ce}Af{}{}}{{ACnB`{ADl{ADj}}}{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}}{{GbAd}{{`{{Fd{}{{Hb{{Ld{ADn}}}}}}In}}}}{AE`{{`{{Fd{}{{Hb{{Ld{{`{A@n}}}}}}}}In}}}}{{}ADd}{{}Hj}{{}Hh}{{Gb{Gd{j}}}{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}}{c{{Ah{M`}}}Aj}{c{{Ah{Hj}}}Aj}{c{{Ah{Hh}}}Aj}{c{{Ah{ADf}}}Aj}{c{{Ah{ADj}}}Aj}{c{{Ah{AEb}}}Aj}{{{AEf{}{{AEd{c}}}}j}{{`{{Fd{}{{Hb{{Ld{ADb}}}}}}In}}}ACl}{{{AEf{}{{AEd{c}}}}j}{{Ld{ADb}}}ACl}{{ADbADb}B`}{{M`M`}B`}{{ADdADd}B`}{{HjHj}B`}{{ADfADf}B`}{{ADhADh}B`}{{ce}B`{}{}}00000000000000000{{ACnjHfHjAEh}{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}}{{ADbBf}Dl}{{M`Bf}Dl}{{AEjBf}Dl}{{AElBf}Dl}{{AEnBf}Dl}{{ADdBf}Dl}{{HjBf}Dl}{{HhBf}Dl}{{AF`Bf}Dl}{{ADfBf}Dl}0{{ADjBf}Dl}{{AEbBf}Dl}{{ADhBf}Dl}{cc{}}0000000000000000000`{{Gb{AFb{j}}}{{`{{AFd{}{{Fj{AEj}}}}AFf}}}}0{Gb{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}}{{Gb{AFb{j}}}{{`{{AFd{}{{Fj{AEl}}}}AFf}}}}0{{{J`{}{{AFh{c}}}}j}{{`{{Fd{}{{Hb{{Ld{{Bd{c}}}}}}}}In}}}AE`}{{{AEf{}{{AEd{c}}}}j}{{`{{Fd{}{{Hb{{Ld{{Bd{c}}}}}}}}In}}}ACl}{{{AEf{}{{AEd{c}}}}jJh}{{`{{Fd{}{{Hb{{Ld{c}}}}}}In}}}ACl}{AE`j}{{GbIlAb}{{`{{Fd{}{{Hb{{Ld{Jl}}}}}}In}}}}{{GbHfADdAbc}{{`{{Fd{}{{Hb{{Ld{{If{JlJh}}}}}}}}In}}}{{I`{}{{Hn{AEn}}}}Ib}}{{GbcAbe}{{`{{Fd{}{{Hb{{Ld{{If{JlJh}}}}}}}}In}}}{AFjInAFf}{{I`{}{{Hn{AEn}}}}Ib}}0{{GbcAbe}{{`{{Fd{}{{Hb{{Ld{{If{JlJh}}}}}}}}In}}}{{AFd{}{{Fj{{Ld{Il}}}}}}InAFf}{{I`{}{{Hn{AEn}}}}Ib}}{{{AEf{}{{AEd{c}}}}c}{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}ACl}{ce{}{}}000000000000{AE`B`}`{{JhB`}M`}{AE`{{`{{Fd{}{{Hb{{Ld{{`{ACj}}}}}}}}In}}}}{ACn{{`{{Fd{}{{Hb{{Ld{{AD`{j}}}}}}}}In}}}}{{ADfADf}{{Bd{Af}}}}``{{M`c}AhCf}{{Hjc}AhCf}{{Hhc}AhCf}{{ADfc}AhCf}{{ADjc}AhCf}{{AEbc}AhCf}{{GbADn{Bd{Ad}}}{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}}{Gb{{`{{Fd{}{{Hb{d}}}}In}}}}{AE`M`}{Of{{`{{Fd{}{{Hb{{Ld{d}}}}}}}}}}{ACn{{`{{Fd{}{{Hb{{Ld{{AD`{{If{ADnAd}}}}}}}}}}In}}}}{{GbAd}Jl}{ACn{{AFl{Ih}}}}{ce{}{}}000000{cBj{}}{c{{Ah{e}}}{}{}}0000000000000000000000000{cCj{}}000000000000{{GbB`{ADl{AEb}}}{{`{{Fd{}{{Hb{{Ld{d}}}}}}In}}}}0{M`Jh}5555555555555{{OfJh{Gd{Nn}}}{{`{{Fd{}{{Hb{{Ld{d}}}}}}}}}}``````````````````````````````````````````````{{cb}d{}}0000`{AFn{{Ld{{`{Of}}}}}}{AG`{{Ld{{AD`{j}}}}}}999999999999{AGbAGb}{AGdAGd}{AGfAGf}{AGhAGh}{AG`AG`}{{ce}d{}{}}0000`{{AG`B`{ADl{ADj}}}{{Ld{d}}}}{{AG`Ad}{{Ld{ADn}}}}`{AFn{{Ld{{`{A@n}}}}}}{{}AGb}{{}AGf}{{AG`{Gd{j}}}{{Ld{d}}}}{AG`{{Ld{d}}}}{{AG`j}{{Ld{ADb}}}}0{{AG`jHfHjAEh}{{Ld{d}}}}{{AGbBf}Dl}{{AGdBf}Dl}{{AGfBf}Dl}{{AGhBf}Dl}{{AGjBf}Dl}{{AG`Bf}Dl}{cc{}}00000000009{{AG`j}{{Ld{{Bd{c}}}}}{}}0{{AG`jJh}{{Ld{c}}}{}}{AFnj}{{AG`IlAb}{{Ld{Jl}}}}{{AG`HfADdAbc}{{Ld{{If{JlJh}}}}}{{I`{}{{Hn{AEn}}}}Ib}}{{AG`AGj}{{Ld{B`}}}}{{AG`cAbe}{{Ld{{If{JlJh}}}}}{{AFd{}{{Fj{{Ld{Il}}}}}}AFfIn}{{I`{}{{Hn{AEn}}}}Ib}}`{{AG`c}{{Ld{d}}}{}}{ce{}{}}00000{AFnB`}{c{{Ld{AG`}}}{{Cd{AGl}}}}```````{{HfAGh}{{Ld{AG`}}}}{AFn{{Ld{{`{ACj}}}}}}{{AG`j}Hf}0`{AG`{{Ld{{AD`{j}}}}}}`{{AG`ADn{Bd{Ad}}}{{Ld{d}}}}{AG`d}{AFnM`}{AG`{{Ld{d}}}}{AG`{{Ld{{AD`{{If{ADnAd}}}}}}}}`{{AG`Ad}Jl}{AG`{{AFl{Ih}}}}====={{AG`c}{{Ld{d}}}{{AGn{j`}{{Hb{{Bd{`}}}}}}InAH`}}{c{{Ah{e}}}{}{}}00000000000{cCj{}}00000{{AG`AGbB`}{{Ld{d}}}}{ce{}{}}00000``{{cb}d{}}0{AHb{{Ld{{`{Of}}}}}}{AHd{{Ld{{AD`{j}}}}}}3333{AHdAHd}{AHbAHb}{{ce}d{}{}}0{{AHdB`{ADl{ADj}}}{{Ld{d}}}}{{AHdAd}{{Ld{ADn}}}}{AHb{{Ld{{`{A@n}}}}}}{{}AHd}{{AHd{Gd{j}}}{{Ld{d}}}}{{AHdj}{{Ld{ADb}}}}0{{AHdjHfHjAEh}{{Ld{d}}}}{{AHdBf}Dl}{{AHbBf}Dl}{cc{}}000{AHd{{Ld{d}}}}{{AHdj}{{Ld{{Bd{c}}}}}{}}0{{AHdjJh}{{Ld{AHb}}}}{AHbj}{{AHdIlAb}{{Ld{Jl}}}}{{AHdHfADdAbc}{{Ld{{If{JlJh}}}}}{{I`{}{{Hn{AEn}}}}Ib}}{{AHdcAbe}{{Ld{{If{JlJh}}}}}{{AFd{}{{Fj{{Ld{Il}}}}}}AFfIn}{{I`{}{{Hn{AEn}}}}Ib}}{{AHdAHb}{{Ld{d}}}}{ce{}{}}0{AHbB`}{{}AHd}{AHb{{Ld{{`{ACj}}}}}}{AHd{{Ld{{AD`{j}}}}}}{{AHdADn{Bd{Ad}}}{{Ld{d}}}}{AHdd}{AHbM`}{AHd{{Ld{{AD`{{If{ADnAd}}}}}}}}{{AHdAd}Jl}{AHd{{AFl{Ih}}}}::{c{{Ah{e}}}{}{}}000{cCj{}}0<<``{{cb}d{}}0{AHf{{Ld{{`{Of}}}}}}{AHh{{Ld{{AD`{j}}}}}}????{AHhAHh}{AHfAHf}{{ce}d{}{}}0{{AHhB`{ADl{ADj}}}{{Ld{d}}}}{{AHhAd}{{Ld{ADn}}}}{AHf{{Ld{{`{A@n}}}}}}{{}AHh}{{AHh{Gd{j}}}{{Ld{d}}}}{{AHhj}{{Ld{ADb}}}}0{{AHhjHfHjAEh}{{Ld{d}}}}{{AHhBf}Dl}{{AHfBf}Dl}{cc{}}0{gAHh{{Ff{Bj}}}{{Cd{{A`{l}}}}}{{Fl{}{{Fj{{If{ce}}}}}}}}11{AHh{{Ld{d}}}}{{AHhj}{{Ld{{Bd{c}}}}}{}}{{AHhj}{{Bd{Il}}}}1{{AHhjJh}{{Ld{AHf}}}}{AHfj}{{AHhIlAb}{{Ld{Jl}}}}{{AHhHfADdAbc}{{Ld{{If{JlJh}}}}}{{I`{}{{Hn{AEn}}}}Ib}}{{AHhcAbe}{{Ld{{If{JlJh}}}}}{{AFd{}{{Fj{{Ld{Il}}}}}}AFfIn}{{I`{}{{Hn{AEn}}}}Ib}}{{AHhc}j{{Cd{{A`{l}}}}}}{{AHhAHf}{{Ld{d}}}}{{AHhe}{{Bd{j}}}{{Cd{{A`{l}}}}}{{Fl{}{{Fj{c}}}}}}{ce{}{}}0{AHfB`}{g{{If{AHh{Jj{BjBl}}}}}{{Ff{Bj}}}{{Cd{{A`{l}}}}}{{Fl{}{{Fj{{If{ce}}}}}}}}{AHf{{Ld{{`{ACj}}}}}}{AHh{{Ld{{AD`{j}}}}}}{{AHhADn{Bd{Ad}}}{{Ld{d}}}}{AHhd}{AHfM`}{AHh{{Ld{{AD`{{If{ADnAd}}}}}}}}{{AHhAd}Jl}{AHh{{AFl{Ih}}}}::{c{{Ah{e}}}{}{}}000{cCj{}}0<<```````````{{cb}d{}}0{c{{f{eg}}}{}{}h}>>{{{AHj{ce}}}{{AHj{ce}}}{}{}}{AHl{{A`{l}}}}{{{A@b{AHn}}}{{AIb{AI`}}}}{{AIdc}ADn{{AGn{{A`{l}}}{{Hb{B`}}}}}}{ce{}{}}00{ADn{{A`{l}}}}1111111{ADnADn}{AIfAIf}{{ce}d{}{}}0{{ADnADn}Af}{{AIfAIf}Af}{{{A`{l}}{A`{l}}}Af}{{ce}Af{}{}}10{{}{{AHj{ce}}}AIh{}}{{}AHl}{AHlc{}}{c{{Ah{ADn}}}Aj}{c{{Ah{AIf}}}Aj}{Jld}{ce{}{{An{Al}}}}0{{ADnADn}B`}{{AIfAIf}B`}{{ce}B`{}{}}00000{{}{{Bd{Bb}}}}0{AHl{{Ld{d}}}}{{{AHj{ce}}Bf}DlLhLh}{{AHlBf}Dl}{{ADnBf}Dl}0{{AIfBf}Dl}{{JlBf}Dl}{JlAb}{cc{}}0{{{Gd{l}}}AHl}{BjADn}{IlADn}{C`ADn}444{{{A`{l}}}c{}}055{Jlj}{JlAd}{ce{}{}}0000{AHl{{If{{Gd{l}}{AIj{Bb}}}}}}`{{{AHj{ce}}}B`{}{}}{Jld}`{{{AHj{ce}}i}{{AHj{cg}}}{}{}{}{{Ll{e}{{Hb{g}}}}}}{{{AHj{ce}}i}{{AHj{ge}}}{}{}{}{{Ll{c}{{Hb{g}}}}}}{{{AHj{ce}}}{{Bd{c}}}{}{}}{{}AHl}{{Ad{Bd{{AIb{AI`}}}}}Jl}{{AHnAd}d}{{AI`Ad}d}{{ADnADn}{{Bd{Af}}}}{{AIfAIf}{{Bd{Af}}}}{{AHlc}{{Ld{d}}}AIl}`{{{AHj{IlAIn}}Jh{A`{l}}}{{Ld{Bb}}}}{{AHlJh{A`{l}}}{{Ld{Bb}}}}{{ADnc}AhCf}{{AIfc}AhCf}{{{AHj{c{If{eJh}}}}}Jh{{Cd{{A`{l}}}}}{}}{{{AHj{IlAIn}}}{{Ld{{Bd{Jh}}}}}}{AHl{{Ld{{Bd{Jh}}}}}}{{{A@b{AHn}}Ad}Jl}{ce{}{}}0{cBj{}}{{LnJh}Jh}{c{{Ah{{f{eg}}{Ch{e}}}}}{}{}h}{c{{Ah{e}}}{}{}}000000{AHl{{Ah{{Gd{l}}c}}}{}}111{{{AHj{ce}}k}{{Ah{{AHj{cg}}i}}}{}{}{}{}{{Ll{e}{{Hb{{Ah{gi}}}}}}}}{cCj{}}0000{{}AJ`}{{}Cl}99999{{AHlJh{A`{l}}}{{Ld{Bb}}}}``::::{{{AJb{c}}}Jh{}}{{{AJd{c}}}Jh{}}{{{AJb{c}}Bf}DlLh}{{{AJd{c}}Bf}DlLh}{cc{}}0??{{{AJb{c}}}{{If{cJh}}}{}}{{{AJd{c}}}{{If{cJh}}}{}}{c{{AJb{c}}}{}}{c{{AJd{c}}}{}}{{{Gf{{AJd{c}}}}Gh}{{Gj{{Ld{d}}}}}{AJfAFf}}0{{{Gf{{AJd{c}}}}Gh{A`{l}}}{{Gj{{Ld{Bb}}}}}{AJfAFf}}{{{AJb{c}}}{{Ld{{n{l}}}}}AJh}{{{AJb{c}}Bb}{{Ld{Il}}}AJh}{c{{Ah{e}}}{}{}}000{cCj{}}0{ce{}{}}0`````````{{cb}d{}}00{{{AJj{c}}}d{}}222222222222{AJld}{G`G`}{AJnAJn}{AK`AK`}{{ce}d{}{}}00{{}AJl}{{}AK`}{AJlc{}}7{{AJnAJn}B`}{{ce}B`{}{}}009{{AJlBf}Dl}{{G`Bf}Dl}{{AJnBf}Dl}{{AK`Bf}Dl}{{AKbBf}Dl}0{{{AJj{c}}Bf}DlLh}{cc{}}00000000{AJlG`}{ce{}{}}00000{c{}{}}{{ce}{{F`{g}}}{}FbFd}{AK`AJl}`{{{Gf{{AJj{c}}}}Gh}{{Gj{e}}}{}{}}{{cg}{{H`{ei}}}{}{}{{Fb{}{{Hb{e}}}}}{{Fd{}{{Hb{e}}}}}}{AJld}{{}AJl}{{G`g}{{AJj{c}}}In{{Fd{}{{Hb{c}}}}}{{Ll{}{{Hb{e}}}}In}}{{G`e}d{{Fd{}{{Hb{d}}}}}{{Ll{}{{Hb{c}}}}In}}``999{cBj{}}{c{{Ah{e}}}{}{}}00000000000{{{Gf{c}}Gh}Gj{}}{{G`g}{{Ah{{AJj{c}}AKb}}}In{{Fd{}{{Hb{c}}}}}{{Ll{}{{Hb{e}}}}In}}{{G`e}{{Ah{dAKb}}}{{Fd{}{{Hb{d}}}}}{{Ll{}{{Hb{c}}}}In}}{{G`{AFl{Ll}}}{{Ah{dAKb}}}}{cCj{}}00000{ce{}{}}00000{G`Bb}````````````````{{cb}d{}}000000{{{I`{}{{Hn{c}}}}c}{{AKd{d}}}{InAH`}}{{{ADl{c}}c}{{AKd{d}}}{InAH`}}{{{AKf{c}}c}{{Ah{dMj}}}{InAH`}}{{{AKh{ceg}}e}{{Ah{dMj}}}I`{InAH`}{{AGn{e}{{Hb{}}}}EnInAH`}}{{{AKj{ceg}}e}{{Ah{dMj}}}I`{InAH`}{{AGn{e}{{Hb{Bd}}}}EnInAH`}}{{{AKl{c}}e}{{Ah{dMj}}}{InAH`}{}}{{{Gn{c}}e}{{Ah{dMj}}}{InAH`}{}}999999999999999999{{{I`{}{{Hn{c}}}}}{{ADl{c}}}{InAH`}}{{{ADl{c}}}{{ADl{c}}}{}}{{{AKf{c}}}{{AKf{c}}}{}}{{{AKh{ceg}}}{{AKh{ceg}}}I`{InAH`}{{AGn{e}{{Hb{}}}}EnInAH`}}{{{AKj{ceg}}}{{AKj{ceg}}}I`{InAH`}{{AGn{e}{{Hb{Bd}}}}EnInAH`}}{{{AKl{c}}}{{AKl{c}}}{}}{{{Gn{c}}}{{Gn{c}}}{}}{MjMj}{{ce}d{}{}}000000{{}{{AKf{c}}}{}}{{{ADl{c}}Bf}Dl{}}{{{AKf{c}}Bf}Dl{}}{{{AKh{ceg}}Bf}DlI`{InAH`}{{AGn{e}{{Hb{}}}}EnInAH`}}{{{AKj{ceg}}Bf}DlI`{InAH`}{{AGn{e}{{Hb{Bd}}}}EnInAH`}}{{{AKl{c}}Bf}Dl{}}{{{Gn{c}}Bf}Dl{}}{{MjBf}Dl}0{{{AKn{ce}}Bf}DlLhLh}{{{AL`{ce}}Bf}DlLhLh}{cc{}}000000000000000{ce{}{}}00000000{{{AKn{ce}}}cOd{{ALb{Jh}}}}{{{AL`{ce}}}cOd{{AGn{JhBb}{{Hb{{Ld{d}}}}}}}}{{{ALd{c}}}{{AKl{c}}}{}}{{{ALf{c}}}{{Gn{c}}}{}}{{ce}{{AKn{ce}}}Od{{ALb{Jh}}}}{{ce}{{AL`{ce}}}Od{{AGn{JhBb}{{Hb{{Ld{d}}}}}}}}{IbJh}{{{ADl{c}}}Jh{InAH`}}{{{AKf{c}}}Jh{}}{{{AKh{ceg}}}Jh{IbI`}{InAH`}{{AGn{e}{{Hb{}}}}EnInAH`}}{{{AKj{ceg}}}JhIb{}{}}{{{AKl{c}}}Jh{}}{{{Gn{c}}}Jh{}}{{{AKl{c}}{AKl{c}}}B`{}}{{{Gn{c}}{Gn{c}}}B`{}}{{{I`{}{{Hn{c}}}}c}{{`{{Fd{}{{Hb{{AKd{d}}}}}}In}}}{InAH`}}{{{ADl{c}}c}{{AKd{d}}}{InAH`}}{{{AKf{c}}c}{{Ah{dMj}}}{InAH`}}{{{AKh{ceg}}e}{{Ah{dMj}}}I`{InAH`}{{AGn{e}{{Hb{}}}}EnInAH`}}{{{AKj{ceg}}e}{{Ah{dMj}}}I`{InAH`}{{AGn{e}{{Hb{Bd}}}}EnInAH`}}{{{AKl{c}}e}{{Ah{dMj}}}{InAH`}{}}{{{Gn{c}}e}{{Ah{dMj}}}{InAH`}{}}{{{AKn{ce}}Jh}{{Ld{d}}}Od{{ALb{JhBb}}}}{{{AL`{ce}}Jh}{{Ld{d}}}Od{{AGn{JhBb}{{Hb{{Ld{d}}}}}}}}{{{AKn{ce}}}{{Ld{d}}}Od{{ALb{JhBb}}}}{{{AL`{ce}}}{{Ld{d}}}Od{{AGn{JhBb}{{Hb{{Ld{d}}}}}}}}{ce{}{}}000000{cBj{}}{c{{Ah{e}}}{}{}}00000000000000000{{{I`{}{{Hn{c}}}}c}{{AKd{d}}}{InAH`}}=<;:98{cCj{}}00000000444444444{{{I`{}{{Hn{c}}}}g}{{AKj{{I`{}{{Hn{c}}}}eg}}}{InAH`}{InAH`}{{AGn{e}{{Hb{{Bd{c}}}}}}InAH`En}}{{{I`{}{{Hn{c}}}}g}{{AKh{{I`{}{{Hn{c}}}}eg}}}{InAH`}{InAH`}{{AGn{e}{{Hb{c}}}}InAH`En}}{{{AKn{ce}}Jh{A`{l}}}{{Ld{d}}}Od{{ALb{JhBb}}}}{{{AL`{ce}}Jh{A`{l}}}{{Ld{d}}}Od{{AGn{JhBb}{{Hb{{Ld{d}}}}}}}}{{{AKn{ce}}JhIl}{{Ld{d}}}Od{{ALb{JhBb}}}}{{{AL`{ce}}JhIl}{{Ld{d}}}Od{{AGn{JhBb}{{Hb{{Ld{d}}}}}}}}","D":"FIh","p":[[5,"Private",2309],[1,"unit"],[5,"BitSlice",2310],[10,"BitOrder",2311],[5,"Hash",0,2312],[1,"u8"],[1,"array"],[1,"slice"],[6,"BlobFormat",0,2312],[5,"HashAndFormat",0,2312],[6,"Ordering",2313],[6,"Result",2314],[10,"Deserializer",2315],[1,"char"],[10,"FromIterator",2316],[1,"bool"],[1,"usize"],[6,"Option",2317],[5,"Formatter",2318],[5,"Error",2318],[5,"String",2319],[5,"Hash",2320],[5,"DownloadKind",132],[1,"str"],[10,"Hasher",2321],[10,"AsRef",2322],[10,"Serializer",2323],[6,"BitSpanError",2324],[5,"TypeId",2325],[5,"TypeName",2326],[5,"Downloader",132],[5,"DownloadHandle",132],[5,"IntentId",132],[5,"DownloadRequest",132],[6,"DownloadError",132],[5,"ConcurrencyLimits",132],[5,"RetryConfig",132],[8,"Result",2318],[6,"FailureAction",132],[6,"GetError",525],[17,"Connection"],[10,"Getter",132],[5,"Stats",377],[8,"BoxedLocal",2327],[10,"Dialer",132],[8,"NodeId",2328],[10,"Clone",2329],[5,"Join2",2330],[10,"IntoFuture",2331],[10,"Future",2332],[10,"Into",2322],[5,"NodeAddr",2333],[17,"Item"],[10,"IntoIterator",2316],[5,"Endpoint",2334],[5,"LocalPoolHandle",2018],[10,"Store",1239,2335],[5,"Vec",2336],[5,"Pin",2337],[5,"Context",2338],[6,"Poll",2339],[6,"DownloadProgress",432],[5,"AsyncChannelProgressSender",2127],[5,"Race2",2340],[17,"Output"],[6,"ExportProgress",307],[5,"PathBuf",2341],[6,"ExportFormat",1239,2335],[6,"ExportMode",1239,2335],[8,"Result",2342],[17,"Msg"],[10,"ProgressSender",2127],[10,"IdGenerator",2127],[5,"Collection",341],[1,"tuple"],[10,"Iterator",2343],[10,"SimpleStore",341],[5,"Bytes",2344],[10,"Send",2345],[10,"Map",1239,2335],[5,"AtStartRoot",552],[6,"EndBlobNext",552],[5,"HashSeq",854],[1,"u64"],[5,"BTreeMap",2346],[5,"TempTag",1846],[10,"DoubleEndedIterator",2347],[6,"GetResponseError",377],[6,"WriteError",2348],[6,"ConnectionError",2349],[6,"ReadError",2350],[6,"Error",2351],[6,"DecodeError",2352],[5,"Error",2342],[1,"f64"],[10,"Error",2353],[6,"BlobInfo",432],[8,"Result",2354],[6,"BlobId",432],[10,"Debug",2318],[5,"Connection",2355],[10,"FnOnce",2356],[8,"ChunkRanges",2357],[6,"BaoBlobSize",1239,2335],[6,"ConnectedNextError",552],[5,"Error",2354],[6,"AtBlobHeaderNextError",552],[6,"DecodeError",552],[6,"ProgressSendError",2127],[5,"AtStartChild",552],[5,"AtBlobHeader",552],[5,"AtEndBlob",552],[5,"AtBlobContent",552],[5,"AtClosing",552],[5,"AtInitial",552],[5,"AtConnected",552],[6,"ConnectedNext",552],[6,"BlobContentNext",552],[6,"BaoContentItem",2358],[5,"GetRequest",946],[5,"BaoTree",2357],[10,"AsyncSliceWriter",2359],[10,"BaoBatchWriter",1239,2335],[10,"OutboardMut",2360],[5,"TransferState",765],[5,"BlobState",765],[6,"BlobProgress",765],[5,"ChunkNum",2361],[5,"Arc",2362],[5,"RangeSpecSeq",946,2363],[10,"Rng",2364],[5,"HashSeqStream",854],[5,"HashSeqIter",854],[5,"IntoFallible",2365],[10,"AsyncSliceReader",2359],[5,"Convert",2365],[5,"Metrics",916],[10,"Any",2325],[5,"IntoIter",2366],[5,"RangeSpec",946,2363],[6,"Request",946],[6,"Closed",946],[5,"NonEmptyRequestRangeSpecIter",946,2363],[5,"UnknownErrorCode",946],[8,"ChunkRangesRef",2357],[5,"VarInt",2367],[6,"Event",1108],[5,"TransferStats",1108],[6,"SentStatus",1108],[6,"AddProgress",1108],[5,"ResponseWriter",1108],[10,"EventSender",1108],[5,"RecvStream",2350],[8,"Boxed",2327],[5,"SliceReaderStats",2368],[10,"AsyncStreamWriter",2359],[10,"Outboard",2360],[10,"MapEntryMut",1239,2335],[10,"ReadableStore",1239,2335],[8,"DbIter",1239,2335],[6,"EntryStatus",1239,2335],[6,"ImportMode",1239,2335],[6,"ReportLevel",1239,2335],[6,"Event",1239,2335],[6,"ConsistencyCheckProgress",1239,2335],[5,"BoxedProgressSender",2127],[5,"Tag",1846],[10,"MapEntry",1239,2335],[6,"ValidateProgress",1239,2335],[17,"EntryMut"],[10,"MapMut",1239,2335],[8,"ExportProgressCb",1239,2335],[6,"GcMarkEvent",1239,2335],[6,"GcSweepEvent",1239,2335],[6,"ImportProgress",1239,2335],[6,"ExportProgress",1239,2335],[5,"BTreeSet",2369],[10,"Stream",2370],[10,"Unpin",2345],[17,"Entry"],[10,"AsyncRead",2371],[5,"Box",2372],[8,"Entry",1584],[5,"Store",1584],[5,"InlineOptions",1584],[5,"PathOptions",1584],[5,"BatchOptions",1584],[5,"Options",1584],[5,"FlatStorePaths",1584],[5,"Path",2341],[10,"Fn",2356],[10,"Sync",2345],[5,"Entry",1724],[5,"Store",1724],[5,"Entry",1783],[5,"Store",1783],[6,"MemOrFile",1846,2373],[5,"SparseMemFile",1846,2374],[10,"TagCounter",1846],[10,"TagDrop",1846],[5,"Weak",2362],[5,"SystemTime",2375],[6,"SetTagOption",1846],[10,"Default",2376],[8,"RangeSet2",2377],[10,"WriteAt",2378],[5,"File",2379],[5,"TypeName",2326],[5,"TrackingReader",1987],[5,"TrackingWriter",1987],[10,"AsyncWrite",2380],[10,"AsyncStreamReader",2359],[5,"Run",2018],[5,"LocalPool",2018],[6,"PanicMode",2018],[5,"Config",2018],[6,"SpawnError",2018],[8,"ProgressSendResult",2127],[5,"IgnoreProgressSender",2127],[5,"WithMap",2127],[5,"WithFilterMap",2127],[5,"FlumeProgressSender",2127],[5,"ProgressSliceWriter",2127],[5,"FallibleProgressSliceWriter",2127],[10,"FnMut",2356],[5,"Sender",2381],[5,"Sender",2382],[15,"Found",332],[15,"Progress",332],[15,"Done",332],[15,"Partial",509],[15,"Complete",509],[15,"FoundLocal",512],[15,"Found",512],[15,"FoundHashSeq",512],[15,"Progress",512],[15,"Done",512],[15,"AllDone",1205],[15,"Done",1205],[15,"Found",1205],[15,"Progress",1205],[15,"ClientConnected",1215],[15,"GetRequestReceived",1215],[15,"CustomGetRequestReceived",1215],[15,"TransferHashSeqStarted",1215],[15,"TransferBlobCompleted",1215],[15,"TransferCompleted",1215],[15,"TransferAborted",1215],[15,"TaggedBlobAdded",1215],[15,"Update",1547],[15,"Start",1550],[15,"Progress",1550],[15,"Done",1550],[15,"OutboardDone",1557],[15,"Found",1557],[15,"CopyProgress",1557],[15,"Size",1557],[15,"OutboardProgress",1557],[15,"EntryDone",1567],[15,"Entry",1567],[15,"PartialEntry",1567],[15,"EntryProgress",1567],[15,"PartialEntryProgress",1567],[15,"PartialEntryDone",1567],[15,"Starting",1567]],"r":[[0,2312],[2,2312],[3,2312],[7,1846],[8,1846],[952,2363],[954,2363],[955,2363],[1242,2335],[1243,2335],[1247,2335],[1255,2335],[1263,2335],[1267,2335],[1268,2335],[1269,2335],[1270,2335],[1271,2335],[1274,2335],[1276,2335],[1277,2335],[1278,2335],[1280,2335],[1281,2335],[1282,2335],[1283,2335],[1292,2335],[1293,2335],[1298,2335],[1304,2335],[1849,2373],[1852,2374]],"b":[[13,"impl-Value-for-Hash"],[14,"impl-Hash"],[18,"impl-Borrow%3C%5Bu8;+32%5D%3E-for-Hash"],[19,"impl-Borrow%3C%5Bu8%5D%3E-for-Hash"],[60,"impl-Debug-for-Hash"],[61,"impl-Display-for-Hash"],[62,"impl-Display-for-BlobFormat"],[63,"impl-Debug-for-BlobFormat"],[64,"impl-Debug-for-HashAndFormat"],[65,"impl-Display-for-HashAndFormat"],[69,"impl-From%3CHash%3E-for-Hash"],[70,"impl-From%3C%5Bu8;+32%5D%3E-for-Hash"],[71,"impl-From%3C%26%5Bu8;+32%5D%3E-for-Hash"],[76,"impl-Hash"],[77,"impl-Value-for-Hash"],[199,"impl-Display-for-IntentId"],[200,"impl-Debug-for-IntentId"],[205,"impl-Debug-for-DownloadKind"],[206,"impl-Display-for-DownloadKind"],[207,"impl-Display-for-DownloadError"],[208,"impl-Debug-for-DownloadError"],[230,"impl-Hash-for-DownloadKind"],[231,"impl-DownloadKind"],[403,"impl-Debug-for-GetResponseError"],[404,"impl-Display-for-GetResponseError"],[406,"impl-From%3CWriteError%3E-for-GetResponseError"],[407,"impl-From%3CConnectionError%3E-for-GetResponseError"],[409,"impl-From%3CReadError%3E-for-GetResponseError"],[410,"impl-From%3CError%3E-for-GetResponseError"],[411,"impl-From%3CDecodeError%3E-for-GetResponseError"],[412,"impl-From%3CError%3E-for-GetResponseError"],[534,"impl-Display-for-GetError"],[535,"impl-Debug-for-GetError"],[536,"impl-From%3CConnectedNextError%3E-for-GetError"],[538,"impl-From%3CError%3E-for-GetError"],[539,"impl-From%3CAtBlobHeaderNextError%3E-for-GetError"],[540,"impl-From%3CReadError%3E-for-GetError"],[541,"impl-From%3CDecodeError%3E-for-GetError"],[542,"impl-From%3CWriteError%3E-for-GetError"],[543,"impl-From%3CProgressSendError%3E-for-GetError"],[544,"impl-From%3CConnectionError%3E-for-GetError"],[626,"impl-Debug-for-ConnectedNextError"],[627,"impl-Display-for-ConnectedNextError"],[631,"impl-Display-for-AtBlobHeaderNextError"],[632,"impl-Debug-for-AtBlobHeaderNextError"],[634,"impl-Display-for-DecodeError"],[635,"impl-Debug-for-DecodeError"],[642,"impl-From%3CAtClosing%3E-for-ConnectedNext"],[643,"impl-From%3CAtStartChild%3E-for-ConnectedNext"],[644,"impl-From%3CAtStartRoot%3E-for-ConnectedNext"],[653,"impl-From%3CDecodeError%3E-for-DecodeError"],[655,"impl-From%3CError%3E-for-DecodeError"],[656,"impl-From%3CAtBlobHeaderNextError%3E-for-DecodeError"],[657,"impl-From%3CAtEndBlob%3E-for-BlobContentNext"],[659,"impl-From%3C(AtBlobContent,+Result%3CBaoContentItem,+DecodeError%3E)%3E-for-BlobContentNext"],[661,"impl-From%3CAtStartChild%3E-for-EndBlobNext"],[662,"impl-From%3CAtClosing%3E-for-EndBlobNext"],[1024,"impl-Display-for-UnknownErrorCode"],[1025,"impl-Debug-for-UnknownErrorCode"],[1408,"impl-Display-for-ReportLevel"],[1409,"impl-Debug-for-ReportLevel"],[1860,"impl-RedbValue-for-Tag"],[1861,"impl-Value-for-Tag"],[1883,"impl-RedbKey-for-Tag"],[1885,"impl-Key-for-Tag"],[1903,"impl-RedbValue-for-Tag"],[1904,"impl-Value-for-Tag"],[1908,"impl-Debug-for-Tag"],[1909,"impl-Display-for-Tag"],[1916,"impl-From%3CString%3E-for-Tag"],[1917,"impl-From%3CBytes%3E-for-Tag"],[1918,"impl-From%3C%26str%3E-for-Tag"],[1922,"impl-Value-for-Tag"],[1923,"impl-RedbValue-for-Tag"],[1953,"impl-MemOrFile%3CM,+(F,+u64)%3E"],[1954,"impl-Size-for-MemOrFile%3CBytes,+File%3E"],[1979,"impl-RedbValue-for-Tag"],[1980,"impl-Value-for-Tag"],[2063,"impl-Display-for-SpawnError"],[2064,"impl-Debug-for-SpawnError"],[2197,"impl-Display-for-ProgressSendError"],[2198,"impl-Debug-for-ProgressSendError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAALkFogAIAAYAEAAaACwADQA7AAcARgACAEsAAABOAAYAVgACAGQAAgBqAAIAbwARAIIAAgCaABYAsgAhANYAAADcAAAA4AAEAOYAAQD0AAAA9gAAAP8AAAABAQAABQEtADoBBQBDAQAARQEAAEcBBQBZAQkAZAECAGgBAAByAQAAdQEEAIEBBACIAQEAiwEBAI4BAwCTAQIAlwEBAJoBBAClAQsAwgECAMYBFgDgAQIA5AEAAOkBAgDtAQsA+wECABUCBAAbAgYAIwIFAEwCGwBwAhAAgwICAIcCAACOAgAAkAICAJQCAACWAgEAuQIBALwCAgDAAjcABQMIABADBQAYAxIALgMCAD8DAgBDAw4AWgMRAG8DAwB5AwEAgAMAAIQDAgCIAwwAlgMSAKoDAACsAwYAwQMEAMoDGwDnAxsABgQAAA0EBwAeBAAAKAQAACsEAwAxBAUAOAQcAGoEFACABAgAjgQCAJ0EAwCiBBMA9wQAABwFBwAmBSkAUwUCAFcFBQBfBRcAeAUNAJMFBgC8BQEAvwUFAMwFLgD+BQwADwYQADoGBABABhcAWQYBAFwGAwBhBggAcAYLAH0GAAB/BgAAhgYAAJAGAACUBgAAlgYCAJoGAACcBgYApAYRALcGBQC/BhUA1wYKAOQGAADmBhEA+gYVABIHBAAYBwIAHAcBAB8HAAAjBwAAJQcRAEIHBABIBwAASwctAHwHAwCDBwMAmgcBAJ4HAwCjBwEApgcCAKoHCwC3BwwAxgcDAMwHAQDWBwwA7AcCAPAHCwD9Bw0ADAgGABkIAgAjCAEAJwgBAC8IEABDCAsAYAgGAGgIFwCBCBgAowgGALoIBQDDCCMA6AgXAAIJAwA="}],\ ["iroh_dns_server",{"t":"CCCCCCGFPPFFOONNNNNNNNNNNNNNNNNOOONNNNNNNNOONNNNNOONNNNNNNNNNNNNNNNNNNNNFFFFNNNNONNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNGFFFPPPNNNOONNNNNNNNONNNNNNNNNONNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNOOOOOONNNOOOOHNNNOOOOONNNNNFNNNNNHNNNNNNFNNNNNONNNONNNNN","n":["config","dns","http","metrics","server","state","BootstrapOption","Config","Custom","Default","MainlineConfig","MetricsConfig","bind_addr","bootstrap","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","data_dir","default","default","default","deserialize","deserialize","deserialize","deserialize","disabled","disabled","dns","enabled","fmt","fmt","fmt","fmt","from","from","from","from","http","https","into","into","into","into","load","mainline","metrics","serialize","serialize","serialize","serialize","signed_packet_store_path","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","DnsConfig","DnsHandler","DnsServer","Handle","__clone_box","__clone_box","__clone_box","answer_request","bind_addr","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","default_soa","default_ttl","deserialize","fmt","fmt","fmt","from","from","from","from","from_ref","from_ref","from_ref","handle_request","into","into","into","into","local_addr","new","origins","port","rr_a","rr_aaaa","rr_ns","run_until_done","send_response","serialize","shutdown","spawn","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","CertMode","HttpConfig","HttpServer","HttpsConfig","LetsEncrypt","Manual","SelfSigned","__clone_box","__clone_box","__clone_box","bind_addr","bind_addr","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cert_mode","clone","clone","clone","clone_into","clone_into","clone_into","deserialize","deserialize","deserialize","domains","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from_ref","from_ref","from_ref","http_addr","https_addr","into","into","into","into","letsencrypt_contact","letsencrypt_prod","port","port","run_until_done","serialize","serialize","serialize","shutdown","spawn","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","Metrics","__clone_box","borrow","borrow_mut","clone","clone_into","default","dns_lookup_error","dns_lookup_notfound","dns_lookup_success","dns_requests","dns_requests_https","dns_requests_udp","fmt","from","from_ref","http_requests","http_requests_duration_ms","http_requests_error","http_requests_success","init_metrics","into","iter","name","pkarr_publish_noop","pkarr_publish_update","store_packets_inserted","store_packets_removed","store_packets_updated","to_owned","try_from","try_into","type_id","vzip","Server","borrow","borrow_mut","from","into","run_until_error","run_with_config_until_ctrl_c","shutdown","spawn","try_from","try_into","type_id","vzip","AppState","__clone_box","borrow","borrow_mut","clone","clone_into","dns_handler","from","from_ref","into","store","to_owned","try_from","try_into","type_id","vzip"],"q":[[0,"iroh_dns_server"],[6,"iroh_dns_server::config"],[72,"iroh_dns_server::dns"],[144,"iroh_dns_server::http"],[226,"iroh_dns_server::metrics"],[260,"iroh_dns_server::server"],[273,"iroh_dns_server::state"],[289,"std::path"],[290,"anyhow"],[291,"core::result"],[292,"serde::de"],[293,"core::fmt"],[294,"core::convert"],[295,"serde::ser"],[296,"core::any"],[297,"dyn_clone::sealed"],[298,"hickory_server::server::request_handler"],[299,"bytes::bytes"],[300,"core::future::future"],[301,"alloc::boxed"],[302,"core::pin"],[303,"hickory_server::server::response_handler"],[304,"core::net::socket_addr"],[305,"hickory_server::authority::message_response"],[306,"hickory_proto::rr::resource"],[307,"core::iter::traits::iterator"],[308,"core::marker"],[309,"iroh_dns_server::http::tls"],[310,"core::option"],[311,"alloc::string"],[312,"alloc::vec::into_iter"]],"i":[0,0,0,0,0,0,0,0,5,5,0,0,8,4,3,8,4,5,3,8,4,5,3,3,4,5,3,8,4,5,8,8,3,4,3,8,4,5,3,8,4,5,3,3,3,8,4,5,3,3,3,3,8,4,5,3,3,8,4,5,3,8,4,5,3,8,4,5,3,8,4,5,0,0,0,0,20,17,21,17,20,26,20,17,21,26,20,17,21,20,17,21,20,17,21,20,20,20,20,17,21,26,20,17,21,20,17,21,17,26,20,17,21,26,17,20,20,20,20,20,26,21,20,26,26,20,17,21,26,20,17,21,26,20,17,21,26,20,17,21,26,20,17,21,0,0,0,0,33,33,33,33,34,35,34,35,38,33,34,35,38,33,34,35,35,33,34,35,33,34,35,33,34,35,35,33,33,33,33,33,33,34,35,38,33,34,35,33,34,35,38,38,38,33,34,35,35,35,34,35,38,33,34,35,38,38,33,34,35,33,38,33,34,35,38,33,34,35,38,33,34,35,38,33,34,35,0,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,0,42,42,42,42,42,42,42,42,42,42,42,42,42,0,47,47,47,47,47,0,47,47,47,47,47,47,0,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40],"f":"``````````````{ce{}{}}0000000{{}{{d{b}}}}{{}f}{{}h}{{}j}{c{{l{f}}}n}{c{{l{A`}}}n}{c{{l{h}}}n}{c{{l{j}}}n}{{}A`}```{{fAb}Ad}{{A`Ab}Ad}{{hAb}Ad}{{jAb}Ad}{cc{}}000``>>>>{c{{d{f}}}{{Ah{Af}}}}``{{fc}lAj}{{A`c}lAj}{{hc}lAj}{{jc}lAj}{{}{{d{b}}}}{c{{l{e}}}{}{}}0000000{cAl{}}000{ce{}{}}000````{{cAn}B`{}}00{{BbBd}{{d{Bf}}}}`22222222{BhBh}{BbBb}{BjBj}{{ce}B`{}{}}00``{c{{l{Bh}}}n}{{BhAb}Ad}{{BbAb}Ad}{{BjAb}Ad}{cc{}}000000{{BbBdc}{{C`{{Bn{Bl}}}}}Cb}<<<<{CdCf}``````{Cd{{d{B`}}}}{{Bj{Ch{cegi}}}{{C`{{Bn{Bl}}}}}{{Cn{}{{Cj{Cl}}}}D`}{{Cn{}{{Cj{Cl}}}}D`}{{Cn{}{{Cj{Cl}}}}D`}{{Cn{}{{Cj{Cl}}}}D`}}{{Bhc}lAj}2{{BhBb}{{d{Cd}}}}{ce{}{}}00{c{{l{e}}}{}{}}0000000{cAl{}}0002222```````{{cAn}B`{}}00``33333333`{DbDb}{DdDd}{DfDf}{{ce}B`{}{}}00{c{{l{Db}}}n}{c{{l{Dd}}}n}{c{{l{Df}}}n}`{{DbDb}Dh}{{ce}Dh{}{}}00{{DbAb}Ad}{{DbAb}{{l{B`Dj}}}}{{DdAb}Ad}{{DfAb}Ad}{cc{}}000000{Dl{{Dn{Cf}}}}0{ce{}{}}000````{Dl{{d{B`}}}}{{Dbc}lAj}{{Ddc}lAj}{{Dfc}lAj}3{{{Dn{Dd}}{Dn{Df}}E`}{{d{Dl}}}}555{cEb{}}{c{{l{e}}}{}{}}0000000{cAl{}}0008888`{{cAn}B`{}}99{EdEd}{{ce}B`{}{}}{{}Ed}``````{{EdAb}Ad}??````{{}B`}>{Ed{{El{{Ej{EfEh}}}}}}{{}Ef}`````{ce{}{}}::90`00{cc{}}1{En{{d{B`}}}}{f{{d{B`}}}}1`==<3`;33{E`E`}:`334`4>>=4","D":"M`","p":[[5,"PathBuf",289],[8,"Result",290],[5,"Config",6],[5,"MainlineConfig",6],[6,"BootstrapOption",6],[6,"Result",291],[10,"Deserializer",292],[5,"MetricsConfig",6],[5,"Formatter",293],[8,"Result",293],[5,"Path",289],[10,"AsRef",294],[10,"Serializer",295],[5,"TypeId",296],[5,"Private",297],[1,"unit"],[5,"DnsHandler",72],[5,"Request",298],[5,"Bytes",299],[5,"DnsConfig",72],[5,"Handle",72],[10,"Future",300],[5,"Box",301],[5,"Pin",302],[10,"ResponseHandler",303],[5,"DnsServer",72],[6,"SocketAddr",304],[5,"MessageResponse",305],[17,"Item"],[5,"Record",306],[10,"Iterator",307],[10,"Send",308],[6,"CertMode",144,309],[5,"HttpConfig",144],[5,"HttpsConfig",144],[1,"bool"],[5,"Error",293],[5,"HttpServer",144],[6,"Option",310],[5,"AppState",273],[5,"String",311],[5,"Metrics",226],[1,"str"],[10,"Any",296],[1,"tuple"],[5,"IntoIter",312],[5,"Server",260]],"r":[[144,309]],"b":[[179,"impl-Debug-for-CertMode"],[180,"impl-Display-for-CertMode"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAALkAGgAPAAcAGAAGACMAAwA0AAMAOQAPAE0AAgBSAA0AYgADAGoAAwB6AAEAfgASAJgAAgCdAAcApgAIALAABwC8AAIAygACAM8AEwDkAAwA8gAEAPkACwAGAQEADgEDABMBBAAaAQAAHQEEAA=="}],\ -["iroh_docs",{"t":"FFFFFFFFNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCNNNONNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNOONOONNNNNNNNNNNNNNNNNPPPFGPFPPGPPPPGPPPFPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOHNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONONNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOFNONNNNNOOOOOOOOOONNNNNNOOOOOOOONNNNNPGGGPPPPPPGSPPPPPPPFFNNNNNNNNNNNNNNNNNNNNNNNNOHNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNOONOONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOPPPGPPGKPPPPGFGPPGFPPPGPPPKFFFGGEPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPGGGPPGIFPFGPGGPPPPSPPPIIPPFPFFPFFFPPFPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOO","n":["Author","AuthorHeads","AuthorId","AuthorPublicKey","DocTicket","NamespaceId","NamespacePublicKey","NamespaceSecret","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","actor","as_bits","as_bits","as_bytes","as_bytes","as_bytes","as_bytes","as_ref","as_ref","as_ref","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","capability","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compare","compare","compare","compare","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","engine","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","fmt_short","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_bytes","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","from_str","from_str","from_str","from_str","from_str","from_str","hash","hash","hash","hash","id","id","into","into","into","into","into","into","into","into_public_key","into_public_key","metrics","net","new","new","new","nodes","partial_cmp","partial_cmp","partial_cmp","partial_cmp","public_key","public_key","public_key","public_key","serialize","serialize","serialize","serialize","serialize","serialize","serialize","sign","sign","store","sync","to_bytes","to_bytes","to_bytes","to_bytes","to_bytes","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify","verify","verify","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","OpenOpts","OpenState","SyncHandle","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","close","content_hashes","default","default","delete_author","delete_prefix","deserialize","drop","drop_replica","eq","equivalent","equivalent","equivalent","export_author","export_secret_key","flush_store","fmt","fmt","fmt","from","from","from","from_ref","from_ref","get_download_policy","get_exact","get_many","get_state","get_sync_peers","handles","has_news_for_us","import_author","import_namespace","insert_local","insert_remote","into","into","into","list_authors","list_replicas","open","register_useful_peer","serialize","set_download_policy","set_sync","shutdown","spawn","subscribe","subscribe","subscribe","subscribers","sync","sync","sync","sync_initial_message","sync_process_message","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unsubscribe","vzip","vzip","vzip","Accept","Connect","ContentReady","DefaultAuthor","DefaultAuthorStorage","DirectJoin","Engine","InsertLocal","InsertRemote","LiveEvent","Mem","NeighborDown","NeighborUp","NewNeighbor","Origin","PendingContentReady","Persistent","Resync","SyncEvent","SyncFinished","SyncReason","SyncReport","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","default_author","deserialize","deserialize","deserialize","deserialize","endpoint","entry_to_content_status","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","finished","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","get","handle_connection","into","into","into","into","into","into","into","leave","load","load","origin","peer","persist","result","serialize","serialize","serialize","serialize","set","shutdown","spawn","start_sync","started","subscribe","sync","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","content_status","entry","entry","from","hash","Metrics","__clone_box","actor_tick_main","borrow","borrow_mut","clone","clone_into","default","doc_gossip_tick_actor","doc_gossip_tick_event","doc_gossip_tick_main","doc_gossip_tick_pending_join","doc_live_tick_actor","doc_live_tick_main","doc_live_tick_pending_downloads","doc_live_tick_replica_event","doc_live_tick_running_sync_accept","doc_live_tick_running_sync_connect","fmt","from","from_ref","into","iter","name","new_entries_local","new_entries_local_size","new_entries_remote","new_entries_remote_size","sync_via_accept_failure","sync_via_accept_success","sync_via_connect_failure","sync_via_connect_success","to_owned","try_from","try_into","type_id","vzip","Abort","AbortReason","AcceptError","AcceptOutcome","Allow","AlreadySyncing","Close","Close","Connect","Connect","ConnectError","DOCS_ALPN","InternalServerError","NotFound","Open","Reject","RemoteAbort","Sync","Sync","SyncFinished","Timings","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","connect","connect_and_sync","default","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","handle_connection","into","into","into","into","into","into","namespace","namespace","outcome","peer","peer","process","serialize","source","source","timings","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","error","error","error","error","namespace","namespace","namespace","peer","peer","peer","peer","reason","error","error","error","Any","Any","Asc","AuthorFilter","AuthorKey","Desc","DownloadPolicy","DownloadPolicyStore","EverythingExcept","Exact","Exact","Exact","FilterKind","FlatQuery","ImportNamespaceOutcome","Inserted","KeyAuthor","KeyFilter","MemPublicKeyStore","NoChange","NotFound","NothingExcept","OpenError","Other","Prefix","Prefix","PublicKeyStore","Query","QueryBuilder","SingleLatestPerKeyQuery","SortBy","SortDirection","Store","Upgraded","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","all","author","author","author_key","author_key","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","default","default","default","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","fs","get_download_policy","include_empty","into","into","into","into","into","into","into","into","into","into","into","into","into","key_exact","key_exact","key_prefix","key_prefix","limit","limit","matches","matches","matches","matches","namespace_key","namespace_key","offset","offset","public_key","public_key","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","single_latest_per_key","sort_by","sort_direction","source","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","ContentHashesIterator","LatestIterator","ParentIterator","RecordsRange","Store","StoreInstance","all","as_mut","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","close_replica","content_hashes","delete_author","flush","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","get_author","get_download_policy","get_download_policy","get_download_policy","get_exact","get_latest_for_each_author","get_many","get_sync_peers","has_news_for_us","import_author","import_namespace","into","into","into","into","into","into","into_fallible","into_fallible","into_fallible","into_fallible","into_iter","into_iter","into_iter","into_iter","list_authors","list_namespaces","load_replica_info","memory","new_author","new_replica","next","next","next","next","open_replica","persistent","public_key","public_key","register_useful_peer","remove_replica","set_download_policy","snapshot","snapshot_owned","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","AuthorHeads","BadSignature","Capability","CapabilityError","CapabilityKind","Closed","Complete","ContentStatus","ContentStatusCallback","Entry","EntryIsEmpty","EntrySignature","Event","Incomplete","InsertError","InsertOrigin","InvalidEmptyEntry","InvalidNamespace","Local","LocalInsert","MAX_TIMESTAMP_FUTURE_SHIFT","Missing","NamespaceMismatch","NewerEntryExists","PeerIdBytes","ProtocolMessage","Read","Read","ReadOnly","ReadOnly","Record","RecordIdentifier","RemoteInsert","Replica","ReplicaInfo","SignedEntry","Store","Sync","SyncOutcome","TooFarInTheFuture","Validation","ValidationFailure","Write","Write","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_bits","as_byte_tuple","as_bytes","as_ref","author","author","author_bytes","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","capability","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","closed","cmp","cmp","cmp","cmp","compare","compare","compare","compare","content_hash","content_hash","content_len","content_len","decode","default","default","default","delete_prefix","deref","deref","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","empty","empty_current","encode","encode","encode_hex","encode_hex_upper","entry","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_entry","from_entry","from_iter","from_iter","from_parts","from_raw","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","get","has_news_for","hash_and_insert","heads_received","id","id","id","insert","insert","insert_remote_entry","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_empty","is_empty","iter","key","key","key","key_bytes","kind","len","merge","merge","merge_capability","namespace","namespace","new","new","new","new","new","new_current","new_empty","num_recv","num_sent","partial_cmp","partial_cmp","partial_cmp","partial_cmp","raw","record","record_id","secret_key","secret_key","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_content_status_callback","sign","signature","source","subscribe","subscribers_count","sync_initial_message","sync_process_message","timestamp","timestamp","to_byte_tuple","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_vec","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_primitive","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unsubscribe","validate_empty","validate_empty","verify","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","entry","entry","from","namespace","namespace","remote_content_status","should_download","from","remote_content_status"],"q":[[0,"iroh_docs"],[250,"iroh_docs::actor"],[336,"iroh_docs::engine"],[492,"iroh_docs::engine::LiveEvent"],[497,"iroh_docs::metrics"],[534,"iroh_docs::net"],[652,"iroh_docs::net::AcceptError"],[664,"iroh_docs::net::ConnectError"],[667,"iroh_docs::store"],[956,"iroh_docs::store::fs"],[1065,"iroh_docs::sync"],[1493,"iroh_docs::sync::Event"],[1500,"iroh_docs::sync::InsertOrigin"],[1502,"dyn_clone::sealed"],[1503,"bitvec::slice"],[1504,"bitvec::order"],[1505,"iroh_docs::keys"],[1506,"iroh_docs::ticket"],[1507,"core::cmp"],[1508,"core::result"],[1509,"serde::de"],[1510,"core::iter::traits::collect"],[1511,"core::fmt"],[1512,"alloc::string"],[1513,"ed25519_dalek::signing"],[1514,"ed25519_dalek::verifying"],[1515,"iroh_base::ticket"],[1516,"ed25519_dalek::errors"],[1517,"core::hash"],[1518,"iroh_base::node_addr"],[1519,"alloc::vec"],[1520,"rand_core"],[1521,"core::marker"],[1522,"core::option"],[1523,"iroh_docs::store::pubkeys"],[1524,"serde::ser"],[1525,"ed25519"],[1526,"bitvec::ptr::span"],[1527,"core::any"],[1528,"anyhow"],[1529,"bytes::bytes"],[1530,"async_channel"],[1531,"iroh_docs::heads"],[1532,"core::num::nonzero"],[1533,"iroh_base::hash"],[1534,"iroh_docs::engine::live"],[1535,"iroh_docs::engine::state"],[1536,"iroh_blobs::store::traits"],[1537,"std::io::error"],[1538,"iroh_net::endpoint"],[1539,"iroh_gossip::net"],[1540,"iroh_blobs::downloader"],[1541,"futures_core::stream"],[1542,"alloc::vec::into_iter"],[1543,"core::future::future"],[1544,"iroh_base::key"],[1545,"core::ops::function"],[1546,"core::error"],[1547,"core::default"],[1548,"core::convert"],[1549,"redb::table"],[1550,"iroh_docs::store::fs::ranges"],[1551,"fallible_iterator"],[1552,"core::iter::traits::iterator"],[1553,"std::path"],[1554,"core::ops::deref"],[1555,"alloc::collections::btree::map"],[1556,"num_enum"]],"i":[0,0,0,0,0,0,0,0,12,13,5,14,8,9,10,0,9,10,5,8,9,10,9,9,10,10,12,13,5,14,8,9,10,12,13,5,14,8,9,10,12,12,13,5,14,8,9,10,12,13,5,14,8,9,10,5,8,9,10,5,8,9,10,5,8,9,10,12,13,5,14,8,9,10,9,10,9,10,0,5,8,9,10,5,5,5,8,8,8,9,9,9,10,10,10,12,12,13,13,5,5,14,14,8,8,9,9,10,10,9,10,12,13,13,5,5,5,5,14,14,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,12,13,5,14,8,12,13,5,14,8,9,10,12,13,5,14,8,9,10,5,8,9,10,13,14,12,13,5,14,8,9,10,9,10,0,0,12,13,14,12,5,8,9,10,13,14,9,10,12,13,5,14,8,9,10,13,14,0,0,12,13,14,9,10,12,13,5,14,8,9,10,12,13,5,14,8,9,10,9,10,12,13,5,5,14,8,8,9,10,12,13,5,14,8,9,10,12,13,5,14,8,9,10,13,5,14,8,12,13,5,14,8,9,10,0,0,0,41,42,41,42,45,41,42,45,41,42,41,42,42,42,41,45,42,42,41,42,42,41,41,41,41,42,42,42,41,42,45,41,42,45,41,42,42,42,42,42,42,41,42,42,42,42,42,41,42,45,42,42,42,42,41,42,42,42,42,42,45,45,41,45,41,45,42,42,41,42,41,42,45,41,42,45,41,42,45,42,41,42,45,66,66,68,0,0,65,0,68,68,0,72,68,68,65,0,68,72,65,0,68,0,65,64,65,66,67,68,64,65,66,67,68,72,73,64,65,66,67,68,72,73,64,65,66,67,68,64,65,66,67,68,67,64,65,66,68,67,0,64,65,66,68,64,64,64,65,65,65,66,66,66,68,68,68,64,64,65,66,67,68,68,72,73,64,65,66,67,68,72,73,64,65,66,67,68,73,67,64,65,66,67,68,72,73,67,72,73,64,64,72,64,64,65,66,68,73,67,67,67,64,67,67,64,65,66,67,68,68,64,65,66,67,68,72,73,64,65,66,67,68,72,73,64,65,66,67,68,72,73,64,65,66,67,68,72,73,139,140,139,139,141,0,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,90,0,0,0,85,88,90,89,90,89,0,0,88,88,90,85,89,90,89,0,0,85,86,87,88,85,86,87,90,89,88,85,86,87,90,89,88,85,86,87,88,85,86,87,88,87,0,87,88,88,88,88,88,85,86,87,90,90,89,89,88,85,86,87,90,89,88,85,86,87,88,0,85,86,87,90,89,88,90,86,86,90,86,87,88,90,89,86,85,86,87,88,90,89,85,86,87,90,89,88,85,86,87,90,89,88,85,86,87,90,89,88,85,86,87,90,89,88,142,143,144,145,146,144,145,143,146,144,145,146,147,148,149,104,105,102,0,103,102,0,0,48,101,104,105,0,0,0,100,103,0,0,100,107,48,0,107,101,104,0,0,0,0,0,0,0,100,99,100,48,101,96,98,50,102,103,104,105,50,97,50,36,36,99,107,100,48,101,97,96,98,50,102,103,104,105,99,107,100,48,101,97,96,98,50,102,103,104,105,97,97,99,100,48,101,96,98,50,102,103,104,105,99,100,48,101,96,98,50,102,103,104,105,99,48,97,96,98,102,103,104,105,48,101,96,98,50,102,103,104,105,48,101,104,105,48,48,48,101,101,101,104,104,104,105,105,105,99,107,107,100,48,101,101,97,96,98,50,102,103,104,105,99,107,107,100,48,101,97,96,98,50,50,50,102,103,104,104,105,105,99,100,48,101,96,98,50,102,103,104,105,101,0,111,97,99,107,100,48,101,97,96,98,50,102,103,104,105,97,50,97,50,97,50,48,101,104,105,36,36,97,50,36,99,48,101,96,98,50,102,103,104,105,50,97,97,107,99,100,48,101,96,98,50,102,103,104,105,107,101,99,107,100,48,101,97,96,98,50,102,103,104,105,99,107,100,48,101,97,96,98,50,102,103,104,105,99,107,100,48,101,97,96,98,50,102,103,104,105,99,107,100,48,101,97,96,98,50,102,103,104,105,0,0,0,0,0,0,44,60,60,114,60,115,116,44,117,114,60,115,116,44,117,60,60,60,60,114,60,115,116,44,117,114,60,115,116,44,117,60,60,60,115,60,60,60,60,60,60,60,114,60,115,116,44,117,114,116,44,117,114,116,44,117,60,60,60,60,60,60,114,116,44,117,60,60,60,115,60,60,60,60,60,114,116,44,117,114,60,115,116,44,117,114,60,115,116,44,117,114,60,115,116,44,117,114,60,115,116,44,117,0,135,0,0,0,132,57,0,0,0,132,0,0,57,0,0,135,135,129,62,0,57,133,132,0,0,58,30,0,132,0,0,62,0,0,0,132,129,0,135,132,0,58,30,62,129,57,63,58,30,49,130,112,125,131,53,125,125,125,125,112,125,49,62,129,57,63,58,30,133,121,122,134,132,135,49,130,112,125,131,53,62,129,57,63,58,30,133,121,122,134,132,135,49,130,112,125,131,53,122,62,129,57,63,58,30,49,130,112,125,131,53,62,129,57,63,58,30,49,130,112,125,131,53,121,49,112,125,131,49,112,125,131,49,131,49,131,53,63,125,53,122,49,112,57,58,30,49,130,112,125,131,131,131,112,53,125,125,49,57,49,130,112,125,131,53,57,57,57,49,49,49,130,130,130,112,112,112,125,125,125,131,131,131,53,53,53,62,129,57,63,58,58,30,133,133,121,122,134,134,132,132,135,135,49,130,112,125,131,53,62,129,57,63,58,30,30,30,133,121,122,134,132,132,132,135,49,130,112,112,125,131,53,49,130,53,53,49,30,62,129,57,63,58,30,49,130,112,125,131,53,53,53,122,63,30,122,112,122,53,122,62,129,57,63,58,30,133,121,122,134,132,135,49,130,112,125,131,53,131,53,53,49,112,125,125,30,53,30,53,121,112,125,121,122,112,125,131,131,112,63,63,49,112,125,131,30,112,122,30,122,57,58,30,49,130,112,125,131,121,112,49,132,121,121,122,122,49,131,125,62,129,57,63,58,30,49,130,112,125,131,53,58,133,134,132,135,112,125,62,129,57,63,58,58,30,133,121,122,134,132,135,49,130,112,125,131,53,58,62,129,57,63,58,30,133,121,122,134,132,135,49,130,112,125,131,53,62,129,57,63,58,30,133,121,122,134,132,135,49,130,112,125,131,53,121,49,112,49,130,62,129,57,63,58,30,133,121,122,134,132,135,49,130,112,125,131,53,150,151,151,150,151,151,151,152,152],"f":"````````{{cb}d{}}000000`{c{{f{eg}}}{}{}h}0{j{{n{l}}}}{A`{{n{l}}}}{Ab{{n{l}}}}{Ad{{n{l}}}}1{Ab{{Af{l}}}}{Ad{{Af{l}}}}2{ce{}{}}0000000000000`{AhAh}{AjAj}{jj}{AlAl}{A`A`}{AbAb}{AdAd}{{ce}d{}{}}000000{{jj}An}{{A`A`}An}{{AbAb}An}{{AdAd}An}{{ce}An{}{}}000{{}j}{{}A`}{{}Ab}{{}Ad}{c{{B`{Ah}}}Bb}{c{{B`{Aj}}}Bb}{c{{B`{j}}}Bb}{c{{B`{Al}}}Bb}{c{{B`{A`}}}Bb}{c{{B`{Ab}}}Bb}{c{{B`{Ad}}}Bb}{ce{}{{Bf{Bd}}}}000`{{jj}Bh}{{A`A`}Bh}{{AbAb}Bh}{{AdAd}Bh}{{ce}Bh{}{}}00000000000{{AhBj}Bl}0{{AjBj}Bl}0{{jBj}Bl}0{{AlBj}Bl}0{{A`Bj}Bl}0{{AbBj}Bl}0{{AdBj}Bl}0{AbBn}{AdBn}{cc{}}0{C`Aj}{Ajj}2{Cbj}13{C`Al}{AlA`}05{CbA`}{A`Ab}0{{{n{l}}}Ab}8{AlAb}1{AjAd}:{jAd}0{{{n{l}}}Ad}0{{{Af{l}}}{{B`{AhCd}}}}{{{n{l}}}Aj}{{{n{l}}}{{B`{jCf}}}}{{{n{l}}}Al}{{{n{l}}}{{B`{A`Cf}}}}{cc{}}000000{Ch{{B`{Ahc}}}{}}{Ch{{B`{Ajc}}}{}}{Ch{{B`{jc}}}{}}{Ch{{B`{Alc}}}{}}{Ch{{B`{A`c}}}{}}{Ch{{B`{Abc}}}{}}{Ch{{B`{Adc}}}{}}{{jc}dCj}{{A`c}dCj}{{Abc}dCj}{{Adc}dCj}{AjAd}{AlAb}{ce{}{}}000000{Ab{{B`{A`Cf}}}}{Ad{{B`{jCf}}}}``{{Cl{D`{Cn}}}Ah}{cAj{DbDd}}{cAl{DbDd}}`{{jj}{{Df{An}}}}{{A`A`}{{Df{An}}}}{{AbAb}{{Df{An}}}}{{AdAd}{{Df{An}}}}{Ajj}{AlA`}{{Abc}{{B`{A`Cf}}}Dh}{{Adc}{{B`{jCf}}}Dh}{{Ahc}B`Dj}{{Ajc}B`Dj}{{jc}B`Dj}{{Alc}B`Dj}{{A`c}B`Dj}{{Abc}B`Dj}{{Adc}B`Dj}{{Aj{Af{l}}}Dl}{{Al{Af{l}}}Dl}``{Ah{{D`{l}}}}{Aj{{n{l}}}}{Al{{n{l}}}}{Ab{{n{l}}}}{Ad{{n{l}}}}{ce{}{}}000000{cBn{}}000000{c{{B`{{f{eg}}{Dn{e}}}}}{}{}h}0{c{{B`{e}}}{}{}}00{Ad{{B`{jc}}}{}}11{Ab{{B`{A`c}}}{}}222222222{cE`{}}000000{{Aj{Af{l}}Dl}{{B`{dCf}}}}{{j{Af{l}}Dl}{{B`{dCf}}}}{{Al{Af{l}}Dl}{{B`{dCf}}}}{{A`{Af{l}}Dl}{{B`{dCf}}}}:::::::```{{cb}d{}}0;;;;;;{EbEb}{EdEd}{{ce}d{}{}}0{{EdAb}{{Ef{Bh}}}}{Ed{{Ef{Eh}}}}{{}Eb}{{}Ej}{{EdAd}{{Ef{d}}}}{{EdAbAdEl}{{Ef{En}}}}{c{{B`{Eb}}}Bb}{Edd}{{EdAb}{{Ef{d}}}}{{EbEb}Bh}{{ce}Bh{}{}}00{{EdAd}{{Ef{{Df{Aj}}}}}}{{EdAb}{{Ef{Al}}}}{Ed{{Ef{d}}}}{{EbBj}Bl}{{EdBj}Bl}{{EjBj}Bl}{cc{}}0000{{EdAb}{{Ef{F`}}}}{{EdAbAdElBh}{{Ef{{Df{Fb}}}}}}{{EdAbFd{Ff{{Ef{Fb}}}}}{{Ef{d}}}}{{EdAb}{{Ef{Eb}}}}{{EdAb}{{Ef{{Df{{D`{Fh}}}}}}}}`{{EdAbFj}{{Ef{{Df{Fl}}}}}}{{EdAj}{{Ef{Ad}}}}{{EdCl}{{Ef{Ab}}}}{{EdAbAdElFnG`}{{Ef{d}}}}{{EdAbFbFhGb}{{Ef{d}}}}{ce{}{}}00{{Ed{Ff{{Ef{Ad}}}}}{{Ef{d}}}}{{Ed{Ff{{Ef{{Gf{AbGd}}}}}}}{{Ef{d}}}}{{EdAbEj}{{Ef{d}}}}{{EdAbFh}{{Ef{d}}}}{{Ebc}B`Dj}{{EdAbF`}{{Ef{d}}}}{{EdAbBh}{{Ef{d}}}}{Ed{{Ef{Gh}}}}{{Gh{Df{Gj}}Bn}Ed}{{EdAb{Ff{Gl}}}{{Ef{d}}}}{{Ej{Ff{Gl}}}Ej}``{EjEj}``{{EdAb}{{Ef{{`{Fb}}}}}}{{EdAb{`{Fb}}FhGn}{{Ef{{Gf{{Df{{`{Fb}}}}Gn}}}}}}>>{c{{B`{e}}}{}{}}00000{cE`{}}006{ce{}{}}00``````````````````````{{cb}d{}}000011111111111111{H`H`}{HbHb}{HdHd}{HfHf}{HhHh}{{ce}d{}{}}0000`{c{{B`{H`}}}Bb}{c{{B`{Hb}}}Bb}{c{{B`{Hd}}}Bb}{c{{B`{Hh}}}Bb}`{{{Hl{Hj}}}Gb}{{H`H`}Bh}{{HbHb}Bh}{{HdHd}Bh}{{HhHh}Bh}{{ce}Bh{}{}}00000000000`{{H`Bj}Bl}{{HbBj}Bl}{{HdBj}Bl}{{HfBj}Bl}{{HhBj}{{B`{dHn}}}}{{HhBj}Bl}{{I`Bj}Bl}{{IbBj}Bl}{cc{}}00000000000{IbAd}{{HfId}{{Ef{d}}}}{ce{}{}}000000{{HfAbBh}{{Ef{d}}}}{{I`Ed}{{Ef{Ad}}}}{{I`Ed}{{Ef{Ib}}}}``{{I`Ad}{{Ef{d}}}}`{{H`c}B`Dj}{{Hbc}B`Dj}{{Hdc}B`Dj}{{Hhc}B`Dj}{{IbAdEd}{{Ef{d}}}}{Hf{{Ef{d}}}}{{IfIhGhcIjI`}{{Ef{Hf}}}Il}{{HfAb{D`{Cn}}}{{Ef{d}}}}`{{HfAb}{{Ef{{`{{J`{}{{In{{Ef{Hh}}}}}}Jb}}}}}}`====={cBn{}}{c{{B`{e}}}{}{}}0000000000000{cE`{}}000000{ce{}{}}000000``````{{cb}d{}}`11{JdJd}{{ce}d{}{}}{{}Jd}``````````{{JdBj}Bl}{cc{}}06{Jd{{Jh{{Gf{ChJf}}}}}}{{}Ch}````````8::98`````````````````````7777888888888888{JjJj}{JlJl}{JnJn}{K`K`}9999`{{IfEdAbCn}{{B`{JlKb}}}}{{}Jn}{c{{B`{K`}}}Bb}{{K`K`}Bh}{{ce}Bh{}{}}00{{JjBj}Bl}{{JlBj}Bl}{{JnBj}Bl}{{KdBj}Bl}0{{KbBj}Bl}0{{K`Bj}Bl}{cc{}}000000000{{EdIde}{{B`{JlKd}}}{{Kh{}{{Kf{Jj}}}}}{{Kl{AbKj}{{Kf{c}}}}}}{ce{}{}}00000{Kd{{Df{Ab}}}}``{Kd{{Df{Kj}}}}``{{K`c}B`Dj}{Kd{{Df{Kn}}}}{Kb{{Df{Kn}}}}`5555{cBn{}}0{c{{B`{e}}}{}{}}00000000000{cE`{}}00000888888`````````````````````````````````````````````````{{cb}d{}}0000000000{{}{{Lb{L`}}}}{{{Lb{c}}Ad}{{Lb{c}}}{}}{Ad{{Lb{L`}}}}{{DhAd}{{B`{jCf}}}}0=========================={{{Lb{Ld}}}Fd}{{{Lb{L`}}}Fd}{LfLf}{LhLh}{F`F`}{LjLj}{L`L`}{LdLd}{FdFd}{LlLl}{LnLn}{M`M`}{MbMb}{{ce}d{}{}}0000000000{{}Lf}{{}F`}{{}{{Lb{c}}}Md}{{}L`}{{}Ld}{{}Ll}{{}Ln}{{}M`}{{}Mb}{c{{B`{F`}}}Bb}{c{{B`{Lj}}}Bb}{c{{B`{L`}}}Bb}{c{{B`{Ld}}}Bb}{c{{B`{Fd}}}Bb}{c{{B`{Ll}}}Bb}{c{{B`{Ln}}}Bb}{c{{B`{M`}}}Bb}{c{{B`{Mb}}}Bb}{{F`F`}Bh}{{LjLj}Bh}{{M`M`}Bh}{{MbMb}Bh}{{ce}Bh{}{}}00000000000{{LfBj}Bl}{{MfBj}Bl}0{{LhBj}Bl}{{F`Bj}Bl}{{LjBj}Bl}0{{{Lb{c}}Bj}BlMh}{{L`Bj}Bl}{{LdBj}Bl}{{FdBj}Bl}{{LlBj}Bl}{{LnBj}Bl}{{M`Bj}Bl}{{MbBj}Bl}{cc{}}0{MjMf}111111{{{Lb{L`}}}Fd}2{{{Lb{Ld}}}Fd}333{cM`{{Ml{{Af{l}}}}}}4{AdMb}55555555555{Ch{{B`{Ljc}}}{}}`{{MnAb}{{Ef{F`}}}}{{{Lb{c}}}{{Lb{c}}}{}}{ce{}{}}000000000000{{{Lb{c}}e}{{Lb{c}}}{}{{Ml{{Af{l}}}}}}{c{{Lb{L`}}}{{Ml{{Af{l}}}}}}10{{{Lb{c}}G`}{{Lb{c}}}{}}{Fd{{Df{G`}}}}{{F`N`}Bh}{{Ljc}Bh{{Ml{{Af{l}}}}}}{{M`{Af{l}}}Bh}{{MbAd}Bh}{{DhAb}{{B`{A`Cf}}}}06{FdG`}{{Dh{n{l}}}{{B`{CbCf}}}}{{Lf{n{l}}}{{B`{CbCf}}}}{{F`c}B`Dj}{{Ljc}B`Dj}{{L`c}B`Dj}{{Ldc}B`Dj}{{Fdc}B`Dj}{{Llc}B`Dj}{{Lnc}B`Dj}{{M`c}B`Dj}{{Mbc}B`Dj}{{}{{Lb{Ld}}}}{{{Lb{L`}}LnLl}{{Lb{L`}}}}{{{Lb{Ld}}Ll}{{Lb{Ld}}}}{Mf{{Df{Kn}}}}{ce{}{}}0000000000{cBn{}}0{c{{B`{e}}}{}{}}0000000000000000000000000{cE`{}}0000000000003333333333333``````{{{Nb{{Gf{{n{l}}{n{l}}{Af{l}}}}{Gf{G`{n{l}}{n{l}}G`{n{l}}}}}}}{{Ef{Eh}}}}{GhGh}0555555555555{{GhAb}d}{Gh{{Ef{Eh}}}}{{GhAd}{{Ef{d}}}}{Gh{{Ef{d}}}}{{NdBj}Bl}{{GhBj}Bl}{{NfBj}Bl}{{NhBj}Bl}{{EhBj}Bl}{{NjBj}Bl}{cc{}}00000{{GhAd}{{Ef{{Df{Aj}}}}}}{{GhAb}{{Ef{F`}}}}0{{NfAb}{{Ef{F`}}}}{{GhAbAdcBh}{{Ef{{Df{Fb}}}}}{{Ml{{Af{l}}}}}}{{GhAb}{{Ef{Nj}}}}{{GhAbc}{{Ef{`}}}{{Nl{Fd}}}}{{GhAb}{{Ef{{Df{{Jh{Fh}}}}}}}}{{GhAbFj}{{Ef{{Df{Fl}}}}}}{{GhAj}{{Ef{d}}}}{{GhCl}{{Ef{Lh}}}}{ce{}{}}00000{c{{Nn{g}}}{}{}{{O`{}{{In{e}}}}}}0001111{Gh{{Ef{{`{{O`{}{{In{{Ef{Aj}}}}}}}}}}}}{Gh{{Ef{{`{{O`{}{{In{{Ef{{Gf{AbGd}}}}}}}}}}}}}}{{GhAb}{{Ef{ObMf}}}}{{}Gh}{{Ghc}{{Ef{Aj}}}{DbDd}}{{GhAl}{{Ef{Od}}}}{Nd{{Df{c}}}{}}{Nh{{Df{c}}}{}}{Eh{{Df{c}}}{}}{Nj{{Df{c}}}{}}{{GhAb}{{Ef{OdMf}}}}{c{{Ef{Gh}}}{{Ml{Of}}}}{{Gh{n{l}}}{{Ef{CbCf}}}}{{Nf{n{l}}}{{B`{CbCf}}}}{{GhAbFh}{{Ef{d}}}}{{GhAb}{{Ef{d}}}}{{GhAbF`}{{Ef{d}}}}{Gh{{Ef{`}}}}0{c{{Oh{i}}}{}{}{}{{O`{}{{In{{B`{eg}}}}}}}}000{c{{B`{e}}}{}{}}00000000000{cE`{}}00000{ce{}{}}00000````````````````````````````````````````````{{cb}d{}}00000000000{c{{f{eg}}}{}{}h}{Oj{{Gf{{n{l}}{n{l}}{Af{l}}}}}}{OjEl}{Oj{{Af{l}}}}{N`Ad}{OjAd}{FbAd}888888888888888888888888888888888888{{{Od{c}}}Cl{{On{}{{Ol{Ob}}}}A@`}}{GlGl}{A@bA@b}{GbGb}{GnGn}{GdGd}{ClCl}{FbFb}{A@dA@d}{N`N`}{OjOj}{A@fA@f}{FjFj}{{ce}d{}{}}00000000000{ObBh}{{FbFb}An}{{N`N`}An}{{OjOj}An}{{A@fA@f}An}{{ce}An{}{}}000{FbFn}{A@fFn}{FbG`}{A@fG`}{{{Af{l}}}{{Ef{Fj}}}}{{}Gn}{{}Oj}{{}Fj}{{{Od{c}}eAj}{{B`{EnA@h}}}{{On{}{{Ol{Ob}}}}A@`}{{Ml{{Af{l}}}}}}{Fbc{}}{N`c{}}{c{{B`{Gb}}}Bb}{c{{B`{Gd}}}Bb}{c{{B`{Cl}}}Bb}{c{{B`{Fb}}}Bb}{c{{B`{A@d}}}Bb}{c{{B`{N`}}}Bb}{c{{B`{Oj}}}Bb}{c{{B`{A@f}}}Bb}{G`A@f}{{}A@f}{{N`{D`{l}}}d}{{Fj{Df{En}}}{{Ef{{D`{l}}}}}}{ce{}{{Bf{Bd}}}}0{FbN`}{{GbGb}Bh}{{FbFb}Bh}{{A@dA@d}Bh}{{N`N`}Bh}{{OjOj}Bh}{{A@fA@f}Bh}{{FjFj}Bh}{{ce}Bh{}{}}00000000000000000000{{GlBj}Bl}{{A@bBj}Bl}{{GbBj}Bl}{{GnBj}Bl}{{GdBj}{{B`{dHn}}}}{{GdBj}Bl}{{ClBj}Bl}{{A@jBj}Bl}0{{ObBj}Bl}{{{Od{c}}Bj}BlMh}{{A@lBj}Bl}0{{A@hBj}Bl}0{{A@nBj}Bl}0{{FbBj}Bl}{{A@dBj}Bl}{{N`Bj}Bl}{{OjBj}Bl}{{A@fBj}Bl}{{FjBj}Bl}{cc{}}0000{AlCl}{AbCl}22222{A@nA@h}3{A@lA@h}4444{FbN`}555{{N`AlAj}Fb}{{N`AlAj}A@d}{cFj{{AA`{}{{In{{Gf{AdG`}}}}}}}}{cFj{{AA`{}{{In{{Gf{G`Ad}}}}}}}}{{AlAjcA@f}Fb{{Ml{{Af{l}}}}}}{{l{n{l}}}{{Ef{Cl}}}};;;;;;;;;;;;{{FjAd}{{Df{G`}}}}{{FjFj}{{Df{Fl}}}}{{{Od{c}}eAjg}{{B`{FnA@h}}}{{On{}{{Ol{Ob}}}}A@`}{{Ml{{Af{l}}}}}{{Ml{{Af{l}}}}}}`{ClAb}{{{Od{c}}}Ab{{On{}{{Ol{Ob}}}}A@`}}{N`Oj}{{{Od{c}}eAjFnG`}{{B`{EnA@h}}}{{On{}{{Ol{Ob}}}}A@`}{{Ml{{Af{l}}}}}}{{FjAdG`}d}{{{Od{c}}FbFhGb}{{B`{EnA@h}}}{{On{}{{Ol{Ob}}}}A@`}}{ce{}{}}00000000000000000{A@fBh}{FjBh}{Fj{{AAb{AdG`}}}}{Fb{{Af{l}}}}{N`{{Af{l}}}}{Oj{{Af{l}}}}{OjEl}{ClGd}{FjEn}{{ClCl}{{B`{BhA@j}}}}{{FjFj}d}{{ObCl}{{B`{BhA@j}}}}{N`Ab}{OjAb}{ClOb}{{Nfc}{{Od{c}}}{{On{}{{Ol{Ob}}}}A@`}}{{OjA@f}N`}{{ceg}Oj{{Nl{Ab}}}{{Nl{Ad}}}{{Ml{{Af{l}}}}}}{{FnG`G`}A@f}{{FnG`}A@f}{OjN`}``{{FbFb}{{Df{An}}}}{{N`N`}{{Df{An}}}}{{OjOj}{{Df{An}}}}{{A@fA@f}{{Df{An}}}}{Cl{{Gf{l{n{l}}}}}}{N`A@f}{{{Od{c}}eAj}Oj{{On{}{{Ol{Ob}}}}A@`}{{Ml{{Af{l}}}}}}{Cl{{B`{AlA@l}}}}{{{Od{c}}}{{B`{AlA@l}}}{{On{}{{Ol{Ob}}}}A@`}}{{Gbc}B`Dj}{{Gdc}B`Dj}{{Clc}B`Dj}{{Fbc}B`Dj}{{A@dc}B`Dj}{{N`c}B`Dj}{{Ojc}B`Dj}{{A@fc}B`Dj}{{ObGj}Bh}{{N`AlAj}Fb}{FbA@d}{A@h{{Df{Kn}}}}{{Ob{Ff{Gl}}}d}{ObEn}{{{Od{c}}}{{Ef{{`{Fb}}}}}{{On{}{{Ol{Ob}}}}A@`}}{{{Od{c}}{`{Fb}}FhGn}{{B`{{Df{{`{Fb}}}}Mj}}}{{On{}{{Ol{Ob}}}}A@`}}{FbG`}{A@fG`}{Oj{{Gf{{n{l}}{n{l}}El}}}}{ce{}{}}00000000000{cBn{}}0000{N`{{D`{l}}}}{c{{B`{{f{eg}}{Dn{e}}}}}{}{}h}{c{{B`{e}}}{}{}}0000{l{{B`{Gd{AAd{Gd}}}}}}1111111111111{c{{B`{Gd{AAd{Gd}}}}}{}}222222222222222222{cE`{}}00000000000000000>{Fb{{B`{dA@n}}}}{N`{{B`{dA@n}}}}{{Fbc}{{B`{dCf}}}Dh}{{A@dN`A`j}{{B`{dCf}}}};;;;;;;;;;;;;;;;;;`````````","D":"CMh","p":[[5,"Private",1502],[1,"unit"],[5,"BitSlice",1503],[10,"BitOrder",1504],[5,"AuthorPublicKey",0,1505],[1,"u8"],[1,"array"],[5,"NamespacePublicKey",0,1505],[5,"NamespaceId",0,1505],[5,"AuthorId",0,1505],[1,"slice"],[5,"DocTicket",0,1506],[5,"Author",0,1505],[5,"NamespaceSecret",0,1505],[6,"Ordering",1507],[6,"Result",1508],[10,"Deserializer",1509],[1,"char"],[10,"FromIterator",1510],[1,"bool"],[5,"Formatter",1511],[8,"Result",1511],[5,"String",1512],[5,"SigningKey",1513],[5,"VerifyingKey",1514],[6,"Error",1515],[8,"SignatureError",1516],[1,"str"],[10,"Hasher",1517],[6,"Capability",1065],[5,"NodeAddr",1518],[5,"Vec",1519],[10,"CryptoRngCore",1520],[10,"Sized",1521],[6,"Option",1522],[10,"PublicKeyStore",667,1523],[10,"Serializer",1524],[5,"Signature",1525],[6,"BitSpanError",1526],[5,"TypeId",1527],[5,"OpenState",250],[5,"SyncHandle",250],[8,"Result",1528],[5,"ContentHashesIterator",956],[5,"OpenOpts",250],[5,"Bytes",1529],[1,"usize"],[6,"DownloadPolicy",667],[5,"SignedEntry",1065],[5,"Query",667],[5,"Sender",1530],[8,"PeerIdBytes",1065],[5,"AuthorHeads",1065,1531],[8,"NonZeroU64",1532],[5,"Hash",1533],[1,"u64"],[6,"ContentStatus",1065],[6,"CapabilityKind",1065],[1,"tuple"],[5,"Store",956],[8,"ContentStatusCallback",1065],[6,"Event",1065],[5,"SyncOutcome",1065],[5,"SyncEvent",336,1534],[6,"SyncReason",336,1535],[6,"Origin",336,1535],[5,"Engine",336],[6,"LiveEvent",336],[6,"EntryStatus",1536],[8,"Result",1537],[5,"Error",1511],[6,"DefaultAuthorStorage",336],[5,"DefaultAuthor",336],[5,"Connecting",1538],[5,"Endpoint",1538],[5,"Gossip",1539],[5,"Downloader",1540],[10,"Store",1536],[17,"Item"],[10,"Stream",1541],[10,"Unpin",1521],[5,"Metrics",497],[10,"Any",1527],[5,"IntoIter",1542],[6,"AcceptOutcome",534],[5,"SyncFinished",534],[5,"Timings",534],[6,"AbortReason",534],[6,"ConnectError",534],[6,"AcceptError",534],[17,"Output"],[10,"Future",1543],[5,"PublicKey",1544],[10,"Fn",1545],[10,"Error",1546],[5,"FlatQuery",667],[5,"QueryBuilder",667],[5,"SingleLatestPerKeyQuery",667],[5,"MemPublicKeyStore",667,1523],[6,"ImportNamespaceOutcome",667],[6,"FilterKind",667],[6,"SortDirection",667],[6,"SortBy",667],[6,"KeyFilter",667],[6,"AuthorFilter",667],[10,"Default",1547],[6,"OpenError",667],[10,"Debug",1511],[5,"Error",1528],[10,"AsRef",1548],[10,"DownloadPolicyStore",667],[5,"Entry",1065],[5,"ReadOnlyTable",1549],[5,"RecordsRange",956,1550],[5,"StoreInstance",956],[5,"ParentIterator",956],[5,"LatestIterator",956],[10,"Into",1548],[5,"IntoFallible",1551],[10,"Iterator",1552],[5,"ReplicaInfo",1065],[5,"Replica",1065],[5,"Path",1553],[5,"Convert",1551],[5,"RecordIdentifier",1065],[17,"Target"],[10,"Deref",1554],[10,"DerefMut",1554],[6,"InsertOrigin",1065],[5,"EntrySignature",1065],[5,"Record",1065],[6,"InsertError",1065],[6,"CapabilityError",1065],[5,"ReadOnly",1065],[6,"ValidationFailure",1065],[10,"IntoIterator",1510],[5,"Iter",1555],[5,"TryFromPrimitiveError",1556],[15,"InsertRemote",492],[15,"InsertLocal",492],[15,"ContentReady",492],[15,"Connect",652],[15,"Open",652],[15,"Sync",652],[15,"Close",652],[15,"Abort",652],[15,"Connect",664],[15,"Sync",664],[15,"Close",664],[15,"LocalInsert",1493],[15,"RemoteInsert",1493],[15,"Sync",1500]],"r":[[0,1505],[1,1531],[2,1505],[3,1505],[4,1506],[5,1505],[6,1505],[7,1505],[350,1535],[354,1534],[356,1535],[685,1523],[693,1523],[699,956],[959,1550],[1065,1531]],"b":[[22,"impl-AsRef%3C%5Bu8;+32%5D%3E-for-NamespaceId"],[23,"impl-AsRef%3C%5Bu8%5D%3E-for-NamespaceId"],[24,"impl-AsRef%3C%5Bu8%5D%3E-for-AuthorId"],[25,"impl-AsRef%3C%5Bu8;+32%5D%3E-for-AuthorId"],[95,"impl-Display-for-DocTicket"],[96,"impl-Debug-for-DocTicket"],[97,"impl-Display-for-Author"],[98,"impl-Debug-for-Author"],[99,"impl-Debug-for-AuthorPublicKey"],[100,"impl-Display-for-AuthorPublicKey"],[101,"impl-Display-for-NamespaceSecret"],[102,"impl-Debug-for-NamespaceSecret"],[103,"impl-Display-for-NamespacePublicKey"],[104,"impl-Debug-for-NamespacePublicKey"],[105,"impl-Display-for-NamespaceId"],[106,"impl-Debug-for-NamespaceId"],[107,"impl-Display-for-AuthorId"],[108,"impl-Debug-for-AuthorId"],[114,"impl-From%3CAuthor%3E-for-AuthorPublicKey"],[116,"impl-From%3CVerifyingKey%3E-for-AuthorPublicKey"],[117,"impl-From%3C%26Author%3E-for-AuthorPublicKey"],[120,"impl-From%3CNamespaceSecret%3E-for-NamespacePublicKey"],[121,"impl-From%3C%26NamespaceSecret%3E-for-NamespacePublicKey"],[123,"impl-From%3CVerifyingKey%3E-for-NamespacePublicKey"],[124,"impl-From%3C%26NamespacePublicKey%3E-for-NamespaceId"],[125,"impl-From%3CNamespacePublicKey%3E-for-NamespaceId"],[126,"impl-From%3C%26%5Bu8;+32%5D%3E-for-NamespaceId"],[128,"impl-From%3CNamespaceSecret%3E-for-NamespaceId"],[129,"impl-From%3C%5Bu8;+32%5D%3E-for-NamespaceId"],[130,"impl-From%3CAuthor%3E-for-AuthorId"],[132,"impl-From%3C%26AuthorPublicKey%3E-for-AuthorId"],[133,"impl-From%3CAuthorPublicKey%3E-for-AuthorId"],[134,"impl-From%3C%5Bu8;+32%5D%3E-for-AuthorId"],[135,"impl-From%3C%26%5Bu8;+32%5D%3E-for-AuthorId"],[415,"impl-Display-for-LiveEvent"],[416,"impl-Debug-for-LiveEvent"],[590,"impl-Display-for-AcceptError"],[591,"impl-Debug-for-AcceptError"],[592,"impl-Display-for-ConnectError"],[593,"impl-Debug-for-ConnectError"],[743,"impl-QueryBuilder%3CSingleLatestPerKeyQuery%3E"],[744,"impl-QueryBuilder%3CFlatQuery%3E"],[802,"impl-Debug-for-OpenError"],[803,"impl-Display-for-OpenError"],[806,"impl-Debug-for-FilterKind"],[807,"impl-Display-for-FilterKind"],[825,"impl-From%3CQueryBuilder%3CFlatQuery%3E%3E-for-Query"],[827,"impl-From%3CQueryBuilder%3CSingleLatestPerKeyQuery%3E%3E-for-Query"],[994,"impl-DownloadPolicyStore-for-Store"],[995,"impl-Store"],[1256,"impl-Display-for-CapabilityKind"],[1257,"impl-Debug-for-CapabilityKind"],[1259,"impl-Display-for-CapabilityError"],[1260,"impl-Debug-for-CapabilityError"],[1263,"impl-Debug-for-ReadOnly"],[1264,"impl-Display-for-ReadOnly"],[1265,"impl-Display-for-InsertError"],[1266,"impl-Debug-for-InsertError"],[1267,"impl-Debug-for-ValidationFailure"],[1268,"impl-Display-for-ValidationFailure"],[1280,"impl-From%3CNamespaceSecret%3E-for-Capability"],[1281,"impl-From%3CNamespaceId%3E-for-Capability"],[1287,"impl-From%3CValidationFailure%3E-for-InsertError"],[1289,"impl-From%3CReadOnly%3E-for-InsertError"],[1300,"impl-FromIterator%3C(AuthorId,+u64)%3E-for-AuthorHeads"],[1301,"impl-FromIterator%3C(u64,+AuthorId)%3E-for-AuthorHeads"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAPIDTwAJAAYAEQABABcAEQAqACQAUAAdAHIAAQB1AAEAeAACAHwAAwCBAAIAhQAEAI4AEQCxAAMAuQAGAMQAAADJACYA9AAGAP4AGgAaAQIAIAEGACgBBAAwAQcAOQEAAEABEABnARwAhQEDAIsBDwCcAQcAqwEEAMABAwDLASEA8wERAAYCAAAIAg4ALAIXAEYCDQBaAgMAawICAG8CLAC8AgAAvgIKAM4CGQDqAkYAMwMAADoDAAA8AwAAQAMAAEIDDABuAwkAewNBAMQDDQDWAwUA4wMAAOUDAAD3AwMAAQQDAAcEAQASBBcAVgQMAGUEAABpBCMAjgQXAKcEBwC0BAIAuAQJAMYEAQDJBDIAAQUBAAgFAAAKBQAADwUAABUFAQAZBQsAWAUDAGEFBwBsBQAAdAUQAIYFOADEBREA"}],\ -["iroh_gossip",{"t":"CCCCPPGGPFGPFPPPFNNNONNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNFNOOOOOOOONNNNNNNNNNOOOOOOOONOONNNNNPIISFPFPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNFNNNNNNNNHHNNNNNHEEGEEEEPPEFKGEPPEENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNCNNNNNNNNNCNNNPPPPPGFGGPPPPPFFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGPFSPPGPPKGPGPPGPPPPPPPFFPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["dispatcher","metrics","net","proto","Broadcast","BroadcastNeighbors","Command","Event","Gossip","GossipDispatcher","GossipEvent","Lagged","Message","NeighborDown","NeighborUp","Received","SubscribeOptions","__clone_box","__clone_box","__clone_box","bootstrap","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","compare","compare","content","delivered_from","deserialize","deserialize","deserialize","deserialize","deserialize","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","into","into","into","into","into","into","new","partial_cmp","partial_cmp","scope","serialize","serialize","serialize","serialize","serialize","subscribe_with_opts","subscription_capacity","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","Metrics","__clone_box","actor_tick_dialer","actor_tick_dialer_failure","actor_tick_dialer_success","actor_tick_endpoint","actor_tick_in_event_rx","actor_tick_main","actor_tick_rx","actor_tick_timers","borrow","borrow_mut","clone","clone_into","default","fmt","from","from_ref","into","iter","msgs_ctrl_recv","msgs_ctrl_recv_size","msgs_ctrl_sent","msgs_ctrl_sent_size","msgs_data_recv","msgs_data_recv_size","msgs_data_sent","msgs_data_sent_size","name","neighbor_down","neighbor_up","to_owned","try_from","try_into","type_id","vzip","Broadcast","Command","Event","GOSSIP_ALPN","Gossip","Join","JoinTopicFut","NeighborDown","NeighborUp","Quit","Received","__clone_box","borrow","borrow","borrow_mut","borrow_mut","broadcast","broadcast_neighbors","clone","clone_into","fmt","fmt","from","from","from_endpoint","from_ref","handle_connection","into","into","into_future","join","join","max_message_size","poll","quit","race","subscribe","subscribe_all","to_owned","try_from","try_from","try_into","try_into","try_poll","type_id","type_id","update_direct_addresses","util","vzip","vzip","Timers","borrow","borrow_mut","default","fmt","from","insert","into","new","read_lp","read_message","try_from","try_into","type_id","vzip","wait_and_drain","write_message","Command","Config","DeliveryScope","Event","IO","InEvent","Message","Neighbors","Neighbors","OutEvent","PeerData","PeerIdentity","Scope","State","Swarm","Swarm","Timer","TopicId","__clone_box","__clone_box","__clone_box","as_bytes","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","compare","compare","default","deserialize","deserialize","deserialize","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","inner","into","into","into","is_direct","new","partial_cmp","partial_cmp","serialize","serialize","serialize","state","to_owned","to_owned","to_owned","topic","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","util","vzip","vzip","vzip","Command","Control","Data","DisconnectPeer","EmitEvent","InEvent","Message","MessageKind","OutEvent","PeerData","PeerDisconnected","RecvMessage","ScheduleTimer","SendMessage","State","Timer","TimerExpired","TopicId","UpdatePeerData","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_bits","as_bytes","as_ref","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","deserialize","deserialize","encode_hex","encode_hex_upper","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bytes","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","handle","has_active_peers","hash","into","into","into","into","into","into","into","kind","max_message_size","me","new","partial_cmp","serialize","serialize","size","state","states","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","topics","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Broadcast","Command","Command","Config","DEFAULT_MAX_MESSAGE_SIZE","DisconnectPeer","EmitEvent","Event","Gossip","Gossip","IO","InEvent","Join","Message","NeighborDown","NeighborUp","OutEvent","PeerData","PeerDisconnected","Quit","Received","RecvMessage","ScheduleTimer","SendMessage","State","Stats","Swarm","Swarm","Timer","TimerExpired","UpdatePeerData","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broadcast","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","default","default","deserialize","deserialize","endpoint","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","gossip_stats","handle","has_active_peers","into","into","into","into","into","into","into","into","into","kind","max_message_size","membership","messages_received","messages_sent","new","partial_cmp","push","push_from_iter","serialize","serialize","stats","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_rng","TimeBoundCache","TimerMap","borrow","borrow","borrow_mut","borrow_mut","contains_key","default","default","drain_until","expire_until","expires","first","fmt","fmt","from","from","get","insert","insert","into","into","is_empty","iter","iter","len","new","remove","remove","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":[[0,"iroh_gossip"],[4,"iroh_gossip::dispatcher"],[118,"iroh_gossip::metrics"],[154,"iroh_gossip::net"],[204,"iroh_gossip::net::util"],[221,"iroh_gossip::proto"],[313,"iroh_gossip::proto::state"],[454,"iroh_gossip::proto::topic"],[641,"iroh_gossip::proto::util"],[678,"dyn_clone::sealed"],[679,"core::cmp"],[680,"core::result"],[681,"serde::de"],[682,"core::fmt"],[683,"iroh_base::key"],[684,"core::option"],[685,"serde::ser"],[686,"futures_core::stream"],[687,"alloc::boxed"],[688,"iroh_base::rpc"],[689,"core::marker"],[690,"core::any"],[691,"alloc::vec::into_iter"],[692,"bytes::bytes"],[693,"anyhow"],[694,"iroh_net::endpoint"],[695,"iroh_base::node_addr"],[696,"iroh_quinn::connection"],[697,"alloc::vec"],[698,"futures_concurrency::future::join::tuple"],[699,"core::future::into_future"],[700,"core::future::future"],[701,"core::pin"],[702,"core::task::wake"],[703,"core::task::poll"],[704,"futures_concurrency::future::race::tuple"],[705,"tokio::sync::broadcast"],[706,"tokio::sync::broadcast::error"],[707,"iroh_net::magicsock"],[708,"std::time"],[709,"bytes::bytes_mut"],[710,"tokio::io::async_read"],[711,"core::iter::traits::iterator"],[712,"tokio::io::async_write"],[713,"iroh_gossip::proto::plumtree"],[714,"core::convert"],[715,"bitvec::slice"],[716,"bitvec::order"],[717,"core::clone"],[718,"core::iter::traits::collect"],[719,"rand::rng"],[720,"core::hash"],[721,"postcard::error"],[722,"alloc::string"],[723,"bitvec::ptr::span"],[724,"rand::rngs::std"]],"i":[0,0,0,0,10,10,0,0,11,0,0,11,0,3,3,3,0,3,4,5,7,7,10,11,3,4,5,7,10,11,3,4,5,3,4,5,3,4,5,3,4,3,4,4,4,7,10,11,3,4,3,4,3,3,3,4,4,4,7,10,11,3,4,5,7,10,11,3,3,4,5,3,4,5,7,10,11,3,4,5,5,3,4,4,7,10,11,3,4,5,7,3,4,5,7,10,11,3,4,5,7,10,11,3,4,5,7,10,11,3,4,5,7,10,11,3,4,5,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,104,0,0,0,0,104,0,50,50,104,50,17,17,34,17,34,17,17,17,17,17,34,17,34,17,17,17,17,34,34,17,34,17,34,17,34,17,17,17,17,34,17,34,34,17,34,17,0,17,34,0,55,55,55,55,55,55,55,55,0,0,55,55,55,55,55,0,0,0,0,0,0,0,0,65,66,0,0,0,0,0,65,66,0,0,65,66,63,63,65,66,63,65,66,63,65,66,63,65,66,63,65,66,65,66,63,65,66,63,65,66,63,65,65,65,66,66,66,63,63,63,65,66,63,65,66,63,65,66,63,63,65,66,63,65,63,65,66,65,66,63,0,65,66,63,0,65,66,63,65,66,63,65,66,63,0,65,66,63,73,78,78,74,74,0,0,0,0,74,73,73,74,74,0,0,73,0,73,20,60,72,73,74,20,20,20,20,20,60,78,72,73,74,79,20,60,78,72,73,74,79,20,60,72,73,74,20,60,72,73,74,20,20,20,60,20,20,20,20,20,20,20,20,60,78,72,73,74,79,20,20,60,78,72,73,74,79,20,20,60,72,73,74,20,79,79,20,20,60,78,72,73,74,79,60,79,79,79,20,20,60,60,79,79,20,60,72,73,74,20,79,20,20,60,78,72,73,74,79,20,60,78,72,73,74,79,20,60,78,72,73,74,79,20,60,78,72,73,74,79,91,0,88,0,0,94,94,0,89,90,0,0,91,0,16,16,0,94,88,91,16,88,94,94,0,0,89,90,0,88,88,88,89,16,90,91,36,92,88,94,89,16,90,91,36,85,92,88,94,89,16,90,91,36,85,92,36,88,89,16,90,91,36,92,88,89,16,90,91,36,92,16,16,36,92,89,16,85,94,89,16,90,94,94,94,89,89,89,16,16,16,90,90,90,88,94,89,16,90,91,36,85,92,88,94,89,16,90,91,36,85,92,88,89,16,90,91,36,92,85,85,85,88,94,89,16,90,91,36,85,92,89,36,36,92,92,85,16,98,98,89,16,85,88,89,16,90,91,36,92,88,94,89,16,90,91,36,85,92,88,94,89,16,90,91,36,85,92,88,94,89,16,90,91,36,85,92,88,94,89,16,90,91,36,85,92,85,0,0,103,100,103,100,100,103,100,103,100,100,103,103,100,103,100,100,103,100,103,100,100,103,100,100,103,103,100,103,100,103,100,103,100,103,100],"f":"`````````````````{{cb}d{}}00`{ce{}{}}00000000000{ff}{hh}{jj}{{ce}d{}{}}00{{ff}l}{{hh}l}{{ce}l{}{}}0``{c{{A`{n}}}Ab}{c{{A`{Ad}}}Ab}{c{{A`{Af}}}Ab}{c{{A`{f}}}Ab}{c{{A`{h}}}Ab}{{ff}Ah}{{hh}Ah}{{ce}Ah{}{}}00000{{nAj}Al}{{AdAj}Al}{{AfAj}Al}{{fAj}Al}{{hAj}Al}{{jAj}Al}{cc{}}00{{{B`{An}}}f}111111{ce{}{}}00000{Bbj}{{ff}{{Bd{l}}}}{{hh}{{Bd{l}}}}`{{nc}A`Bf}{{Adc}A`Bf}{{Afc}A`Bf}{{fc}A`Bf}{{hc}A`Bf}{{jBhn{Bl{Bj}}}{{`{{Bj{}{{Bn{{C`{Af}}}}}}Cb}}}}`999{c{{A`{e}}}{}{}}00000000000{cCd{}}00000;;;;;;`{{cb}d{}}````````<<{CfCf}{{ce}d{}{}}{{}Cf}{{CfAj}Al}{cc{}}0{ce{}{}}{Cf{{Cn{{Cl{ChCj}}}}}}````````{{}Ch}``2::92```````````82222{{BbBhD`}{{Db{d}}}}0{BbBb}8{{BbAj}Al}{{DdAj}Al}77{{DfDhDj}Bb}8{{BbDl}{{Db{d}}}}88{c{}{}}{{BbBh{E`{Dn}}}{{Db{Dd}}}}{{ce}{{Eb{g}}}{}EdEf}{BbEh}{{{Ej{Dd}}El}{{En{c}}}{}}{{BbBh}{{Db{d}}}}{{cg}{{F`{ei}}}{}{}{{Ed{}{{Fb{e}}}}}{{Ef{}{{Fb{e}}}}}}{{BbBh}{{Db{{Ff{Fd}}}}}}{Bb{{`{{Bj{}{{Bn{{A`{{Cl{BhFd}}Fh}}}}}}}}}}{ce{}{}}{c{{A`{e}}}{}{}}000{{{Ej{c}}El}En{}}{cCd{}}0{{Bb{Fl{Fj}}}{{Db{d}}}}`44`44{{}{{Fn{c}}}{}}{{{Fn{c}}Aj}AlG`}{cc{}}{{{Fn{c}}Gbc}d{}}83{{cGdEh}{{Db{{Bd{D`}}}}}{GfCb}}{{cGdEh}{{Db{{Bd{{Gh{Dn}}}}}}}{GfCb}}997:{{{Fn{c}}}{{`{{Gj{}{{Bn{{Cl{Gbc}}}}}}}}}{}}{{cGd{Gh{Dn}}Eh}{{Db{d}}}{GlCb}}``````````````````{{cb}d{}}00{Gn{{Fl{H`}}}}>>>>>>{HbHb}{HdHd}{GnGn}{{ce}d{}{}}00{{HbHb}l}{{HdHd}l}{{ce}l{}{}}0{{}Gn}{c{{A`{Hb}}}Ab}{c{{A`{Hd}}}Ab}{c{{A`{Gn}}}Ab}{{HbHb}Ah}{{HdHd}Ah}{{GnGn}Ah}{{ce}Ah{}{}}00000000{{HbAj}Al}{{HdAj}Al}{{GnAj}Al}{cc{}}00000{GnD`}{ce{}{}}00{HbAh}{cGn{{Hf{D`}}}}{{HbHb}{{Bd{l}}}}{{HdHd}{{Bd{l}}}}{{Hbc}A`Bf}{{Hdc}A`Bf}{{Gnc}A`Bf}`777`{c{{A`{e}}}{}{}}00000{cCd{}}00`999```````````````````{{cb}d{}}0000{c{{Hh{eg}}}{}{}Hj}{Bh{{Hl{H`}}}}{Bh{{Fl{H`}}}}1=============={BhBh}{{{Gh{c}}}{{Gh{c}}}Hn}{{{I`{c}}}{{I`{c}}}Hn}{{{Ib{c}}}{{Ib{c}}}Hn}{{{Id{c}}}{{Id{c}}}Hn}{{ce}d{}{}}0000{{BhBh}l}{{ce}l{}{}}{c{{A`{Bh}}}Ab}{c{{A`{{Gh{e}}}}}AbIf}{ce{}{{Ij{Ih}}}}0{{BhBh}Ah}{{ce}Ah{}{}}00{{BhAj}Al}0{{{Gh{c}}Aj}AlG`}{{IlAj}Al}{{{I`{c}}Aj}AlG`}{{{Ib{c}}Aj}AlG`}{{{Id{c}}Aj}AlG`}{{{In{ce}}Aj}AlG`G`}{cc{}}{cBh{{Hf{{Hl{H`}}}}}}111111{{{Hl{H`}}}Bh}22222{Ch{{A`{Bhc}}}{}}{{{In{ce}}{Ib{c}}Gb}{{`{{Gj{}{{Bn{{Id{c}}}}}}}}}J`{JbHn}}{{{In{ce}}Bh}AhJ`{JbHn}}{{Bhc}dJd}{ce{}{}}000000{{{Gh{c}}}Il{}}{{{In{ce}}}EhJ`{JbHn}}{{{In{ce}}}cJ`{JbHn}}{{cGnDhe}{{In{ce}}}J`{JbHn}}{{BhBh}{{Bd{l}}}}{{Bhc}A`Bf}{{{Gh{c}}e}A`JfBf}{{{Gh{c}}}{{Jh{Eh}}}Jf}{{{In{ce}}Bh}{{Bd{{Jj{ce}}}}}J`{JbHn}}{{{In{ce}}}{{`{{Gj{}{{Bn{{Cl{Bh{Jj{ce}}}}}}}}}}}J`{JbHn}}:::::{cJl{}}{{{In{ce}}}{{`{{Gj{}{{Bn{Bh}}}}}}}J`{JbHn}}{c{{A`{{Hh{eg}}{Jn{e}}}}}{}{}Hj}{c{{A`{e}}}{}{}}0000000000000{cCd{}}000000???????```````````````````````````````{{cb}d{}}000000{ce{}{}}00000000000000000`{{{K`{c}}}{{K`{c}}}Hn}{{{Kb{c}}}{{Kb{c}}}Hn}{{{B`{c}}}{{B`{c}}}Hn}{{{Kd{c}}}{{Kd{c}}}Hn}{{{Kf{c}}}{{Kf{c}}}Hn}{DhDh}{KhKh}{{ce}d{}{}}000000{{{B`{c}}{B`{c}}}lKj}{{ce}l{}{}}{{}Dh}{{}Kh}{c{{A`{{Kb{e}}}}}AbIf}{c{{A`{{B`{e}}}}}AbIf}{{{Jj{ce}}}c{}{}}{{{Kl{c}}{Kl{c}}}AhKn}{{{Kb{c}}{Kb{c}}}AhKn}{{{B`{c}}{B`{c}}}AhKn}{{{Kd{c}}{Kd{c}}}AhKn}{{ce}Ah{}{}}00000000000{{{K`{c}}Aj}AlG`}{{{Kl{c}}Aj}AlG`}{{{Kb{c}}Aj}AlG`}{{{B`{c}}Aj}AlG`}{{{Kd{c}}Aj}AlG`}{{{Kf{c}}Aj}Al{}}{{DhAj}Al}{{{Jj{ce}}Aj}AlG`G`}{{KhAj}Al}{cc{}}000000000000000`{{{Jj{ce}}{K`{c}}Gb}{{`{{Gj{}{{Bn{{Kl{c}}}}}}}}}J`Jb}{{{Jj{ce}}}AhJ`Jb}{ce{}{}}00000000{{{Kb{c}}}Il{}}````{{c{Bd{Gn}}Dh}{{Jj{cL`}}}J`}{{{B`{c}}{B`{c}}}{{Bd{l}}}Lb}{{Lde}dHn{{Hf{{Kl{c}}}}}}{{Ldg}dHn{{Hf{{Kl{c}}}}}{{Lf{}{{Bn{e}}}}}}{{{Kb{c}}e}A`JfBf}{{{B`{c}}e}A`JfBf}{{{Jj{ce}}}KhJ`Jb}8888888{c{{A`{e}}}{}{}}00000000000000000{cCd{}}00000000:::::::::{{c{Bd{Gn}}Dhe}{{Jj{ce}}}J`Jb}``;;;;{{{Lh{ce}}c}Ah{LjLlHn}{}}{{}{{Ln{c}}}{}}{{}{{Lh{ce}}}{}{}}{{{Ln{c}}Gb}{{`{{Gj{}{{Bn{{Cl{Gbc}}}}}}}}}{}}{{{Lh{ce}}Gb}Eh{LjLlHn}{}}{{{Lh{ce}}c}{{Bd{Gb}}}{LjLlHn}{}}{{{Ln{c}}}{{Bd{{Cl{Gb{E`{c}}}}}}}{}}{{{Ln{c}}Aj}AlG`}{{{Lh{ce}}Aj}AlG`G`}{cc{}}0{{{Lh{ce}}c}{{Bd{e}}}{LjLlHn}{}}{{{Ln{c}}Gbc}d{}}{{{Lh{ce}}ceGb}d{LjLlHn}{}}{ce{}{}}0{{{Lh{ce}}}Ah{LjLlHn}{}}{{{Ln{c}}}{{`{{Gj{}{{Bn{{Cl{Gbc}}}}}}}}}{}}{{{Lh{ce}}}{{`{{Gj{}{{Bn{{Cl{ceGb}}}}}}}}}{LjLlHn}{}}{{{Lh{ce}}}Eh{LjLlHn}{}}{{}{{Ln{c}}}{}}{{{Ln{c}}Gbc}dKn}9{c{{A`{e}}}{}{}}000{cCd{}}088","D":"ALd","p":[[5,"Private",678],[1,"unit"],[6,"GossipEvent",4],[5,"Message",4],[5,"GossipDispatcher",4],[6,"Ordering",679],[5,"SubscribeOptions",4],[6,"Result",680],[10,"Deserializer",681],[6,"Command",4],[6,"Event",4],[1,"bool"],[5,"Formatter",682],[8,"Result",682],[8,"NodeId",683],[6,"Event",454],[5,"Gossip",154],[6,"Option",684],[10,"Serializer",685],[5,"TopicId",313],[10,"Stream",686],[5,"Box",687],[17,"Item"],[8,"RpcResult",688],[10,"Unpin",689],[5,"TypeId",690],[5,"Metrics",118],[1,"str"],[10,"Any",690],[1,"tuple"],[5,"IntoIter",691],[5,"Bytes",692],[8,"Result",693],[5,"JoinTopicFut",154],[5,"Endpoint",694],[5,"Config",454],[5,"AddrInfo",695],[5,"Connection",696],[5,"PublicKey",683],[5,"Vec",697],[5,"Join2",698],[10,"IntoFuture",699],[10,"Future",700],[1,"usize"],[5,"Pin",701],[5,"Context",702],[6,"Poll",703],[5,"Race2",704],[17,"Output"],[8,"Event",154],[5,"Receiver",705],[6,"RecvError",706],[5,"DirectAddr",707],[1,"slice"],[5,"Timers",204],[10,"Debug",682],[5,"Instant",708],[5,"BytesMut",709],[10,"AsyncRead",710],[5,"Message",313],[10,"Iterator",711],[10,"AsyncWrite",712],[5,"PeerData",221],[1,"u8"],[6,"DeliveryScope",221,713],[6,"Scope",221,713],[10,"Into",714],[5,"BitSlice",715],[10,"BitOrder",716],[1,"array"],[10,"Clone",717],[5,"Timer",313],[6,"InEvent",313],[6,"OutEvent",313],[10,"Deserialize",681],[1,"char"],[10,"FromIterator",718],[6,"MessageKind",313],[5,"State",313],[10,"PeerIdentity",221],[10,"Rng",719],[10,"Hasher",720],[10,"Serialize",685],[8,"Result",721],[5,"State",454],[5,"String",722],[6,"BitSpanError",723],[6,"InEvent",454],[6,"Message",454],[6,"Timer",454],[6,"Command",454],[5,"Stats",454],[10,"Ord",679],[6,"OutEvent",454],[10,"PartialEq",679],[5,"StdRng",724],[10,"PartialOrd",679],[10,"IO",454],[10,"IntoIterator",718],[5,"TimeBoundCache",641],[10,"Hash",720],[10,"Eq",679],[5,"TimerMap",641],[8,"Command",154]],"r":[[221,454],[222,454],[223,713],[224,454],[225,454],[226,313],[227,313],[230,313],[233,713],[234,313],[237,313],[238,313]],"b":[[339,"impl-AsRef%3C%5Bu8%5D%3E-for-TopicId"],[340,"impl-AsRef%3C%5Bu8;+32%5D%3E-for-TopicId"],[375,"impl-Debug-for-TopicId"],[376,"impl-Display-for-TopicId"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAMQBNAASAAIAFgAVAC4AEgBEAAAASAACAFIAAQBVAAQAXAAaAHgADgCIAAAAigAQAKYABACtAAMAtAAAALgAAAC6AAAAvAAAAL4AAADBAAcAywABAM4AAwDYAAMA3gABAOEAAwDnAAAA6wAAAO4ABAD0ACIAGgECACMBBAApAQIALQEIADcBAgBNAQUAVAErAIEBAACJAQUAkQEAAJ0BAgCjAQUAqgEcAOYBGAAAAhMAFQIYADcCBgBQAgAAUwIBAFYCKgCEAgMAiQIBAI8CAQCfAgcA"}],\ +["iroh_docs",{"t":"FFFFFFFFNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCNNNONNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNOONOONNNNNNNNNNNNNNNNNPPPFGPFPPGPPPPGPPPFPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOHNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONONNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOFNONNNNNOOOOOOOOOONNNNNNOOOOOOOONNNNNPGGGPPPPPPGSPPPPPPPFFNNNNNNNNNNNNNNNNNNNNNNNNOHNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNOONOONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOPPPGPPGKPPPPGFGPPGFPPPGPPPKFFFGGEPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPGGGPPGIFPFGPGGPPPPSPPPIIPPFPFFPFFFPPFPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOO","n":["Author","AuthorHeads","AuthorId","AuthorPublicKey","DocTicket","NamespaceId","NamespacePublicKey","NamespaceSecret","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","actor","as_bits","as_bits","as_bytes","as_bytes","as_bytes","as_bytes","as_ref","as_ref","as_ref","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","capability","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compare","compare","compare","compare","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","engine","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","fmt_short","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_bytes","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","from_str","from_str","from_str","from_str","from_str","from_str","hash","hash","hash","hash","id","id","into","into","into","into","into","into","into","into_public_key","into_public_key","metrics","net","new","new","new","nodes","partial_cmp","partial_cmp","partial_cmp","partial_cmp","public_key","public_key","public_key","public_key","serialize","serialize","serialize","serialize","serialize","serialize","serialize","sign","sign","store","sync","to_bytes","to_bytes","to_bytes","to_bytes","to_bytes","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify","verify","verify","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","OpenOpts","OpenState","SyncHandle","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","close","content_hashes","default","default","delete_author","delete_prefix","deserialize","drop","drop_replica","eq","equivalent","equivalent","equivalent","export_author","export_secret_key","flush_store","fmt","fmt","fmt","from","from","from","from_ref","from_ref","get_download_policy","get_exact","get_many","get_state","get_sync_peers","handles","has_news_for_us","import_author","import_namespace","insert_local","insert_remote","into","into","into","list_authors","list_replicas","open","register_useful_peer","serialize","set_download_policy","set_sync","shutdown","spawn","subscribe","subscribe","subscribe","subscribers","sync","sync","sync","sync_initial_message","sync_process_message","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unsubscribe","vzip","vzip","vzip","Accept","Connect","ContentReady","DefaultAuthor","DefaultAuthorStorage","DirectJoin","Engine","InsertLocal","InsertRemote","LiveEvent","Mem","NeighborDown","NeighborUp","NewNeighbor","Origin","PendingContentReady","Persistent","Resync","SyncEvent","SyncFinished","SyncReason","SyncReport","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","default_author","deserialize","deserialize","deserialize","deserialize","endpoint","entry_to_content_status","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","finished","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","get","handle_connection","into","into","into","into","into","into","into","leave","load","load","origin","peer","persist","result","serialize","serialize","serialize","serialize","set","shutdown","spawn","start_sync","started","subscribe","sync","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","content_status","entry","entry","from","hash","Metrics","__clone_box","actor_tick_main","borrow","borrow_mut","clone","clone_into","default","doc_gossip_tick_actor","doc_gossip_tick_event","doc_gossip_tick_main","doc_gossip_tick_pending_join","doc_live_tick_actor","doc_live_tick_main","doc_live_tick_pending_downloads","doc_live_tick_replica_event","doc_live_tick_running_sync_accept","doc_live_tick_running_sync_connect","fmt","from","from_ref","into","iter","name","new_entries_local","new_entries_local_size","new_entries_remote","new_entries_remote_size","sync_via_accept_failure","sync_via_accept_success","sync_via_connect_failure","sync_via_connect_success","to_owned","try_from","try_into","type_id","vzip","Abort","AbortReason","AcceptError","AcceptOutcome","Allow","AlreadySyncing","Close","Close","Connect","Connect","ConnectError","DOCS_ALPN","InternalServerError","NotFound","Open","Reject","RemoteAbort","Sync","Sync","SyncFinished","Timings","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","connect","connect_and_sync","default","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","handle_connection","into","into","into","into","into","into","namespace","namespace","outcome","peer","peer","process","serialize","source","source","timings","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","error","error","error","error","namespace","namespace","namespace","peer","peer","peer","peer","reason","error","error","error","Any","Any","Asc","AuthorFilter","AuthorKey","Desc","DownloadPolicy","DownloadPolicyStore","EverythingExcept","Exact","Exact","Exact","FilterKind","FlatQuery","ImportNamespaceOutcome","Inserted","KeyAuthor","KeyFilter","MemPublicKeyStore","NoChange","NotFound","NothingExcept","OpenError","Other","Prefix","Prefix","PublicKeyStore","Query","QueryBuilder","SingleLatestPerKeyQuery","SortBy","SortDirection","Store","Upgraded","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","all","author","author","author_key","author_key","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","default","default","default","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","fs","get_download_policy","include_empty","into","into","into","into","into","into","into","into","into","into","into","into","into","key_exact","key_exact","key_prefix","key_prefix","limit","limit","matches","matches","matches","matches","namespace_key","namespace_key","offset","offset","public_key","public_key","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","single_latest_per_key","sort_by","sort_direction","source","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","ContentHashesIterator","LatestIterator","ParentIterator","RecordsRange","Store","StoreInstance","all","as_mut","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","close_replica","content_hashes","delete_author","flush","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","get_author","get_download_policy","get_download_policy","get_download_policy","get_exact","get_latest_for_each_author","get_many","get_sync_peers","has_news_for_us","import_author","import_namespace","into","into","into","into","into","into","into_fallible","into_fallible","into_fallible","into_fallible","into_iter","into_iter","into_iter","into_iter","list_authors","list_namespaces","load_replica_info","memory","new_author","new_replica","next","next","next","next","open_replica","persistent","public_key","public_key","register_useful_peer","remove_replica","set_download_policy","snapshot","snapshot_owned","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","transpose_into_fallible","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","AuthorHeads","BadSignature","Capability","CapabilityError","CapabilityKind","Closed","Complete","ContentStatus","ContentStatusCallback","Entry","EntryIsEmpty","EntrySignature","Event","Incomplete","InsertError","InsertOrigin","InvalidEmptyEntry","InvalidNamespace","Local","LocalInsert","MAX_TIMESTAMP_FUTURE_SHIFT","Missing","NamespaceMismatch","NewerEntryExists","PeerIdBytes","ProtocolMessage","Read","Read","ReadOnly","ReadOnly","Record","RecordIdentifier","RemoteInsert","Replica","ReplicaInfo","SignedEntry","Store","Sync","SyncOutcome","TooFarInTheFuture","Validation","ValidationFailure","Write","Write","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_bits","as_byte_tuple","as_bytes","as_ref","author","author","author_bytes","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","capability","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","closed","cmp","cmp","cmp","cmp","compare","compare","compare","compare","content_hash","content_hash","content_len","content_len","decode","default","default","default","delete_prefix","deref","deref","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","empty","empty_current","encode","encode","encode_hex","encode_hex_upper","entry","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_entry","from_entry","from_iter","from_iter","from_parts","from_raw","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","get","has_news_for","hash_and_insert","heads_received","id","id","id","insert","insert","insert_remote_entry","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_empty","is_empty","iter","key","key","key","key_bytes","kind","len","merge","merge","merge_capability","namespace","namespace","new","new","new","new","new","new_current","new_empty","num_recv","num_sent","partial_cmp","partial_cmp","partial_cmp","partial_cmp","raw","record","record_id","secret_key","secret_key","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_content_status_callback","sign","signature","source","subscribe","subscribers_count","sync_initial_message","sync_process_message","timestamp","timestamp","to_byte_tuple","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_vec","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_primitive","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unsubscribe","validate_empty","validate_empty","verify","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","entry","entry","from","namespace","namespace","remote_content_status","should_download","from","remote_content_status"],"q":[[0,"iroh_docs"],[250,"iroh_docs::actor"],[336,"iroh_docs::engine"],[492,"iroh_docs::engine::LiveEvent"],[497,"iroh_docs::metrics"],[534,"iroh_docs::net"],[652,"iroh_docs::net::AcceptError"],[664,"iroh_docs::net::ConnectError"],[667,"iroh_docs::store"],[956,"iroh_docs::store::fs"],[1065,"iroh_docs::sync"],[1493,"iroh_docs::sync::Event"],[1500,"iroh_docs::sync::InsertOrigin"],[1502,"dyn_clone::sealed"],[1503,"bitvec::slice"],[1504,"bitvec::order"],[1505,"iroh_docs::keys"],[1506,"iroh_docs::ticket"],[1507,"core::cmp"],[1508,"core::result"],[1509,"serde::de"],[1510,"core::iter::traits::collect"],[1511,"core::fmt"],[1512,"alloc::string"],[1513,"ed25519_dalek::signing"],[1514,"ed25519_dalek::verifying"],[1515,"iroh_base::ticket"],[1516,"ed25519_dalek::errors"],[1517,"core::hash"],[1518,"iroh_base::node_addr"],[1519,"alloc::vec"],[1520,"rand_core"],[1521,"core::marker"],[1522,"core::option"],[1523,"iroh_docs::store::pubkeys"],[1524,"serde::ser"],[1525,"ed25519"],[1526,"bitvec::ptr::span"],[1527,"core::any"],[1528,"anyhow"],[1529,"bytes::bytes"],[1530,"async_channel"],[1531,"iroh_docs::heads"],[1532,"core::num::nonzero"],[1533,"iroh_base::hash"],[1534,"iroh_docs::engine::live"],[1535,"iroh_docs::engine::state"],[1536,"iroh_blobs::store::traits"],[1537,"std::io::error"],[1538,"iroh_net::endpoint"],[1539,"iroh_gossip::net"],[1540,"iroh_blobs::downloader"],[1541,"futures_core::stream"],[1542,"alloc::vec::into_iter"],[1543,"core::future::future"],[1544,"iroh_base::key"],[1545,"core::ops::function"],[1546,"core::error"],[1547,"core::default"],[1548,"core::convert"],[1549,"redb::table"],[1550,"iroh_docs::store::fs::ranges"],[1551,"fallible_iterator"],[1552,"core::iter::traits::iterator"],[1553,"std::path"],[1554,"core::ops::deref"],[1555,"alloc::collections::btree::map"],[1556,"num_enum"]],"i":[0,0,0,0,0,0,0,0,12,13,5,14,8,9,10,0,9,10,5,8,9,10,9,9,10,10,12,13,5,14,8,9,10,12,13,5,14,8,9,10,12,12,13,5,14,8,9,10,12,13,5,14,8,9,10,5,8,9,10,5,8,9,10,5,8,9,10,12,13,5,14,8,9,10,9,10,9,10,0,5,8,9,10,5,5,5,8,8,8,9,9,9,10,10,10,12,12,13,13,5,5,14,14,8,8,9,9,10,10,9,10,12,13,13,5,5,5,5,14,14,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,12,13,5,14,8,12,13,5,14,8,9,10,12,13,5,14,8,9,10,5,8,9,10,13,14,12,13,5,14,8,9,10,9,10,0,0,12,13,14,12,5,8,9,10,13,14,9,10,12,13,5,14,8,9,10,13,14,0,0,12,13,14,9,10,12,13,5,14,8,9,10,12,13,5,14,8,9,10,9,10,12,13,5,5,14,8,8,9,10,12,13,5,14,8,9,10,12,13,5,14,8,9,10,13,5,14,8,12,13,5,14,8,9,10,0,0,0,41,42,41,42,45,41,42,45,41,42,41,42,42,42,41,45,42,42,41,42,42,41,41,41,41,42,42,42,41,42,45,41,42,45,41,42,42,42,42,42,42,41,42,42,42,42,42,41,42,45,42,42,42,42,41,42,42,42,42,42,45,45,41,45,41,45,42,42,41,42,41,42,45,41,42,45,41,42,45,42,41,42,45,66,66,68,0,0,65,0,68,68,0,72,68,68,65,0,68,72,65,0,68,0,65,64,65,66,67,68,64,65,66,67,68,72,73,64,65,66,67,68,72,73,64,65,66,67,68,64,65,66,67,68,67,64,65,66,68,67,0,64,65,66,68,64,64,64,65,65,65,66,66,66,68,68,68,64,64,65,66,67,68,68,72,73,64,65,66,67,68,72,73,64,65,66,67,68,73,67,64,65,66,67,68,72,73,67,72,73,64,64,72,64,64,65,66,68,73,67,67,67,64,67,67,64,65,66,67,68,68,64,65,66,67,68,72,73,64,65,66,67,68,72,73,64,65,66,67,68,72,73,64,65,66,67,68,72,73,139,140,139,139,141,0,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,90,0,0,0,85,88,90,89,90,89,0,0,88,88,90,85,89,90,89,0,0,85,86,87,88,85,86,87,90,89,88,85,86,87,90,89,88,85,86,87,88,85,86,87,88,87,0,87,88,88,88,88,88,85,86,87,90,90,89,89,88,85,86,87,90,89,88,85,86,87,88,0,85,86,87,90,89,88,90,86,86,90,86,87,88,90,89,86,85,86,87,88,90,89,85,86,87,90,89,88,85,86,87,90,89,88,85,86,87,90,89,88,85,86,87,90,89,88,142,143,144,145,146,144,145,143,146,144,145,146,147,148,149,104,105,102,0,103,102,0,0,48,101,104,105,0,0,0,100,103,0,0,100,107,48,0,107,101,104,0,0,0,0,0,0,0,100,99,100,48,101,96,98,50,102,103,104,105,50,97,50,36,36,99,107,100,48,101,97,96,98,50,102,103,104,105,99,107,100,48,101,97,96,98,50,102,103,104,105,97,97,99,100,48,101,96,98,50,102,103,104,105,99,100,48,101,96,98,50,102,103,104,105,99,48,97,96,98,102,103,104,105,48,101,96,98,50,102,103,104,105,48,101,104,105,48,48,48,101,101,101,104,104,104,105,105,105,99,107,107,100,48,101,101,97,96,98,50,102,103,104,105,99,107,107,100,48,101,97,96,98,50,50,50,102,103,104,104,105,105,99,100,48,101,96,98,50,102,103,104,105,101,0,111,97,99,107,100,48,101,97,96,98,50,102,103,104,105,97,50,97,50,97,50,48,101,104,105,36,36,97,50,36,99,48,101,96,98,50,102,103,104,105,50,97,97,107,99,100,48,101,96,98,50,102,103,104,105,107,101,99,107,100,48,101,97,96,98,50,102,103,104,105,99,107,100,48,101,97,96,98,50,102,103,104,105,99,107,100,48,101,97,96,98,50,102,103,104,105,99,107,100,48,101,97,96,98,50,102,103,104,105,0,0,0,0,0,0,44,60,60,114,60,115,116,44,117,114,60,115,116,44,117,60,60,60,60,114,60,115,116,44,117,114,60,115,116,44,117,60,60,60,115,60,60,60,60,60,60,60,114,60,115,116,44,117,114,116,44,117,114,116,44,117,60,60,60,60,60,60,114,116,44,117,60,60,60,115,60,60,60,60,60,114,116,44,117,114,60,115,116,44,117,114,60,115,116,44,117,114,60,115,116,44,117,114,60,115,116,44,117,0,135,0,0,0,132,57,0,0,0,132,0,0,57,0,0,135,135,129,62,0,57,133,132,0,0,58,30,0,132,0,0,62,0,0,0,132,129,0,135,132,0,58,30,62,129,57,63,58,30,49,130,112,125,131,53,125,125,125,125,112,125,49,62,129,57,63,58,30,133,121,122,134,132,135,49,130,112,125,131,53,62,129,57,63,58,30,133,121,122,134,132,135,49,130,112,125,131,53,122,62,129,57,63,58,30,49,130,112,125,131,53,62,129,57,63,58,30,49,130,112,125,131,53,121,49,112,125,131,49,112,125,131,49,131,49,131,53,63,125,53,122,49,112,57,58,30,49,130,112,125,131,131,131,112,53,125,125,49,57,49,130,112,125,131,53,57,57,57,49,49,49,130,130,130,112,112,112,125,125,125,131,131,131,53,53,53,62,129,57,63,58,58,30,133,133,121,122,134,134,132,132,135,135,49,130,112,125,131,53,62,129,57,63,58,30,30,30,133,121,122,134,132,132,132,135,49,130,112,112,125,131,53,49,130,53,53,49,30,62,129,57,63,58,30,49,130,112,125,131,53,53,53,122,63,30,122,112,122,53,122,62,129,57,63,58,30,133,121,122,134,132,135,49,130,112,125,131,53,131,53,53,49,112,125,125,30,53,30,53,121,112,125,121,122,112,125,131,131,112,63,63,49,112,125,131,30,112,122,30,122,57,58,30,49,130,112,125,131,121,112,49,132,121,121,122,122,49,131,125,62,129,57,63,58,30,49,130,112,125,131,53,58,133,134,132,135,112,125,62,129,57,63,58,58,30,133,121,122,134,132,135,49,130,112,125,131,53,58,62,129,57,63,58,30,133,121,122,134,132,135,49,130,112,125,131,53,62,129,57,63,58,30,133,121,122,134,132,135,49,130,112,125,131,53,121,49,112,49,130,62,129,57,63,58,30,133,121,122,134,132,135,49,130,112,125,131,53,150,151,151,150,151,151,151,152,152],"f":"````````{{cb}d{}}000000`{c{{f{eg}}}{}{}h}0{j{{n{l}}}}{A`{{n{l}}}}{Ab{{n{l}}}}{Ad{{n{l}}}}{Ab{{Af{l}}}}21{Ad{{Af{l}}}}{ce{}{}}0000000000000`{AhAh}{AjAj}{jj}{AlAl}{A`A`}{AbAb}{AdAd}{{ce}d{}{}}000000{{jj}An}{{A`A`}An}{{AbAb}An}{{AdAd}An}{{ce}An{}{}}000{{}j}{{}A`}{{}Ab}{{}Ad}{c{{B`{Ah}}}Bb}{c{{B`{Aj}}}Bb}{c{{B`{j}}}Bb}{c{{B`{Al}}}Bb}{c{{B`{A`}}}Bb}{c{{B`{Ab}}}Bb}{c{{B`{Ad}}}Bb}{ce{}{{Bf{Bd}}}}000`{{jj}Bh}{{A`A`}Bh}{{AbAb}Bh}{{AdAd}Bh}{{ce}Bh{}{}}00000000000{{AhBj}Bl}0{{AjBj}Bl}0{{jBj}Bl}0{{AlBj}Bl}0{{A`Bj}Bl}0{{AbBj}Bl}0{{AdBj}Bl}0{AbBn}{AdBn}{cc{}}{C`Aj}11{Ajj}{Cbj}1{C`Al}44{AlA`}0{CbA`}{A`Ab}{{{n{l}}}Ab}0{AlAb}92{{{n{l}}}Ad}{jAd};{AjAd}12{{{Af{l}}}{{B`{AhCd}}}}{{{n{l}}}Aj}{{{n{l}}}{{B`{jCf}}}}{{{n{l}}}Al}{{{n{l}}}{{B`{A`Cf}}}}{cc{}}000000{Ch{{B`{Ahc}}}{}}{Ch{{B`{Ajc}}}{}}{Ch{{B`{jc}}}{}}{Ch{{B`{Alc}}}{}}{Ch{{B`{A`c}}}{}}{Ch{{B`{Abc}}}{}}{Ch{{B`{Adc}}}{}}{{jc}dCj}{{A`c}dCj}{{Abc}dCj}{{Adc}dCj}{AjAd}{AlAb}{ce{}{}}000000{Ab{{B`{A`Cf}}}}{Ad{{B`{jCf}}}}``{{Cl{D`{Cn}}}Ah}{cAj{DbDd}}{cAl{DbDd}}`{{jj}{{Df{An}}}}{{A`A`}{{Df{An}}}}{{AbAb}{{Df{An}}}}{{AdAd}{{Df{An}}}}{Ajj}{AlA`}{{Abc}{{B`{A`Cf}}}Dh}{{Adc}{{B`{jCf}}}Dh}{{Ahc}B`Dj}{{Ajc}B`Dj}{{jc}B`Dj}{{Alc}B`Dj}{{A`c}B`Dj}{{Abc}B`Dj}{{Adc}B`Dj}{{Aj{Af{l}}}Dl}{{Al{Af{l}}}Dl}``{Ah{{D`{l}}}}{Aj{{n{l}}}}{Al{{n{l}}}}{Ab{{n{l}}}}{Ad{{n{l}}}}{ce{}{}}000000{cBn{}}000000{c{{B`{{f{eg}}{Dn{e}}}}}{}{}h}0{c{{B`{e}}}{}{}}00{Ad{{B`{jc}}}{}}1{Ab{{B`{A`c}}}{}}2222222222{cE`{}}000000{{Aj{Af{l}}Dl}{{B`{dCf}}}}{{j{Af{l}}Dl}{{B`{dCf}}}}{{Al{Af{l}}Dl}{{B`{dCf}}}}{{A`{Af{l}}Dl}{{B`{dCf}}}}:::::::```{{cb}d{}}0;;;;;;{EbEb}{EdEd}{{ce}d{}{}}0{{EdAb}{{Ef{Bh}}}}{Ed{{Ef{Eh}}}}{{}Eb}{{}Ej}{{EdAd}{{Ef{d}}}}{{EdAbAdEl}{{Ef{En}}}}{c{{B`{Eb}}}Bb}{Edd}{{EdAb}{{Ef{d}}}}{{EbEb}Bh}{{ce}Bh{}{}}00{{EdAd}{{Ef{{Df{Aj}}}}}}{{EdAb}{{Ef{Al}}}}{Ed{{Ef{d}}}}{{EbBj}Bl}{{EdBj}Bl}{{EjBj}Bl}{cc{}}0000{{EdAb}{{Ef{F`}}}}{{EdAbAdElBh}{{Ef{{Df{Fb}}}}}}{{EdAbFd{Ff{{Ef{Fb}}}}}{{Ef{d}}}}{{EdAb}{{Ef{Eb}}}}{{EdAb}{{Ef{{Df{{D`{Fh}}}}}}}}`{{EdAbFj}{{Ef{{Df{Fl}}}}}}{{EdAj}{{Ef{Ad}}}}{{EdCl}{{Ef{Ab}}}}{{EdAbAdElFnG`}{{Ef{d}}}}{{EdAbFbFhGb}{{Ef{d}}}}{ce{}{}}00{{Ed{Ff{{Ef{Ad}}}}}{{Ef{d}}}}{{Ed{Ff{{Ef{{Gf{AbGd}}}}}}}{{Ef{d}}}}{{EdAbEj}{{Ef{d}}}}{{EdAbFh}{{Ef{d}}}}{{Ebc}B`Dj}{{EdAbF`}{{Ef{d}}}}{{EdAbBh}{{Ef{d}}}}{Ed{{Ef{Gh}}}}{{Gh{Df{Gj}}Bn}Ed}{{EdAb{Ff{Gl}}}{{Ef{d}}}}{{Ej{Ff{Gl}}}Ej}``{EjEj}``{{EdAb}{{Ef{{`{Fb}}}}}}{{EdAb{`{Fb}}FhGn}{{Ef{{Gf{{Df{{`{Fb}}}}Gn}}}}}}>>{c{{B`{e}}}{}{}}00000{cE`{}}006{ce{}{}}00``````````````````````{{cb}d{}}000011111111111111{H`H`}{HbHb}{HdHd}{HfHf}{HhHh}{{ce}d{}{}}0000`{c{{B`{H`}}}Bb}{c{{B`{Hb}}}Bb}{c{{B`{Hd}}}Bb}{c{{B`{Hh}}}Bb}`{{{Hl{Hj}}}Gb}{{H`H`}Bh}{{HbHb}Bh}{{HdHd}Bh}{{HhHh}Bh}{{ce}Bh{}{}}00000000000`{{H`Bj}Bl}{{HbBj}Bl}{{HdBj}Bl}{{HfBj}Bl}{{HhBj}{{B`{dHn}}}}{{HhBj}Bl}{{I`Bj}Bl}{{IbBj}Bl}{cc{}}00000000000{IbAd}{{HfId}{{Ef{d}}}}{ce{}{}}000000{{HfAbBh}{{Ef{d}}}}{{I`Ed}{{Ef{Ad}}}}{{I`Ed}{{Ef{Ib}}}}``{{I`Ad}{{Ef{d}}}}`{{H`c}B`Dj}{{Hbc}B`Dj}{{Hdc}B`Dj}{{Hhc}B`Dj}{{IbAdEd}{{Ef{d}}}}{Hf{{Ef{d}}}}{{IfIhGhcIjI`}{{Ef{Hf}}}Il}{{HfAb{D`{Cn}}}{{Ef{d}}}}`{{HfAb}{{Ef{{`{{J`{}{{In{{Ef{Hh}}}}}}Jb}}}}}}`====={cBn{}}{c{{B`{e}}}{}{}}0000000000000{cE`{}}000000{ce{}{}}000000``````{{cb}d{}}`11{JdJd}{{ce}d{}{}}{{}Jd}``````````{{JdBj}Bl}{cc{}}06{Jd{{Jh{{Gf{ChJf}}}}}}{{}Ch}````````8::98`````````````````````7777888888888888{JjJj}{JlJl}{JnJn}{K`K`}9999`{{IfEdAbCn}{{B`{JlKb}}}}{{}Jn}{c{{B`{K`}}}Bb}{{K`K`}Bh}{{ce}Bh{}{}}00{{JjBj}Bl}{{JlBj}Bl}{{JnBj}Bl}{{KdBj}Bl}0{{KbBj}Bl}0{{K`Bj}Bl}{cc{}}000000000{{EdIde}{{B`{JlKd}}}{{Kh{}{{Kf{Jj}}}}}{{Kl{AbKj}{{Kf{c}}}}}}{ce{}{}}00000{Kd{{Df{Ab}}}}``{Kd{{Df{Kj}}}}``{{K`c}B`Dj}{Kd{{Df{Kn}}}}{Kb{{Df{Kn}}}}`5555{cBn{}}0{c{{B`{e}}}{}{}}00000000000{cE`{}}00000888888`````````````````````````````````````````````````{{cb}d{}}0000000000{{}{{Lb{L`}}}}{{{Lb{c}}Ad}{{Lb{c}}}{}}{Ad{{Lb{L`}}}}{{DhAd}{{B`{jCf}}}}0=========================={{{Lb{Ld}}}Fd}{{{Lb{L`}}}Fd}{LfLf}{LhLh}{F`F`}{LjLj}{L`L`}{LdLd}{FdFd}{LlLl}{LnLn}{M`M`}{MbMb}{{ce}d{}{}}0000000000{{}Lf}{{}F`}{{}{{Lb{c}}}Md}{{}L`}{{}Ld}{{}Ll}{{}Ln}{{}M`}{{}Mb}{c{{B`{F`}}}Bb}{c{{B`{Lj}}}Bb}{c{{B`{L`}}}Bb}{c{{B`{Ld}}}Bb}{c{{B`{Fd}}}Bb}{c{{B`{Ll}}}Bb}{c{{B`{Ln}}}Bb}{c{{B`{M`}}}Bb}{c{{B`{Mb}}}Bb}{{F`F`}Bh}{{LjLj}Bh}{{M`M`}Bh}{{MbMb}Bh}{{ce}Bh{}{}}00000000000{{LfBj}Bl}{{MfBj}Bl}0{{LhBj}Bl}{{F`Bj}Bl}{{LjBj}Bl}0{{{Lb{c}}Bj}BlMh}{{L`Bj}Bl}{{LdBj}Bl}{{FdBj}Bl}{{LlBj}Bl}{{LnBj}Bl}{{M`Bj}Bl}{{MbBj}Bl}{cc{}}{MjMf}1111111{{{Lb{L`}}}Fd}2{{{Lb{Ld}}}Fd}333{cM`{{Ml{{Af{l}}}}}}4{AdMb}55555555555{Ch{{B`{Ljc}}}{}}`{{MnAb}{{Ef{F`}}}}{{{Lb{c}}}{{Lb{c}}}{}}{ce{}{}}000000000000{{{Lb{c}}e}{{Lb{c}}}{}{{Ml{{Af{l}}}}}}{c{{Lb{L`}}}{{Ml{{Af{l}}}}}}10{{{Lb{c}}G`}{{Lb{c}}}{}}{Fd{{Df{G`}}}}{{F`N`}Bh}{{Ljc}Bh{{Ml{{Af{l}}}}}}{{M`{Af{l}}}Bh}{{MbAd}Bh}{{DhAb}{{B`{A`Cf}}}}06{FdG`}{{Dh{n{l}}}{{B`{CbCf}}}}{{Lf{n{l}}}{{B`{CbCf}}}}{{F`c}B`Dj}{{Ljc}B`Dj}{{L`c}B`Dj}{{Ldc}B`Dj}{{Fdc}B`Dj}{{Llc}B`Dj}{{Lnc}B`Dj}{{M`c}B`Dj}{{Mbc}B`Dj}{{}{{Lb{Ld}}}}{{{Lb{L`}}LnLl}{{Lb{L`}}}}{{{Lb{Ld}}Ll}{{Lb{Ld}}}}{Mf{{Df{Kn}}}}{ce{}{}}0000000000{cBn{}}0{c{{B`{e}}}{}{}}0000000000000000000000000{cE`{}}0000000000003333333333333``````{{{Nb{{Gf{{n{l}}{n{l}}{Af{l}}}}{Gf{G`{n{l}}{n{l}}G`{n{l}}}}}}}{{Ef{Eh}}}}{GhGh}0555555555555{{GhAb}d}{Gh{{Ef{Eh}}}}{{GhAd}{{Ef{d}}}}{Gh{{Ef{d}}}}{{NdBj}Bl}{{GhBj}Bl}{{NfBj}Bl}{{NhBj}Bl}{{EhBj}Bl}{{NjBj}Bl}{cc{}}00000{{GhAd}{{Ef{{Df{Aj}}}}}}{{GhAb}{{Ef{F`}}}}0{{NfAb}{{Ef{F`}}}}{{GhAbAdcBh}{{Ef{{Df{Fb}}}}}{{Ml{{Af{l}}}}}}{{GhAb}{{Ef{Nj}}}}{{GhAbc}{{Ef{`}}}{{Nl{Fd}}}}{{GhAb}{{Ef{{Df{{Jh{Fh}}}}}}}}{{GhAbFj}{{Ef{{Df{Fl}}}}}}{{GhAj}{{Ef{d}}}}{{GhCl}{{Ef{Lh}}}}{ce{}{}}00000{c{{Nn{g}}}{}{}{{O`{}{{In{e}}}}}}0001111{Gh{{Ef{{`{{O`{}{{In{{Ef{Aj}}}}}}}}}}}}{Gh{{Ef{{`{{O`{}{{In{{Ef{{Gf{AbGd}}}}}}}}}}}}}}{{GhAb}{{Ef{ObMf}}}}{{}Gh}{{Ghc}{{Ef{Aj}}}{DbDd}}{{GhAl}{{Ef{Od}}}}{Nd{{Df{c}}}{}}{Nh{{Df{c}}}{}}{Eh{{Df{c}}}{}}{Nj{{Df{c}}}{}}{{GhAb}{{Ef{OdMf}}}}{c{{Ef{Gh}}}{{Ml{Of}}}}{{Gh{n{l}}}{{Ef{CbCf}}}}{{Nf{n{l}}}{{B`{CbCf}}}}{{GhAbFh}{{Ef{d}}}}{{GhAb}{{Ef{d}}}}{{GhAbF`}{{Ef{d}}}}{Gh{{Ef{`}}}}0{c{{Oh{i}}}{}{}{}{{O`{}{{In{{B`{eg}}}}}}}}000{c{{B`{e}}}{}{}}00000000000{cE`{}}00000{ce{}{}}00000````````````````````````````````````````````{{cb}d{}}00000000000{c{{f{eg}}}{}{}h}{Oj{{Gf{{n{l}}{n{l}}{Af{l}}}}}}{OjEl}{Oj{{Af{l}}}}{N`Ad}{OjAd}{FbAd}888888888888888888888888888888888888{{{Od{c}}}Cl{{On{}{{Ol{Ob}}}}A@`}}{GlGl}{A@bA@b}{GbGb}{GnGn}{GdGd}{ClCl}{FbFb}{A@dA@d}{N`N`}{OjOj}{A@fA@f}{FjFj}{{ce}d{}{}}00000000000{ObBh}{{FbFb}An}{{N`N`}An}{{OjOj}An}{{A@fA@f}An}{{ce}An{}{}}000{FbFn}{A@fFn}{FbG`}{A@fG`}{{{Af{l}}}{{Ef{Fj}}}}{{}Gn}{{}Oj}{{}Fj}{{{Od{c}}eAj}{{B`{EnA@h}}}{{On{}{{Ol{Ob}}}}A@`}{{Ml{{Af{l}}}}}}{Fbc{}}{N`c{}}{c{{B`{Gb}}}Bb}{c{{B`{Gd}}}Bb}{c{{B`{Cl}}}Bb}{c{{B`{Fb}}}Bb}{c{{B`{A@d}}}Bb}{c{{B`{N`}}}Bb}{c{{B`{Oj}}}Bb}{c{{B`{A@f}}}Bb}{G`A@f}{{}A@f}{{N`{D`{l}}}d}{{Fj{Df{En}}}{{Ef{{D`{l}}}}}}{ce{}{{Bf{Bd}}}}0{FbN`}{{GbGb}Bh}{{FbFb}Bh}{{A@dA@d}Bh}{{N`N`}Bh}{{OjOj}Bh}{{A@fA@f}Bh}{{FjFj}Bh}{{ce}Bh{}{}}00000000000000000000{{GlBj}Bl}{{A@bBj}Bl}{{GbBj}Bl}{{GnBj}Bl}{{GdBj}Bl}{{GdBj}{{B`{dHn}}}}{{ClBj}Bl}{{A@jBj}Bl}0{{ObBj}Bl}{{{Od{c}}Bj}BlMh}{{A@lBj}Bl}0{{A@hBj}Bl}0{{A@nBj}Bl}0{{FbBj}Bl}{{A@dBj}Bl}{{N`Bj}Bl}{{OjBj}Bl}{{A@fBj}Bl}{{FjBj}Bl}{cc{}}0000{AbCl}{AlCl}22222{A@lA@h}3{A@nA@h}4444{FbN`}555{{N`AlAj}Fb}{{N`AlAj}A@d}{cFj{{AA`{}{{In{{Gf{AdG`}}}}}}}}{cFj{{AA`{}{{In{{Gf{G`Ad}}}}}}}}{{AlAjcA@f}Fb{{Ml{{Af{l}}}}}}{{l{n{l}}}{{Ef{Cl}}}};;;;;;;;;;;;{{FjAd}{{Df{G`}}}}{{FjFj}{{Df{Fl}}}}{{{Od{c}}eAjg}{{B`{FnA@h}}}{{On{}{{Ol{Ob}}}}A@`}{{Ml{{Af{l}}}}}{{Ml{{Af{l}}}}}}`{ClAb}{{{Od{c}}}Ab{{On{}{{Ol{Ob}}}}A@`}}{N`Oj}{{{Od{c}}eAjFnG`}{{B`{EnA@h}}}{{On{}{{Ol{Ob}}}}A@`}{{Ml{{Af{l}}}}}}{{FjAdG`}d}{{{Od{c}}FbFhGb}{{B`{EnA@h}}}{{On{}{{Ol{Ob}}}}A@`}}{ce{}{}}00000000000000000{A@fBh}{FjBh}{Fj{{AAb{AdG`}}}}{Fb{{Af{l}}}}{N`{{Af{l}}}}{Oj{{Af{l}}}}{OjEl}{ClGd}{FjEn}{{ClCl}{{B`{BhA@j}}}}{{FjFj}d}{{ObCl}{{B`{BhA@j}}}}{N`Ab}{OjAb}{ClOb}{{Nfc}{{Od{c}}}{{On{}{{Ol{Ob}}}}A@`}}{{OjA@f}N`}{{ceg}Oj{{Nl{Ab}}}{{Nl{Ad}}}{{Ml{{Af{l}}}}}}{{FnG`G`}A@f}{{FnG`}A@f}{OjN`}``{{FbFb}{{Df{An}}}}{{N`N`}{{Df{An}}}}{{OjOj}{{Df{An}}}}{{A@fA@f}{{Df{An}}}}{Cl{{Gf{l{n{l}}}}}}{N`A@f}{{{Od{c}}eAj}Oj{{On{}{{Ol{Ob}}}}A@`}{{Ml{{Af{l}}}}}}{Cl{{B`{AlA@l}}}}{{{Od{c}}}{{B`{AlA@l}}}{{On{}{{Ol{Ob}}}}A@`}}{{Gbc}B`Dj}{{Gdc}B`Dj}{{Clc}B`Dj}{{Fbc}B`Dj}{{A@dc}B`Dj}{{N`c}B`Dj}{{Ojc}B`Dj}{{A@fc}B`Dj}{{ObGj}Bh}{{N`AlAj}Fb}{FbA@d}{A@h{{Df{Kn}}}}{{Ob{Ff{Gl}}}d}{ObEn}{{{Od{c}}}{{Ef{{`{Fb}}}}}{{On{}{{Ol{Ob}}}}A@`}}{{{Od{c}}{`{Fb}}FhGn}{{B`{{Df{{`{Fb}}}}Mj}}}{{On{}{{Ol{Ob}}}}A@`}}{FbG`}{A@fG`}{Oj{{Gf{{n{l}}{n{l}}El}}}}{ce{}{}}00000000000{cBn{}}0000{N`{{D`{l}}}}{c{{B`{{f{eg}}{Dn{e}}}}}{}{}h}{c{{B`{e}}}{}{}}0000{l{{B`{Gd{AAd{Gd}}}}}}1111111111111{c{{B`{Gd{AAd{Gd}}}}}{}}222222222222222222{cE`{}}00000000000000000>{Fb{{B`{dA@n}}}}{N`{{B`{dA@n}}}}{{Fbc}{{B`{dCf}}}Dh}{{A@dN`A`j}{{B`{dCf}}}};;;;;;;;;;;;;;;;;;`````````","D":"CMh","p":[[5,"Private",1502],[1,"unit"],[5,"BitSlice",1503],[10,"BitOrder",1504],[5,"AuthorPublicKey",0,1505],[1,"u8"],[1,"array"],[5,"NamespacePublicKey",0,1505],[5,"NamespaceId",0,1505],[5,"AuthorId",0,1505],[1,"slice"],[5,"DocTicket",0,1506],[5,"Author",0,1505],[5,"NamespaceSecret",0,1505],[6,"Ordering",1507],[6,"Result",1508],[10,"Deserializer",1509],[1,"char"],[10,"FromIterator",1510],[1,"bool"],[5,"Formatter",1511],[8,"Result",1511],[5,"String",1512],[5,"SigningKey",1513],[5,"VerifyingKey",1514],[6,"Error",1515],[8,"SignatureError",1516],[1,"str"],[10,"Hasher",1517],[6,"Capability",1065],[5,"NodeAddr",1518],[5,"Vec",1519],[10,"CryptoRngCore",1520],[10,"Sized",1521],[6,"Option",1522],[10,"PublicKeyStore",667,1523],[10,"Serializer",1524],[5,"Signature",1525],[6,"BitSpanError",1526],[5,"TypeId",1527],[5,"OpenState",250],[5,"SyncHandle",250],[8,"Result",1528],[5,"ContentHashesIterator",956],[5,"OpenOpts",250],[5,"Bytes",1529],[1,"usize"],[6,"DownloadPolicy",667],[5,"SignedEntry",1065],[5,"Query",667],[5,"Sender",1530],[8,"PeerIdBytes",1065],[5,"AuthorHeads",1065,1531],[8,"NonZeroU64",1532],[5,"Hash",1533],[1,"u64"],[6,"ContentStatus",1065],[6,"CapabilityKind",1065],[1,"tuple"],[5,"Store",956],[8,"ContentStatusCallback",1065],[6,"Event",1065],[5,"SyncOutcome",1065],[5,"SyncEvent",336,1534],[6,"SyncReason",336,1535],[6,"Origin",336,1535],[5,"Engine",336],[6,"LiveEvent",336],[6,"EntryStatus",1536],[8,"Result",1537],[5,"Error",1511],[6,"DefaultAuthorStorage",336],[5,"DefaultAuthor",336],[5,"Connecting",1538],[5,"Endpoint",1538],[5,"Gossip",1539],[5,"Downloader",1540],[10,"Store",1536],[17,"Item"],[10,"Stream",1541],[10,"Unpin",1521],[5,"Metrics",497],[10,"Any",1527],[5,"IntoIter",1542],[6,"AcceptOutcome",534],[5,"SyncFinished",534],[5,"Timings",534],[6,"AbortReason",534],[6,"ConnectError",534],[6,"AcceptError",534],[17,"Output"],[10,"Future",1543],[5,"PublicKey",1544],[10,"Fn",1545],[10,"Error",1546],[5,"FlatQuery",667],[5,"QueryBuilder",667],[5,"SingleLatestPerKeyQuery",667],[5,"MemPublicKeyStore",667,1523],[6,"ImportNamespaceOutcome",667],[6,"FilterKind",667],[6,"SortDirection",667],[6,"SortBy",667],[6,"KeyFilter",667],[6,"AuthorFilter",667],[10,"Default",1547],[6,"OpenError",667],[10,"Debug",1511],[5,"Error",1528],[10,"AsRef",1548],[10,"DownloadPolicyStore",667],[5,"Entry",1065],[5,"ReadOnlyTable",1549],[5,"RecordsRange",956,1550],[5,"StoreInstance",956],[5,"ParentIterator",956],[5,"LatestIterator",956],[10,"Into",1548],[5,"IntoFallible",1551],[10,"Iterator",1552],[5,"ReplicaInfo",1065],[5,"Replica",1065],[5,"Path",1553],[5,"Convert",1551],[5,"RecordIdentifier",1065],[17,"Target"],[10,"Deref",1554],[10,"DerefMut",1554],[6,"InsertOrigin",1065],[5,"EntrySignature",1065],[5,"Record",1065],[6,"InsertError",1065],[6,"CapabilityError",1065],[5,"ReadOnly",1065],[6,"ValidationFailure",1065],[10,"IntoIterator",1510],[5,"Iter",1555],[5,"TryFromPrimitiveError",1556],[15,"InsertRemote",492],[15,"InsertLocal",492],[15,"ContentReady",492],[15,"Connect",652],[15,"Open",652],[15,"Sync",652],[15,"Close",652],[15,"Abort",652],[15,"Connect",664],[15,"Sync",664],[15,"Close",664],[15,"LocalInsert",1493],[15,"RemoteInsert",1493],[15,"Sync",1500]],"r":[[0,1505],[1,1531],[2,1505],[3,1505],[4,1506],[5,1505],[6,1505],[7,1505],[350,1535],[354,1534],[356,1535],[685,1523],[693,1523],[699,956],[959,1550],[1065,1531]],"b":[[22,"impl-AsRef%3C%5Bu8%5D%3E-for-NamespaceId"],[23,"impl-AsRef%3C%5Bu8;+32%5D%3E-for-NamespaceId"],[24,"impl-AsRef%3C%5Bu8;+32%5D%3E-for-AuthorId"],[25,"impl-AsRef%3C%5Bu8%5D%3E-for-AuthorId"],[95,"impl-Debug-for-DocTicket"],[96,"impl-Display-for-DocTicket"],[97,"impl-Display-for-Author"],[98,"impl-Debug-for-Author"],[99,"impl-Display-for-AuthorPublicKey"],[100,"impl-Debug-for-AuthorPublicKey"],[101,"impl-Debug-for-NamespaceSecret"],[102,"impl-Display-for-NamespaceSecret"],[103,"impl-Debug-for-NamespacePublicKey"],[104,"impl-Display-for-NamespacePublicKey"],[105,"impl-Display-for-NamespaceId"],[106,"impl-Debug-for-NamespaceId"],[107,"impl-Display-for-AuthorId"],[108,"impl-Debug-for-AuthorId"],[115,"impl-From%3C%26Author%3E-for-AuthorPublicKey"],[116,"impl-From%3CVerifyingKey%3E-for-AuthorPublicKey"],[117,"impl-From%3CAuthor%3E-for-AuthorPublicKey"],[121,"impl-From%3CNamespaceSecret%3E-for-NamespacePublicKey"],[122,"impl-From%3C%26NamespaceSecret%3E-for-NamespacePublicKey"],[123,"impl-From%3CVerifyingKey%3E-for-NamespacePublicKey"],[124,"impl-From%3C%26NamespacePublicKey%3E-for-NamespaceId"],[125,"impl-From%3C%5Bu8;+32%5D%3E-for-NamespaceId"],[126,"impl-From%3C%26%5Bu8;+32%5D%3E-for-NamespaceId"],[127,"impl-From%3CNamespaceSecret%3E-for-NamespaceId"],[129,"impl-From%3CNamespacePublicKey%3E-for-NamespaceId"],[130,"impl-From%3C%5Bu8;+32%5D%3E-for-AuthorId"],[131,"impl-From%3CAuthorPublicKey%3E-for-AuthorId"],[133,"impl-From%3CAuthor%3E-for-AuthorId"],[134,"impl-From%3C%26AuthorPublicKey%3E-for-AuthorId"],[135,"impl-From%3C%26%5Bu8;+32%5D%3E-for-AuthorId"],[415,"impl-Display-for-LiveEvent"],[416,"impl-Debug-for-LiveEvent"],[590,"impl-Debug-for-AcceptError"],[591,"impl-Display-for-AcceptError"],[592,"impl-Debug-for-ConnectError"],[593,"impl-Display-for-ConnectError"],[743,"impl-QueryBuilder%3CSingleLatestPerKeyQuery%3E"],[744,"impl-QueryBuilder%3CFlatQuery%3E"],[802,"impl-Display-for-OpenError"],[803,"impl-Debug-for-OpenError"],[806,"impl-Debug-for-FilterKind"],[807,"impl-Display-for-FilterKind"],[825,"impl-From%3CQueryBuilder%3CFlatQuery%3E%3E-for-Query"],[827,"impl-From%3CQueryBuilder%3CSingleLatestPerKeyQuery%3E%3E-for-Query"],[994,"impl-DownloadPolicyStore-for-Store"],[995,"impl-Store"],[1256,"impl-Debug-for-CapabilityKind"],[1257,"impl-Display-for-CapabilityKind"],[1259,"impl-Debug-for-CapabilityError"],[1260,"impl-Display-for-CapabilityError"],[1263,"impl-Debug-for-ReadOnly"],[1264,"impl-Display-for-ReadOnly"],[1265,"impl-Debug-for-InsertError"],[1266,"impl-Display-for-InsertError"],[1267,"impl-Debug-for-ValidationFailure"],[1268,"impl-Display-for-ValidationFailure"],[1280,"impl-From%3CNamespaceId%3E-for-Capability"],[1281,"impl-From%3CNamespaceSecret%3E-for-Capability"],[1287,"impl-From%3CReadOnly%3E-for-InsertError"],[1289,"impl-From%3CValidationFailure%3E-for-InsertError"],[1300,"impl-FromIterator%3C(AuthorId,+u64)%3E-for-AuthorHeads"],[1301,"impl-FromIterator%3C(u64,+AuthorId)%3E-for-AuthorHeads"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAPIDTgAJAAYAEQABABcAEQAqACQAUAAdAHEAAAB0AAMAegAGAIIAAgCGAAMAjgARALEAAwC5AAYAxAAAAMkAJgD0AAYA/gAaABoBAgAgAQYAKAEEADABBwA5AQAAQAEQAGcBHACFAQMAiwEPAJwBBwCrAQQAwAEDAMsBIQDzAREABgIAAAgCDgAsAhcARgINAFoCAwBrAgIAbwIsALwCAAC+AgoAzgIZAOoCRgAyAwAAOgMAADwDAABAAwAAQgMMAG4DCQB7A0EAxAMNANYDBQDjAwAA5QMAAPcDAwABBAMABwQBABIEFwBWBAwAZQQAAGkEIwCOBBcApwQHALQEAgC4BAkAxgQBAMkEMgABBQEACAUAAAoFAAAPBQAAFQUBABkFCwBYBQMAYQUHAGwFAAB0BRAAhgU4AMQFEQA="}],\ +["iroh_gossip",{"t":"CCCCPPGGPFGPFPPPFNNNONNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNFNOOOOOOOONNNNNNNNNNOOOOOOOONOONNNNNPIISFPFPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNFNNNNNNNNHHNNNNNHEEGEEEEPPEFKGEPPEENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNCNNNNNNNNNCNNNPPPPPGFGGPPPPPFFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGPFSPPGPPKGPGPPGPPPPPPPFFPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["dispatcher","metrics","net","proto","Broadcast","BroadcastNeighbors","Command","Event","Gossip","GossipDispatcher","GossipEvent","Lagged","Message","NeighborDown","NeighborUp","Received","SubscribeOptions","__clone_box","__clone_box","__clone_box","bootstrap","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","compare","compare","content","delivered_from","deserialize","deserialize","deserialize","deserialize","deserialize","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","into","into","into","into","into","into","new","partial_cmp","partial_cmp","scope","serialize","serialize","serialize","serialize","serialize","subscribe_with_opts","subscription_capacity","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","Metrics","__clone_box","actor_tick_dialer","actor_tick_dialer_failure","actor_tick_dialer_success","actor_tick_endpoint","actor_tick_in_event_rx","actor_tick_main","actor_tick_rx","actor_tick_timers","borrow","borrow_mut","clone","clone_into","default","fmt","from","from_ref","into","iter","msgs_ctrl_recv","msgs_ctrl_recv_size","msgs_ctrl_sent","msgs_ctrl_sent_size","msgs_data_recv","msgs_data_recv_size","msgs_data_sent","msgs_data_sent_size","name","neighbor_down","neighbor_up","to_owned","try_from","try_into","type_id","vzip","Broadcast","Command","Event","GOSSIP_ALPN","Gossip","Join","JoinTopicFut","NeighborDown","NeighborUp","Quit","Received","__clone_box","borrow","borrow","borrow_mut","borrow_mut","broadcast","broadcast_neighbors","clone","clone_into","fmt","fmt","from","from","from_endpoint","from_ref","handle_connection","into","into","into_future","join","join","max_message_size","poll","quit","race","subscribe","subscribe_all","to_owned","try_from","try_from","try_into","try_into","try_poll","type_id","type_id","update_direct_addresses","util","vzip","vzip","Timers","borrow","borrow_mut","default","fmt","from","insert","into","new","read_lp","read_message","try_from","try_into","type_id","vzip","wait_and_drain","write_message","Command","Config","DeliveryScope","Event","IO","InEvent","Message","Neighbors","Neighbors","OutEvent","PeerData","PeerIdentity","Scope","State","Swarm","Swarm","Timer","TopicId","__clone_box","__clone_box","__clone_box","as_bytes","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","compare","compare","default","deserialize","deserialize","deserialize","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","inner","into","into","into","is_direct","new","partial_cmp","partial_cmp","serialize","serialize","serialize","state","to_owned","to_owned","to_owned","topic","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","util","vzip","vzip","vzip","Command","Control","Data","DisconnectPeer","EmitEvent","InEvent","Message","MessageKind","OutEvent","PeerData","PeerDisconnected","RecvMessage","ScheduleTimer","SendMessage","State","Timer","TimerExpired","TopicId","UpdatePeerData","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_bits","as_bytes","as_ref","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","deserialize","deserialize","encode_hex","encode_hex_upper","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bytes","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","handle","has_active_peers","hash","into","into","into","into","into","into","into","kind","max_message_size","me","new","partial_cmp","serialize","serialize","size","state","states","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","topics","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Broadcast","Command","Command","Config","DEFAULT_MAX_MESSAGE_SIZE","DisconnectPeer","EmitEvent","Event","Gossip","Gossip","IO","InEvent","Join","Message","NeighborDown","NeighborUp","OutEvent","PeerData","PeerDisconnected","Quit","Received","RecvMessage","ScheduleTimer","SendMessage","State","Stats","Swarm","Swarm","Timer","TimerExpired","UpdatePeerData","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broadcast","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","default","default","deserialize","deserialize","endpoint","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","gossip_stats","handle","has_active_peers","into","into","into","into","into","into","into","into","into","kind","max_message_size","membership","messages_received","messages_sent","new","partial_cmp","push","push_from_iter","serialize","serialize","stats","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_rng","TimeBoundCache","TimerMap","borrow","borrow","borrow_mut","borrow_mut","contains_key","default","default","drain_until","expire_until","expires","first","fmt","fmt","from","from","get","insert","insert","into","into","is_empty","iter","iter","len","new","remove","remove","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":[[0,"iroh_gossip"],[4,"iroh_gossip::dispatcher"],[118,"iroh_gossip::metrics"],[154,"iroh_gossip::net"],[204,"iroh_gossip::net::util"],[221,"iroh_gossip::proto"],[313,"iroh_gossip::proto::state"],[454,"iroh_gossip::proto::topic"],[641,"iroh_gossip::proto::util"],[678,"dyn_clone::sealed"],[679,"core::cmp"],[680,"core::result"],[681,"serde::de"],[682,"core::fmt"],[683,"iroh_base::key"],[684,"core::option"],[685,"serde::ser"],[686,"futures_core::stream"],[687,"alloc::boxed"],[688,"iroh_base::rpc"],[689,"core::marker"],[690,"core::any"],[691,"alloc::vec::into_iter"],[692,"bytes::bytes"],[693,"anyhow"],[694,"iroh_net::endpoint"],[695,"iroh_base::node_addr"],[696,"iroh_quinn::connection"],[697,"alloc::vec"],[698,"futures_concurrency::future::join::tuple"],[699,"core::future::into_future"],[700,"core::future::future"],[701,"core::pin"],[702,"core::task::wake"],[703,"core::task::poll"],[704,"futures_concurrency::future::race::tuple"],[705,"tokio::sync::broadcast"],[706,"tokio::sync::broadcast::error"],[707,"iroh_net::magicsock"],[708,"std::time"],[709,"bytes::bytes_mut"],[710,"tokio::io::async_read"],[711,"core::iter::traits::iterator"],[712,"tokio::io::async_write"],[713,"iroh_gossip::proto::plumtree"],[714,"core::convert"],[715,"bitvec::slice"],[716,"bitvec::order"],[717,"core::clone"],[718,"core::iter::traits::collect"],[719,"rand::rng"],[720,"core::hash"],[721,"postcard::error"],[722,"alloc::string"],[723,"bitvec::ptr::span"],[724,"rand::rngs::std"]],"i":[0,0,0,0,10,10,0,0,11,0,0,11,0,3,3,3,0,3,4,5,7,7,10,11,3,4,5,7,10,11,3,4,5,3,4,5,3,4,5,3,4,3,4,4,4,7,10,11,3,4,3,4,3,3,3,4,4,4,7,10,11,3,4,5,7,10,11,3,3,4,5,3,4,5,7,10,11,3,4,5,5,3,4,4,7,10,11,3,4,5,7,3,4,5,7,10,11,3,4,5,7,10,11,3,4,5,7,10,11,3,4,5,7,10,11,3,4,5,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,104,0,0,0,0,104,0,50,50,104,50,17,17,34,17,34,17,17,17,17,17,34,17,34,17,17,17,17,34,34,17,34,17,34,17,34,17,17,17,17,34,17,34,34,17,34,17,0,17,34,0,55,55,55,55,55,55,55,55,0,0,55,55,55,55,55,0,0,0,0,0,0,0,0,65,66,0,0,0,0,0,65,66,0,0,65,66,63,63,65,66,63,65,66,63,65,66,63,65,66,63,65,66,65,66,63,65,66,63,65,66,63,65,65,65,66,66,66,63,63,63,65,66,63,65,66,63,65,66,63,63,65,66,63,65,63,65,66,65,66,63,0,65,66,63,0,65,66,63,65,66,63,65,66,63,0,65,66,63,73,78,78,74,74,0,0,0,0,74,73,73,74,74,0,0,73,0,73,20,60,72,73,74,20,20,20,20,20,60,78,72,73,74,79,20,60,78,72,73,74,79,20,60,72,73,74,20,60,72,73,74,20,20,20,60,20,20,20,20,20,20,20,20,60,78,72,73,74,79,20,20,60,78,72,73,74,79,20,20,60,72,73,74,20,79,79,20,20,60,78,72,73,74,79,60,79,79,79,20,20,60,60,79,79,20,60,72,73,74,20,79,20,20,60,78,72,73,74,79,20,60,78,72,73,74,79,20,60,78,72,73,74,79,20,60,78,72,73,74,79,91,0,88,0,0,94,94,0,89,90,0,0,91,0,16,16,0,94,88,91,16,88,94,94,0,0,89,90,0,88,88,88,89,16,90,91,36,92,88,94,89,16,90,91,36,85,92,88,94,89,16,90,91,36,85,92,36,88,89,16,90,91,36,92,88,89,16,90,91,36,92,16,16,36,92,89,16,85,94,89,16,90,94,94,94,89,89,89,16,16,16,90,90,90,88,94,89,16,90,91,36,85,92,88,94,89,16,90,91,36,85,92,88,89,16,90,91,36,92,85,85,85,88,94,89,16,90,91,36,85,92,89,36,36,92,92,85,16,98,98,89,16,85,88,89,16,90,91,36,92,88,94,89,16,90,91,36,85,92,88,94,89,16,90,91,36,85,92,88,94,89,16,90,91,36,85,92,88,94,89,16,90,91,36,85,92,85,0,0,103,100,103,100,100,103,100,103,100,100,103,103,100,103,100,100,103,100,103,100,100,103,100,100,103,103,100,103,100,103,100,103,100,103,100],"f":"`````````````````{{cb}d{}}00`{ce{}{}}00000000000{ff}{hh}{jj}{{ce}d{}{}}00{{ff}l}{{hh}l}{{ce}l{}{}}0``{c{{A`{n}}}Ab}{c{{A`{Ad}}}Ab}{c{{A`{Af}}}Ab}{c{{A`{f}}}Ab}{c{{A`{h}}}Ab}{{ff}Ah}{{hh}Ah}{{ce}Ah{}{}}00000{{nAj}Al}{{AdAj}Al}{{AfAj}Al}{{fAj}Al}{{hAj}Al}{{jAj}Al}{cc{}}000{{{B`{An}}}f}11111{ce{}{}}00000{Bbj}{{ff}{{Bd{l}}}}{{hh}{{Bd{l}}}}`{{nc}A`Bf}{{Adc}A`Bf}{{Afc}A`Bf}{{fc}A`Bf}{{hc}A`Bf}{{jBhn{Bl{Bj}}}{{`{{Bj{}{{Bn{{C`{Af}}}}}}Cb}}}}`999{c{{A`{e}}}{}{}}00000000000{cCd{}}00000;;;;;;`{{cb}d{}}````````<<{CfCf}{{ce}d{}{}}{{}Cf}{{CfAj}Al}{cc{}}0{ce{}{}}{Cf{{Cn{{Cl{ChCj}}}}}}````````{{}Ch}``2::92```````````82222{{BbBhD`}{{Db{d}}}}0{BbBb}8{{BbAj}Al}{{DdAj}Al}77{{DfDhDj}Bb}8{{BbDl}{{Db{d}}}}88{c{}{}}{{BbBh{E`{Dn}}}{{Db{Dd}}}}{{ce}{{Eb{g}}}{}EdEf}{BbEh}{{{Ej{Dd}}El}{{En{c}}}{}}{{BbBh}{{Db{d}}}}{{cg}{{F`{ei}}}{}{}{{Ed{}{{Fb{e}}}}}{{Ef{}{{Fb{e}}}}}}{{BbBh}{{Db{{Ff{Fd}}}}}}{Bb{{`{{Bj{}{{Bn{{A`{{Cl{BhFd}}Fh}}}}}}}}}}{ce{}{}}{c{{A`{e}}}{}{}}000{{{Ej{c}}El}En{}}{cCd{}}0{{Bb{Fl{Fj}}}{{Db{d}}}}`44`44{{}{{Fn{c}}}{}}{{{Fn{c}}Aj}AlG`}{cc{}}{{{Fn{c}}Gbc}d{}}83{{cGdEh}{{Db{{Bd{D`}}}}}{GfCb}}{{cGdEh}{{Db{{Bd{{Gh{Dn}}}}}}}{GfCb}}997:{{{Fn{c}}}{{`{{Gj{}{{Bn{{Cl{Gbc}}}}}}}}}{}}{{cGd{Gh{Dn}}Eh}{{Db{d}}}{GlCb}}``````````````````{{cb}d{}}00{Gn{{Fl{H`}}}}>>>>>>{HbHb}{HdHd}{GnGn}{{ce}d{}{}}00{{HbHb}l}{{HdHd}l}{{ce}l{}{}}0{{}Gn}{c{{A`{Hb}}}Ab}{c{{A`{Hd}}}Ab}{c{{A`{Gn}}}Ab}{{HbHb}Ah}{{HdHd}Ah}{{GnGn}Ah}{{ce}Ah{}{}}00000000{{HbAj}Al}{{HdAj}Al}{{GnAj}Al}{cc{}}00000{GnD`}{ce{}{}}00{HbAh}{cGn{{Hf{D`}}}}{{HbHb}{{Bd{l}}}}{{HdHd}{{Bd{l}}}}{{Hbc}A`Bf}{{Hdc}A`Bf}{{Gnc}A`Bf}`777`{c{{A`{e}}}{}{}}00000{cCd{}}00`999```````````````````{{cb}d{}}0000{c{{Hh{eg}}}{}{}Hj}{Bh{{Hl{H`}}}}0{Bh{{Fl{H`}}}}=============={BhBh}{{{Gh{c}}}{{Gh{c}}}Hn}{{{I`{c}}}{{I`{c}}}Hn}{{{Ib{c}}}{{Ib{c}}}Hn}{{{Id{c}}}{{Id{c}}}Hn}{{ce}d{}{}}0000{{BhBh}l}{{ce}l{}{}}{c{{A`{Bh}}}Ab}{c{{A`{{Gh{e}}}}}AbIf}{ce{}{{Ij{Ih}}}}0{{BhBh}Ah}{{ce}Ah{}{}}00{{BhAj}Al}0{{{Gh{c}}Aj}AlG`}{{IlAj}Al}{{{I`{c}}Aj}AlG`}{{{Ib{c}}Aj}AlG`}{{{Id{c}}Aj}AlG`}{{{In{ce}}Aj}AlG`G`}{cc{}}{cBh{{Hf{{Hl{H`}}}}}}111111{{{Hl{H`}}}Bh}22222{Ch{{A`{Bhc}}}{}}{{{In{ce}}{Ib{c}}Gb}{{`{{Gj{}{{Bn{{Id{c}}}}}}}}}J`{JbHn}}{{{In{ce}}Bh}AhJ`{JbHn}}{{Bhc}dJd}{ce{}{}}000000{{{Gh{c}}}Il{}}{{{In{ce}}}EhJ`{JbHn}}{{{In{ce}}}cJ`{JbHn}}{{cGnDhe}{{In{ce}}}J`{JbHn}}{{BhBh}{{Bd{l}}}}{{Bhc}A`Bf}{{{Gh{c}}e}A`JfBf}{{{Gh{c}}}{{Jh{Eh}}}Jf}{{{In{ce}}Bh}{{Bd{{Jj{ce}}}}}J`{JbHn}}{{{In{ce}}}{{`{{Gj{}{{Bn{{Cl{Bh{Jj{ce}}}}}}}}}}}J`{JbHn}}:::::{cJl{}}{{{In{ce}}}{{`{{Gj{}{{Bn{Bh}}}}}}}J`{JbHn}}{c{{A`{{Hh{eg}}{Jn{e}}}}}{}{}Hj}{c{{A`{e}}}{}{}}0000000000000{cCd{}}000000???????```````````````````````````````{{cb}d{}}000000{ce{}{}}00000000000000000`{{{K`{c}}}{{K`{c}}}Hn}{{{Kb{c}}}{{Kb{c}}}Hn}{{{B`{c}}}{{B`{c}}}Hn}{{{Kd{c}}}{{Kd{c}}}Hn}{{{Kf{c}}}{{Kf{c}}}Hn}{DhDh}{KhKh}{{ce}d{}{}}000000{{{B`{c}}{B`{c}}}lKj}{{ce}l{}{}}{{}Dh}{{}Kh}{c{{A`{{Kb{e}}}}}AbIf}{c{{A`{{B`{e}}}}}AbIf}{{{Jj{ce}}}c{}{}}{{{Kl{c}}{Kl{c}}}AhKn}{{{Kb{c}}{Kb{c}}}AhKn}{{{B`{c}}{B`{c}}}AhKn}{{{Kd{c}}{Kd{c}}}AhKn}{{ce}Ah{}{}}00000000000{{{K`{c}}Aj}AlG`}{{{Kl{c}}Aj}AlG`}{{{Kb{c}}Aj}AlG`}{{{B`{c}}Aj}AlG`}{{{Kd{c}}Aj}AlG`}{{{Kf{c}}Aj}Al{}}{{DhAj}Al}{{{Jj{ce}}Aj}AlG`G`}{{KhAj}Al}{cc{}}000000000000000`{{{Jj{ce}}{K`{c}}Gb}{{`{{Gj{}{{Bn{{Kl{c}}}}}}}}}J`Jb}{{{Jj{ce}}}AhJ`Jb}{ce{}{}}00000000{{{Kb{c}}}Il{}}````{{c{Bd{Gn}}Dh}{{Jj{cL`}}}J`}{{{B`{c}}{B`{c}}}{{Bd{l}}}Lb}{{Lde}dHn{{Hf{{Kl{c}}}}}}{{Ldg}dHn{{Hf{{Kl{c}}}}}{{Lf{}{{Bn{e}}}}}}{{{Kb{c}}e}A`JfBf}{{{B`{c}}e}A`JfBf}{{{Jj{ce}}}KhJ`Jb}8888888{c{{A`{e}}}{}{}}00000000000000000{cCd{}}00000000:::::::::{{c{Bd{Gn}}Dhe}{{Jj{ce}}}J`Jb}``;;;;{{{Lh{ce}}c}Ah{LjLlHn}{}}{{}{{Ln{c}}}{}}{{}{{Lh{ce}}}{}{}}{{{Ln{c}}Gb}{{`{{Gj{}{{Bn{{Cl{Gbc}}}}}}}}}{}}{{{Lh{ce}}Gb}Eh{LjLlHn}{}}{{{Lh{ce}}c}{{Bd{Gb}}}{LjLlHn}{}}{{{Ln{c}}}{{Bd{{Cl{Gb{E`{c}}}}}}}{}}{{{Ln{c}}Aj}AlG`}{{{Lh{ce}}Aj}AlG`G`}{cc{}}0{{{Lh{ce}}c}{{Bd{e}}}{LjLlHn}{}}{{{Ln{c}}Gbc}d{}}{{{Lh{ce}}ceGb}d{LjLlHn}{}}{ce{}{}}0{{{Lh{ce}}}Ah{LjLlHn}{}}{{{Ln{c}}}{{`{{Gj{}{{Bn{{Cl{Gbc}}}}}}}}}{}}{{{Lh{ce}}}{{`{{Gj{}{{Bn{{Cl{ceGb}}}}}}}}}{LjLlHn}{}}{{{Lh{ce}}}Eh{LjLlHn}{}}{{}{{Ln{c}}}{}}{{{Ln{c}}Gbc}dKn}9{c{{A`{e}}}{}{}}000{cCd{}}088","D":"ALd","p":[[5,"Private",678],[1,"unit"],[6,"GossipEvent",4],[5,"Message",4],[5,"GossipDispatcher",4],[6,"Ordering",679],[5,"SubscribeOptions",4],[6,"Result",680],[10,"Deserializer",681],[6,"Command",4],[6,"Event",4],[1,"bool"],[5,"Formatter",682],[8,"Result",682],[8,"NodeId",683],[6,"Event",454],[5,"Gossip",154],[6,"Option",684],[10,"Serializer",685],[5,"TopicId",313],[10,"Stream",686],[5,"Box",687],[17,"Item"],[8,"RpcResult",688],[10,"Unpin",689],[5,"TypeId",690],[5,"Metrics",118],[1,"str"],[10,"Any",690],[1,"tuple"],[5,"IntoIter",691],[5,"Bytes",692],[8,"Result",693],[5,"JoinTopicFut",154],[5,"Endpoint",694],[5,"Config",454],[5,"AddrInfo",695],[5,"Connection",696],[5,"PublicKey",683],[5,"Vec",697],[5,"Join2",698],[10,"IntoFuture",699],[10,"Future",700],[1,"usize"],[5,"Pin",701],[5,"Context",702],[6,"Poll",703],[5,"Race2",704],[17,"Output"],[8,"Event",154],[5,"Receiver",705],[6,"RecvError",706],[5,"DirectAddr",707],[1,"slice"],[5,"Timers",204],[10,"Debug",682],[5,"Instant",708],[5,"BytesMut",709],[10,"AsyncRead",710],[5,"Message",313],[10,"Iterator",711],[10,"AsyncWrite",712],[5,"PeerData",221],[1,"u8"],[6,"DeliveryScope",221,713],[6,"Scope",221,713],[10,"Into",714],[5,"BitSlice",715],[10,"BitOrder",716],[1,"array"],[10,"Clone",717],[5,"Timer",313],[6,"InEvent",313],[6,"OutEvent",313],[10,"Deserialize",681],[1,"char"],[10,"FromIterator",718],[6,"MessageKind",313],[5,"State",313],[10,"PeerIdentity",221],[10,"Rng",719],[10,"Hasher",720],[10,"Serialize",685],[8,"Result",721],[5,"State",454],[5,"String",722],[6,"BitSpanError",723],[6,"InEvent",454],[6,"Message",454],[6,"Timer",454],[6,"Command",454],[5,"Stats",454],[10,"Ord",679],[6,"OutEvent",454],[10,"PartialEq",679],[5,"StdRng",724],[10,"PartialOrd",679],[10,"IO",454],[10,"IntoIterator",718],[5,"TimeBoundCache",641],[10,"Hash",720],[10,"Eq",679],[5,"TimerMap",641],[8,"Command",154]],"r":[[221,454],[222,454],[223,713],[224,454],[225,454],[226,313],[227,313],[230,313],[233,713],[234,313],[237,313],[238,313]],"b":[[339,"impl-AsRef%3C%5Bu8;+32%5D%3E-for-TopicId"],[340,"impl-AsRef%3C%5Bu8%5D%3E-for-TopicId"],[375,"impl-Debug-for-TopicId"],[376,"impl-Display-for-TopicId"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAMQBNAASAAIAFgAVAC4AEgBFAAAASAACAFIAAQBVAAQAXAAaAHgADgCIAAAAigAQAKYABACtAAMAtAAAALgAAAC6AAAAvAAAAL4AAADBAAcAywABAM4AAwDYAAMA3gABAOEAAwDnAAAA6wAAAO4ABAD0ACIAGgECACMBBAApAQIALQEIADcBAgBNAQUAVAErAIEBAACJAQUAkQEAAJ0BAgCjAQUAqgEcAOYBGAAAAhMAFQIYADcCBgBQAgAAUwIBAFYCKgCEAgMAiQIBAI8CAQCfAgcA"}],\ ["iroh_metrics",{"t":"CQQCHHQEFFKKKFIFOONNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNMMMNNNNNNOONNONNNNNNNNNNNNNNNNONHH","n":["core","inc","inc_by","metrics","parse_prometheus_metrics","report_usage_stats","set","struct_iterable","Core","Counter","HistogramType","Metric","MetricType","UsageReporter","UsageResource","UsageStatsReport","attribution_id","attribution_key","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","counter","default","default","description","deserialize","fmt","fmt","fmt","fmt","from","from","from","from","get","get","get_collector","inc","inc_by","init","into","into","into","into","name","name","name","new","new","new","new","registry","report_usage_stats","resource","resource_ref","serialize","set","timestamp","to_owned","to_owned","try_from","try_from","try_from","try_from","try_get","try_init","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","value","with_metric","start_metrics_dumper","start_metrics_server"],"q":[[0,"iroh_metrics"],[8,"iroh_metrics::core"],[85,"iroh_metrics::metrics"],[87,"alloc::string"],[88,"std::collections::hash::map"],[89,"anyhow"],[90,"core::result"],[91,"serde::de"],[92,"core::fmt"],[93,"core::option"],[94,"prometheus_client::registry"],[95,"erased_set"],[96,"core::ops::function"],[97,"serde::ser"],[98,"std::io::error"],[99,"core::any"],[100,"std::path"],[101,"core::time"],[102,"core::net::socket_addr"]],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,9,8,10,6,9,8,10,6,8,6,8,6,8,9,10,8,6,9,8,10,6,9,8,10,6,9,8,9,8,8,9,9,8,10,6,17,21,22,17,8,10,6,9,10,6,6,6,8,6,8,6,9,8,10,6,17,9,9,8,10,6,9,8,10,6,6,17,0,0],"f":"````{b{{j{{h{df}}}}}}{ln}````````````{ce{}{}}0000000{A`A`}{ll}{{ce}n{}{}}0`{{}Ab}{{}Ad}`{c{{Af{l}}}Ah}{{AbAj}Al}{{A`Aj}Al}{{AdAj}Al}{{lAj}Al}{cc{}}000{{}{{An{Ab}}}}{A`B`}{Ab{{An{c}}}Bb}1{{A`B`}B`}{cn{{Bh{BdBf}}}}{ce{}{}}000{{}b}{Bjb}{Blb}{BdBb}{bA`}{{}Ad}{{BndC`{An{d}}{An{d}}}l}{AbBd}{{Adl}{{Af{nCb}}}}``{{lc}AfCd}<`::{c{{Af{e}}}{}{}}000{{}{{An{Bb}}}}{c{{Cf{n}}}{{Bh{BdBf}}}}2222{cCh{}}000`{en{}{{Bh{Bb}{{Cj{c}}}}}}{{ClCn}{{j{n}}}}{D`{{j{n}}}}","D":"Fl","p":[[1,"str"],[5,"String",87],[1,"f64"],[5,"HashMap",88],[8,"Result",89],[5,"UsageStatsReport",8],[1,"unit"],[5,"Counter",8],[5,"Core",8],[5,"UsageReporter",8],[6,"Result",90],[10,"Deserializer",91],[5,"Formatter",92],[8,"Result",92],[6,"Option",93],[1,"u64"],[10,"Metric",8],[5,"Registry",94],[5,"ErasedSyncSet",95],[10,"FnOnce",96],[10,"MetricType",8],[10,"HistogramType",8],[8,"UsageResource",8],[1,"i64"],[5,"Error",89],[10,"Serializer",97],[8,"Result",98],[5,"TypeId",99],[17,"Output"],[5,"PathBuf",100],[5,"Duration",101],[6,"SocketAddr",102]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACEABgATAAsAIAABACMABABBAAAARAAFAEwABwA="}],\ -["iroh_net",{"t":"FEFINNNNNNNNNNNNNNNNNCNNCNOCCCNNNNNNNNNNNNNNNNNNNNONNNCCCCNONNCCCNONNCCCCNNNNNNNNCNNNNSSSSCCSSSHHHHSSHHHFNNNNNNNNNNNNNNNNNNNNNNFKFNNONNNNNNNCNNNNNNNNNNNOCCONNNNNNNNNNNNNFSSNNNNNNNNNNNNFNNNNNNNNNNNNSSSSFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIKHMNMNMNMNMNMNMNMNMNMNCHPSGFPFNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNONONNNNNNHNNNNNNNNNNNNNFFPFPFFPGFPPGFGPFFGFFPPPTTPFPPPPGFPPPFPPPPFPPPPFPGPPNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNHNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOONOOONNHNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTPPGISFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFEEENOOOOOOOONNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNONGFPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNCNNNNNNNNNNFNNNNNNNNNNNNNNHONONNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNOOOONNOONNOOONOOOOOOOOOONNNNNNNNNNNNNNNNNONNNNPPGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNONNNNNNNNNNNNNNNNNNNNNOOONONOOONONNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNPPPPPPPPPPPPPPFFGFPPPPSPPPPPPPPPPGPFFGFPFPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNOOOOOGSSPPNNNNNNNNNNNNNNNNNNNNGFPFPGFPFFFFFPFNNNNOOOONNNNNNNNNNNNNNNNNNNNNNOONNONNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNONONONNNNNNNNNNNNNONONNOOONNNNNNONOOOOONNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNOOOOPGPPPPPPPPGFPPPPPPPPPPPGFPFPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNCHHNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSFFNNNNHNNNNNNNNOONONHNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNCHHFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNCNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNHNNNNNNNNNNNNNN","n":["AddrInfo","Endpoint","NodeAddr","NodeId","__clone_box","__clone_box","apply_options","apply_options","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","compare","compare","default","defaults","deserialize","deserialize","dialer","direct_addresses","direct_addresses","discovery","dns","endpoint","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from","from","from","from_parts","from_ref","from_ref","info","into","into","is_empty","key","metrics","net","netcheck","new","node_id","partial_cmp","partial_cmp","ping","portmapper","relay","relay_url","relay_url","serialize","serialize","stun","test_utils","ticket","tls","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","util","vzip","vzip","with_direct_addresses","with_relay_url","DEFAULT_HTTPS_PORT","DEFAULT_HTTP_PORT","DEFAULT_METRICS_PORT","DEFAULT_STUN_PORT","prod","staging","AP_RELAY_HOSTNAME","EU_RELAY_HOSTNAME","NA_RELAY_HOSTNAME","default_ap_relay_node","default_eu_relay_node","default_na_relay_node","default_relay_map","EU_RELAY_HOSTNAME","NA_RELAY_HOSTNAME","default_eu_relay_node","default_na_relay_node","default_relay_map","Dialer","abort_dial","borrow","borrow_mut","chain","fmt","from","into","into_stream","is_pending","merge","new","next_conn","pending_count","poll_next","queue_dial","ratelimit_stream","ratelimit_stream_with_jitter","try_from","try_into","type_id","vzip","zip","ConcurrentDiscovery","Discovery","DiscoveryItem","__clone_box","add","addr_info","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","dns","empty","fmt","fmt","from","from","from","from","from_ref","from_services","into","into","last_updated","local_swarm_discovery","pkarr","provenance","publish","publish","resolve","resolve","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","DnsDiscovery","N0_DNS_NODE_ORIGIN_PROD","N0_DNS_NODE_ORIGIN_STAGING","borrow","borrow_mut","fmt","from","into","n0_dns","new","resolve","try_from","try_into","type_id","vzip","LocalSwarmDiscovery","borrow","borrow_mut","fmt","from","into","new","publish","resolve","try_from","try_into","type_id","vzip","DEFAULT_PKARR_TTL","DEFAULT_REPUBLISH_INTERVAL","N0_DNS_PKARR_RELAY_PROD","N0_DNS_PKARR_RELAY_STAGING","PkarrPublisher","PkarrRelayClient","PkarrResolver","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","drop","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","into","into","into","n0_dns","n0_dns","new","new","new","publish","publish","resolve","resolve","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_addr_info","vzip","vzip","vzip","with_options","DnsResolver","ResolverExt","default_resolver","lookup_by_id","lookup_by_id","lookup_by_id_staggered","lookup_by_id_staggered","lookup_by_name","lookup_by_name","lookup_by_name_staggered","lookup_by_name_staggered","lookup_ipv4","lookup_ipv4","lookup_ipv4_ipv6","lookup_ipv4_ipv6","lookup_ipv4_ipv6_staggered","lookup_ipv4_ipv6_staggered","lookup_ipv4_staggered","lookup_ipv4_staggered","lookup_ipv6","lookup_ipv6","lookup_ipv6_staggered","lookup_ipv6_staggered","node_info","resolver","Addr","IROH_TXT_NAME","IrohAttr","NodeInfo","Relay","TxtAttrs","__clone_box","as_ref","attrs","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","cmp","compare","direct_addresses","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_hickory_records","from_hickory_records","from_parts","from_pkarr_signed_packet","from_pkarr_signed_packet","from_ref","from_str","from_strings","from_z32","hash","into","into","into","lookup_by_id","lookup_by_name","new","node_id","node_id","partial_cmp","relay_url","to_hickory_records","to_hickory_records","to_owned","to_pkarr_signed_packet","to_pkarr_signed_packet","to_string","to_z32","try_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Accept","AddrInfo","ApplicationClosed","Builder","CallMeMaybe","Connecting","Connection","ConnectionClosed","ConnectionError","ConnectionInfo","ConnectionLost","ConnectionLost","ConnectionType","ConnectionTypeStream","ControlMsg","Direct","DirectAddr","DirectAddrInfo","DirectAddrType","DirectAddrsStream","Endpoint","IllegalOrderedRead","Local","LocallyClosed","MAX","MAX_SIZE","Mixed","NodeAddr","None","Ping","Pong","Portmapped","ReadError","RecvStream","Relay","Reset","Reset","SendStream","Stopped","Stun","Stun4LocalPort","TimedOut","TransportConfig","TransportError","Unknown","UnknownStream","UnknownStream","VarInt","VersionMismatch","WriteError","ZeroRttRejected","ZeroRttRejected","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","accept","accept_bi","accept_uni","add_node_addr","add_node_addr_with_source","addr","addr","addrs","allow_spin","alpn","alpns","bind","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bound_sockets","builder","chain","chain","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","close","close","close_reason","closed","cmp","cmp","cmp","compare","compare","compare","concurrent_connections","congestion_controller_factory","congestion_state","conn_type","conn_type_stream","connect","connect_by_node_id","connection_info","connection_infos","crypto_buffer_size","datagram_receive_buffer_size","datagram_send_buffer_size","datagram_send_buffer_space","default","default","default","default_relay_mode","deserialize","deserialize","deserialize","deserialize","direct_addresses","direct_addresses","discovery","discovery","dns_resolver","dns_resolver","drop","drop","enable_segmentation_offload","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export_keying_material","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_u32","from_u64","from_u64_unchecked","get_remote_node_id","handshake_data","handshake_data","has_send_address","hash","hash","hash","home_relay","id","id","id","info","initial_mtu","initial_rtt","insecure_skip_relay_cert_verify","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_0rtt","into_future","into_future","into_inner","into_stream","into_stream","is_0rtt","join","join","keep_alive_interval","keylog","known_nodes","last_alive","last_alive_relay","last_control","last_payload","last_received","last_used","latency","latency","local_ip","local_ip","make_server_config","max_concurrent_bidi_streams","max_concurrent_uni_streams","max_datagram_size","max_idle_timeout","max_tlps","merge","merge","min_mtu","mtu_discovery_config","network_change","node_addr","node_id","node_id","node_id","open_bi","open_uni","packet_threshold","partial_cmp","partial_cmp","partial_cmp","peer_identity","persistent_congestion_threshold","poll","poll","poll_flush","poll_next","poll_next","poll_read","poll_shutdown","poll_write","priority","proxy_from_env","proxy_url","race","race","ratelimit_stream","ratelimit_stream","ratelimit_stream_with_jitter","ratelimit_stream_with_jitter","read","read_chunk","read_chunks","read_datagram","read_exact","read_to_end","receive_window","relay_mode","relay_url","relay_url","remote_address","remote_address","reset","rtt","secret_key","secret_key","send_datagram","send_window","serialize","serialize","serialize","serialize","set_alpns","set_max_concurrent_bi_streams","set_max_concurrent_uni_streams","set_priority","set_receive_window","source","source","source","stable_id","stats","stop","stopped","stream_receive_window","time_threshold","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","transport_config","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","typ","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","watch_home_relay","weak_handle","write","write_all","write_all_chunks","write_chunk","write_chunks","zip","zip","BYTE_SIZE","Base32","Key","KeyParsingError","NodeId","PUBLIC_KEY_LENGTH","PublicKey","SecretKey","SharedSecret","Signature","__clone_box","__clone_box","__clone_box","as_bits","as_bytes","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","compare","deserialize","deserialize","deserialize","encode_hex","encode_hex_upper","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_components","from_ref","from_ref","from_ref","from_slice","from_str","from_str","from_str","generate","generate_with_rng","hash","into","into","into","into","into","open","partial_cmp","public","r_bytes","s_bytes","seal","serialize","serialize","serialize","shared","sign","source","to_bytes","to_bytes","to_bytes","to_openssh","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_vec","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_openssh","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","MagicsockMetrics","NetcheckMetrics","PortmapMetrics","RelayMetrics","__clone_box","actor_link_change","actor_tick_direct_addr_heartbeat","actor_tick_direct_addr_update_receiver","actor_tick_main","actor_tick_msg","actor_tick_other","actor_tick_portmap_changed","actor_tick_re_stun","borrow","borrow_mut","clone","clone_into","default","fmt","from","from_ref","into","iter","name","num_direct_conns_added","num_direct_conns_removed","num_relay_conns_added","num_relay_conns_removed","re_stun_calls","recv_data_ipv4","recv_data_ipv6","recv_data_relay","recv_datagrams","recv_disco_bad_key","recv_disco_bad_parse","recv_disco_call_me_maybe","recv_disco_call_me_maybe_bad_disco","recv_disco_ping","recv_disco_pong","recv_disco_relay","recv_disco_udp","relay_home_change","send_data","send_data_network_down","send_disco_relay","send_disco_udp","send_ipv4","send_ipv6","send_relay","send_relay_error","sent_disco_call_me_maybe","sent_disco_ping","sent_disco_pong","sent_disco_relay","sent_disco_udp","to_owned","try_from","try_into","type_id","update_direct_addrs","vzip","IpFamily","UdpSocket","V4","V6","__clone_box","as_fd","bind","bind_full","bind_local","bind_local_v4","bind_local_v6","bind_v4","bind_v6","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from_ref","into","into","ip","local_addr","netmon","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unspecified_addr","vzip","vzip","LocalAddresses","__clone_box","borrow","borrow_mut","clone","clone_into","default","eq","equivalent","equivalent","equivalent","fmt","from","from_ref","into","is_unicast_link_local","loopback","new","regular","to_owned","try_from","try_into","type_id","vzip","CallbackToken","Monitor","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from","from_ref","hash","into","into","network_change","new","subscribe","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unsubscribe","vzip","vzip","Client","Metrics","RelayLatencies","Report","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","captive_portal","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","default","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_ref","from_ref","from_ref","from_ref","get_report","get_report_channel","global_v4","global_v6","hair_pinning","icmpv4","icmpv6","into","into","into","into","ipv4","ipv4_can_send","ipv6","ipv6_can_send","iter","iter","mapping_varies_by_dest_ip","mapping_varies_by_dest_ipv6","name","new","os_has_ipv6","portmap_probe","preferred_relay","receive_stun_packet","relay_latency","relay_v4_latency","relay_v6_latency","reports","reports_full","stun_packets_dropped","stun_packets_recv_ipv4","stun_packets_recv_ipv6","stun_packets_sent_ipv4","stun_packets_sent_ipv6","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","udp","vzip","vzip","vzip","vzip","Client","Ping","PingError","Pinger","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","fmt","fmt","fmt","from","from","from","from","from_ref","into","into","new","send","source","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Client","Config","Metrics","ProbeOutput","Service","__clone_box","__clone_box","__clone_box","__clone_box","all_available","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","deactivate","default","default","default","enable_nat_pmp","enable_pcp","enable_upnp","eq","equivalent","equivalent","equivalent","external_address_updated","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","into","into","into","into","into","iter","local_port_updates","mapping_attempts","mapping_failures","name","nat_pmp","new","pcp","pcp_available","pcp_probes","probe","probes_started","procure_mapping","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update_local_port","upnp","upnp_available","upnp_gateway_updated","upnp_probes","upnp_probes_failed","vzip","vzip","vzip","vzip","vzip","watch_external_address","ActorGone","Build","CannotAckPings","Closed","ConnectTimeout","Custom","Default","DialIO","DialTask","Disabled","Dns","DnsTimeout","Health","Http","HttpClient","HttpClientBuilder","HttpClientError","HttpClientReceiver","Hyper","IPDisabled","InvalidUrl","KeepAlive","MAX_PACKET_SIZE","NoClient","NoLocalAddr","NoNodeForTarget","PeerGone","Ping","PingAborted","PingTimeout","Pong","Proxy","Receive","ReceivedMessage","ReceivedPacket","RelayConn","RelayMap","RelayMode","RelayNode","RelayNodeNotAvail","RelayUrl","Send","ServerRestarting","Staging","StunOnlyNodesFound","UnexpectedStatusCode","Upgrade","WebsocketError","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","address_family_selector","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","can_ack_pings","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","close","close","close_for_reconnect","cmp","cmp","compare","compare","connect","contains_node","default_from_node","deref","deserialize","deserialize","empty","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_nodes","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","from_url","get_node","hash","http","insecure_skip_cert_verify","into","into","into","into","into","into","into","into","into","into","is_closed","is_connected","is_empty","is_preferred","is_prober","len","local_addr","local_addr","new","nodes","note_preferred","note_preferred","partial_cmp","partial_cmp","ping","protocol","proxy_url","public_key","recv","relay_map","send","send","send_ping","send_pong","send_pong","serialize","serialize","server","server_public_key","server_url","source","stun_only","stun_port","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","url","urls","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","data","problem","reconnect_in","source","try_for","Protocol","RELAY_PATH","RELAY_PROBE_PATH","Relay","Websocket","__clone_box","borrow","borrow_mut","clone","clone_into","eq","equivalent","equivalent","equivalent","fmt","from","from_ref","into","parse_header","to_owned","try_from","try_into","type_id","upgrade_header","vzip","CertConfig","ClientConnHandler","LetsEncrypt","Limits","Manual","MaybeTlsStreamServer","Metrics","Plain","RelayConfig","Server","ServerActorTask","ServerConfig","StunConfig","Tls","TlsConfig","__clone_box","__clone_box","abort","accept","accept_conn_burst","accept_conn_limit","accepts","bind_addr","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes_recv","bytes_sent","call","call","cert","client_conn_handler","clone","clone","clone_into","clone_into","close","default","default","default","derp_accepts","disco_packets_dropped","disco_packets_recv","disco_packets_sent","disconnects","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","got_ping","http_addr","http_bind_addr","https_addr","https_bind_addr","into","into","into","into","into","into","into","into","into","into","into","is_closed","iter","limits","meta_cert","metrics_addr","name","new","other_packets_dropped","other_packets_recv","other_packets_sent","poll_flush","poll_read","poll_shutdown","poll_write","poll_write_vectored","public_key","relay","secret_key","secret_key","send_packets_dropped","send_packets_recv","send_packets_sent","sent_pong","shutdown","spawn","stun","stun_addr","task_handle","tls","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unique_client_keys","unknown_frames","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","websocket_accepts","certs","config","private_key","AlternateServer","Error","ErrorCode","ErrorResponse","Fingerprint","Indication","InvalidFingerprint","InvalidMessage","MalformedAttrs","MappedAddress","MessageClass","MessageDecoder","MessageIntegrity","MessageIntegritySha256","NoFingerprint","Nonce","NotBinding","NotSuccessResponse","PasswordAlgorithm","PasswordAlgorithms","Realm","Request","Software","StunAttribute","StunDecodeError","SuccessResponse","TransactionId","Unknown","UnknownAttributes","UserHash","UserName","XorMappedAddress","__clone_box","__clone_box","__clone_box","as_alternate_server","as_bits","as_bytes","as_error_code","as_fingerprint","as_mapped_address","as_message_integrity","as_message_integrity_sha256","as_nonce","as_password_algorithm","as_password_algorithms","as_realm","as_ref","as_software","as_unknown","as_unknown_attributes","as_user_hash","as_user_name","as_xor_mapped_address","attribute_type","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","compare","decode","default","default","deref","encode_hex","encode_hex_upper","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","expect_alternate_server","expect_error_code","expect_fingerprint","expect_mapped_address","expect_message_integrity","expect_message_integrity_sha256","expect_nonce","expect_password_algorithm","expect_password_algorithms","expect_realm","expect_software","expect_unknown","expect_unknown_attributes","expect_user_hash","expect_user_name","expect_xor_mapped_address","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","get_context","hash","into","into","into","into","into","into","is","is_alternate_server","is_error_code","is_fingerprint","is_mapped_address","is_message_integrity","is_message_integrity_sha256","is_nonce","is_password_algorithm","is_password_algorithms","is_realm","is_software","is_unknown","is_unknown_attributes","is_user_hash","is_user_name","is_xor_mapped_address","methods","parse_binding_request","parse_response","partial_cmp","request","response","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","BINDING","RESERVED","SHARED_SECRET","CleanupDropGuard","DnsPkarrServer","borrow","borrow","borrow_mut","borrow_mut","create_dns_resolver","discovery","dns_resolver","fmt","fmt","from","from","into","into","nameserver","node_origin","on_node","pkarr_url","run","run_relay_server","run_with_origin","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","NodeTicket","__clone_box","borrow","borrow_mut","clone","clone_into","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from_bytes","from_ref","from_str","into","new","node_addr","serialize","to_bytes","to_owned","to_string","try_from","try_into","type_id","vzip","certificate","make_client_config","make_server_config","GenError","P2pCertificate","P2pExtension","ParseError","VerificationError","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","generate","into","into","into","into","into","parse","peer_id","source","source","source","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify_signature","vzip","vzip","vzip","vzip","vzip","AbortingJoinHandle","CancelOnDrop","MaybeFuture","SharedAbortingJoinHandle","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","clone","clone_into","default","deref","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","inner","into","into","into","into","into_future","into_future","into_future","join","join","join","new","poll","poll","poll","race","race","race","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_poll","try_poll","try_poll","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","Chain","borrow","borrow_mut","chain","consume","fmt","from","get_mut","get_pin_mut","get_ref","into","into_inner","poll_fill_buf","poll_read","try_from","try_into","type_id","vzip"],"q":[[0,"iroh_net"],[86,"iroh_net::defaults"],[92,"iroh_net::defaults::prod"],[99,"iroh_net::defaults::staging"],[104,"iroh_net::dialer"],[127,"iroh_net::discovery"],[169,"iroh_net::discovery::dns"],[184,"iroh_net::discovery::local_swarm_discovery"],[197,"iroh_net::discovery::pkarr"],[258,"iroh_net::dns"],[283,"iroh_net::dns::node_info"],[361,"iroh_net::endpoint"],[905,"iroh_net::key"],[1049,"iroh_net::metrics"],[1110,"iroh_net::net"],[1157,"iroh_net::net::ip"],[1181,"iroh_net::net::netmon"],[1216,"iroh_net::netcheck"],[1322,"iroh_net::ping"],[1357,"iroh_net::portmapper"],[1462,"iroh_net::relay"],[1728,"iroh_net::relay::ReceivedMessage"],[1733,"iroh_net::relay::http"],[1758,"iroh_net::relay::server"],[1940,"iroh_net::relay::server::CertConfig"],[1943,"iroh_net::stun"],[2147,"iroh_net::stun::methods"],[2150,"iroh_net::test_utils"],[2180,"iroh_net::ticket"],[2208,"iroh_net::tls"],[2211,"iroh_net::tls::certificate"],[2277,"iroh_net::util"],[2347,"iroh_net::util::chain"],[2365,"dyn_clone::sealed"],[2366,"iroh_base::node_addr"],[2367,"core::cmp"],[2368,"core::result"],[2369,"serde::de"],[2370,"core::net::socket_addr"],[2371,"core::iter::traits::iterator"],[2372,"core::fmt"],[2373,"iroh_base::key"],[2374,"core::option"],[2375,"alloc::vec"],[2376,"serde::ser"],[2377,"core::any"],[2378,"core::iter::traits::collect"],[2379,"iroh_net::relay::map"],[2380,"futures_concurrency::stream::chain::tuple"],[2381,"futures_concurrency::stream::into_stream"],[2382,"futures_core::stream"],[2383,"futures_concurrency::stream::merge::tuple"],[2384,"iroh_quinn::connection"],[2385,"anyhow"],[2386,"core::pin"],[2387,"core::task::wake"],[2388,"core::task::poll"],[2389,"governor::state::direct"],[2390,"governor::state"],[2391,"governor::state::direct::streams"],[2392,"governor::clock"],[2393,"governor::clock::with_std"],[2394,"governor::middleware"],[2395,"governor::jitter"],[2396,"futures_concurrency::stream::zip::tuple"],[2397,"swarm_discovery"],[2398,"alloc::boxed"],[2399,"futures_lite::stream"],[2400,"alloc::string"],[2401,"url"],[2402,"pkarr::signed_packet"],[2403,"core::time"],[2404,"core::future::future"],[2405,"core::net::ip_addr"],[2406,"hickory_proto::rr::domain::name"],[2407,"core::clone"],[2408,"hickory_resolver::async_resolver"],[2409,"alloc::collections::btree::map"],[2410,"core::str::traits"],[2411,"core::hash"],[2412,"hickory_proto::rr::resource"],[2413,"alloc::collections::btree::set"],[2414,"iroh_quinn_proto::config"],[2415,"iroh_quinn::recv_stream"],[2416,"iroh_quinn::send_stream"],[2417,"iroh_quinn_proto::varint"],[2418,"iroh_quinn_proto::connection"],[2419,"iroh_net::magicsock::node_map::node_state"],[2420,"iroh_net::magicsock"],[2421,"iroh_quinn_proto::congestion"],[2422,"core::marker"],[2423,"iroh_net::magicsock::node_map"],[2424,"iroh_quinn_proto::crypto"],[2425,"iroh_quinn_proto::connection::streams::recv"],[2426,"iroh_quinn_proto"],[2427,"iroh_quinn_proto::transport_error"],[2428,"iroh_quinn_proto::frame"],[2429,"futures_concurrency::future::join::tuple"],[2430,"core::future::into_future"],[2431,"alloc::sync"],[2432,"std::io::error"],[2433,"tokio::io::read_buf"],[2434,"futures_concurrency::future::race::tuple"],[2435,"iroh_quinn_proto::connection::assembler"],[2436,"bytes::bytes"],[2437,"core::error"],[2438,"iroh_quinn_proto::connection::stats"],[2439,"iroh_quinn_proto::connection::streams::send"],[2440,"bitvec::slice"],[2441,"bitvec::order"],[2442,"ed25519"],[2443,"iroh_base::key::encryption"],[2444,"ed25519_dalek::signature"],[2445,"ed25519_dalek::verifying"],[2446,"iroh_base::base32"],[2447,"signature::error"],[2448,"ed25519_dalek::signing"],[2449,"rand_core"],[2450,"aead"],[2451,"zeroize"],[2452,"ssh_key::error"],[2453,"bitvec::ptr::span"],[2454,"ssh_key::signature"],[2455,"core::convert"],[2456,"alloc::vec::into_iter"],[2457,"iroh_net::net::udp"],[2458,"std::os::fd::owned"],[2459,"iroh_net::net::ip_family"],[2460,"tokio::net::udp"],[2461,"iroh_net::net::netmon::actor"],[2462,"futures_lite::future"],[2463,"core::ops::function"],[2464,"iroh_net::netcheck::metrics"],[2465,"tokio::sync::oneshot"],[2466,"surge_ping::error"],[2467,"iroh_net::portmapper::metrics"],[2468,"core::num::nonzero"],[2469,"tokio::sync::watch"],[2470,"iroh_net::relay::client::conn"],[2471,"http::error"],[2472,"tokio_tungstenite_wasm::error"],[2473,"hyper::error"],[2474,"tokio::runtime::task::error"],[2475,"http::header::value"],[2476,"iroh_net::relay::server::actor"],[2477,"http::request"],[2478,"hyper::body::incoming"],[2479,"http::header::map"],[2480,"iroh_net::relay::server::metrics"],[2481,"core::default"],[2482,"std::io"],[2483,"stun_rs::attributes"],[2484,"stun_rs::attributes::stun::alternate_server"],[2485,"stun_rs::error"],[2486,"stun_rs::types"],[2487,"stun_rs::attributes::stun::error_code"],[2488,"stun_rs::attributes::stun::fingerprint"],[2489,"stun_rs::attributes::stun::mapped_address"],[2490,"stun_rs::attributes::stun::message_integrity"],[2491,"stun_rs::attributes::stun::message_integrity_sha256"],[2492,"stun_rs::attributes::stun::nonce"],[2493,"stun_rs::attributes::stun::password_algorithm"],[2494,"stun_rs::attributes::stun::password_algorithms"],[2495,"stun_rs::attributes::stun::realm"],[2496,"stun_rs::attributes::stun::software"],[2497,"stun_rs::attributes::unknown"],[2498,"stun_rs::attributes::stun::unknown_attributes"],[2499,"stun_rs::attributes::stun::user_hash"],[2500,"stun_rs::attributes::stun::user_name"],[2501,"stun_rs::attributes::stun::xor_mapped_address"],[2502,"stun_rs::context"],[2503,"stun_rs::message"],[2504,"iroh_net::test_utils::dns_and_pkarr_servers"],[2505,"iroh_base::ticket::node"],[2506,"iroh_base::ticket"],[2507,"rustls::client::client_conn"],[2508,"rustls::server::server_conn"],[2509,"rcgen::error"],[2510,"webpki::error"],[2511,"rustls::key"],[2512,"rustls::enums"],[2513,"tokio::runtime::task::join"],[2514,"tokio::runtime::task::abort"],[2515,"tokio::io::async_read"],[2516,"tokio::io::async_buf_read"],[2517,"iroh_base"],[2518,"ed25519_dalek::constants"],[2519,"iroh_net::relay::codec"],[2520,"stun_rs"],[2521,"stun_rs::methods"],[2522,"iroh_net::test_utils::dns_server"]],"i":[0,0,0,0,3,5,3,5,3,5,3,5,3,5,3,5,3,5,3,5,5,0,3,5,0,3,5,0,0,0,3,5,3,3,3,5,5,5,3,5,3,3,3,3,3,5,5,3,3,5,3,3,5,5,0,0,0,0,3,3,3,5,0,0,0,3,5,3,5,0,0,0,0,3,5,3,5,3,5,3,5,0,3,5,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0,0,0,54,52,54,54,52,54,52,54,54,52,0,52,54,52,54,54,52,52,54,52,54,52,54,0,0,54,53,52,53,52,54,54,52,54,52,54,52,54,52,0,0,0,58,58,58,58,58,58,58,58,58,58,58,58,0,60,60,60,60,60,60,60,60,60,60,60,60,0,0,0,0,0,0,0,61,62,63,61,62,63,61,62,63,61,62,63,61,62,63,61,61,62,63,61,62,63,61,62,63,61,62,63,61,62,61,62,63,61,63,62,63,61,62,63,61,62,63,61,62,63,61,62,63,61,61,62,63,61,0,0,0,71,70,71,70,71,70,71,70,71,70,71,70,71,70,71,70,71,70,71,70,0,0,80,0,0,0,80,0,15,80,81,80,15,81,80,15,81,15,15,80,80,15,80,15,80,80,80,15,15,15,80,80,15,81,80,15,15,15,81,81,15,81,81,15,81,15,80,81,0,80,80,15,81,81,81,15,81,15,80,15,15,81,15,15,81,80,0,80,80,15,81,80,15,81,80,15,81,80,15,81,0,0,101,0,102,0,0,101,0,0,98,99,0,0,0,104,0,0,0,0,0,98,106,101,100,100,104,0,104,102,102,106,0,0,104,98,101,0,99,106,106,101,0,101,106,98,99,0,101,0,98,99,36,98,99,100,35,101,102,103,21,104,105,106,35,36,36,35,35,103,105,21,94,95,96,96,36,114,98,115,99,94,100,96,35,101,91,95,102,103,21,104,111,113,105,106,36,114,98,115,99,94,100,96,35,101,91,95,102,103,21,104,111,113,105,106,35,35,111,113,36,98,99,100,35,101,102,103,21,104,105,106,36,98,99,100,35,101,102,103,21,104,105,106,36,35,36,36,100,105,106,100,105,106,96,94,36,21,35,35,35,35,35,94,94,94,36,94,100,96,0,102,103,21,104,35,5,96,35,96,35,114,115,94,98,99,100,101,102,103,21,104,105,106,98,98,98,99,99,99,100,100,100,101,101,101,102,102,102,103,103,103,21,21,21,104,104,104,105,105,105,106,106,106,36,115,36,114,98,98,115,99,99,94,100,100,96,35,101,101,91,95,102,102,103,21,104,104,111,113,105,106,106,36,114,98,98,98,115,99,99,94,100,100,100,100,100,96,35,101,101,101,91,95,102,103,21,104,111,113,105,106,36,98,99,100,35,101,102,103,21,104,105,106,100,100,100,0,36,95,21,100,105,106,35,114,115,21,3,94,94,96,36,114,98,115,99,94,100,96,35,101,91,95,102,103,21,104,111,113,105,106,95,91,95,100,111,113,114,91,95,94,96,96,103,21,103,103,21,21,103,21,36,95,0,94,94,36,94,94,111,113,94,94,35,35,35,3,21,36,36,94,100,105,106,36,94,91,95,115,111,113,114,115,115,115,96,96,91,95,111,113,111,113,114,114,114,36,114,114,94,96,5,21,36,95,115,36,96,35,36,94,102,103,21,104,35,36,36,115,36,98,99,101,36,36,114,115,94,94,36,98,99,100,35,101,102,103,21,104,105,106,98,99,100,101,102,104,106,96,36,114,98,115,99,94,100,100,100,100,96,35,101,91,95,102,103,21,104,111,113,105,106,36,114,98,115,99,94,100,96,35,101,91,95,102,103,21,104,111,113,105,106,95,105,36,114,98,115,99,94,100,96,35,101,91,95,102,103,21,104,111,113,105,106,36,114,98,115,99,94,100,96,35,101,91,95,102,103,21,104,111,113,105,106,35,36,115,115,115,115,115,111,113,153,157,157,0,0,0,0,0,0,0,153,16,64,16,16,16,153,156,16,157,64,153,156,16,157,64,153,16,64,153,16,64,16,16,153,16,64,16,16,153,16,153,153,153,16,16,16,153,153,153,153,156,16,16,157,157,64,64,16,153,153,153,153,156,16,16,157,157,157,64,64,64,153,16,64,153,153,16,64,153,153,16,64,64,64,16,153,156,16,157,64,156,16,64,153,153,156,153,16,64,64,64,157,153,153,64,64,153,16,64,153,16,157,64,153,16,153,153,153,153,156,16,16,16,157,64,64,64,153,156,16,157,64,153,156,16,157,64,16,153,156,16,157,64,0,0,0,0,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,0,0,176,176,176,174,174,174,174,174,174,174,174,176,174,176,174,176,176,174,174,176,176,176,176,176,174,176,176,174,174,176,176,174,0,176,0,176,176,174,176,174,176,174,176,176,174,0,179,179,179,179,179,179,179,179,179,179,179,179,179,179,0,179,179,179,179,179,179,179,179,0,0,181,181,182,181,182,181,181,182,181,181,181,181,181,182,181,182,181,181,181,182,182,182,182,181,181,182,181,182,181,182,182,181,182,0,0,0,0,185,186,187,188,185,186,187,188,185,186,187,188,186,185,186,187,188,185,186,187,188,185,186,187,186,187,186,186,186,187,187,187,185,186,186,187,188,185,186,187,188,185,186,187,188,188,188,186,186,186,186,186,185,186,187,188,186,186,186,186,185,187,186,186,185,188,186,186,186,188,186,186,186,185,185,185,185,185,185,185,185,186,187,188,186,185,186,187,188,185,186,187,188,185,186,187,188,186,185,186,187,188,192,192,0,0,191,192,191,192,191,191,191,191,192,192,191,192,192,192,191,191,192,191,191,191,192,191,192,192,191,192,191,192,191,192,191,0,0,0,0,0,195,194,196,190,194,195,194,196,190,197,195,194,196,190,197,195,194,196,190,195,194,196,190,190,195,196,190,196,196,196,194,194,194,194,195,195,194,194,196,190,197,195,194,196,190,197,195,194,196,190,195,194,196,190,197,195,195,195,195,195,194,190,194,195,195,190,195,190,195,194,196,190,194,195,194,196,190,197,195,194,196,190,197,195,194,196,190,197,190,194,195,195,195,195,195,194,196,190,197,190,206,206,206,206,206,112,112,206,206,112,206,206,205,206,0,0,0,0,206,206,206,205,0,206,206,206,205,205,206,206,205,206,206,0,205,0,0,0,0,206,0,206,205,112,206,206,206,206,17,204,205,202,112,27,26,201,17,204,205,206,202,203,201,112,27,26,17,204,205,206,202,203,201,112,27,26,201,201,17,204,205,202,112,27,26,17,204,205,202,112,27,26,204,202,202,17,26,17,26,202,27,27,17,17,26,27,17,204,112,27,26,17,17,17,204,204,204,112,112,112,27,27,27,26,26,26,17,17,204,205,206,206,202,203,201,112,27,27,26,26,17,17,204,205,206,206,206,206,206,206,202,203,201,112,27,26,27,17,204,205,202,112,27,26,17,27,27,17,0,201,17,204,205,206,202,203,201,112,27,26,204,202,27,201,201,27,204,202,201,27,204,202,17,26,202,201,201,202,203,112,204,202,204,204,202,17,26,0,201,201,206,26,26,17,204,205,202,112,27,26,17,206,27,26,17,204,205,206,202,203,201,112,27,26,17,204,205,206,202,203,201,112,27,26,17,204,205,206,202,203,201,112,27,26,26,27,17,204,205,206,202,203,201,112,27,26,282,283,284,282,284,0,0,0,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,0,0,226,0,226,0,0,215,0,0,0,0,0,215,0,214,219,213,214,222,222,219,224,213,214,219,215,220,223,224,225,222,226,227,213,214,219,215,220,223,224,225,222,226,227,219,219,214,214,225,213,214,219,214,219,213,219,220,222,219,219,219,219,219,213,214,219,215,220,223,224,225,222,226,227,213,214,219,215,220,223,224,225,222,226,227,214,219,219,227,223,227,225,213,214,219,215,220,223,224,225,222,226,227,213,219,223,213,220,219,213,219,219,219,215,215,215,215,215,213,220,213,223,219,219,219,219,227,227,220,227,227,223,214,219,213,214,219,215,220,223,224,225,222,226,227,213,214,219,215,220,223,224,225,222,226,227,213,214,219,215,220,223,224,225,222,226,227,219,219,213,214,219,215,220,223,224,225,222,226,227,219,285,286,285,231,0,231,252,231,252,255,255,255,231,0,0,231,231,255,231,255,255,231,231,231,252,231,0,0,252,0,231,231,231,231,231,251,252,234,231,234,234,231,231,231,231,231,231,231,231,231,234,231,231,231,231,231,231,231,251,252,234,231,254,255,251,252,234,231,254,255,251,252,234,251,252,234,234,234,251,251,234,234,234,234,252,234,252,252,252,234,234,234,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,251,252,234,234,231,254,254,255,255,251,252,234,234,234,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,254,255,251,252,234,251,234,251,252,234,231,254,255,0,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,0,0,0,234,0,0,251,252,234,234,254,255,234,251,252,252,234,231,254,255,251,252,234,231,254,255,251,252,234,231,254,255,251,252,234,231,254,255,0,0,0,0,0,258,257,258,257,0,257,257,258,257,258,257,258,257,257,257,257,257,257,0,257,258,257,258,257,258,257,258,257,0,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,0,0,0,0,0,0,0,0,264,265,262,266,267,264,265,262,266,267,264,265,262,262,266,266,267,267,264,265,262,262,266,266,267,267,0,264,265,262,266,267,0,264,262,266,267,262,266,267,264,265,262,266,267,264,265,262,266,267,264,265,262,266,267,264,264,265,262,266,267,0,0,0,0,273,230,273,275,274,230,273,275,274,0,273,273,274,230,230,273,275,230,273,275,274,230,230,273,273,275,274,273,274,230,273,275,274,230,273,274,230,273,274,275,230,273,274,230,273,274,273,230,273,275,274,230,273,275,274,230,273,274,230,273,275,274,230,273,275,274,0,279,279,0,279,279,279,279,279,279,279,279,279,279,279,279,279,279],"f":"````{{cb}d{}}0{{fh}d}{{jh}d}{ce{}{}}000{ff}{jj}{{ce}d{}{}}0{{ff}l}{{jj}l}{{ce}l{}{}}0{{}j}`{c{{n{f}}}A`}{c{{n{j}}}A`}`{f{{`{{Af{}{{Ab{Ad}}}}}}}}````{{ff}Ah}{{jj}Ah}{{ce}Ah{}{}}00000{{fAj}{{n{dAl}}}}{{jAj}{{n{dAl}}}}{Anf}{{{Bh{B`{Bd{Bb}}{Bf{Ad}}}}}f}{B`f}{cc{}}{Bjf}1{Anj}{{B`{Bd{Bb}}{Bl{Ad}}}f}33`{ce{}{}}0{jAh}````6`{{ff}{{Bd{l}}}}{{jj}{{Bd{l}}}}```{f{{Bd{Bb}}}}`{{fc}nBn}{{jc}nBn}````66{c{{n{e}}}{}{}}000{cC`{}}0`88{{fc}f{{Cb{}{{Ab{Ad}}}}}}{{fBb}f}`````````{{}Cd}00{{}Cf}``110`{{ChCj}d}=={{cg}{{Cl{i}}}{}{}{{Cn{}{{Ab{e}}}}}{{D`{}{{Ab{e}}}}}}{{ChAj}Db}{cc{}}{ce{}{}}0{{ChCj}Ah}{{cg}{{Dd{ei}}}{}{}{{Cn{}{{Ab{e}}}}}{{D`{}{{Ab{e}}}}}}{DfCh}{Ch{{Bh{Cj{Dj{Dh}}}}}}{ChDl}{{{Dn{Ch}}E`}{{Eb{{Bd{c}}}}}{}}{{ChCj{Bf{Ed}}}d}{{c{Eh{Efegi}}}{{Ej{kegi}}}{}El{EnF`}Fb{}}{{c{Eh{Efegi}}Fd}{{Ej{kegi}}}{}El{EnF`}Fb{}}{c{{n{e}}}{}{}}0{cC`{}};{{cg}{{Ff{i}}}{}{}{{Cn{}{{Ab{e}}}}}{{D`{}{{Ab{e}}}}}}```{{cb}d{}}{{Fhc}dFj}`>>>>{FlFl}{{ce}d{}{}}{{}Fh}`0{{FlAj}Db}{{FhAj}Db}{cc{}}{FnFl}{cFh{{Cb{}{{Ab{{G`{Fj}}}}}}}}22{{{Bl{{G`{Fj}}}}}Fh}{ce{}{}}0````{{Fjj}d}{{Fhj}d}{{FjDfCj}{{Bd{{Gb{{Dj{Fl}}}}}}}}{{FhDfCj}{{Bd{{Gb{{Dj{Fl}}}}}}}}4{c{{n{e}}}{}{}}000{cC`{}}066```66{{GdAj}Db};7{{}Gd}{GfGd}{{GdDfCj}{{Bd{{Gb{{Dj{Fl}}}}}}}}554:`::{{GhAj}Db}?;{Cj{{Dj{Gh}}}}{{Ghj}d}{{GhDfCj}{{Bd{{Gb{{Dj{Fl}}}}}}}}998>```````{{cb}d{}}00??????{GjGj}{GlGl}{GnGn}{{ce}d{}{}}00{Gjd}{{GjAj}Db}{{GlAj}Db}{{GnAj}Db}{cc{}}00000{ce{}{}}00{H`Gj}{{}Gl}{{H`Hb}Gj}{HbGl}{HbGn}{{Gjj}d}{{GnHd}{{Dj{d}}}}{{GlDfCj}{{Bd{{Hf{{Dj{Fl}}}}}}}}{{GnCj}{{Dj{Hd}}}}999{c{{n{e}}}{}{}}00000{cC`{}}005;;;{{H`HbHhHj}Gj}``{{}Hl}{{HnCjI`}{{`{{Id{}{{Ib{{Dj{f}}}}}}}}}}{{HlCjI`}{{Dj{f}}}}{{HnCjI`{Bf{If}}}{{`{{Id{}{{Ib{{Dj{f}}}}}}}}}}{{HlCjI`{Bf{If}}}{{Dj{f}}}}{{HnI`}{{`{{Id{}{{Ib{{Dj{f}}}}}}}}}}{{HlI`}{{Dj{f}}}}{{HnI`{Bf{If}}}{{`{{Id{}{{Ib{{Dj{f}}}}}}}}}}{{HlI`{Bf{If}}}{{Dj{f}}}}{{HncHj}{{`{{Id{}{{Ib{{Dj{{`{{Af{}{{Ab{Ih}}}}}}}}}}}}}}}Ij}{{HlcHj}{{Dj{{`{{Af{}{{Ab{Ih}}}}}}}}}Ij}{{HncHj}{{`{{Id{}{{Ib{{Dj{{`{{Af{}{{Ab{Ih}}}}}}}}}}}}}}}{IjIl}}{{HlcHj}{{Dj{{`{{Af{}{{Ab{Ih}}}}}}}}}{IjIl}}{{HncHj{Bf{If}}}{{`{{Id{}{{Ib{{Dj{{`{{Af{}{{Ab{Ih}}}}}}}}}}}}}}}{IjIl}}{{HlcHj{Bf{If}}}{{Dj{{`{{Af{}{{Ab{Ih}}}}}}}}}{IjIl}}105410`{{}In}``````{{cb}d{}}{J`I`}{{{Jb{c}}}{{Jd{c{Bl{Gf}}}}}{JfJhJjJl}}{ce{}{}}00000{AnAn}{{ce}d{}{}}{{J`J`}l}{{ce}l{}{}}`{{J`J`}Ah}{{AnAn}Ah}{{ce}Ah{}{}}00000{{J`Aj}{{n{dAl}}}}{{J`Aj}Db}{{AnAj}Db}{{{Jb{c}}Aj}DbJn}{cc{}}0{{{Jb{J`}}}An}0{An{{Jb{J`}}}}2{{{Bf{K`}}}{{Dj{An}}}}{{{Bf{K`}}}{{Dj{{Jb{c}}}}}{JfJhJjJl}}{{Cje}{{Jb{c}}}{JfJhJjJl}{{Af{}{{Ab{{Bh{cGf}}}}}}}}{Hd{{Dj{An}}}}{Hd{{Dj{{Jb{c}}}}}{JfJhJjJl}}7{I`{{n{J`c}}}{}}{{Cjc}{{Dj{{Jb{e}}}}}{{Af{}{{Ab{Gf}}}}}{JfJhJjJl}}{I`{{Dj{Cj}}}}{{J`c}dKb}{ce{}{}}00{{InCjI`}{{Dj{{Jb{c}}}}}{JfJhJjJl}}{{InI`}{{Dj{{Jb{c}}}}}{JfJhJjJl}}{{Cj{Bd{Hb}}{Kd{Ad}}}An}{{{Jb{c}}}Cj{JfJhJjJl}}`{{J`J`}{{Bd{l}}}}`{{AnI`Hh}{{Dj{{`{{Af{}{{Ab{K`}}}}}}}}}}{{{Jb{c}}I`Hh}{{Dj{{`{{Af{}{{Ab{K`}}}}}}}}}{JfJhJjJl}}7{{AnH`Hh}{{Dj{Hd}}}}{{{Jb{c}}H`Hh}{{Dj{Hd}}}{JfJhJjJl}}{cGf{}}{CjGf}?{c{{n{e}}}{}{}}00000{cC`{}}00===````````````````````````````````````````````````````{{cb}d{}}00000000000{DfKf}{DhKh}{DhKj}{{Dff}{{Dj{d}}}}{{DffI`}{{Dj{d}}}}```{{KlAh}Kl}{Kn{{Dj{{Bl{Ed}}}}}}{{L`{Bl{{Bl{Ed}}}}}L`}{{L`Lb}{{Dj{Df}}}}{ce{}{}}000000000000000000000000000000000000000{Df{{Bh{Ad{Bd{Ad}}}}}}{{}L`}{{cg}{{Cl{i}}}{}{}{{Cn{}{{Ab{e}}}}}{{D`{}{{Ab{e}}}}}}0{DhDh}{LdLd}{LfLf}{LhLh}{DfDf}{LjLj}{LlLl}{LnLn}{BjBj}{M`M`}{MbMb}{MdMd}{{ce}d{}{}}00000000000{{DhLh{Bf{Ed}}}d}{{DfLh{Bf{Ed}}}{{Dj{d}}}}{Dh{{Bd{Lj}}}}{DhLj}{{LhLh}l}{{MbMb}l}{{MdMd}l}{{ce}l{}{}}00{{L`Hh}L`}{{Klc}Kl{MfMhMj}}{Dh{{G`{Ml}}}}`{{DfCj}{{Dj{Mn}}}}{{Dff{Bf{Ed}}}{{Dj{Dh}}}}{{DfCj{Bf{Ed}}}{{Dj{Dh}}}}{{DfCj}{{Bd{Bj}}}}{Df{{Bl{Bj}}}}{{KlDl}Kl}{{Kl{Bd{Dl}}}Kl}1{DhDl}{{}Kl}{{}Lh}{{}L`}{{}N`}{c{{n{Ll}}}A`}{c{{n{Ln}}}A`}{c{{n{Bj}}}A`}{c{{n{M`}}}A`}{DfNb}`{{L`{G`{Fj}}}L`}{Df{{Bd{Fj}}}}{{L`Hl}L`}{DfHl}{Ndd}{Nfd}{{KlAh}Kl}{{LdLd}Ah}{{LfLf}Ah}{{LhLh}Ah}{{LjLj}Ah}{{LlLl}Ah}{{LnLn}Ah}{{BjBj}Ah}{{M`M`}Ah}{{MbMb}Ah}{{MdMd}Ah}{{ce}Ah{}{}}00000000000000000000000000000{{Dh{Bf{Ed}}{Bf{Ed}}{Bf{Ed}}}{{n{dNh}}}}{Nf{{n{dLf}}}}{{DhAj}{{n{dAl}}}}{{NdAj}{{n{dAl}}}}{{LdAj}{{n{dAl}}}}0{{NfAj}{{n{dAl}}}}{{LfAj}{{n{dAl}}}}0{{KlAj}{{n{dAl}}}}{{LhAj}{{n{dAl}}}}0{{L`Aj}Db}{{DfAj}Db}{{LjAj}{{n{dAl}}}}0{{KfAj}Db}{{KnAj}Db}{{LlAj}Db}0{{LnAj}Db}{{BjAj}Db}{{M`Aj}Db}0{{MnAj}Db}{{NbAj}Db}{{MbAj}Db}{{MdAj}Db}0{cc{}}0{NjLd}{LjLd}222{LjLf}3{HhLh}{NlLh}{EdLh}{LbLh}777{NnLj}8{O`Lj}99999999999999999999995{If{{n{LhOb}}}}{IfLh}{Dh{{Dj{B`}}}}{Dh{{Bd{{G`{Od}}}}}}{Kn{{Dj{{G`{Od}}Lj}}}}{BjAh}{{Lhc}dKb}{{Mbc}dKb}{{Mdc}dKb}{Df{{Bd{Bb}}}}{NdNl}{NfNl}``{{KlLb}Kl}{{KlHj}Kl}{{L`Ah}L`}{ce{}{}}0000000000000000000{Kn{{Dj{{Bh{DhOf}}Kn}}}}{c{}{}}0{LhIf}33{NdAh}{{ce}{{Oh{g}}}{}OjId}0{{Kl{Bd{Hj}}}Kl}7{{L`{Bl{f}}}L`}`{Bj{{Bd{Hj}}}}``0```{Dh{{Bd{Ih}}}}{Kn{{Bd{Ih}}}}{{H`{Bl{{Bl{Ed}}}}{Ol{Kl}}Ah}{{Dj{On}}}}{{KlLh}Kl}0{Dh{{Bd{Dl}}}}{{Kl{Bd{A@`}}}Kl}{{KlHh}Kl}{{cg}{{Dd{ei}}}{}{}{{Cn{}{{Ab{e}}}}}{{D`{}{{Ab{e}}}}}}0{{KlLb}Kl}{{Kl{Bd{A@b}}}Kl}{Dfd}{Df{{Dj{f}}}}{DfCj}``{DhA@d}{DhA@f}8{{LhLh}{{Bd{l}}}}{{MbMb}{{Bd{l}}}}{{MdMd}{{Bd{l}}}}{Dh{{Bd{{G`{Od}}}}}}<{{{Dn{Kf}}E`}{{Eb{c}}}{}}{{{Dn{Kn}}E`}{{Eb{c}}}{}}{{{Dn{Nf}}E`}{{Eb{{n{dA@h}}}}}}{{{Dn{Mn}}E`}{{Eb{{Bd{c}}}}}{}}{{{Dn{Nb}}E`}{{Eb{{Bd{c}}}}}{}}{{{Dn{Nd}}E`A@j}{{Eb{{n{dA@h}}}}}}3{{{Dn{Nf}}E`{Bf{Ed}}}{{Eb{{n{DlA@h}}}}}}{Nf{{n{A@lA@n}}}}{L`L`}{{L`Hb}L`}{{cg}{{AA`{ei}}}{}{}{{Oj{}{{Ib{e}}}}}{{Id{}{{Ib{e}}}}}}0{{c{Eh{Efegi}}}{{Ej{kegi}}}{}El{EnF`}Fb{}}0{{c{Eh{Efegi}}Fd}{{Ej{kegi}}}{}El{EnF`}Fb{}}0{{Nd{Bf{Ed}}}{{n{{Bd{Dl}}Ld}}}}{{NdDlAh}{{n{{Bd{AAb}}Ld}}}}{{Nd{Bf{AAd}}}{{n{{Bd{Dl}}Ld}}}}{DhAAf}{{Nd{Bf{Ed}}}{{n{dAAh}}}}{{NdDl}{{n{{Bl{Ed}}AAj}}}}{{KlLh}Kl}{{L`N`}L`}``{DhAd}{KnAd}{{NfLh}{{n{dA@n}}}}{DhHj}{{L`H`}L`}{DfH`}{{DhAAd}{{n{dAAl}}}}{{KlIf}Kl}{{Llc}nBn}{{Lnc}nBn}{{Bjc}nBn}{{M`c}nBn}{{Df{Bl{{Bl{Ed}}}}}{{Dj{d}}}}{{DhLh}d}0{{NfA@l}{{n{dA@n}}}}1{Ld{{Bd{AAn}}}}{Lf{{Bd{AAn}}}}{Lj{{Bd{AAn}}}}{DhDl}{DhAB`}{{NdLh}{{n{dA@n}}}}{Nf{{n{LhABb}}}}{{KlLh}Kl}{{KlABd}Kl}{ce{}{}}00000000000{cGf{}}000000{{L`Kl}L`}{c{{n{e}}}{}{}}000000{ABf{{n{LhOb}}}}{Dl{{n{LhOb}}}}{If{{n{LhOb}}}}333333333333333333333333333333333{{{Dn{c}}E`}Eb{}}`{cC`{}}000000000000000000088888888888888888888{Df{{`{{D`{}{{Ab{Bb}}}}}}}}{DhABh}{{Nf{Bf{Ed}}}{{n{DlLf}}}}{{Nf{Bf{Ed}}}{{n{dLf}}}}{{Nf{Bf{AAd}}}{{n{dLf}}}}{{NfAAd}{{n{dLf}}}}{{Nf{Bf{AAd}}}{{n{ABjLf}}}}{{cg}{{Ff{i}}}{}{}{{Cn{}{{Ab{e}}}}}{{D`{}{{Ab{e}}}}}}0``````````{{cb}d{}}00{c{{ABl{eg}}}{}{}ABn}{B`{{AC`{Ed}}}}{B`{{Bf{Ed}}}}{ce{}{}}000000000{ACbACb}{B`B`}{H`H`}{{ce}d{}{}}00{{B`B`}l}{{ce}l{}{}}{c{{n{ACb}}}A`}{c{{n{B`}}}A`}{c{{n{H`}}}A`}{ce{}{{ACf{ACd}}}}0{{ACbACb}Ah}{{B`B`}Ah}{{ce}Ah{}{}}00000{{ACbAj}{{n{dAl}}}}000{{AChAj}{{n{dAl}}}}{{B`Aj}{{n{dAl}}}}0{{ACjAj}{{n{dAl}}}}0{{H`Aj}{{n{dAl}}}}0{B`Gf}{cc{}}{{{AC`{Ed}}}ACb}0{AClACb}2{ACnB`}33{AD`ACj}{ADbACj}5{{{AC`{Ed}}}H`}{ADdH`}6{{{AC`{Ed}}}{{n{B`ADb}}}}2{{{AC`{Ed}}{AC`{Ed}}}ACb}999{{{Bf{Ed}}}{{n{ACbADb}}}}{I`{{n{ACbADb}}}}{I`{{n{B`}}}}{I`{{n{H`}}}}{{}H`}{cH`{ADfADh}}{{B`c}dKb}{ce{}{}}0000{{AChADj}{{n{dADl}}}}{{B`B`}{{Bd{l}}}}{H`B`}{ACb{{AC`{Ed}}}}0{{AChADj}d}{{ACbc}nBn}{{B`c}nBn}{{H`c}nBn}{{H`B`}ACh}{{H`{Bf{Ed}}}ACb}{ACj{{Bd{AAn}}}}77{H`{{AC`{Ed}}}}{H`{{n{{ADn{Gf}}AE`}}}}==={cGf{}}000{ACb{{Bl{Ed}}}}{c{{n{{ABl{eg}}{AEb{e}}}}}{}{}ABn}{{{Bf{Ed}}}{{n{ACbADb}}}}{AEd{{n{ACbAE`}}}}0{c{{n{e}}}{}{}}0{{{AC`{Ed}}}{{n{B`}}}}1{{{Bf{Ed}}}{{n{B`}}}}2{{{Bf{Ed}}}{{n{H`}}}}3{c{{n{H`ADl}}}{{AEf{{Bf{Ed}}}}}}44444{cC`{}}0000{{B`{Bf{Ed}}ACb}{{n{dADb}}}}{ce{}{}}0000````{{cb}d{}}````````11{AEhAEh}{{ce}d{}{}}{{}AEh}{{AEhAj}Db}{cc{}}06{AEh{{AEj{{Bh{I`Od}}}}}}{{}I`}```````````````````````````````8??:`8````7{AElAEn}{{AF`Lb}{{Dj{AEl}}}}{c{{Dj{AEl}}}{{AFb{Ad}}}}1{Lb{{Dj{AEl}}}}000<<<<{AF`AF`}:{AElc{}}{AEld}{{AF`AF`}Ah}{{ce}Ah{}{}}00{{AF`Aj}Db}{{AElAj}Db}={IhAF`}{AFdAEl}??{ce{}{}}0`{AF`Ih}`1{c{{n{e}}}{}{}}000{cC`{}}0233`{{cb}d{}}44{AFfAFf}{{ce}d{}{}}{{}AFf}{{AFfAFf}Ah}==={{AFfAj}Db}{cc{}}0:{AFhAh}`4`;998;``7;;;;{AFjAFj}6{AFld}{{AFjAFj}Ah}{{ce}Ah{}{}}00{{AFjAj}Db}{{AFlAj}Db}777{{AFjc}dKb}{ce{}{}}0{AFl{{Dj{d}}}}{{}{{Dj{AFl}}}}{{AFlc}{{Dj{AFj}}}{{AG`{Ah}{{Ib{{AFn{d}}}}}}MjMh}}3{c{{n{e}}}{}{}}000{cC`{}}0{{AFlAFj}{{Dj{d}}}}66````{{cb}d{}}00077777777`{AGbAGb}{AGdAGd}{AGfAGf}{AGhAGh}{{ce}d{}{}}000{{}AGb}{{}AGd}{{}AGf}{{AGdAGd}Ah}{{AGfAGf}Ah}{{ce}Ah{}{}}00000{{AGbAj}Db}{{AGdAj}Db}0{{AGfAj}Db}{{AGhAj}Db}{cc{}}0000000{{AGhCf{Bd{{Ol{AEl}}}}{Bd{{Ol{AEl}}}}}{{Dj{{Ol{AGd}}}}}}{{AGhCf{Bd{{Ol{AEl}}}}{Bd{{Ol{AEl}}}}}{{Dj{{AGj{{Dj{{Ol{AGd}}}}}}}}}}`````{ce{}{}}000````{AGb{{AEj{{Bh{I`Od}}}}}}{AGf{{`{{Af{}{{Ab{{Bh{BbHj}}}}}}}}}}``{{}I`}{{{Bd{AGl}}Hl}{{Dj{AGh}}}}```{{AGhAAdAd}d}``````````5555{cGf{}}{c{{n{e}}}{}{}}0000000{cC`{}}000`8888````{{cb}d{}}9999{AGnAGn}{{ce}d{}{}}{{}AGn}{{AH`Aj}Db}0{{AGnAj}Db}{AHbAH`}{cc{}}{ADlAH`}11{ce{}{}}06{{AGnIh{Bf{Ed}}}{{Dj{HjAH`}}}}{AH`{{Bd{AAn}}}}2>====<<22`````;;;;{AHdAh}3333333333{AHfAHf}{AHdAHd}{AHhAHh}{AGlAGl}>>>>{AGld}{{}AHf}{{}AHh}{{}AGl}```{{AHdAHd}Ah}{{ce}Ah{}{}}00`{{AHfAj}Db}{{AHdAj}Db}0{{AHhAj}Db}{{AGlAj}Db}{{AHjAj}Db}{cc{}}00000000{ce{}{}}0000{AHf{{AEj{{Bh{I`Od}}}}}}```{{}I`}`{AHhAGl}```{AGl{{AGj{{Dj{AHdGf}}}}}}`{AGld}5555{cGf{}}{c{{n{e}}}{}{}}000000000{cC`{}}0000{{AGlAHl}d}`````99999{AGl{{AI`{{Bd{AHn}}}}}}````````````````````````````````````````````````{{cb}d{}}000000{{AIbc}AIb{{AG`{}{{Ib{{AFn{Ah}}}}}}MhMj}}<<<<<<<<<<<<<<<<<<<<{{AIbH`Hl}{{Bh{AIdAIf}}}}{{AIbAh}AIb}{BbBb}{AIhAIh}{AIjAIj}{AIdAId}{N`N`}{CfCf}{CdCd}{{ce}d{}{}}000000{AIhd}{AId{{n{dAIl}}}}0{{BbBb}l}{{CdCd}l}{{ce}l{}{}}0{AId{{n{{Bh{AIhDl}}AIl}}}}{{CfBb}Ah}{{BbLb}Cf}{Bb}{c{{n{Bb}}}A`}{c{{n{Cd}}}A`}{{}Cf}{{BbBb}Ah}{{AIhAIh}Ah}{{N`N`}Ah}{{CfCf}Ah}{{CdCd}Ah}{{ce}Ah{}{}}00000000000000{{BbAj}{{n{dAl}}}}0{{AIhAj}Db}{{AIjAj}Db}{{AIlAj}Db}0{{AIdAj}Db}{{AIfAj}Db}{{AIbAj}Db}{{N`Aj}Db}{{CfAj}Db}0{{CdAj}Db}0{cc{}}{HbBb}11{AInAIl}2{AJ`AIl}{A@hAIl}{AJbAIl}{AJdAIl}666666{c{{Dj{Cf}}}{{Cb{}{{Ab{Cd}}}}}}7777777{I`{{n{Bb}}}}{BbCf}{{CfBb}{{Bd{{Ol{Cd}}}}}}{{Bbc}dKb}`{{AIbAh}AIb}{ce{}{}}000000000{AIhAh}{AId{{n{AhAIl}}}}{CfAh}44{CfDl}{AIh{{Bd{Ad}}}}{AId{{Bd{Ad}}}}{cAIb{{AFb{Bb}}}}{Cf{{`{{Af{}{{Ab{{Ol{Cd}}}}}}}}}}{{AIhAh}{{Dj{d}}}}{{AIdAh}d}{{BbBb}{{Bd{l}}}}{{CdCd}{{Bd{l}}}}{AId{{n{HjAIl}}}}{{AIbAJf}AIb}{{AIbHb}AIb}{AIdB`}{AIf{{Bd{{n{{Bh{AIjDl}}AIl}}}}}}{N`Cf}{{AIhB`AAd}{{Dj{d}}}}{{AIdB`AAd}{{n{dAIl}}}}{{AIh{AC`{Ed}}}{{Dj{d}}}}0{{AId{AC`{Ed}}}{{n{dAIl}}}}{{Bbc}nBn}{{Cdc}nBn}`{{AIbB`}AIb}{{AIbc}AIb{{AFb{Bb}}}}{AIl{{Bd{AAn}}}}``{ce{}{}}000000{cGf{}}000{c{{n{e}}}{}{}}0000000000000000000{cC`{}}000000000`{Cf{{`{{Af{}{{Ab{Bb}}}}}}}}4444444444``````````{{cb}d{}}55{AJfAJf}{{ce}d{}{}}{{AJfAJf}Ah}{{ce}Ah{}{}}00{{AJfAj}Db}{cc{}}0;{AJh{{Bd{AJf}}}}<::9{AJfI`}=```````````````88{AJjd}{{AJlAJfAJn}{{Dj{d}}}}````??????????????????????``{{c{AK`{e}}}{}{}{}}{{AJl{AK`{AKb}}}c{}}`{{AJjAKd}AJl}{AJlAJl}{AKfAKf}==6{{}AKf}{{}{{AKh{ce}}}{AKjJn}{AKjJn}}{{}AKl}`````{{AJjAj}Db}{{AJlAj}Db}{{AKfAj}Db}{{AJnAj}Db}{{{AKh{ce}}Aj}Db{JnJn}{JnJn}}{{{AKn{ce}}Aj}Db{JnJn}{JnJn}}{{AL`Aj}Db}{{{ALb{ce}}Aj}Db{JnJn}{JnJn}}{{AKlAj}Db}{{{ALd{ce}}Aj}DbJnJn}{{ALfAj}Db}{cc{}}000000000000`{ALf{{Bd{Ad}}}}`0`{ce{}{}}0000000000{AJjAh}{AKf{{AEj{{Bh{I`Od}}}}}}`{AJj{{Bf{Ed}}}}`{{}I`}{H`AJj}```{{{Dn{AJn}}E`}{{Eb{{n{dA@h}}}}}}{{{Dn{AJn}}E`A@j}{{Eb{{ALh{d}}}}}}1{{{Dn{AJn}}E`{Bf{Ed}}}{{Eb{{n{DlA@h}}}}}}{{{Dn{AJn}}E`{Bf{ALj}}}{{Eb{{n{DlA@h}}}}}}{AJjB`}`{AJjH`}`````{ALf{{Dj{d}}}}{{{AKh{ce}}}{{Dj{ALf}}}JnJn}`>{ALf{{ALl{{Dj{d}}}}}}`>>{c{{n{e}}}{}{}}000000000000000000000{cC`{}}0000000000``{ce{}{}}0000000000````````````````````````````````````{{cb}d{}}00{ALn{{n{AM`AMb}}}}{c{{ABl{eg}}}{}{}ABn}{AMd{{AC`{Ed}}}}{ALn{{n{AMfAMb}}}}{ALn{{n{AMhAMb}}}}{ALn{{n{AMjAMb}}}}{ALn{{n{AMlAMb}}}}{ALn{{n{AMnAMb}}}}{ALn{{n{AN`AMb}}}}{ALn{{n{ANbAMb}}}}{ALn{{n{ANdAMb}}}}{ALn{{n{ANfAMb}}}}{AMd{{Bf{Ed}}}}{ALn{{n{ANhAMb}}}}{ALn{{n{ANjAMb}}}}{ALn{{n{ANlAMb}}}}{ALn{{n{ANnAMb}}}}{ALn{{n{AO`AMb}}}}{ALn{{n{AObAMb}}}}{ALnAOd}{ce{}{}}00000000000{AOfAOf}{AOhAOh}{AMdAMd}{{ce}d{}{}}00{{AMdAMd}l}{{ce}l{}{}}{{AOf{Bf{Ed}}}{{n{{Bh{AOjDl}}AOl}}}}{{}AOf}{{}AMd}{AMd{{Bf{Ed}}}}{ce{}{{ACf{ACd}}}}0{{AOhAOh}Ah}{{AMdAMd}Ah}{{ce}Ah{}{}}00000{ALnAM`}{ALnAMf}{ALnAMh}{ALnAMj}{ALnAMl}{ALnAMn}{ALnAN`}{ALnANb}{ALnANd}{ALnANf}{ALnANh}{ALnANj}{ALnANl}{ALnANn}{ALnAO`}{ALnAOb}{{AOfAj}{{n{dAl}}}}{{AOhAj}{{n{dAl}}}}{{AMdAj}{{n{dAl}}}}0{{ALnAj}{{n{dAl}}}}{{AOlAj}{{n{dAl}}}}0{{AOnAj}Db}0{cc{}}0{{{AC`{Ed}}}AMd}10{ANbALn}{AMhALn}{AO`ALn}{AObALn}5{AMfALn}{ANfALn}{ANnALn}{AMlALn}{AMnALn}{AN`ALn}{ANdALn}{ANhALn}{ANjALn}{AMjALn}{ANlALn}{AM`ALn}{cc{}}0000{AOf{{Bd{B@`}}}}{{AMdc}dKb}{ce{}{}}00000{{{Bf{Ed}}}Ah}{ALnAh}000000000000000`{{{Bf{Ed}}}{{n{AMdAOn}}}}{{{Bf{Ed}}}{{n{{Bh{AMdAd}}AOn}}}}{{AMdAMd}{{Bd{l}}}}{AMd{{Bl{Ed}}}}{{AMdAd}{{Bl{Ed}}}}777{cGf{}}00{c{{n{{ABl{eg}}{AEb{e}}}}}{}{}ABn}{c{{n{e}}}{}{}}{Ed{{n{AOh}}}}11111111111{cC`{}}00000<<<<<<`````<<<<{Ad{{Dj{In}}}}{{B@bH`}{{G`{Fh}}}}{B@bHl}{{B@dAj}Db}{{B@bAj}Db}{cc{}}0{ce{}{}}0``{{B@bCjHj}{{Dj{d}}}}`{{}{{Dj{B@b}}}}{{}{{Dj{{Bh{CfBbALf}}}}}}{Gf{{Dj{B@b}}}}====;;44`{{cb}d{}}55{B@fB@f}{{ce}d{}{}}{c{{n{B@f}}}A`}{{B@fB@f}Ah}{{ce}Ah{}{}}00{{B@fAj}{{n{dAl}}}}0<{{{Bf{Ed}}}{{n{B@fB@h}}}}={I`{{n{B@f}}}}={f{{n{B@fADl}}}}{B@ff}{{B@fc}nBn}{B@f{{Bl{Ed}}}}{ce{}{}}{cGf{}}{c{{n{e}}}{}{}}0{cC`{}}3`{{H`{Bd{B`}}{Bl{{Bl{Ed}}}}Ah}{{n{B@jB@l}}}}{{H`{Bl{{Bl{Ed}}}}Ah}{{n{B@nB@l}}}}`````5555555555{{BA`Aj}Db}{{BAbAj}Db}{{B@lAj}Db}0{{BAdAj}Db}0{{BAfAj}Db}0{cc{}}00{BAhB@l}1{BAjBAd}2{BAjBAf}{H`{{n{{Bh{BAlBAn}}B@l}}}}?????{BAl{{n{BA`BAd}}}}{BA`B`}{B@l{{Bd{AAn}}}}{BAd{{Bd{AAn}}}}{BAf{{Bd{AAn}}}}{cGf{}}00{c{{n{e}}}{}{}}000000000{cC`{}}0000{{BA`BB`{Bf{Ed}}{Bf{Ed}}}{{n{dBAf}}}}{ce{}{}}0000````{{cb}d{}}11111111`{{{BBb{c}}}{{BBb{c}}}{IlIlMh}}{{ce}d{}{}}{{}{{BBd{c}}}{}}{{{ALl{c}}}e{}{}}{{{ALl{c}}}d{}}{{{BBb{c}}}d{IlMh}}{BBfd}{{{ALl{c}}Aj}DbJn}{{{BBb{c}}Aj}Db{JnIlMh}}{{BBfAj}Db}{{{BBd{c}}Aj}DbJn}{{{BBh{c}}}{{ALl{c}}}{}}{cc{}}{{{BBh{c}}}{{BBb{c}}}{IlMh}}1111`????{c{}{}}00{{ce}{{Oh{g}}}{}OjId}00{{I`BBj}BBf}{{{Dn{{ALl{c}}}}E`}{{Eb{e}}}{}{}}{{{Dn{{BBb{c}}}}E`}{{Eb{e}}}{IlMh}{}}{{{Dn{{BBd{c}}}}E`}{{Eb{e}}}{IdBBl}{}}{{cg}{{AA`{ei}}}{}{}{{Oj{}{{Ib{e}}}}}{{Id{}{{Ib{e}}}}}}00{ce{}{}}{c{{n{e}}}{}{}}0000000{{{Dn{c}}E`}Eb{}}00{cC`{}}0003333`33{{ce}{{BBn{ce}}}BC`BC`}{{{Dn{{BBn{ce}}}}Dl}dBCbBCb}{{{BBn{ce}}Aj}DbJnJn}?{{{BBn{ce}}}{{Bh{ce}}}BC`BC`}{{{Dn{{BBn{ce}}}}}{{Bh{{Dn{c}}{Dn{e}}}}}BC`BC`}181{{{Dn{{BBn{ce}}}}E`}{{Eb{{ALh{{Bf{Ed}}}}}}}BCbBCb}{{{Dn{{BBn{ce}}}}E`A@j}{{Eb{{ALh{d}}}}}BC`BC`}997:","D":"GEn","p":[[5,"Private",2365],[1,"unit"],[5,"NodeAddr",0,2366],[6,"AddrInfoOptions",2366],[5,"AddrInfo",0,2366],[6,"Ordering",2367],[6,"Result",2368],[10,"Deserializer",2369],[17,"Item"],[6,"SocketAddr",2370],[10,"Iterator",2371],[1,"bool"],[5,"Formatter",2372],[5,"Error",2372],[5,"NodeInfo",283],[5,"PublicKey",905,2373],[5,"RelayUrl",1462,2366],[6,"Option",2374],[1,"slice"],[1,"tuple"],[5,"ConnectionInfo",361],[5,"Vec",2375],[10,"Serializer",2376],[5,"TypeId",2377],[10,"IntoIterator",2378],[5,"RelayNode",1462,2379],[5,"RelayMap",1462,2379],[5,"Dialer",104],[8,"NodeId",0,2373],[5,"Chain2",2380],[10,"IntoStream",2381],[10,"Stream",2382],[8,"Result",2372],[5,"Merge2",2383],[5,"Endpoint",361],[5,"Connection",361,2384],[8,"Result",2385],[1,"usize"],[5,"Pin",2386],[5,"Context",2387],[6,"Poll",2388],[1,"u8"],[6,"NotKeyed",2389],[5,"RateLimiter",2390],[5,"RatelimitedStream",2391],[10,"DirectStateStore",2389],[10,"Clock",2392],[10,"ReasonablyRealtime",2393],[10,"RateLimitingMiddleware",2394],[5,"Jitter",2395],[5,"Zip2",2396],[5,"ConcurrentDiscovery",127],[10,"Discovery",127],[5,"DiscoveryItem",127],[5,"Peer",2397],[5,"Box",2398],[8,"Boxed",2399],[5,"DnsDiscovery",169],[5,"String",2400],[5,"LocalSwarmDiscovery",184],[5,"PkarrPublisher",197],[5,"PkarrResolver",197],[5,"PkarrRelayClient",197],[5,"SecretKey",905,2373],[5,"Url",2401],[5,"SignedPacket",2402],[8,"BoxStream",2382],[1,"u32"],[5,"Duration",2403],[8,"DnsResolver",258],[10,"ResolverExt",258],[1,"str"],[17,"Output"],[10,"Future",2404],[1,"u64"],[6,"IpAddr",2405],[10,"IntoName",2406],[10,"Clone",2407],[8,"TokioAsyncResolver",2408],[6,"IrohAttr",283],[5,"TxtAttrs",283],[5,"BTreeMap",2409],[10,"FromStr",2410],[10,"Display",2372],[10,"Hash",2411],[10,"Ord",2367],[10,"Debug",2372],[5,"Record",2412],[10,"Hasher",2411],[5,"BTreeSet",2413],[5,"Accept",361],[5,"AcceptBi",2384],[5,"AcceptUni",2384],[5,"TransportConfig",361,2414],[5,"Connecting",361],[5,"Builder",361],[1,"u16"],[6,"ReadError",361,2415],[6,"WriteError",361,2416],[5,"VarInt",361,2417],[6,"ConnectionError",361,2418],[6,"ControlMsg",361,2419],[5,"DirectAddrInfo",361,2419],[6,"ConnectionType",361,2419],[5,"DirectAddr",361,2420],[6,"DirectAddrType",361,2420],[10,"ControllerFactory",2421],[10,"Send",2422],[10,"Sync",2422],[10,"Controller",2421],[5,"ConnectionTypeStream",361,2423],[6,"RelayMode",1462,2379],[5,"DirectAddrsStream",361,2420],[5,"RecvStream",361,2415],[5,"SendStream",361,2416],[5,"ExportKeyingMaterialError",2424],[6,"ReadableError",2425],[5,"StreamId",2426],[5,"Error",2427],[6,"Close",2428],[5,"VarIntBoundsExceeded",2417],[10,"Any",2377],[5,"ZeroRttAccepted",2384],[5,"Join2",2429],[10,"IntoFuture",2430],[5,"Arc",2431],[5,"ServerConfig",2414],[5,"IdleTimeout",2414],[5,"MtuDiscoveryConfig",2414],[5,"OpenBi",2384],[5,"OpenUni",2384],[5,"Error",2432],[5,"ReadBuf",2433],[1,"i32"],[5,"UnknownStream",2384],[5,"Race2",2434],[5,"Chunk",2435],[5,"Bytes",2436],[5,"ReadDatagram",2384],[6,"ReadExactError",2415],[6,"ReadToEndError",2415],[6,"SendDatagramError",2384],[10,"Error",2437],[5,"ConnectionStats",2438],[6,"StoppedError",2416],[1,"f32"],[1,"u128"],[5,"WeakConnectionHandle",2384],[5,"Written",2439],[5,"BitSlice",2440],[10,"BitOrder",2441],[1,"array"],[5,"Signature",905,2442],[1,"char"],[10,"FromIterator",2378],[5,"SharedSecret",905,2443],[6,"KeyParsingError",905,2373],[5,"InternalSignature",2444],[5,"VerifyingKey",2445],[6,"HexOrBase32ParseError",2446],[5,"Error",2447],[5,"SigningKey",2448],[10,"CryptoRngCore",2449],[10,"Sized",2422],[10,"Buffer",2450],[5,"Error",2385],[5,"Zeroizing",2451],[6,"Error",2452],[6,"BitSpanError",2453],[5,"Signature",2454],[10,"AsRef",2455],[5,"MagicsockMetrics",1049],[5,"IntoIter",2456],[5,"UdpSocket",1110,2457],[5,"BorrowedFd",2458],[6,"IpFamily",1110,2459],[10,"Into",2455],[5,"UdpSocket",2460],[5,"LocalAddresses",1157],[5,"Ipv6Addr",2405],[5,"CallbackToken",1181,2461],[5,"Monitor",1181],[8,"Boxed",2462],[10,"Fn",2463],[5,"Metrics",1216,2464],[5,"Report",1216],[5,"RelayLatencies",1216],[5,"Client",1216],[5,"Receiver",2465],[5,"Client",1357],[5,"Pinger",1322],[6,"PingError",1322],[6,"SurgeError",2466],[5,"ProbeOutput",1357],[5,"Metrics",1357,2467],[5,"Config",1357],[5,"Service",1357],[8,"NonZeroU16",2468],[5,"SocketAddrV4",2370],[5,"Receiver",2469],[5,"HttpClientBuilder",1462],[5,"HttpClient",1462],[5,"HttpClientReceiver",1462],[5,"RelayConn",1462],[6,"ReceivedMessage",1462,2470],[6,"HttpClientError",1462],[5,"Error",2471],[6,"Error",2472],[5,"Error",2473],[5,"JoinError",2474],[6,"Protocol",1733],[5,"HeaderValue",2475],[5,"ServerActorTask",1758,2476],[5,"ClientConnHandler",1758,2476],[6,"MaybeTlsStreamServer",1758],[5,"Request",2477],[5,"Incoming",2478],[5,"HeaderMap",2479],[5,"Metrics",1758,2480],[5,"ServerConfig",1758],[10,"Default",2481],[5,"Limits",1758],[5,"RelayConfig",1758],[5,"StunConfig",1758],[5,"TlsConfig",1758],[6,"CertConfig",1758],[5,"Server",1758],[8,"Result",2432],[5,"IoSlice",2482],[5,"AbortingJoinHandle",2277],[6,"StunAttribute",1943,2483],[5,"AlternateServer",2484],[5,"StunError",2485],[5,"TransactionId",1943,2486],[5,"ErrorCode",2487],[6,"Fingerprint",2488],[5,"MappedAddress",2489],[6,"MessageIntegrity",2490],[6,"MessageIntegritySha256",2491],[5,"Nonce",2492],[5,"PasswordAlgorithm",2493],[5,"PasswordAlgorithms",2494],[5,"Realm",2495],[5,"Software",2496],[5,"Unknown",2497],[5,"UnknownAttributes",2498],[5,"UserHash",2499],[5,"UserName",2500],[5,"XorMappedAddress",2501],[5,"AttributeType",2483],[5,"MessageDecoder",1943,2502],[6,"MessageClass",1943,2503],[5,"StunMessage",2503],[5,"StunDecodeError",1943,2485],[6,"Error",1943],[5,"DecoderContext",2502],[5,"DnsPkarrServer",2150,2504],[5,"CleanupDropGuard",2150],[5,"NodeTicket",2180,2505],[6,"Error",2506],[5,"ClientConfig",2507],[5,"GenError",2211],[5,"ServerConfig",2508],[5,"P2pCertificate",2211],[5,"P2pExtension",2211],[5,"ParseError",2211],[5,"VerificationError",2211],[6,"Error",2509],[6,"Error",2510],[5,"Certificate",2511],[5,"PrivateKey",2511],[6,"SignatureScheme",2512],[5,"SharedAbortingJoinHandle",2277],[5,"MaybeFuture",2277],[5,"CancelOnDrop",2277],[5,"JoinHandle",2513],[5,"AbortHandle",2514],[10,"Unpin",2422],[5,"Chain",2347],[10,"AsyncRead",2515],[10,"AsyncBufRead",2516],[15,"ReceivedPacket",1728],[15,"Health",1728],[15,"ServerRestarting",1728],[15,"Manual",1940],[15,"LetsEncrypt",1940]],"r":[[0,2366],[1,361],[2,2366],[3,2373],[54,2517],[362,2366],[367,2384],[369,2418],[373,2419],[374,2423],[375,2419],[377,2420],[378,2419],[379,2420],[380,2420],[388,2366],[393,2415],[394,2415],[398,2416],[403,2414],[408,2417],[410,2416],[908,2373],[909,2373],[910,2518],[911,2373],[912,2373],[913,2443],[914,2442],[1110,2459],[1111,2457],[1181,2461],[1217,2464],[1359,2467],[1484,2519],[1495,2470],[1498,2379],[1499,2379],[1500,2379],[1502,2366],[1759,2476],[1764,2480],[1768,2476],[1953,2503],[1954,2502],[1966,2483],[1967,2485],[1969,2486],[2109,2520],[2147,2521],[2148,2521],[2149,2521],[2151,2504],[2156,2522],[2180,2505]],"b":[[40,"impl-From%3CNodeInfo%3E-for-NodeAddr"],[41,"impl-From%3C(PublicKey,+Option%3CRelayUrl%3E,+%26%5BSocketAddr%5D)%3E-for-NodeAddr"],[42,"impl-From%3CPublicKey%3E-for-NodeAddr"],[44,"impl-From%3CNodeInfo%3E-for-NodeAddr"],[311,"impl-Display-for-IrohAttr"],[312,"impl-Debug-for-IrohAttr"],[317,"impl-From%3C%26TxtAttrs%3CIrohAttr%3E%3E-for-NodeInfo"],[318,"impl-From%3CTxtAttrs%3CIrohAttr%3E%3E-for-NodeInfo"],[589,"impl-Display-for-ReadError"],[590,"impl-Debug-for-ReadError"],[592,"impl-Display-for-WriteError"],[593,"impl-Debug-for-WriteError"],[595,"impl-Debug-for-VarInt"],[596,"impl-Display-for-VarInt"],[599,"impl-Display-for-ConnectionError"],[600,"impl-Debug-for-ConnectionError"],[603,"impl-Debug-for-ControlMsg"],[604,"impl-Display-for-ControlMsg"],[607,"impl-Debug-for-ConnectionType"],[608,"impl-Display-for-ConnectionType"],[612,"impl-Display-for-DirectAddrType"],[613,"impl-Debug-for-DirectAddrType"],[616,"impl-From%3CReadableError%3E-for-ReadError"],[617,"impl-From%3CConnectionError%3E-for-ReadError"],[623,"impl-From%3Cu32%3E-for-VarInt"],[624,"impl-From%3CStreamId%3E-for-VarInt"],[625,"impl-From%3Cu8%3E-for-VarInt"],[626,"impl-From%3Cu16%3E-for-VarInt"],[630,"impl-From%3CError%3E-for-ConnectionError"],[632,"impl-From%3CClose%3E-for-ConnectionError"],[818,"impl-TryFrom%3Cu128%3E-for-VarInt"],[819,"impl-TryFrom%3Cusize%3E-for-VarInt"],[820,"impl-TryFrom%3Cu64%3E-for-VarInt"],[952,"impl-UpperHex-for-Signature"],[953,"impl-LowerHex-for-Signature"],[954,"impl-Display-for-Signature"],[955,"impl-Debug-for-Signature"],[957,"impl-Display-for-PublicKey"],[958,"impl-Debug-for-PublicKey"],[959,"impl-Display-for-KeyParsingError"],[960,"impl-Debug-for-KeyParsingError"],[961,"impl-Display-for-SecretKey"],[962,"impl-Debug-for-SecretKey"],[965,"impl-From%3C%26%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[966,"impl-From%3C%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[967,"impl-From%3CInternalSignature%3E-for-Signature"],[972,"impl-From%3CHexOrBase32ParseError%3E-for-KeyParsingError"],[973,"impl-From%3CError%3E-for-KeyParsingError"],[975,"impl-From%3C%5Bu8;+32%5D%3E-for-SecretKey"],[976,"impl-From%3CSigningKey%3E-for-SecretKey"],[1008,"impl-SignatureEncoding-for-Signature"],[1009,"impl-Signature"],[1021,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-Signature"],[1022,"impl-TryFrom%3C%26Signature%3E-for-Signature"],[1023,"impl-TryFrom%3CSignature%3E-for-Signature"],[1026,"impl-TryFrom%3C%26%5Bu8;+32%5D%3E-for-PublicKey"],[1028,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-PublicKey"],[1253,"impl-Debug-for-Report"],[1254,"impl-Display-for-Report"],[1334,"impl-Debug-for-PingError"],[1335,"impl-Display-for-PingError"],[1337,"impl-From%3CSurgeError%3E-for-PingError"],[1339,"impl-From%3CError%3E-for-PingError"],[1398,"impl-Display-for-ProbeOutput"],[1399,"impl-Debug-for-ProbeOutput"],[1588,"impl-Display-for-RelayUrl"],[1589,"impl-Debug-for-RelayUrl"],[1592,"impl-Debug-for-ClientError"],[1593,"impl-Display-for-ClientError"],[1598,"impl-Display-for-RelayMap"],[1599,"impl-Debug-for-RelayMap"],[1600,"impl-Debug-for-RelayNode"],[1601,"impl-Display-for-RelayNode"],[1606,"impl-From%3CError%3E-for-ClientError"],[1608,"impl-From%3CError%3E-for-ClientError"],[1609,"impl-From%3CError%3E-for-ClientError"],[1610,"impl-From%3CError%3E-for-ClientError"],[1611,"impl-From%3CJoinError%3E-for-ClientError"],[2050,"impl-Debug-for-TransactionId"],[2051,"impl-Display-for-TransactionId"],[2053,"impl-Debug-for-StunDecodeError"],[2054,"impl-Display-for-StunDecodeError"],[2055,"impl-Display-for-Error"],[2056,"impl-Debug-for-Error"],[2059,"impl-From%3C%5Bu8;+stun_rs::::types::%7Bimpl%2314%7D::%7Bconstant%230%7D%5D%3E-for-TransactionId"],[2061,"impl-From%3C%26%5Bu8;+stun_rs::::types::%7Bimpl%2313%7D::%7Bconstant%230%7D%5D%3E-for-TransactionId"],[2062,"impl-From%3CPasswordAlgorithm%3E-for-StunAttribute"],[2063,"impl-From%3CFingerprint%3E-for-StunAttribute"],[2064,"impl-From%3CUserName%3E-for-StunAttribute"],[2065,"impl-From%3CXorMappedAddress%3E-for-StunAttribute"],[2067,"impl-From%3CErrorCode%3E-for-StunAttribute"],[2068,"impl-From%3CRealm%3E-for-StunAttribute"],[2069,"impl-From%3CUserHash%3E-for-StunAttribute"],[2070,"impl-From%3CMessageIntegrity%3E-for-StunAttribute"],[2071,"impl-From%3CMessageIntegritySha256%3E-for-StunAttribute"],[2072,"impl-From%3CNonce%3E-for-StunAttribute"],[2073,"impl-From%3CPasswordAlgorithms%3E-for-StunAttribute"],[2074,"impl-From%3CSoftware%3E-for-StunAttribute"],[2075,"impl-From%3CUnknown%3E-for-StunAttribute"],[2076,"impl-From%3CMappedAddress%3E-for-StunAttribute"],[2077,"impl-From%3CUnknownAttributes%3E-for-StunAttribute"],[2078,"impl-From%3CAlternateServer%3E-for-StunAttribute"],[2191,"impl-Display-for-NodeTicket"],[2192,"impl-Debug-for-NodeTicket"],[2228,"impl-Display-for-GenError"],[2229,"impl-Debug-for-GenError"],[2230,"impl-Debug-for-ParseError"],[2231,"impl-Display-for-ParseError"],[2232,"impl-Display-for-VerificationError"],[2233,"impl-Debug-for-VerificationError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAI4FxwACAAAABQABAAkADAAXAAEAHwAMAC0AAAAvAAAAMQABAD0AAQBEAAEASgAHAFMAAQBrAAMAcQAAAHMAAAB3AAAAeQAGAIMAAACGAAYAjwABAJIAAQCVAAAAngAAAKAACQCtAAIAtAAEALoAAgDAAAUAzQASAOMAAgDuAAAA8AAAAPIACwD/AAIADwEAABcBAAAiAQEAJQEJADABCwA+AQIARwEBAEsBAABUAQAAWAEAAFsBAABdAQwAngELALYBJwDgARkA/gEFABECAgAVAgMAHwIBACICJwBMAhoAaQIBAG4CAABwAgMAdwIAAHkCAACEAgsAlwICALcCAQC6AgEAvQIBANICAQDeAgIA4wIHAO4CBQAGAwMADwMCABgDEgAsAwYANgMhAFkDJwCIAwEAlAMDAJkDKgDGAwIAygMAAM0DAQDQAwEA1gMCANoDAgDfAwAA5gMAAOsDAgDwAwEA9QMGAP0DCwAKBAkAFQQEABsEEQAuBAAAMAQBADYEAwA7BBsAWwQBAGQEDQBzBAEAdgQAAHwEBgCEBAEAhwQKAJMEAACZBAQAoAQNALAEAQC3BAYAvwQBAMUECwDSBBcA7gQDAAEFAAAFBQAADgUXACcFAwAvBQsAPAUAAD4FAABDBQoAUwUDAFgFEQBrBQAAbQUAAHEFCgCBBQMAigUEAJIFAQCVBQAAlwUTAK0FCADnBQYA7wUTAAUGDQAWBgMAHQYCACEGIQBEBgAARwYAAEkGAwBUBgcAXgYAAHcGAQCEBgEAiQYAAIwGKAC3BgkAywYJANYGAADZBgMA3gYAAO4GAQD2BhUADgcBABIHAwAXBwIAHwcKADUHAQBIBwAATAcAAFEHBABkByIAiQcKALgHAgC8BwAAxwcAAM8HEwDkBwAA5gcKAAEICAAMCAAADggEABQICwAiCAIAJggAAEEIAABECB8AaQgDAHAIAQB9CAcAhggLAJMIAgCZCAcAqQgRAL4IAADACAAAwggAAMsIFADhCAQA6ggIAPQICwABCQAABQkAAAsJBQASCRkALQkBADAJAQA4CQUA"}],\ +["iroh_net",{"t":"FEFINNNNNNNNNNNNNNNNNCNNCNOCCCNNNNNNNNNNNNNNNNNNNNONNNCCCCNONNCCCNONNCCCCNNNNNNNNCNNNNSSSSCCSSSHHHHSSHHHFNNNNNNNNNNNNNNNNNNNNNNFKFNNONNNNNNNCNNNNNNNNNNNOCCONNNNNNNNNNNNNFSSNNNNNNNNNNNNFNNNNNNNNNNNNSSSSFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIKHMNMNMNMNMNMNMNMNMNMNCHPSGFPFNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNONONNNNNNHNNNNNNNNNNNNNFFPFPFFPGFPPGFGPFFGFFPPPTTPFPPPPGFPPPFPPPPFPPPPFPGPPNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNHNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOONOOONNHNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTPPGISFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFEEENOOOOOOOONNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNONGFPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNCNNNNNNNNNNFNNNNNNNNNNNNNNHONONNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNOOOONNOONNOOONOOOOOOOOOONNNNNNNNNNNNNNNNNONNNNPPGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNONNNNNNNNNNNNNNNNNNNNNOOONONOOONONNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNPPPPPPPPPPPPPPFFGFPPPPSPPPPPPPPPPGPFFGFPFPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNOOOOOGSSPPNNNNNNNNNNNNNNNNNNNNGFPFPGFPFFFFFPFNNNNOOOONNNNNNNNNNNNNNNNNNNNNNOONNONNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNONONONNNNNNNNNNNNNONONNOOONNNNNNONOOOOONNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNOOOOPGPPPPPPPPGFPPPPPPPPPPPGFPFPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNCHHNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSFFNNNNHNNNNNNNNOONONHNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNCHHFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNCNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNHNNNNNNNNNNNNNN","n":["AddrInfo","Endpoint","NodeAddr","NodeId","__clone_box","__clone_box","apply_options","apply_options","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","compare","compare","default","defaults","deserialize","deserialize","dialer","direct_addresses","direct_addresses","discovery","dns","endpoint","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from","from","from","from_parts","from_ref","from_ref","info","into","into","is_empty","key","metrics","net","netcheck","new","node_id","partial_cmp","partial_cmp","ping","portmapper","relay","relay_url","relay_url","serialize","serialize","stun","test_utils","ticket","tls","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","util","vzip","vzip","with_direct_addresses","with_relay_url","DEFAULT_HTTPS_PORT","DEFAULT_HTTP_PORT","DEFAULT_METRICS_PORT","DEFAULT_STUN_PORT","prod","staging","AP_RELAY_HOSTNAME","EU_RELAY_HOSTNAME","NA_RELAY_HOSTNAME","default_ap_relay_node","default_eu_relay_node","default_na_relay_node","default_relay_map","EU_RELAY_HOSTNAME","NA_RELAY_HOSTNAME","default_eu_relay_node","default_na_relay_node","default_relay_map","Dialer","abort_dial","borrow","borrow_mut","chain","fmt","from","into","into_stream","is_pending","merge","new","next_conn","pending_count","poll_next","queue_dial","ratelimit_stream","ratelimit_stream_with_jitter","try_from","try_into","type_id","vzip","zip","ConcurrentDiscovery","Discovery","DiscoveryItem","__clone_box","add","addr_info","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","dns","empty","fmt","fmt","from","from","from","from","from_ref","from_services","into","into","last_updated","local_swarm_discovery","pkarr","provenance","publish","publish","resolve","resolve","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","DnsDiscovery","N0_DNS_NODE_ORIGIN_PROD","N0_DNS_NODE_ORIGIN_STAGING","borrow","borrow_mut","fmt","from","into","n0_dns","new","resolve","try_from","try_into","type_id","vzip","LocalSwarmDiscovery","borrow","borrow_mut","fmt","from","into","new","publish","resolve","try_from","try_into","type_id","vzip","DEFAULT_PKARR_TTL","DEFAULT_REPUBLISH_INTERVAL","N0_DNS_PKARR_RELAY_PROD","N0_DNS_PKARR_RELAY_STAGING","PkarrPublisher","PkarrRelayClient","PkarrResolver","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","drop","fmt","fmt","fmt","from","from","from","from_ref","from_ref","from_ref","into","into","into","n0_dns","n0_dns","new","new","new","publish","publish","resolve","resolve","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_addr_info","vzip","vzip","vzip","with_options","DnsResolver","ResolverExt","default_resolver","lookup_by_id","lookup_by_id","lookup_by_id_staggered","lookup_by_id_staggered","lookup_by_name","lookup_by_name","lookup_by_name_staggered","lookup_by_name_staggered","lookup_ipv4","lookup_ipv4","lookup_ipv4_ipv6","lookup_ipv4_ipv6","lookup_ipv4_ipv6_staggered","lookup_ipv4_ipv6_staggered","lookup_ipv4_staggered","lookup_ipv4_staggered","lookup_ipv6","lookup_ipv6","lookup_ipv6_staggered","lookup_ipv6_staggered","node_info","resolver","Addr","IROH_TXT_NAME","IrohAttr","NodeInfo","Relay","TxtAttrs","__clone_box","as_ref","attrs","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","cmp","compare","direct_addresses","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_hickory_records","from_hickory_records","from_parts","from_pkarr_signed_packet","from_pkarr_signed_packet","from_ref","from_str","from_strings","from_z32","hash","into","into","into","lookup_by_id","lookup_by_name","new","node_id","node_id","partial_cmp","relay_url","to_hickory_records","to_hickory_records","to_owned","to_pkarr_signed_packet","to_pkarr_signed_packet","to_string","to_z32","try_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Accept","AddrInfo","ApplicationClosed","Builder","CallMeMaybe","Connecting","Connection","ConnectionClosed","ConnectionError","ConnectionInfo","ConnectionLost","ConnectionLost","ConnectionType","ConnectionTypeStream","ControlMsg","Direct","DirectAddr","DirectAddrInfo","DirectAddrType","DirectAddrsStream","Endpoint","IllegalOrderedRead","Local","LocallyClosed","MAX","MAX_SIZE","Mixed","NodeAddr","None","Ping","Pong","Portmapped","ReadError","RecvStream","Relay","Reset","Reset","SendStream","Stopped","Stun","Stun4LocalPort","TimedOut","TransportConfig","TransportError","Unknown","UnknownStream","UnknownStream","VarInt","VersionMismatch","WriteError","ZeroRttRejected","ZeroRttRejected","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","accept","accept_bi","accept_uni","add_node_addr","add_node_addr_with_source","addr","addr","addrs","allow_spin","alpn","alpns","bind","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bound_sockets","builder","chain","chain","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","close","close","close_reason","closed","cmp","cmp","cmp","compare","compare","compare","concurrent_connections","congestion_controller_factory","congestion_state","conn_type","conn_type_stream","connect","connect_by_node_id","connection_info","connection_infos","crypto_buffer_size","datagram_receive_buffer_size","datagram_send_buffer_size","datagram_send_buffer_space","default","default","default","default_relay_mode","deserialize","deserialize","deserialize","deserialize","direct_addresses","direct_addresses","discovery","discovery","dns_resolver","dns_resolver","drop","drop","enable_segmentation_offload","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","export_keying_material","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_u32","from_u64","from_u64_unchecked","get_remote_node_id","handshake_data","handshake_data","has_send_address","hash","hash","hash","home_relay","id","id","id","info","initial_mtu","initial_rtt","insecure_skip_relay_cert_verify","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_0rtt","into_future","into_future","into_inner","into_stream","into_stream","is_0rtt","join","join","keep_alive_interval","keylog","known_nodes","last_alive","last_alive_relay","last_control","last_payload","last_received","last_used","latency","latency","local_ip","local_ip","make_server_config","max_concurrent_bidi_streams","max_concurrent_uni_streams","max_datagram_size","max_idle_timeout","max_tlps","merge","merge","min_mtu","mtu_discovery_config","network_change","node_addr","node_id","node_id","node_id","open_bi","open_uni","packet_threshold","partial_cmp","partial_cmp","partial_cmp","peer_identity","persistent_congestion_threshold","poll","poll","poll_flush","poll_next","poll_next","poll_read","poll_shutdown","poll_write","priority","proxy_from_env","proxy_url","race","race","ratelimit_stream","ratelimit_stream","ratelimit_stream_with_jitter","ratelimit_stream_with_jitter","read","read_chunk","read_chunks","read_datagram","read_exact","read_to_end","receive_window","relay_mode","relay_url","relay_url","remote_address","remote_address","reset","rtt","secret_key","secret_key","send_datagram","send_window","serialize","serialize","serialize","serialize","set_alpns","set_max_concurrent_bi_streams","set_max_concurrent_uni_streams","set_priority","set_receive_window","source","source","source","stable_id","stats","stop","stopped","stream_receive_window","time_threshold","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","transport_config","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_poll","typ","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","watch_home_relay","weak_handle","write","write_all","write_all_chunks","write_chunk","write_chunks","zip","zip","BYTE_SIZE","Base32","Key","KeyParsingError","NodeId","PUBLIC_KEY_LENGTH","PublicKey","SecretKey","SharedSecret","Signature","__clone_box","__clone_box","__clone_box","as_bits","as_bytes","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","compare","deserialize","deserialize","deserialize","encode_hex","encode_hex_upper","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt_short","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_components","from_ref","from_ref","from_ref","from_slice","from_str","from_str","from_str","generate","generate_with_rng","hash","into","into","into","into","into","open","partial_cmp","public","r_bytes","s_bytes","seal","serialize","serialize","serialize","shared","sign","source","to_bytes","to_bytes","to_bytes","to_openssh","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_vec","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_openssh","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","MagicsockMetrics","NetcheckMetrics","PortmapMetrics","RelayMetrics","__clone_box","actor_link_change","actor_tick_direct_addr_heartbeat","actor_tick_direct_addr_update_receiver","actor_tick_main","actor_tick_msg","actor_tick_other","actor_tick_portmap_changed","actor_tick_re_stun","borrow","borrow_mut","clone","clone_into","default","fmt","from","from_ref","into","iter","name","num_direct_conns_added","num_direct_conns_removed","num_relay_conns_added","num_relay_conns_removed","re_stun_calls","recv_data_ipv4","recv_data_ipv6","recv_data_relay","recv_datagrams","recv_disco_bad_key","recv_disco_bad_parse","recv_disco_call_me_maybe","recv_disco_call_me_maybe_bad_disco","recv_disco_ping","recv_disco_pong","recv_disco_relay","recv_disco_udp","relay_home_change","send_data","send_data_network_down","send_disco_relay","send_disco_udp","send_ipv4","send_ipv6","send_relay","send_relay_error","sent_disco_call_me_maybe","sent_disco_ping","sent_disco_pong","sent_disco_relay","sent_disco_udp","to_owned","try_from","try_into","type_id","update_direct_addrs","vzip","IpFamily","UdpSocket","V4","V6","__clone_box","as_fd","bind","bind_full","bind_local","bind_local_v4","bind_local_v6","bind_v4","bind_v6","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from_ref","into","into","ip","local_addr","netmon","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unspecified_addr","vzip","vzip","LocalAddresses","__clone_box","borrow","borrow_mut","clone","clone_into","default","eq","equivalent","equivalent","equivalent","fmt","from","from_ref","into","is_unicast_link_local","loopback","new","regular","to_owned","try_from","try_into","type_id","vzip","CallbackToken","Monitor","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from","from_ref","hash","into","into","network_change","new","subscribe","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unsubscribe","vzip","vzip","Client","Metrics","RelayLatencies","Report","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","captive_portal","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","default","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_ref","from_ref","from_ref","from_ref","get_report","get_report_channel","global_v4","global_v6","hair_pinning","icmpv4","icmpv6","into","into","into","into","ipv4","ipv4_can_send","ipv6","ipv6_can_send","iter","iter","mapping_varies_by_dest_ip","mapping_varies_by_dest_ipv6","name","new","os_has_ipv6","portmap_probe","preferred_relay","receive_stun_packet","relay_latency","relay_v4_latency","relay_v6_latency","reports","reports_full","stun_packets_dropped","stun_packets_recv_ipv4","stun_packets_recv_ipv6","stun_packets_sent_ipv4","stun_packets_sent_ipv6","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","udp","vzip","vzip","vzip","vzip","Client","Ping","PingError","Pinger","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","fmt","fmt","fmt","from","from","from","from","from_ref","into","into","new","send","source","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Client","Config","Metrics","ProbeOutput","Service","__clone_box","__clone_box","__clone_box","__clone_box","all_available","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","deactivate","default","default","default","enable_nat_pmp","enable_pcp","enable_upnp","eq","equivalent","equivalent","equivalent","external_address_updated","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_ref","from_ref","from_ref","from_ref","into","into","into","into","into","iter","local_port_updates","mapping_attempts","mapping_failures","name","nat_pmp","new","pcp","pcp_available","pcp_probes","probe","probes_started","procure_mapping","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update_local_port","upnp","upnp_available","upnp_gateway_updated","upnp_probes","upnp_probes_failed","vzip","vzip","vzip","vzip","vzip","watch_external_address","ActorGone","Build","CannotAckPings","Closed","ConnectTimeout","Custom","Default","DialIO","DialTask","Disabled","Dns","DnsTimeout","Health","Http","HttpClient","HttpClientBuilder","HttpClientError","HttpClientReceiver","Hyper","IPDisabled","InvalidUrl","KeepAlive","MAX_PACKET_SIZE","NoClient","NoLocalAddr","NoNodeForTarget","PeerGone","Ping","PingAborted","PingTimeout","Pong","Proxy","Receive","ReceivedMessage","ReceivedPacket","RelayConn","RelayMap","RelayMode","RelayNode","RelayNodeNotAvail","RelayUrl","Send","ServerRestarting","Staging","StunOnlyNodesFound","UnexpectedStatusCode","Upgrade","WebsocketError","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","address_family_selector","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","can_ack_pings","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","close","close","close_for_reconnect","cmp","cmp","compare","compare","connect","contains_node","default_from_node","deref","deserialize","deserialize","empty","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_nodes","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_str","from_url","get_node","hash","http","insecure_skip_cert_verify","into","into","into","into","into","into","into","into","into","into","is_closed","is_connected","is_empty","is_preferred","is_prober","len","local_addr","local_addr","new","nodes","note_preferred","note_preferred","partial_cmp","partial_cmp","ping","protocol","proxy_url","public_key","recv","relay_map","send","send","send_ping","send_pong","send_pong","serialize","serialize","server","server_public_key","server_url","source","stun_only","stun_port","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","url","urls","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","data","problem","reconnect_in","source","try_for","Protocol","RELAY_PATH","RELAY_PROBE_PATH","Relay","Websocket","__clone_box","borrow","borrow_mut","clone","clone_into","eq","equivalent","equivalent","equivalent","fmt","from","from_ref","into","parse_header","to_owned","try_from","try_into","type_id","upgrade_header","vzip","CertConfig","ClientConnHandler","LetsEncrypt","Limits","Manual","MaybeTlsStreamServer","Metrics","Plain","RelayConfig","Server","ServerActorTask","ServerConfig","StunConfig","Tls","TlsConfig","__clone_box","__clone_box","abort","accept","accept_conn_burst","accept_conn_limit","accepts","bind_addr","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes_recv","bytes_sent","call","call","cert","client_conn_handler","clone","clone","clone_into","clone_into","close","default","default","default","derp_accepts","disco_packets_dropped","disco_packets_recv","disco_packets_sent","disconnects","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","got_ping","http_addr","http_bind_addr","https_addr","https_bind_addr","into","into","into","into","into","into","into","into","into","into","into","is_closed","iter","limits","meta_cert","metrics_addr","name","new","other_packets_dropped","other_packets_recv","other_packets_sent","poll_flush","poll_read","poll_shutdown","poll_write","poll_write_vectored","public_key","relay","secret_key","secret_key","send_packets_dropped","send_packets_recv","send_packets_sent","sent_pong","shutdown","spawn","stun","stun_addr","task_handle","tls","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unique_client_keys","unknown_frames","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","websocket_accepts","certs","config","private_key","AlternateServer","Error","ErrorCode","ErrorResponse","Fingerprint","Indication","InvalidFingerprint","InvalidMessage","MalformedAttrs","MappedAddress","MessageClass","MessageDecoder","MessageIntegrity","MessageIntegritySha256","NoFingerprint","Nonce","NotBinding","NotSuccessResponse","PasswordAlgorithm","PasswordAlgorithms","Realm","Request","Software","StunAttribute","StunDecodeError","SuccessResponse","TransactionId","Unknown","UnknownAttributes","UserHash","UserName","XorMappedAddress","__clone_box","__clone_box","__clone_box","as_alternate_server","as_bits","as_bytes","as_error_code","as_fingerprint","as_mapped_address","as_message_integrity","as_message_integrity_sha256","as_nonce","as_password_algorithm","as_password_algorithms","as_realm","as_ref","as_software","as_unknown","as_unknown_attributes","as_user_hash","as_user_name","as_xor_mapped_address","attribute_type","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","compare","decode","default","default","deref","encode_hex","encode_hex_upper","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","expect_alternate_server","expect_error_code","expect_fingerprint","expect_mapped_address","expect_message_integrity","expect_message_integrity_sha256","expect_nonce","expect_password_algorithm","expect_password_algorithms","expect_realm","expect_software","expect_unknown","expect_unknown_attributes","expect_user_hash","expect_user_name","expect_xor_mapped_address","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ref","from_ref","from_ref","get_context","hash","into","into","into","into","into","into","is","is_alternate_server","is_error_code","is_fingerprint","is_mapped_address","is_message_integrity","is_message_integrity_sha256","is_nonce","is_password_algorithm","is_password_algorithms","is_realm","is_software","is_unknown","is_unknown_attributes","is_user_hash","is_user_name","is_xor_mapped_address","methods","parse_binding_request","parse_response","partial_cmp","request","response","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","BINDING","RESERVED","SHARED_SECRET","CleanupDropGuard","DnsPkarrServer","borrow","borrow","borrow_mut","borrow_mut","create_dns_resolver","discovery","dns_resolver","fmt","fmt","from","from","into","into","nameserver","node_origin","on_node","pkarr_url","run","run_relay_server","run_with_origin","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","NodeTicket","__clone_box","borrow","borrow_mut","clone","clone_into","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from_bytes","from_ref","from_str","into","new","node_addr","serialize","to_bytes","to_owned","to_string","try_from","try_into","type_id","vzip","certificate","make_client_config","make_server_config","GenError","P2pCertificate","P2pExtension","ParseError","VerificationError","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","generate","into","into","into","into","into","parse","peer_id","source","source","source","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify_signature","vzip","vzip","vzip","vzip","vzip","AbortingJoinHandle","CancelOnDrop","MaybeFuture","SharedAbortingJoinHandle","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","clone","clone_into","default","deref","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_ref","inner","into","into","into","into","into_future","into_future","into_future","join","join","join","new","poll","poll","poll","race","race","race","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_poll","try_poll","try_poll","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","Chain","borrow","borrow_mut","chain","consume","fmt","from","get_mut","get_pin_mut","get_ref","into","into_inner","poll_fill_buf","poll_read","try_from","try_into","type_id","vzip"],"q":[[0,"iroh_net"],[86,"iroh_net::defaults"],[92,"iroh_net::defaults::prod"],[99,"iroh_net::defaults::staging"],[104,"iroh_net::dialer"],[127,"iroh_net::discovery"],[169,"iroh_net::discovery::dns"],[184,"iroh_net::discovery::local_swarm_discovery"],[197,"iroh_net::discovery::pkarr"],[258,"iroh_net::dns"],[283,"iroh_net::dns::node_info"],[361,"iroh_net::endpoint"],[905,"iroh_net::key"],[1049,"iroh_net::metrics"],[1110,"iroh_net::net"],[1157,"iroh_net::net::ip"],[1181,"iroh_net::net::netmon"],[1216,"iroh_net::netcheck"],[1322,"iroh_net::ping"],[1357,"iroh_net::portmapper"],[1462,"iroh_net::relay"],[1728,"iroh_net::relay::ReceivedMessage"],[1733,"iroh_net::relay::http"],[1758,"iroh_net::relay::server"],[1940,"iroh_net::relay::server::CertConfig"],[1943,"iroh_net::stun"],[2147,"iroh_net::stun::methods"],[2150,"iroh_net::test_utils"],[2180,"iroh_net::ticket"],[2208,"iroh_net::tls"],[2211,"iroh_net::tls::certificate"],[2277,"iroh_net::util"],[2347,"iroh_net::util::chain"],[2365,"dyn_clone::sealed"],[2366,"iroh_base::node_addr"],[2367,"core::cmp"],[2368,"core::result"],[2369,"serde::de"],[2370,"core::net::socket_addr"],[2371,"core::iter::traits::iterator"],[2372,"core::fmt"],[2373,"iroh_base::key"],[2374,"core::option"],[2375,"alloc::vec"],[2376,"serde::ser"],[2377,"core::any"],[2378,"core::iter::traits::collect"],[2379,"iroh_net::relay::map"],[2380,"futures_concurrency::stream::chain::tuple"],[2381,"futures_concurrency::stream::into_stream"],[2382,"futures_core::stream"],[2383,"futures_concurrency::stream::merge::tuple"],[2384,"iroh_quinn::connection"],[2385,"anyhow"],[2386,"core::pin"],[2387,"core::task::wake"],[2388,"core::task::poll"],[2389,"governor::state::direct"],[2390,"governor::state"],[2391,"governor::state::direct::streams"],[2392,"governor::clock"],[2393,"governor::clock::with_std"],[2394,"governor::middleware"],[2395,"governor::jitter"],[2396,"futures_concurrency::stream::zip::tuple"],[2397,"swarm_discovery"],[2398,"alloc::boxed"],[2399,"futures_lite::stream"],[2400,"alloc::string"],[2401,"url"],[2402,"pkarr::signed_packet"],[2403,"core::time"],[2404,"core::future::future"],[2405,"core::net::ip_addr"],[2406,"hickory_proto::rr::domain::name"],[2407,"core::clone"],[2408,"hickory_resolver::async_resolver"],[2409,"alloc::collections::btree::map"],[2410,"core::str::traits"],[2411,"core::hash"],[2412,"hickory_proto::rr::resource"],[2413,"alloc::collections::btree::set"],[2414,"iroh_quinn_proto::config"],[2415,"iroh_quinn::recv_stream"],[2416,"iroh_quinn::send_stream"],[2417,"iroh_quinn_proto::varint"],[2418,"iroh_quinn_proto::connection"],[2419,"iroh_net::magicsock::node_map::node_state"],[2420,"iroh_net::magicsock"],[2421,"iroh_quinn_proto::congestion"],[2422,"core::marker"],[2423,"iroh_net::magicsock::node_map"],[2424,"iroh_quinn_proto::crypto"],[2425,"iroh_quinn_proto::connection::streams::recv"],[2426,"iroh_quinn_proto"],[2427,"iroh_quinn_proto::frame"],[2428,"iroh_quinn_proto::transport_error"],[2429,"futures_concurrency::future::join::tuple"],[2430,"core::future::into_future"],[2431,"alloc::sync"],[2432,"std::io::error"],[2433,"tokio::io::read_buf"],[2434,"futures_concurrency::future::race::tuple"],[2435,"iroh_quinn_proto::connection::assembler"],[2436,"bytes::bytes"],[2437,"core::error"],[2438,"iroh_quinn_proto::connection::stats"],[2439,"iroh_quinn_proto::connection::streams::send"],[2440,"bitvec::slice"],[2441,"bitvec::order"],[2442,"ed25519"],[2443,"iroh_base::key::encryption"],[2444,"ed25519_dalek::signature"],[2445,"ed25519_dalek::verifying"],[2446,"iroh_base::base32"],[2447,"signature::error"],[2448,"ed25519_dalek::signing"],[2449,"rand_core"],[2450,"aead"],[2451,"zeroize"],[2452,"ssh_key::error"],[2453,"bitvec::ptr::span"],[2454,"ssh_key::signature"],[2455,"core::convert"],[2456,"alloc::vec::into_iter"],[2457,"iroh_net::net::udp"],[2458,"std::os::fd::owned"],[2459,"iroh_net::net::ip_family"],[2460,"tokio::net::udp"],[2461,"iroh_net::net::netmon::actor"],[2462,"futures_lite::future"],[2463,"core::ops::function"],[2464,"iroh_net::netcheck::metrics"],[2465,"tokio::sync::oneshot"],[2466,"surge_ping::error"],[2467,"iroh_net::portmapper::metrics"],[2468,"core::num::nonzero"],[2469,"tokio::sync::watch"],[2470,"iroh_net::relay::client::conn"],[2471,"tokio_tungstenite_wasm::error"],[2472,"http::error"],[2473,"tokio::runtime::task::error"],[2474,"hyper::error"],[2475,"http::header::value"],[2476,"iroh_net::relay::server::actor"],[2477,"http::request"],[2478,"hyper::body::incoming"],[2479,"http::header::map"],[2480,"iroh_net::relay::server::metrics"],[2481,"core::default"],[2482,"std::io"],[2483,"stun_rs::attributes"],[2484,"stun_rs::attributes::stun::alternate_server"],[2485,"stun_rs::error"],[2486,"stun_rs::types"],[2487,"stun_rs::attributes::stun::error_code"],[2488,"stun_rs::attributes::stun::fingerprint"],[2489,"stun_rs::attributes::stun::mapped_address"],[2490,"stun_rs::attributes::stun::message_integrity"],[2491,"stun_rs::attributes::stun::message_integrity_sha256"],[2492,"stun_rs::attributes::stun::nonce"],[2493,"stun_rs::attributes::stun::password_algorithm"],[2494,"stun_rs::attributes::stun::password_algorithms"],[2495,"stun_rs::attributes::stun::realm"],[2496,"stun_rs::attributes::stun::software"],[2497,"stun_rs::attributes::unknown"],[2498,"stun_rs::attributes::stun::unknown_attributes"],[2499,"stun_rs::attributes::stun::user_hash"],[2500,"stun_rs::attributes::stun::user_name"],[2501,"stun_rs::attributes::stun::xor_mapped_address"],[2502,"stun_rs::context"],[2503,"stun_rs::message"],[2504,"iroh_net::test_utils::dns_and_pkarr_servers"],[2505,"iroh_base::ticket::node"],[2506,"iroh_base::ticket"],[2507,"rustls::client::client_conn"],[2508,"rustls::server::server_conn"],[2509,"rcgen::error"],[2510,"webpki::error"],[2511,"rustls::key"],[2512,"rustls::enums"],[2513,"tokio::runtime::task::join"],[2514,"tokio::runtime::task::abort"],[2515,"tokio::io::async_read"],[2516,"tokio::io::async_buf_read"],[2517,"iroh_base"],[2518,"ed25519_dalek::constants"],[2519,"iroh_net::relay::codec"],[2520,"stun_rs"],[2521,"stun_rs::methods"],[2522,"iroh_net::test_utils::dns_server"]],"i":[0,0,0,0,3,5,3,5,3,5,3,5,3,5,3,5,3,5,3,5,5,0,3,5,0,3,5,0,0,0,3,5,3,3,3,5,5,5,3,5,3,3,3,3,3,5,5,3,3,5,3,3,5,5,0,0,0,0,3,3,3,5,0,0,0,3,5,3,5,0,0,0,0,3,5,3,5,3,5,3,5,0,3,5,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0,0,0,54,52,54,54,52,54,52,54,54,52,0,52,54,52,54,54,52,52,54,52,54,52,54,0,0,54,53,52,53,52,54,54,52,54,52,54,52,54,52,0,0,0,58,58,58,58,58,58,58,58,58,58,58,58,0,60,60,60,60,60,60,60,60,60,60,60,60,0,0,0,0,0,0,0,61,62,63,61,62,63,61,62,63,61,62,63,61,62,63,61,61,62,63,61,62,63,61,62,63,61,62,63,61,62,61,62,63,61,63,62,63,61,62,63,61,62,63,61,62,63,61,62,63,61,61,62,63,61,0,0,0,71,70,71,70,71,70,71,70,71,70,71,70,71,70,71,70,71,70,71,70,0,0,80,0,0,0,80,0,16,80,81,80,16,81,80,16,81,16,16,80,80,16,80,16,80,80,80,16,16,16,80,80,16,81,80,16,16,16,81,81,16,81,81,16,81,16,80,81,0,80,80,16,81,81,81,16,81,16,80,16,16,81,16,16,81,80,0,80,80,16,81,80,16,81,80,16,81,80,16,81,0,0,101,0,102,0,0,101,0,0,98,99,0,0,0,104,0,0,0,0,0,98,106,101,100,100,104,0,104,102,102,106,0,0,104,98,101,0,99,106,106,101,0,101,106,98,99,0,101,0,98,99,36,98,99,100,35,101,102,103,21,104,105,106,35,36,36,35,35,103,105,21,94,95,96,96,36,114,98,115,99,94,100,96,35,101,91,95,102,103,21,104,111,113,105,106,36,114,98,115,99,94,100,96,35,101,91,95,102,103,21,104,111,113,105,106,35,35,111,113,36,98,99,100,35,101,102,103,21,104,105,106,36,98,99,100,35,101,102,103,21,104,105,106,36,35,36,36,100,105,106,100,105,106,96,94,36,21,35,35,35,35,35,94,94,94,36,94,100,96,0,102,103,21,104,35,5,96,35,96,35,114,115,94,98,99,100,101,102,103,21,104,105,106,98,98,98,99,99,99,100,100,100,101,101,101,102,102,102,103,103,103,21,21,21,104,104,104,105,105,105,106,106,106,36,115,36,114,98,98,115,99,99,94,100,100,96,35,101,101,91,95,102,102,103,21,104,104,111,113,105,106,106,36,114,98,98,98,115,99,99,94,100,100,100,100,100,96,35,101,101,101,91,95,102,103,21,104,111,113,105,106,36,98,99,100,35,101,102,103,21,104,105,106,100,100,100,0,36,95,21,100,105,106,35,114,115,21,3,94,94,96,36,114,98,115,99,94,100,96,35,101,91,95,102,103,21,104,111,113,105,106,95,91,95,100,111,113,114,91,95,94,96,96,103,21,103,103,21,21,103,21,36,95,0,94,94,36,94,94,111,113,94,94,35,35,35,3,21,36,36,94,100,105,106,36,94,91,95,115,111,113,114,115,115,115,96,96,91,95,111,113,111,113,114,114,114,36,114,114,94,96,5,21,36,95,115,36,96,35,36,94,102,103,21,104,35,36,36,115,36,98,99,101,36,36,114,115,94,94,36,98,99,100,35,101,102,103,21,104,105,106,98,99,100,101,102,104,106,96,36,114,98,115,99,94,100,100,100,100,96,35,101,91,95,102,103,21,104,111,113,105,106,36,114,98,115,99,94,100,96,35,101,91,95,102,103,21,104,111,113,105,106,95,105,36,114,98,115,99,94,100,96,35,101,91,95,102,103,21,104,111,113,105,106,36,114,98,115,99,94,100,96,35,101,91,95,102,103,21,104,111,113,105,106,35,36,115,115,115,115,115,111,113,153,157,157,0,0,0,0,0,0,0,153,15,64,15,15,15,153,156,15,157,64,153,156,15,157,64,153,15,64,153,15,64,15,15,153,15,64,15,15,153,15,153,153,153,15,15,15,153,153,153,153,156,15,15,157,157,64,64,15,153,153,153,153,156,15,15,157,157,157,64,64,64,153,15,64,153,153,15,64,153,153,15,64,64,64,15,153,156,15,157,64,156,15,64,153,153,156,153,15,64,64,64,157,153,153,64,64,153,15,64,153,15,157,64,153,15,153,153,153,153,156,15,15,15,157,64,64,64,153,156,15,157,64,153,156,15,157,64,15,153,156,15,157,64,0,0,0,0,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,0,0,176,176,176,174,174,174,174,174,174,174,174,176,174,176,174,176,176,174,174,176,176,176,176,176,174,176,176,174,174,176,176,174,0,176,0,176,176,174,176,174,176,174,176,176,174,0,179,179,179,179,179,179,179,179,179,179,179,179,179,179,0,179,179,179,179,179,179,179,179,0,0,181,181,182,181,182,181,181,182,181,181,181,181,181,182,181,182,181,181,181,182,182,182,182,181,181,182,181,182,181,182,182,181,182,0,0,0,0,185,186,187,188,185,186,187,188,185,186,187,188,186,185,186,187,188,185,186,187,188,185,186,187,186,187,186,186,186,187,187,187,185,186,186,187,188,185,186,187,188,185,186,187,188,188,188,186,186,186,186,186,185,186,187,188,186,186,186,186,185,187,186,186,185,188,186,186,186,188,186,186,186,185,185,185,185,185,185,185,185,186,187,188,186,185,186,187,188,185,186,187,188,185,186,187,188,186,185,186,187,188,192,192,0,0,191,192,191,192,191,191,191,191,192,192,191,192,192,192,191,191,192,191,191,191,192,191,192,192,191,192,191,192,191,192,191,0,0,0,0,0,195,194,196,190,194,195,194,196,190,197,195,194,196,190,197,195,194,196,190,195,194,196,190,190,195,196,190,196,196,196,194,194,194,194,195,195,194,194,196,190,197,195,194,196,190,197,195,194,196,190,195,194,196,190,197,195,195,195,195,195,194,190,194,195,195,190,195,190,195,194,196,190,194,195,194,196,190,197,195,194,196,190,197,195,194,196,190,197,190,194,195,195,195,195,195,194,196,190,197,190,206,206,206,206,206,112,112,206,206,112,206,206,205,206,0,0,0,0,206,206,206,205,0,206,206,206,205,205,206,206,205,206,206,0,205,0,0,0,0,206,0,206,205,112,206,206,206,206,17,204,205,202,112,27,26,201,17,204,205,206,202,203,201,112,27,26,17,204,205,206,202,203,201,112,27,26,201,201,17,204,205,202,112,27,26,17,204,205,202,112,27,26,204,202,202,17,26,17,26,202,27,27,17,17,26,27,17,204,112,27,26,17,17,17,204,204,204,112,112,112,27,27,27,26,26,26,17,17,204,205,206,206,202,203,201,112,27,27,26,26,17,17,204,205,206,206,206,206,206,206,202,203,201,112,27,26,27,17,204,205,202,112,27,26,17,27,27,17,0,201,17,204,205,206,202,203,201,112,27,26,204,202,27,201,201,27,204,202,201,27,204,202,17,26,202,201,201,202,203,112,204,202,204,204,202,17,26,0,201,201,206,26,26,17,204,205,202,112,27,26,17,206,27,26,17,204,205,206,202,203,201,112,27,26,17,204,205,206,202,203,201,112,27,26,17,204,205,206,202,203,201,112,27,26,26,27,17,204,205,206,202,203,201,112,27,26,282,283,284,282,284,0,0,0,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,0,0,226,0,226,0,0,215,0,0,0,0,0,215,0,214,219,213,214,222,222,219,224,213,214,219,215,220,223,224,225,222,226,227,213,214,219,215,220,223,224,225,222,226,227,219,219,214,214,225,213,214,219,214,219,213,219,220,222,219,219,219,219,219,213,214,219,215,220,223,224,225,222,226,227,213,214,219,215,220,223,224,225,222,226,227,214,219,219,227,223,227,225,213,214,219,215,220,223,224,225,222,226,227,213,219,223,213,220,219,213,219,219,219,215,215,215,215,215,213,220,213,223,219,219,219,219,227,227,220,227,227,223,214,219,213,214,219,215,220,223,224,225,222,226,227,213,214,219,215,220,223,224,225,222,226,227,213,214,219,215,220,223,224,225,222,226,227,219,219,213,214,219,215,220,223,224,225,222,226,227,219,285,286,285,231,0,231,252,231,252,255,255,255,231,0,0,231,231,255,231,255,255,231,231,231,252,231,0,0,252,0,231,231,231,231,231,251,252,234,231,234,234,231,231,231,231,231,231,231,231,231,234,231,231,231,231,231,231,231,251,252,234,231,254,255,251,252,234,231,254,255,251,252,234,251,252,234,234,234,251,251,234,234,234,234,252,234,252,252,252,234,234,234,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,251,252,234,234,231,254,254,255,255,251,252,234,234,234,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,254,255,251,252,234,251,234,251,252,234,231,254,255,0,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,0,0,0,234,0,0,251,252,234,234,254,255,234,251,252,252,234,231,254,255,251,252,234,231,254,255,251,252,234,231,254,255,251,252,234,231,254,255,0,0,0,0,0,258,257,258,257,0,257,257,258,257,258,257,258,257,257,257,257,257,257,0,257,258,257,258,257,258,257,258,257,0,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,0,0,0,0,0,0,0,0,264,265,262,266,267,264,265,262,266,267,264,265,262,262,266,266,267,267,264,265,262,262,266,266,267,267,0,264,265,262,266,267,0,264,262,266,267,262,266,267,264,265,262,266,267,264,265,262,266,267,264,265,262,266,267,264,264,265,262,266,267,0,0,0,0,273,230,273,275,274,230,273,275,274,0,273,273,274,230,230,273,275,230,273,275,274,230,230,273,273,275,274,273,274,230,273,275,274,230,273,274,230,273,274,275,230,273,274,230,273,274,273,230,273,275,274,230,273,275,274,230,273,274,230,273,275,274,230,273,275,274,0,279,279,0,279,279,279,279,279,279,279,279,279,279,279,279,279,279],"f":"````{{cb}d{}}0{{fh}d}{{jh}d}{ce{}{}}000{ff}{jj}{{ce}d{}{}}0{{ff}l}{{jj}l}{{ce}l{}{}}0{{}j}`{c{{n{f}}}A`}{c{{n{j}}}A`}`{f{{`{{Af{}{{Ab{Ad}}}}}}}}````{{ff}Ah}{{jj}Ah}{{ce}Ah{}{}}00000{{fAj}{{n{dAl}}}}{{jAj}{{n{dAl}}}}{Anf}{B`f}{cc{}}{{{Bh{An{Bd{Bb}}{Bf{Ad}}}}}f}{Bjf}{B`j}3{{An{Bd{Bb}}{Bl{Ad}}}f}44`{ce{}{}}0{jAh}````8`{{ff}{{Bd{l}}}}{{jj}{{Bd{l}}}}```{f{{Bd{Bb}}}}`{{fc}nBn}{{jc}nBn}````66{c{{n{e}}}{}{}}000{cC`{}}0`88{{fc}f{{Cb{}{{Ab{Ad}}}}}}{{fBb}f}`````````{{}Cd}00{{}Cf}``110`{{ChCj}d}=={{cg}{{Cl{i}}}{}{}{{Cn{}{{Ab{e}}}}}{{D`{}{{Ab{e}}}}}}{{ChAj}Db}{cc{}}{ce{}{}}0{{ChCj}Ah}{{cg}{{Dd{ei}}}{}{}{{Cn{}{{Ab{e}}}}}{{D`{}{{Ab{e}}}}}}{DfCh}{Ch{{Bh{Cj{Dj{Dh}}}}}}{ChDl}{{{Dn{Ch}}E`}{{Eb{{Bd{c}}}}}{}}{{ChCj{Bf{Ed}}}d}{{c{Eh{Efegi}}}{{Ej{kegi}}}{}El{EnF`}Fb{}}{{c{Eh{Efegi}}Fd}{{Ej{kegi}}}{}El{EnF`}Fb{}}{c{{n{e}}}{}{}}0{cC`{}};{{cg}{{Ff{i}}}{}{}{{Cn{}{{Ab{e}}}}}{{D`{}{{Ab{e}}}}}}```{{cb}d{}}{{Fhc}dFj}`>>>>{FlFl}{{ce}d{}{}}{{}Fh}`0{{FlAj}Db}{{FhAj}Db}{FnFl}{cc{}}0{cFh{{Cb{}{{Ab{{G`{Fj}}}}}}}}1{{{Bl{{G`{Fj}}}}}Fh}{ce{}{}}0````{{Fjj}d}{{Fhj}d}{{FjDfCj}{{Bd{{Gb{{Dj{Fl}}}}}}}}{{FhDfCj}{{Bd{{Gb{{Dj{Fl}}}}}}}}4{c{{n{e}}}{}{}}000{cC`{}}066```66{{GdAj}Db}:7{{}Gd}{GfGd}{{GdDfCj}{{Bd{{Gb{{Dj{Fl}}}}}}}}554:`::{{GhAj}Db}>;{Cj{{Dj{Gh}}}}{{Ghj}d}{{GhDfCj}{{Bd{{Gb{{Dj{Fl}}}}}}}}998>```````{{cb}d{}}00??????{GjGj}{GlGl}{GnGn}{{ce}d{}{}}00{Gjd}{{GjAj}Db}{{GlAj}Db}{{GnAj}Db}{cc{}}00000{ce{}{}}00{H`Gj}{{}Gl}{{H`Hb}Gj}{HbGl}{HbGn}{{Gjj}d}{{GnHd}{{Dj{d}}}}{{GlDfCj}{{Bd{{Hf{{Dj{Fl}}}}}}}}{{GnCj}{{Dj{Hd}}}}999{c{{n{e}}}{}{}}00000{cC`{}}005;;;{{H`HbHhHj}Gj}``{{}Hl}{{HnCjI`}{{`{{Id{}{{Ib{{Dj{f}}}}}}}}}}{{HlCjI`}{{Dj{f}}}}{{HnCjI`{Bf{If}}}{{`{{Id{}{{Ib{{Dj{f}}}}}}}}}}{{HlCjI`{Bf{If}}}{{Dj{f}}}}{{HnI`}{{`{{Id{}{{Ib{{Dj{f}}}}}}}}}}{{HlI`}{{Dj{f}}}}{{HnI`{Bf{If}}}{{`{{Id{}{{Ib{{Dj{f}}}}}}}}}}{{HlI`{Bf{If}}}{{Dj{f}}}}{{HncHj}{{`{{Id{}{{Ib{{Dj{{`{{Af{}{{Ab{Ih}}}}}}}}}}}}}}}Ij}{{HlcHj}{{Dj{{`{{Af{}{{Ab{Ih}}}}}}}}}Ij}{{HncHj}{{`{{Id{}{{Ib{{Dj{{`{{Af{}{{Ab{Ih}}}}}}}}}}}}}}}{IjIl}}{{HlcHj}{{Dj{{`{{Af{}{{Ab{Ih}}}}}}}}}{IjIl}}{{HncHj{Bf{If}}}{{`{{Id{}{{Ib{{Dj{{`{{Af{}{{Ab{Ih}}}}}}}}}}}}}}}{IjIl}}{{HlcHj{Bf{If}}}{{Dj{{`{{Af{}{{Ab{Ih}}}}}}}}}{IjIl}}105410`{{}In}``````{{cb}d{}}{J`I`}{{{Jb{c}}}{{Jd{c{Bl{Gf}}}}}{JfJhJjJl}}{ce{}{}}00000{B`B`}{{ce}d{}{}}{{J`J`}l}{{ce}l{}{}}`{{J`J`}Ah}{{B`B`}Ah}{{ce}Ah{}{}}00000{{J`Aj}Db}{{J`Aj}{{n{dAl}}}}{{B`Aj}Db}{{{Jb{c}}Aj}DbJn}{cc{}}0{{{Jb{J`}}}B`}0{B`{{Jb{J`}}}}2{{{Bf{K`}}}{{Dj{B`}}}}{{{Bf{K`}}}{{Dj{{Jb{c}}}}}{JfJhJjJl}}{{Cje}{{Jb{c}}}{JfJhJjJl}{{Af{}{{Ab{{Bh{cGf}}}}}}}}{Hd{{Dj{B`}}}}{Hd{{Dj{{Jb{c}}}}}{JfJhJjJl}}7{I`{{n{J`c}}}{}}{{Cjc}{{Dj{{Jb{e}}}}}{{Af{}{{Ab{Gf}}}}}{JfJhJjJl}}{I`{{Dj{Cj}}}}{{J`c}dKb}{ce{}{}}00{{InCjI`}{{Dj{{Jb{c}}}}}{JfJhJjJl}}{{InI`}{{Dj{{Jb{c}}}}}{JfJhJjJl}}{{Cj{Bd{Hb}}{Kd{Ad}}}B`}{{{Jb{c}}}Cj{JfJhJjJl}}`{{J`J`}{{Bd{l}}}}`{{B`I`Hh}{{Dj{{`{{Af{}{{Ab{K`}}}}}}}}}}{{{Jb{c}}I`Hh}{{Dj{{`{{Af{}{{Ab{K`}}}}}}}}}{JfJhJjJl}}7{{B`H`Hh}{{Dj{Hd}}}}{{{Jb{c}}H`Hh}{{Dj{Hd}}}{JfJhJjJl}}{cGf{}}{CjGf}?{c{{n{e}}}{}{}}00000{cC`{}}00===````````````````````````````````````````````````````{{cb}d{}}00000000000{DfKf}{DhKh}{DhKj}{{Dff}{{Dj{d}}}}{{DffI`}{{Dj{d}}}}```{{KlAh}Kl}{Kn{{Dj{{Bl{Ed}}}}}}{{L`{Bl{{Bl{Ed}}}}}L`}{{L`Lb}{{Dj{Df}}}}{ce{}{}}000000000000000000000000000000000000000{Df{{Bh{Ad{Bd{Ad}}}}}}{{}L`}{{cg}{{Cl{i}}}{}{}{{Cn{}{{Ab{e}}}}}{{D`{}{{Ab{e}}}}}}0{DhDh}{LdLd}{LfLf}{LhLh}{DfDf}{LjLj}{LlLl}{LnLn}{BjBj}{M`M`}{MbMb}{MdMd}{{ce}d{}{}}00000000000{{DhLh{Bf{Ed}}}d}{{DfLh{Bf{Ed}}}{{Dj{d}}}}{Dh{{Bd{Lj}}}}{DhLj}{{LhLh}l}{{MbMb}l}{{MdMd}l}{{ce}l{}{}}00{{L`Hh}L`}{{Klc}Kl{MfMhMj}}{Dh{{G`{Ml}}}}`{{DfCj}{{Dj{Mn}}}}{{Dff{Bf{Ed}}}{{Dj{Dh}}}}{{DfCj{Bf{Ed}}}{{Dj{Dh}}}}{{DfCj}{{Bd{Bj}}}}{Df{{Bl{Bj}}}}{{KlDl}Kl}{{Kl{Bd{Dl}}}Kl}1{DhDl}{{}Kl}{{}Lh}{{}L`}{{}N`}{c{{n{Ll}}}A`}{c{{n{Ln}}}A`}{c{{n{Bj}}}A`}{c{{n{M`}}}A`}{DfNb}`{{L`{G`{Fj}}}L`}{Df{{Bd{Fj}}}}{{L`Hl}L`}{DfHl}{Ndd}{Nfd}{{KlAh}Kl}{{LdLd}Ah}{{LfLf}Ah}{{LhLh}Ah}{{LjLj}Ah}{{LlLl}Ah}{{LnLn}Ah}{{BjBj}Ah}{{M`M`}Ah}{{MbMb}Ah}{{MdMd}Ah}{{ce}Ah{}{}}00000000000000000000000000000{{Dh{Bf{Ed}}{Bf{Ed}}{Bf{Ed}}}{{n{dNh}}}}{Nf{{n{dLf}}}}{{DhAj}{{n{dAl}}}}{{NdAj}{{n{dAl}}}}{{LdAj}{{n{dAl}}}}0{{NfAj}{{n{dAl}}}}{{LfAj}{{n{dAl}}}}0{{KlAj}{{n{dAl}}}}{{LhAj}{{n{dAl}}}}0{{L`Aj}Db}{{DfAj}Db}{{LjAj}{{n{dAl}}}}0{{KfAj}Db}{{KnAj}Db}{{LlAj}Db}0{{LnAj}Db}{{BjAj}Db}{{M`Aj}Db}0{{MnAj}Db}{{NbAj}Db}{{MbAj}Db}{{MdAj}Db}0{cc{}}00{LjLd}{NjLd}2{LjLf}33{NlLh}{LbLh}5{HhLh}{EdLh}77{NnLj}{O`Lj}999999999999999999999993{If{{n{LhOb}}}}{IfLh}{Dh{{Dj{An}}}}{Dh{{Bd{{G`{Od}}}}}}{Kn{{Dj{{G`{Od}}Lj}}}}{BjAh}{{Lhc}dKb}{{Mbc}dKb}{{Mdc}dKb}{Df{{Bd{Bb}}}}{NdNl}{NfNl}``{{KlLb}Kl}{{KlHj}Kl}{{L`Ah}L`}{ce{}{}}0000000000000000000{Kn{{Dj{{Bh{DhOf}}Kn}}}}{c{}{}}0{LhIf}33{NdAh}{{ce}{{Oh{g}}}{}OjId}0{{Kl{Bd{Hj}}}Kl}7{{L`{Bl{f}}}L`}`{Bj{{Bd{Hj}}}}``0```{Dh{{Bd{Ih}}}}{Kn{{Bd{Ih}}}}{{H`{Bl{{Bl{Ed}}}}{Ol{Kl}}Ah}{{Dj{On}}}}{{KlLh}Kl}0{Dh{{Bd{Dl}}}}{{Kl{Bd{A@`}}}Kl}{{KlHh}Kl}{{cg}{{Dd{ei}}}{}{}{{Cn{}{{Ab{e}}}}}{{D`{}{{Ab{e}}}}}}0{{KlLb}Kl}{{Kl{Bd{A@b}}}Kl}{Dfd}{Df{{Dj{f}}}}{DfCj}``{DhA@d}{DhA@f}8{{LhLh}{{Bd{l}}}}{{MbMb}{{Bd{l}}}}{{MdMd}{{Bd{l}}}}{Dh{{Bd{{G`{Od}}}}}}<{{{Dn{Kf}}E`}{{Eb{c}}}{}}{{{Dn{Kn}}E`}{{Eb{c}}}{}}{{{Dn{Nf}}E`}{{Eb{{n{dA@h}}}}}}{{{Dn{Mn}}E`}{{Eb{{Bd{c}}}}}{}}{{{Dn{Nb}}E`}{{Eb{{Bd{c}}}}}{}}{{{Dn{Nd}}E`A@j}{{Eb{{n{dA@h}}}}}}3{{{Dn{Nf}}E`{Bf{Ed}}}{{Eb{{n{DlA@h}}}}}}{Nf{{n{A@lA@n}}}}{L`L`}{{L`Hb}L`}{{cg}{{AA`{ei}}}{}{}{{Oj{}{{Ib{e}}}}}{{Id{}{{Ib{e}}}}}}0{{c{Eh{Efegi}}}{{Ej{kegi}}}{}El{EnF`}Fb{}}0{{c{Eh{Efegi}}Fd}{{Ej{kegi}}}{}El{EnF`}Fb{}}0{{Nd{Bf{Ed}}}{{n{{Bd{Dl}}Ld}}}}{{NdDlAh}{{n{{Bd{AAb}}Ld}}}}{{Nd{Bf{AAd}}}{{n{{Bd{Dl}}Ld}}}}{DhAAf}{{Nd{Bf{Ed}}}{{n{dAAh}}}}{{NdDl}{{n{{Bl{Ed}}AAj}}}}{{KlLh}Kl}{{L`N`}L`}``{DhAd}{KnAd}{{NfLh}{{n{dA@n}}}}{DhHj}{{L`H`}L`}{DfH`}{{DhAAd}{{n{dAAl}}}}{{KlIf}Kl}{{Llc}nBn}{{Lnc}nBn}{{Bjc}nBn}{{M`c}nBn}{{Df{Bl{{Bl{Ed}}}}}{{Dj{d}}}}{{DhLh}d}0{{NfA@l}{{n{dA@n}}}}1{Ld{{Bd{AAn}}}}{Lf{{Bd{AAn}}}}{Lj{{Bd{AAn}}}}{DhDl}{DhAB`}{{NdLh}{{n{dA@n}}}}{Nf{{n{LhABb}}}}{{KlLh}Kl}{{KlABd}Kl}{ce{}{}}00000000000{cGf{}}000000{{L`Kl}L`}{c{{n{e}}}{}{}}00000{If{{n{LhOb}}}}1{ABf{{n{LhOb}}}}{Dl{{n{LhOb}}}}333333333333333333333333333333333{{{Dn{c}}E`}Eb{}}`{cC`{}}000000000000000000088888888888888888888{Df{{`{{D`{}{{Ab{Bb}}}}}}}}{DhABh}{{Nf{Bf{Ed}}}{{n{DlLf}}}}{{Nf{Bf{Ed}}}{{n{dLf}}}}{{Nf{Bf{AAd}}}{{n{dLf}}}}{{NfAAd}{{n{dLf}}}}{{Nf{Bf{AAd}}}{{n{ABjLf}}}}{{cg}{{Ff{i}}}{}{}{{Cn{}{{Ab{e}}}}}{{D`{}{{Ab{e}}}}}}0``````````{{cb}d{}}00{c{{ABl{eg}}}{}{}ABn}{An{{AC`{Ed}}}}{An{{Bf{Ed}}}}{ce{}{}}000000000{ACbACb}{AnAn}{H`H`}{{ce}d{}{}}00{{AnAn}l}{{ce}l{}{}}{c{{n{ACb}}}A`}{c{{n{An}}}A`}{c{{n{H`}}}A`}{ce{}{{ACf{ACd}}}}0{{ACbACb}Ah}{{AnAn}Ah}{{ce}Ah{}{}}00000{{ACbAj}{{n{dAl}}}}000{{AChAj}{{n{dAl}}}}{{AnAj}{{n{dAl}}}}0{{ACjAj}{{n{dAl}}}}0{{H`Aj}{{n{dAl}}}}0{AnGf}{cc{}}{{{AC`{Ed}}}ACb}0{AClACb}22{ACnAn}3{AD`ACj}{ADbACj}5{ADdH`}{{{AC`{Ed}}}H`}6{{{AC`{Ed}}}{{n{AnADb}}}}1{{{AC`{Ed}}{AC`{Ed}}}ACb}999{{{Bf{Ed}}}{{n{ACbADb}}}}{I`{{n{ACbADb}}}}{I`{{n{An}}}}{I`{{n{H`}}}}{{}H`}{cH`{ADfADh}}{{Anc}dKb}{ce{}{}}0000{{AChADj}{{n{dADl}}}}{{AnAn}{{Bd{l}}}}{H`An}{ACb{{AC`{Ed}}}}0{{AChADj}d}{{ACbc}nBn}{{Anc}nBn}{{H`c}nBn}{{H`An}ACh}{{H`{Bf{Ed}}}ACb}{ACj{{Bd{AAn}}}}77{H`{{AC`{Ed}}}}{H`{{n{{ADn{Gf}}AE`}}}}==={cGf{}}000{ACb{{Bl{Ed}}}}{c{{n{{ABl{eg}}{AEb{e}}}}}{}{}ABn}{c{{n{e}}}{}{}}{AEd{{n{ACbAE`}}}}{{{Bf{Ed}}}{{n{ACbADb}}}}122{{{Bf{Ed}}}{{n{An}}}}{{{AC`{Ed}}}{{n{An}}}}44{{{Bf{Ed}}}{{n{H`}}}}{c{{n{H`ADl}}}{{AEf{{Bf{Ed}}}}}}66666{cC`{}}0000{{An{Bf{Ed}}ACb}{{n{dADb}}}}{ce{}{}}0000````{{cb}d{}}````````11{AEhAEh}{{ce}d{}{}}{{}AEh}{{AEhAj}Db}{cc{}}06{AEh{{AEj{{Bh{I`Od}}}}}}{{}I`}```````````````````````````````8{c{{n{e}}}{}{}}0;`9````8{AElAEn}{{AF`Lb}{{Dj{AEl}}}}{c{{Dj{AEl}}}{{AFb{Ad}}}}1{Lb{{Dj{AEl}}}}000===={AF`AF`};{AElc{}}{AEld}{{AF`AF`}Ah}{{ce}Ah{}{}}00{{AF`Aj}Db}{{AElAj}Db}>{IhAF`}{AFdAEl}{cc{}}0{ce{}{}}0`{AF`Ih}`1{c{{n{e}}}{}{}}000{cC`{}}0233`{{cb}d{}}44{AFfAFf}{{ce}d{}{}}{{}AFf}{{AFfAFf}Ah}>>>{{AFfAj}Db}::9{AFhAh}`3`:887:``6::::{AFjAFj}5{AFld}{{AFjAFj}Ah}{{ce}Ah{}{}}00{{AFjAj}Db}{{AFlAj}Db}{cc{}}00{{AFjc}dKb}{ce{}{}}0{AFl{{Dj{d}}}}{{}{{Dj{AFl}}}}{{AFlc}{{Dj{AFj}}}{{AG`{Ah}{{Ib{{AFn{d}}}}}}MjMh}}3{c{{n{e}}}{}{}}000{cC`{}}0{{AFlAFj}{{Dj{d}}}}66````{{cb}d{}}00077777777`{AGbAGb}{AGdAGd}{AGfAGf}{AGhAGh}{{ce}d{}{}}000{{}AGb}{{}AGd}{{}AGf}{{AGdAGd}Ah}{{AGfAGf}Ah}{{ce}Ah{}{}}00000{{AGbAj}Db}{{AGdAj}Db}0{{AGfAj}Db}{{AGhAj}Db}{cc{}}0000000{{AGhCf{Bd{{Ol{AEl}}}}{Bd{{Ol{AEl}}}}}{{Dj{{Ol{AGd}}}}}}{{AGhCf{Bd{{Ol{AEl}}}}{Bd{{Ol{AEl}}}}}{{Dj{{AGj{{Dj{{Ol{AGd}}}}}}}}}}`````{ce{}{}}000````{AGb{{AEj{{Bh{I`Od}}}}}}{AGf{{`{{Af{}{{Ab{{Bh{BbHj}}}}}}}}}}``{{}I`}{{{Bd{AGl}}Hl}{{Dj{AGh}}}}```{{AGhAAdAd}d}``````````5555{cGf{}}{c{{n{e}}}{}{}}0000000{cC`{}}000`8888````{{cb}d{}}9999{AGnAGn}{{ce}d{}{}}{{}AGn}{{AH`Aj}Db}0{{AGnAj}Db}{ADlAH`}{cc{}}{AHbAH`}11{ce{}{}}06{{AGnIh{Bf{Ed}}}{{Dj{HjAH`}}}}{AH`{{Bd{AAn}}}}2>====<<22`````;;;;{AHdAh}3333333333{AHfAHf}{AHdAHd}{AHhAHh}{AGlAGl}>>>>{AGld}{{}AHf}{{}AHh}{{}AGl}```{{AHdAHd}Ah}{{ce}Ah{}{}}00`{{AHfAj}Db}{{AHdAj}Db}0{{AHhAj}Db}{{AGlAj}Db}{{AHjAj}Db}{cc{}}00000000{ce{}{}}0000{AHf{{AEj{{Bh{I`Od}}}}}}```{{}I`}`{AHhAGl}```{AGl{{AGj{{Dj{AHdGf}}}}}}`{AGld}5555{cGf{}}{c{{n{e}}}{}{}}000000000{cC`{}}0000{{AGlAHl}d}`````99999{AGl{{AI`{{Bd{AHn}}}}}}````````````````````````````````````````````````{{cb}d{}}000000{{AIbc}AIb{{AG`{}{{Ib{{AFn{Ah}}}}}}MhMj}}<<<<<<<<<<<<<<<<<<<<{{AIbH`Hl}{{Bh{AIdAIf}}}}{{AIbAh}AIb}{BbBb}{AIhAIh}{AIjAIj}{AIdAId}{N`N`}{CfCf}{CdCd}{{ce}d{}{}}000000{AIhd}{AId{{n{dAIl}}}}0{{BbBb}l}{{CdCd}l}{{ce}l{}{}}0{AId{{n{{Bh{AIhDl}}AIl}}}}{{CfBb}Ah}{{BbLb}Cf}{Bb}{c{{n{Bb}}}A`}{c{{n{Cd}}}A`}{{}Cf}{{BbBb}Ah}{{AIhAIh}Ah}{{N`N`}Ah}{{CfCf}Ah}{{CdCd}Ah}{{ce}Ah{}{}}00000000000000{{BbAj}{{n{dAl}}}}0{{AIhAj}Db}{{AIjAj}Db}{{AIlAj}Db}0{{AIdAj}Db}{{AIfAj}Db}{{AIbAj}Db}{{N`Aj}Db}{{CfAj}Db}0{{CdAj}Db}0{cc{}}{HbBb}11{A@hAIl}2{AInAIl}{AJ`AIl}{AJbAIl}{AJdAIl}666666{c{{Dj{Cf}}}{{Cb{}{{Ab{Cd}}}}}}7777777{I`{{n{Bb}}}}{BbCf}{{CfBb}{{Bd{{Ol{Cd}}}}}}{{Bbc}dKb}`{{AIbAh}AIb}{ce{}{}}000000000{AIhAh}{AId{{n{AhAIl}}}}{CfAh}44{CfDl}{AIh{{Bd{Ad}}}}{AId{{Bd{Ad}}}}{cAIb{{AFb{Bb}}}}{Cf{{`{{Af{}{{Ab{{Ol{Cd}}}}}}}}}}{{AIhAh}{{Dj{d}}}}{{AIdAh}d}{{BbBb}{{Bd{l}}}}{{CdCd}{{Bd{l}}}}{AId{{n{HjAIl}}}}{{AIbAJf}AIb}{{AIbHb}AIb}{AIdAn}{AIf{{Bd{{n{{Bh{AIjDl}}AIl}}}}}}{N`Cf}{{AIhAnAAd}{{Dj{d}}}}{{AIdAnAAd}{{n{dAIl}}}}{{AIh{AC`{Ed}}}{{Dj{d}}}}0{{AId{AC`{Ed}}}{{n{dAIl}}}}{{Bbc}nBn}{{Cdc}nBn}`{{AIbAn}AIb}{{AIbc}AIb{{AFb{Bb}}}}{AIl{{Bd{AAn}}}}``{ce{}{}}000000{cGf{}}000{c{{n{e}}}{}{}}0000000000000000000{cC`{}}000000000`{Cf{{`{{Af{}{{Ab{Bb}}}}}}}}4444444444``````````{{cb}d{}}55{AJfAJf}{{ce}d{}{}}{{AJfAJf}Ah}{{ce}Ah{}{}}00{{AJfAj}Db}{cc{}}0;{AJh{{Bd{AJf}}}}<::9{AJfI`}=```````````````88{AJjd}{{AJlAJfAJn}{{Dj{d}}}}````??????????????????????``{{c{AK`{e}}}{}{}{}}{{AJl{AK`{AKb}}}c{}}`{{AJjAKd}AJl}{AJlAJl}{AKfAKf}==6{{}AKf}{{}{{AKh{ce}}}{AKjJn}{AKjJn}}{{}AKl}`````{{AJjAj}Db}{{AJlAj}Db}{{AKfAj}Db}{{AJnAj}Db}{{{AKh{ce}}Aj}Db{JnJn}{JnJn}}{{{AKn{ce}}Aj}Db{JnJn}{JnJn}}{{AL`Aj}Db}{{{ALb{ce}}Aj}Db{JnJn}{JnJn}}{{AKlAj}Db}{{{ALd{ce}}Aj}DbJnJn}{{ALfAj}Db}{cc{}}000000000000`{ALf{{Bd{Ad}}}}`0`{ce{}{}}0000000000{AJjAh}{AKf{{AEj{{Bh{I`Od}}}}}}`{AJj{{Bf{Ed}}}}`{{}I`}{H`AJj}```{{{Dn{AJn}}E`}{{Eb{{n{dA@h}}}}}}{{{Dn{AJn}}E`A@j}{{Eb{{ALh{d}}}}}}1{{{Dn{AJn}}E`{Bf{Ed}}}{{Eb{{n{DlA@h}}}}}}{{{Dn{AJn}}E`{Bf{ALj}}}{{Eb{{n{DlA@h}}}}}}{AJjAn}`{AJjH`}`````{ALf{{Dj{d}}}}{{{AKh{ce}}}{{Dj{ALf}}}JnJn}`>{ALf{{ALl{{Dj{d}}}}}}`>>{c{{n{e}}}{}{}}000000000000000000000{cC`{}}0000000000``{ce{}{}}0000000000````````````````````````````````````{{cb}d{}}00{ALn{{n{AM`AMb}}}}{c{{ABl{eg}}}{}{}ABn}{AMd{{AC`{Ed}}}}{ALn{{n{AMfAMb}}}}{ALn{{n{AMhAMb}}}}{ALn{{n{AMjAMb}}}}{ALn{{n{AMlAMb}}}}{ALn{{n{AMnAMb}}}}{ALn{{n{AN`AMb}}}}{ALn{{n{ANbAMb}}}}{ALn{{n{ANdAMb}}}}{ALn{{n{ANfAMb}}}}{AMd{{Bf{Ed}}}}{ALn{{n{ANhAMb}}}}{ALn{{n{ANjAMb}}}}{ALn{{n{ANlAMb}}}}{ALn{{n{ANnAMb}}}}{ALn{{n{AO`AMb}}}}{ALn{{n{AObAMb}}}}{ALnAOd}{ce{}{}}00000000000{AOfAOf}{AOhAOh}{AMdAMd}{{ce}d{}{}}00{{AMdAMd}l}{{ce}l{}{}}{{AOf{Bf{Ed}}}{{n{{Bh{AOjDl}}AOl}}}}{{}AOf}{{}AMd}{AMd{{Bf{Ed}}}}{ce{}{{ACf{ACd}}}}0{{AOhAOh}Ah}{{AMdAMd}Ah}{{ce}Ah{}{}}00000{ALnAM`}{ALnAMf}{ALnAMh}{ALnAMj}{ALnAMl}{ALnAMn}{ALnAN`}{ALnANb}{ALnANd}{ALnANf}{ALnANh}{ALnANj}{ALnANl}{ALnANn}{ALnAO`}{ALnAOb}{{AOfAj}{{n{dAl}}}}{{AOhAj}{{n{dAl}}}}{{AMdAj}{{n{dAl}}}}0{{ALnAj}{{n{dAl}}}}{{AOlAj}{{n{dAl}}}}0{{AOnAj}Db}0{cc{}}0{{{AC`{Ed}}}AMd}01{ANjALn}{ANlALn}{ANfALn}{AMhALn}{ANhALn}{AO`ALn}{AMfALn}{ANnALn}{AM`ALn}{AMlALn}{ANbALn}{AMjALn}{AMnALn}>{ANdALn}{AObALn}{AN`ALn}{cc{}}0000{AOf{{Bd{B@`}}}}{{AMdc}dKb}{ce{}{}}00000{{{Bf{Ed}}}Ah}{ALnAh}000000000000000`{{{Bf{Ed}}}{{n{AMdAOn}}}}{{{Bf{Ed}}}{{n{{Bh{AMdAd}}AOn}}}}{{AMdAMd}{{Bd{l}}}}{AMd{{Bl{Ed}}}}{{AMdAd}{{Bl{Ed}}}}777{cGf{}}00{c{{n{{ABl{eg}}{AEb{e}}}}}{}{}ABn}{c{{n{e}}}{}{}}0{Ed{{n{AOh}}}}1111111111{cC`{}}00000<<<<<<`````<<<<{Ad{{Dj{In}}}}{{B@bH`}{{G`{Fh}}}}{B@bHl}{{B@dAj}Db}{{B@bAj}Db}{cc{}}0{ce{}{}}0``{{B@bCjHj}{{Dj{d}}}}`{{}{{Dj{B@b}}}}{{}{{Dj{{Bh{CfBbALf}}}}}}{Gf{{Dj{B@b}}}}====;;44`{{cb}d{}}55{B@fB@f}{{ce}d{}{}}{c{{n{B@f}}}A`}{{B@fB@f}Ah}{{ce}Ah{}{}}00{{B@fAj}{{n{dAl}}}}0<{{{Bf{Ed}}}{{n{B@fB@h}}}}={I`{{n{B@f}}}}={f{{n{B@fADl}}}}{B@ff}{{B@fc}nBn}{B@f{{Bl{Ed}}}}{ce{}{}}{cGf{}}{c{{n{e}}}{}{}}0{cC`{}}3`{{H`{Bd{An}}{Bl{{Bl{Ed}}}}Ah}{{n{B@jB@l}}}}{{H`{Bl{{Bl{Ed}}}}Ah}{{n{B@nB@l}}}}`````5555555555{{BA`Aj}Db}{{BAbAj}Db}{{B@lAj}Db}0{{BAdAj}Db}0{{BAfAj}Db}0{cc{}}0{BAhB@l}11{BAjBAd}2{BAjBAf}{H`{{n{{Bh{BAlBAn}}B@l}}}}?????{BAl{{n{BA`BAd}}}}{BA`An}{B@l{{Bd{AAn}}}}{BAd{{Bd{AAn}}}}{BAf{{Bd{AAn}}}}{cGf{}}00{c{{n{e}}}{}{}}000000000{cC`{}}0000{{BA`BB`{Bf{Ed}}{Bf{Ed}}}{{n{dBAf}}}}{ce{}{}}0000````{{cb}d{}}11111111`{{{BBb{c}}}{{BBb{c}}}{IlIlMh}}{{ce}d{}{}}{{}{{BBd{c}}}{}}{{{ALl{c}}}e{}{}}{{{ALl{c}}}d{}}{{{BBb{c}}}d{IlMh}}{BBfd}{{{ALl{c}}Aj}DbJn}{{{BBb{c}}Aj}Db{JnIlMh}}{{BBfAj}Db}{{{BBd{c}}Aj}DbJn}{cc{}}{{{BBh{c}}}{{ALl{c}}}{}}{{{BBh{c}}}{{BBb{c}}}{IlMh}}2222`????{c{}{}}00{{ce}{{Oh{g}}}{}OjId}00{{I`BBj}BBf}{{{Dn{{ALl{c}}}}E`}{{Eb{e}}}{}{}}{{{Dn{{BBb{c}}}}E`}{{Eb{e}}}{IlMh}{}}{{{Dn{{BBd{c}}}}E`}{{Eb{e}}}{IdBBl}{}}{{cg}{{AA`{ei}}}{}{}{{Oj{}{{Ib{e}}}}}{{Id{}{{Ib{e}}}}}}00{ce{}{}}{c{{n{e}}}{}{}}0000000{{{Dn{c}}E`}Eb{}}00{cC`{}}0003333`33{{ce}{{BBn{ce}}}BC`BC`}{{{Dn{{BBn{ce}}}}Dl}dBCbBCb}{{{BBn{ce}}Aj}DbJnJn}{cc{}}{{{BBn{ce}}}{{Bh{ce}}}BC`BC`}{{{Dn{{BBn{ce}}}}}{{Bh{{Dn{c}}{Dn{e}}}}}BC`BC`}191{{{Dn{{BBn{ce}}}}E`}{{Eb{{ALh{{Bf{Ed}}}}}}}BCbBCb}{{{Dn{{BBn{ce}}}}E`A@j}{{Eb{{ALh{d}}}}}BC`BC`}::8;","D":"GEn","p":[[5,"Private",2365],[1,"unit"],[5,"NodeAddr",0,2366],[6,"AddrInfoOptions",2366],[5,"AddrInfo",0,2366],[6,"Ordering",2367],[6,"Result",2368],[10,"Deserializer",2369],[17,"Item"],[6,"SocketAddr",2370],[10,"Iterator",2371],[1,"bool"],[5,"Formatter",2372],[5,"Error",2372],[5,"PublicKey",905,2373],[5,"NodeInfo",283],[5,"RelayUrl",1462,2366],[6,"Option",2374],[1,"slice"],[1,"tuple"],[5,"ConnectionInfo",361],[5,"Vec",2375],[10,"Serializer",2376],[5,"TypeId",2377],[10,"IntoIterator",2378],[5,"RelayNode",1462,2379],[5,"RelayMap",1462,2379],[5,"Dialer",104],[8,"NodeId",0,2373],[5,"Chain2",2380],[10,"IntoStream",2381],[10,"Stream",2382],[8,"Result",2372],[5,"Merge2",2383],[5,"Endpoint",361],[5,"Connection",361,2384],[8,"Result",2385],[1,"usize"],[5,"Pin",2386],[5,"Context",2387],[6,"Poll",2388],[1,"u8"],[6,"NotKeyed",2389],[5,"RateLimiter",2390],[5,"RatelimitedStream",2391],[10,"DirectStateStore",2389],[10,"Clock",2392],[10,"ReasonablyRealtime",2393],[10,"RateLimitingMiddleware",2394],[5,"Jitter",2395],[5,"Zip2",2396],[5,"ConcurrentDiscovery",127],[10,"Discovery",127],[5,"DiscoveryItem",127],[5,"Peer",2397],[5,"Box",2398],[8,"Boxed",2399],[5,"DnsDiscovery",169],[5,"String",2400],[5,"LocalSwarmDiscovery",184],[5,"PkarrPublisher",197],[5,"PkarrResolver",197],[5,"PkarrRelayClient",197],[5,"SecretKey",905,2373],[5,"Url",2401],[5,"SignedPacket",2402],[8,"BoxStream",2382],[1,"u32"],[5,"Duration",2403],[8,"DnsResolver",258],[10,"ResolverExt",258],[1,"str"],[17,"Output"],[10,"Future",2404],[1,"u64"],[6,"IpAddr",2405],[10,"IntoName",2406],[10,"Clone",2407],[8,"TokioAsyncResolver",2408],[6,"IrohAttr",283],[5,"TxtAttrs",283],[5,"BTreeMap",2409],[10,"FromStr",2410],[10,"Display",2372],[10,"Hash",2411],[10,"Ord",2367],[10,"Debug",2372],[5,"Record",2412],[10,"Hasher",2411],[5,"BTreeSet",2413],[5,"Accept",361],[5,"AcceptBi",2384],[5,"AcceptUni",2384],[5,"TransportConfig",361,2414],[5,"Connecting",361],[5,"Builder",361],[1,"u16"],[6,"ReadError",361,2415],[6,"WriteError",361,2416],[5,"VarInt",361,2417],[6,"ConnectionError",361,2418],[6,"ControlMsg",361,2419],[5,"DirectAddrInfo",361,2419],[6,"ConnectionType",361,2419],[5,"DirectAddr",361,2420],[6,"DirectAddrType",361,2420],[10,"ControllerFactory",2421],[10,"Send",2422],[10,"Sync",2422],[10,"Controller",2421],[5,"ConnectionTypeStream",361,2423],[6,"RelayMode",1462,2379],[5,"DirectAddrsStream",361,2420],[5,"RecvStream",361,2415],[5,"SendStream",361,2416],[5,"ExportKeyingMaterialError",2424],[6,"ReadableError",2425],[5,"StreamId",2426],[6,"Close",2427],[5,"Error",2428],[5,"VarIntBoundsExceeded",2417],[10,"Any",2377],[5,"ZeroRttAccepted",2384],[5,"Join2",2429],[10,"IntoFuture",2430],[5,"Arc",2431],[5,"ServerConfig",2414],[5,"IdleTimeout",2414],[5,"MtuDiscoveryConfig",2414],[5,"OpenBi",2384],[5,"OpenUni",2384],[5,"Error",2432],[5,"ReadBuf",2433],[1,"i32"],[5,"UnknownStream",2384],[5,"Race2",2434],[5,"Chunk",2435],[5,"Bytes",2436],[5,"ReadDatagram",2384],[6,"ReadExactError",2415],[6,"ReadToEndError",2415],[6,"SendDatagramError",2384],[10,"Error",2437],[5,"ConnectionStats",2438],[6,"StoppedError",2416],[1,"f32"],[1,"u128"],[5,"WeakConnectionHandle",2384],[5,"Written",2439],[5,"BitSlice",2440],[10,"BitOrder",2441],[1,"array"],[5,"Signature",905,2442],[1,"char"],[10,"FromIterator",2378],[5,"SharedSecret",905,2443],[6,"KeyParsingError",905,2373],[5,"InternalSignature",2444],[5,"VerifyingKey",2445],[6,"HexOrBase32ParseError",2446],[5,"Error",2447],[5,"SigningKey",2448],[10,"CryptoRngCore",2449],[10,"Sized",2422],[10,"Buffer",2450],[5,"Error",2385],[5,"Zeroizing",2451],[6,"Error",2452],[6,"BitSpanError",2453],[5,"Signature",2454],[10,"AsRef",2455],[5,"MagicsockMetrics",1049],[5,"IntoIter",2456],[5,"UdpSocket",1110,2457],[5,"BorrowedFd",2458],[6,"IpFamily",1110,2459],[10,"Into",2455],[5,"UdpSocket",2460],[5,"LocalAddresses",1157],[5,"Ipv6Addr",2405],[5,"CallbackToken",1181,2461],[5,"Monitor",1181],[8,"Boxed",2462],[10,"Fn",2463],[5,"Metrics",1216,2464],[5,"Report",1216],[5,"RelayLatencies",1216],[5,"Client",1216],[5,"Receiver",2465],[5,"Client",1357],[5,"Pinger",1322],[6,"PingError",1322],[6,"SurgeError",2466],[5,"ProbeOutput",1357],[5,"Metrics",1357,2467],[5,"Config",1357],[5,"Service",1357],[8,"NonZeroU16",2468],[5,"SocketAddrV4",2370],[5,"Receiver",2469],[5,"HttpClientBuilder",1462],[5,"HttpClient",1462],[5,"HttpClientReceiver",1462],[5,"RelayConn",1462],[6,"ReceivedMessage",1462,2470],[6,"HttpClientError",1462],[6,"Error",2471],[5,"Error",2472],[5,"JoinError",2473],[5,"Error",2474],[6,"Protocol",1733],[5,"HeaderValue",2475],[5,"ServerActorTask",1758,2476],[5,"ClientConnHandler",1758,2476],[6,"MaybeTlsStreamServer",1758],[5,"Request",2477],[5,"Incoming",2478],[5,"HeaderMap",2479],[5,"Metrics",1758,2480],[5,"ServerConfig",1758],[10,"Default",2481],[5,"Limits",1758],[5,"RelayConfig",1758],[5,"StunConfig",1758],[5,"TlsConfig",1758],[6,"CertConfig",1758],[5,"Server",1758],[8,"Result",2432],[5,"IoSlice",2482],[5,"AbortingJoinHandle",2277],[6,"StunAttribute",1943,2483],[5,"AlternateServer",2484],[5,"StunError",2485],[5,"TransactionId",1943,2486],[5,"ErrorCode",2487],[6,"Fingerprint",2488],[5,"MappedAddress",2489],[6,"MessageIntegrity",2490],[6,"MessageIntegritySha256",2491],[5,"Nonce",2492],[5,"PasswordAlgorithm",2493],[5,"PasswordAlgorithms",2494],[5,"Realm",2495],[5,"Software",2496],[5,"Unknown",2497],[5,"UnknownAttributes",2498],[5,"UserHash",2499],[5,"UserName",2500],[5,"XorMappedAddress",2501],[5,"AttributeType",2483],[5,"MessageDecoder",1943,2502],[6,"MessageClass",1943,2503],[5,"StunMessage",2503],[5,"StunDecodeError",1943,2485],[6,"Error",1943],[5,"DecoderContext",2502],[5,"DnsPkarrServer",2150,2504],[5,"CleanupDropGuard",2150],[5,"NodeTicket",2180,2505],[6,"Error",2506],[5,"ClientConfig",2507],[5,"GenError",2211],[5,"ServerConfig",2508],[5,"P2pCertificate",2211],[5,"P2pExtension",2211],[5,"ParseError",2211],[5,"VerificationError",2211],[6,"Error",2509],[6,"Error",2510],[5,"Certificate",2511],[5,"PrivateKey",2511],[6,"SignatureScheme",2512],[5,"SharedAbortingJoinHandle",2277],[5,"MaybeFuture",2277],[5,"CancelOnDrop",2277],[5,"JoinHandle",2513],[5,"AbortHandle",2514],[10,"Unpin",2422],[5,"Chain",2347],[10,"AsyncRead",2515],[10,"AsyncBufRead",2516],[15,"ReceivedPacket",1728],[15,"Health",1728],[15,"ServerRestarting",1728],[15,"Manual",1940],[15,"LetsEncrypt",1940]],"r":[[0,2366],[1,361],[2,2366],[3,2373],[54,2517],[362,2366],[367,2384],[369,2418],[373,2419],[374,2423],[375,2419],[377,2420],[378,2419],[379,2420],[380,2420],[388,2366],[393,2415],[394,2415],[398,2416],[403,2414],[408,2417],[410,2416],[908,2373],[909,2373],[910,2518],[911,2373],[912,2373],[913,2443],[914,2442],[1110,2459],[1111,2457],[1181,2461],[1217,2464],[1359,2467],[1484,2519],[1495,2470],[1498,2379],[1499,2379],[1500,2379],[1502,2366],[1759,2476],[1764,2480],[1768,2476],[1953,2503],[1954,2502],[1966,2483],[1967,2485],[1969,2486],[2109,2520],[2147,2521],[2148,2521],[2149,2521],[2151,2504],[2156,2522],[2180,2505]],"b":[[40,"impl-From%3CPublicKey%3E-for-NodeAddr"],[41,"impl-From%3CNodeInfo%3E-for-NodeAddr"],[43,"impl-From%3C(PublicKey,+Option%3CRelayUrl%3E,+%26%5BSocketAddr%5D)%3E-for-NodeAddr"],[44,"impl-From%3CNodeInfo%3E-for-NodeAddr"],[311,"impl-Debug-for-IrohAttr"],[312,"impl-Display-for-IrohAttr"],[317,"impl-From%3CTxtAttrs%3CIrohAttr%3E%3E-for-NodeInfo"],[318,"impl-From%3C%26TxtAttrs%3CIrohAttr%3E%3E-for-NodeInfo"],[589,"impl-Display-for-ReadError"],[590,"impl-Debug-for-ReadError"],[592,"impl-Debug-for-WriteError"],[593,"impl-Display-for-WriteError"],[595,"impl-Debug-for-VarInt"],[596,"impl-Display-for-VarInt"],[599,"impl-Display-for-ConnectionError"],[600,"impl-Debug-for-ConnectionError"],[603,"impl-Debug-for-ControlMsg"],[604,"impl-Display-for-ControlMsg"],[607,"impl-Display-for-ConnectionType"],[608,"impl-Debug-for-ConnectionType"],[612,"impl-Display-for-DirectAddrType"],[613,"impl-Debug-for-DirectAddrType"],[617,"impl-From%3CConnectionError%3E-for-ReadError"],[618,"impl-From%3CReadableError%3E-for-ReadError"],[623,"impl-From%3CStreamId%3E-for-VarInt"],[624,"impl-From%3Cu16%3E-for-VarInt"],[626,"impl-From%3Cu32%3E-for-VarInt"],[627,"impl-From%3Cu8%3E-for-VarInt"],[630,"impl-From%3CClose%3E-for-ConnectionError"],[631,"impl-From%3CError%3E-for-ConnectionError"],[817,"impl-TryFrom%3Cu64%3E-for-VarInt"],[819,"impl-TryFrom%3Cu128%3E-for-VarInt"],[820,"impl-TryFrom%3Cusize%3E-for-VarInt"],[952,"impl-LowerHex-for-Signature"],[953,"impl-Display-for-Signature"],[954,"impl-UpperHex-for-Signature"],[955,"impl-Debug-for-Signature"],[957,"impl-Debug-for-PublicKey"],[958,"impl-Display-for-PublicKey"],[959,"impl-Debug-for-KeyParsingError"],[960,"impl-Display-for-KeyParsingError"],[961,"impl-Display-for-SecretKey"],[962,"impl-Debug-for-SecretKey"],[965,"impl-From%3C%26%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[966,"impl-From%3C%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[967,"impl-From%3CInternalSignature%3E-for-Signature"],[972,"impl-From%3CHexOrBase32ParseError%3E-for-KeyParsingError"],[973,"impl-From%3CError%3E-for-KeyParsingError"],[975,"impl-From%3CSigningKey%3E-for-SecretKey"],[976,"impl-From%3C%5Bu8;+32%5D%3E-for-SecretKey"],[1008,"impl-SignatureEncoding-for-Signature"],[1009,"impl-Signature"],[1022,"impl-TryFrom%3C%26Signature%3E-for-Signature"],[1023,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-Signature"],[1024,"impl-TryFrom%3CSignature%3E-for-Signature"],[1027,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-PublicKey"],[1028,"impl-TryFrom%3C%26%5Bu8;+32%5D%3E-for-PublicKey"],[1253,"impl-Display-for-Report"],[1254,"impl-Debug-for-Report"],[1334,"impl-Display-for-PingError"],[1335,"impl-Debug-for-PingError"],[1337,"impl-From%3CError%3E-for-PingError"],[1339,"impl-From%3CSurgeError%3E-for-PingError"],[1398,"impl-Display-for-ProbeOutput"],[1399,"impl-Debug-for-ProbeOutput"],[1588,"impl-Display-for-RelayUrl"],[1589,"impl-Debug-for-RelayUrl"],[1592,"impl-Debug-for-ClientError"],[1593,"impl-Display-for-ClientError"],[1598,"impl-Display-for-RelayMap"],[1599,"impl-Debug-for-RelayMap"],[1600,"impl-Display-for-RelayNode"],[1601,"impl-Debug-for-RelayNode"],[1606,"impl-From%3CError%3E-for-ClientError"],[1608,"impl-From%3CError%3E-for-ClientError"],[1609,"impl-From%3CError%3E-for-ClientError"],[1610,"impl-From%3CJoinError%3E-for-ClientError"],[1611,"impl-From%3CError%3E-for-ClientError"],[2050,"impl-Display-for-TransactionId"],[2051,"impl-Debug-for-TransactionId"],[2053,"impl-Display-for-StunDecodeError"],[2054,"impl-Debug-for-StunDecodeError"],[2055,"impl-Display-for-Error"],[2056,"impl-Debug-for-Error"],[2059,"impl-From%3C%26%5Bu8;+stun_rs::::types::%7Bimpl%2313%7D::%7Bconstant%230%7D%5D%3E-for-TransactionId"],[2060,"impl-From%3C%5Bu8;+stun_rs::::types::%7Bimpl%2314%7D::%7Bconstant%230%7D%5D%3E-for-TransactionId"],[2062,"impl-From%3CUnknown%3E-for-StunAttribute"],[2063,"impl-From%3CUnknownAttributes%3E-for-StunAttribute"],[2064,"impl-From%3CRealm%3E-for-StunAttribute"],[2065,"impl-From%3CFingerprint%3E-for-StunAttribute"],[2066,"impl-From%3CSoftware%3E-for-StunAttribute"],[2067,"impl-From%3CUserName%3E-for-StunAttribute"],[2068,"impl-From%3CErrorCode%3E-for-StunAttribute"],[2069,"impl-From%3CUserHash%3E-for-StunAttribute"],[2070,"impl-From%3CAlternateServer%3E-for-StunAttribute"],[2071,"impl-From%3CMessageIntegrity%3E-for-StunAttribute"],[2072,"impl-From%3CPasswordAlgorithm%3E-for-StunAttribute"],[2073,"impl-From%3CMappedAddress%3E-for-StunAttribute"],[2074,"impl-From%3CMessageIntegritySha256%3E-for-StunAttribute"],[2076,"impl-From%3CPasswordAlgorithms%3E-for-StunAttribute"],[2077,"impl-From%3CXorMappedAddress%3E-for-StunAttribute"],[2078,"impl-From%3CNonce%3E-for-StunAttribute"],[2191,"impl-Debug-for-NodeTicket"],[2192,"impl-Display-for-NodeTicket"],[2228,"impl-Display-for-GenError"],[2229,"impl-Debug-for-GenError"],[2230,"impl-Display-for-ParseError"],[2231,"impl-Debug-for-ParseError"],[2232,"impl-Display-for-VerificationError"],[2233,"impl-Debug-for-VerificationError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAI4FxgACAAAABQABAAkADAAXAAEAHwALACwAAgAxAAEAPQABAEQAAQBKAAcAUwABAGsAAwBxAAAAcwAAAHcAAAB5AAYAgwAAAIYABgCPAAIAlAABAJ4AAACgAAkArQACALQABAC6AAIAwAAFAM0AEgDjAAIA7gAAAPAAAADyAAsA/wACAA8BAAAXAQAAIgEBACUBCQAwAQsAPgECAEcBAQBLAQAAVAEAAFgBAABbAQAAXQEMAJ4BCwC2AScA4AEZAP4BBQARAgIAFQIDAB8CAQAiAicATAIaAGoCAQBtAgAAcAIBAHMCAQB3AgEAhAILAJcCAgC3AgEAugIBAL0CAQDSAgEA3gICAOMCBwDuAgUABgMDAA8DAgAYAxIALAMFADMDAAA2AyEAWQMnAIgDAQCUAwMAmQMqAMYDAgDLAwAAzQMBANADAQDWAwIA2gMCAN8DAADmAwAA6wMCAPADAQD1AwYA/QMLAAoECQAVBAQAGwQRAC4EAAAwBAEANgQDADsEGwBbBAEAZAQNAHMEAQB2BAAAfAQGAIQEAQCHBAoAkwQAAJkEBACgBA0AsAQBALcEBgC/BAEAxQQLANIEFwDuBAMAAQUAAAUFAAAOBRcAJwUDAC8FCwA8BQAAPgUAAEMFCgBTBQMAWAURAGsFAABtBQAAcQUKAIEFAwCKBQQAkgUBAJUFAACXBRMArQUIAOcFBgDvBRMABQYNABYGAwAdBgIAIQYhAEQGAABHBgAASQYDAFQGBwBeBgAAdwYBAIQGAQCJBgAAjAYoALcGCQDLBgkA1gYAANkGAwDeBgAA7gYBAPYGFQAOBwEAEgcDABcHAgAfBwoANQcBAEgHAABMBwAAUQcEAGQHIgCJBwoAuAcCALwHAADHBwAAzwcTAOQHAADmBwoAAQgIAAwIAQAPCAwAHQgCACIIAgAmCAAAQQgAAEQIHwBpCAMAcAgBAH0IBwCGCAsAkwgCAJkIBwCpCBEAvQgAAMAIAADCCAAAywgUAOEIBADqCAgA9AgKAAAJAQAFCQAACwkFABIJGQAtCQEAMAkBADgJBQA="}],\ ["iroh_net_bench",{"t":"FGGGPPPFPPPPNNNNNNNNNNNNNNNNHONNNNNNNNNNHNONNNNNNNNNNNNNNNONNNNNCONCOHCCNOONNNNNNNNNNNNNNNNNNNNNONNNNNSHHHHHHSHHHHHHFNNNNNNNNNNNNNNNNNNNNNNNFFFONNNNNNOOOONNOONNNNNNNNNNNONOOOHOOONNNNNNOONNNNNN","n":["ClientStats","Commands","ConnectionSelector","EndpointSelector","Iroh","Iroh","Iroh","Opt","Quinn","Quinn","Quinn","S2n","__clone_box","__clone_box","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","client_handler","clients","clone","clone","clone_into","clone_into","close","close","command","command","command_for_update","command_for_update","configure_tracing_subscriber","default","download_size","fmt","fmt","from","from","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_ref","from_ref","group_id","has_subcommand","initial_mtu","into","into","into","into","into","iroh","max_streams","print","quinn","read_unordered","rt","s2n","stats","stats","stats","streams","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","upload_size","vzip","vzip","vzip","vzip","vzip","ALPN","client","connect_client","handle_client_stream","server","server_endpoint","transport_config","ALPN","client","connect_client","handle_client_stream","server","server_endpoint","transport_config","Opt","__clone_box","augment_args","augment_args_for_update","borrow","borrow_mut","clone","clone_into","command","command_for_update","fmt","from","from_arg_matches","from_arg_matches_mut","from_ref","group_id","into","to_owned","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","Stats","StreamStats","TransferResult","avg_chunk_size","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","chunk_size","chunk_time","chunks","chunks","default","default","duration","duration_hist","fmt","fmt","fmt","from","from","from","into","into","into","new","print","size","stream_finished","stream_stats","streams","throughput","throughput_bps","throughput_hist","total_duration","total_size","try_from","try_from","try_from","try_into","try_into","try_into","ttfb","ttfb_hist","type_id","type_id","type_id","vzip","vzip","vzip"],"q":[[0,"iroh_net_bench"],[102,"iroh_net_bench::iroh"],[109,"iroh_net_bench::quinn"],[116,"iroh_net_bench::s2n"],[140,"iroh_net_bench::stats"],[192,"dyn_clone::sealed"],[193,"clap_builder::builder::command"],[194,"anyhow"],[195,"core::fmt"],[196,"clap_builder::parser::matches::arg_matches"],[197,"clap_builder"],[198,"core::result"],[199,"clap_builder::util::id"],[200,"core::option"],[201,"tokio::runtime::runtime"],[202,"core::any"],[203,"iroh_base::node_addr"],[204,"iroh_net::endpoint"],[205,"iroh_quinn::connection"],[206,"iroh_quinn_proto::config"],[207,"core::net::socket_addr"],[208,"quinn::endpoint"],[209,"quinn::connection"],[210,"quinn_proto::config"],[211,"core::time"]],"i":[0,0,0,0,4,5,9,0,4,5,9,9,9,6,6,6,9,9,4,5,9,6,7,4,5,9,6,7,0,6,9,6,9,6,4,5,9,6,9,6,0,7,6,9,6,4,5,9,6,7,9,6,9,6,9,6,6,9,6,4,5,9,6,7,0,6,7,0,6,0,0,0,5,6,6,9,6,4,5,9,6,7,4,5,9,6,7,4,5,9,6,7,9,6,9,6,6,4,5,9,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,0,0,0,30,38,39,30,38,39,30,39,39,39,30,38,39,30,39,38,39,30,38,39,30,38,39,30,30,38,30,38,38,38,30,0,39,38,38,38,39,30,38,39,30,30,39,38,39,30,38,39,30],"f":"````````````{{cb}d{}}0{ff}000{ce{}{}}000000000{{hjl}{{A`{n}}}}`{AbAb}{ll}{{ce}d{}{}}0{h{{A`{d}}}}{{jAd{Ah{Af}}}d}{{}f}000{{}d}{{}n}`{{AbAj}Al}{{lAj}Al}{cc{}}0000{An{{Bb{AbB`}}}}{An{{Bb{lB`}}}}1022{{}{{Bf{Bd}}}}{BhBj}`{ce{}{}}0000``{{nBl}d}``{{}Bn}``{jd}``33{c{{Bb{e}}}{}{}}000000000{cC`{}}0000{{AbAn}{{Bb{dB`}}}}{{lAn}{{Bb{dB`}}}}10`77777`{{Cbl}{{A`{n}}}}{{Cbl}{{A`{{Ch{CdCf}}}}}}{{CfCjBj}{{A`{{Ch{ClCl}}}}}}{{Cdl}{{A`{d}}}}{{Bnl}{{Ch{CbCd}}}}{{BlCn}D`}`{{Dbl}{{A`{n}}}}{{Dbl}{{A`{{Ch{DdDf}}}}}}{{DfCjBj}{{A`{{Ch{ClCl}}}}}}{{Ddl}{{A`{d}}}}{{Bnl}{{Ch{DbDd}}}}{{BlCn}Dh}`{{cb}d{}}{ff}0{ce{}{}}0{DjDj}{{ce}d{}{}}{{}f}0{{DjAj}Al}{cc{}}{An{{Bb{DjB`}}}}01{{}{{Bf{Bd}}}}77{c{{Bb{e}}}{}{}}0{cC`{}}{{DjAn}{{Bb{dB`}}}}0:````::::::````{{}Dl}{{}Dn}``{{DlAj}Al}{{DnAj}Al}{{ClAj}Al}:::???{{E`CjE`Cj}Cl}{{DlBh}d}`{{DlCl}d}```{{E`Cj}Eb}```;;;;;;``:::{ce{}{}}00","D":"Df","p":[[5,"Private",192],[1,"unit"],[5,"Command",193],[6,"EndpointSelector",0],[6,"ConnectionSelector",0],[5,"Opt",0],[5,"ClientStats",0],[8,"Result",194],[6,"Commands",0],[1,"u32"],[1,"u8"],[1,"slice"],[5,"Formatter",195],[8,"Result",195],[5,"ArgMatches",196],[8,"Error",197],[6,"Result",198],[5,"Id",199],[6,"Option",200],[1,"str"],[1,"bool"],[1,"usize"],[5,"Runtime",201],[5,"TypeId",202],[5,"NodeAddr",203],[5,"Endpoint",204],[5,"Connection",205],[1,"tuple"],[1,"u64"],[5,"TransferResult",140],[1,"u16"],[5,"TransportConfig",206],[6,"SocketAddr",207],[5,"Endpoint",208],[5,"Connection",209],[5,"TransportConfig",210],[5,"Opt",116],[5,"Stats",140],[5,"StreamStats",140],[5,"Duration",211],[1,"f64"]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJ0AEAAAABwAHwALACwAAQAzAAcAQQAAAEMAAQBGAAMATAAUAGIABQBqAAAAbQABAHEAAAB0AAsAgQADAIYAGwCoABgA"}],\ ["iroh_relay",{"t":"GFFSPFPFNNNNNOONNNNNNNNNNNNHNOONCNNNNNNNNNNNNOONNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNONONONNNNNNONHHHOOCNOONONNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHHCHFNONNNNNONNNNOONNONNNNN","n":["CertMode","Cli","Config","DEV_MODE_HTTP_PORT","LetsEncrypt","Limits","Manual","TlsConfig","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","accept_conn_burst","accept_conn_limit","augment_args","augment_args_for_update","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_relay_config","cert_dir","cert_dir","cert_mode","cert_path","cfg_defaults","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","command","command_for_update","config_path","contact","default","default","deserialize","deserialize","deserialize","deserialize","dev","enable_metrics","enable_relay","enable_stun","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","from_ref","from_ref","from_ref","from_ref","from_ref","group_id","hostname","http_bind_addr","http_bind_addr","https_bind_addr","https_bind_addr","into","into","into","into","into","key_path","limits","load","load_certs","load_secret_key","main","manual_cert_path","manual_key_path","metrics","metrics_bind_addr","metrics_bind_addr","prod_tls","read_from_file","secret_key","serialize","serialize","serialize","serialize","stun_bind_addr","stun_bind_addr","tls","to_owned","to_owned","to_owned","to_owned","to_owned","to_possible_value","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","value_variants","vzip","vzip","vzip","vzip","vzip","write_to_file","enable_metrics","enable_relay","enable_stun","tls_config","prod_tls","StunMetrics","__clone_box","bad_requests","borrow","borrow_mut","clone","clone_into","default","failures","fmt","from","from_ref","into","ipv4_success","ipv6_success","iter","name","requests","to_owned","try_from","try_into","type_id","vzip"],"q":[[0,"iroh_relay"],[140,"iroh_relay::cfg_defaults"],[144,"iroh_relay::cfg_defaults::tls_config"],[145,"iroh_relay::metrics"],[168,"dyn_clone::sealed"],[169,"clap_builder::builder::command"],[170,"std::io::error"],[171,"iroh_net::relay::server"],[172,"anyhow"],[173,"std::path"],[174,"core::result"],[175,"serde::de"],[176,"core::fmt"],[177,"clap_builder::parser::matches::arg_matches"],[178,"clap_builder"],[179,"clap_builder::util::id"],[180,"core::option"],[181,"core::net::socket_addr"],[182,"rustls::key"],[183,"alloc::vec"],[184,"core::convert"],[185,"serde::ser"],[186,"clap_builder::builder::possible_value"],[187,"core::any"],[188,"alloc::vec::into_iter"]],"i":[0,0,0,0,11,0,11,0,10,11,4,8,12,12,12,10,10,10,11,4,8,12,10,11,4,8,12,0,8,8,8,8,0,10,11,4,8,12,10,11,4,8,12,10,10,10,8,4,12,11,4,8,12,10,4,4,4,11,11,11,11,10,11,4,8,12,10,11,4,8,12,10,10,10,11,4,8,12,10,8,4,4,8,8,10,11,4,8,12,8,4,4,0,0,0,8,8,0,4,4,8,4,4,11,4,8,12,4,4,4,10,11,4,8,12,11,10,11,4,8,12,10,11,4,8,12,10,11,4,8,12,10,10,11,10,11,4,8,12,4,0,0,0,0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32],"f":"````````{{cb}d{}}0000``{ff}0{ce{}{}}000000000{h{{n{{l{j}}}}}}{A`Ab}``0`{AdAd}{AfAf}{hh}{A`A`}{AhAh}{{ce}d{}{}}0000{{}f}0``{{}h}{{}Ah}{c{{Aj{Af}}}Al}{c{{Aj{h}}}Al}{c{{Aj{A`}}}Al}{c{{Aj{Ah}}}Al}````{{AfAf}An}{{ce}An{}{}}00{{AdB`}Bb}{{AfB`}Bb}{{hB`}Bb}{{A`B`}Bb}{{AhB`}Bb}{cc{}}0000{Bd{{Aj{AdBf}}}}011111{{}{{Bj{Bh}}}}`{hBl}`{{A`h}Bl}`{ce{}{}}0000{A`Ab}`{Ad{{n{h}}}}{c{{n{{C`{Bn}}}}}{{Cd{Cb}}}}{c{{n{Cf}}}{{Cd{Cb}}}}{{}{{n{d}}}}```7``{c{{n{h}}}{{Cd{Cb}}}}`{{Afc}AjCh}{{hc}AjCh}{{A`c}AjCh}{{Ahc}AjCh}<``:::::{Af{{Bj{Cj}}}}{c{{Aj{e}}}{}{}}000000000{cCl{}}0000{{AdBd}{{Aj{dBf}}}}0{{}{{Cn{Af}}}}?????{{hc}{{n{d}}}{{Cd{Cb}}}}{{}An}00`0`{{cb}d{}}`{ce{}{}}0{D`D`}{{ce}d{}{}}{{}D`}`{{D`B`}Bb}{cc{}}05``{D`{{Dh{{Df{DbDd}}}}}}{{}Db}`7>>=7","D":"El","p":[[5,"Private",168],[1,"unit"],[5,"Command",169],[5,"Config",0],[5,"Error",170],[5,"ServerConfig",171],[8,"Result",172],[5,"TlsConfig",0],[5,"PathBuf",173],[5,"Cli",0],[6,"CertMode",0],[5,"Limits",0],[6,"Result",174],[10,"Deserializer",175],[1,"bool"],[5,"Formatter",176],[8,"Result",176],[5,"ArgMatches",177],[8,"Error",178],[5,"Id",179],[6,"Option",180],[6,"SocketAddr",181],[5,"Certificate",182],[5,"Vec",183],[5,"Path",173],[10,"AsRef",184],[5,"PrivateKey",182],[10,"Serializer",185],[5,"PossibleValue",186],[5,"TypeId",187],[1,"slice"],[5,"StunMetrics",145],[1,"str"],[10,"Any",187],[1,"tuple"],[5,"IntoIter",188]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAHoAGAABAAAABQAIABAACwAdAAAAIAAAACIACwAwAAUAOgAIAEgABwBRAAAAUwAAAFoAAABcAAMAYgABAGYAAABoAAQAbwAcAI0ABACTAAAAlQAEAJsAAACdAAAAoQABAKQABAA="}],\ ["iroh_test",{"t":"FQNNNNCNCNNNNHHHHH","n":["CallOnDrop","assert_eq_hex","borrow","borrow_mut","drop","from","hexdump","into","logging","new","try_from","try_into","type_id","parse_hexdump","print_hexdump","setup","setup_multithreaded","testing_subscriber"],"q":[[0,"iroh_test"],[13,"iroh_test::hexdump"],[15,"iroh_test::logging"],[18,"core::ops::function"],[19,"core::result"],[20,"core::any"],[21,"alloc::vec"],[22,"anyhow"],[23,"alloc::string"],[24,"core::convert"],[25,"tracing_core::dispatcher"],[26,"tracing_core::subscriber"]],"i":[0,0,1,1,1,1,0,1,0,1,1,1,1,0,0,0,0,0],"f":"``{ce{}{}}0{bd}{cc{}}`2`{cbf}{c{{h{e}}}{}{}}0{cj{}}{l{{Ab{{A`{n}}}}}}{{ce}Ad{{Ah{{Af{n}}}}}{{Ah{{Af{Aj}}}}}}{{}Al}{{}d}{{}{{`{An}}}}","D":"Ad","p":[[5,"CallOnDrop",0],[1,"unit"],[10,"FnOnce",18],[6,"Result",19],[5,"TypeId",20],[1,"str"],[1,"u8"],[5,"Vec",21],[8,"Result",22],[5,"String",23],[1,"slice"],[10,"AsRef",24],[1,"usize"],[5,"DefaultGuard",25],[10,"Subscriber",26]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAgABAABAAAAAwACAAcAAAAKAAMA"}]\ diff --git a/pr/2574/docs/search.desc/iroh/iroh-desc-0-.js b/pr/2574/docs/search.desc/iroh/iroh-desc-0-.js index 8c26e89822..a21c1a0fd3 100644 --- a/pr/2574/docs/search.desc/iroh/iroh-desc-0-.js +++ b/pr/2574/docs/search.desc/iroh/iroh-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("iroh", 0, "Send data over the internet.\nClient to an Iroh node.\nExpose metrics module\nNode API\nUtilities for working with iroh.\nThe blake3 hash used in Iroh.\nCryptographic key handling for iroh-net.\nAddressing for iroh nodes.\nError when decoding the base32.\nDecoding error\nDecoding error kind\nError when decoding the public key.\nError when parsing a hex or base32 string.\nInvalid length\nInvalid padding length\nInvalid symbol\nNon-zero trailing bits\nConvert to a base32 string\nConvert to a base32 string and append out out\nConvert to a base32 string limited to the first 10 bytes\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nError kind\nParse from a base32 string into a byte array\nParse a fixed length hex or base32 string into a byte array\nDecode form a base32 string to a vector of bytes\nError position\nA format identifier\nHash type used throughout.\nA hash and format pair\nA sequence of BLAKE3 hashes\nRaw blob\nThe format\nThe hash\nError when decoding the base32.\nError when decoding the public key.\nError when deserialising a PublicKey or a SecretKey.\nThe identifier for a node in the (iroh) network.\nThe length of an ed25519 PublicKey, in bytes.\nA public key.\nA secret key.\nShared Secret.\nEd25519 signature.\nNetwork paths to contact an iroh-net node.\nOptions to configure what is included in a NodeAddr and …\nOnly includes the direct addresses.\nOnly the Node ID is added.\nNetwork-level addressing information for an iroh-net node.\nOnly includes the relay URL.\nIncludes both the relay URL and the direct addresses.\nA URL identifying a relay server.\nSocket addresses where the peer might be reached directly.\nReturns the argument unchanged.\nAddressing information to connect to Self::node_id.\nCalls U::from(self).\nThe node’s identifier.\nThe node’s home relay url.\nContains the error value\nContains the success value\nA serializable error type for use in RPC responses.\nA serializable result type for use in RPC responses.\nReturns the argument unchanged.\nCalls U::from(self).\nA token containing everything to get a file from the …\nThis looks like a ticket, but base32 decoding failed.\nAn error deserializing an iroh ticket.\nString prefix describing the kind of iroh ticket.\nFound a ticket of with the wrong prefix, indicating the …\nA token containing everything to get a file from the …\nThis looks like a ticket, but postcard deserialization …\nA ticket is a serializable object that combines all …\nVerification of the deserialized bytes failed.\nDeserialize from a string.\nThe BlobFormat for this ticket.\nReturns the argument unchanged.\nReturns the argument unchanged.\nDeserialize from the base32 string representation bytes.\nThe hash of the item this ticket can retrieve.\nCalls U::from(self).\nCalls U::from(self).\nGet the contents of the ticket, consuming it.\nCreates a new ticket.\nThe NodeAddr of the provider for this ticket.\nTrue if the ticket is for a collection and should retrieve …\nSerialize to string.\nSerialize to bytes used in the base32 string …\nA format identifier\nThe hash for the empty byte range (b"").\nHash type used throughout.\nA hash and format pair\nA sequence of BLAKE3 hashes\nBlock size used by iroh, 2^4*1024 = 16KiB\nRaw blob\nA tag\nA hash and format pair that is protected from garbage …\nBytes of the hash.\nCreate a new tag that does not exist yet.\nHandle downloading blobs and collections concurrently and …\nFunctions to export data from a store\nConvert to a base32 string limited to the first 10 bytes …\nDefines data formats for HashSeq.\nThe format of the pinned item\nThe format\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate a Hash from its raw bytes representation.\nThe client side API\nThe hash of the pinned item\nThe hash\nCreate a new hash and format pair, using the collection …\ntraits related to collections of blobs\nThe hash of the pinned item\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIs hash seq format\nIs raw format\nKeep the item alive until the end of the process\nMetrics for iroh-blobs\nCalculate the hash of the provided bytes.\nCreate a new hash and format pair.\nCreate a new temp tag for the given hash and format\nProtocol for transferring content-addressed blobs and …\nThe server side API\nCreate a new hash and format pair, using the default (raw) …\nImplementations of blob stores\nConvert the hash to a hex string.\nUtility functions and types.\nAn error occurred that prevents the request from being …\nFailed to receive response from service.\nThe request was cancelled by us.\nThe download was cancelled by us\nConcurrency limits for the Downloader.\nType of connections returned by the Dialer.\nType of connections the Getter requires to perform a …\nTrait modeling a dialer. This allows for IO-less testing.\nError returned when a download could not be completed.\nFailed to download from any provider\nHandle to interact with a download request.\nThe kind of resource to download.\nA download request.\nHandle for the download services.\nAn error occurred that suggests the node should not be …\nSignals what should be done with the request when it fails.\nTrait modelling performing a single request over a …\nIdentifier for a download intent.\nNo provider nodes found\nConfiguration for retry behavior of the Downloader.\nAn error occurred in which neither the node nor the …\nCancel a download.\nGet the format of this download\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturn a future that performs the download using the given …\nGet the hash of this download\nGet the HashAndFormat pair of this download\nThe initial delay to wait before retrying a node. On …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCheck if a node is being dialed.\nMaximum number of nodes to dial concurrently for a single …\nMaximum number of requests the service performs …\nMaximum number of requests performed by a single node …\nMaximum number of open connections the service maintains.\nMaximum number of retry attempts for a node that failed to …\nCreate a new download request.\nCreate a new Downloader with the default ConcurrencyLimits …\nDeclare that certains nodes can be used to download a hash.\nGet the number of dialing nodes.\nPass a progress sender to receive progress updates.\nQueue a download.\nDial a node.\nCreate a new Downloader with custom ConcurrencyLimits and …\nWe got an error and need to abort.\nWe are done with the whole operation.\nWe finished exporting a blob\nProgress events for an export operation\nThe download part is done for this id, we are now …\nWe have made progress exporting the data.\nExport a hash to the local file system.\nExport a single blob to a file on the local filesystem.\nExport all entries of a collection, recursively, to files …\nReturns the argument unchanged.\nCalls U::from(self).\nThe hash of the entry.\nUnique id of the entry.\nUnique id of the entry that is being exported.\nUnique id of the entry that is being exported.\nOperation-specific metadata.\nThe offset of the progress, in bytes.\nThe path to the file where the data is exported.\nThe size of the entry in bytes.\nThe collection type used by iroh\nA collection of blobs\nThe header for the collection format.\nA simple store trait for loading blobs\nReturns the argument unchanged.\nCalls U::from(self).\nCheck if this collection is empty\nIterate over the blobs in this collection\nGet the number of blobs in this collection\nLoad a blob from the store\nCreate a new collection from a hash sequence and metadata.\nLoad a collection from a store given a root hash\nAdd the given blob to the collection.\nRead the collection from a get fsm.\nRead the collection and all it’s children from a get fsm.\nStore a collection in a store. returns the root hash of …\nConvert the collection to an iterator of blobs, with the …\nError when opening a stream\nError when decoding, e.g. hash mismatch\nA generic error\nError when processing a response\nError when reading from the stream\nStats about the transfer.\nError when writing the handshake or request to the stream\nThe number of bytes read\nThe number of bytes written\nFunctions that use the iroh-blobs protocol in conjunction …\nThe time it took to transfer the data\nError returned from get operations\nReturns the argument unchanged.\nReturns the argument unchanged.\nFinite state machine for get responses.\nCalls U::from(self).\nCalls U::from(self).\nTransfer rate in megabits per second\nTypes for get progress state management.\nUtilities for complex get requests.\nWe got an error and need to abort.\nAll operations finished.\nThe id of a blob in a transfer\nInformation about a the status of a blob in a store.\nA child blob (child id > 0)\nwe have the blob completely\nA new connection was established.\nWe are done with id, and the hash is hash.\nProgress updates for the get operation.\nAn item was found with hash hash, from now on referred to …\nAn item was found with hash hash, from now on referred to …\nData was found locally.\nInitial state if subscribing to a running or queued …\nwe don’t have the blob at all\nwe have the blob partially\nWe got progress ingesting item id.\nThe root blob (child id 0)\nGet information about a blob in a store.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a blob or collection into a store.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRanges that are missing locally and need to be requested.\nThe size of the blob, if known.\nGiven a partial entry, get the valid ranges.\nRanges that are valid locally.\nThe partial entry.\nThe size of the entry in bytes.\nThe ranges that are available locally.\nchild offset\nIdentifier for this blob within this download.\nNumber of children in the collection, if known.\nThe hash of the entry.\nThe hash of the entry.\nThe name of the entry.\nA new unique progress id for this entry.\nThe unique id of the entry.\nThe unique id of the entry.\nThe offset of the progress, in bytes.\nThe size of the entry in bytes.\nThe size of the entry in bytes.\nThe ranges that are available locally.\nOur download request is invalid.\nFailures for a get operation\nNetwork or IO operation failed.\nOperation failed on the local node.\nRemote behaved in a non-compliant way.\nHash not found.\nRemote has reset the connection.\nReturns the argument unchanged.\nCalls U::from(self).\nState while we are reading content\nState before reading a size header\nError that you can get from AtBlobHeader::next\nState when finishing the get response\nState of the get response machine after the handshake has …\nState after we have read all the content for a blob\nInitial state of the get response machine\nState of the get response when we start reading a child\nState of the get response when we start reading a …\nThe next state after reading a content item\nRequest is empty\nNo more children expected\nPossible next states after the handshake has been sent\nError that you can get from AtConnected::next\nDecode error that you can get once you have sent the …\nWe are done with this blob\nThe next state after the end of a blob\nA generic io error\nGeneric io error\nA generic io error\nThe hash of a leaf did not match the expected hash\nA parent was not found or invalid, so the provider stopped …\nWe expect more content\nResponse is expected to have more children\nEof when reading the size header\nA chunk was not found or invalid, so the provider stopped …\nThe hash of a parent did not match the expected hash\nA parent was not found or invalid, so the provider stopped …\nError when serializing the request\nQuinn read error when reading the size header\nError when reading from the stream\nThe serialized request is too long to be sent\nFirst response is a child\nFirst response is either a collection or a single blob\nError when writing the request to the SendStream.\nThe offset of the child we are currently reading\nConcatenate the entire response into a vec\nConcatenate the entire response into a vec\nDrain the response and throw away the result\nDrain the response and throw away the result\nFinish the get response without reading further\nFinish the get response without reading further\nImmediately finish the get response without reading further\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nHash of the root blob\nThe hash of the blob we are reading.\nThe hash of the blob we are reading.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a new get response\nInitiate a new bidi stream to use for the get response\nSend the request and move to the next state\nGo into the next state, reading the header\nGo into the next state, reading the header\nRead the size header, returning it and going into the …\nRead the next item, either content, an error, or the end …\nRead the next child, or finish\nFinish the get response, returning statistics\nThe current offset of the blob we are reading.\nThe current offset of the blob we are reading.\nThe ranges we have requested for the child\nThe ranges we have requested for the child\nThe ranges we have requested for the current hash.\nThe entry point of the get response machine\nThe geometry of the tree we are currently reading.\nWrite the entire blob to a slice writer.\nWrite the entire blob to a slice writer.\nWrite the entire stream for this blob to a batch writer.\nWrite the entire stream for this blob to a batch writer.\nWrite the entire blob to a slice writer and to an optional …\nWrite the entire blob to a slice writer and to an optional …\nProgress state for a single blob\nState of a single blob in transfer\nDownload has finished\nDownload is pending\nThe identifier for progress events.\nDownload is in progress\nAccumulated progress state of a transfer.\nNumber of children (only applies to hashseqs, None for raw …\nChildren if the root blob is a hash seq, empty for raw …\nWhether we are connected to a node\nChild being transferred at the moment.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a blob state by its BlobId in this transfer.\nGet the blob state currently being transferred.\nThe hash of this blob.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRanges already available locally at the time of starting …\nCreate a new, empty transfer state.\nCreate a new BlobState.\nUpdate the state with a new DownloadProgress event for …\nThe current state of the blob transfer.\nProgress ids for individual blobs.\nGet state of the root blob of this transfer.\nThe root blob of this transfer (may be a hash seq),\nThe size of this blob. Only known if the blob is partially …\nProbe for a single chunk of a blob.\nGiven a hash of a hash seq, get the hash seq and the …\nGet the claimed size of a blob from a peer.\nGet the verified size of a blob from a peer.\nGiven a sequence of sizes of children, generate a range …\nA sequence of links, backed by a Bytes object.\nIterator over the hashes in a HashSeq.\nStream over the hashes in a HashSeq.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet the hash at the given index.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nGet the underlying bytes.\nCheck if this sequence is empty.\nIterate over the hashes in this sequence.\nGet the number of hashes in this sequence.\nCreate a new sequence of hashes.\nGet the next hash in the sequence.\nParse a sequence of hashes.\nGet and remove the first hash in this sequence.\nSkip a number of hashes in the sequence.\nConvert an iterator of Results into FallibleIterator by …\nEnum of metrics for the module\nReturns the argument unchanged.\nCalls U::from(self).\nThe ALPN used with quic for the iroh bytes protocol.\nReasons to close connections or stop streams.\nA RangeSpec selecting nothing from the blob.\nA get request for a blob or collection\nA request\nMaximum message size is limited to 100MiB for now.\nAn iterator over blobs in the sequence with a non-empty …\nThe provider is terminating.\nA chunk range specification as a sequence of chunk offsets.\nA chunk range specification for a sequence of blobs.\nA request to the provider\nThe provider has received the request.\nThe RecvStream was dropped.\nUnknown error_code, can not be converted into Closed.\nCreates a RangeSpec selecting the entire blob.\nA RangeSpecSeq containing all chunks from all blobs.\nRequest a collection and all its children\nIf this range seq describes a range for a single item, …\nA RangeSpecSeq containing no chunks from any blobs in the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConvenience function to create a RangeSpecSeq from a …\nConvenience function to create a RangeSpecSeq from a …\nblake3 hash\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nChecks if this RangeSpec selects all chunks in the blob.\nChecks if this RangeSpec does not select any chunks in the …\nAn infinite iterator of range specs for blobs in the …\nAn iterator over blobs in the sequence with a non-empty …\nRequest the last chunk of a single blob\nRequest the last chunk for all children\nCreates a new RangeSpec from a range set.\nCreates a new range spec sequence from a sequence of range …\nRequest a blob or collection with specified ranges\nThe range of data to request\nThe close reason as bytes. This is a valid utf8 string …\nRequest just a single blob\nCreates a ChunkRanges from this RangeSpec.\nConvert an iterator of Results into FallibleIterator by …\nWe got an error and need to abort.\nProgress updates for the add operation.\nWe are done with the whole operation.\nA new client connected to the node.\nA request was received from a client.\nWe are done with id, and the hash is hash.\nEvents emitted by the provider informing about the current …\nTrait for sending events.\nAn item was found with name name, from now on referred to …\nA request was received from a client.\nThe requested data was not found\nWe got progress ingesting item id.\nA helper struct that combines a quinn::SendStream with …\nThe requested data was sent\nStatus of a send operation\nA new collection or tagged blob has been added\nA request was aborted because the client disconnected.\nA blob in a sequence was transferred.\nA request was completed and the data was sent to the …\nA sequence of hashes has been found and is being …\nThe stats for a transfer of a collection or blob.\nThe total duration of the transfer.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nHandle a single connection.\nHandle a single standard get request.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nStats for reading from disk.\nRead the request from the getter.\nSend an event.\nStats for sending to the client.\nSend a blob to the client.\nTransfers the collection & blob data.\nThe format of the added data.\nThe hash of the entry.\nThe hash of the created data.\nA new unique id for this entry.\nThe unique id of the entry.\nThe unique id of the entry.\nThe name of the entry.\nThe offset of the progress, in bytes.\nThe size of the entry in bytes.\nThe tag of the added data.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nThe quic connection id.\nThe format of the added data\nThe hash of the added data\nThe hash for which the client wants to receive data.\nThe hash of the blob\nThe index of the blob in the sequence.\nThe size of the custom get request.\nThe number of blobs in the sequence.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this request.\nThe size of the blob transferred.\nstatistics about the transfer\nstatistics about the transfer. This is None if the transfer\nThe tag of the added data\nWe got an error and need to abort.\nWe got an error and need to abort.\nWe are done with the whole operation.\nAn async batch interface for writing bao content items to …\nThe size of a bao file\nThe hash refers to any blob and will be exported to a …\nThe hash refers to a crate::format::collection::Collection …\nThe entry is completely available.\nProgress updates for the validate operation\nThis mode will copy the file into the database before …\nThis mode will copy the file to the target directory.\nProgress when copying the file to the store\nA custom event (info)\nA custom event (debug)\nA custom non critical error\nA custom non critical error\nA fallible but owned iterator over the entries in a store.\nDone exporting\nConsistency check ended\nWe started validating a complete entry\nThe entry type. An entry is a cheaply cloneable handle …\nWe are done with id\nAn entry that is possibly writable\nWe got progress ingesting item id.\nThe availability status of an entry in a store.\nAn unrecoverable error during GC\nAn unrecoverable error during GC\nErrors, something is very wrong\nDatabase events\nThe expected format of a hash being exported.\nThe import mode describes how files will be imported.\nExport trogress callback\nFound a path\nA GC was completed\nAn event related to GC\nA GC was started\nAn event related to GC\nThe import mode describes how files will be imported.\nProgress messages for an import operation\nInfo messages\nA generic map from hashes to bao blobs (blobs with bao …\nAn entry for one hash in a bao map\nA partial entry\nA mutable bao map.\nThe entry is not in the store.\nDone computing the outboard\nProgress when computing the outboard\nThe entry is partially available.\nWe started validating an entry\nWe are done with id\nWe got progress ingesting item id.\nProgress when copying the file to the target\nExtension of Map to add misc methods used by the rpc calls.\nLevel for generic validation messages\nDetermined the size\nStarting to export to a file\nConsistency check started\nstarted validating\nThe mutable part of a Bao store.\nVery unimportant info messages\nThis mode will try to reference the file in place and …\nThis mode will try to move the file to the target …\nA remote side told us the size, but we have insufficient …\nConsistency check update\nProgress updates for the validate operation\nWe have verified the size.\nWarnings, something is not quite right\nGet a batch writer\nlist all blobs in the database. This includes both raw …\nPerform a consistency check on the database\nCreate a new tag\nA future that resolves to a reader that can be used to …\nphysically delete the given hashes from the store.\nFind out if the data behind a hash is complete, partial, …\nSync version of entry_status, for the doc sync engine …\nThis trait method extracts a file to a local path.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nredb backed storage\nTraverse all roots recursively and mark them as live.\nNotify the store that a new gc phase is about to start.\nRemove all blobs that are not marked as live.\nGet an entry for a hash.\nGet an existing entry as an EntryMut.\nGet an existing partial entry, or create a new one.\nThe hash of the entry.\nImport data from memory.\nThis trait method imports a file from a local path.\nImport data from an async byte reader.\nImport data from a stream of bytes.\nUpgrade a partial entry to a complete entry.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if the entry is complete.\nA full in memory database for iroh-blobs\nCreate a new BaoFileSize with the given size and …\nA future that resolves to a reader that can be used to …\nlist partial blobs in the database\nA readonly in memory database for iroh-blobs, usable for …\nSet a tag\nShutdown the store.\nThe size of the entry.\nSync the written data to permanent storage, if applicable. …\nlist all tags (collections or other explicitly added …\nCreate a temporary pin for this store\nTemp tags\nValidate the database\nGet just the value, no matter if it is verified or not.\nWrite a batch of bao content items to the underlying …\nThe entry this message is about, if any\nThe level of the message\nThe message\nAn error if we failed to validate the entry.\nthe hash of the entry\nthe hash of the entry\na new unique id for this entry\nThe unique id of the entry.\nThe unique id of the entry.\na new unique id for this entry\nThe unique id of the entry.\nThe unique id of the entry.\nThe offset of the progress, in bytes.\nThe offset of the progress, in bytes.\nlocation of the entry.\nlocation of the entry.\nAvailable ranges.\nThe size of the entry, in bytes.\nThe best known size of the entry, in bytes.\nThe total number of entries to validate\nDefines a Bao tree.\nA block size.\nA set of byte ranges\nA number of blake3 chunks.\nA set of chunk ranges\nA referenceable set of chunk ranges\nAn offset of a node in a post-order outboard\nthe node is stable and won’t change when appending data\nAn u64 that defines a node in a bao tree.\nthe node is unstable and will change when appending data\nThe default block size, 1024 bytes\nConvert a node to a node in a tree with a larger block size\nThe block size of the tree\nNumber of blocks in the tree\nNumber of bytes in a block at this level\nGet the log2 of the number of 1 KiB blocks in a chunk.\nGet the range of blocks this node covers\nnumber of chunks that this number of bytes covers\nNumber of chunks in the tree\nNumber of nodes below this node, excluding this node.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCompute a block size from bytes\nCreate a block size from the log2 of the size in bytes / …\nnumber of chunks that this number of bytes covers\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nImplementation of bao streaming for std io and tokio io\nTrue if this is a leaf node.\nIterators over BaoTree nodes\nGet the left child of this node, or None if it is a child …\nThe level of the node in the tree, 0 for leafs.\nthe middle of the tree node, in blocks\nCreate a new self contained BaoTree\nGet the next left ancestor of this node, or None if there …\nGet the range of nodes this node covers\nThe outboard size for this tree.\nUnrestricted parent, can only be None if we are at the top\nTraverse the entire tree in post order as BaoChunks\nTraverse the entire tree in post order as TreeNodes, down …\nThe offset of the given node in the post order traversal\nGet the post order offset of this node\nGet the range of post order offsets this node covers\nTraverse the entire tree in pre order as TreeNodes, down …\nThe offset of the given node in the pre order traversal\nTraverse the part of the tree that is relevant for a …\nRestricted parent, will be None if we call parent on the …\nGet the right child of this node, or None if it is a child …\nthe number of times you have to go right from the root to …\nRoot of the tree\nThe size of the blob from which this tree was constructed, …\nConvert a node to a node in a tree with a smaller block …\nnumber of bytes that this number of chunks covers\nConvert to usize or panic if it doesn’t fit.\nJust get the offset value, ignoring whether it’s stable …\nAn output of the default size, 32 bytes, which provides …\nAn incremental hash state that can accept any number of …\nThe error type for Hash::from_hex.\nThe number of bytes in a key, 32.\nThe number of bytes in a Hash, 32.\nAn incremental reader for extended output, returned by …\nThe raw bytes of the Hash. Note that byte arrays don’t …\nReturn the total number of bytes hashed so far.\nThe key derivation function.\nFill a buffer with output bytes and advance the position …\nFinalize the hash state and return the Hash of the input.\nFinalize the hash state and return an OutputReader, which …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate a Hash from its raw bytes representation.\nDecode a Hash from hexadecimal. Both uppercase and …\nThe default hash function.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe keyed hash function.\nConstruct a new Hasher for the regular hash function.\nConstruct a new Hasher for the key derivation function. See\nConstruct a new Hasher for the keyed hash function. See …\nReturn the current read position in the output stream. …\nReset the Hasher to its initial state.\nSeek to a new read position in the output stream. This is …\nEncode a Hash in lowercase hexadecimal.\nAdd input bytes to the hash state. You can call this any …\nThis is equivalent to update.\nA content item for the bao streaming protocol.\nError when decoding from a reader, after the size has been …\nError when encoding from outboard and data\nThere was an error reading from the underlying io\nThere was an error reading from the underlying io\nA leaf node.\na leaf node, to write to the file\nThe hash of a leaf did not match the expected hash\nThe hash of a leaf did not match the expected hash\nWe got an EOF while reading a chunk, indicating that the …\nWe got a ConnectionReset while writing a chunk, indicating …\nA parent hash pair.\na parent node, to update the outboard\nThe hash of a parent did not match the expected hash\nThe hash of a parent did not match the expected hash\nWe got an EOF while reading a parent hash pair, indicating …\nWe got a ConnectionReset while writing a parent hash pair, …\nFile size does not match size in outboard\nThe data of the leaf.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nAsync io, written in fsm style\nGiven a range set of byte ranges, round it up to chunk …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe node in the tree for which the hashes are.\nThe byte offset of the leaf in the file.\nImplementations of the outboard traits\nThe pair of hashes for the node.\nGiven a range set of byte ranges, round it up to full …\nSync IO operations\nA trait to abstract async reading from different resource.\nA trait to abstract async writing to different resources.\nA content item for the bao streaming protocol.\nConvenience trait to initialize an outboard from a data …\nThe stream is done, you get back the underlying reader\na leaf node, to write to the file\nOne more item, and you get back the state machine in the …\nA binary merkle tree for blake3 hashes of a blob.\nA mutable outboard.\na parent node, to update the outboard\nResponse decoder\nNext type for ResponseDecoder.\nCopy an outboard to another outboard.\nCreate an outboard from a seekable data source, measuring …\ncreate an outboard from a data source. This requires the …\nDecode a response into a file while updating an outboard.\nEncode ranges relevant to a query from a reader and …\nEncode ranges relevant to a query from a reader and …\nImmediately return the underlying reader\nReturns the argument unchanged.\nReturns the argument unchanged.\nHash of the blob we are currently getting\nInit the outboard from a data source. This will use the …\nCalls U::from(self).\nCalls U::from(self).\nload the hash pair for a node\nCreate a new response decoder state machine, when you have …\nProceed to the next state by reading the next chunk from …\nCompute the outboard for the given data.\nCompute the post order outboard for the given data, …\nRead the entire buffer at the given position.\nThe root hash\nSave a hash pair for a node\nSet the length of the underlying storage.\nGet the length of the resource\nSync any buffers to the underlying storage.\nsync to disk\nThe tree. This contains the information about the size of …\nThe tree geometry\nGiven just an outboard, compute all valid ranges.\nGiven a data file and an outboard, compute all valid …\nWrite the entire slice at the given position.\nWrite the entire Bytes at the given position.\nAn empty outboard, that just returns 0 hashes for all …\nA post order outboard that is optimized for memory storage.\nA generic outboard in post order\nA pre order outboard that is optimized for memory storage.\nA generic outboard in pre order\nCreate a new outboard from data and a block_size.\nCreate a new outboard from data and a block_size.\nhashes with length prefix\nhashes with length prefix\nhashes without length suffix\nhashes with length prefix\nFlip the outboard to pre order.\nFlip the outboard to a post order outboard.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nreturns the outboard data, with the length prefix added.\nreturns the outboard data, with the length suffix.\nMap the outboard data to a new type.\nMap the outboard data to a new type.\nroot hash\nroot hash\nroot hash\nroot hash\nroot hash\ntree defining the geometry\ntree defining the data\ntree defining the data\ntree defining the data\ntree defining the data\nConvenience trait to initialize an outboard from a data …\nIterator that can be used to decode a response to a range …\nA binary merkle tree for blake3 hashes of a blob.\nA mutable outboard.\nTrait for reading bytes at an offset.\nTrait to get the size in bytes of an I/O object.\nTrait for writing bytes at an offset.\nGet a reference to the buffer used for decoding.\nCopy an outboard to another outboard.\nCreate an outboard from a data source.\ncreate an outboard from a data source. This requires the …\nDecode a response into a file while updating an outboard.\nEncode ranges relevant to a query from a reader and …\nEncode ranges relevant to a query from a reader and …\nFlush this writer, ensuring that any intermediately …\nReturns the argument unchanged.\nInit the outboard from a data source. This will use the …\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nload the hash pair for a node\nCreate a new iterator to decode a response.\nCreate a new iterator to decode a response.\nCompute the outboard for the given data.\nCompute the post order outboard for the given data, …\nReads bytes from an offset in this source into a buffer, …\nReads the exact number of bytes required to fill buf from …\nThe root hash\nSave a hash pair for a node\nGet the size of this object, in bytes.\nSync the outboard.\nConvert an iterator of Results into FallibleIterator by …\nThe tree. This contains the information about the size of …\nGet a reference to the tree used for decoding.\nGiven just an outboard, compute all valid ranges.\nGiven a data file and an outboard, compute all valid …\nWrites a complete buffer at an offset.\nWrites bytes from a buffer to an offset, returning the …\nA chunk describeds what to read or write next\nexpect data of size size\nexpect a 64 byte parent node.\nIterator over all chunks in a BaoTree in post-order.\nIterator over all nodes in a tree in post-order.\nIterator over all nodes in a BaoTree in pre-order.\nIterator over all nodes in a BaoTree in pre-order that …\nThe owned version of ResponseIterRef.\nAn iterator that produces chunks in pre order.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nGet the minimum level to always emit, even if the node is …\nCreate a new iterator over the tree.\nCreate a new iterator given a root node and a len\nCreate a new iterator given a root node and a len\nCreate a new iterator over the tree.\nCreate a new iterator over the tree.\nCreate a new iterator over the tree.\nReturn the size of the chunk in bytes.\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nThe tree this iterator is iterating over.\nGet a reference to the tree.\nReturn the underlying tree.\nSet the ranges to the unit value\nThis is the root, to be passed to parent_cv\nThis is the root, to be passed to hash_block\nPush the left hash to the stack, since it will be needed …\nThe tree node, useful for error reporting\nAdditional information about what part of the chunk …\nAdditional information about what part of the chunk …\nPush the right hash to the stack, since it will be needed …\nSize of the data to expect. Will be chunk_group_bytes for …\nStart chunk, to be passed to hash_block\nAlways inline everything\nOptions for transaction batching.\nUse BaoFileHandle as the entry type for the map.\nParameters for importing from a flat store\nOptions for inlining small complete data or outboards.\nDo not inline anything, ever.\nOptions for the file store.\nOptions for directories used by the file store.\nStorage that is using a redb database for small files and …\nTransaction batching options.\nComplete data files\nPath to the directory where data and outboard files are …\nDump the entire content of the database to stdout.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nImport from a v0 or v1 flat store, for backwards …\nInline storage options.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nLoad or create a new store.\nMaximum data size to inline.\nMaximum outboard size to inline.\nMaximum number of actor messages to batch before creating …\nMaximum duration to wait before committing a read …\nMaximum number of actor messages to batch before …\nMaximum duration to wait before committing a write …\nMetadata files such as the tags table\nCreate a new store with custom options.\nOwned data path\nOwned outboard path\nPartial data files\nPath options.\nEnsure that all operations before the sync are processed …\nPath to the directory where temp files are stored. This …\nTransform all entries in the store. This is for testing …\nUpdate the inline options.\nAn in memory entry\nA fully featured in memory database for iroh-blobs, …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCreate a new in memory store\nA set of non-overlapping ranges\nA range set that stores up to 2 boundaries inline\nA reference to a range set\na range set containing all values\nThe boundaries of the range set, guaranteed to be strictly …\ntrue if the value is contained in the range set\ndifference\ndifference in place\nthe empty range set\nCreate a new range set reference for an empty range set\nReturns the argument unchanged.\nintersection\nintersection in place\ntrue if this range set intersects from another range set\nCalls U::from(self).\nget the boundaries in this range set as a SmallVec\ntrue if the range set contains all values\ntrue if this range set is disjoint from another range set\ntrue if the range set is empty\ntrue if this range set is a superset of another range set\ntrue if this range set is a subset of another range set\niterate over all ranges in this range set\niterate over all ranges in this range set\ncreate a new range set from the given boundaries\nCreate a new range set reference\nCreate a new range set reference without checking that the …\nCreate a new range set reference without checking that the …\nA set of non-overlapping ranges\nCreate a new range set reference for a single value\nSplit this range set into two parts left, right at …\nsymmetric difference (xor)\nsymmetric difference in place (xor)\nunion\nunion in place\nIterator for the ranges in a range set\nClosed range\nRange with unbounded end\nA set of non-overlapping ranges\nA range set that stores up to 2 boundaries inline\ntrait for types that can be entries of range sets\nRange that can be part of a range set\nA reference to a range set\nMaps a RangeSetRange<&T> to a RangeSetRange<T> by cloning …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nchecks if this is the minimum value\nthe minimum value for this type\nConvert an iterator of Results into FallibleIterator by …\nThe MapEntry implementation for Store.\nA readonly in memory database for iroh-blobs.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet the bytes associated with a hash, if they exist.\nimport a byte slice\nInsert a new entry into the database, and return the hash …\nInsert multiple entries into the database, and return the …\nCalls U::from(self).\nCalls U::from(self).\nCreate a new Store from a sequence of entries.\nA tag will be automatically generated\nA file\nWe got it all in memory\nThis is a general purpose Either, just like Result, except …\nThe tag is explicitly named\nOption for commands that allow setting a tag\nA file that is sparse in memory\nA tag\nA trait for things that can track liveness of blobs and …\nTrait used from temp tags to notify an abstract store that …\nA hash and format pair that is protected from garbage …\nTurn a reference to a MemOrFile into a MemOrFile of …\nGet this as a weak reference for use in temp tags\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nGet the data and the valid ranges\nUtilities for working with tokio io\nTrue if this is a Mem\nA local task pool with proper shutdown\nMap the file part of this MemOrFile\nMap the memory part of this MemOrFile\nGet the mem part\nCreate a new, empty SparseMemFile\nCalled on creation of a temp tag\nCalled on drop\nPersist the SparseMemFile to a WriteAt\nUtilities for reporting progress.\nGet the size of the MemOrFile\nCreate a new temp tag for the given hash and format\nGet the number of bytes given a set of chunk ranges and …\nTry to map the file part of this MemOrFile\nA reader that tracks the number of bytes read\nA writer that tracks the number of bytes written\nGet the number of bytes read\nGet the number of bytes written\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nGet the inner reader\nGet the inner writer\nWrap a reader in a tracking reader\nWrap a writer in a tracking writer\nTask was dropped, either due to a panic or because the …\nLocal task pool configuration\nA local task pool with proper shutdown\nA handle to a LocalPool\nLog the panic and continue\nWhat to do when a panic occurs in a pool thread\nFuture returned by LocalPoolHandle::spawn and …\nLog the panic and immediately shut down the pool.\nErrors for spawn failures\nAbort the task\nA future that resolves when the pool is cancelled\nGently shut down the pool\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a cheaply cloneable handle to the pool\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a new local pool with the given config.\nIgnore panics in pool threads\nImmediately stop polling all tasks and wait for all …\nCreate a new local pool with a single std thread.\nSpawn a task in the pool and await the result.\nSpawn a task in the pool.\nPrefix for thread names\nNumber of threads in the pool\nSpawn a task in the pool and return a future that resolves …\nSpawn a task in the pool.\nSpawn a task in the pool.\nGet the number of tasks in the queue\nA boxed progress sender\nContains the error value\nA slice writer that adds a fallible progress callback.\nA progress sender that uses a flume channel.\nAn id generator, to be combined with a progress sender.\nA no-op progress sender.\nThe message being sent.\nContains the success value\nAn error that can occur when sending progress messages.\nA result type for progress sending.\nA general purpose progress sender. This should be usable …\nA slice writer that adds a synchronous progress callback.\nThe receiver was dropped.\nTransform the message type by filter-mapping to the type …\nTransform the message type by mapping to the type of this …\nSend a message and block if the receiver is full.\nCreate a boxed progress sender to get rid of the concrete …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturn the inner writer\nReturn the inner writer.\nCreate a new progress sender from a flume sender.\nCreate a new ProgressSliceWriter from an inner writer and …\nCreate a new ProgressSliceWriter from an inner writer and …\nGet a new unique id\nReturns true if other sends on the same flume channel as …\nSend a message and wait if the receiver is full.\nTry to send a message and drop it if the receiver is full.\nTransform the message type by filter-mapping to the type …\nTransform the message type by mapping to the type of this …\nAn iroh client.\nIroh rpc client - boxed so that we can have a concrete …\nThe RPC service for the iroh provider process.\nAPI for author management.\nReturns the authors client.\nAPI for blobs management.\nReturns the blobs client.\nConnects to an iroh node at the given RPC address.\nConnects to an iroh node running on the same computer, but …\nAPI for document management.\nReturns the docs client.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGossip client.\nReturns the gossip client.\nCalls U::from(self).\nCalls U::from(self).\nCreates a new high-level client to a Iroh node from the …\nAPI to manage the iroh node itself.\nReturns the node client.\nAPI for tag management.\nReturns the tags client.\nIroh authors client.\nCreates a new document author.\nReturns the default document author of this node.\nDeletes the given author by id.\nExports the given author.\nReturns the argument unchanged.\nImports the given author.\nCalls U::from(self).\nLists document authors for which we have a secret key.\nSets the node-wide default author.\nOutcome of a blob add operation.\nProgress stream for blob add operations.\nInformation about a complete blob.\nStatus information about a blob.\nIroh blobs client.\nInformation about a stored collection.\nThe blob is stored completely.\nStart the download right away.\nSet the mode for whether to directly start the download or …\nOptions to configure a download request.\nOutcome of a blob download operation.\nProgress stream for blob download operations.\nOutcome of a blob export operation.\nProgress stream for blob export operations.\nInformation about an incomplete blob.\nDo not wrap the file or directory.\nThe blob is only stored partially.\nQueue the download.\nData reader for a single blob.\nWrap the file or directory in a collection.\nWhether to wrap the added data in a collection.\nWrite a blob by passing bytes.\nWrite a blob by passing bytes, setting an explicit tag …\nImport a blob from a filesystem path.\nWrite a blob by passing an async reader.\nWrite a blob by passing a stream of bytes.\nValidate hashes on the running node.\nCreate a collection from already existing blobs.\nDelete a blob.\nDownload a blob from another node and add it to the local …\nDownload a hash sequence from another node and add it to …\nDownload a blob, with additional options.\nThe size of the data we downloaded from the network\nThe size we expect\nExport a blob from the internal blob store to a path on …\nFinish writing the stream, ignoring all intermediate …\nFinish writing the stream, ignoring all intermediate …\nFinish writing the stream, ignoring all intermediate …\nThe format the blob\nThe format of the data to download.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nRead the content of a collection.\nThe hash of the blob\nHash of the collection\nThe hash of the blob\nThe hash of the blob\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether this blob has been downloaded completely.\nList all complete blobs.\nList all collections.\nList all incomplete (partial) blobs.\nThe size of the data we already had locally\nWhether to directly start the download or add it to the …\nCreate a DownloadProgress that can help you easily poll …\nCreate a ExportProgress that can help you easily poll the …\nSource nodes to download from.\nLocation of the blob\nStream the contents of a a single blob.\nRead offset + len from a single blob.\nRead all bytes of single blob at offset for length len.\nRead all bytes of single blob.\nRead all bytes of the blob.\nShare a blob.\nTotal size of this blob.\nThe size of the blob\nThe size of the blob\nThe size we got\nStatistics about the download\nGet the status of a blob.\nThe tag of the blob\nTag of the collection\nOptional tag to tag the data with.\nNumber of children in the collection\nTotal size of the raw data referred to by all links\nValidate hashes on the running node.\nThe size of the currently stored partial blob.\nThe size of the blob.\nOverride the filename in the wrapping collection.\nWe got an error and need to abort.\nA node connected to us and we accepted the exchange\nWe are done setting the entry to the doc.\nIroh docs client.\nWe initiated the exchange\nThe content of an entry was downloaded and is now …\nDirect join request via API\nDocument handle\nA single entry in a Doc.\nOutcome of a Doc::export_file operation\nProgress stream for Doc::export_file.\nAn item was found with name name, from now on referred to …\nOutcome of a Doc::import_file operation\nProgress stream for Doc::import_file.\nProgress messages for an doc import operation\nWe are done adding id to the data store and the hash is …\nA local insertion.\nReceived a remote insert.\nEvents informing about actions of the live sync progress.\nWe lost a neighbor in the swarm.\nWe have a new neighbor in the swarm.\nPeer showed up as new neighbor in the gossip swarm\nWhy we performed a sync exchange\nAll pending content is now ready.\nWe got progress ingesting item id.\nRead-only access\nWe received a sync report while a sync was running, so run …\nIntended capability for document share tickets\nEvent emitted when a sync operation completes\nA set-reconciliation sync finished.\nWhy we started a sync request\nWe synced after receiving a sync report that indicated …\nWrite access\nReturns the AuthorId of this entry.\nCloses the document.\nReads all content of an Entry into a buffer.\nReturns the Hash of the content data of this record.\nReturns the length of the data addressed by this record’…\nReads the content of an Entry as a streaming blobs::Reader.\nCreates a new document.\nDeletes entries that match the given author and key prefix.\nDeletes a document from the local node.\nExports an entry as a file to a given absolute path.\nFinishes writing the stream, ignoring all intermediate …\nIterates through the export progress stream, returning …\nTimestamp when the sync started\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the download policy for this document\nReturns an entry for a key and author.\nReturns all entries matching the query.\nReturns a single entry.\nReturns sync peers for this document\nThe hash of the entry’s content\nReturns the document id of this doc.\nReturns the RecordIdentifier for this entry.\nImports a document from a ticket and joins all peers in …\nImports a document from a ticket, creates a subscription …\nAdds an entry from an absolute file path\nImports a document from a namespace capability.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the key of this entry.\nThe key of the entry\nStops the live sync for this document.\nLists all documents.\nReturns a Doc client for a single document.\nOrigin of the sync exchange\nPeer we synced with\nResult of the sync operation\nSets the content of a key to a byte array.\nSets the download policy for this document\nSets an entries on the doc via its key, hash, and size.\nShares this document with peers over a ticket.\nThe size of the entry\nStarts to sync this document with a list of peers.\nTimestamp when the sync finished\nReturns status info for this document\nSubscribes to events for this document.\nReturns the timestamp of this entry.\nThe hash of the entry.\nA new unique id for this entry.\nThe unique id of the entry.\nThe unique id of the entry.\nThe key of the entry\nThe name of the entry.\nThe offset of the progress, in bytes.\nThe size of the entry in bytes.\nIf the content is available at the local node\nThe inserted entry.\nThe inserted entry.\nThe peer that sent us the entry.\nThe content hash of the newly available entry content\nBroadcast a message to all nodes in the swarm\nBroadcast a message to all direct neighbors\nIroh gossip client.\nA message was received\nWe missed some messages\nOptions for subscribing to a gossip topic.\nA request to the node to subscribe to gossip events.\nUpdate from a subscribed gossip topic\nSend a gossip message\nBootstrap nodes to connect to.\nThe nodes to bootstrap the subscription from\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nSubscribes to a gossip topic with default options.\nSubscribes to a gossip topic.\nSubscription capacity.\nThe capacity of the subscription\nThe topic to subscribe to\nIroh node client.\nThe response to a version request\nAdds a known node address to this node.\nThe node id and socket addresses of this node.\nFetches connection information about a connection to …\nFetches information about currently known connections.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the relay server we are connected to.\nCalls U::from(self).\nCalls U::from(self).\nThe bound listening addresses of the node\nFetches the NodeAddr for this node.\nFetches the node id of this node.\nRPC address, if currently listening.\nShuts down the node.\nFetches statistics of the running node.\nFetches status information about this node.\nThe version of the node\nIroh tags client.\nInformation about a tag.\nDeletes a tag.\nFormat of the data\nReturns the argument unchanged.\nReturns the argument unchanged.\nHash of the data\nCalls U::from(self).\nCalls U::from(self).\nLists all tags.\nLists all tags with a hash_seq format.\nName of the tag\nAuthor key to insert entries in a crate::Replica\nTimestamps of the latest entry for each author.\nAuthorPublicKey in bytes\nIdentifier for an Author\nEntry signature is invalid.\nThe capability of the namespace.\nErrors for capability operations\nKind of capability of the namespace.\nThe replica is closed, no operations may be performed.\nThe content is completely available.\nWhether the content status is available on a node.\nCallback that may be set on a replica to determine the …\nContains both a key (either secret or public) to a …\nA single entry in a Replica\nAttempted to insert an empty entry.\nSignature over an entry.\nEvent emitted by sync when entries are added.\nThe content is partially available.\nError emitted when inserting entries into a Replica failed\nWhether an entry was inserted locally or by a remote peer.\nEntry has length 0 but not the empty hash, or the empty …\nEntry namespace does not match the current replica.\nThe entry was inserted locally.\nA local entry has been added.\nMax time in the future from our wall clock time that we …\nThe content is missing.\nNamespacePublicKey in bytes\nNamespaces are not the same\nThe corresponding VerifyingKey for a NamespaceSecret. It …\nNamespace key of a crate::Replica.\nA newer entry exists for either this entry’s key or a …\nByte representation of a PeerId from iroh-net.\nProtocol message for the set reconciliation protocol.\nA readable replica.\nRead only access to the namespace.\nError that occurs trying to access the NamespaceSecret of …\nReplica is read only.\nThe data part of an entry in a Replica.\nThe identifier of a record.\nA remote entry has been added.\nLocal representation of a mutable, synchronizable …\nIn memory information about an open replica.\nA signed entry.\nStorage error\nThe entry was received from the remote node identified by …\nOutcome of a sync operation.\nEntry timestamp is too far in the future.\nValidation failure\nReason why entry validation failed\nA writable replica.\nWrite access to the namespace.\nThis contains an actor spawned on a separate thread to …\nGet this RecordIdentifier as a tuple of byte slices.\nGet this RecordIdentifier as Bytes.\nGet the byte representation of this AuthorId.\nGet the byte representation of this NamespaceId.\nConvert to byte slice.\nConvert to byte slice.\nGet the AuthorId of this entry.\nGet the AuthorId of this record as byte array.\nGet the author bytes of this entry.\nGet the Capability of this Replica.\neither a public or private key\nReturns true if the replica is closed.\nGet the content Hash of the entry.\nGet the Hash of the content data of this record.\nGet the content length of the entry.\nGet the length of the data addressed by this record’s …\nDecode from byte slice created with Self::encode.\nDelete entries that match the given author and key prefix.\nCreate a tombstone record (empty content)\nCreate a tombstone record with the timestamp set to now.\nSerialize this entry into its canonical byte …\nEncode into a byte array with a limited size.\nHandlers and actors to for live syncing replicas.\nGet the Entry.\nConvert to a base32 string limited to the first 10 bytes …\nConvert to a base32 string limited to the first 10 bytes …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate an Author from a byte array.\nCreate from a slice of bytes.\nCreate a NamespaceSecret from a byte array.\nCreate from a slice of bytes.\nCreate a new signed entry by signing an entry with the …\nCreate a new signature by signing an entry with the …\nCreate a new signed entries from its parts.\nCreate a Capability from its raw representation.\nGet the timestamp for an author.\nCan this state offer newer stuff to other?\nHashes the given data and inserts it.\nTimestamp of the latest entry for each author in the set …\nGet the NamespaceId for this Capability.\nGet the namespace identifier for this Replica.\nGet the RecordIdentifier for this entry.\nGet the AuthorId for this author.\nGet the NamespaceId for this namespace.\nInsert a new record at the given key.\nInsert a new timestamp.\nInsert an entry into this replica which was received from …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert into NamespacePublicKey.\nConvert into AuthorPublicKey.\nReturn true if the entry is empty.\nWhether this AuthorHeads is empty.\nCreate an iterator over the entries in this state.\nGet the key of the entry.\nGet the key of this entry.\nGet the key of this record.\nGet the key of this record as Bytes.\nGet the kind of capability.\nNumber of author-timestamp pairs.\nMerge this capability with another capability.\nMerge another author head state into this one.\nMerge a capability.\nMetrics for iroh-docs\nGet the NamespaceId of this entry.\nGet the NamespaceId of this record as byte array.\nNetwork implementation of the iroh-docs protocol\nCreate a new doc ticket\nCreate a new replica.\nCreate a new replica.\nCreate a new entry\nCreate a new RecordIdentifier.\nCreate a new record.\nCreate a new Author with a random key.\nCreate a new NamespaceSecret with a random key.\nCreate a new Record with the timestamp set to now.\nCreate a new empty entry with the current timestamp.\nA list of nodes to contact.\nNumber of entries we received.\nNumber of entries we sent.\nGet the AuthorPublicKey for this author.\nGet the NamespacePublicKey for this namespace.\nConvert into NamespacePublicKey by fetching from a …\nConvert into AuthorPublicKey by fetching from a …\nGet the raw representation of this namespace capability.\nGet the Record contained in this entry.\nGet the identifier for an entry in this replica.\nGet the NamespaceSecret of this Capability. Will fail if …\nGet the byte representation of the NamespaceSecret key for …\nSet the content status callback.\nSign this entry with a NamespaceSecret and Author.\nSign a message with this Author key.\nSign a message with this NamespaceSecret key.\nGet the signature.\nStorage trait and implementation for iroh-docs documents\nSubscribe to insert events.\nGet the number of current event subscribers.\nAPI for iroh-docs replicas\nCreate the initial message for the set reconciliation flow …\nProcess a set reconciliation message from a remote peer.\nGet the timestamp of the entry.\nGet the timestamp of this record.\nGet this RecordIdentifier as a tuple of bytes.\nReturns the Author byte representation.\nReturns the NamespaceSecret byte representation.\nConvert to byte array.\nConvert to byte array.\nSerialize this entry into a new vector with its canonical …\nExplicitly unsubscribe a sender.\nValidate that the entry has the empty hash if the length …\nValidate that the entry has the empty hash if the length …\nVerify the signatures on this entry.\nVerify that this signature was created by signing the entry…\nStrictly verify a signature on a message with this Author…\nVerify that a signature matches the msg bytes and was …\nStrictly verify a signature on a message with this …\nVerify that a signature matches the msg bytes and was …\nInserted entry.\nInserted entry.\nPeer that provided the inserted entry.\nDocument in which the entry was inserted.\nDocument in which the entry was inserted.\nContentStatus for this entry in the remote’s replica.\nWhether download policies require the content to be …\nThe peer from which we received this entry.\nWhether the peer claims to have the content blob for this …\nOptions when opening a replica.\nThe state for an open replica.\nThe SyncHandle controls an actor thread which executes …\nMakes sure that all pending database operations are …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nBy how many handles the replica is currently held open\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nSpawn a sync actor and return a handle.\nSubscribe to replica events.\nOptionally subscribe to replica events.\nHow many event subscriptions are open\nSet sync state to true.\nWhether to accept sync requests for this replica.\nSet to true to set sync state to true.\nA node connected to us and we accepted the exchange\nWe initiated the exchange\nThe content of an entry was downloaded and is now …\nPersistent default author for a docs engine.\nWhere to persist the default author.\nDirect join request via API\nThe sync engine coordinates actors that manage open …\nA local insertion.\nReceived a remote insert.\nEvents informing about actions of the live sync progress.\nMemory storage.\nWe lost a neighbor in the swarm.\nWe have a new neighbor in the swarm.\nPeer showed up as new neighbor in the gossip swarm\nWhy we performed a sync exchange\nAll pending content is now ready.\nFile based persistent storage.\nWe received a sync report while a sync was running, so run …\nEvent emitted when a sync operation completes\nA set-reconciliation sync finished.\nWhy we started a sync request\nWe synced after receiving a sync report that indicated …\nThe persistent default author for this engine.\nEndpoint used by the engine.\nConverts an EntryStatus into a [‘ContentStatus’].\nTimestamp when the sync started\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet the current default author.\nHandle an incoming iroh-docs connection.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nStop the live sync for a document and leave the gossip …\nLoad the default author from the storage.\nLoad the default author from storage.\nOrigin of the sync exchange\nPeer we synced with\nSave a new default author.\nResult of the sync operation\nSet the default author.\nShutdown the engine.\nStart the sync engine.\nStart to sync a document.\nTimestamp when the sync finished\nSubscribe to replica and sync progress events.\nHandle to the actor thread.\nIf the content is available at the local node\nThe inserted entry.\nThe inserted entry.\nThe peer that sent us the entry.\nThe content hash of the newly available entry content\nMetrics for iroh-docs\nReturns the argument unchanged.\nCalls U::from(self).\nWe aborted the sync request.\nReason why we aborted an incoming sync request.\nErrors that may occur on handling incoming sync …\nWhether we want to accept or reject an incoming sync …\nAccept the sync request.\nWe are already syncing this namespace.\nFailed to close\nFailed to close\nFailed to establish connection\nFailed to establish connection\nErrors that may occur on outgoing sync requests.\nThe ALPN identifier for the iroh-docs protocol\nWe experienced an error while trying to provide the …\nNamespace is not available.\nFailed to open replica\nDecline the sync request\nThe remote peer aborted the sync request.\nFailed to run sync\nFailed to run sync\nDetails of a finished sync operation.\nTime a sync operation took\nTime to establish connection\nConnect to a peer and sync a replica\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nHandle an iroh-docs connection and sync all shared …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nGet the namespace (if available)\nThe namespace that was synced.\nThe outcome of the sync operation\nGet the peer’s node ID (if available)\nThe peer we syned with.\nTime to run sync exchange\nThe time this operation took\nMatches any key.\nMatches any author.\nSort ascending\nAuthor matching.\nSort by author, then key.\nSort descending\nDownload policy to decide which content blobs shall be …\nStore that gives read access to download policies for a …\nDownload every key unless it matches one of the filters.\nMatches if the contained bytes and the key are the same.\nOnly keys that are exactly the provided value.\nMatches exactly the provided author.\nFilter strategy used in download policies.\nQuery on all entries without aggregation.\nOutcome of Store::import_namespace\nThe namespace did not exist before and is now inserted.\nSort by key, then author.\nKey matching.\nIn-memory key storage\nThe namespace existed and its capability remains unchanged.\nThe replica does not exist.\nDo not download any key unless it matches one of the …\nError return from Store::open_replica\nOther error while opening the replica.\nMatches if the contained bytes are a prefix of the key.\nAll keys that start with the provided value.\nStore trait for expanded public keys for authors and …\nNote: When using the SingleLatestPerKey query kind, the …\nA query builder for document queries.\nQuery that only returns the latest entry for a key which …\nFields by which the query can be sorted\nSort direction\nManages the replicas and authors for an instance.\nThe namespace existed and now has an upgraded capability.\nQuery all records.\nFilter by author.\nCreate a Query::all query filtered by a single author.\nConvert a AuthorId into a AuthorPublicKey.\nBuild the query.\nBuild the query.\nClose a replica.\nGet all content hashes of all replicas in the store.\nDelete an author.\nFlush the current transaction, if any.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nOn disk storage for replicas.\nGet an author key from the store.\nGet the download policy for a document.\nGet the download policy for a namespace.\nGet an entry by key and author.\nGet the latest entry for each author in a namespace.\nGet an iterator over entries of a replica.\nGet the peers that have been useful for a document.\nCheck if a AuthorHeads contains entry timestamps that we …\nImport an author key pair.\nImport a new replica namespace.\nCall to include empty entries (deletion markers).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nFilter by exact key match.\nCreate a Query::all query filtered by a single key.\nFilter by key prefix.\nCreate a Query::all query filtered by a key prefix.\nSet the maximum number of entries to be returned.\nGet the limit for this query (max. number of entries to …\nList all author keys in this store.\nList all replica namespaces in this store.\nLoad the replica info from the store.\nCheck if an entry should be downloaded according to this …\nVerifies whether this filter matches a given key\nTest if a key is matched by this KeyFilter.\nTest if an author is matched by this AuthorFilter.\nCreate a new store in memory.\nConvert a NamespaceId into a NamespacePublicKey.\nCreate a new author key and persist it in the store.\nCreate a new replica for namespace and persist in this …\nSet the offset within the result set from where to start …\nGet the offset for this query (number of entries to skip …\nOpen a replica from this store.\nCreate or open a store from a path to a database file.\nConvert a byte array into a VerifyingKey.\nRegister a peer that has been useful to sync a document.\nRemove a replica.\nSet the download policy for a namespace.\nQuery only the latest entry for each key, omitting older …\nGet a read-only snapshot of the database.\nGet an owned read-only snapshot of the database.\nSet the sort for the query.\nSet the order direction for the query.\nIterator for all content hashes\nIterator over the latest entry per author.\nIterator over parent entries, i.e. entries with the same …\nAn iterator over a range of entries from the records table.\nManages the replicas and authors for an instance.\nA wrapper around Store for a specific NamespaceId\nCreate a new iterator over all content hashes.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nTimestamps of the latest entry for each author.\nEntry signature is invalid.\nThe capability of the namespace.\nErrors for capability operations\nKind of capability of the namespace.\nThe replica is closed, no operations may be performed.\nThe content is completely available.\nWhether the content status is available on a node.\nCallback that may be set on a replica to determine the …\nA single entry in a Replica\nAttempted to insert an empty entry.\nSignature over an entry.\nEvent emitted by sync when entries are added.\nThe content is partially available.\nError emitted when inserting entries into a Replica failed\nWhether an entry was inserted locally or by a remote peer.\nEntry has length 0 but not the empty hash, or the empty …\nEntry namespace does not match the current replica.\nThe entry was inserted locally.\nA local entry has been added.\nMax time in the future from our wall clock time that we …\nThe content is missing.\nNamespaces are not the same\nA newer entry exists for either this entry’s key or a …\nByte representation of a PeerId from iroh-net.\nProtocol message for the set reconciliation protocol.\nA readable replica.\nRead only access to the namespace.\nError that occurs trying to access the NamespaceSecret of …\nReplica is read only.\nThe data part of an entry in a Replica.\nThe identifier of a record.\nA remote entry has been added.\nLocal representation of a mutable, synchronizable …\nIn memory information about an open replica.\nA signed entry.\nStorage error\nThe entry was received from the remote node identified by …\nOutcome of a sync operation.\nEntry timestamp is too far in the future.\nValidation failure\nReason why entry validation failed\nA writable replica.\nWrite access to the namespace.\nTimestamp of the latest entry for each author in the set …\nNumber of entries we received.\nNumber of entries we sent.\nInserted entry.\nInserted entry.\nPeer that provided the inserted entry.\nDocument in which the entry was inserted.\nDocument in which the entry was inserted.\nContentStatus for this entry in the remote’s replica.\nWhether download policies require the content to be …\nThe peer from which we received this entry.\nWhether the peer claims to have the content blob for this …\nA higher level wrapper for the gossip engine that manages …\nMetrics for iroh-gossip\nNetworking for the iroh-gossip protocol\nImplementation of the iroh-gossip protocol, as an IO-less …\nBroadcast a message to all nodes in the swarm\nBroadcast a message to all direct neighbors\nSend a gossip message\nUpdate from a subscribed gossip topic\nA message was received\nA gossip engine that manages gossip subscriptions and …\nGossip event An event to be emitted to the application for …\nWe missed some messages\nA gossip message\nWe dropped direct neighbor in the swarm membership layer …\nWe have a new, direct neighbor in the swarm membership …\nA gossip message was received for this topic\nJoin a gossip topic\nThe initial bootstrap nodes\nThe content of the message\nThe node that delivered the message. This is not the same …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a new gossip dispatcher with the given gossip …\nThe scope of the message. This tells us if the message is …\nSubscribe to a gossip topic.\nThe maximum number of messages that can be buffered in a …\nEnum of metrics for the module\nReturns the argument unchanged.\nCalls U::from(self).\nBroadcast a message for this topic.\nCommands for the gossip protocol\nEvents emitted from the gossip protocol\nALPN protocol name\nPublish and subscribe on gossiping topics.\nJoin this topic and connect to peers.\nFuture that completes once at least one peer is joined for …\nWe dropped direct neighbor in the swarm membership layer …\nWe have a new, direct neighbor in the swarm membership …\nLeave this topic and drop all state.\nA gossip message was received for this topic\nBroadcast a message on a topic to all peers in the swarm.\nBroadcast a message on a topic to the immediate neighbors.\nReturns the argument unchanged.\nReturns the argument unchanged.\nSpawn a gossip actor and get a handle for it\nHandle an incoming Connection.\nCalls U::from(self).\nCalls U::from(self).\nJoin a topic and connect to peers.\nGet the maximum message size configured for this gossip …\nQuit a topic.\nSubscribe to messages and event notifications for a topic.\nSubscribe to all events published on topics that you …\nSet info on our direct addresses.\nUtilities for iroh-gossip networking\nA TimerMap with an async method to wait for the next timer …\nReturns the argument unchanged.\nInsert a new entry at the specified instant\nCalls U::from(self).\nCreate a new timer map\nReads a length prefixed message.\nRead a length-prefixed message and decode as ProtoMessage;\nWait for the next timer to expire and return an iterator …\nWrite a ProtoMessage as a length-prefixed, …\nBroadcast a message for this topic.\nA command to the protocol state for a particular topic.\nExecute a command from the application.\nProtocol configuration\nThe scope to deliver the message to.\nClose the connection to a peer on the network level.\nEmit an event to the application.\nAn event to be emitted to the application for a particular …\nA trait for a concrete type to push OutEvents to.\nInput event to the protocol state.\nJoin this topic and connect to peers.\nProtocol wire message\nWe dropped direct neighbor in the swarm membership layer …\nWe have a new, direct neighbor in the swarm membership …\nThis message was received from a direct neighbor that …\nThe message is broadcast only to the immediate neighbors …\nOutput event from the protocol state.\nOpaque binary data that is transmitted on messages that …\nUpdated peer data\nPeer disconnected on the network level.\nThe identifier for a peer.\nLeave this topic and drop all state.\nA gossip message was received for this topic\nMessage received from the network.\nSchedule a timer. The runtime is responsible for sending …\nThe broadcast scope of a gossip message.\nSend a message on the network\nThe state of the iroh-gossip protocol.\nThis message was received from the swarm, with a distance …\nThe message is broadcast to all peers in the swarm.\nA timer to be registered into the runtime\nTrigger a previously scheduled timer.\nThe identifier for a topic\nUpdate the opaque peer data about yourself.\nGet as byte slice.\nGet the peer data as a byte slice.\nConfiguration for the gossip broadcast layer\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate from a byte array.\nHandle an InEvent\nCheck if a topic has any active (connected) peers.\nGet a reference to the contained bytes::Bytes.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether this message was directly received from its …\nGet the kind of this message\nReturns the maximum message size configured in the gossip …\nMax message size in bytes.\nGet a reference to the node’s PeerIdentity\nConfiguration for the swarm membership layer\nCreate a new protocol state instance.\nCreate a new PeerData from a byte buffer.\nPush an event in the IO container\nPush all events from an iterator into the IO container\nGet the encoded size of this message\nThe protocol state of the iroh-gossip protocol.\nGet a reference to the protocol state for a topic.\nGet an iterator for the states of all joined topics.\nThis module contains the implementation of the gossiping …\nGet an iterator of all joined topics.\nUtilities used in the protocol implementation\nExecute a command from the application.\nA control message.\nA data message.\nClose the connection to a peer on the network level.\nEmit an event to the application.\nInput event to the protocol state.\nProtocol wire message\nWhether this is a control or data message\nOutput event from the protocol state.\nUpdated peer data\nPeer disconnected on the network level.\nMessage received from the network.\nSchedule a timer. The runtime is responsible for sending …\nSend a message on the network\nThe state of the iroh-gossip protocol.\nA timer to be registered into the runtime\nTrigger a previously scheduled timer.\nThe identifier for a topic\nUpdate the opaque peer data about yourself.\nReturns the argument unchanged.\nCalls U::from(self).\nBroadcast a message for this topic.\nA command to the protocol state for a particular topic.\nExecute a command from the application.\nProtocol configuration\nThe default maximum size in bytes for a gossip message. …\nClose the connection to a peer on the network level.\nEmit an event to the application.\nAn event to be emitted to the application for a particular …\nA message of the gossip broadcast layer\nA timer for the gossip layer\nA trait for a concrete type to push OutEvents to.\nInput event to the topic state handler.\nJoin this topic and connect to peers.\nA protocol message for a particular topic\nWe dropped direct neighbor in the swarm membership layer …\nWe have a new, direct neighbor in the swarm membership …\nAn output event from the state handler.\nEmitted when new PeerData was received for a peer.\nPeer disconnected on the network level.\nLeave this topic and drop all state.\nA gossip message was received for this topic\nMessage received from the network.\nSchedule a timer. The runtime is responsible for sending …\nSend a message on the network\nThe topic state maintains the swarm membership and …\nStatistics for the protocol state of a topic\nA message of the swarm membership layer\nA timer for the swarm layer\nA timer to be registered for a particular topic.\nTrigger a previously scheduled timer.\nUpdate the opaque peer data about yourself.\nConfiguration for the gossip broadcast layer\nThe address of your local endpoint.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet statistics for the gossip broadcast state\nHandle an incoming event.\nCheck if this topic has any active (connected) peers.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nGet the kind of this message\nMax message size in bytes.\nConfiguration for the swarm membership layer\nNumber of messages received\nNumber of messages sent\nInitialize the local state with the default random number …\nPush an event in the IO container\nPush all events from an iterator into the IO container\nGet stats on how many messages were sent and received\nInitialize the local state with a custom random number …\nA hash map where entries expire after a time\nA BTreeMap with Instant as key. Allows to process expired …\nReturns true if the map contains a value for the specified …\nRemove and return all entries before and equal to from.\nRemove all entries with an expiry instant lower or equal …\nGet the expiration time for an item.\nGet a reference to the earliest entry in the TimerMap.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet an item from the cache.\nInsert a new entry at the specified instant.\nInsert an item into the cache, marked with an expiration …\nCalls U::from(self).\nCalls U::from(self).\nReturns true if the map contains no elements.\nIterate over all items in the timer map.\nIterate over all items in the cache.\nGet the number of entries in the cache.\nCreate a new, empty TimerMap.\nRemove an entry from the specified instant.\nRemove an item from the cache.\nEnum of metrics for the module\nReturns the argument unchanged.\nCollect the current metrics into a hash map.\nCalls U::from(self).\nInitialize the global metrics collection.\nNetwork paths to contact an iroh-net node.\nControls an iroh-net node, establishing connections with …\nNetwork-level addressing information for an iroh-net node.\nThe identifier for a node in the (iroh) network.\nAccepts an incoming connection on the endpoint.\nInforms this Endpoint about addresses of the iroh-net node.\nInforms this Endpoint about addresses of the iroh-net …\nApplies the options to self.\nApplies the options to self.\nReturns the local socket addresses on which the underlying …\nReturns the builder for an Endpoint, with a production …\nCloses the QUIC endpoint and the magic socket.\nReturns a stream that reports connection type changes for …\nConnects to a remote Endpoint.\nConnects to a remote endpoint, using just the nodes’s …\nReturns connection information about a specific node.\nReturns information on all the nodes we have connection …\nDefault values used in iroh-net\nA dialer to conveniently dial many nodes.\nReturns the direct addresses of this peer.\nReturns the direct addresses of this Endpoint.\nSocket addresses where the peer might be reached directly.\nNode address discovery.\nReturns the discovery mechanism, if configured.\nThis module exports a DNS resolver, which is also the …\nReturns the DNS resolver used in this Endpoint.\nThe Endpoint allows establishing connections to other …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreates a new NodeAddr from its parts.\nReturns the RelayUrl of the Relay server used as home …\nAddressing information to connect to Self::node_id.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns whether this addressing information is empty.\nCryptographic key handling for iroh-net.\nCo-locating all of the iroh-net metrics structs\nNetworking related utilities\nChecks the network conditions from the current host.\nNotifies the system of potential network changes.\nCreates a new NodeAddr with empty AddrInfo.\nReturns the current NodeAddr for this endpoint.\nReturns the node id of this endpoint.\nThe node’s identifier.\nAllows sending ICMP echo requests to a host in order to …\nPort mapping client and service.\nPackage relay implements a revised version of the …\nReturns the relay url of this peer.\nThe node’s home relay url.\nReturns the secret_key of this endpoint.\nSets the list of accepted ALPN protocols.\nSTUN packets sending and receiving.\nInternal utilities to support testing.\nTickets supported by iroh-net\nTLS configuration based on libp2p TLS specs.\nUtilities used in iroh-net\nWatches for changes to the home relay.\nAdds the given direct addresses to the peer’s AddrInfo.\nAdds a relay url to the node’s AddrInfo.\nThe default HTTPS port used by the Relay server.\nThe default HTTP port used by the Relay server.\nThe default metrics port used by the Relay server.\nThe default STUN port used by the Relay server.\nProduction configuration.\nStaging configuration.\nHostname of the default Asia-Pacific relay.\nHostname of the default EU relay.\nHostname of the default NA relay.\nGet the default RelayNode for Asia-Pacific\nGet the default RelayNode for EU.\nGet the default RelayNode for NA.\nGet the default RelayMap.\nHostname of the default EU relay.\nHostname of the default NA relay.\nGet the default RelayNode for EU.\nGet the default RelayNode for NA.\nGet the default RelayMap.\nDials nodes and maintains a queue of pending dials.\nAborts a pending dial.\nReturns the argument unchanged.\nCalls U::from(self).\nChecks if a node is currently being dialed.\nCreate a new dialer for a Endpoint\nWaits for the next dial operation to complete.\nNumber of pending connections to be opened.\nStarts to dial a node by NodeId.\nA discovery service that combines multiple discovery …\nNode discovery for super::Endpoint.\nThe results returned from Discovery::resolve.\nAdds a Discovery service.\nThe address info for the node being resolved.\nDNS node discovery for iroh-net\nCreates an empty ConcurrentDiscovery.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreates a new ConcurrentDiscovery.\nCalls U::from(self).\nCalls U::from(self).\nOptional timestamp when this node address info was last …\nA discovery service that uses an mdns-like service to …\nA discovery service which publishes and resolves node …\nA static string to identify the discovery source.\nPublishes the given AddrInfo to the discovery mechanism.\nResolves the AddrInfo for the given NodeId.\nDNS node discovery\nThe n0 testing DNS node origin, for production.\nThe n0 testing DNS node origin, for testing.\nReturns the argument unchanged.\nCalls U::from(self).\nCreate a new DNS discovery which uses the …\nCreate a new DNS discovery.\nDiscovery using swarm-discovery, a variation on mdns\nReturns the argument unchanged.\nCalls U::from(self).\nCreate a new LocalSwarmDiscovery Service.\nDefault TTL for the records in the pkarr signed packet. …\nInterval in which we will republish our node info even if …\nThe pkarr relay run by n0, for production.\nThe pkarr relay run by n0, for testing.\nPublish node info to a pkarr relay.\nA pkarr client to publish pkarr::SignedPackets to a pkarr …\nResolve node info using a pkarr relay.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a pkarr publisher which uses the …\nCreate a pkarr resolver which uses the …\nCreate a new config with a secret key and a pkarr relay …\nCreate a new config with a pkarr relay URL.\nCreate a new client.\nPublish a SignedPacket\nResolve a SignedPacket\nPublish AddrInfo about this node to a pkarr relay.\nCreate a new PkarrPublisher with a custom time-to-live …\nThe DNS resolver type used throughout iroh-net.\nExtension trait to DnsResolver.\nGet a reference to the default DNS resolver.\nLooks up node info by NodeId and origin domain name.\nLooks up node info by NodeId and origin domain name.\nLooks up node info by DNS name.\nLooks up node info by DNS name in a staggered fashion.\nPerform an ipv4 lookup with a timeout.\nRace an ipv4 and ipv6 lookup with a timeout.\nRace an ipv4 and ipv6 lookup with a timeout in a staggered …\nPerform an ipv4 lookup with a timeout in a staggered …\nPerform an ipv6 lookup with a timeout.\nPerform an ipv6 lookup with a timeout in a staggered …\nSupport for handling DNS resource records for dialing by …\nGet the DNS resolver used within iroh-net.\nDirect address.\nThe DNS name for the iroh TXT record.\nThe attributes supported by iroh for IROH_TXT_NAME DNS …\nInformation about the iroh node contained in an …\nURL of home relay.\nAttributes parsed from IROH_TXT_NAME TXT records.\nReturns the parsed attributes.\nAny direct addresses.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nParses a NodeInfo from a set of DNS records.\nParses a set of DNS resource records.\nCreates TxtAttrs from a node id and an iterator of …\nParses a NodeInfo from a pkarr::SignedPacket.\nParses a pkarr::SignedPacket.\nCreates TxtAttrs from a node id and an iterator of “…\nParses a NodeId from [z-base-32] encoding.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nLooks up attributes by NodeId and origin domain.\nLooks up attributes by DNS name.\nCreates a new NodeInfo from its parts.\nReturns the node id.\nThe NodeId.\nThe advertised home relay server.\nConverts into a hickory_proto::rr::Record DNS record.\nConverts to a list of hickory_proto::rr::Record resource …\nCreates a pkarr::SignedPacket.\nCreates a pkarr::SignedPacket\nEncodes a NodeId in [z-base-32] encoding.\nFuture produced by Endpoint::accept.\nNetwork paths to contact an iroh-net node.\nThe peer closed the connection\nBuilder for Endpoint.\nWe received a CallMeMaybe.\nIn-progress connection attempt future\nA QUIC connection.\nThe peer’s QUIC stack aborted the connection …\nReasons why a connection might be lost\nDetails about an iroh node which is known to this node.\nThe connection was lost\nThe connection was lost\nThe type of connection we have to the endpoint.\nStream returning ConnectionTypes\nThe type of control message we have received.\nDirect UDP connection\nA direct address on which an iroh-node might be …\nInformation about a direct address.\nThe type of direct address.\nStream returning local endpoints as they change.\nControls an iroh-net node, establishing connections with …\nAttempted an ordered read following an unordered read\nA locally bound socket address.\nThe local application closed the connection\nThe largest representable value\nThe largest encoded value length\nBoth a UDP and a relay connection are used.\nNetwork-level addressing information for an iroh-net node.\nWe have no verified connection to this PublicKey\nWe received a Ping from the node.\nWe received a Pong from the node.\nAn address assigned by the router using port mapping.\nErrors that arise from reading from a stream.\nA stream that can only be used to receive data\nRelay connection over relay\nThe peer abandoned transmitting data on this stream\nThe peer is unable to continue processing this connection, …\nA stream that can only be used to send data\nThe peer is no longer accepting data on this stream\nPublic internet address discovered via STUN.\nHard NAT: STUN’ed IPv4 address + local fixed port.\nCommunication with the peer has lapsed for longer than the …\nParameters governing the core QUIC state machine\nThe peer violated the QUIC specification as understood by …\nNot yet determined..\nThe stream has already been stopped, finished, or reset\nThe stream has already been finished or reset\nAn integer less than 2^62\nThe peer doesn’t implement any supported version\nErrors that arise from writing to a stream\nThis was a 0-RTT stream and the server rejected it\nThis was a 0-RTT stream and the server rejected it\nAccept the next incoming bidirectional stream\nAccept the next incoming uni-directional stream\nThe address reported.\nThe address.\nList of addresses at which this node might be reachable, …\nWhether the implementation is permitted to set the spin …\nExtracts the ALPN protocol from the peer’s handshake …\nSets the ALPN protocols that this endpoint will accept on …\nBinds the magic endpoint on the specified socket address.\nClose the connection immediately.\nIf the connection is closed, the reason why.\nWait for the connection to be closed for any reason\nMaximum number of simultaneous connections to accept.\nHow to construct new congestion::Controllers\nCurrent state of the congestion control algorithm, for …\nThe type of connection we have to the node, either direct …\nMaximum quantity of out-of-order crypto layer data to …\nMaximum number of incoming application datagram bytes to …\nMaximum number of outgoing application datagram bytes to …\nBytes available in the outgoing datagram buffer\nReturns the default relay mode.\nSocket addresses where the peer might be reached directly.\nOptionally sets a discovery mechanism for this endpoint.\nOptionally sets a custom DNS resolver to use for this …\nWhether to use “Generic Segmentation Offload” to …\nDerive keying material from this connection’s TLS …\nShut down the send stream gracefully.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a VarInt infallibly\nSucceeds iff x < 2^62\nCreate a VarInt without ensuring it’s in range\nExtract the PublicKey from the peer’s TLS certificate.\nParameters negotiated during the handshake\nParameters negotiated during the handshake\nReturns true if this info contains either a relay URL or …\nGet the identity of this stream\nGet the identity of this stream\nThe id in the node_map\nAddressing information to connect to Self::node_id.\nThe initial value to be used as the maximum UDP payload …\nThe RTT used before an RTT sample is taken\nSkip verification of SSL certificates from relay servers\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert into a 0-RTT or 0.5-RTT connection at the cost of …\nExtract the integer value\nCheck if this stream has been opened during 0-RTT.\nPeriod of inactivity before sending a keep-alive packet\nEnables saving the TLS pre-master key for connections.\nOptionally set a list of known nodes.\nWhen was this connection last alive, if ever.\nGet the duration since the last activity we received from …\nLast control message received by this node.\nHow long ago was the last payload message for this node.\nGet the duration since the last activity we received from …\nDuration since the last time this node was used.\nThe latency to the address, if any.\nThe latency of the conn_type.\nThe local IP address which was used when the peer …\nThe local IP address which was used when the peer …\nCreates a quinn::ServerConfig with the given secret key …\nMaximum number of incoming bidirectional streams that may …\nVariant of max_concurrent_bidi_streams affecting …\nCompute the maximum size of datagrams that may be passed …\nMaximum duration of inactivity to accept before timing out …\nMaximum number of tail loss probes before an RTO fires.\nThe maximum UDP payload size guaranteed to be supported by …\nSpecifies the MTU discovery config (see MtuDiscoveryConfig …\nThe node’s identifier.\nThe public key of the endpoint.\nInitiate a new outgoing bidirectional stream.\nInitiate a new outgoing unidirectional stream.\nMaximum reordering in packet number space before FACK …\nCryptographic identity of the peer\nNumber of consecutive PTOs after which network is …\nGet the priority of the send stream\nSets the proxy url from the environment, in this order:\nSets an explicit proxy url to proxy all HTTP(S) traffic …\nRead data contiguously from the stream.\nRead the next segment of data\nRead the next segments of data\nReceive an application datagram\nRead an exact number of bytes contiguously from the stream.\nConvenience method to read all remaining data into a buffer\nMaximum number of bytes the peer may transmit across all …\nSets the relay servers to assist in establishing …\nThe node’s home relay url.\nrelay server information, if available.\nThe peer’s UDP address\nThe peer’s UDP address.\nClose the send stream immediately.\nCurrent best estimate of this connection’s latency …\nSets a secret key to authenticate with other peers.\nTransmit data as an unreliable, unordered application …\nMaximum number of bytes to transmit to a peer without …\nModify the number of remotely initiated bidirectional …\nModify the number of remotely initiated unidirectional …\nSet the priority of the send stream\nSee proto::TransportConfig::receive_window()\nA stable identifier for this connection\nReturns connection statistics\nStop accepting data\nCompletes if/when the peer stops the stream, yielding the …\nMaximum number of bytes the peer may transmit without …\nMaximum reordering in time space before time based loss …\nSets a custom quinn::TransportConfig for this endpoint.\nSucceeds iff x < 2^62\nSucceeds iff x < 2^62\nSucceeds iff x < 2^62\nThe origin of this direct address.\nReturns a weak reference to the inner connection struct.\nWrite bytes to the stream\nConvenience method to write an entire buffer to the stream\nConvenience method to write an entire list of chunks to …\nConvenience method to write a single chunk in its entirety …\nWrite chunks to the stream\nSize of an encoded Ed25519 signature in bytes.\nError when decoding the base32.\nError when decoding the public key.\nError when deserialising a PublicKey or a SecretKey.\nThe identifier for a node in the (iroh) network.\nThe length of an ed25519 PublicKey, in bytes.\nA public key.\nA secret key.\nShared Secret.\nEd25519 signature.\nGet this public key as a byte array.\nConvert to a base32 string limited to the first 10 bytes …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nParse an Ed25519 signature from a byte slice.\nConstruct a PublicKey from a slice of bytes.\nCreate a secret key from its byte representation.\nParse an Ed25519 signature from its R and s components.\nParse an Ed25519 signature from a byte slice.\nGenerate a new SecretKey with the default randomness …\nGenerate a new SecretKey with a randomness generator.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nOpens the ciphertext, which must have been created using …\nThe public key of this SecretKey.\nBytes for the R component of a signature.\nBytes for the s component of a signature.\nSeals the provided cleartext.\nReturns the shared key for communication between this key …\nSign the given message and return a digital signature\nReturn the inner byte array.\nConvert this to the bytes representing the secret part. …\nSerialise this key to OpenSSH format.\nConvert this signature into a byte vector.\nDeserialise this key from OpenSSH format.\nVerify a signature on a message with this secret key’s …\nEnum of metrics for the module\nEnum of metrics for the module\nEnum of metrics for the module\nMetrics tracked for the relay server\nNumber of connections we have accepted\nBytes received from a FrameType::SendPacket\nBytes sent from a FrameType::SendPacket\nNumber of accepted ‘iroh derp http’ connection upgrades\nFrameType::SendPacket dropped that are disco messages\nFrameType::SendPacket received that are disco messages\nFrameType::SendPacket sent that are disco messages\nNumber of connections we have removed because of an error\nReturns the argument unchanged.\nNumber of FrameType::Pings received\nCalls U::from(self).\nThe number of direct connections we have made to peers.\nThe number of direct connections we have lost to peers.\nThe number of connections to peers we have added over …\nThe number of connections to peers we have removed over …\nPackets of other FrameTypes dropped\nPackets of other FrameTypes received\nPackets of other FrameTypes sent\nNumber of QUIC datagrams received.\nFrameType::SendPacket dropped, that are not disco messages\nFrameType::SendPacket received, that are not disco messages\nFrameType::SendPacket sent, that are not disco messages\nNumber of FrameType::Pongs sent\nNumber of unique client keys per day\nNumber of FrameType::Unknown received\nNumber of accepted websocket connections\nIp family selection between Ipv4 and Ipv6.\nWrapper around a tokio UDP socket that handles the fact …\nIpv4\nIpv6\nBind to the given port and listen on all interfaces.\nBind to any provided SocketAddr. Does not prepare for …\nBind to the given port only on localhost.\nBind only Ipv4 on localhost.\nBind only Ipv6 on localhost.\nBind only Ipv4 on any interface.\nBind only Ipv6 on any interface.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nIP address related utilities.\nReturns the matching localhost address.\nMonitoring of networking interfaces and route changes.\nReturns the matching default address.\nList of machine’s IP addresses.\nReturns the argument unchanged.\nCalls U::from(self).\nReturns true if the address is a unicast address with …\nLoopback addresses.\nReturns the machine’s IP addresses. If there are no …\nRegular addresses.\nToken to remove a callback\nMonitors networking interface and route changes.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nPotential change detected outside\nCreate a new monitor.\nSubscribe to network changes.\nUnsubscribe a callback from network changes, using the …\nClient to run netchecks.\nEnum of metrics for the module\nLatencies per relay node.\nA netcheck report.\nCaptivePortal is set when we think there’s a captive …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nRuns a netcheck, returning the report.\nGet report with channel\nip:port of global IPv4\n[ip]:port of global IPv6\nWhether the router supports communicating between two …\nAn ICMPv4 round trip completed, None if not checked.\nAn ICMPv6 round trip completed, None if not checked.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAn IPv4 STUN round trip completed.\nan IPv4 packet was able to be sent\nAn IPv6 STUN round trip completed.\nAn IPv6 packet was able to be sent\nReturns an iterator over all the relays and their …\nWhether STUN results depend on which STUN server you’re …\nWhether STUN results depend on which STUN server you’re …\nCreates a new netcheck client.\ncould bind a socket to ::1\nProbe indicating the presence of port mapping protocols on …\nNone for unknown\nPass a received STUN packet to the netchecker.\nkeyed by relay Url\nkeyed by relay Url\nkeyed by relay Url\nA UDP STUN round trip completed.\nCould not create client, probably bind error.\nCould not send ping.\nWhether this error was because we couldn’t create a …\nAllows sending ICMP echo requests to a host in order to …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCreate a new Pinger.\nSend a ping request with associated data, returning the …\nPort mapping client.\nConfigures which port mapping protocols are enabled in the …\nEnum of metrics for the module\nOutput of a port mapping probe.\nA port mapping client.\nIndicates if all port mapping protocols are available.\nDeactivate port mapping.\nBy default all port mapping protocols are enabled.\nWhether PMP is enabled.\nWhether PCP is enabled.\nWhether UPnP is enabled.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIf PMP can be considered available.\nCreate a new port mapping client.\nIf PCP can be considered available.\nRequest a probe to the port mapping protocols.\nTry to get a mapping for the last local port if there isn…\nUpdate the local port.\nIf UPnP can be considered available.\nWatch the external address for changes in the mappings.\nThe inner actor is gone, likely means things are shutdown.\nThe relay super::client::Client failed to build\nThis Client cannot acknowledge pings\nThe client is closed\nThere was a connection timeout error\nUse a custom relay map.\nUse the default relay map, with production relay servers …\nThere was an error dialing\nThere was an error from the task doing the dialing\nDisable relay servers completely.\nThere was an error with DNS resolution\nThere was a timeout resolving DNS.\nA one-way message from server to client, declaring the …\nThere was an http error http::Error.\nAn HTTP Relay client.\nBuild a Client.\nPossible connection errors on the Client\nReceiving end of a Client.\nThere was http server hyper::Error\nBoth IPv4 and IPv6 are disabled for this relay node\nThe given Url is invalid\nA one-way empty message from server to client, just to …\nThe maximum size of a packet sent over relay. (This only …\nThere no underlying relay super::client::Client client …\nNo local addresses exist\nNo relay nodes are available with that name\nIndicates that the client identified by the underlying …\nRequest from a client or server to reply to the other side …\nThe ping request was aborted\nThe ping request timed out\nReply to a ReceivedMessage::Ping from a client or server …\nThe connection failed to proxy\nThere was an error receiving a packet\nThe type of message received by the Conn from a relay …\nRepresents an incoming packet.\nA connection to a relay server.\nConfiguration of all the relay servers that can be used.\nConfiguration options for the relay servers of the magic …\nInformation on a specific relay server.\nNo relay nodes are available\nA URL identifying a relay server.\nThere was an error sending a packet\nA one-way message from server to client, advertising that …\nUse the staging relay servers from n0.\nThe relay node specified only allows STUN requests\nThere was an unexpected status code\nThe connection failed to upgrade\nAn error related to websockets, either errors with parsing …\nReturns if we should prefer ipv6 it replaces the …\nBuild the Client\nEnable this Client to acknowledge pings.\nClose the connection\nClose the http relay connection.\nDisconnect the http relay connection.\nConnect to a relay Server and returns the underlying relay …\nIs this a known node?\nCreates a new `RelayMap with a single relay server …\nCreate an empty relay map.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs the [RelayMap] from an iterator of [RelayNode`]…\nReturns a [RelayMap] from a [RelayUrl`].\nGet the given node.\nHTTP-specific constants for the relay server and client.\nSkip the verification of the relay server’s SSL …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether or not this Conn is closed.\nReturns true if the underlying relay connection is …\nAre there any nodes in this map?\nIndicate this client is the preferred way to communicate …\nIndicates this client is a prober\nHow many nodes are known?\nThe local address that the Conn is listening on.\nGet the local addr of the connection. If there is no …\nCreate a new ClientBuilder\nReturns an Iterator over all known nodes.\nSends a packet that tells the server whether this …\nLet the server know that this client is the preferred …\nSend a ping to the server. Return once we get an expected …\nSets whether to connect to the relay via websockets or not.\nSet an explicit proxy url to proxy all HTTP(S) traffic …\nThe public key for this client\nReads a message from the server. Returns the message and …\nReturns the relay map for this mode.\nSends a packet to the node identified by dstkey\nSend a packet to the server.\nSend a ping with 8 bytes of random data.\nRespond to a ping request. The data field should be filled …\nSend a pong back to the server.\nA fully-fledged iroh-relay server over HTTP or HTTPS.\nThe expected PublicKey of the relay server we are …\nSets the server url\nWhether this relay server should only be used for STUN …\nThe stun port of the relay server.\nThe RelayUrl where this relay server can be dialed.\nReturns the sorted relay URLs.\nThe received packet bytes.\nIf set, is a description of why the connection is …\nAn advisory duration that the client should wait before …\nThe PublicKey of the packet sender.\nAn advisory duration for how long the client should …\nThe HTTP upgrade protocol used for relaying.\nThe HTTP path under which the relay accepts relaying …\nThe HTTP path under which the relay allows doing latency …\nRelays over the custom relaying protocol with a custom …\nRelays over websockets.\nReturns the argument unchanged.\nCalls U::from(self).\nTries to match the value of an HTTP upgrade header to …\nThe HTTP upgrade header used or expected.\nTLS certificate configuration.\nHandle incoming connections to the Server.\nUse Let’s Encrypt.\nRate limits.\nUse a static TLS key and certificate chain.\nThe main underlying IO stream type used for the relay …\nMetrics tracked for the relay server\nA plain non-Tls tokio::net::TcpStream\nConfiguration for the Relay HTTP and HTTPS server.\nA running Relay + STUN server.\nThe task for a running server actor.\nConfiguration for the full Relay & STUN server.\nConfiguration for the STUN server.\nA Tls wrapped tokio::net::TcpStream\nTLS configuration for Relay server.\nAborts the server.\nAdds a new connection to the server and serves it.\nBurst limit for accepting new connection. Unlimited if not …\nRate limit for accepting new connection. Unlimited if not …\nNumber of connections we have accepted\nThe socket address on which the STUN server should bind.\nBytes received from a FrameType::SendPacket\nBytes sent from a FrameType::SendPacket\nMode for getting a cert.\nCreate a ClientConnHandler, which can verify connections …\nCloses the server and waits for the connections to …\nNumber of accepted ‘iroh derp http’ connection upgrades\nFrameType::SendPacket dropped that are disco messages\nFrameType::SendPacket received that are disco messages\nFrameType::SendPacket sent that are disco messages\nNumber of connections we have removed because of an error\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nNumber of FrameType::Pings received\nThe socket address the HTTP server is listening on.\nThe socket address on which the Relay HTTP server should …\nThe socket address the HTTPS server is listening on.\nThe socket address on which to serve the HTTPS server.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether or not the relay ServerActorTask is closed.\nRate limits.\nReturns the server metadata cert that can be sent by the …\nSocket to serve metrics on.\nTODO: replace with builder\nPackets of other FrameTypes dropped\nPackets of other FrameTypes received\nPackets of other FrameTypes sent\nReturns the server’s public key.\nConfiguration for the Relay server, disabled if None.\nReturns the server’s secret key.\nThe iroh secret key of the Relay server.\nFrameType::SendPacket dropped, that are not disco messages\nFrameType::SendPacket received, that are not disco messages\nFrameType::SendPacket sent, that are not disco messages\nNumber of FrameType::Pongs sent\nRequests graceful shutdown.\nStarts the server.\nConfiguration for the STUN server, disabled if None.\nThe socket address the STUN server is listening on.\nReturns the handle for the task.\nTLS configuration for the HTTPS server.\nNumber of unique client keys per day\nNumber of FrameType::Unknown received\nNumber of accepted websocket connections\nThe TLS certificate chain.\nConfiguration for Let’s Encrypt certificates.\nThe TLS private key.\nThe AlternateServeratribute\nErrors that can occur when handling a STUN packet.\nThe ErrorCodeatribute\nerror response\nThe Fingerprintatribute\nindication\nSTUN request had bogus fingerprint.\nThe STUN message could not be parsed or is otherwise …\nSTUN response has malformed attributes.\nThe MappedAddressatribute\nThe STUN message class. Although there are four message …\nClass used to decode STUN messages\nThe MessageIntegrityatribute\nThe MessageIntegritySha256atribute\nSTUN request didn’t end in fingerprint.\nThe Nonceatribute\nSTUN request is not a binding request when it should be.\nSTUN packet is not a response when it should be.\nThe PasswordAlgorithmatribute\nThe PasswordAlgorithmsatribute\nThe Realmatribute\nrequest\nThe Softwareatribute\nSTUN Attributes that can be attached to a StunMessage") \ No newline at end of file +searchState.loadedDescShard("iroh", 0, "Send data over the internet.\nClient to an Iroh node.\nExpose metrics module\nNode API\nUtilities for working with iroh.\nThe blake3 hash used in Iroh.\nCryptographic key handling for iroh-net.\nAddressing for iroh nodes.\nError when decoding the base32.\nDecoding error\nDecoding error kind\nError when decoding the public key.\nError when parsing a hex or base32 string.\nInvalid length\nInvalid padding length\nInvalid symbol\nNon-zero trailing bits\nConvert to a base32 string\nConvert to a base32 string and append out out\nConvert to a base32 string limited to the first 10 bytes\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nError kind\nParse from a base32 string into a byte array\nParse a fixed length hex or base32 string into a byte array\nDecode form a base32 string to a vector of bytes\nError position\nA format identifier\nHash type used throughout.\nA hash and format pair\nA sequence of BLAKE3 hashes\nRaw blob\nThe format\nThe hash\nError when decoding the base32.\nError when decoding the public key.\nError when deserialising a PublicKey or a SecretKey.\nThe identifier for a node in the (iroh) network.\nThe length of an ed25519 PublicKey, in bytes.\nA public key.\nA secret key.\nShared Secret.\nEd25519 signature.\nNetwork paths to contact an iroh-net node.\nOptions to configure what is included in a NodeAddr and …\nOnly includes the direct addresses.\nOnly the Node ID is added.\nNetwork-level addressing information for an iroh-net node.\nOnly includes the relay URL.\nIncludes both the relay URL and the direct addresses.\nA URL identifying a relay server.\nSocket addresses where the peer might be reached directly.\nReturns the argument unchanged.\nAddressing information to connect to Self::node_id.\nCalls U::from(self).\nThe node’s identifier.\nThe node’s home relay url.\nContains the error value\nContains the success value\nA serializable error type for use in RPC responses.\nA serializable result type for use in RPC responses.\nReturns the argument unchanged.\nCalls U::from(self).\nA token containing everything to get a file from the …\nThis looks like a ticket, but base32 decoding failed.\nAn error deserializing an iroh ticket.\nString prefix describing the kind of iroh ticket.\nFound a ticket of with the wrong prefix, indicating the …\nA token containing everything to get a file from the …\nThis looks like a ticket, but postcard deserialization …\nA ticket is a serializable object that combines all …\nVerification of the deserialized bytes failed.\nDeserialize from a string.\nThe BlobFormat for this ticket.\nReturns the argument unchanged.\nReturns the argument unchanged.\nDeserialize from the base32 string representation bytes.\nThe hash of the item this ticket can retrieve.\nCalls U::from(self).\nCalls U::from(self).\nGet the contents of the ticket, consuming it.\nCreates a new ticket.\nThe NodeAddr of the provider for this ticket.\nTrue if the ticket is for a collection and should retrieve …\nSerialize to string.\nSerialize to bytes used in the base32 string …\nA format identifier\nThe hash for the empty byte range (b"").\nHash type used throughout.\nA hash and format pair\nA sequence of BLAKE3 hashes\nBlock size used by iroh, 2^4*1024 = 16KiB\nRaw blob\nA tag\nA hash and format pair that is protected from garbage …\nBytes of the hash.\nCreate a new tag that does not exist yet.\nHandle downloading blobs and collections concurrently and …\nFunctions to export data from a store\nConvert to a base32 string limited to the first 10 bytes …\nDefines data formats for HashSeq.\nThe format of the pinned item\nThe format\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate a Hash from its raw bytes representation.\nThe client side API\nThe hash of the pinned item\nThe hash\nCreate a new hash and format pair, using the collection …\ntraits related to collections of blobs\nThe hash of the pinned item\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIs hash seq format\nIs raw format\nKeep the item alive until the end of the process\nMetrics for iroh-blobs\nCalculate the hash of the provided bytes.\nCreate a new hash and format pair.\nCreate a new temp tag for the given hash and format\nProtocol for transferring content-addressed blobs and …\nThe server side API\nCreate a new hash and format pair, using the default (raw) …\nImplementations of blob stores\nConvert the hash to a hex string.\nUtility functions and types.\nAn error occurred that prevents the request from being …\nFailed to receive response from service.\nThe request was cancelled by us.\nThe download was cancelled by us\nConcurrency limits for the Downloader.\nType of connections returned by the Dialer.\nType of connections the Getter requires to perform a …\nTrait modeling a dialer. This allows for IO-less testing.\nError returned when a download could not be completed.\nFailed to download from any provider\nHandle to interact with a download request.\nThe kind of resource to download.\nA download request.\nHandle for the download services.\nAn error occurred that suggests the node should not be …\nSignals what should be done with the request when it fails.\nTrait modelling performing a single request over a …\nIdentifier for a download intent.\nNo provider nodes found\nConfiguration for retry behavior of the Downloader.\nAn error occurred in which neither the node nor the …\nCancel a download.\nGet the format of this download\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturn a future that performs the download using the given …\nGet the hash of this download\nGet the HashAndFormat pair of this download\nThe initial delay to wait before retrying a node. On …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCheck if a node is being dialed.\nMaximum number of nodes to dial concurrently for a single …\nMaximum number of requests the service performs …\nMaximum number of requests performed by a single node …\nMaximum number of open connections the service maintains.\nMaximum number of retry attempts for a node that failed to …\nCreate a new download request.\nCreate a new Downloader with the default ConcurrencyLimits …\nDeclare that certains nodes can be used to download a hash.\nGet the number of dialing nodes.\nPass a progress sender to receive progress updates.\nQueue a download.\nDial a node.\nCreate a new Downloader with custom ConcurrencyLimits and …\nWe got an error and need to abort.\nWe are done with the whole operation.\nWe finished exporting a blob\nProgress events for an export operation\nThe download part is done for this id, we are now …\nWe have made progress exporting the data.\nExport a hash to the local file system.\nExport a single blob to a file on the local filesystem.\nExport all entries of a collection, recursively, to files …\nReturns the argument unchanged.\nCalls U::from(self).\nThe hash of the entry.\nUnique id of the entry.\nUnique id of the entry that is being exported.\nUnique id of the entry that is being exported.\nOperation-specific metadata.\nThe offset of the progress, in bytes.\nThe path to the file where the data is exported.\nThe size of the entry in bytes.\nThe collection type used by iroh\nA collection of blobs\nThe header for the collection format.\nA simple store trait for loading blobs\nReturns the argument unchanged.\nCalls U::from(self).\nCheck if this collection is empty\nIterate over the blobs in this collection\nGet the number of blobs in this collection\nLoad a blob from the store\nCreate a new collection from a hash sequence and metadata.\nLoad a collection from a store given a root hash\nAdd the given blob to the collection.\nRead the collection from a get fsm.\nRead the collection and all it’s children from a get fsm.\nStore a collection in a store. returns the root hash of …\nConvert the collection to an iterator of blobs, with the …\nError when opening a stream\nError when decoding, e.g. hash mismatch\nA generic error\nError when processing a response\nError when reading from the stream\nStats about the transfer.\nError when writing the handshake or request to the stream\nThe number of bytes read\nThe number of bytes written\nFunctions that use the iroh-blobs protocol in conjunction …\nThe time it took to transfer the data\nError returned from get operations\nReturns the argument unchanged.\nReturns the argument unchanged.\nFinite state machine for get responses.\nCalls U::from(self).\nCalls U::from(self).\nTransfer rate in megabits per second\nTypes for get progress state management.\nUtilities for complex get requests.\nWe got an error and need to abort.\nAll operations finished.\nThe id of a blob in a transfer\nInformation about a the status of a blob in a store.\nA child blob (child id > 0)\nwe have the blob completely\nA new connection was established.\nWe are done with id, and the hash is hash.\nProgress updates for the get operation.\nAn item was found with hash hash, from now on referred to …\nAn item was found with hash hash, from now on referred to …\nData was found locally.\nInitial state if subscribing to a running or queued …\nwe don’t have the blob at all\nwe have the blob partially\nWe got progress ingesting item id.\nThe root blob (child id 0)\nGet information about a blob in a store.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a blob or collection into a store.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRanges that are missing locally and need to be requested.\nThe size of the blob, if known.\nGiven a partial entry, get the valid ranges.\nRanges that are valid locally.\nThe partial entry.\nThe size of the entry in bytes.\nThe ranges that are available locally.\nchild offset\nIdentifier for this blob within this download.\nNumber of children in the collection, if known.\nThe hash of the entry.\nThe hash of the entry.\nThe name of the entry.\nA new unique progress id for this entry.\nThe unique id of the entry.\nThe unique id of the entry.\nThe offset of the progress, in bytes.\nThe size of the entry in bytes.\nThe size of the entry in bytes.\nThe ranges that are available locally.\nOur download request is invalid.\nFailures for a get operation\nNetwork or IO operation failed.\nOperation failed on the local node.\nRemote behaved in a non-compliant way.\nHash not found.\nRemote has reset the connection.\nReturns the argument unchanged.\nCalls U::from(self).\nState while we are reading content\nState before reading a size header\nError that you can get from AtBlobHeader::next\nState when finishing the get response\nState of the get response machine after the handshake has …\nState after we have read all the content for a blob\nInitial state of the get response machine\nState of the get response when we start reading a child\nState of the get response when we start reading a …\nThe next state after reading a content item\nRequest is empty\nNo more children expected\nPossible next states after the handshake has been sent\nError that you can get from AtConnected::next\nDecode error that you can get once you have sent the …\nWe are done with this blob\nThe next state after the end of a blob\nA generic io error\nGeneric io error\nA generic io error\nThe hash of a leaf did not match the expected hash\nA parent was not found or invalid, so the provider stopped …\nWe expect more content\nResponse is expected to have more children\nEof when reading the size header\nA chunk was not found or invalid, so the provider stopped …\nThe hash of a parent did not match the expected hash\nA parent was not found or invalid, so the provider stopped …\nError when serializing the request\nQuinn read error when reading the size header\nError when reading from the stream\nThe serialized request is too long to be sent\nFirst response is a child\nFirst response is either a collection or a single blob\nError when writing the request to the SendStream.\nThe offset of the child we are currently reading\nConcatenate the entire response into a vec\nConcatenate the entire response into a vec\nDrain the response and throw away the result\nDrain the response and throw away the result\nFinish the get response without reading further\nFinish the get response without reading further\nImmediately finish the get response without reading further\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nHash of the root blob\nThe hash of the blob we are reading.\nThe hash of the blob we are reading.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a new get response\nInitiate a new bidi stream to use for the get response\nSend the request and move to the next state\nGo into the next state, reading the header\nGo into the next state, reading the header\nRead the size header, returning it and going into the …\nRead the next item, either content, an error, or the end …\nRead the next child, or finish\nFinish the get response, returning statistics\nThe current offset of the blob we are reading.\nThe current offset of the blob we are reading.\nThe ranges we have requested for the child\nThe ranges we have requested for the child\nThe ranges we have requested for the current hash.\nThe entry point of the get response machine\nThe geometry of the tree we are currently reading.\nWrite the entire blob to a slice writer.\nWrite the entire blob to a slice writer.\nWrite the entire stream for this blob to a batch writer.\nWrite the entire stream for this blob to a batch writer.\nWrite the entire blob to a slice writer and to an optional …\nWrite the entire blob to a slice writer and to an optional …\nProgress state for a single blob\nState of a single blob in transfer\nDownload has finished\nDownload is pending\nThe identifier for progress events.\nDownload is in progress\nAccumulated progress state of a transfer.\nNumber of children (only applies to hashseqs, None for raw …\nChildren if the root blob is a hash seq, empty for raw …\nWhether we are connected to a node\nChild being transferred at the moment.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a blob state by its BlobId in this transfer.\nGet the blob state currently being transferred.\nThe hash of this blob.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRanges already available locally at the time of starting …\nCreate a new, empty transfer state.\nCreate a new BlobState.\nUpdate the state with a new DownloadProgress event for …\nThe current state of the blob transfer.\nProgress ids for individual blobs.\nGet state of the root blob of this transfer.\nThe root blob of this transfer (may be a hash seq),\nThe size of this blob. Only known if the blob is partially …\nProbe for a single chunk of a blob.\nGiven a hash of a hash seq, get the hash seq and the …\nGet the claimed size of a blob from a peer.\nGet the verified size of a blob from a peer.\nGiven a sequence of sizes of children, generate a range …\nA sequence of links, backed by a Bytes object.\nIterator over the hashes in a HashSeq.\nStream over the hashes in a HashSeq.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet the hash at the given index.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nGet the underlying bytes.\nCheck if this sequence is empty.\nIterate over the hashes in this sequence.\nGet the number of hashes in this sequence.\nCreate a new sequence of hashes.\nGet the next hash in the sequence.\nParse a sequence of hashes.\nGet and remove the first hash in this sequence.\nSkip a number of hashes in the sequence.\nConvert an iterator of Results into FallibleIterator by …\nEnum of metrics for the module\nReturns the argument unchanged.\nCalls U::from(self).\nThe ALPN used with quic for the iroh bytes protocol.\nReasons to close connections or stop streams.\nA RangeSpec selecting nothing from the blob.\nA get request for a blob or collection\nA request\nMaximum message size is limited to 100MiB for now.\nAn iterator over blobs in the sequence with a non-empty …\nThe provider is terminating.\nA chunk range specification as a sequence of chunk offsets.\nA chunk range specification for a sequence of blobs.\nA request to the provider\nThe provider has received the request.\nThe RecvStream was dropped.\nUnknown error_code, can not be converted into Closed.\nCreates a RangeSpec selecting the entire blob.\nA RangeSpecSeq containing all chunks from all blobs.\nRequest a collection and all its children\nIf this range seq describes a range for a single item, …\nA RangeSpecSeq containing no chunks from any blobs in the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConvenience function to create a RangeSpecSeq from a …\nConvenience function to create a RangeSpecSeq from a …\nblake3 hash\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nChecks if this RangeSpec selects all chunks in the blob.\nChecks if this RangeSpec does not select any chunks in the …\nAn infinite iterator of range specs for blobs in the …\nAn iterator over blobs in the sequence with a non-empty …\nRequest the last chunk of a single blob\nRequest the last chunk for all children\nCreates a new RangeSpec from a range set.\nCreates a new range spec sequence from a sequence of range …\nRequest a blob or collection with specified ranges\nThe range of data to request\nThe close reason as bytes. This is a valid utf8 string …\nRequest just a single blob\nCreates a ChunkRanges from this RangeSpec.\nConvert an iterator of Results into FallibleIterator by …\nWe got an error and need to abort.\nProgress updates for the add operation.\nWe are done with the whole operation.\nA new client connected to the node.\nA request was received from a client.\nWe are done with id, and the hash is hash.\nEvents emitted by the provider informing about the current …\nTrait for sending events.\nAn item was found with name name, from now on referred to …\nA request was received from a client.\nThe requested data was not found\nWe got progress ingesting item id.\nA helper struct that combines a quinn::SendStream with …\nThe requested data was sent\nStatus of a send operation\nA new collection or tagged blob has been added\nA request was aborted because the client disconnected.\nA blob in a sequence was transferred.\nA request was completed and the data was sent to the …\nA sequence of hashes has been found and is being …\nThe stats for a transfer of a collection or blob.\nThe total duration of the transfer.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nHandle a single connection.\nHandle a single standard get request.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nStats for reading from disk.\nRead the request from the getter.\nSend an event.\nStats for sending to the client.\nSend a blob to the client.\nTransfers the collection & blob data.\nThe format of the added data.\nThe hash of the entry.\nThe hash of the created data.\nA new unique id for this entry.\nThe unique id of the entry.\nThe unique id of the entry.\nThe name of the entry.\nThe offset of the progress, in bytes.\nThe size of the entry in bytes.\nThe tag of the added data.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nThe quic connection id.\nThe format of the added data\nThe hash of the added data\nThe hash for which the client wants to receive data.\nThe hash of the blob\nThe index of the blob in the sequence.\nThe size of the custom get request.\nThe number of blobs in the sequence.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this request.\nThe size of the blob transferred.\nstatistics about the transfer\nstatistics about the transfer. This is None if the transfer\nThe tag of the added data\nWe got an error and need to abort.\nWe got an error and need to abort.\nWe are done with the whole operation.\nAn async batch interface for writing bao content items to …\nThe size of a bao file\nThe hash refers to any blob and will be exported to a …\nThe hash refers to a crate::format::collection::Collection …\nThe entry is completely available.\nProgress updates for the validate operation\nThis mode will copy the file into the database before …\nThis mode will copy the file to the target directory.\nProgress when copying the file to the store\nA custom event (info)\nA custom event (debug)\nA custom non critical error\nA custom non critical error\nA fallible but owned iterator over the entries in a store.\nDone exporting\nConsistency check ended\nWe started validating a complete entry\nThe entry type. An entry is a cheaply cloneable handle …\nWe are done with id\nAn entry that is possibly writable\nWe got progress ingesting item id.\nThe availability status of an entry in a store.\nAn unrecoverable error during GC\nAn unrecoverable error during GC\nErrors, something is very wrong\nDatabase events\nThe expected format of a hash being exported.\nThe import mode describes how files will be imported.\nExport trogress callback\nFound a path\nA GC was completed\nAn event related to GC\nA GC was started\nAn event related to GC\nThe import mode describes how files will be imported.\nProgress messages for an import operation\nInfo messages\nA generic map from hashes to bao blobs (blobs with bao …\nAn entry for one hash in a bao map\nA partial entry\nA mutable bao map.\nThe entry is not in the store.\nDone computing the outboard\nProgress when computing the outboard\nThe entry is partially available.\nWe started validating an entry\nWe are done with id\nWe got progress ingesting item id.\nProgress when copying the file to the target\nExtension of Map to add misc methods used by the rpc calls.\nLevel for generic validation messages\nDetermined the size\nStarting to export to a file\nConsistency check started\nstarted validating\nThe mutable part of a Bao store.\nVery unimportant info messages\nThis mode will try to reference the file in place and …\nThis mode will try to move the file to the target …\nA remote side told us the size, but we have insufficient …\nConsistency check update\nProgress updates for the validate operation\nWe have verified the size.\nWarnings, something is not quite right\nGet a batch writer\nlist all blobs in the database. This includes both raw …\nPerform a consistency check on the database\nCreate a new tag\nA future that resolves to a reader that can be used to …\nphysically delete the given hashes from the store.\nFind out if the data behind a hash is complete, partial, …\nSync version of entry_status, for the doc sync engine …\nThis trait method extracts a file to a local path.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nredb backed storage\nTraverse all roots recursively and mark them as live.\nNotify the store that a new gc phase is about to start.\nRemove all blobs that are not marked as live.\nGet an entry for a hash.\nGet an existing entry as an EntryMut.\nGet an existing partial entry, or create a new one.\nThe hash of the entry.\nImport data from memory.\nThis trait method imports a file from a local path.\nImport data from an async byte reader.\nImport data from a stream of bytes.\nUpgrade a partial entry to a complete entry.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if the entry is complete.\nA full in memory database for iroh-blobs\nCreate a new BaoFileSize with the given size and …\nA future that resolves to a reader that can be used to …\nlist partial blobs in the database\nA readonly in memory database for iroh-blobs, usable for …\nSet a tag\nShutdown the store.\nThe size of the entry.\nSync the written data to permanent storage, if applicable. …\nlist all tags (collections or other explicitly added …\nCreate a temporary pin for this store\nTemp tags\nValidate the database\nGet just the value, no matter if it is verified or not.\nWrite a batch of bao content items to the underlying …\nThe entry this message is about, if any\nThe level of the message\nThe message\nAn error if we failed to validate the entry.\nthe hash of the entry\nthe hash of the entry\na new unique id for this entry\nThe unique id of the entry.\nThe unique id of the entry.\na new unique id for this entry\nThe unique id of the entry.\nThe unique id of the entry.\nThe offset of the progress, in bytes.\nThe offset of the progress, in bytes.\nlocation of the entry.\nlocation of the entry.\nAvailable ranges.\nThe size of the entry, in bytes.\nThe best known size of the entry, in bytes.\nThe total number of entries to validate\nDefines a Bao tree.\nA block size.\nA set of byte ranges\nA number of blake3 chunks.\nA set of chunk ranges\nA referenceable set of chunk ranges\nAn offset of a node in a post-order outboard\nthe node is stable and won’t change when appending data\nAn u64 that defines a node in a bao tree.\nthe node is unstable and will change when appending data\nThe default block size, 1024 bytes\nConvert a node to a node in a tree with a larger block size\nThe block size of the tree\nNumber of blocks in the tree\nNumber of bytes in a block at this level\nGet the log2 of the number of 1 KiB blocks in a chunk.\nGet the range of blocks this node covers\nnumber of chunks that this number of bytes covers\nNumber of chunks in the tree\nNumber of nodes below this node, excluding this node.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCompute a block size from bytes\nCreate a block size from the log2 of the size in bytes / …\nnumber of chunks that this number of bytes covers\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nImplementation of bao streaming for std io and tokio io\nTrue if this is a leaf node.\nIterators over BaoTree nodes\nGet the left child of this node, or None if it is a child …\nThe level of the node in the tree, 0 for leafs.\nthe middle of the tree node, in blocks\nCreate a new self contained BaoTree\nGet the next left ancestor of this node, or None if there …\nGet the range of nodes this node covers\nThe outboard size for this tree.\nUnrestricted parent, can only be None if we are at the top\nTraverse the entire tree in post order as BaoChunks\nTraverse the entire tree in post order as TreeNodes, down …\nThe offset of the given node in the post order traversal\nGet the post order offset of this node\nGet the range of post order offsets this node covers\nTraverse the entire tree in pre order as TreeNodes, down …\nThe offset of the given node in the pre order traversal\nTraverse the part of the tree that is relevant for a …\nRestricted parent, will be None if we call parent on the …\nGet the right child of this node, or None if it is a child …\nthe number of times you have to go right from the root to …\nRoot of the tree\nThe size of the blob from which this tree was constructed, …\nConvert a node to a node in a tree with a smaller block …\nnumber of bytes that this number of chunks covers\nConvert to usize or panic if it doesn’t fit.\nJust get the offset value, ignoring whether it’s stable …\nAn output of the default size, 32 bytes, which provides …\nAn incremental hash state that can accept any number of …\nThe error type for Hash::from_hex.\nThe number of bytes in a key, 32.\nThe number of bytes in a Hash, 32.\nAn incremental reader for extended output, returned by …\nThe raw bytes of the Hash. Note that byte arrays don’t …\nReturn the total number of bytes hashed so far.\nThe key derivation function.\nFill a buffer with output bytes and advance the position …\nFinalize the hash state and return the Hash of the input.\nFinalize the hash state and return an OutputReader, which …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate a Hash from its raw bytes representation.\nDecode a Hash from hexadecimal. Both uppercase and …\nThe default hash function.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe keyed hash function.\nConstruct a new Hasher for the regular hash function.\nConstruct a new Hasher for the key derivation function. See\nConstruct a new Hasher for the keyed hash function. See …\nReturn the current read position in the output stream. …\nReset the Hasher to its initial state.\nSeek to a new read position in the output stream. This is …\nEncode a Hash in lowercase hexadecimal.\nAdd input bytes to the hash state. You can call this any …\nThis is equivalent to update.\nA content item for the bao streaming protocol.\nError when decoding from a reader, after the size has been …\nError when encoding from outboard and data\nThere was an error reading from the underlying io\nThere was an error reading from the underlying io\nA leaf node.\na leaf node, to write to the file\nThe hash of a leaf did not match the expected hash\nThe hash of a leaf did not match the expected hash\nWe got an EOF while reading a chunk, indicating that the …\nWe got a ConnectionReset while writing a chunk, indicating …\nA parent hash pair.\na parent node, to update the outboard\nThe hash of a parent did not match the expected hash\nThe hash of a parent did not match the expected hash\nWe got an EOF while reading a parent hash pair, indicating …\nWe got a ConnectionReset while writing a parent hash pair, …\nFile size does not match size in outboard\nThe data of the leaf.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nAsync io, written in fsm style\nGiven a range set of byte ranges, round it up to chunk …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe node in the tree for which the hashes are.\nThe byte offset of the leaf in the file.\nImplementations of the outboard traits\nThe pair of hashes for the node.\nGiven a range set of byte ranges, round it up to full …\nSync IO operations\nA trait to abstract async reading from different resource.\nA trait to abstract async writing to different resources.\nA content item for the bao streaming protocol.\nConvenience trait to initialize an outboard from a data …\nThe stream is done, you get back the underlying reader\na leaf node, to write to the file\nOne more item, and you get back the state machine in the …\nA binary merkle tree for blake3 hashes of a blob.\nA mutable outboard.\na parent node, to update the outboard\nResponse decoder\nNext type for ResponseDecoder.\nCopy an outboard to another outboard.\nCreate an outboard from a seekable data source, measuring …\ncreate an outboard from a data source. This requires the …\nDecode a response into a file while updating an outboard.\nEncode ranges relevant to a query from a reader and …\nEncode ranges relevant to a query from a reader and …\nImmediately return the underlying reader\nReturns the argument unchanged.\nReturns the argument unchanged.\nHash of the blob we are currently getting\nInit the outboard from a data source. This will use the …\nCalls U::from(self).\nCalls U::from(self).\nload the hash pair for a node\nCreate a new response decoder state machine, when you have …\nProceed to the next state by reading the next chunk from …\nCompute the outboard for the given data.\nCompute the post order outboard for the given data, …\nRead the entire buffer at the given position.\nThe root hash\nSave a hash pair for a node\nSet the length of the underlying storage.\nGet the length of the resource\nSync any buffers to the underlying storage.\nsync to disk\nThe tree. This contains the information about the size of …\nThe tree geometry\nGiven just an outboard, compute all valid ranges.\nGiven a data file and an outboard, compute all valid …\nWrite the entire slice at the given position.\nWrite the entire Bytes at the given position.\nAn empty outboard, that just returns 0 hashes for all …\nA post order outboard that is optimized for memory storage.\nA generic outboard in post order\nA pre order outboard that is optimized for memory storage.\nA generic outboard in pre order\nCreate a new outboard from data and a block_size.\nCreate a new outboard from data and a block_size.\nhashes with length prefix\nhashes with length prefix\nhashes without length suffix\nhashes with length prefix\nFlip the outboard to pre order.\nFlip the outboard to a post order outboard.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nreturns the outboard data, with the length prefix added.\nreturns the outboard data, with the length suffix.\nMap the outboard data to a new type.\nMap the outboard data to a new type.\nroot hash\nroot hash\nroot hash\nroot hash\nroot hash\ntree defining the geometry\ntree defining the data\ntree defining the data\ntree defining the data\ntree defining the data\nConvenience trait to initialize an outboard from a data …\nIterator that can be used to decode a response to a range …\nA binary merkle tree for blake3 hashes of a blob.\nA mutable outboard.\nTrait for reading bytes at an offset.\nTrait to get the size in bytes of an I/O object.\nTrait for writing bytes at an offset.\nGet a reference to the buffer used for decoding.\nCopy an outboard to another outboard.\nCreate an outboard from a data source.\ncreate an outboard from a data source. This requires the …\nDecode a response into a file while updating an outboard.\nEncode ranges relevant to a query from a reader and …\nEncode ranges relevant to a query from a reader and …\nFlush this writer, ensuring that any intermediately …\nReturns the argument unchanged.\nInit the outboard from a data source. This will use the …\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nload the hash pair for a node\nCreate a new iterator to decode a response.\nCreate a new iterator to decode a response.\nCompute the outboard for the given data.\nCompute the post order outboard for the given data, …\nReads bytes from an offset in this source into a buffer, …\nReads the exact number of bytes required to fill buf from …\nThe root hash\nSave a hash pair for a node\nGet the size of this object, in bytes.\nSync the outboard.\nConvert an iterator of Results into FallibleIterator by …\nThe tree. This contains the information about the size of …\nGet a reference to the tree used for decoding.\nGiven just an outboard, compute all valid ranges.\nGiven a data file and an outboard, compute all valid …\nWrites a complete buffer at an offset.\nWrites bytes from a buffer to an offset, returning the …\nA chunk describeds what to read or write next\nexpect data of size size\nexpect a 64 byte parent node.\nIterator over all chunks in a BaoTree in post-order.\nIterator over all nodes in a tree in post-order.\nIterator over all nodes in a BaoTree in pre-order.\nIterator over all nodes in a BaoTree in pre-order that …\nThe owned version of ResponseIterRef.\nAn iterator that produces chunks in pre order.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nGet the minimum level to always emit, even if the node is …\nCreate a new iterator over the tree.\nCreate a new iterator given a root node and a len\nCreate a new iterator given a root node and a len\nCreate a new iterator over the tree.\nCreate a new iterator over the tree.\nCreate a new iterator over the tree.\nReturn the size of the chunk in bytes.\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nThe tree this iterator is iterating over.\nGet a reference to the tree.\nReturn the underlying tree.\nSet the ranges to the unit value\nThis is the root, to be passed to parent_cv\nThis is the root, to be passed to hash_block\nPush the left hash to the stack, since it will be needed …\nThe tree node, useful for error reporting\nAdditional information about what part of the chunk …\nAdditional information about what part of the chunk …\nPush the right hash to the stack, since it will be needed …\nSize of the data to expect. Will be chunk_group_bytes for …\nStart chunk, to be passed to hash_block\nAlways inline everything\nOptions for transaction batching.\nUse BaoFileHandle as the entry type for the map.\nParameters for importing from a flat store\nOptions for inlining small complete data or outboards.\nDo not inline anything, ever.\nOptions for the file store.\nOptions for directories used by the file store.\nStorage that is using a redb database for small files and …\nTransaction batching options.\nComplete data files\nPath to the directory where data and outboard files are …\nDump the entire content of the database to stdout.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nImport from a v0 or v1 flat store, for backwards …\nInline storage options.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nLoad or create a new store.\nMaximum data size to inline.\nMaximum outboard size to inline.\nMaximum number of actor messages to batch before creating …\nMaximum duration to wait before committing a read …\nMaximum number of actor messages to batch before …\nMaximum duration to wait before committing a write …\nMetadata files such as the tags table\nCreate a new store with custom options.\nOwned data path\nOwned outboard path\nPartial data files\nPath options.\nEnsure that all operations before the sync are processed …\nPath to the directory where temp files are stored. This …\nTransform all entries in the store. This is for testing …\nUpdate the inline options.\nAn in memory entry\nA fully featured in memory database for iroh-blobs, …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCreate a new in memory store\nA set of non-overlapping ranges\nA range set that stores up to 2 boundaries inline\nA reference to a range set\na range set containing all values\nThe boundaries of the range set, guaranteed to be strictly …\ntrue if the value is contained in the range set\ndifference\ndifference in place\nthe empty range set\nCreate a new range set reference for an empty range set\nReturns the argument unchanged.\nintersection\nintersection in place\ntrue if this range set intersects from another range set\nCalls U::from(self).\nget the boundaries in this range set as a SmallVec\ntrue if the range set contains all values\ntrue if this range set is disjoint from another range set\ntrue if the range set is empty\ntrue if this range set is a superset of another range set\ntrue if this range set is a subset of another range set\niterate over all ranges in this range set\niterate over all ranges in this range set\ncreate a new range set from the given boundaries\nCreate a new range set reference\nCreate a new range set reference without checking that the …\nCreate a new range set reference without checking that the …\nA set of non-overlapping ranges\nCreate a new range set reference for a single value\nSplit this range set into two parts left, right at …\nsymmetric difference (xor)\nsymmetric difference in place (xor)\nunion\nunion in place\nIterator for the ranges in a range set\nClosed range\nRange with unbounded end\nA set of non-overlapping ranges\nA range set that stores up to 2 boundaries inline\ntrait for types that can be entries of range sets\nRange that can be part of a range set\nA reference to a range set\nMaps a RangeSetRange<&T> to a RangeSetRange<T> by cloning …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nchecks if this is the minimum value\nthe minimum value for this type\nConvert an iterator of Results into FallibleIterator by …\nThe MapEntry implementation for Store.\nA readonly in memory database for iroh-blobs.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet the bytes associated with a hash, if they exist.\nimport a byte slice\nInsert a new entry into the database, and return the hash …\nInsert multiple entries into the database, and return the …\nCalls U::from(self).\nCalls U::from(self).\nCreate a new Store from a sequence of entries.\nA tag will be automatically generated\nA file\nWe got it all in memory\nThis is a general purpose Either, just like Result, except …\nThe tag is explicitly named\nOption for commands that allow setting a tag\nA file that is sparse in memory\nA tag\nA trait for things that can track liveness of blobs and …\nTrait used from temp tags to notify an abstract store that …\nA hash and format pair that is protected from garbage …\nTurn a reference to a MemOrFile into a MemOrFile of …\nGet this as a weak reference for use in temp tags\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nGet the data and the valid ranges\nUtilities for working with tokio io\nTrue if this is a Mem\nA local task pool with proper shutdown\nMap the file part of this MemOrFile\nMap the memory part of this MemOrFile\nGet the mem part\nCreate a new, empty SparseMemFile\nCalled on creation of a temp tag\nCalled on drop\nPersist the SparseMemFile to a WriteAt\nUtilities for reporting progress.\nGet the size of the MemOrFile\nCreate a new temp tag for the given hash and format\nGet the number of bytes given a set of chunk ranges and …\nTry to map the file part of this MemOrFile\nA reader that tracks the number of bytes read\nA writer that tracks the number of bytes written\nGet the number of bytes read\nGet the number of bytes written\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nGet the inner reader\nGet the inner writer\nWrap a reader in a tracking reader\nWrap a writer in a tracking writer\nTask was dropped, either due to a panic or because the …\nLocal task pool configuration\nA local task pool with proper shutdown\nA handle to a LocalPool\nLog the panic and continue\nWhat to do when a panic occurs in a pool thread\nFuture returned by LocalPoolHandle::spawn and …\nLog the panic and immediately shut down the pool.\nErrors for spawn failures\nAbort the task\nA future that resolves when the pool is cancelled\nGently shut down the pool\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a cheaply cloneable handle to the pool\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a new local pool with the given config.\nIgnore panics in pool threads\nImmediately stop polling all tasks and wait for all …\nCreate a new local pool with a single std thread.\nSpawn a task in the pool and await the result.\nSpawn a task in the pool.\nPrefix for thread names\nNumber of threads in the pool\nSpawn a task in the pool and return a future that resolves …\nSpawn a task in the pool.\nSpawn a task in the pool.\nGet the number of tasks in the queue\nA progress sender that uses an async channel.\nA boxed progress sender\nContains the error value\nA slice writer that adds a fallible progress callback.\nA progress sender that uses a flume channel.\nAn id generator, to be combined with a progress sender.\nA no-op progress sender.\nThe message being sent.\nContains the success value\nAn error that can occur when sending progress messages.\nA result type for progress sending.\nA general purpose progress sender. This should be usable …\nA slice writer that adds a synchronous progress callback.\nThe receiver was dropped.\nTransform the message type by filter-mapping to the type …\nTransform the message type by mapping to the type of this …\nSend a message and block if the receiver is full.\nCreate a boxed progress sender to get rid of the concrete …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturn the inner writer\nReturn the inner writer.\nCreate a new progress sender from a flume sender.\nCreate a new progress sender from an async channel sender.\nCreate a new ProgressSliceWriter from an inner writer and …\nCreate a new ProgressSliceWriter from an inner writer and …\nGet a new unique id\nReturns true if other sends on the same flume channel as …\nReturns true if other sends on the same async_channel …\nSend a message and wait if the receiver is full.\nTry to send a message and drop it if the receiver is full.\nTransform the message type by filter-mapping to the type …\nTransform the message type by mapping to the type of this …\nAn iroh client.\nIroh rpc client - boxed so that we can have a concrete …\nThe RPC service for the iroh provider process.\nAPI for author management.\nReturns the authors client.\nAPI for blobs management.\nReturns the blobs client.\nConnects to an iroh node at the given RPC address.\nConnects to an iroh node running on the same computer, but …\nAPI for document management.\nReturns the docs client.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGossip client.\nReturns the gossip client.\nCalls U::from(self).\nCalls U::from(self).\nCreates a new high-level client to a Iroh node from the …\nAPI to manage the iroh node itself.\nReturns the node client.\nAPI for tag management.\nReturns the tags client.\nIroh authors client.\nCreates a new document author.\nReturns the default document author of this node.\nDeletes the given author by id.\nExports the given author.\nReturns the argument unchanged.\nImports the given author.\nCalls U::from(self).\nLists document authors for which we have a secret key.\nSets the node-wide default author.\nOutcome of a blob add operation.\nProgress stream for blob add operations.\nInformation about a complete blob.\nStatus information about a blob.\nIroh blobs client.\nInformation about a stored collection.\nThe blob is stored completely.\nStart the download right away.\nSet the mode for whether to directly start the download or …\nOptions to configure a download request.\nOutcome of a blob download operation.\nProgress stream for blob download operations.\nOutcome of a blob export operation.\nProgress stream for blob export operations.\nInformation about an incomplete blob.\nDo not wrap the file or directory.\nThe blob is only stored partially.\nQueue the download.\nData reader for a single blob.\nWrap the file or directory in a collection.\nWhether to wrap the added data in a collection.\nWrite a blob by passing bytes.\nWrite a blob by passing bytes, setting an explicit tag …\nImport a blob from a filesystem path.\nWrite a blob by passing an async reader.\nWrite a blob by passing a stream of bytes.\nValidate hashes on the running node.\nCreate a collection from already existing blobs.\nDelete a blob.\nDownload a blob from another node and add it to the local …\nDownload a hash sequence from another node and add it to …\nDownload a blob, with additional options.\nThe size of the data we downloaded from the network\nThe size we expect\nExport a blob from the internal blob store to a path on …\nFinish writing the stream, ignoring all intermediate …\nFinish writing the stream, ignoring all intermediate …\nFinish writing the stream, ignoring all intermediate …\nThe format the blob\nThe format of the data to download.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nRead the content of a collection.\nThe hash of the blob\nHash of the collection\nThe hash of the blob\nThe hash of the blob\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether this blob has been downloaded completely.\nList all complete blobs.\nList all collections.\nList all incomplete (partial) blobs.\nThe size of the data we already had locally\nWhether to directly start the download or add it to the …\nCreate a DownloadProgress that can help you easily poll …\nCreate a ExportProgress that can help you easily poll the …\nSource nodes to download from.\nLocation of the blob\nStream the contents of a a single blob.\nRead offset + len from a single blob.\nRead all bytes of single blob at offset for length len.\nRead all bytes of single blob.\nRead all bytes of the blob.\nShare a blob.\nTotal size of this blob.\nThe size of the blob\nThe size of the blob\nThe size we got\nStatistics about the download\nGet the status of a blob.\nThe tag of the blob\nTag of the collection\nOptional tag to tag the data with.\nNumber of children in the collection\nTotal size of the raw data referred to by all links\nValidate hashes on the running node.\nThe size of the currently stored partial blob.\nThe size of the blob.\nOverride the filename in the wrapping collection.\nWe got an error and need to abort.\nA node connected to us and we accepted the exchange\nWe are done setting the entry to the doc.\nIroh docs client.\nWe initiated the exchange\nThe content of an entry was downloaded and is now …\nDirect join request via API\nDocument handle\nA single entry in a Doc.\nOutcome of a Doc::export_file operation\nProgress stream for Doc::export_file.\nAn item was found with name name, from now on referred to …\nOutcome of a Doc::import_file operation\nProgress stream for Doc::import_file.\nProgress messages for an doc import operation\nWe are done adding id to the data store and the hash is …\nA local insertion.\nReceived a remote insert.\nEvents informing about actions of the live sync progress.\nWe lost a neighbor in the swarm.\nWe have a new neighbor in the swarm.\nPeer showed up as new neighbor in the gossip swarm\nWhy we performed a sync exchange\nAll pending content is now ready.\nWe got progress ingesting item id.\nRead-only access\nWe received a sync report while a sync was running, so run …\nIntended capability for document share tickets\nEvent emitted when a sync operation completes\nA set-reconciliation sync finished.\nWhy we started a sync request\nWe synced after receiving a sync report that indicated …\nWrite access\nReturns the AuthorId of this entry.\nCloses the document.\nReads all content of an Entry into a buffer.\nReturns the Hash of the content data of this record.\nReturns the length of the data addressed by this record’…\nReads the content of an Entry as a streaming blobs::Reader.\nCreates a new document.\nDeletes entries that match the given author and key prefix.\nDeletes a document from the local node.\nExports an entry as a file to a given absolute path.\nFinishes writing the stream, ignoring all intermediate …\nIterates through the export progress stream, returning …\nTimestamp when the sync started\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the download policy for this document\nReturns an entry for a key and author.\nReturns all entries matching the query.\nReturns a single entry.\nReturns sync peers for this document\nThe hash of the entry’s content\nReturns the document id of this doc.\nReturns the RecordIdentifier for this entry.\nImports a document from a ticket and joins all peers in …\nImports a document from a ticket, creates a subscription …\nAdds an entry from an absolute file path\nImports a document from a namespace capability.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the key of this entry.\nThe key of the entry\nStops the live sync for this document.\nLists all documents.\nReturns a Doc client for a single document.\nOrigin of the sync exchange\nPeer we synced with\nResult of the sync operation\nSets the content of a key to a byte array.\nSets the download policy for this document\nSets an entries on the doc via its key, hash, and size.\nShares this document with peers over a ticket.\nThe size of the entry\nStarts to sync this document with a list of peers.\nTimestamp when the sync finished\nReturns status info for this document\nSubscribes to events for this document.\nReturns the timestamp of this entry.\nThe hash of the entry.\nA new unique id for this entry.\nThe unique id of the entry.\nThe unique id of the entry.\nThe key of the entry\nThe name of the entry.\nThe offset of the progress, in bytes.\nThe size of the entry in bytes.\nIf the content is available at the local node\nThe inserted entry.\nThe inserted entry.\nThe peer that sent us the entry.\nThe content hash of the newly available entry content\nBroadcast a message to all nodes in the swarm\nBroadcast a message to all direct neighbors\nIroh gossip client.\nA message was received\nWe missed some messages\nOptions for subscribing to a gossip topic.\nA request to the node to subscribe to gossip events.\nUpdate from a subscribed gossip topic\nSend a gossip message\nBootstrap nodes to connect to.\nThe nodes to bootstrap the subscription from\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nSubscribes to a gossip topic with default options.\nSubscribes to a gossip topic.\nSubscription capacity.\nThe capacity of the subscription\nThe topic to subscribe to\nIroh node client.\nThe response to a version request\nAdds a known node address to this node.\nThe node id and socket addresses of this node.\nFetches connection information about a connection to …\nFetches information about currently known connections.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the relay server we are connected to.\nCalls U::from(self).\nCalls U::from(self).\nThe bound listening addresses of the node\nFetches the NodeAddr for this node.\nFetches the node id of this node.\nRPC address, if currently listening.\nShuts down the node.\nFetches statistics of the running node.\nFetches status information about this node.\nThe version of the node\nIroh tags client.\nInformation about a tag.\nDeletes a tag.\nFormat of the data\nReturns the argument unchanged.\nReturns the argument unchanged.\nHash of the data\nCalls U::from(self).\nCalls U::from(self).\nLists all tags.\nLists all tags with a hash_seq format.\nName of the tag\nAuthor key to insert entries in a crate::Replica\nTimestamps of the latest entry for each author.\nAuthorPublicKey in bytes\nIdentifier for an Author\nEntry signature is invalid.\nThe capability of the namespace.\nErrors for capability operations\nKind of capability of the namespace.\nThe replica is closed, no operations may be performed.\nThe content is completely available.\nWhether the content status is available on a node.\nCallback that may be set on a replica to determine the …\nContains both a key (either secret or public) to a …\nA single entry in a Replica\nAttempted to insert an empty entry.\nSignature over an entry.\nEvent emitted by sync when entries are added.\nThe content is partially available.\nError emitted when inserting entries into a Replica failed\nWhether an entry was inserted locally or by a remote peer.\nEntry has length 0 but not the empty hash, or the empty …\nEntry namespace does not match the current replica.\nThe entry was inserted locally.\nA local entry has been added.\nMax time in the future from our wall clock time that we …\nThe content is missing.\nNamespacePublicKey in bytes\nNamespaces are not the same\nThe corresponding VerifyingKey for a NamespaceSecret. It …\nNamespace key of a crate::Replica.\nA newer entry exists for either this entry’s key or a …\nByte representation of a PeerId from iroh-net.\nProtocol message for the set reconciliation protocol.\nA readable replica.\nRead only access to the namespace.\nError that occurs trying to access the NamespaceSecret of …\nReplica is read only.\nThe data part of an entry in a Replica.\nThe identifier of a record.\nA remote entry has been added.\nLocal representation of a mutable, synchronizable …\nIn memory information about an open replica.\nA signed entry.\nStorage error\nThe entry was received from the remote node identified by …\nOutcome of a sync operation.\nEntry timestamp is too far in the future.\nValidation failure\nReason why entry validation failed\nA writable replica.\nWrite access to the namespace.\nThis contains an actor spawned on a separate thread to …\nGet this RecordIdentifier as a tuple of byte slices.\nGet this RecordIdentifier as Bytes.\nGet the byte representation of this AuthorId.\nGet the byte representation of this NamespaceId.\nConvert to byte slice.\nConvert to byte slice.\nGet the AuthorId of this entry.\nGet the AuthorId of this record as byte array.\nGet the author bytes of this entry.\nGet the Capability of this Replica.\neither a public or private key\nReturns true if the replica is closed.\nGet the content Hash of the entry.\nGet the Hash of the content data of this record.\nGet the content length of the entry.\nGet the length of the data addressed by this record’s …\nDecode from byte slice created with Self::encode.\nDelete entries that match the given author and key prefix.\nCreate a tombstone record (empty content)\nCreate a tombstone record with the timestamp set to now.\nSerialize this entry into its canonical byte …\nEncode into a byte array with a limited size.\nHandlers and actors to for live syncing replicas.\nGet the Entry.\nConvert to a base32 string limited to the first 10 bytes …\nConvert to a base32 string limited to the first 10 bytes …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate an Author from a byte array.\nCreate from a slice of bytes.\nCreate a NamespaceSecret from a byte array.\nCreate from a slice of bytes.\nCreate a new signed entry by signing an entry with the …\nCreate a new signature by signing an entry with the …\nCreate a new signed entries from its parts.\nCreate a Capability from its raw representation.\nGet the timestamp for an author.\nCan this state offer newer stuff to other?\nHashes the given data and inserts it.\nTimestamp of the latest entry for each author in the set …\nGet the NamespaceId for this Capability.\nGet the namespace identifier for this Replica.\nGet the RecordIdentifier for this entry.\nGet the AuthorId for this author.\nGet the NamespaceId for this namespace.\nInsert a new record at the given key.\nInsert a new timestamp.\nInsert an entry into this replica which was received from …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert into NamespacePublicKey.\nConvert into AuthorPublicKey.\nReturn true if the entry is empty.\nWhether this AuthorHeads is empty.\nCreate an iterator over the entries in this state.\nGet the key of the entry.\nGet the key of this entry.\nGet the key of this record.\nGet the key of this record as Bytes.\nGet the kind of capability.\nNumber of author-timestamp pairs.\nMerge this capability with another capability.\nMerge another author head state into this one.\nMerge a capability.\nMetrics for iroh-docs\nGet the NamespaceId of this entry.\nGet the NamespaceId of this record as byte array.\nNetwork implementation of the iroh-docs protocol\nCreate a new doc ticket\nCreate a new replica.\nCreate a new replica.\nCreate a new entry\nCreate a new RecordIdentifier.\nCreate a new record.\nCreate a new Author with a random key.\nCreate a new NamespaceSecret with a random key.\nCreate a new Record with the timestamp set to now.\nCreate a new empty entry with the current timestamp.\nA list of nodes to contact.\nNumber of entries we received.\nNumber of entries we sent.\nGet the AuthorPublicKey for this author.\nGet the NamespacePublicKey for this namespace.\nConvert into NamespacePublicKey by fetching from a …\nConvert into AuthorPublicKey by fetching from a …\nGet the raw representation of this namespace capability.\nGet the Record contained in this entry.\nGet the identifier for an entry in this replica.\nGet the NamespaceSecret of this Capability. Will fail if …\nGet the byte representation of the NamespaceSecret key for …\nSet the content status callback.\nSign this entry with a NamespaceSecret and Author.\nSign a message with this Author key.\nSign a message with this NamespaceSecret key.\nGet the signature.\nStorage trait and implementation for iroh-docs documents\nSubscribe to insert events.\nGet the number of current event subscribers.\nAPI for iroh-docs replicas\nCreate the initial message for the set reconciliation flow …\nProcess a set reconciliation message from a remote peer.\nGet the timestamp of the entry.\nGet the timestamp of this record.\nGet this RecordIdentifier as a tuple of bytes.\nReturns the Author byte representation.\nReturns the NamespaceSecret byte representation.\nConvert to byte array.\nConvert to byte array.\nSerialize this entry into a new vector with its canonical …\nExplicitly unsubscribe a sender.\nValidate that the entry has the empty hash if the length …\nValidate that the entry has the empty hash if the length …\nVerify the signatures on this entry.\nVerify that this signature was created by signing the entry…\nStrictly verify a signature on a message with this Author…\nVerify that a signature matches the msg bytes and was …\nStrictly verify a signature on a message with this …\nVerify that a signature matches the msg bytes and was …\nInserted entry.\nInserted entry.\nPeer that provided the inserted entry.\nDocument in which the entry was inserted.\nDocument in which the entry was inserted.\nContentStatus for this entry in the remote’s replica.\nWhether download policies require the content to be …\nThe peer from which we received this entry.\nWhether the peer claims to have the content blob for this …\nOptions when opening a replica.\nThe state for an open replica.\nThe SyncHandle controls an actor thread which executes …\nMakes sure that all pending database operations are …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nBy how many handles the replica is currently held open\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nSpawn a sync actor and return a handle.\nSubscribe to replica events.\nOptionally subscribe to replica events.\nHow many event subscriptions are open\nSet sync state to true.\nWhether to accept sync requests for this replica.\nSet to true to set sync state to true.\nA node connected to us and we accepted the exchange\nWe initiated the exchange\nThe content of an entry was downloaded and is now …\nPersistent default author for a docs engine.\nWhere to persist the default author.\nDirect join request via API\nThe sync engine coordinates actors that manage open …\nA local insertion.\nReceived a remote insert.\nEvents informing about actions of the live sync progress.\nMemory storage.\nWe lost a neighbor in the swarm.\nWe have a new neighbor in the swarm.\nPeer showed up as new neighbor in the gossip swarm\nWhy we performed a sync exchange\nAll pending content is now ready.\nFile based persistent storage.\nWe received a sync report while a sync was running, so run …\nEvent emitted when a sync operation completes\nA set-reconciliation sync finished.\nWhy we started a sync request\nWe synced after receiving a sync report that indicated …\nThe persistent default author for this engine.\nEndpoint used by the engine.\nConverts an EntryStatus into a [‘ContentStatus’].\nTimestamp when the sync started\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet the current default author.\nHandle an incoming iroh-docs connection.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nStop the live sync for a document and leave the gossip …\nLoad the default author from the storage.\nLoad the default author from storage.\nOrigin of the sync exchange\nPeer we synced with\nSave a new default author.\nResult of the sync operation\nSet the default author.\nShutdown the engine.\nStart the sync engine.\nStart to sync a document.\nTimestamp when the sync finished\nSubscribe to replica and sync progress events.\nHandle to the actor thread.\nIf the content is available at the local node\nThe inserted entry.\nThe inserted entry.\nThe peer that sent us the entry.\nThe content hash of the newly available entry content\nMetrics for iroh-docs\nReturns the argument unchanged.\nCalls U::from(self).\nWe aborted the sync request.\nReason why we aborted an incoming sync request.\nErrors that may occur on handling incoming sync …\nWhether we want to accept or reject an incoming sync …\nAccept the sync request.\nWe are already syncing this namespace.\nFailed to close\nFailed to close\nFailed to establish connection\nFailed to establish connection\nErrors that may occur on outgoing sync requests.\nThe ALPN identifier for the iroh-docs protocol\nWe experienced an error while trying to provide the …\nNamespace is not available.\nFailed to open replica\nDecline the sync request\nThe remote peer aborted the sync request.\nFailed to run sync\nFailed to run sync\nDetails of a finished sync operation.\nTime a sync operation took\nTime to establish connection\nConnect to a peer and sync a replica\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nHandle an iroh-docs connection and sync all shared …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nGet the namespace (if available)\nThe namespace that was synced.\nThe outcome of the sync operation\nGet the peer’s node ID (if available)\nThe peer we syned with.\nTime to run sync exchange\nThe time this operation took\nMatches any key.\nMatches any author.\nSort ascending\nAuthor matching.\nSort by author, then key.\nSort descending\nDownload policy to decide which content blobs shall be …\nStore that gives read access to download policies for a …\nDownload every key unless it matches one of the filters.\nMatches if the contained bytes and the key are the same.\nOnly keys that are exactly the provided value.\nMatches exactly the provided author.\nFilter strategy used in download policies.\nQuery on all entries without aggregation.\nOutcome of Store::import_namespace\nThe namespace did not exist before and is now inserted.\nSort by key, then author.\nKey matching.\nIn-memory key storage\nThe namespace existed and its capability remains unchanged.\nThe replica does not exist.\nDo not download any key unless it matches one of the …\nError return from Store::open_replica\nOther error while opening the replica.\nMatches if the contained bytes are a prefix of the key.\nAll keys that start with the provided value.\nStore trait for expanded public keys for authors and …\nNote: When using the SingleLatestPerKey query kind, the …\nA query builder for document queries.\nQuery that only returns the latest entry for a key which …\nFields by which the query can be sorted\nSort direction\nManages the replicas and authors for an instance.\nThe namespace existed and now has an upgraded capability.\nQuery all records.\nFilter by author.\nCreate a Query::all query filtered by a single author.\nConvert a AuthorId into a AuthorPublicKey.\nBuild the query.\nBuild the query.\nClose a replica.\nGet all content hashes of all replicas in the store.\nDelete an author.\nFlush the current transaction, if any.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nOn disk storage for replicas.\nGet an author key from the store.\nGet the download policy for a document.\nGet the download policy for a namespace.\nGet an entry by key and author.\nGet the latest entry for each author in a namespace.\nGet an iterator over entries of a replica.\nGet the peers that have been useful for a document.\nCheck if a AuthorHeads contains entry timestamps that we …\nImport an author key pair.\nImport a new replica namespace.\nCall to include empty entries (deletion markers).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nFilter by exact key match.\nCreate a Query::all query filtered by a single key.\nFilter by key prefix.\nCreate a Query::all query filtered by a key prefix.\nSet the maximum number of entries to be returned.\nGet the limit for this query (max. number of entries to …\nList all author keys in this store.\nList all replica namespaces in this store.\nLoad the replica info from the store.\nCheck if an entry should be downloaded according to this …\nVerifies whether this filter matches a given key\nTest if a key is matched by this KeyFilter.\nTest if an author is matched by this AuthorFilter.\nCreate a new store in memory.\nConvert a NamespaceId into a NamespacePublicKey.\nCreate a new author key and persist it in the store.\nCreate a new replica for namespace and persist in this …\nSet the offset within the result set from where to start …\nGet the offset for this query (number of entries to skip …\nOpen a replica from this store.\nCreate or open a store from a path to a database file.\nConvert a byte array into a VerifyingKey.\nRegister a peer that has been useful to sync a document.\nRemove a replica.\nSet the download policy for a namespace.\nQuery only the latest entry for each key, omitting older …\nGet a read-only snapshot of the database.\nGet an owned read-only snapshot of the database.\nSet the sort for the query.\nSet the order direction for the query.\nIterator for all content hashes\nIterator over the latest entry per author.\nIterator over parent entries, i.e. entries with the same …\nAn iterator over a range of entries from the records table.\nManages the replicas and authors for an instance.\nA wrapper around Store for a specific NamespaceId\nCreate a new iterator over all content hashes.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of anything into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nConvert an iterator of Results into FallibleIterator by …\nTimestamps of the latest entry for each author.\nEntry signature is invalid.\nThe capability of the namespace.\nErrors for capability operations\nKind of capability of the namespace.\nThe replica is closed, no operations may be performed.\nThe content is completely available.\nWhether the content status is available on a node.\nCallback that may be set on a replica to determine the …\nA single entry in a Replica\nAttempted to insert an empty entry.\nSignature over an entry.\nEvent emitted by sync when entries are added.\nThe content is partially available.\nError emitted when inserting entries into a Replica failed\nWhether an entry was inserted locally or by a remote peer.\nEntry has length 0 but not the empty hash, or the empty …\nEntry namespace does not match the current replica.\nThe entry was inserted locally.\nA local entry has been added.\nMax time in the future from our wall clock time that we …\nThe content is missing.\nNamespaces are not the same\nA newer entry exists for either this entry’s key or a …\nByte representation of a PeerId from iroh-net.\nProtocol message for the set reconciliation protocol.\nA readable replica.\nRead only access to the namespace.\nError that occurs trying to access the NamespaceSecret of …\nReplica is read only.\nThe data part of an entry in a Replica.\nThe identifier of a record.\nA remote entry has been added.\nLocal representation of a mutable, synchronizable …\nIn memory information about an open replica.\nA signed entry.\nStorage error\nThe entry was received from the remote node identified by …\nOutcome of a sync operation.\nEntry timestamp is too far in the future.\nValidation failure\nReason why entry validation failed\nA writable replica.\nWrite access to the namespace.\nTimestamp of the latest entry for each author in the set …\nNumber of entries we received.\nNumber of entries we sent.\nInserted entry.\nInserted entry.\nPeer that provided the inserted entry.\nDocument in which the entry was inserted.\nDocument in which the entry was inserted.\nContentStatus for this entry in the remote’s replica.\nWhether download policies require the content to be …\nThe peer from which we received this entry.\nWhether the peer claims to have the content blob for this …\nA higher level wrapper for the gossip engine that manages …\nMetrics for iroh-gossip\nNetworking for the iroh-gossip protocol\nImplementation of the iroh-gossip protocol, as an IO-less …\nBroadcast a message to all nodes in the swarm\nBroadcast a message to all direct neighbors\nSend a gossip message\nUpdate from a subscribed gossip topic\nA message was received\nA gossip engine that manages gossip subscriptions and …\nGossip event An event to be emitted to the application for …\nWe missed some messages\nA gossip message\nWe dropped direct neighbor in the swarm membership layer …\nWe have a new, direct neighbor in the swarm membership …\nA gossip message was received for this topic\nJoin a gossip topic\nThe initial bootstrap nodes\nThe content of the message\nThe node that delivered the message. This is not the same …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a new gossip dispatcher with the given gossip …\nThe scope of the message. This tells us if the message is …\nSubscribe to a gossip topic.\nThe maximum number of messages that can be buffered in a …\nEnum of metrics for the module\nReturns the argument unchanged.\nCalls U::from(self).\nBroadcast a message for this topic.\nCommands for the gossip protocol\nEvents emitted from the gossip protocol\nALPN protocol name\nPublish and subscribe on gossiping topics.\nJoin this topic and connect to peers.\nFuture that completes once at least one peer is joined for …\nWe dropped direct neighbor in the swarm membership layer …\nWe have a new, direct neighbor in the swarm membership …\nLeave this topic and drop all state.\nA gossip message was received for this topic\nBroadcast a message on a topic to all peers in the swarm.\nBroadcast a message on a topic to the immediate neighbors.\nReturns the argument unchanged.\nReturns the argument unchanged.\nSpawn a gossip actor and get a handle for it\nHandle an incoming Connection.\nCalls U::from(self).\nCalls U::from(self).\nJoin a topic and connect to peers.\nGet the maximum message size configured for this gossip …\nQuit a topic.\nSubscribe to messages and event notifications for a topic.\nSubscribe to all events published on topics that you …\nSet info on our direct addresses.\nUtilities for iroh-gossip networking\nA TimerMap with an async method to wait for the next timer …\nReturns the argument unchanged.\nInsert a new entry at the specified instant\nCalls U::from(self).\nCreate a new timer map\nReads a length prefixed message.\nRead a length-prefixed message and decode as ProtoMessage;\nWait for the next timer to expire and return an iterator …\nWrite a ProtoMessage as a length-prefixed, …\nBroadcast a message for this topic.\nA command to the protocol state for a particular topic.\nExecute a command from the application.\nProtocol configuration\nThe scope to deliver the message to.\nClose the connection to a peer on the network level.\nEmit an event to the application.\nAn event to be emitted to the application for a particular …\nA trait for a concrete type to push OutEvents to.\nInput event to the protocol state.\nJoin this topic and connect to peers.\nProtocol wire message\nWe dropped direct neighbor in the swarm membership layer …\nWe have a new, direct neighbor in the swarm membership …\nThis message was received from a direct neighbor that …\nThe message is broadcast only to the immediate neighbors …\nOutput event from the protocol state.\nOpaque binary data that is transmitted on messages that …\nUpdated peer data\nPeer disconnected on the network level.\nThe identifier for a peer.\nLeave this topic and drop all state.\nA gossip message was received for this topic\nMessage received from the network.\nSchedule a timer. The runtime is responsible for sending …\nThe broadcast scope of a gossip message.\nSend a message on the network\nThe state of the iroh-gossip protocol.\nThis message was received from the swarm, with a distance …\nThe message is broadcast to all peers in the swarm.\nA timer to be registered into the runtime\nTrigger a previously scheduled timer.\nThe identifier for a topic\nUpdate the opaque peer data about yourself.\nGet as byte slice.\nGet the peer data as a byte slice.\nConfiguration for the gossip broadcast layer\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate from a byte array.\nHandle an InEvent\nCheck if a topic has any active (connected) peers.\nGet a reference to the contained bytes::Bytes.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether this message was directly received from its …\nGet the kind of this message\nReturns the maximum message size configured in the gossip …\nMax message size in bytes.\nGet a reference to the node’s PeerIdentity\nConfiguration for the swarm membership layer\nCreate a new protocol state instance.\nCreate a new PeerData from a byte buffer.\nPush an event in the IO container\nPush all events from an iterator into the IO container\nGet the encoded size of this message\nThe protocol state of the iroh-gossip protocol.\nGet a reference to the protocol state for a topic.\nGet an iterator for the states of all joined topics.\nThis module contains the implementation of the gossiping …\nGet an iterator of all joined topics.\nUtilities used in the protocol implementation\nExecute a command from the application.\nA control message.\nA data message.\nClose the connection to a peer on the network level.\nEmit an event to the application.\nInput event to the protocol state.\nProtocol wire message\nWhether this is a control or data message\nOutput event from the protocol state.\nUpdated peer data\nPeer disconnected on the network level.\nMessage received from the network.\nSchedule a timer. The runtime is responsible for sending …\nSend a message on the network\nThe state of the iroh-gossip protocol.\nA timer to be registered into the runtime\nTrigger a previously scheduled timer.\nThe identifier for a topic\nUpdate the opaque peer data about yourself.\nReturns the argument unchanged.\nCalls U::from(self).\nBroadcast a message for this topic.\nA command to the protocol state for a particular topic.\nExecute a command from the application.\nProtocol configuration\nThe default maximum size in bytes for a gossip message. …\nClose the connection to a peer on the network level.\nEmit an event to the application.\nAn event to be emitted to the application for a particular …\nA message of the gossip broadcast layer\nA timer for the gossip layer\nA trait for a concrete type to push OutEvents to.\nInput event to the topic state handler.\nJoin this topic and connect to peers.\nA protocol message for a particular topic\nWe dropped direct neighbor in the swarm membership layer …\nWe have a new, direct neighbor in the swarm membership …\nAn output event from the state handler.\nEmitted when new PeerData was received for a peer.\nPeer disconnected on the network level.\nLeave this topic and drop all state.\nA gossip message was received for this topic\nMessage received from the network.\nSchedule a timer. The runtime is responsible for sending …\nSend a message on the network\nThe topic state maintains the swarm membership and …\nStatistics for the protocol state of a topic\nA message of the swarm membership layer\nA timer for the swarm layer\nA timer to be registered for a particular topic.\nTrigger a previously scheduled timer.\nUpdate the opaque peer data about yourself.\nConfiguration for the gossip broadcast layer\nThe address of your local endpoint.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet statistics for the gossip broadcast state\nHandle an incoming event.\nCheck if this topic has any active (connected) peers.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nGet the kind of this message\nMax message size in bytes.\nConfiguration for the swarm membership layer\nNumber of messages received\nNumber of messages sent\nInitialize the local state with the default random number …\nPush an event in the IO container\nPush all events from an iterator into the IO container\nGet stats on how many messages were sent and received\nInitialize the local state with a custom random number …\nA hash map where entries expire after a time\nA BTreeMap with Instant as key. Allows to process expired …\nReturns true if the map contains a value for the specified …\nRemove and return all entries before and equal to from.\nRemove all entries with an expiry instant lower or equal …\nGet the expiration time for an item.\nGet a reference to the earliest entry in the TimerMap.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet an item from the cache.\nInsert a new entry at the specified instant.\nInsert an item into the cache, marked with an expiration …\nCalls U::from(self).\nCalls U::from(self).\nReturns true if the map contains no elements.\nIterate over all items in the timer map.\nIterate over all items in the cache.\nGet the number of entries in the cache.\nCreate a new, empty TimerMap.\nRemove an entry from the specified instant.\nRemove an item from the cache.\nEnum of metrics for the module\nReturns the argument unchanged.\nCollect the current metrics into a hash map.\nCalls U::from(self).\nInitialize the global metrics collection.\nNetwork paths to contact an iroh-net node.\nControls an iroh-net node, establishing connections with …\nNetwork-level addressing information for an iroh-net node.\nThe identifier for a node in the (iroh) network.\nAccepts an incoming connection on the endpoint.\nInforms this Endpoint about addresses of the iroh-net node.\nInforms this Endpoint about addresses of the iroh-net …\nApplies the options to self.\nApplies the options to self.\nReturns the local socket addresses on which the underlying …\nReturns the builder for an Endpoint, with a production …\nCloses the QUIC endpoint and the magic socket.\nReturns a stream that reports connection type changes for …\nConnects to a remote Endpoint.\nConnects to a remote endpoint, using just the nodes’s …\nReturns connection information about a specific node.\nReturns information on all the nodes we have connection …\nDefault values used in iroh-net\nA dialer to conveniently dial many nodes.\nReturns the direct addresses of this peer.\nReturns the direct addresses of this Endpoint.\nSocket addresses where the peer might be reached directly.\nNode address discovery.\nReturns the discovery mechanism, if configured.\nThis module exports a DNS resolver, which is also the …\nReturns the DNS resolver used in this Endpoint.\nThe Endpoint allows establishing connections to other …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreates a new NodeAddr from its parts.\nReturns the RelayUrl of the Relay server used as home …\nAddressing information to connect to Self::node_id.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns whether this addressing information is empty.\nCryptographic key handling for iroh-net.\nCo-locating all of the iroh-net metrics structs\nNetworking related utilities\nChecks the network conditions from the current host.\nNotifies the system of potential network changes.\nCreates a new NodeAddr with empty AddrInfo.\nReturns the current NodeAddr for this endpoint.\nReturns the node id of this endpoint.\nThe node’s identifier.\nAllows sending ICMP echo requests to a host in order to …\nPort mapping client and service.\nPackage relay implements a revised version of the …\nReturns the relay url of this peer.\nThe node’s home relay url.\nReturns the secret_key of this endpoint.\nSets the list of accepted ALPN protocols.\nSTUN packets sending and receiving.\nInternal utilities to support testing.\nTickets supported by iroh-net\nTLS configuration based on libp2p TLS specs.\nUtilities used in iroh-net\nWatches for changes to the home relay.\nAdds the given direct addresses to the peer’s AddrInfo.\nAdds a relay url to the node’s AddrInfo.\nThe default HTTPS port used by the Relay server.\nThe default HTTP port used by the Relay server.\nThe default metrics port used by the Relay server.\nThe default STUN port used by the Relay server.\nProduction configuration.\nStaging configuration.\nHostname of the default Asia-Pacific relay.\nHostname of the default EU relay.\nHostname of the default NA relay.\nGet the default RelayNode for Asia-Pacific\nGet the default RelayNode for EU.\nGet the default RelayNode for NA.\nGet the default RelayMap.\nHostname of the default EU relay.\nHostname of the default NA relay.\nGet the default RelayNode for EU.\nGet the default RelayNode for NA.\nGet the default RelayMap.\nDials nodes and maintains a queue of pending dials.\nAborts a pending dial.\nReturns the argument unchanged.\nCalls U::from(self).\nChecks if a node is currently being dialed.\nCreate a new dialer for a Endpoint\nWaits for the next dial operation to complete.\nNumber of pending connections to be opened.\nStarts to dial a node by NodeId.\nA discovery service that combines multiple discovery …\nNode discovery for super::Endpoint.\nThe results returned from Discovery::resolve.\nAdds a Discovery service.\nThe address info for the node being resolved.\nDNS node discovery for iroh-net\nCreates an empty ConcurrentDiscovery.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreates a new ConcurrentDiscovery.\nCalls U::from(self).\nCalls U::from(self).\nOptional timestamp when this node address info was last …\nA discovery service that uses an mdns-like service to …\nA discovery service which publishes and resolves node …\nA static string to identify the discovery source.\nPublishes the given AddrInfo to the discovery mechanism.\nResolves the AddrInfo for the given NodeId.\nDNS node discovery\nThe n0 testing DNS node origin, for production.\nThe n0 testing DNS node origin, for testing.\nReturns the argument unchanged.\nCalls U::from(self).\nCreate a new DNS discovery which uses the …\nCreate a new DNS discovery.\nDiscovery using swarm-discovery, a variation on mdns\nReturns the argument unchanged.\nCalls U::from(self).\nCreate a new LocalSwarmDiscovery Service.\nDefault TTL for the records in the pkarr signed packet. …\nInterval in which we will republish our node info even if …\nThe pkarr relay run by n0, for production.\nThe pkarr relay run by n0, for testing.\nPublish node info to a pkarr relay.\nA pkarr client to publish pkarr::SignedPackets to a pkarr …\nResolve node info using a pkarr relay.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a pkarr publisher which uses the …\nCreate a pkarr resolver which uses the …\nCreate a new config with a secret key and a pkarr relay …\nCreate a new config with a pkarr relay URL.\nCreate a new client.\nPublish a SignedPacket\nResolve a SignedPacket\nPublish AddrInfo about this node to a pkarr relay.\nCreate a new PkarrPublisher with a custom time-to-live …\nThe DNS resolver type used throughout iroh-net.\nExtension trait to DnsResolver.\nGet a reference to the default DNS resolver.\nLooks up node info by NodeId and origin domain name.\nLooks up node info by NodeId and origin domain name.\nLooks up node info by DNS name.\nLooks up node info by DNS name in a staggered fashion.\nPerform an ipv4 lookup with a timeout.\nRace an ipv4 and ipv6 lookup with a timeout.\nRace an ipv4 and ipv6 lookup with a timeout in a staggered …\nPerform an ipv4 lookup with a timeout in a staggered …\nPerform an ipv6 lookup with a timeout.\nPerform an ipv6 lookup with a timeout in a staggered …\nSupport for handling DNS resource records for dialing by …\nGet the DNS resolver used within iroh-net.\nDirect address.\nThe DNS name for the iroh TXT record.\nThe attributes supported by iroh for IROH_TXT_NAME DNS …\nInformation about the iroh node contained in an …\nURL of home relay.\nAttributes parsed from IROH_TXT_NAME TXT records.\nReturns the parsed attributes.\nAny direct addresses.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nParses a NodeInfo from a set of DNS records.\nParses a set of DNS resource records.\nCreates TxtAttrs from a node id and an iterator of …\nParses a NodeInfo from a pkarr::SignedPacket.\nParses a pkarr::SignedPacket.\nCreates TxtAttrs from a node id and an iterator of “…\nParses a NodeId from [z-base-32] encoding.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nLooks up attributes by NodeId and origin domain.\nLooks up attributes by DNS name.\nCreates a new NodeInfo from its parts.\nReturns the node id.\nThe NodeId.\nThe advertised home relay server.\nConverts into a hickory_proto::rr::Record DNS record.\nConverts to a list of hickory_proto::rr::Record resource …\nCreates a pkarr::SignedPacket.\nCreates a pkarr::SignedPacket\nEncodes a NodeId in [z-base-32] encoding.\nFuture produced by Endpoint::accept.\nNetwork paths to contact an iroh-net node.\nThe peer closed the connection\nBuilder for Endpoint.\nWe received a CallMeMaybe.\nIn-progress connection attempt future\nA QUIC connection.\nThe peer’s QUIC stack aborted the connection …\nReasons why a connection might be lost\nDetails about an iroh node which is known to this node.\nThe connection was lost\nThe connection was lost\nThe type of connection we have to the endpoint.\nStream returning ConnectionTypes\nThe type of control message we have received.\nDirect UDP connection\nA direct address on which an iroh-node might be …\nInformation about a direct address.\nThe type of direct address.\nStream returning local endpoints as they change.\nControls an iroh-net node, establishing connections with …\nAttempted an ordered read following an unordered read\nA locally bound socket address.\nThe local application closed the connection\nThe largest representable value\nThe largest encoded value length\nBoth a UDP and a relay connection are used.\nNetwork-level addressing information for an iroh-net node.\nWe have no verified connection to this PublicKey\nWe received a Ping from the node.\nWe received a Pong from the node.\nAn address assigned by the router using port mapping.\nErrors that arise from reading from a stream.\nA stream that can only be used to receive data\nRelay connection over relay\nThe peer abandoned transmitting data on this stream\nThe peer is unable to continue processing this connection, …\nA stream that can only be used to send data\nThe peer is no longer accepting data on this stream\nPublic internet address discovered via STUN.\nHard NAT: STUN’ed IPv4 address + local fixed port.\nCommunication with the peer has lapsed for longer than the …\nParameters governing the core QUIC state machine\nThe peer violated the QUIC specification as understood by …\nNot yet determined..\nThe stream has already been stopped, finished, or reset\nThe stream has already been finished or reset\nAn integer less than 2^62\nThe peer doesn’t implement any supported version\nErrors that arise from writing to a stream\nThis was a 0-RTT stream and the server rejected it\nThis was a 0-RTT stream and the server rejected it\nAccept the next incoming bidirectional stream\nAccept the next incoming uni-directional stream\nThe address reported.\nThe address.\nList of addresses at which this node might be reachable, …\nWhether the implementation is permitted to set the spin …\nExtracts the ALPN protocol from the peer’s handshake …\nSets the ALPN protocols that this endpoint will accept on …\nBinds the magic endpoint on the specified socket address.\nClose the connection immediately.\nIf the connection is closed, the reason why.\nWait for the connection to be closed for any reason\nMaximum number of simultaneous connections to accept.\nHow to construct new congestion::Controllers\nCurrent state of the congestion control algorithm, for …\nThe type of connection we have to the node, either direct …\nMaximum quantity of out-of-order crypto layer data to …\nMaximum number of incoming application datagram bytes to …\nMaximum number of outgoing application datagram bytes to …\nBytes available in the outgoing datagram buffer\nReturns the default relay mode.\nSocket addresses where the peer might be reached directly.\nOptionally sets a discovery mechanism for this endpoint.\nOptionally sets a custom DNS resolver to use for this …\nWhether to use “Generic Segmentation Offload” to …\nDerive keying material from this connection’s TLS …\nShut down the send stream gracefully.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a VarInt infallibly\nSucceeds iff x < 2^62\nCreate a VarInt without ensuring it’s in range\nExtract the PublicKey from the peer’s TLS certificate.\nParameters negotiated during the handshake\nParameters negotiated during the handshake\nReturns true if this info contains either a relay URL or …\nGet the identity of this stream\nGet the identity of this stream\nThe id in the node_map\nAddressing information to connect to Self::node_id.\nThe initial value to be used as the maximum UDP payload …\nThe RTT used before an RTT sample is taken\nSkip verification of SSL certificates from relay servers\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert into a 0-RTT or 0.5-RTT connection at the cost of …\nExtract the integer value\nCheck if this stream has been opened during 0-RTT.\nPeriod of inactivity before sending a keep-alive packet\nEnables saving the TLS pre-master key for connections.\nOptionally set a list of known nodes.\nWhen was this connection last alive, if ever.\nGet the duration since the last activity we received from …\nLast control message received by this node.\nHow long ago was the last payload message for this node.\nGet the duration since the last activity we received from …\nDuration since the last time this node was used.\nThe latency to the address, if any.\nThe latency of the conn_type.\nThe local IP address which was used when the peer …\nThe local IP address which was used when the peer …\nCreates a quinn::ServerConfig with the given secret key …\nMaximum number of incoming bidirectional streams that may …\nVariant of max_concurrent_bidi_streams affecting …\nCompute the maximum size of datagrams that may be passed …\nMaximum duration of inactivity to accept before timing out …\nMaximum number of tail loss probes before an RTO fires.\nThe maximum UDP payload size guaranteed to be supported by …\nSpecifies the MTU discovery config (see MtuDiscoveryConfig …\nThe node’s identifier.\nThe public key of the endpoint.\nInitiate a new outgoing bidirectional stream.\nInitiate a new outgoing unidirectional stream.\nMaximum reordering in packet number space before FACK …\nCryptographic identity of the peer\nNumber of consecutive PTOs after which network is …\nGet the priority of the send stream\nSets the proxy url from the environment, in this order:\nSets an explicit proxy url to proxy all HTTP(S) traffic …\nRead data contiguously from the stream.\nRead the next segment of data\nRead the next segments of data\nReceive an application datagram\nRead an exact number of bytes contiguously from the stream.\nConvenience method to read all remaining data into a buffer\nMaximum number of bytes the peer may transmit across all …\nSets the relay servers to assist in establishing …\nThe node’s home relay url.\nrelay server information, if available.\nThe peer’s UDP address\nThe peer’s UDP address.\nClose the send stream immediately.\nCurrent best estimate of this connection’s latency …\nSets a secret key to authenticate with other peers.\nTransmit data as an unreliable, unordered application …\nMaximum number of bytes to transmit to a peer without …\nModify the number of remotely initiated bidirectional …\nModify the number of remotely initiated unidirectional …\nSet the priority of the send stream\nSee proto::TransportConfig::receive_window()\nA stable identifier for this connection\nReturns connection statistics\nStop accepting data\nCompletes if/when the peer stops the stream, yielding the …\nMaximum number of bytes the peer may transmit without …\nMaximum reordering in time space before time based loss …\nSets a custom quinn::TransportConfig for this endpoint.\nSucceeds iff x < 2^62\nSucceeds iff x < 2^62\nSucceeds iff x < 2^62\nThe origin of this direct address.\nReturns a weak reference to the inner connection struct.\nWrite bytes to the stream\nConvenience method to write an entire buffer to the stream\nConvenience method to write an entire list of chunks to …\nConvenience method to write a single chunk in its entirety …\nWrite chunks to the stream\nSize of an encoded Ed25519 signature in bytes.\nError when decoding the base32.\nError when decoding the public key.\nError when deserialising a PublicKey or a SecretKey.\nThe identifier for a node in the (iroh) network.\nThe length of an ed25519 PublicKey, in bytes.\nA public key.\nA secret key.\nShared Secret.\nEd25519 signature.\nGet this public key as a byte array.\nConvert to a base32 string limited to the first 10 bytes …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nParse an Ed25519 signature from a byte slice.\nConstruct a PublicKey from a slice of bytes.\nCreate a secret key from its byte representation.\nParse an Ed25519 signature from its R and s components.\nParse an Ed25519 signature from a byte slice.\nGenerate a new SecretKey with the default randomness …\nGenerate a new SecretKey with a randomness generator.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nOpens the ciphertext, which must have been created using …\nThe public key of this SecretKey.\nBytes for the R component of a signature.\nBytes for the s component of a signature.\nSeals the provided cleartext.\nReturns the shared key for communication between this key …\nSign the given message and return a digital signature\nReturn the inner byte array.\nConvert this to the bytes representing the secret part. …\nSerialise this key to OpenSSH format.\nConvert this signature into a byte vector.\nDeserialise this key from OpenSSH format.\nVerify a signature on a message with this secret key’s …\nEnum of metrics for the module\nEnum of metrics for the module\nEnum of metrics for the module\nMetrics tracked for the relay server\nNumber of connections we have accepted\nBytes received from a FrameType::SendPacket\nBytes sent from a FrameType::SendPacket\nNumber of accepted ‘iroh derp http’ connection upgrades\nFrameType::SendPacket dropped that are disco messages\nFrameType::SendPacket received that are disco messages\nFrameType::SendPacket sent that are disco messages\nNumber of connections we have removed because of an error\nReturns the argument unchanged.\nNumber of FrameType::Pings received\nCalls U::from(self).\nThe number of direct connections we have made to peers.\nThe number of direct connections we have lost to peers.\nThe number of connections to peers we have added over …\nThe number of connections to peers we have removed over …\nPackets of other FrameTypes dropped\nPackets of other FrameTypes received\nPackets of other FrameTypes sent\nNumber of QUIC datagrams received.\nFrameType::SendPacket dropped, that are not disco messages\nFrameType::SendPacket received, that are not disco messages\nFrameType::SendPacket sent, that are not disco messages\nNumber of FrameType::Pongs sent\nNumber of unique client keys per day\nNumber of FrameType::Unknown received\nNumber of accepted websocket connections\nIp family selection between Ipv4 and Ipv6.\nWrapper around a tokio UDP socket that handles the fact …\nIpv4\nIpv6\nBind to the given port and listen on all interfaces.\nBind to any provided SocketAddr. Does not prepare for …\nBind to the given port only on localhost.\nBind only Ipv4 on localhost.\nBind only Ipv6 on localhost.\nBind only Ipv4 on any interface.\nBind only Ipv6 on any interface.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nIP address related utilities.\nReturns the matching localhost address.\nMonitoring of networking interfaces and route changes.\nReturns the matching default address.\nList of machine’s IP addresses.\nReturns the argument unchanged.\nCalls U::from(self).\nReturns true if the address is a unicast address with …\nLoopback addresses.\nReturns the machine’s IP addresses. If there are no …\nRegular addresses.\nToken to remove a callback\nMonitors networking interface and route changes.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nPotential change detected outside\nCreate a new monitor.\nSubscribe to network changes.\nUnsubscribe a callback from network changes, using the …\nClient to run netchecks.\nEnum of metrics for the module\nLatencies per relay node.\nA netcheck report.\nCaptivePortal is set when we think there’s a captive …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nRuns a netcheck, returning the report.\nGet report with channel\nip:port of global IPv4\n[ip]:port of global IPv6\nWhether the router supports communicating between two …\nAn ICMPv4 round trip completed, None if not checked.\nAn ICMPv6 round trip completed, None if not checked.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAn IPv4 STUN round trip completed.\nan IPv4 packet was able to be sent\nAn IPv6 STUN round trip completed.\nAn IPv6 packet was able to be sent\nReturns an iterator over all the relays and their …\nWhether STUN results depend on which STUN server you’re …\nWhether STUN results depend on which STUN server you’re …\nCreates a new netcheck client.\ncould bind a socket to ::1\nProbe indicating the presence of port mapping protocols on …\nNone for unknown\nPass a received STUN packet to the netchecker.\nkeyed by relay Url\nkeyed by relay Url\nkeyed by relay Url\nA UDP STUN round trip completed.\nCould not create client, probably bind error.\nCould not send ping.\nWhether this error was because we couldn’t create a …\nAllows sending ICMP echo requests to a host in order to …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCreate a new Pinger.\nSend a ping request with associated data, returning the …\nPort mapping client.\nConfigures which port mapping protocols are enabled in the …\nEnum of metrics for the module\nOutput of a port mapping probe.\nA port mapping client.\nIndicates if all port mapping protocols are available.\nDeactivate port mapping.\nBy default all port mapping protocols are enabled.\nWhether PMP is enabled.\nWhether PCP is enabled.\nWhether UPnP is enabled.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIf PMP can be considered available.\nCreate a new port mapping client.\nIf PCP can be considered available.\nRequest a probe to the port mapping protocols.\nTry to get a mapping for the last local port if there isn…\nUpdate the local port.\nIf UPnP can be considered available.\nWatch the external address for changes in the mappings.\nThe inner actor is gone, likely means things are shutdown.\nThe relay super::client::Client failed to build\nThis Client cannot acknowledge pings\nThe client is closed\nThere was a connection timeout error\nUse a custom relay map.\nUse the default relay map, with production relay servers …\nThere was an error dialing\nThere was an error from the task doing the dialing\nDisable relay servers completely.\nThere was an error with DNS resolution\nThere was a timeout resolving DNS.\nA one-way message from server to client, declaring the …\nThere was an http error http::Error.\nAn HTTP Relay client.\nBuild a Client.\nPossible connection errors on the Client\nReceiving end of a Client.\nThere was http server hyper::Error\nBoth IPv4 and IPv6 are disabled for this relay node\nThe given Url is invalid\nA one-way empty message from server to client, just to …\nThe maximum size of a packet sent over relay. (This only …\nThere no underlying relay super::client::Client client …\nNo local addresses exist\nNo relay nodes are available with that name\nIndicates that the client identified by the underlying …\nRequest from a client or server to reply to the other side …\nThe ping request was aborted\nThe ping request timed out\nReply to a ReceivedMessage::Ping from a client or server …\nThe connection failed to proxy\nThere was an error receiving a packet\nThe type of message received by the Conn from a relay …\nRepresents an incoming packet.\nA connection to a relay server.\nConfiguration of all the relay servers that can be used.\nConfiguration options for the relay servers of the magic …\nInformation on a specific relay server.\nNo relay nodes are available\nA URL identifying a relay server.\nThere was an error sending a packet\nA one-way message from server to client, advertising that …\nUse the staging relay servers from n0.\nThe relay node specified only allows STUN requests\nThere was an unexpected status code\nThe connection failed to upgrade\nAn error related to websockets, either errors with parsing …\nReturns if we should prefer ipv6 it replaces the …\nBuild the Client\nEnable this Client to acknowledge pings.\nClose the connection\nClose the http relay connection.\nDisconnect the http relay connection.\nConnect to a relay Server and returns the underlying relay …\nIs this a known node?\nCreates a new `RelayMap with a single relay server …\nCreate an empty relay map.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs the [RelayMap] from an iterator of [RelayNode`]…\nReturns a [RelayMap] from a [RelayUrl`].\nGet the given node.\nHTTP-specific constants for the relay server and client.\nSkip the verification of the relay server’s SSL …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether or not this Conn is closed.\nReturns true if the underlying relay connection is …\nAre there any nodes in this map?\nIndicate this client is the preferred way to communicate …\nIndicates this client is a prober\nHow many nodes are known?\nThe local address that the Conn is listening on.\nGet the local addr of the connection. If there is no …\nCreate a new ClientBuilder\nReturns an Iterator over all known nodes.\nSends a packet that tells the server whether this …\nLet the server know that this client is the preferred …\nSend a ping to the server. Return once we get an expected …\nSets whether to connect to the relay via websockets or not.\nSet an explicit proxy url to proxy all HTTP(S) traffic …\nThe public key for this client\nReads a message from the server. Returns the message and …\nReturns the relay map for this mode.\nSends a packet to the node identified by dstkey\nSend a packet to the server.\nSend a ping with 8 bytes of random data.\nRespond to a ping request. The data field should be filled …\nSend a pong back to the server.\nA fully-fledged iroh-relay server over HTTP or HTTPS.\nThe expected PublicKey of the relay server we are …\nSets the server url\nWhether this relay server should only be used for STUN …\nThe stun port of the relay server.\nThe RelayUrl where this relay server can be dialed.\nReturns the sorted relay URLs.\nThe received packet bytes.\nIf set, is a description of why the connection is …\nAn advisory duration that the client should wait before …\nThe PublicKey of the packet sender.\nAn advisory duration for how long the client should …\nThe HTTP upgrade protocol used for relaying.\nThe HTTP path under which the relay accepts relaying …\nThe HTTP path under which the relay allows doing latency …\nRelays over the custom relaying protocol with a custom …\nRelays over websockets.\nReturns the argument unchanged.\nCalls U::from(self).\nTries to match the value of an HTTP upgrade header to …\nThe HTTP upgrade header used or expected.\nTLS certificate configuration.\nHandle incoming connections to the Server.\nUse Let’s Encrypt.\nRate limits.\nUse a static TLS key and certificate chain.\nThe main underlying IO stream type used for the relay …\nMetrics tracked for the relay server\nA plain non-Tls tokio::net::TcpStream\nConfiguration for the Relay HTTP and HTTPS server.\nA running Relay + STUN server.\nThe task for a running server actor.\nConfiguration for the full Relay & STUN server.\nConfiguration for the STUN server.\nA Tls wrapped tokio::net::TcpStream\nTLS configuration for Relay server.\nAborts the server.\nAdds a new connection to the server and serves it.\nBurst limit for accepting new connection. Unlimited if not …\nRate limit for accepting new connection. Unlimited if not …\nNumber of connections we have accepted\nThe socket address on which the STUN server should bind.\nBytes received from a FrameType::SendPacket\nBytes sent from a FrameType::SendPacket\nMode for getting a cert.\nCreate a ClientConnHandler, which can verify connections …\nCloses the server and waits for the connections to …\nNumber of accepted ‘iroh derp http’ connection upgrades\nFrameType::SendPacket dropped that are disco messages\nFrameType::SendPacket received that are disco messages\nFrameType::SendPacket sent that are disco messages\nNumber of connections we have removed because of an error\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nNumber of FrameType::Pings received\nThe socket address the HTTP server is listening on.\nThe socket address on which the Relay HTTP server should …\nThe socket address the HTTPS server is listening on.\nThe socket address on which to serve the HTTPS server.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether or not the relay ServerActorTask is closed.\nRate limits.\nReturns the server metadata cert that can be sent by the …\nSocket to serve metrics on.\nTODO: replace with builder\nPackets of other FrameTypes dropped\nPackets of other FrameTypes received\nPackets of other FrameTypes sent\nReturns the server’s public key.\nConfiguration for the Relay server, disabled if None.\nReturns the server’s secret key.\nThe iroh secret key of the Relay server.\nFrameType::SendPacket dropped, that are not disco messages\nFrameType::SendPacket received, that are not disco messages\nFrameType::SendPacket sent, that are not disco messages\nNumber of FrameType::Pongs sent\nRequests graceful shutdown.\nStarts the server.\nConfiguration for the STUN server, disabled if None.\nThe socket address the STUN server is listening on.\nReturns the handle for the task.\nTLS configuration for the HTTPS server.\nNumber of unique client keys per day\nNumber of FrameType::Unknown received\nNumber of accepted websocket connections\nThe TLS certificate chain.\nConfiguration for Let’s Encrypt certificates.\nThe TLS private key.\nThe AlternateServeratribute\nErrors that can occur when handling a STUN packet.\nThe ErrorCodeatribute\nerror response\nThe Fingerprintatribute\nindication\nSTUN request had bogus fingerprint.\nThe STUN message could not be parsed or is otherwise …\nSTUN response has malformed attributes.\nThe MappedAddressatribute\nThe STUN message class. Although there are four message …\nClass used to decode STUN messages\nThe MessageIntegrityatribute\nThe MessageIntegritySha256atribute\nSTUN request didn’t end in fingerprint.\nThe Nonceatribute\nSTUN request is not a binding request when it should be.") \ No newline at end of file diff --git a/pr/2574/docs/search.desc/iroh/iroh-desc-1-.js b/pr/2574/docs/search.desc/iroh/iroh-desc-1-.js index b0ae294d46..48491268bb 100644 --- a/pr/2574/docs/search.desc/iroh/iroh-desc-1-.js +++ b/pr/2574/docs/search.desc/iroh/iroh-desc-1-.js @@ -1 +1 @@ -searchState.loadedDescShard("iroh", 1, "Describes an error decoding a StunMessage\nsuccess response\nThe transaction ID is a 96-bit identifier, used to …\nThe Unknownatribute\nThe UnknownAttributesatribute\nThe UserHashatribute\nThe UserNameatribute\nThe XorMappedAddressatribute\nReturns a reference to the internal attribute value or an …\nReturns a reference to the bytes that represents the …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns the STUN attribute type of this instance.\nDecodes the STUN raw buffer\nCreates a cryptographically random transaction ID chosen …\nReturns a reference to the AlternateServer attribute.\nReturns a reference to the ErrorCode attribute.\nReturns a reference to the Fingerprint attribute.\nReturns a reference to the MappedAddress attribute.\nReturns a reference to the MessageIntegrity attribute.\nReturns a reference to the MessageIntegritySha256 …\nReturns a reference to the Nonce attribute.\nReturns a reference to the PasswordAlgorithm attribute.\nReturns a reference to the PasswordAlgorithms attribute.\nReturns a reference to the Realm attribute.\nReturns a reference to the Software attribute.\nReturns a reference to the Unknown attribute.\nReturns a reference to the UnknownAttributes attribute.\nReturns a reference to the UserHash attribute.\nReturns a reference to the UserName attribute.\nReturns a reference to the XorMappedAddress attribute.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGets the context associated to this decoder\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReports whether b is a STUN message.\nReturns true if this StunAttribute is AlternateServer\nReturns true if this StunAttribute is ErrorCode\nReturns true if this StunAttribute is Fingerprint\nReturns true if this StunAttribute is MappedAddress\nReturns true if this StunAttribute is MessageIntegrity\nReturns true if this StunAttribute is …\nReturns true if this StunAttribute is Nonce\nReturns true if this StunAttribute is PasswordAlgorithm\nReturns true if this StunAttribute is PasswordAlgorithms\nReturns true if this StunAttribute is Realm\nReturns true if this StunAttribute is Software\nReturns true if this StunAttribute is Unknown\nReturns true if this StunAttribute is UnknownAttributes\nReturns true if this StunAttribute is UserHash\nReturns true if this StunAttribute is UserName\nReturns true if this StunAttribute is XorMappedAddress\nSTUN Methods Registry\nParses a STUN binding request.\nParses a successful binding response STUN packet. The IP …\nGenerates a binding request STUN packet.\nGenerates a binding response.\nBinding\nReserved\nShared secret\nA drop guard to clean up test infrastructure.\nHandle and drop guard for test DNS and Pkarr servers.\nCreate a DNS resolver with a single nameserver.\nCreate a ConcurrentDiscovery with DnsDiscovery and …\nCreate a DnsResolver configured to use the test DNS server.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nThe socket address of the DNS server.\nThe node origin domain.\nWait until a Pkarr announce for a node is published to the …\nThe HTTP URL of the Pkarr server.\nRun DNS and Pkarr servers on localhost.\nRuns a relay server with STUN enabled suitable for tests.\nRun DNS and Pkarr servers on localhost with the specified …\nA token containing everything to get a file from the …\nReturns the argument unchanged.\nCalls U::from(self).\nCreates a new ticket.\nThe NodeAddr of the provider for this ticket.\nX.509 certificate handling.\nCreate a TLS client configuration.\nCreate a TLS server configuration.\nAn error that occurs during certificate generation.\nAn X.509 certificate with a libp2p-specific extension is …\nThe contents of the specific libp2p extension, containing …\nAn error that occurs during certificate parsing.\nAn error that occurs during signature verification.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGenerates a self-signed TLS certificate that includes a …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAttempts to parse the provided bytes as a P2pCertificate.\nThe PublicKey of the remote peer.\nVerify the signature of the message signed by the secret …\nA join handle that owns the task it is running, and aborts …\nHolds a handle to a task and aborts it on drop.\nResolves to pending if the inner is None.\nA join handle that owns the task it is running, and aborts …\nIO utility to chain AsyncReads together.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nFuture to be polled.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a CancelOnDrop with a name and a handle to a task.\nStream for the chain method.\nChain two AsyncReads together.\nReturns the argument unchanged.\nGets mutable references to the underlying readers in this …\nGets pinned mutable references to the underlying readers …\nGets references to the underlying readers in this Chain.\nCalls U::from(self).\nConsumes the Chain, returning the wrapped readers.\nBuilder for the Node.\nUse a custom discovery mechanism.\nThe default bind addr of the RPC .\nUse the default discovery mechanism.\nDisable docs completely.\nGarbage collection is disabled.\nConfiguration for node discovery.\nStorage backend for documents.\nPersistent node.\nPolicy for garbage collection.\nGarbage collection is run at the given interval.\nThe quic-rpc server endpoint for the iroh node.\nIn memory\nIn memory node.\nIn-memory storage.\nA server which implements the iroh node.\nUse no node discovery mechanism.\nFile-based persistent storage.\nOn disk persistet, at this location.\nA node that is initialized but not yet spawned.\nHandler for incoming connections.\nThe current status of the RPC endpoint.\nRunning on this port.\nStopped.\nConfiguration for storage.\nHandle an incoming connection.\nRegisters a protocol handler for incoming connections.\nBinds the node service to a different socket.\nReturns the crate::blobs::store::Store used by the node.\nBuilds a node without spawning it.\nReturns a token that can be used to cancel the node.\nCleans up an existing rpc lock\nReturns a client to control this node over an in-memory …\nReturn a client to control this node over an in-memory …\nDisables documents support on this node completely.\nOptionally set a custom DNS resolver to use for the magic …\nReturns a reference to the Downloader used by the node.\nConfigure the default iroh rpc endpoint, on the default …\nConfigure the default iroh rpc endpoint.\nReturns the Endpoint of the node.\nReturns the Endpoint of the node.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nSets the garbage collection policy.\nReturns a protocol handler for an ALPN.\nReturns a protocol handler for an ALPN.\nReturns a reference to the Gossip handle used by the node.\nGet the relay server we are connected to.\nSkip verification of SSL certificates from relay servers\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether to log the SSL pre-master key.\nLoad the current RPC status from the given location.\nThe address on which the node socket is bound.\nConvenience method to get just the addr part of …\nLists the local endpoint of this node.\nReturns a reference to the used LocalPoolHandle.\nReturns a reference to the used LocalPoolHandle.\nReturns a new builder for the Node, by default configured …\nReturns a new builder for the Node, by default configured …\nReturns Some(addr) if an RPC endpoint is running, None …\nSets the node discovery mechanism.\nReturns the PublicKey of the node.\nPersist all node data in the provided directory.\nReturns a new builder for the Node, configured to persist …\nReturns a new builder for the Node, configured to persist …\nRegister a callback for when GC is done.\nSets the relay servers to assist in establishing …\nConfigure rpc endpoint.\nUses the given SecretKey for the PublicKey instead of a …\nCalled when the node shuts down.\nCalled when the node shuts down.\nShutdown the node.\nSpawns the Node in a tokio task.\nSpawns the node and starts accepting connections.\nStore the current rpc status.\nCreates a new builder for Node using the given databases.\nActual connected RPC client.\nThe port we are connected on.\nUtilities for filesystem operations.\nUtilities for working with tokio io\nConfiguration paths for iroh.\nGeneric utilities to track progress of data transfers.\nA data source\nInformation about the content on a path\nThis function converts an already canonicalized path to a …\ntotal number of files in the directory\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nHelper function that translates a key that was derived …\nLoads a SecretKey from the provided file, or stores a …\nReturns blob name for this data source.\nCreates a new DataSource from a PathBuf.\nReturns the path of this data source.\nWalks the directory to get the total size and number of …\nHelper function that creates a document key from a …\nThis function converts a canonicalized relative path to a …\nCreate data sources from a directory.\nCreate data sources from a path.\ntotal size of all the files in the directory\nCreates a new DataSource from a PathBuf and a custom name.\nTodo: gather more information about validation errors. …\nThe data failed to validate\nGeneric io error. We were unable to read the data.\nReturns the argument unchanged.\nCalls U::from(self).\nPath to the node’s file based blob store.\nPath to the console state\nPath to the iroh_docs::AuthorId of the node’s default …\nPath to the iroh-docs document database\nPaths to files or directories used by Iroh.\nPath to store known peer data.\nPath to RPC lock file, containing the RPC port if running.\nPath to the node’s secret key for the …\nReturns the argument unchanged.\nCalls U::from(self).\nGet the path for this IrohPaths by joining the name to a …\nA sender for progress messages.\nA wrapper around AsyncRead which increments a …\nA generic progress event emitter.\nA writer that tries to send the total number of bytes …\nBlock until the message is sent.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nIncrements the progress by amount.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturn the inner writer\nCreates a new emitter.\nCreate a new ProgressWriter from an inner writer\nCreate a new progress sender.\nCreate a no-op progress sender.\nSend a message\nSets a new total in case you did not now the total up …\nReturns a receiver that gets incremental values.\nTry to send a message.\nWraps an AsyncRead which implicitly calls …") \ No newline at end of file +searchState.loadedDescShard("iroh", 1, "STUN packet is not a response when it should be.\nThe PasswordAlgorithmatribute\nThe PasswordAlgorithmsatribute\nThe Realmatribute\nrequest\nThe Softwareatribute\nSTUN Attributes that can be attached to a StunMessage\nDescribes an error decoding a StunMessage\nsuccess response\nThe transaction ID is a 96-bit identifier, used to …\nThe Unknownatribute\nThe UnknownAttributesatribute\nThe UserHashatribute\nThe UserNameatribute\nThe XorMappedAddressatribute\nReturns a reference to the internal attribute value or an …\nReturns a reference to the bytes that represents the …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns the STUN attribute type of this instance.\nDecodes the STUN raw buffer\nCreates a cryptographically random transaction ID chosen …\nReturns a reference to the AlternateServer attribute.\nReturns a reference to the ErrorCode attribute.\nReturns a reference to the Fingerprint attribute.\nReturns a reference to the MappedAddress attribute.\nReturns a reference to the MessageIntegrity attribute.\nReturns a reference to the MessageIntegritySha256 …\nReturns a reference to the Nonce attribute.\nReturns a reference to the PasswordAlgorithm attribute.\nReturns a reference to the PasswordAlgorithms attribute.\nReturns a reference to the Realm attribute.\nReturns a reference to the Software attribute.\nReturns a reference to the Unknown attribute.\nReturns a reference to the UnknownAttributes attribute.\nReturns a reference to the UserHash attribute.\nReturns a reference to the UserName attribute.\nReturns a reference to the XorMappedAddress attribute.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGets the context associated to this decoder\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReports whether b is a STUN message.\nReturns true if this StunAttribute is AlternateServer\nReturns true if this StunAttribute is ErrorCode\nReturns true if this StunAttribute is Fingerprint\nReturns true if this StunAttribute is MappedAddress\nReturns true if this StunAttribute is MessageIntegrity\nReturns true if this StunAttribute is …\nReturns true if this StunAttribute is Nonce\nReturns true if this StunAttribute is PasswordAlgorithm\nReturns true if this StunAttribute is PasswordAlgorithms\nReturns true if this StunAttribute is Realm\nReturns true if this StunAttribute is Software\nReturns true if this StunAttribute is Unknown\nReturns true if this StunAttribute is UnknownAttributes\nReturns true if this StunAttribute is UserHash\nReturns true if this StunAttribute is UserName\nReturns true if this StunAttribute is XorMappedAddress\nSTUN Methods Registry\nParses a STUN binding request.\nParses a successful binding response STUN packet. The IP …\nGenerates a binding request STUN packet.\nGenerates a binding response.\nBinding\nReserved\nShared secret\nA drop guard to clean up test infrastructure.\nHandle and drop guard for test DNS and Pkarr servers.\nCreate a DNS resolver with a single nameserver.\nCreate a ConcurrentDiscovery with DnsDiscovery and …\nCreate a DnsResolver configured to use the test DNS server.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nThe socket address of the DNS server.\nThe node origin domain.\nWait until a Pkarr announce for a node is published to the …\nThe HTTP URL of the Pkarr server.\nRun DNS and Pkarr servers on localhost.\nRuns a relay server with STUN enabled suitable for tests.\nRun DNS and Pkarr servers on localhost with the specified …\nA token containing everything to get a file from the …\nReturns the argument unchanged.\nCalls U::from(self).\nCreates a new ticket.\nThe NodeAddr of the provider for this ticket.\nX.509 certificate handling.\nCreate a TLS client configuration.\nCreate a TLS server configuration.\nAn error that occurs during certificate generation.\nAn X.509 certificate with a libp2p-specific extension is …\nThe contents of the specific libp2p extension, containing …\nAn error that occurs during certificate parsing.\nAn error that occurs during signature verification.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGenerates a self-signed TLS certificate that includes a …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAttempts to parse the provided bytes as a P2pCertificate.\nThe PublicKey of the remote peer.\nVerify the signature of the message signed by the secret …\nA join handle that owns the task it is running, and aborts …\nHolds a handle to a task and aborts it on drop.\nResolves to pending if the inner is None.\nA join handle that owns the task it is running, and aborts …\nIO utility to chain AsyncReads together.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nFuture to be polled.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a CancelOnDrop with a name and a handle to a task.\nStream for the chain method.\nChain two AsyncReads together.\nReturns the argument unchanged.\nGets mutable references to the underlying readers in this …\nGets pinned mutable references to the underlying readers …\nGets references to the underlying readers in this Chain.\nCalls U::from(self).\nConsumes the Chain, returning the wrapped readers.\nBuilder for the Node.\nUse a custom discovery mechanism.\nThe default bind addr of the RPC .\nUse the default discovery mechanism.\nDisable docs completely.\nGarbage collection is disabled.\nConfiguration for node discovery.\nStorage backend for documents.\nPersistent node.\nPolicy for garbage collection.\nGarbage collection is run at the given interval.\nThe quic-rpc server endpoint for the iroh node.\nIn memory\nIn memory node.\nIn-memory storage.\nA server which implements the iroh node.\nUse no node discovery mechanism.\nFile-based persistent storage.\nOn disk persistet, at this location.\nA node that is initialized but not yet spawned.\nHandler for incoming connections.\nThe current status of the RPC endpoint.\nRunning on this port.\nStopped.\nConfiguration for storage.\nHandle an incoming connection.\nRegisters a protocol handler for incoming connections.\nBinds the node service to a different socket.\nReturns the crate::blobs::store::Store used by the node.\nBuilds a node without spawning it.\nReturns a token that can be used to cancel the node.\nCleans up an existing rpc lock\nReturns a client to control this node over an in-memory …\nReturn a client to control this node over an in-memory …\nDisables documents support on this node completely.\nOptionally set a custom DNS resolver to use for the magic …\nReturns a reference to the Downloader used by the node.\nConfigure the default iroh rpc endpoint, on the default …\nConfigure the default iroh rpc endpoint.\nReturns the Endpoint of the node.\nReturns the Endpoint of the node.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nSets the garbage collection policy.\nReturns a protocol handler for an ALPN.\nReturns a protocol handler for an ALPN.\nReturns a reference to the Gossip handle used by the node.\nGet the relay server we are connected to.\nSkip verification of SSL certificates from relay servers\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether to log the SSL pre-master key.\nLoad the current RPC status from the given location.\nThe address on which the node socket is bound.\nConvenience method to get just the addr part of …\nLists the local endpoint of this node.\nReturns a reference to the used LocalPoolHandle.\nReturns a reference to the used LocalPoolHandle.\nReturns a new builder for the Node, by default configured …\nReturns a new builder for the Node, by default configured …\nReturns Some(addr) if an RPC endpoint is running, None …\nSets the node discovery mechanism.\nReturns the PublicKey of the node.\nPersist all node data in the provided directory.\nReturns a new builder for the Node, configured to persist …\nReturns a new builder for the Node, configured to persist …\nRegister a callback for when GC is done.\nSets the relay servers to assist in establishing …\nConfigure rpc endpoint.\nUses the given SecretKey for the PublicKey instead of a …\nCalled when the node shuts down.\nCalled when the node shuts down.\nShutdown the node.\nSpawns the Node in a tokio task.\nSpawns the node and starts accepting connections.\nStore the current rpc status.\nCreates a new builder for Node using the given databases.\nActual connected RPC client.\nThe port we are connected on.\nUtilities for filesystem operations.\nUtilities for working with tokio io\nConfiguration paths for iroh.\nGeneric utilities to track progress of data transfers.\nA data source\nInformation about the content on a path\nThis function converts an already canonicalized path to a …\ntotal number of files in the directory\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nHelper function that translates a key that was derived …\nLoads a SecretKey from the provided file, or stores a …\nReturns blob name for this data source.\nCreates a new DataSource from a PathBuf.\nReturns the path of this data source.\nWalks the directory to get the total size and number of …\nHelper function that creates a document key from a …\nThis function converts a canonicalized relative path to a …\nCreate data sources from a directory.\nCreate data sources from a path.\ntotal size of all the files in the directory\nCreates a new DataSource from a PathBuf and a custom name.\nTodo: gather more information about validation errors. …\nThe data failed to validate\nGeneric io error. We were unable to read the data.\nReturns the argument unchanged.\nCalls U::from(self).\nPath to the node’s file based blob store.\nPath to the console state\nPath to the iroh_docs::AuthorId of the node’s default …\nPath to the iroh-docs document database\nPaths to files or directories used by Iroh.\nPath to store known peer data.\nPath to RPC lock file, containing the RPC port if running.\nPath to the node’s secret key for the …\nReturns the argument unchanged.\nCalls U::from(self).\nGet the path for this IrohPaths by joining the name to a …\nA sender for progress messages.\nA wrapper around AsyncRead which increments a …\nA generic progress event emitter.\nA writer that tries to send the total number of bytes …\nBlock until the message is sent.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nIncrements the progress by amount.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturn the inner writer\nCreates a new emitter.\nCreate a new ProgressWriter from an inner writer\nCreate a new progress sender.\nCreate a no-op progress sender.\nSend a message\nSets a new total in case you did not now the total up …\nReturns a receiver that gets incremental values.\nTry to send a message.\nWraps an AsyncRead which implicitly calls …") \ No newline at end of file diff --git a/pr/2574/docs/search.desc/iroh_blobs/iroh_blobs-desc-0-.js b/pr/2574/docs/search.desc/iroh_blobs/iroh_blobs-desc-0-.js index fe1c1684cc..c16f8cf873 100644 --- a/pr/2574/docs/search.desc/iroh_blobs/iroh_blobs-desc-0-.js +++ b/pr/2574/docs/search.desc/iroh_blobs/iroh_blobs-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("iroh_blobs", 0, "Blobs layer for iroh.\nA format identifier\nThe hash for the empty byte range (b"").\nHash type used throughout.\nA hash and format pair\nA sequence of BLAKE3 hashes\nBlock size used by iroh, 2^4*1024 = 16KiB\nRaw blob\nBytes of the hash.\nHandle downloading blobs and collections concurrently and …\nFunctions to export data from a store\nConvert to a base32 string limited to the first 10 bytes …\nDefines data formats for HashSeq.\nThe format\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate a Hash from its raw bytes representation.\nThe client side API\nThe hash\nCreate a new hash and format pair, using the collection …\ntraits related to collections of blobs\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIs hash seq format\nIs raw format\nMetrics for iroh-blobs\nCalculate the hash of the provided bytes.\nCreate a new hash and format pair.\nProtocol for transferring content-addressed blobs and …\nThe server side API\nCreate a new hash and format pair, using the default (raw) …\nImplementations of blob stores\nConvert the hash to a hex string.\nUtility functions and types.\nAn error occurred that prevents the request from being …\nFailed to receive response from service.\nThe request was cancelled by us.\nThe download was cancelled by us\nConcurrency limits for the Downloader.\nType of connections returned by the Dialer.\nType of connections the Getter requires to perform a …\nTrait modeling a dialer. This allows for IO-less testing.\nError returned when a download could not be completed.\nFailed to download from any provider\nHandle to interact with a download request.\nThe kind of resource to download.\nA download request.\nHandle for the download services.\nAn error occurred that suggests the node should not be …\nSignals what should be done with the request when it fails.\nTrait modelling performing a single request over a …\nIdentifier for a download intent.\nNo provider nodes found\nConfiguration for retry behavior of the Downloader.\nAn error occurred in which neither the node nor the …\nCancel a download.\nGet the format of this download\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturn a future that performs the download using the given …\nGet the hash of this download\nGet the HashAndFormat pair of this download\nThe initial delay to wait before retrying a node. On …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCheck if a node is being dialed.\nMaximum number of nodes to dial concurrently for a single …\nMaximum number of requests the service performs …\nMaximum number of requests performed by a single node …\nMaximum number of open connections the service maintains.\nMaximum number of retry attempts for a node that failed to …\nCreate a new download request.\nCreate a new Downloader with the default ConcurrencyLimits …\nDeclare that certains nodes can be used to download a hash.\nGet the number of dialing nodes.\nPass a progress sender to receive progress updates.\nQueue a download.\nDial a node.\nCreate a new Downloader with custom ConcurrencyLimits and …\nWe got an error and need to abort.\nWe are done with the whole operation.\nWe finished exporting a blob\nProgress events for an export operation\nThe download part is done for this id, we are now …\nWe have made progress exporting the data.\nExport a hash to the local file system.\nExport a single blob to a file on the local filesystem.\nExport all entries of a collection, recursively, to files …\nReturns the argument unchanged.\nCalls U::from(self).\nThe hash of the entry.\nUnique id of the entry.\nUnique id of the entry that is being exported.\nUnique id of the entry that is being exported.\nOperation-specific metadata.\nThe offset of the progress, in bytes.\nThe path to the file where the data is exported.\nThe size of the entry in bytes.\nThe collection type used by iroh\nA collection of blobs\nThe header for the collection format.\nA simple store trait for loading blobs\nReturns the argument unchanged.\nCalls U::from(self).\nCheck if this collection is empty\nIterate over the blobs in this collection\nGet the number of blobs in this collection\nLoad a blob from the store\nCreate a new collection from a hash sequence and metadata.\nLoad a collection from a store given a root hash\nAdd the given blob to the collection.\nRead the collection from a get fsm.\nRead the collection and all it’s children from a get fsm.\nStore a collection in a store. returns the root hash of …\nConvert the collection to an iterator of blobs, with the …\nError when opening a stream\nError when decoding, e.g. hash mismatch\nA generic error\nError when processing a response\nError when reading from the stream\nStats about the transfer.\nError when writing the handshake or request to the stream\nThe number of bytes read\nThe number of bytes written\nFunctions that use the iroh-blobs protocol in conjunction …\nThe time it took to transfer the data\nError returned from get operations\nReturns the argument unchanged.\nReturns the argument unchanged.\nFinite state machine for get responses.\nCalls U::from(self).\nCalls U::from(self).\nTransfer rate in megabits per second\nTypes for get progress state management.\nUtilities for complex get requests.\nWe got an error and need to abort.\nAll operations finished.\nThe id of a blob in a transfer\nInformation about a the status of a blob in a store.\nA child blob (child id > 0)\nwe have the blob completely\nA new connection was established.\nWe are done with id, and the hash is hash.\nProgress updates for the get operation.\nAn item was found with hash hash, from now on referred to …\nAn item was found with hash hash, from now on referred to …\nData was found locally.\nInitial state if subscribing to a running or queued …\nwe don’t have the blob at all\nwe have the blob partially\nWe got progress ingesting item id.\nThe root blob (child id 0)\nGet information about a blob in a store.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a blob or collection into a store.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRanges that are missing locally and need to be requested.\nThe size of the blob, if known.\nGiven a partial entry, get the valid ranges.\nRanges that are valid locally.\nThe partial entry.\nThe size of the entry in bytes.\nThe ranges that are available locally.\nchild offset\nIdentifier for this blob within this download.\nNumber of children in the collection, if known.\nThe hash of the entry.\nThe hash of the entry.\nThe name of the entry.\nA new unique progress id for this entry.\nThe unique id of the entry.\nThe unique id of the entry.\nThe offset of the progress, in bytes.\nThe size of the entry in bytes.\nThe size of the entry in bytes.\nThe ranges that are available locally.\nOur download request is invalid.\nFailures for a get operation\nNetwork or IO operation failed.\nOperation failed on the local node.\nRemote behaved in a non-compliant way.\nHash not found.\nRemote has reset the connection.\nReturns the argument unchanged.\nCalls U::from(self).\nState while we are reading content\nState before reading a size header\nError that you can get from AtBlobHeader::next\nState when finishing the get response\nState of the get response machine after the handshake has …\nState after we have read all the content for a blob\nInitial state of the get response machine\nState of the get response when we start reading a child\nState of the get response when we start reading a …\nThe next state after reading a content item\nRequest is empty\nNo more children expected\nPossible next states after the handshake has been sent\nError that you can get from AtConnected::next\nDecode error that you can get once you have sent the …\nWe are done with this blob\nThe next state after the end of a blob\nA generic io error\nGeneric io error\nA generic io error\nThe hash of a leaf did not match the expected hash\nA parent was not found or invalid, so the provider stopped …\nWe expect more content\nResponse is expected to have more children\nEof when reading the size header\nA chunk was not found or invalid, so the provider stopped …\nThe hash of a parent did not match the expected hash\nA parent was not found or invalid, so the provider stopped …\nError when serializing the request\nQuinn read error when reading the size header\nError when reading from the stream\nThe serialized request is too long to be sent\nFirst response is a child\nFirst response is either a collection or a single blob\nError when writing the request to the SendStream.\nThe offset of the child we are currently reading\nConcatenate the entire response into a vec\nConcatenate the entire response into a vec\nDrain the response and throw away the result\nDrain the response and throw away the result\nFinish the get response without reading further\nFinish the get response without reading further\nImmediately finish the get response without reading further\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nHash of the root blob\nThe hash of the blob we are reading.\nThe hash of the blob we are reading.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a new get response\nInitiate a new bidi stream to use for the get response\nSend the request and move to the next state\nGo into the next state, reading the header\nGo into the next state, reading the header\nRead the size header, returning it and going into the …\nRead the next item, either content, an error, or the end …\nRead the next child, or finish\nFinish the get response, returning statistics\nThe current offset of the blob we are reading.\nThe current offset of the blob we are reading.\nThe ranges we have requested for the child\nThe ranges we have requested for the child\nThe ranges we have requested for the current hash.\nThe entry point of the get response machine\nThe geometry of the tree we are currently reading.\nWrite the entire blob to a slice writer.\nWrite the entire blob to a slice writer.\nWrite the entire stream for this blob to a batch writer.\nWrite the entire stream for this blob to a batch writer.\nWrite the entire blob to a slice writer and to an optional …\nWrite the entire blob to a slice writer and to an optional …\nProgress state for a single blob\nState of a single blob in transfer\nDownload has finished\nDownload is pending\nThe identifier for progress events.\nDownload is in progress\nAccumulated progress state of a transfer.\nNumber of children (only applies to hashseqs, None for raw …\nChildren if the root blob is a hash seq, empty for raw …\nWhether we are connected to a node\nChild being transferred at the moment.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a blob state by its BlobId in this transfer.\nGet the blob state currently being transferred.\nThe hash of this blob.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRanges already available locally at the time of starting …\nCreate a new, empty transfer state.\nCreate a new BlobState.\nUpdate the state with a new DownloadProgress event for …\nThe current state of the blob transfer.\nProgress ids for individual blobs.\nGet state of the root blob of this transfer.\nThe root blob of this transfer (may be a hash seq),\nThe size of this blob. Only known if the blob is partially …\nProbe for a single chunk of a blob.\nGiven a hash of a hash seq, get the hash seq and the …\nGet the claimed size of a blob from a peer.\nGet the verified size of a blob from a peer.\nGiven a sequence of sizes of children, generate a range …\nA sequence of links, backed by a Bytes object.\nIterator over the hashes in a HashSeq.\nStream over the hashes in a HashSeq.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet the hash at the given index.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nGet the underlying bytes.\nCheck if this sequence is empty.\nIterate over the hashes in this sequence.\nGet the number of hashes in this sequence.\nCreate a new sequence of hashes.\nGet the next hash in the sequence.\nParse a sequence of hashes.\nGet and remove the first hash in this sequence.\nSkip a number of hashes in the sequence.\nConvert an iterator of Results into FallibleIterator by …\nEnum of metrics for the module\nReturns the argument unchanged.\nCalls U::from(self).\nThe ALPN used with quic for the iroh bytes protocol.\nReasons to close connections or stop streams.\nA RangeSpec selecting nothing from the blob.\nA get request for a blob or collection\nA request\nMaximum message size is limited to 100MiB for now.\nAn iterator over blobs in the sequence with a non-empty …\nThe provider is terminating.\nA chunk range specification as a sequence of chunk offsets.\nA chunk range specification for a sequence of blobs.\nA request to the provider\nThe provider has received the request.\nThe RecvStream was dropped.\nUnknown error_code, can not be converted into Closed.\nCreates a RangeSpec selecting the entire blob.\nA RangeSpecSeq containing all chunks from all blobs.\nRequest a collection and all its children\nIf this range seq describes a range for a single item, …\nA RangeSpecSeq containing no chunks from any blobs in the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConvenience function to create a RangeSpecSeq from a …\nConvenience function to create a RangeSpecSeq from a …\nblake3 hash\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nChecks if this RangeSpec selects all chunks in the blob.\nChecks if this RangeSpec does not select any chunks in the …\nAn infinite iterator of range specs for blobs in the …\nAn iterator over blobs in the sequence with a non-empty …\nRequest the last chunk of a single blob\nRequest the last chunk for all children\nCreates a new RangeSpec from a range set.\nCreates a new range spec sequence from a sequence of range …\nRequest a blob or collection with specified ranges\nThe range of data to request\nThe close reason as bytes. This is a valid utf8 string …\nRequest just a single blob\nCreates a ChunkRanges from this RangeSpec.\nConvert an iterator of Results into FallibleIterator by …\nWe got an error and need to abort.\nProgress updates for the add operation.\nWe are done with the whole operation.\nA new client connected to the node.\nA request was received from a client.\nWe are done with id, and the hash is hash.\nEvents emitted by the provider informing about the current …\nTrait for sending events.\nAn item was found with name name, from now on referred to …\nA request was received from a client.\nThe requested data was not found\nWe got progress ingesting item id.\nA helper struct that combines a quinn::SendStream with …\nThe requested data was sent\nStatus of a send operation\nA new collection or tagged blob has been added\nA request was aborted because the client disconnected.\nA blob in a sequence was transferred.\nA request was completed and the data was sent to the …\nA sequence of hashes has been found and is being …\nThe stats for a transfer of a collection or blob.\nThe total duration of the transfer.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nHandle a single connection.\nHandle a single standard get request.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nStats for reading from disk.\nRead the request from the getter.\nSend an event.\nStats for sending to the client.\nSend a blob to the client.\nTransfers the collection & blob data.\nThe format of the added data.\nThe hash of the entry.\nThe hash of the created data.\nA new unique id for this entry.\nThe unique id of the entry.\nThe unique id of the entry.\nThe name of the entry.\nThe offset of the progress, in bytes.\nThe size of the entry in bytes.\nThe tag of the added data.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nThe quic connection id.\nThe format of the added data\nThe hash of the added data\nThe hash for which the client wants to receive data.\nThe hash of the blob\nThe index of the blob in the sequence.\nThe size of the custom get request.\nThe number of blobs in the sequence.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this request.\nThe size of the blob transferred.\nstatistics about the transfer\nstatistics about the transfer. This is None if the transfer\nThe tag of the added data\nWe got an error and need to abort.\nWe got an error and need to abort.\nWe are done with the whole operation.\nAn async batch interface for writing bao content items to …\nThe size of a bao file\nThe hash refers to any blob and will be exported to a …\nThe hash refers to a crate::format::collection::Collection …\nThe entry is completely available.\nProgress updates for the validate operation\nThis mode will copy the file into the database before …\nThis mode will copy the file to the target directory.\nProgress when copying the file to the store\nA custom event (info)\nA custom event (debug)\nA custom non critical error\nA custom non critical error\nA fallible but owned iterator over the entries in a store.\nDone exporting\nConsistency check ended\nWe started validating a complete entry\nThe entry type. An entry is a cheaply cloneable handle …\nWe are done with id\nAn entry that is possibly writable\nWe got progress ingesting item id.\nThe availability status of an entry in a store.\nAn unrecoverable error during GC\nAn unrecoverable error during GC\nErrors, something is very wrong\nDatabase events\nThe expected format of a hash being exported.\nThe import mode describes how files will be imported.\nExport trogress callback\nFound a path\nA GC was completed\nAn event related to GC\nA GC was started\nAn event related to GC\nThe import mode describes how files will be imported.\nProgress messages for an import operation\nInfo messages\nA generic map from hashes to bao blobs (blobs with bao …\nAn entry for one hash in a bao map\nA partial entry\nA mutable bao map.\nThe entry is not in the store.\nDone computing the outboard\nProgress when computing the outboard\nThe entry is partially available.\nWe started validating an entry\nWe are done with id\nWe got progress ingesting item id.\nProgress when copying the file to the target\nExtension of Map to add misc methods used by the rpc calls.\nLevel for generic validation messages\nDetermined the size\nStarting to export to a file\nConsistency check started\nstarted validating\nThe mutable part of a Bao store.\nVery unimportant info messages\nThis mode will try to reference the file in place and …\nThis mode will try to move the file to the target …\nA remote side told us the size, but we have insufficient …\nConsistency check update\nProgress updates for the validate operation\nWe have verified the size.\nWarnings, something is not quite right\nGet a batch writer\nlist all blobs in the database. This includes both raw …\nPerform a consistency check on the database\nCreate a new tag\nA future that resolves to a reader that can be used to …\nphysically delete the given hashes from the store.\nFind out if the data behind a hash is complete, partial, …\nSync version of entry_status, for the doc sync engine …\nThis trait method extracts a file to a local path.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nredb backed storage\nTraverse all roots recursively and mark them as live.\nTraverse all roots recursively and mark them as live.\nNotify the store that a new gc phase is about to start.\nRemove all blobs that are not marked as live.\nRemove all blobs that are not marked as live.\nGet an entry for a hash.\nGet an existing entry as an EntryMut.\nGet an existing partial entry, or create a new one.\nThe hash of the entry.\nImport data from memory.\nThis trait method imports a file from a local path.\nImport data from an async byte reader.\nImport data from an async byte reader.\nImport data from a stream of bytes.\nUpgrade a partial entry to a complete entry.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if the entry is complete.\nA full in memory database for iroh-blobs\nCreate a new BaoFileSize with the given size and …\nA future that resolves to a reader that can be used to …\nlist partial blobs in the database\nA readonly in memory database for iroh-blobs, usable for …\nSet a tag\nShutdown the store.\nThe size of the entry.\nSync the written data to permanent storage, if applicable. …\nlist all tags (collections or other explicitly added …\nCreate a temporary pin for this store\nTemp tags\nValidate the database\nValidate the database\nGet just the value, no matter if it is verified or not.\nWrite a batch of bao content items to the underlying …\nThe entry this message is about, if any\nThe level of the message\nThe message\nAn error if we failed to validate the entry.\nthe hash of the entry\nthe hash of the entry\na new unique id for this entry\nThe unique id of the entry.\nThe unique id of the entry.\na new unique id for this entry\nThe unique id of the entry.\nThe unique id of the entry.\nThe offset of the progress, in bytes.\nThe offset of the progress, in bytes.\nlocation of the entry.\nlocation of the entry.\nAvailable ranges.\nThe size of the entry, in bytes.\nThe best known size of the entry, in bytes.\nThe total number of entries to validate\nAlways inline everything\nOptions for transaction batching.\nUse BaoFileHandle as the entry type for the map.\nParameters for importing from a flat store\nOptions for inlining small complete data or outboards.\nDo not inline anything, ever.\nOptions for the file store.\nOptions for directories used by the file store.\nStorage that is using a redb database for small files and …\nTransaction batching options.\nComplete data files\nPath to the directory where data and outboard files are …\nDump the entire content of the database to stdout.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nImport from a v0 or v1 flat store, for backwards …\nInline storage options.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nLoad or create a new store.\nMaximum data size to inline.\nMaximum outboard size to inline.\nMaximum number of actor messages to batch before creating …\nMaximum duration to wait before committing a read …\nMaximum number of actor messages to batch before …\nMaximum duration to wait before committing a write …\nMetadata files such as the tags table\nCreate a new store with custom options.\nOwned data path\nOwned outboard path\nPartial data files\nPath options.\nEnsure that all operations before the sync are processed …\nPath to the directory where temp files are stored. This …\nTransform all entries in the store. This is for testing …\nUpdate the inline options.\nAn in memory entry\nA fully featured in memory database for iroh-blobs, …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCreate a new in memory store\nThe MapEntry implementation for Store.\nA readonly in memory database for iroh-blobs.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet the bytes associated with a hash, if they exist.\nimport a byte slice\nInsert a new entry into the database, and return the hash …\nInsert multiple entries into the database, and return the …\nCalls U::from(self).\nCalls U::from(self).\nCreate a new Store from a sequence of entries.\nA tag will be automatically generated\nA file\nWe got it all in memory\nThis is a general purpose Either, just like Result, except …\nThe tag is explicitly named\nOption for commands that allow setting a tag\nA file that is sparse in memory\nA tag\nA trait for things that can track liveness of blobs and …\nTrait used from temp tags to notify an abstract store that …\nA hash and format pair that is protected from garbage …\nTurn a reference to a MemOrFile into a MemOrFile of …\nGet this as a weak reference for use in temp tags\nCreate a new tag that does not exist yet.\nThe format of the pinned item\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe hash of the pinned item\nThe hash of the pinned item\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nGet the data and the valid ranges\nUtilities for working with tokio io\nTrue if this is a Mem\nKeep the item alive until the end of the process\nA local task pool with proper shutdown\nMap the file part of this MemOrFile\nMap the memory part of this MemOrFile\nGet the mem part\nCreate a new, empty SparseMemFile\nCreate a new temp tag for the given hash and format\nCalled on creation of a temp tag\nCalled on drop\nPersist the SparseMemFile to a WriteAt\nUtilities for reporting progress.\nGet the size of the MemOrFile\nCreate a new temp tag for the given hash and format\nGet the number of bytes given a set of chunk ranges and …\nTry to map the file part of this MemOrFile\nA reader that tracks the number of bytes read\nA writer that tracks the number of bytes written\nGet the number of bytes read\nGet the number of bytes written\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nGet the inner reader\nGet the inner writer\nWrap a reader in a tracking reader\nWrap a writer in a tracking writer\nTask was dropped, either due to a panic or because the …\nLocal task pool configuration\nA local task pool with proper shutdown\nA handle to a LocalPool\nLog the panic and continue\nWhat to do when a panic occurs in a pool thread\nFuture returned by LocalPoolHandle::spawn and …\nLog the panic and immediately shut down the pool.\nErrors for spawn failures\nAbort the task\nA future that resolves when the pool is cancelled\nGently shut down the pool\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a cheaply cloneable handle to the pool\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a new local pool with the given config.\nIgnore panics in pool threads\nImmediately stop polling all tasks and wait for all …\nCreate a new local pool with a single std thread.\nSpawn a task in the pool and await the result.\nSpawn a task in the pool.\nPrefix for thread names\nNumber of threads in the pool\nSpawn a task in the pool and return a future that resolves …\nSpawn a task in the pool.\nSpawn a task in the pool.\nGet the number of tasks in the queue\nA boxed progress sender\nContains the error value\nA slice writer that adds a fallible progress callback.\nA progress sender that uses a flume channel.\nAn id generator, to be combined with a progress sender.\nA no-op progress sender.\nThe message being sent.\nContains the success value\nAn error that can occur when sending progress messages.\nA result type for progress sending.\nA general purpose progress sender. This should be usable …\nA slice writer that adds a synchronous progress callback.\nThe receiver was dropped.\nTransform the message type by filter-mapping to the type …\nTransform the message type by mapping to the type of this …\nSend a message and block if the receiver is full.\nCreate a boxed progress sender to get rid of the concrete …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturn the inner writer\nReturn the inner writer.\nCreate a new progress sender from a flume sender.\nCreate a new ProgressSliceWriter from an inner writer and …\nCreate a new ProgressSliceWriter from an inner writer and …\nGet a new unique id\nReturns true if other sends on the same flume channel as …\nSend a message and wait if the receiver is full.\nTry to send a message and drop it if the receiver is full.\nTransform the message type by filter-mapping to the type …\nTransform the message type by mapping to the type of this …") \ No newline at end of file +searchState.loadedDescShard("iroh_blobs", 0, "Blobs layer for iroh.\nA format identifier\nThe hash for the empty byte range (b"").\nHash type used throughout.\nA hash and format pair\nA sequence of BLAKE3 hashes\nBlock size used by iroh, 2^4*1024 = 16KiB\nRaw blob\nBytes of the hash.\nHandle downloading blobs and collections concurrently and …\nFunctions to export data from a store\nConvert to a base32 string limited to the first 10 bytes …\nDefines data formats for HashSeq.\nThe format\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate a Hash from its raw bytes representation.\nThe client side API\nThe hash\nCreate a new hash and format pair, using the collection …\ntraits related to collections of blobs\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIs hash seq format\nIs raw format\nMetrics for iroh-blobs\nCalculate the hash of the provided bytes.\nCreate a new hash and format pair.\nProtocol for transferring content-addressed blobs and …\nThe server side API\nCreate a new hash and format pair, using the default (raw) …\nImplementations of blob stores\nConvert the hash to a hex string.\nUtility functions and types.\nAn error occurred that prevents the request from being …\nFailed to receive response from service.\nThe request was cancelled by us.\nThe download was cancelled by us\nConcurrency limits for the Downloader.\nType of connections returned by the Dialer.\nType of connections the Getter requires to perform a …\nTrait modeling a dialer. This allows for IO-less testing.\nError returned when a download could not be completed.\nFailed to download from any provider\nHandle to interact with a download request.\nThe kind of resource to download.\nA download request.\nHandle for the download services.\nAn error occurred that suggests the node should not be …\nSignals what should be done with the request when it fails.\nTrait modelling performing a single request over a …\nIdentifier for a download intent.\nNo provider nodes found\nConfiguration for retry behavior of the Downloader.\nAn error occurred in which neither the node nor the …\nCancel a download.\nGet the format of this download\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturn a future that performs the download using the given …\nGet the hash of this download\nGet the HashAndFormat pair of this download\nThe initial delay to wait before retrying a node. On …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCheck if a node is being dialed.\nMaximum number of nodes to dial concurrently for a single …\nMaximum number of requests the service performs …\nMaximum number of requests performed by a single node …\nMaximum number of open connections the service maintains.\nMaximum number of retry attempts for a node that failed to …\nCreate a new download request.\nCreate a new Downloader with the default ConcurrencyLimits …\nDeclare that certains nodes can be used to download a hash.\nGet the number of dialing nodes.\nPass a progress sender to receive progress updates.\nQueue a download.\nDial a node.\nCreate a new Downloader with custom ConcurrencyLimits and …\nWe got an error and need to abort.\nWe are done with the whole operation.\nWe finished exporting a blob\nProgress events for an export operation\nThe download part is done for this id, we are now …\nWe have made progress exporting the data.\nExport a hash to the local file system.\nExport a single blob to a file on the local filesystem.\nExport all entries of a collection, recursively, to files …\nReturns the argument unchanged.\nCalls U::from(self).\nThe hash of the entry.\nUnique id of the entry.\nUnique id of the entry that is being exported.\nUnique id of the entry that is being exported.\nOperation-specific metadata.\nThe offset of the progress, in bytes.\nThe path to the file where the data is exported.\nThe size of the entry in bytes.\nThe collection type used by iroh\nA collection of blobs\nThe header for the collection format.\nA simple store trait for loading blobs\nReturns the argument unchanged.\nCalls U::from(self).\nCheck if this collection is empty\nIterate over the blobs in this collection\nGet the number of blobs in this collection\nLoad a blob from the store\nCreate a new collection from a hash sequence and metadata.\nLoad a collection from a store given a root hash\nAdd the given blob to the collection.\nRead the collection from a get fsm.\nRead the collection and all it’s children from a get fsm.\nStore a collection in a store. returns the root hash of …\nConvert the collection to an iterator of blobs, with the …\nError when opening a stream\nError when decoding, e.g. hash mismatch\nA generic error\nError when processing a response\nError when reading from the stream\nStats about the transfer.\nError when writing the handshake or request to the stream\nThe number of bytes read\nThe number of bytes written\nFunctions that use the iroh-blobs protocol in conjunction …\nThe time it took to transfer the data\nError returned from get operations\nReturns the argument unchanged.\nReturns the argument unchanged.\nFinite state machine for get responses.\nCalls U::from(self).\nCalls U::from(self).\nTransfer rate in megabits per second\nTypes for get progress state management.\nUtilities for complex get requests.\nWe got an error and need to abort.\nAll operations finished.\nThe id of a blob in a transfer\nInformation about a the status of a blob in a store.\nA child blob (child id > 0)\nwe have the blob completely\nA new connection was established.\nWe are done with id, and the hash is hash.\nProgress updates for the get operation.\nAn item was found with hash hash, from now on referred to …\nAn item was found with hash hash, from now on referred to …\nData was found locally.\nInitial state if subscribing to a running or queued …\nwe don’t have the blob at all\nwe have the blob partially\nWe got progress ingesting item id.\nThe root blob (child id 0)\nGet information about a blob in a store.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a blob or collection into a store.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRanges that are missing locally and need to be requested.\nThe size of the blob, if known.\nGiven a partial entry, get the valid ranges.\nRanges that are valid locally.\nThe partial entry.\nThe size of the entry in bytes.\nThe ranges that are available locally.\nchild offset\nIdentifier for this blob within this download.\nNumber of children in the collection, if known.\nThe hash of the entry.\nThe hash of the entry.\nThe name of the entry.\nA new unique progress id for this entry.\nThe unique id of the entry.\nThe unique id of the entry.\nThe offset of the progress, in bytes.\nThe size of the entry in bytes.\nThe size of the entry in bytes.\nThe ranges that are available locally.\nOur download request is invalid.\nFailures for a get operation\nNetwork or IO operation failed.\nOperation failed on the local node.\nRemote behaved in a non-compliant way.\nHash not found.\nRemote has reset the connection.\nReturns the argument unchanged.\nCalls U::from(self).\nState while we are reading content\nState before reading a size header\nError that you can get from AtBlobHeader::next\nState when finishing the get response\nState of the get response machine after the handshake has …\nState after we have read all the content for a blob\nInitial state of the get response machine\nState of the get response when we start reading a child\nState of the get response when we start reading a …\nThe next state after reading a content item\nRequest is empty\nNo more children expected\nPossible next states after the handshake has been sent\nError that you can get from AtConnected::next\nDecode error that you can get once you have sent the …\nWe are done with this blob\nThe next state after the end of a blob\nA generic io error\nGeneric io error\nA generic io error\nThe hash of a leaf did not match the expected hash\nA parent was not found or invalid, so the provider stopped …\nWe expect more content\nResponse is expected to have more children\nEof when reading the size header\nA chunk was not found or invalid, so the provider stopped …\nThe hash of a parent did not match the expected hash\nA parent was not found or invalid, so the provider stopped …\nError when serializing the request\nQuinn read error when reading the size header\nError when reading from the stream\nThe serialized request is too long to be sent\nFirst response is a child\nFirst response is either a collection or a single blob\nError when writing the request to the SendStream.\nThe offset of the child we are currently reading\nConcatenate the entire response into a vec\nConcatenate the entire response into a vec\nDrain the response and throw away the result\nDrain the response and throw away the result\nFinish the get response without reading further\nFinish the get response without reading further\nImmediately finish the get response without reading further\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nHash of the root blob\nThe hash of the blob we are reading.\nThe hash of the blob we are reading.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a new get response\nInitiate a new bidi stream to use for the get response\nSend the request and move to the next state\nGo into the next state, reading the header\nGo into the next state, reading the header\nRead the size header, returning it and going into the …\nRead the next item, either content, an error, or the end …\nRead the next child, or finish\nFinish the get response, returning statistics\nThe current offset of the blob we are reading.\nThe current offset of the blob we are reading.\nThe ranges we have requested for the child\nThe ranges we have requested for the child\nThe ranges we have requested for the current hash.\nThe entry point of the get response machine\nThe geometry of the tree we are currently reading.\nWrite the entire blob to a slice writer.\nWrite the entire blob to a slice writer.\nWrite the entire stream for this blob to a batch writer.\nWrite the entire stream for this blob to a batch writer.\nWrite the entire blob to a slice writer and to an optional …\nWrite the entire blob to a slice writer and to an optional …\nProgress state for a single blob\nState of a single blob in transfer\nDownload has finished\nDownload is pending\nThe identifier for progress events.\nDownload is in progress\nAccumulated progress state of a transfer.\nNumber of children (only applies to hashseqs, None for raw …\nChildren if the root blob is a hash seq, empty for raw …\nWhether we are connected to a node\nChild being transferred at the moment.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a blob state by its BlobId in this transfer.\nGet the blob state currently being transferred.\nThe hash of this blob.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRanges already available locally at the time of starting …\nCreate a new, empty transfer state.\nCreate a new BlobState.\nUpdate the state with a new DownloadProgress event for …\nThe current state of the blob transfer.\nProgress ids for individual blobs.\nGet state of the root blob of this transfer.\nThe root blob of this transfer (may be a hash seq),\nThe size of this blob. Only known if the blob is partially …\nProbe for a single chunk of a blob.\nGiven a hash of a hash seq, get the hash seq and the …\nGet the claimed size of a blob from a peer.\nGet the verified size of a blob from a peer.\nGiven a sequence of sizes of children, generate a range …\nA sequence of links, backed by a Bytes object.\nIterator over the hashes in a HashSeq.\nStream over the hashes in a HashSeq.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet the hash at the given index.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nGet the underlying bytes.\nCheck if this sequence is empty.\nIterate over the hashes in this sequence.\nGet the number of hashes in this sequence.\nCreate a new sequence of hashes.\nGet the next hash in the sequence.\nParse a sequence of hashes.\nGet and remove the first hash in this sequence.\nSkip a number of hashes in the sequence.\nConvert an iterator of Results into FallibleIterator by …\nEnum of metrics for the module\nReturns the argument unchanged.\nCalls U::from(self).\nThe ALPN used with quic for the iroh bytes protocol.\nReasons to close connections or stop streams.\nA RangeSpec selecting nothing from the blob.\nA get request for a blob or collection\nA request\nMaximum message size is limited to 100MiB for now.\nAn iterator over blobs in the sequence with a non-empty …\nThe provider is terminating.\nA chunk range specification as a sequence of chunk offsets.\nA chunk range specification for a sequence of blobs.\nA request to the provider\nThe provider has received the request.\nThe RecvStream was dropped.\nUnknown error_code, can not be converted into Closed.\nCreates a RangeSpec selecting the entire blob.\nA RangeSpecSeq containing all chunks from all blobs.\nRequest a collection and all its children\nIf this range seq describes a range for a single item, …\nA RangeSpecSeq containing no chunks from any blobs in the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConvenience function to create a RangeSpecSeq from a …\nConvenience function to create a RangeSpecSeq from a …\nblake3 hash\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert an iterator of anything into FallibleIterator by …\nChecks if this RangeSpec selects all chunks in the blob.\nChecks if this RangeSpec does not select any chunks in the …\nAn infinite iterator of range specs for blobs in the …\nAn iterator over blobs in the sequence with a non-empty …\nRequest the last chunk of a single blob\nRequest the last chunk for all children\nCreates a new RangeSpec from a range set.\nCreates a new range spec sequence from a sequence of range …\nRequest a blob or collection with specified ranges\nThe range of data to request\nThe close reason as bytes. This is a valid utf8 string …\nRequest just a single blob\nCreates a ChunkRanges from this RangeSpec.\nConvert an iterator of Results into FallibleIterator by …\nWe got an error and need to abort.\nProgress updates for the add operation.\nWe are done with the whole operation.\nA new client connected to the node.\nA request was received from a client.\nWe are done with id, and the hash is hash.\nEvents emitted by the provider informing about the current …\nTrait for sending events.\nAn item was found with name name, from now on referred to …\nA request was received from a client.\nThe requested data was not found\nWe got progress ingesting item id.\nA helper struct that combines a quinn::SendStream with …\nThe requested data was sent\nStatus of a send operation\nA new collection or tagged blob has been added\nA request was aborted because the client disconnected.\nA blob in a sequence was transferred.\nA request was completed and the data was sent to the …\nA sequence of hashes has been found and is being …\nThe stats for a transfer of a collection or blob.\nThe total duration of the transfer.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nHandle a single connection.\nHandle a single standard get request.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nStats for reading from disk.\nRead the request from the getter.\nSend an event.\nStats for sending to the client.\nSend a blob to the client.\nTransfers the collection & blob data.\nThe format of the added data.\nThe hash of the entry.\nThe hash of the created data.\nA new unique id for this entry.\nThe unique id of the entry.\nThe unique id of the entry.\nThe name of the entry.\nThe offset of the progress, in bytes.\nThe size of the entry in bytes.\nThe tag of the added data.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nAn unique connection id.\nThe quic connection id.\nThe format of the added data\nThe hash of the added data\nThe hash for which the client wants to receive data.\nThe hash of the blob\nThe index of the blob in the sequence.\nThe size of the custom get request.\nThe number of blobs in the sequence.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this transfer request.\nAn identifier uniquely identifying this request.\nThe size of the blob transferred.\nstatistics about the transfer\nstatistics about the transfer. This is None if the transfer\nThe tag of the added data\nWe got an error and need to abort.\nWe got an error and need to abort.\nWe are done with the whole operation.\nAn async batch interface for writing bao content items to …\nThe size of a bao file\nThe hash refers to any blob and will be exported to a …\nThe hash refers to a crate::format::collection::Collection …\nThe entry is completely available.\nProgress updates for the validate operation\nThis mode will copy the file into the database before …\nThis mode will copy the file to the target directory.\nProgress when copying the file to the store\nA custom event (info)\nA custom event (debug)\nA custom non critical error\nA custom non critical error\nA fallible but owned iterator over the entries in a store.\nDone exporting\nConsistency check ended\nWe started validating a complete entry\nThe entry type. An entry is a cheaply cloneable handle …\nWe are done with id\nAn entry that is possibly writable\nWe got progress ingesting item id.\nThe availability status of an entry in a store.\nAn unrecoverable error during GC\nAn unrecoverable error during GC\nErrors, something is very wrong\nDatabase events\nThe expected format of a hash being exported.\nThe import mode describes how files will be imported.\nExport trogress callback\nFound a path\nA GC was completed\nAn event related to GC\nA GC was started\nAn event related to GC\nThe import mode describes how files will be imported.\nProgress messages for an import operation\nInfo messages\nA generic map from hashes to bao blobs (blobs with bao …\nAn entry for one hash in a bao map\nA partial entry\nA mutable bao map.\nThe entry is not in the store.\nDone computing the outboard\nProgress when computing the outboard\nThe entry is partially available.\nWe started validating an entry\nWe are done with id\nWe got progress ingesting item id.\nProgress when copying the file to the target\nExtension of Map to add misc methods used by the rpc calls.\nLevel for generic validation messages\nDetermined the size\nStarting to export to a file\nConsistency check started\nstarted validating\nThe mutable part of a Bao store.\nVery unimportant info messages\nThis mode will try to reference the file in place and …\nThis mode will try to move the file to the target …\nA remote side told us the size, but we have insufficient …\nConsistency check update\nProgress updates for the validate operation\nWe have verified the size.\nWarnings, something is not quite right\nGet a batch writer\nlist all blobs in the database. This includes both raw …\nPerform a consistency check on the database\nCreate a new tag\nA future that resolves to a reader that can be used to …\nphysically delete the given hashes from the store.\nFind out if the data behind a hash is complete, partial, …\nSync version of entry_status, for the doc sync engine …\nThis trait method extracts a file to a local path.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nredb backed storage\nTraverse all roots recursively and mark them as live.\nTraverse all roots recursively and mark them as live.\nNotify the store that a new gc phase is about to start.\nRemove all blobs that are not marked as live.\nRemove all blobs that are not marked as live.\nGet an entry for a hash.\nGet an existing entry as an EntryMut.\nGet an existing partial entry, or create a new one.\nThe hash of the entry.\nImport data from memory.\nThis trait method imports a file from a local path.\nImport data from an async byte reader.\nImport data from an async byte reader.\nImport data from a stream of bytes.\nUpgrade a partial entry to a complete entry.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if the entry is complete.\nA full in memory database for iroh-blobs\nCreate a new BaoFileSize with the given size and …\nA future that resolves to a reader that can be used to …\nlist partial blobs in the database\nA readonly in memory database for iroh-blobs, usable for …\nSet a tag\nShutdown the store.\nThe size of the entry.\nSync the written data to permanent storage, if applicable. …\nlist all tags (collections or other explicitly added …\nCreate a temporary pin for this store\nTemp tags\nValidate the database\nValidate the database\nGet just the value, no matter if it is verified or not.\nWrite a batch of bao content items to the underlying …\nThe entry this message is about, if any\nThe level of the message\nThe message\nAn error if we failed to validate the entry.\nthe hash of the entry\nthe hash of the entry\na new unique id for this entry\nThe unique id of the entry.\nThe unique id of the entry.\na new unique id for this entry\nThe unique id of the entry.\nThe unique id of the entry.\nThe offset of the progress, in bytes.\nThe offset of the progress, in bytes.\nlocation of the entry.\nlocation of the entry.\nAvailable ranges.\nThe size of the entry, in bytes.\nThe best known size of the entry, in bytes.\nThe total number of entries to validate\nAlways inline everything\nOptions for transaction batching.\nUse BaoFileHandle as the entry type for the map.\nParameters for importing from a flat store\nOptions for inlining small complete data or outboards.\nDo not inline anything, ever.\nOptions for the file store.\nOptions for directories used by the file store.\nStorage that is using a redb database for small files and …\nTransaction batching options.\nComplete data files\nPath to the directory where data and outboard files are …\nDump the entire content of the database to stdout.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nImport from a v0 or v1 flat store, for backwards …\nInline storage options.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nLoad or create a new store.\nMaximum data size to inline.\nMaximum outboard size to inline.\nMaximum number of actor messages to batch before creating …\nMaximum duration to wait before committing a read …\nMaximum number of actor messages to batch before …\nMaximum duration to wait before committing a write …\nMetadata files such as the tags table\nCreate a new store with custom options.\nOwned data path\nOwned outboard path\nPartial data files\nPath options.\nEnsure that all operations before the sync are processed …\nPath to the directory where temp files are stored. This …\nTransform all entries in the store. This is for testing …\nUpdate the inline options.\nAn in memory entry\nA fully featured in memory database for iroh-blobs, …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCreate a new in memory store\nThe MapEntry implementation for Store.\nA readonly in memory database for iroh-blobs.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet the bytes associated with a hash, if they exist.\nimport a byte slice\nInsert a new entry into the database, and return the hash …\nInsert multiple entries into the database, and return the …\nCalls U::from(self).\nCalls U::from(self).\nCreate a new Store from a sequence of entries.\nA tag will be automatically generated\nA file\nWe got it all in memory\nThis is a general purpose Either, just like Result, except …\nThe tag is explicitly named\nOption for commands that allow setting a tag\nA file that is sparse in memory\nA tag\nA trait for things that can track liveness of blobs and …\nTrait used from temp tags to notify an abstract store that …\nA hash and format pair that is protected from garbage …\nTurn a reference to a MemOrFile into a MemOrFile of …\nGet this as a weak reference for use in temp tags\nCreate a new tag that does not exist yet.\nThe format of the pinned item\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe hash of the pinned item\nThe hash of the pinned item\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nGet the data and the valid ranges\nUtilities for working with tokio io\nTrue if this is a Mem\nKeep the item alive until the end of the process\nA local task pool with proper shutdown\nMap the file part of this MemOrFile\nMap the memory part of this MemOrFile\nGet the mem part\nCreate a new, empty SparseMemFile\nCreate a new temp tag for the given hash and format\nCalled on creation of a temp tag\nCalled on drop\nPersist the SparseMemFile to a WriteAt\nUtilities for reporting progress.\nGet the size of the MemOrFile\nCreate a new temp tag for the given hash and format\nGet the number of bytes given a set of chunk ranges and …\nTry to map the file part of this MemOrFile\nA reader that tracks the number of bytes read\nA writer that tracks the number of bytes written\nGet the number of bytes read\nGet the number of bytes written\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nGet the inner reader\nGet the inner writer\nWrap a reader in a tracking reader\nWrap a writer in a tracking writer\nTask was dropped, either due to a panic or because the …\nLocal task pool configuration\nA local task pool with proper shutdown\nA handle to a LocalPool\nLog the panic and continue\nWhat to do when a panic occurs in a pool thread\nFuture returned by LocalPoolHandle::spawn and …\nLog the panic and immediately shut down the pool.\nErrors for spawn failures\nAbort the task\nA future that resolves when the pool is cancelled\nGently shut down the pool\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a cheaply cloneable handle to the pool\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a new local pool with the given config.\nIgnore panics in pool threads\nImmediately stop polling all tasks and wait for all …\nCreate a new local pool with a single std thread.\nSpawn a task in the pool and await the result.\nSpawn a task in the pool.\nPrefix for thread names\nNumber of threads in the pool\nSpawn a task in the pool and return a future that resolves …\nSpawn a task in the pool.\nSpawn a task in the pool.\nGet the number of tasks in the queue\nA progress sender that uses an async channel.\nA boxed progress sender\nContains the error value\nA slice writer that adds a fallible progress callback.\nA progress sender that uses a flume channel.\nAn id generator, to be combined with a progress sender.\nA no-op progress sender.\nThe message being sent.\nContains the success value\nAn error that can occur when sending progress messages.\nA result type for progress sending.\nA general purpose progress sender. This should be usable …\nA slice writer that adds a synchronous progress callback.\nThe receiver was dropped.\nTransform the message type by filter-mapping to the type …\nTransform the message type by mapping to the type of this …\nSend a message and block if the receiver is full.\nCreate a boxed progress sender to get rid of the concrete …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturn the inner writer\nReturn the inner writer.\nCreate a new progress sender from a flume sender.\nCreate a new progress sender from an async channel sender.\nCreate a new ProgressSliceWriter from an inner writer and …\nCreate a new ProgressSliceWriter from an inner writer and …\nGet a new unique id\nReturns true if other sends on the same flume channel as …\nReturns true if other sends on the same async_channel …\nSend a message and wait if the receiver is full.\nTry to send a message and drop it if the receiver is full.\nTransform the message type by filter-mapping to the type …\nTransform the message type by mapping to the type of this …") \ No newline at end of file diff --git a/pr/2574/docs/settings.html b/pr/2574/docs/settings.html index bf71602add..dcb803baf3 100644 --- a/pr/2574/docs/settings.html +++ b/pr/2574/docs/settings.html @@ -1 +1 @@ -Settings

    Rustdoc settings

    Back
    \ No newline at end of file +Settings

    Rustdoc settings

    Back
    \ No newline at end of file diff --git a/pr/2574/docs/src/iroh/node/rpc.rs.html b/pr/2574/docs/src/iroh/node/rpc.rs.html index 5c955f985d..61dfdd1181 100644 --- a/pr/2574/docs/src/iroh/node/rpc.rs.html +++ b/pr/2574/docs/src/iroh/node/rpc.rs.html @@ -1251,9 +1251,6 @@ 1251 1252 1253 -1254 -1255 -1256
    use std::fmt::Debug;
     use std::io;
     use std::sync::{Arc, Mutex};
    @@ -1271,13 +1268,12 @@
     use iroh_blobs::get::Stats;
     use iroh_blobs::store::{ConsistencyCheckProgress, ExportFormat, ImportProgress, MapEntry};
     use iroh_blobs::util::local_pool::LocalPoolHandle;
    -use iroh_blobs::util::progress::ProgressSender;
    +use iroh_blobs::util::progress::{AsyncChannelProgressSender, ProgressSender};
     use iroh_blobs::util::SetTagOption;
     use iroh_blobs::BlobFormat;
     use iroh_blobs::{
         provider::AddProgress,
         store::{Store as BaoStore, ValidateProgress},
    -    util::progress::FlumeProgressSender,
         HashAndFormat,
     };
     use iroh_io::AsyncSliceReader;
    @@ -1783,18 +1779,18 @@
             self,
             msg: ValidateRequest,
         ) -> impl Stream<Item = ValidateProgress> + Send + 'static {
    -        let (tx, rx) = flume::bounded(1);
    +        let (tx, rx) = async_channel::bounded(1);
             let tx2 = tx.clone();
             let db = self.inner.db.clone();
             tokio::task::spawn(async move {
                 if let Err(e) = db
    -                .validate(msg.repair, FlumeProgressSender::new(tx).boxed())
    +                .validate(msg.repair, AsyncChannelProgressSender::new(tx).boxed())
                     .await
                 {
    -                tx2.send_async(ValidateProgress::Abort(e.into())).await.ok();
    +                tx2.send(ValidateProgress::Abort(e.into())).await.ok();
                 }
             });
    -        rx.into_stream()
    +        rx
         }
     
         /// Invoke validate on the database and stream out the result
    @@ -1802,59 +1798,59 @@
             self,
             msg: ConsistencyCheckRequest,
         ) -> impl Stream<Item = ConsistencyCheckProgress> + Send + 'static {
    -        let (tx, rx) = flume::bounded(1);
    +        let (tx, rx) = async_channel::bounded(1);
             let tx2 = tx.clone();
             let db = self.inner.db.clone();
             tokio::task::spawn(async move {
                 if let Err(e) = db
    -                .consistency_check(msg.repair, FlumeProgressSender::new(tx).boxed())
    +                .consistency_check(msg.repair, AsyncChannelProgressSender::new(tx).boxed())
                     .await
                 {
    -                tx2.send_async(ConsistencyCheckProgress::Abort(e.into()))
    +                tx2.send(ConsistencyCheckProgress::Abort(e.into()))
                         .await
                         .ok();
                 }
             });
    -        rx.into_stream()
    +        rx
         }
     
         fn blob_add_from_path(self, msg: AddPathRequest) -> impl Stream<Item = AddPathResponse> {
             // provide a little buffer so that we don't slow down the sender
    -        let (tx, rx) = flume::bounded(32);
    +        let (tx, rx) = async_channel::bounded(32);
             let tx2 = tx.clone();
             self.local_pool_handle().spawn_detached(|| async move {
                 if let Err(e) = self.blob_add_from_path0(msg, tx).await {
    -                tx2.send_async(AddProgress::Abort(e.into())).await.ok();
    +                tx2.send(AddProgress::Abort(e.into())).await.ok();
                 }
             });
    -        rx.into_stream().map(AddPathResponse)
    +        rx.map(AddPathResponse)
         }
     
         fn doc_import_file(self, msg: ImportFileRequest) -> impl Stream<Item = ImportFileResponse> {
             // provide a little buffer so that we don't slow down the sender
    -        let (tx, rx) = flume::bounded(32);
    +        let (tx, rx) = async_channel::bounded(32);
             let tx2 = tx.clone();
             self.local_pool_handle().spawn_detached(|| async move {
                 if let Err(e) = self.doc_import_file0(msg, tx).await {
    -                tx2.send_async(crate::client::docs::ImportProgress::Abort(e.into()))
    +                tx2.send(crate::client::docs::ImportProgress::Abort(e.into()))
                         .await
                         .ok();
                 }
             });
    -        rx.into_stream().map(ImportFileResponse)
    +        rx.map(ImportFileResponse)
         }
     
         async fn doc_import_file0(
             self,
             msg: ImportFileRequest,
    -        progress: flume::Sender<crate::client::docs::ImportProgress>,
    +        progress: async_channel::Sender<crate::client::docs::ImportProgress>,
         ) -> anyhow::Result<()> {
             let docs = self.docs().ok_or_else(|| anyhow!("docs are disabled"))?;
             use crate::client::docs::ImportProgress as DocImportProgress;
             use iroh_blobs::store::ImportMode;
             use std::collections::BTreeMap;
     
    -        let progress = FlumeProgressSender::new(progress);
    +        let progress = AsyncChannelProgressSender::new(progress);
             let names = Arc::new(Mutex::new(BTreeMap::new()));
             // convert import progress to provide progress
             let import_progress = progress.clone().with_filter_map(move |x| match x {
    @@ -1916,23 +1912,23 @@
         }
     
         fn doc_export_file(self, msg: ExportFileRequest) -> impl Stream<Item = ExportFileResponse> {
    -        let (tx, rx) = flume::bounded(1024);
    +        let (tx, rx) = async_channel::bounded(1024);
             let tx2 = tx.clone();
             self.local_pool_handle().spawn_detached(|| async move {
                 if let Err(e) = self.doc_export_file0(msg, tx).await {
    -                tx2.send_async(ExportProgress::Abort(e.into())).await.ok();
    +                tx2.send(ExportProgress::Abort(e.into())).await.ok();
                 }
             });
    -        rx.into_stream().map(ExportFileResponse)
    +        rx.map(ExportFileResponse)
         }
     
         async fn doc_export_file0(
             self,
             msg: ExportFileRequest,
    -        progress: flume::Sender<ExportProgress>,
    +        progress: async_channel::Sender<ExportProgress>,
         ) -> anyhow::Result<()> {
             let _docs = self.docs().ok_or_else(|| anyhow!("docs are disabled"))?;
    -        let progress = FlumeProgressSender::new(progress);
    +        let progress = AsyncChannelProgressSender::new(progress);
             let ExportFileRequest { entry, path, mode } = msg;
             let key = bytes::Bytes::from(entry.key().to_vec());
             let export_progress = progress.clone().with_map(move |mut x| {
    @@ -1956,11 +1952,11 @@
         }
     
         fn blob_download(self, msg: BlobDownloadRequest) -> impl Stream<Item = DownloadResponse> {
    -        let (sender, receiver) = flume::bounded(1024);
    +        let (sender, receiver) = async_channel::bounded(1024);
             let db = self.inner.db.clone();
             let downloader = self.inner.downloader.clone();
             let endpoint = self.inner.endpoint.clone();
    -        let progress = FlumeProgressSender::new(sender);
    +        let progress = AsyncChannelProgressSender::new(sender);
             self.local_pool_handle().spawn_detached(move || async move {
                 if let Err(err) = download(&db, endpoint, &downloader, msg, progress.clone()).await {
                     progress
    @@ -1970,12 +1966,12 @@
                 }
             });
     
    -        receiver.into_stream().map(DownloadResponse)
    +        receiver.map(DownloadResponse)
         }
     
         fn blob_export(self, msg: ExportRequest) -> impl Stream<Item = ExportResponse> {
    -        let (tx, rx) = flume::bounded(1024);
    -        let progress = FlumeProgressSender::new(tx);
    +        let (tx, rx) = async_channel::bounded(1024);
    +        let progress = AsyncChannelProgressSender::new(tx);
             self.local_pool_handle().spawn_detached(move || async move {
                 let res = iroh_blobs::export::export(
                     &self.inner.db,
    @@ -1991,18 +1987,18 @@
                     Err(err) => progress.send(ExportProgress::Abort(err.into())).await.ok(),
                 };
             });
    -        rx.into_stream().map(ExportResponse)
    +        rx.map(ExportResponse)
         }
     
         async fn blob_add_from_path0(
             self,
             msg: AddPathRequest,
    -        progress: flume::Sender<AddProgress>,
    +        progress: async_channel::Sender<AddProgress>,
         ) -> anyhow::Result<()> {
             use iroh_blobs::store::ImportMode;
             use std::collections::BTreeMap;
     
    -        let progress = FlumeProgressSender::new(progress);
    +        let progress = AsyncChannelProgressSender::new(progress);
             let names = Arc::new(Mutex::new(BTreeMap::new()));
             // convert import progress to provide progress
             let import_progress = progress.clone().with_filter_map(move |x| match x {
    @@ -2179,25 +2175,25 @@
             msg: AddStreamRequest,
             stream: impl Stream<Item = AddStreamUpdate> + Send + Unpin + 'static,
         ) -> impl Stream<Item = AddStreamResponse> {
    -        let (tx, rx) = flume::bounded(32);
    +        let (tx, rx) = async_channel::bounded(32);
             let this = self.clone();
     
             self.local_pool_handle().spawn_detached(|| async move {
                 if let Err(err) = this.blob_add_stream0(msg, stream, tx.clone()).await {
    -                tx.send_async(AddProgress::Abort(err.into())).await.ok();
    +                tx.send(AddProgress::Abort(err.into())).await.ok();
                 }
             });
     
    -        rx.into_stream().map(AddStreamResponse)
    +        rx.map(AddStreamResponse)
         }
     
         async fn blob_add_stream0(
             self,
             msg: AddStreamRequest,
             stream: impl Stream<Item = AddStreamUpdate> + Send + Unpin + 'static,
    -        progress: flume::Sender<AddProgress>,
    +        progress: async_channel::Sender<AddProgress>,
         ) -> anyhow::Result<()> {
    -        let progress = FlumeProgressSender::new(progress);
    +        let progress = AsyncChannelProgressSender::new(progress);
     
             let stream = stream.map(|item| match item {
                 AddStreamUpdate::Chunk(chunk) => Ok(chunk),
    @@ -2249,24 +2245,24 @@
             self,
             req: ReadAtRequest,
         ) -> impl Stream<Item = RpcResult<ReadAtResponse>> + Send + 'static {
    -        let (tx, rx) = flume::bounded(RPC_BLOB_GET_CHANNEL_CAP);
    +        let (tx, rx) = async_channel::bounded(RPC_BLOB_GET_CHANNEL_CAP);
             let db = self.inner.db.clone();
             self.local_pool_handle().spawn_detached(move || async move {
                 if let Err(err) = read_loop(req, db, tx.clone(), RPC_BLOB_GET_CHUNK_SIZE).await {
    -                tx.send_async(RpcResult::Err(err.into())).await.ok();
    +                tx.send(RpcResult::Err(err.into())).await.ok();
                 }
             });
     
             async fn read_loop<D: iroh_blobs::store::Store>(
                 req: ReadAtRequest,
                 db: D,
    -            tx: flume::Sender<RpcResult<ReadAtResponse>>,
    +            tx: async_channel::Sender<RpcResult<ReadAtResponse>>,
                 max_chunk_size: usize,
             ) -> anyhow::Result<()> {
                 let entry = db.get(&req.hash).await?;
                 let entry = entry.ok_or_else(|| anyhow!("Blob not found"))?;
                 let size = entry.size();
    -            tx.send_async(Ok(ReadAtResponse::Entry {
    +            tx.send(Ok(ReadAtResponse::Entry {
                     size,
                     is_complete: entry.is_complete(),
                 }))
    @@ -2293,7 +2289,7 @@
                     let chunk = reader.read_at(req.offset + read, chunk_size).await?;
                     let chunk_len = chunk.len();
                     if !chunk.is_empty() {
    -                    tx.send_async(Ok(ReadAtResponse::Data { chunk })).await?;
    +                    tx.send(Ok(ReadAtResponse::Data { chunk })).await?;
                     }
                     if chunk_len < chunk_size {
                         break;
    @@ -2304,7 +2300,7 @@
                 Ok(())
             }
     
    -        rx.into_stream()
    +        rx
         }
     
         fn node_connections(
    @@ -2312,17 +2308,15 @@
             _: ConnectionsRequest,
         ) -> impl Stream<Item = RpcResult<ConnectionsResponse>> + Send + 'static {
             // provide a little buffer so that we don't slow down the sender
    -        let (tx, rx) = flume::bounded(32);
    +        let (tx, rx) = async_channel::bounded(32);
             let mut conn_infos = self.inner.endpoint.connection_infos();
             conn_infos.sort_by_key(|n| n.node_id.to_string());
             self.local_pool_handle().spawn_detached(|| async move {
                 for conn_info in conn_infos {
    -                tx.send_async(Ok(ConnectionsResponse { conn_info }))
    -                    .await
    -                    .ok();
    +                tx.send(Ok(ConnectionsResponse { conn_info })).await.ok();
                 }
             });
    -        rx.into_stream()
    +        rx
         }
     
         // This method is called as an RPC method, which have to be async
    @@ -2381,7 +2375,7 @@
         endpoint: Endpoint,
         downloader: &Downloader,
         req: BlobDownloadRequest,
    -    progress: FlumeProgressSender<DownloadProgress>,
    +    progress: AsyncChannelProgressSender<DownloadProgress>,
     ) -> Result<()>
     where
         D: iroh_blobs::store::Store,
    @@ -2431,7 +2425,7 @@
         downloader: &Downloader,
         hash_and_format: HashAndFormat,
         nodes: Vec<NodeAddr>,
    -    progress: FlumeProgressSender<DownloadProgress>,
    +    progress: AsyncChannelProgressSender<DownloadProgress>,
     ) -> Result<Stats> {
         let mut node_ids = Vec::with_capacity(nodes.len());
         let mut any_added = false;
    @@ -2455,7 +2449,7 @@
         endpoint: Endpoint,
         hash_and_format: HashAndFormat,
         nodes: Vec<NodeAddr>,
    -    progress: FlumeProgressSender<DownloadProgress>,
    +    progress: AsyncChannelProgressSender<DownloadProgress>,
     ) -> Result<Stats>
     where
         D: BaoStore,
    @@ -2488,7 +2482,7 @@
         endpoint: Endpoint,
         hash_and_format: HashAndFormat,
         node: NodeAddr,
    -    progress: FlumeProgressSender<DownloadProgress>,
    +    progress: AsyncChannelProgressSender<DownloadProgress>,
     ) -> Result<Stats>
     where
         D: BaoStore,
    diff --git a/pr/2574/docs/src/iroh_blobs/downloader/progress.rs.html b/pr/2574/docs/src/iroh_blobs/downloader/progress.rs.html
    index 0ef0651b01..102ff9d8cc 100644
    --- a/pr/2574/docs/src/iroh_blobs/downloader/progress.rs.html
    +++ b/pr/2574/docs/src/iroh_blobs/downloader/progress.rs.html
    @@ -206,13 +206,13 @@
     
     use crate::{
         get::{db::DownloadProgress, progress::TransferState},
    -    util::progress::{FlumeProgressSender, IdGenerator, ProgressSendError, ProgressSender},
    +    util::progress::{AsyncChannelProgressSender, IdGenerator, ProgressSendError, ProgressSender},
     };
     
     use super::DownloadKind;
     
     /// The channel that can be used to subscribe to progress updates.
    -pub type ProgressSubscriber = FlumeProgressSender<DownloadProgress>;
    +pub type ProgressSubscriber = AsyncChannelProgressSender<DownloadProgress>;
     
     /// Track the progress of downloads.
     ///
    diff --git a/pr/2574/docs/src/iroh_blobs/util/progress.rs.html b/pr/2574/docs/src/iroh_blobs/util/progress.rs.html
    index e0a0097840..3c7d59b354 100644
    --- a/pr/2574/docs/src/iroh_blobs/util/progress.rs.html
    +++ b/pr/2574/docs/src/iroh_blobs/util/progress.rs.html
    @@ -628,6 +628,134 @@
     628
     629
     630
    +631
    +632
    +633
    +634
    +635
    +636
    +637
    +638
    +639
    +640
    +641
    +642
    +643
    +644
    +645
    +646
    +647
    +648
    +649
    +650
    +651
    +652
    +653
    +654
    +655
    +656
    +657
    +658
    +659
    +660
    +661
    +662
    +663
    +664
    +665
    +666
    +667
    +668
    +669
    +670
    +671
    +672
    +673
    +674
    +675
    +676
    +677
    +678
    +679
    +680
    +681
    +682
    +683
    +684
    +685
    +686
    +687
    +688
    +689
    +690
    +691
    +692
    +693
    +694
    +695
    +696
    +697
    +698
    +699
    +700
    +701
    +702
    +703
    +704
    +705
    +706
    +707
    +708
    +709
    +710
    +711
    +712
    +713
    +714
    +715
    +716
    +717
    +718
    +719
    +720
    +721
    +722
    +723
    +724
    +725
    +726
    +727
    +728
    +729
    +730
    +731
    +732
    +733
    +734
    +735
    +736
    +737
    +738
    +739
    +740
    +741
    +742
    +743
    +744
    +745
    +746
    +747
    +748
    +749
    +750
    +751
    +752
    +753
    +754
    +755
    +756
    +757
    +758
     
    //! Utilities for reporting progress.
     //!
     //! The main entry point is the [ProgressSender] trait.
    @@ -1148,6 +1276,98 @@
         }
     }
     
    +/// A progress sender that uses an async channel.
    +pub struct AsyncChannelProgressSender<T> {
    +    sender: async_channel::Sender<T>,
    +    id: std::sync::Arc<std::sync::atomic::AtomicU64>,
    +}
    +
    +impl<T> std::fmt::Debug for AsyncChannelProgressSender<T> {
    +    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    +        f.debug_struct("AsyncChannelProgressSender")
    +            .field("id", &self.id)
    +            .field("sender", &self.sender)
    +            .finish()
    +    }
    +}
    +
    +impl<T> Clone for AsyncChannelProgressSender<T> {
    +    fn clone(&self) -> Self {
    +        Self {
    +            sender: self.sender.clone(),
    +            id: self.id.clone(),
    +        }
    +    }
    +}
    +
    +impl<T> AsyncChannelProgressSender<T> {
    +    /// Create a new progress sender from an async channel sender.
    +    pub fn new(sender: async_channel::Sender<T>) -> Self {
    +        Self {
    +            sender,
    +            id: std::sync::Arc::new(std::sync::atomic::AtomicU64::new(0)),
    +        }
    +    }
    +
    +    /// Returns true if `other` sends on the same `async_channel` channel as `self`.
    +    pub fn same_channel(&self, other: &AsyncChannelProgressSender<T>) -> bool {
    +        same_channel(&self.sender, &other.sender)
    +    }
    +}
    +
    +/// Given a value that is aligned and sized like a pointer, return the value of
    +/// the pointer as a usize.
    +fn get_as_ptr<T>(value: &T) -> Option<usize> {
    +    use std::mem;
    +    if mem::size_of::<T>() == std::mem::size_of::<usize>()
    +        && mem::align_of::<T>() == mem::align_of::<usize>()
    +    {
    +        // SAFETY: size and alignment requirements are checked and met
    +        unsafe { Some(mem::transmute_copy(value)) }
    +    } else {
    +        None
    +    }
    +}
    +
    +fn same_channel<T>(a: &async_channel::Sender<T>, b: &async_channel::Sender<T>) -> bool {
    +    // This relies on async_channel::Sender being just a newtype wrapper around
    +    // an Arc<Channel<T>>, so if two senders point to the same channel, the
    +    // pointers will be the same.
    +    get_as_ptr(a).unwrap() == get_as_ptr(b).unwrap()
    +}
    +
    +impl<T> IdGenerator for AsyncChannelProgressSender<T> {
    +    fn new_id(&self) -> u64 {
    +        self.id.fetch_add(1, std::sync::atomic::Ordering::SeqCst)
    +    }
    +}
    +
    +impl<T: Send + Sync + 'static> ProgressSender for AsyncChannelProgressSender<T> {
    +    type Msg = T;
    +
    +    async fn send(&self, msg: Self::Msg) -> std::result::Result<(), ProgressSendError> {
    +        self.sender
    +            .send(msg)
    +            .await
    +            .map_err(|_| ProgressSendError::ReceiverDropped)
    +    }
    +
    +    fn try_send(&self, msg: Self::Msg) -> std::result::Result<(), ProgressSendError> {
    +        match self.sender.try_send(msg) {
    +            Ok(_) => Ok(()),
    +            Err(async_channel::TrySendError::Full(_)) => Ok(()),
    +            Err(async_channel::TrySendError::Closed(_)) => Err(ProgressSendError::ReceiverDropped),
    +        }
    +    }
    +
    +    fn blocking_send(&self, msg: Self::Msg) -> std::result::Result<(), ProgressSendError> {
    +        match self.sender.send_blocking(msg) {
    +            Ok(_) => Ok(()),
    +            Err(_) => Err(ProgressSendError::ReceiverDropped),
    +        }
    +    }
    +}
    +
     /// An error that can occur when sending progress messages.
     ///
     /// Really the only error that can occur is if the receiver is dropped.
    @@ -1258,4 +1478,40 @@
             self.0.set_len(size).await
         }
     }
    +
    +#[cfg(test)]
    +mod tests {
    +    use std::sync::Arc;
    +
    +    use super::*;
    +
    +    #[test]
    +    fn get_as_ptr_works() {
    +        struct Wrapper(Arc<u64>);
    +        let x = Wrapper(Arc::new(1u64));
    +        assert_eq!(
    +            get_as_ptr(&x).unwrap(),
    +            Arc::as_ptr(&x.0) as usize - 2 * std::mem::size_of::<usize>()
    +        );
    +    }
    +
    +    #[test]
    +    fn get_as_ptr_wrong_use() {
    +        struct Wrapper(#[allow(dead_code)] u8);
    +        let x = Wrapper(1);
    +        assert!(get_as_ptr(&x).is_none());
    +    }
    +
    +    #[test]
    +    fn test_sender_is_ptr() {
    +        assert_eq!(
    +            std::mem::size_of::<usize>(),
    +            std::mem::size_of::<async_channel::Sender<u8>>()
    +        );
    +        assert_eq!(
    +            std::mem::align_of::<usize>(),
    +            std::mem::align_of::<async_channel::Sender<u8>>()
    +        );
    +    }
    +}
     
    \ No newline at end of file diff --git a/pr/2574/docs/src/iroh_docs/store/fs/tables.rs.html b/pr/2574/docs/src/iroh_docs/store/fs/tables.rs.html index bdad8e6609..8f9bedb2e2 100644 --- a/pr/2574/docs/src/iroh_docs/store/fs/tables.rs.html +++ b/pr/2574/docs/src/iroh_docs/store/fs/tables.rs.html @@ -183,6 +183,7 @@ 183 184 185 +186
    #![allow(missing_docs)]
     // Table Definitions
     
    @@ -303,7 +304,8 @@
         pub records_by_key: Table<'tx, RecordsByKeyId<'static>, ()>,
         pub namespaces: Table<'tx, &'static [u8; 32], (u8, &'static [u8; 32])>,
         pub latest_per_author: Table<'tx, LatestPerAuthorKey<'static>, LatestPerAuthorValue<'static>>,
    -    pub namespace_peers: MultimapTable<'tx, &'static [u8; 32], (Nanos, &'static PeerIdBytes)>,
    +    #[debug("MultimapTable")]
    +    pub namespace_peers: MultimapTable<'tx, &'static [u8; 32], (Nanos, &'static PeerIdBytes)>,
         pub download_policy: Table<'tx, &'static [u8; 32], &'static [u8]>,
         pub authors: Table<'tx, &'static [u8; 32], &'static [u8; 32]>,
     }
    diff --git a/pr/2574/docs/src/iroh_net/endpoint.rs.html b/pr/2574/docs/src/iroh_net/endpoint.rs.html
    index 198fdb82fa..e26e449850 100644
    --- a/pr/2574/docs/src/iroh_net/endpoint.rs.html
    +++ b/pr/2574/docs/src/iroh_net/endpoint.rs.html
    @@ -1549,6 +1549,7 @@
     1549
     1550
     1551
    +1552
     
    //! The [`Endpoint`] allows establishing connections to other iroh-net nodes.
     //!
     //! The [`Endpoint`] is the main API interface to manage a local iroh-net node.  It allows
    @@ -2449,6 +2450,7 @@
     #[pin_project::pin_project]
     pub struct Accept<'a> {
         #[pin]
    +    #[debug("quinn::Accept")]
         inner: quinn::Accept<'a>,
         magic_ep: Endpoint,
     }
    diff --git a/pr/2574/docs/trait.impl/core/clone/trait.Clone.js b/pr/2574/docs/trait.impl/core/clone/trait.Clone.js
    index 2ee4578a29..490fe23fdd 100644
    --- a/pr/2574/docs/trait.impl/core/clone/trait.Clone.js
    +++ b/pr/2574/docs/trait.impl/core/clone/trait.Clone.js
    @@ -1,7 +1,7 @@
     (function() {var implementors = {
     "iroh":[["impl Clone for BlobStatus"],["impl Clone for DownloadMode"],["impl Clone for LiveEvent"],["impl Clone for ShareMode"],["impl Clone for DocsStorage"],["impl Clone for GcPolicy"],["impl Clone for RpcStatus"],["impl Clone for IrohPaths"],["impl Clone for Client"],["impl Clone for AddOutcome"],["impl Clone for Client"],["impl Clone for DownloadOptions"],["impl Clone for DownloadOutcome"],["impl Clone for ExportOutcome"],["impl Clone for Client"],["impl Clone for Doc"],["impl Clone for Entry"],["impl Clone for ExportFileOutcome"],["impl Clone for ImportFileOutcome"],["impl Clone for Client"],["impl Clone for SubscribeOpts"],["impl Clone for Client"],["impl Clone for Iroh"],["impl Clone for RpcService"],["impl Clone for Client"],["impl Clone for Metrics"],["impl Clone for DataSource"],["impl Clone for PathContent"],["impl Clone for ProgressEmitter"],["impl<D: Clone> Clone for Node<D>"],["impl<T> Clone for Progress<T>"]],
     "iroh_base":[["impl Clone for BlobFormat"],["impl Clone for AddrInfoOptions"],["impl Clone for Hash"],["impl Clone for HashAndFormat"],["impl Clone for PublicKey"],["impl Clone for SecretKey"],["impl Clone for AddrInfo"],["impl Clone for NodeAddr"],["impl Clone for RelayUrl"],["impl Clone for RpcError"],["impl Clone for BlobTicket"],["impl Clone for NodeTicket"]],
    -"iroh_blobs":[["impl Clone for DownloadError"],["impl Clone for ExportProgress"],["impl Clone for BlobId"],["impl Clone for DownloadProgress"],["impl Clone for BlobProgress"],["impl Clone for Closed"],["impl Clone for Request"],["impl Clone for Event"],["impl Clone for SentStatus"],["impl Clone for BaoBlobSize"],["impl Clone for EntryStatus"],["impl Clone for Event"],["impl Clone for ExportFormat"],["impl Clone for ExportMode"],["impl Clone for ImportMode"],["impl Clone for ReportLevel"],["impl Clone for SetTagOption"],["impl Clone for PanicMode"],["impl Clone for ProgressSendError"],["impl Clone for DownloadKind"],["impl Clone for DownloadRequest"],["impl Clone for Downloader"],["impl Clone for IntentId"],["impl Clone for Collection"],["impl Clone for BlobState"],["impl Clone for TransferState"],["impl Clone for Stats"],["impl Clone for HashSeq"],["impl Clone for HashSeqIter"],["impl Clone for HashSeqStream"],["impl Clone for Metrics"],["impl Clone for GetRequest"],["impl Clone for RangeSpec"],["impl Clone for RangeSpecSeq"],["impl Clone for TransferStats"],["impl Clone for BatchOptions"],["impl Clone for InlineOptions"],["impl Clone for Options"],["impl Clone for PathOptions"],["impl Clone for Store"],["impl Clone for Entry"],["impl Clone for Store"],["impl Clone for Entry"],["impl Clone for Store"],["impl Clone for Config"],["impl Clone for LocalPoolHandle"],["impl Clone for Tag"],["impl<D: Clone + BaoStore> Clone for BlobInfo<D>
    where\n D::EntryMut: Clone,
    "],["impl<I: ProgressSender, U: Send + Sync + 'static, F: Fn(U) -> Option<I::Msg> + Clone + Send + Sync + 'static> Clone for WithFilterMap<I, U, F>"],["impl<I: ProgressSender, U: Send + Sync + 'static, F: Fn(U) -> I::Msg + Clone + Send + Sync + 'static> Clone for WithMap<I, U, F>"],["impl<T> Clone for BoxedProgressSender<T>"],["impl<T> Clone for FlumeProgressSender<T>"],["impl<T> Clone for IgnoreProgressSender<T>"]], +"iroh_blobs":[["impl Clone for DownloadError"],["impl Clone for ExportProgress"],["impl Clone for BlobId"],["impl Clone for DownloadProgress"],["impl Clone for BlobProgress"],["impl Clone for Closed"],["impl Clone for Request"],["impl Clone for Event"],["impl Clone for SentStatus"],["impl Clone for BaoBlobSize"],["impl Clone for EntryStatus"],["impl Clone for Event"],["impl Clone for ExportFormat"],["impl Clone for ExportMode"],["impl Clone for ImportMode"],["impl Clone for ReportLevel"],["impl Clone for SetTagOption"],["impl Clone for PanicMode"],["impl Clone for ProgressSendError"],["impl Clone for DownloadKind"],["impl Clone for DownloadRequest"],["impl Clone for Downloader"],["impl Clone for IntentId"],["impl Clone for Collection"],["impl Clone for BlobState"],["impl Clone for TransferState"],["impl Clone for Stats"],["impl Clone for HashSeq"],["impl Clone for HashSeqIter"],["impl Clone for HashSeqStream"],["impl Clone for Metrics"],["impl Clone for GetRequest"],["impl Clone for RangeSpec"],["impl Clone for RangeSpecSeq"],["impl Clone for TransferStats"],["impl Clone for BatchOptions"],["impl Clone for InlineOptions"],["impl Clone for Options"],["impl Clone for PathOptions"],["impl Clone for Store"],["impl Clone for Entry"],["impl Clone for Store"],["impl Clone for Entry"],["impl Clone for Store"],["impl Clone for Config"],["impl Clone for LocalPoolHandle"],["impl Clone for Tag"],["impl<D: Clone + BaoStore> Clone for BlobInfo<D>
    where\n D::EntryMut: Clone,
    "],["impl<I: ProgressSender, U: Send + Sync + 'static, F: Fn(U) -> Option<I::Msg> + Clone + Send + Sync + 'static> Clone for WithFilterMap<I, U, F>"],["impl<I: ProgressSender, U: Send + Sync + 'static, F: Fn(U) -> I::Msg + Clone + Send + Sync + 'static> Clone for WithMap<I, U, F>"],["impl<T> Clone for AsyncChannelProgressSender<T>"],["impl<T> Clone for BoxedProgressSender<T>"],["impl<T> Clone for FlumeProgressSender<T>"],["impl<T> Clone for IgnoreProgressSender<T>"]], "iroh_dns_server":[["impl Clone for CertMode"],["impl Clone for DnsConfig"],["impl Clone for DnsHandler"],["impl Clone for Handle"],["impl Clone for HttpConfig"],["impl Clone for HttpsConfig"],["impl Clone for Metrics"],["impl Clone for AppState"]], "iroh_docs":[["impl Clone for LiveEvent"],["impl Clone for Origin"],["impl Clone for SyncReason"],["impl Clone for AbortReason"],["impl Clone for AcceptOutcome"],["impl Clone for AuthorFilter"],["impl Clone for DownloadPolicy"],["impl Clone for FilterKind"],["impl Clone for ImportNamespaceOutcome"],["impl Clone for KeyFilter"],["impl Clone for SortBy"],["impl Clone for SortDirection"],["impl Clone for Capability"],["impl Clone for CapabilityKind"],["impl Clone for ContentStatus"],["impl Clone for Event"],["impl Clone for InsertOrigin"],["impl Clone for OpenState"],["impl Clone for SyncHandle"],["impl Clone for Engine"],["impl Clone for SyncEvent"],["impl Clone for Metrics"],["impl Clone for SyncFinished"],["impl Clone for Timings"],["impl Clone for FlatQuery"],["impl Clone for MemPublicKeyStore"],["impl Clone for Query"],["impl Clone for SingleLatestPerKeyQuery"],["impl Clone for Author"],["impl Clone for AuthorId"],["impl Clone for AuthorPublicKey"],["impl Clone for DocTicket"],["impl Clone for NamespaceId"],["impl Clone for NamespacePublicKey"],["impl Clone for NamespaceSecret"],["impl Clone for AuthorHeads"],["impl Clone for Entry"],["impl Clone for EntrySignature"],["impl Clone for Record"],["impl Clone for RecordIdentifier"],["impl Clone for SignedEntry"],["impl Clone for SyncOutcome"]], "iroh_gossip":[["impl Clone for GossipEvent"],["impl Clone for DeliveryScope"],["impl Clone for Scope"],["impl Clone for GossipDispatcher"],["impl Clone for Message"],["impl Clone for Metrics"],["impl Clone for Gossip"],["impl Clone for TopicId"],["impl Clone for PeerData"],["impl Clone for Config"],["impl Clone for Stats"],["impl<PI: Clone> Clone for InEvent<PI>"],["impl<PI: Clone> Clone for OutEvent<PI>"],["impl<PI: Clone> Clone for Command<PI>"],["impl<PI: Clone> Clone for Event<PI>"],["impl<PI: Clone> Clone for InEvent<PI>"],["impl<PI: Clone> Clone for Message<PI>"],["impl<PI: Clone> Clone for Timer<PI>"],["impl<PI: Clone> Clone for Message<PI>"],["impl<PI: Clone> Clone for Timer<PI>"]], diff --git a/pr/2574/docs/trait.impl/core/convert/trait.From.js b/pr/2574/docs/trait.impl/core/convert/trait.From.js index fd13f7dab5..1a72418b61 100644 --- a/pr/2574/docs/trait.impl/core/convert/trait.From.js +++ b/pr/2574/docs/trait.impl/core/convert/trait.From.js @@ -3,6 +3,6 @@ "iroh_base":[["impl From<&[u8; 32]> for Hash"],["impl From<(PublicKey, Option<RelayUrl>, &[SocketAddr])> for NodeAddr"],["impl From<FromHexError> for HexOrBase32ParseError"],["impl From<HexOrBase32ParseError> for KeyParsingError"],["impl From<BlobFormat> for u64"],["impl From<Error> for RpcError"],["impl From<Error> for RpcError"],["impl From<Url> for RelayUrl"],["impl From<DecodeError> for HexOrBase32ParseError"],["impl From<DecodeError> for Error"],["impl From<Hash> for Hash"],["impl From<Hash> for [u8; 32]"],["impl From<PublicKey> for NodeAddr"],["impl From<RelayUrl> for Url"],["impl From<Error> for KeyParsingError"],["impl From<Error> for Error"],["impl From<Hash> for Hash"],["impl From<SigningKey> for SecretKey"],["impl From<VerifyingKey> for PublicKey"],["impl From<[u8; 32]> for Hash"],["impl From<[u8; 32]> for SecretKey"]], "iroh_blobs":[["impl From<&str> for Tag"],["impl From<(AtBlobContent, Result<BaoContentItem, DecodeError>)> for BlobContentNext"],["impl From<BlobId> for u64"],["impl From<GetResponseError> for Error"],["impl From<GetError> for FailureAction"],["impl From<AtBlobHeaderNextError> for GetError"],["impl From<AtBlobHeaderNextError> for DecodeError"],["impl From<AtBlobHeaderNextError> for Error"],["impl From<ConnectedNextError> for GetError"],["impl From<ConnectedNextError> for Error"],["impl From<DecodeError> for GetError"],["impl From<DecodeError> for Error"],["impl From<Closed> for VarInt"],["impl From<SpawnError> for Error"],["impl From<ProgressSendError> for GetError"],["impl From<ProgressSendError> for Error"],["impl From<String> for Tag"],["impl From<Vec<u8>> for SparseMemFile"],["impl From<Error> for GetError"],["impl From<Error> for DecodeError"],["impl From<Error> for GetResponseError"],["impl From<DownloadKind> for HashAndFormat"],["impl From<AtClosing> for ConnectedNext"],["impl From<AtClosing> for EndBlobNext"],["impl From<AtEndBlob> for BlobContentNext"],["impl From<AtStartChild> for ConnectedNext"],["impl From<AtStartChild> for EndBlobNext"],["impl From<AtStartRoot> for ConnectedNext"],["impl From<HashSeq> for Bytes"],["impl From<GetRequest> for Request"],["impl From<HashAndFormat> for DownloadKind"],["impl From<Tag> for Bytes"],["impl From<Bytes> for Tag"],["impl From<ConnectionError> for GetResponseError"],["impl From<ConnectionError> for GetError"],["impl From<DecodeError> for GetResponseError"],["impl From<DecodeError> for DecodeError"],["impl From<Error> for GetResponseError"],["impl From<ReadError> for GetResponseError"],["impl From<ReadError> for GetError"],["impl From<WriteError> for GetResponseError"],["impl From<WriteError> for GetError"],["impl From<WriteError> for ConnectedNextError"]], "iroh_docs":[["impl From<&Author> for AuthorPublicKey"],["impl From<&AuthorPublicKey> for AuthorId"],["impl From<&NamespacePublicKey> for NamespaceId"],["impl From<&NamespaceSecret> for NamespacePublicKey"],["impl From<&[u8; 32]> for AuthorId"],["impl From<&[u8; 32]> for NamespaceId"],["impl From<CapabilityKind> for u8"],["impl From<ValidationFailure> for InsertError"],["impl From<Error> for OpenError"],["impl From<QueryBuilder<FlatQuery>> for Query"],["impl From<QueryBuilder<SingleLatestPerKeyQuery>> for Query"],["impl From<Author> for AuthorId"],["impl From<Author> for AuthorPublicKey"],["impl From<AuthorId> for AuthorFilter"],["impl From<AuthorId> for [u8; 32]"],["impl From<AuthorPublicKey> for AuthorId"],["impl From<NamespaceId> for Capability"],["impl From<NamespaceId> for [u8; 32]"],["impl From<NamespacePublicKey> for NamespaceId"],["impl From<NamespaceSecret> for Capability"],["impl From<NamespaceSecret> for NamespaceId"],["impl From<NamespaceSecret> for NamespacePublicKey"],["impl From<ReadOnly> for InsertError"],["impl From<SignedEntry> for Entry"],["impl From<SigningKey> for Author"],["impl From<SigningKey> for NamespaceSecret"],["impl From<VerifyingKey> for AuthorPublicKey"],["impl From<VerifyingKey> for NamespacePublicKey"],["impl From<[u8; 32]> for AuthorId"],["impl From<[u8; 32]> for NamespaceId"],["impl<T: AsRef<[u8]>> From<T> for KeyFilter"]], -"iroh_gossip":[["impl From<Event<PublicKey>> for GossipEvent"],["impl<T: Into<[u8; 32]>> From<T> for TopicId"]], +"iroh_gossip":[["impl From<Event<PublicKey>> for GossipEvent"],["impl<T: Into<[u8; 32]>> From<T> for TopicId"]], "iroh_net":[["impl From<&NodeInfo> for TxtAttrs<IrohAttr>"],["impl From<&TxtAttrs<IrohAttr>> for NodeInfo"],["impl From<&Peer> for DiscoveryItem"],["impl From<IpAddr> for IpFamily"],["impl From<IpFamily> for Domain"],["impl From<Error> for ClientError"],["impl From<Error> for PingError"],["impl From<NodeInfo> for AddrInfo"],["impl From<NodeInfo> for NodeAddr"],["impl From<TxtAttrs<IrohAttr>> for NodeInfo"],["impl From<NodeInfo> for NodeAddr"],["impl From<ParseError> for Error"],["impl From<VerificationError> for Error"],["impl From<Error> for ClientError"],["impl From<Error> for ClientError"],["impl From<Error> for ClientError"],["impl From<Error> for GenError"],["impl From<Error> for ParseError"],["impl From<Error> for VerificationError"],["impl From<JoinError> for ClientError"],["impl From<SurgeError> for PingError"],["impl From<UdpSocket> for UdpSocket"],["impl<T> From<JoinHandle<T>> for AbortingJoinHandle<T>"],["impl<T> From<T> for ConcurrentDiscovery
    where\n T: IntoIterator<Item = Box<dyn Discovery>>,
    "],["impl<T: Clone + Send + 'static> From<JoinHandle<T>> for SharedAbortingJoinHandle<T>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/pr/2574/docs/trait.impl/core/fmt/trait.Debug.js b/pr/2574/docs/trait.impl/core/fmt/trait.Debug.js index d6388ea4f1..f951fbb44b 100644 --- a/pr/2574/docs/trait.impl/core/fmt/trait.Debug.js +++ b/pr/2574/docs/trait.impl/core/fmt/trait.Debug.js @@ -1,12 +1,12 @@ (function() {var implementors = { -"iroh":[["impl Debug for BlobStatus"],["impl Debug for DownloadMode"],["impl Debug for WrapOption"],["impl Debug for ImportProgress"],["impl Debug for LiveEvent"],["impl Debug for ShareMode"],["impl Debug for DiscoveryConfig"],["impl Debug for DocsStorage"],["impl Debug for GcPolicy"],["impl Debug for RpcStatus"],["impl Debug for StorageConfig"],["impl Debug for BaoValidationError"],["impl Debug for IrohPaths"],["impl Debug for Client"],["impl Debug for AddOutcome"],["impl Debug for AddProgress
    where\n Arc<AtomicU64>: Debug,
    "],["impl Debug for BlobInfo"],["impl Debug for Client"],["impl Debug for CollectionInfo"],["impl Debug for DownloadOptions"],["impl Debug for DownloadOutcome"],["impl Debug for DownloadProgress
    where\n Arc<AtomicU64>: Debug,
    "],["impl Debug for ExportOutcome"],["impl Debug for ExportProgress
    where\n Arc<AtomicU64>: Debug,
    "],["impl Debug for IncompleteBlobInfo"],["impl Debug for Reader
    where\n u64: Debug,\n bool: Debug,
    "],["impl Debug for Client"],["impl Debug for Doc"],["impl Debug for Entry"],["impl Debug for ExportFileOutcome"],["impl Debug for ExportFileProgress"],["impl Debug for ImportFileOutcome"],["impl Debug for ImportFileProgress"],["impl Debug for Client"],["impl Debug for SubscribeOpts"],["impl Debug for SubscribeRequest"],["impl Debug for Client"],["impl Debug for NodeStatus"],["impl Debug for Iroh"],["impl Debug for RpcService"],["impl Debug for Client"],["impl Debug for TagInfo"],["impl Debug for Metrics"],["impl Debug for DataSource"],["impl Debug for PathContent"],["impl Debug for ProgressEmitter"],["impl<D> Debug for Builder<D>"],["impl<D> Debug for ProtocolBuilder<D>
    where\n Arc<NodeInner<D>>: Debug,\n IrohServerEndpoint: Debug,\n ProtocolMap: Debug,\n GcPolicy: Debug,\n Option<PathBuf>: Debug,\n LocalPool: Debug,
    "],["impl<D: Debug> Debug for Node<D>"],["impl<R: Debug + AsyncRead + Unpin> Debug for ProgressAsyncReader<R>"],["impl<T: Debug> Debug for Progress<T>"],["impl<W: Debug> Debug for ProgressWriter<W>"]], +"iroh":[["impl Debug for BlobStatus"],["impl Debug for DownloadMode"],["impl Debug for WrapOption"],["impl Debug for ImportProgress"],["impl Debug for LiveEvent"],["impl Debug for ShareMode"],["impl Debug for DiscoveryConfig"],["impl Debug for DocsStorage"],["impl Debug for GcPolicy"],["impl Debug for RpcStatus"],["impl Debug for StorageConfig"],["impl Debug for BaoValidationError"],["impl Debug for IrohPaths"],["impl Debug for Client"],["impl Debug for AddOutcome"],["impl Debug for AddProgress"],["impl Debug for BlobInfo"],["impl Debug for Client"],["impl Debug for CollectionInfo"],["impl Debug for DownloadOptions"],["impl Debug for DownloadOutcome"],["impl Debug for DownloadProgress"],["impl Debug for ExportOutcome"],["impl Debug for ExportProgress"],["impl Debug for IncompleteBlobInfo"],["impl Debug for Reader"],["impl Debug for Client"],["impl Debug for Doc"],["impl Debug for Entry"],["impl Debug for ExportFileOutcome"],["impl Debug for ExportFileProgress"],["impl Debug for ImportFileOutcome"],["impl Debug for ImportFileProgress"],["impl Debug for Client"],["impl Debug for SubscribeOpts"],["impl Debug for SubscribeRequest"],["impl Debug for Client"],["impl Debug for NodeStatus"],["impl Debug for Iroh"],["impl Debug for RpcService"],["impl Debug for Client"],["impl Debug for TagInfo"],["impl Debug for Metrics"],["impl Debug for DataSource"],["impl Debug for PathContent"],["impl Debug for ProgressEmitter"],["impl<D> Debug for Builder<D>
    where\n D: Map + Debug,
    "],["impl<D> Debug for ProtocolBuilder<D>
    where\n Arc<NodeInner<D>>: Debug,
    "],["impl<D: Debug> Debug for Node<D>"],["impl<R: Debug + AsyncRead + Unpin> Debug for ProgressAsyncReader<R>"],["impl<T: Debug> Debug for Progress<T>"],["impl<W: Debug> Debug for ProgressWriter<W>"]], "iroh_base":[["impl Debug for HexOrBase32ParseError"],["impl Debug for BlobFormat"],["impl Debug for KeyParsingError"],["impl Debug for AddrInfoOptions"],["impl Debug for Error"],["impl Debug for Hash"],["impl Debug for HashAndFormat"],["impl Debug for PublicKey"],["impl Debug for SecretKey"],["impl Debug for SharedSecret"],["impl Debug for AddrInfo"],["impl Debug for NodeAddr"],["impl Debug for RelayUrl"],["impl Debug for RpcError"],["impl Debug for BlobTicket"],["impl Debug for NodeTicket"]], -"iroh_blobs":[["impl Debug for DownloadError"],["impl Debug for FailureAction"],["impl Debug for ExportProgress"],["impl Debug for BlobId"],["impl Debug for DownloadProgress"],["impl Debug for GetResponseError"],["impl Debug for GetError"],["impl Debug for AtBlobHeaderNextError"],["impl Debug for BlobContentNext"],["impl Debug for ConnectedNext"],["impl Debug for ConnectedNextError"],["impl Debug for DecodeError"],["impl Debug for EndBlobNext"],["impl Debug for BlobProgress"],["impl Debug for Closed"],["impl Debug for Request"],["impl Debug for AddProgress"],["impl Debug for Event"],["impl Debug for SentStatus"],["impl Debug for BaoBlobSize"],["impl Debug for ConsistencyCheckProgress"],["impl Debug for EntryStatus"],["impl Debug for Event"],["impl Debug for ExportFormat"],["impl Debug for ExportMode"],["impl Debug for ExportProgress"],["impl Debug for GcMarkEvent"],["impl Debug for GcSweepEvent"],["impl Debug for ImportMode"],["impl Debug for ImportProgress"],["impl Debug for ReportLevel"],["impl Debug for ValidateProgress"],["impl Debug for SetTagOption
    where\n Tag: Debug,
    "],["impl Debug for PanicMode"],["impl Debug for SpawnError"],["impl Debug for ProgressSendError"],["impl Debug for ConcurrencyLimits"],["impl Debug for DownloadHandle"],["impl Debug for DownloadKind"],["impl Debug for DownloadRequest"],["impl Debug for Downloader"],["impl Debug for IntentId"],["impl Debug for RetryConfig"],["impl Debug for Collection"],["impl Debug for AtBlobContent"],["impl Debug for AtBlobHeader"],["impl Debug for AtClosing"],["impl Debug for AtConnected"],["impl Debug for AtEndBlob"],["impl Debug for AtInitial"],["impl Debug for AtStartChild"],["impl Debug for AtStartRoot"],["impl Debug for BlobState"],["impl Debug for TransferState"],["impl Debug for Stats"],["impl Debug for HashSeq"],["impl Debug for HashSeqIter"],["impl Debug for HashSeqStream"],["impl Debug for Metrics"],["impl Debug for GetRequest"],["impl Debug for RangeSpec"],["impl Debug for RangeSpecSeq"],["impl Debug for UnknownErrorCode"],["impl Debug for TransferStats"],["impl Debug for BatchOptions"],["impl Debug for FlatStorePaths"],["impl Debug for InlineOptions"],["impl Debug for Options"],["impl Debug for PathOptions"],["impl Debug for Store"],["impl Debug for Entry"],["impl Debug for Store"],["impl Debug for Entry"],["impl Debug for Store"],["impl Debug for Config"],["impl Debug for LocalPool"],["impl Debug for LocalPoolHandle"],["impl Debug for SparseMemFile
    where\n RangeSet2<usize>: Debug,
    "],["impl Debug for Tag"],["impl Debug for TempTag"],["impl<'a> Debug for NonEmptyRequestRangeSpecIter<'a>"],["impl<D: Debug + BaoStore> Debug for BlobInfo<D>
    where\n D::EntryMut: Debug,
    "],["impl<E: Debug> Debug for ResponseWriter<E>"],["impl<I: ProgressSender, U: Send + Sync + 'static, F: Fn(U) -> Option<I::Msg> + Clone + Send + Sync + 'static> Debug for WithFilterMap<I, U, F>"],["impl<I: ProgressSender, U: Send + Sync + 'static, F: Fn(U) -> I::Msg + Clone + Send + Sync + 'static> Debug for WithMap<I, U, F>"],["impl<M: Debug, F: Debug> Debug for MemOrFile<M, F>"],["impl<R: Debug> Debug for TrackingReader<R>"],["impl<T> Debug for BoxedProgressSender<T>"],["impl<T> Debug for FlumeProgressSender<T>"],["impl<T> Debug for IgnoreProgressSender<T>"],["impl<T: Debug> Debug for Run<T>"],["impl<W: Debug> Debug for TrackingWriter<W>"],["impl<W: Debug, F: Debug> Debug for FallibleProgressSliceWriter<W, F>"],["impl<W: Debug, F: Debug> Debug for ProgressSliceWriter<W, F>"]], +"iroh_blobs":[["impl Debug for DownloadError"],["impl Debug for FailureAction"],["impl Debug for ExportProgress"],["impl Debug for BlobId"],["impl Debug for DownloadProgress"],["impl Debug for GetResponseError"],["impl Debug for GetError"],["impl Debug for AtBlobHeaderNextError"],["impl Debug for BlobContentNext"],["impl Debug for ConnectedNext"],["impl Debug for ConnectedNextError"],["impl Debug for DecodeError"],["impl Debug for EndBlobNext"],["impl Debug for BlobProgress"],["impl Debug for Closed"],["impl Debug for Request"],["impl Debug for AddProgress"],["impl Debug for Event"],["impl Debug for SentStatus"],["impl Debug for BaoBlobSize"],["impl Debug for ConsistencyCheckProgress"],["impl Debug for EntryStatus"],["impl Debug for Event"],["impl Debug for ExportFormat"],["impl Debug for ExportMode"],["impl Debug for ExportProgress"],["impl Debug for GcMarkEvent"],["impl Debug for GcSweepEvent"],["impl Debug for ImportMode"],["impl Debug for ImportProgress"],["impl Debug for ReportLevel"],["impl Debug for ValidateProgress"],["impl Debug for SetTagOption"],["impl Debug for PanicMode"],["impl Debug for SpawnError"],["impl Debug for ProgressSendError"],["impl Debug for ConcurrencyLimits"],["impl Debug for DownloadHandle"],["impl Debug for DownloadKind"],["impl Debug for DownloadRequest"],["impl Debug for Downloader"],["impl Debug for IntentId"],["impl Debug for RetryConfig"],["impl Debug for Collection"],["impl Debug for AtBlobContent"],["impl Debug for AtBlobHeader"],["impl Debug for AtClosing"],["impl Debug for AtConnected"],["impl Debug for AtEndBlob"],["impl Debug for AtInitial"],["impl Debug for AtStartChild"],["impl Debug for AtStartRoot"],["impl Debug for BlobState"],["impl Debug for TransferState"],["impl Debug for Stats"],["impl Debug for HashSeq"],["impl Debug for HashSeqIter"],["impl Debug for HashSeqStream"],["impl Debug for Metrics"],["impl Debug for GetRequest"],["impl Debug for RangeSpec"],["impl Debug for RangeSpecSeq"],["impl Debug for UnknownErrorCode"],["impl Debug for TransferStats"],["impl Debug for BatchOptions"],["impl Debug for FlatStorePaths"],["impl Debug for InlineOptions"],["impl Debug for Options"],["impl Debug for PathOptions"],["impl Debug for Store"],["impl Debug for Entry"],["impl Debug for Store"],["impl Debug for Entry"],["impl Debug for Store"],["impl Debug for Config"],["impl Debug for LocalPool"],["impl Debug for LocalPoolHandle"],["impl Debug for SparseMemFile"],["impl Debug for Tag"],["impl Debug for TempTag"],["impl<'a> Debug for NonEmptyRequestRangeSpecIter<'a>"],["impl<D: Debug + BaoStore> Debug for BlobInfo<D>
    where\n D::EntryMut: Debug,
    "],["impl<E: Debug> Debug for ResponseWriter<E>"],["impl<I: ProgressSender, U: Send + Sync + 'static, F: Fn(U) -> Option<I::Msg> + Clone + Send + Sync + 'static> Debug for WithFilterMap<I, U, F>"],["impl<I: ProgressSender, U: Send + Sync + 'static, F: Fn(U) -> I::Msg + Clone + Send + Sync + 'static> Debug for WithMap<I, U, F>"],["impl<M: Debug, F: Debug> Debug for MemOrFile<M, F>"],["impl<R: Debug> Debug for TrackingReader<R>"],["impl<T> Debug for AsyncChannelProgressSender<T>"],["impl<T> Debug for BoxedProgressSender<T>"],["impl<T> Debug for FlumeProgressSender<T>"],["impl<T> Debug for IgnoreProgressSender<T>"],["impl<T: Debug> Debug for Run<T>"],["impl<W: Debug> Debug for TrackingWriter<W>"],["impl<W: Debug, F: Debug> Debug for FallibleProgressSliceWriter<W, F>"],["impl<W: Debug, F: Debug> Debug for ProgressSliceWriter<W, F>"]], "iroh_dns_server":[["impl Debug for BootstrapOption"],["impl Debug for CertMode"],["impl Debug for Config"],["impl Debug for MainlineConfig"],["impl Debug for MetricsConfig"],["impl Debug for DnsConfig"],["impl Debug for DnsHandler"],["impl Debug for Handle"],["impl Debug for HttpConfig"],["impl Debug for HttpsConfig"],["impl Debug for Metrics"]], -"iroh_docs":[["impl Debug for DefaultAuthorStorage"],["impl Debug for LiveEvent"],["impl Debug for Origin"],["impl Debug for SyncReason"],["impl Debug for AbortReason"],["impl Debug for AcceptError"],["impl Debug for AcceptOutcome"],["impl Debug for ConnectError"],["impl Debug for AuthorFilter"],["impl Debug for DownloadPolicy"],["impl Debug for FilterKind"],["impl Debug for ImportNamespaceOutcome"],["impl Debug for KeyFilter"],["impl Debug for OpenError"],["impl Debug for SortBy"],["impl Debug for SortDirection"],["impl Debug for Capability"],["impl Debug for CapabilityError"],["impl Debug for CapabilityKind"],["impl Debug for ContentStatus"],["impl Debug for Event"],["impl Debug for InsertError"],["impl Debug for InsertOrigin"],["impl Debug for ValidationFailure"],["impl Debug for OpenOpts"],["impl Debug for OpenState"],["impl Debug for SyncHandle"],["impl Debug for DefaultAuthor"],["impl Debug for Engine
    where\n Endpoint: Debug,\n SyncHandle: Debug,\n Arc<DefaultAuthor>: Debug,\n Sender<ToLiveActor>: Debug,\n SharedAbortingJoinHandle<()>: Debug,
    "],["impl Debug for SyncEvent"],["impl Debug for Metrics"],["impl Debug for SyncFinished"],["impl Debug for Timings"],["impl Debug for ContentHashesIterator"],["impl Debug for ParentIterator"],["impl Debug for Store"],["impl Debug for FlatQuery"],["impl Debug for MemPublicKeyStore"],["impl Debug for Query"],["impl Debug for SingleLatestPerKeyQuery"],["impl Debug for Author"],["impl Debug for AuthorId"],["impl Debug for AuthorPublicKey"],["impl Debug for DocTicket"],["impl Debug for NamespaceId"],["impl Debug for NamespacePublicKey"],["impl Debug for NamespaceSecret"],["impl Debug for AuthorHeads"],["impl Debug for Entry"],["impl Debug for EntrySignature"],["impl Debug for ReadOnly"],["impl Debug for Record"],["impl Debug for RecordIdentifier"],["impl Debug for ReplicaInfo
    where\n Capability: Debug,\n Subscribers: Debug,\n bool: Debug,
    "],["impl Debug for SignedEntry"],["impl Debug for SyncOutcome"],["impl<'a> Debug for LatestIterator<'a>"],["impl<'a> Debug for RecordsRange<'a>"],["impl<'a> Debug for StoreInstance<'a>"],["impl<'a, I> Debug for Replica<'a, I>
    where\n StoreInstance<'a>: Debug,\n I: Debug,
    "],["impl<K: Debug> Debug for QueryBuilder<K>"]], -"iroh_gossip":[["impl Debug for Command"],["impl Debug for Event"],["impl Debug for GossipEvent"],["impl Debug for DeliveryScope"],["impl Debug for Scope"],["impl Debug for MessageKind"],["impl Debug for GossipDispatcher"],["impl Debug for Message"],["impl Debug for SubscribeOptions"],["impl Debug for Metrics"],["impl Debug for Gossip"],["impl Debug for JoinTopicFut"],["impl Debug for TopicId"],["impl Debug for PeerData"],["impl Debug for Config"],["impl Debug for Stats"],["impl<K: Debug, V: Debug> Debug for TimeBoundCache<K, V>"],["impl<PI> Debug for Command<PI>
    where\n Vec<PI>: Debug,\n Scope: Debug,
    "],["impl<PI: Debug> Debug for InEvent<PI>"],["impl<PI: Debug> Debug for OutEvent<PI>"],["impl<PI: Debug> Debug for Event<PI>"],["impl<PI: Debug> Debug for InEvent<PI>"],["impl<PI: Debug> Debug for Message<PI>"],["impl<PI: Debug> Debug for OutEvent<PI>"],["impl<PI: Debug> Debug for Timer<PI>"],["impl<PI: Debug> Debug for Message<PI>"],["impl<PI: Debug> Debug for Timer<PI>"],["impl<PI: Debug, R: Debug> Debug for State<PI, R>"],["impl<PI: Debug, R: Debug> Debug for State<PI, R>"],["impl<T: Debug> Debug for Timers<T>"],["impl<T: Debug> Debug for TimerMap<T>"]], +"iroh_docs":[["impl Debug for DefaultAuthorStorage"],["impl Debug for LiveEvent"],["impl Debug for Origin"],["impl Debug for SyncReason"],["impl Debug for AbortReason"],["impl Debug for AcceptError"],["impl Debug for AcceptOutcome"],["impl Debug for ConnectError"],["impl Debug for AuthorFilter"],["impl Debug for DownloadPolicy"],["impl Debug for FilterKind"],["impl Debug for ImportNamespaceOutcome"],["impl Debug for KeyFilter"],["impl Debug for OpenError"],["impl Debug for SortBy"],["impl Debug for SortDirection"],["impl Debug for Capability"],["impl Debug for CapabilityError"],["impl Debug for CapabilityKind"],["impl Debug for ContentStatus"],["impl Debug for Event"],["impl Debug for InsertError"],["impl Debug for InsertOrigin"],["impl Debug for ValidationFailure"],["impl Debug for OpenOpts"],["impl Debug for OpenState"],["impl Debug for SyncHandle"],["impl Debug for DefaultAuthor"],["impl Debug for Engine"],["impl Debug for SyncEvent"],["impl Debug for Metrics"],["impl Debug for SyncFinished"],["impl Debug for Timings"],["impl Debug for ContentHashesIterator"],["impl Debug for ParentIterator"],["impl Debug for Store"],["impl Debug for FlatQuery"],["impl Debug for MemPublicKeyStore"],["impl Debug for Query"],["impl Debug for SingleLatestPerKeyQuery"],["impl Debug for Author"],["impl Debug for AuthorId"],["impl Debug for AuthorPublicKey"],["impl Debug for DocTicket"],["impl Debug for NamespaceId"],["impl Debug for NamespacePublicKey"],["impl Debug for NamespaceSecret"],["impl Debug for AuthorHeads"],["impl Debug for Entry"],["impl Debug for EntrySignature"],["impl Debug for ReadOnly"],["impl Debug for Record"],["impl Debug for RecordIdentifier"],["impl Debug for ReplicaInfo"],["impl Debug for SignedEntry"],["impl Debug for SyncOutcome"],["impl<'a> Debug for LatestIterator<'a>"],["impl<'a> Debug for RecordsRange<'a>"],["impl<'a> Debug for StoreInstance<'a>"],["impl<'a, I> Debug for Replica<'a, I>
    where\n I: Debug,
    "],["impl<K: Debug> Debug for QueryBuilder<K>"]], +"iroh_gossip":[["impl Debug for Command"],["impl Debug for Event"],["impl Debug for GossipEvent"],["impl Debug for DeliveryScope"],["impl Debug for Scope"],["impl Debug for MessageKind"],["impl Debug for GossipDispatcher"],["impl Debug for Message"],["impl Debug for SubscribeOptions"],["impl Debug for Metrics"],["impl Debug for Gossip"],["impl Debug for JoinTopicFut"],["impl Debug for TopicId"],["impl Debug for PeerData"],["impl Debug for Config"],["impl Debug for Stats"],["impl<K: Debug, V: Debug> Debug for TimeBoundCache<K, V>"],["impl<PI> Debug for Command<PI>
    where\n Vec<PI>: Debug,
    "],["impl<PI: Debug> Debug for InEvent<PI>"],["impl<PI: Debug> Debug for OutEvent<PI>"],["impl<PI: Debug> Debug for Event<PI>"],["impl<PI: Debug> Debug for InEvent<PI>"],["impl<PI: Debug> Debug for Message<PI>"],["impl<PI: Debug> Debug for OutEvent<PI>"],["impl<PI: Debug> Debug for Timer<PI>"],["impl<PI: Debug> Debug for Message<PI>"],["impl<PI: Debug> Debug for Timer<PI>"],["impl<PI: Debug, R: Debug> Debug for State<PI, R>"],["impl<PI: Debug, R: Debug> Debug for State<PI, R>"],["impl<T: Debug> Debug for Timers<T>"],["impl<T: Debug> Debug for TimerMap<T>"]], "iroh_metrics":[["impl Debug for Core"],["impl Debug for Counter"],["impl Debug for UsageReporter"],["impl Debug for UsageStatsReport"]], -"iroh_net":[["impl Debug for IrohAttr"],["impl Debug for ConnectionType"],["impl Debug for ControlMsg"],["impl Debug for DirectAddrType"],["impl Debug for IpFamily"],["impl Debug for PingError"],["impl Debug for ClientError"],["impl Debug for ReceivedMessage
    where\n PublicKey: Debug,\n [u8; 8]: Debug,\n Option<String>: Debug,\n Duration: Debug,
    "],["impl Debug for RelayMode"],["impl Debug for Protocol"],["impl Debug for MaybeTlsStream"],["impl Debug for Error"],["impl Debug for Dialer"],["impl Debug for DnsDiscovery"],["impl Debug for LocalSwarmDiscovery"],["impl Debug for PkarrPublisher
    where\n NodeId: Debug,\n Watchable<Option<NodeInfo>>: Debug,\n Arc<JoinHandle<()>>: Debug,
    "],["impl Debug for PkarrRelayClient"],["impl Debug for PkarrResolver"],["impl Debug for ConcurrentDiscovery"],["impl Debug for DiscoveryItem"],["impl Debug for NodeInfo"],["impl Debug for Builder"],["impl Debug for Connecting
    where\n Connecting: Debug,\n Endpoint: Debug,
    "],["impl Debug for NodeInfo"],["impl Debug for ConnectionTypeStream"],["impl Debug for DirectAddr"],["impl Debug for DirectAddrInfo"],["impl Debug for DirectAddrsStream"],["impl Debug for Endpoint
    where\n Handle: Debug,\n Endpoint: Debug,\n Arc<RttHandle>: Debug,\n CancellationToken: Debug,\n Arc<StaticConfig>: Debug,
    "],["impl Debug for Metrics"],["impl Debug for LocalAddresses"],["impl Debug for CallbackToken"],["impl Debug for Monitor"],["impl Debug for UdpSocket"],["impl Debug for Client"],["impl Debug for Metrics"],["impl Debug for RelayLatencies"],["impl Debug for Report"],["impl Debug for Pinger"],["impl Debug for Client"],["impl Debug for Config"],["impl Debug for Metrics"],["impl Debug for ProbeOutput"],["impl Debug for Service"],["impl Debug for ClientConnHandler"],["impl Debug for Limits"],["impl Debug for Metrics"],["impl Debug for Server"],["impl Debug for ServerActorTask"],["impl Debug for StunConfig"],["impl Debug for Client"],["impl Debug for ClientBuilder"],["impl Debug for ClientReceiver"],["impl Debug for Conn"],["impl Debug for RelayMap"],["impl Debug for RelayNode"],["impl Debug for CleanupDropGuard"],["impl Debug for DnsPkarrServer"],["impl Debug for GenError"],["impl Debug for P2pExtension"],["impl Debug for ParseError"],["impl Debug for VerificationError"],["impl Debug for CancelOnDrop
    where\n &'static str: Debug,
    "],["impl<'a> Debug for Accept<'a>
    where\n Accept<'a>: Debug,\n Endpoint: Debug,
    "],["impl<'a> Debug for P2pCertificate<'a>"],["impl<EC: Debug + Debug, EA: Debug + Debug> Debug for RelayConfig<EC, EA>"],["impl<EC: Debug + Debug, EA: Debug + Debug> Debug for ServerConfig<EC, EA>"],["impl<EC: Debug + Debug, EA: Debug + Debug> Debug for TlsConfig<EC, EA>"],["impl<EC: Debug, EA: Debug> Debug for CertConfig<EC, EA>
    where\n PrivateKey: Debug,\n Vec<Certificate>: Debug,
    "],["impl<T, U> Debug for Chain<T, U>
    where\n T: Debug,\n U: Debug,
    "],["impl<T: Debug + Clone + Send> Debug for SharedAbortingJoinHandle<T>"],["impl<T: Debug> Debug for TxtAttrs<T>"],["impl<T: Debug> Debug for AbortingJoinHandle<T>"],["impl<T: Debug> Debug for MaybeFuture<T>"]], +"iroh_net":[["impl Debug for IrohAttr"],["impl Debug for ConnectionType"],["impl Debug for ControlMsg"],["impl Debug for DirectAddrType"],["impl Debug for IpFamily"],["impl Debug for PingError"],["impl Debug for ClientError"],["impl Debug for ReceivedMessage"],["impl Debug for RelayMode"],["impl Debug for Protocol"],["impl Debug for MaybeTlsStream"],["impl Debug for Error"],["impl Debug for Dialer"],["impl Debug for DnsDiscovery"],["impl Debug for LocalSwarmDiscovery"],["impl Debug for PkarrPublisher"],["impl Debug for PkarrRelayClient"],["impl Debug for PkarrResolver"],["impl Debug for ConcurrentDiscovery"],["impl Debug for DiscoveryItem"],["impl Debug for NodeInfo"],["impl Debug for Builder"],["impl Debug for Connecting"],["impl Debug for NodeInfo"],["impl Debug for ConnectionTypeStream"],["impl Debug for DirectAddr"],["impl Debug for DirectAddrInfo"],["impl Debug for DirectAddrsStream"],["impl Debug for Endpoint"],["impl Debug for Metrics"],["impl Debug for LocalAddresses"],["impl Debug for CallbackToken"],["impl Debug for Monitor"],["impl Debug for UdpSocket"],["impl Debug for Client"],["impl Debug for Metrics"],["impl Debug for RelayLatencies"],["impl Debug for Report"],["impl Debug for Pinger"],["impl Debug for Client"],["impl Debug for Config"],["impl Debug for Metrics"],["impl Debug for ProbeOutput"],["impl Debug for Service"],["impl Debug for ClientConnHandler"],["impl Debug for Limits"],["impl Debug for Metrics"],["impl Debug for Server"],["impl Debug for ServerActorTask"],["impl Debug for StunConfig"],["impl Debug for Client"],["impl Debug for ClientBuilder"],["impl Debug for ClientReceiver"],["impl Debug for Conn"],["impl Debug for RelayMap"],["impl Debug for RelayNode"],["impl Debug for CleanupDropGuard"],["impl Debug for DnsPkarrServer"],["impl Debug for GenError"],["impl Debug for P2pExtension"],["impl Debug for ParseError"],["impl Debug for VerificationError"],["impl Debug for CancelOnDrop"],["impl<'a> Debug for Accept<'a>"],["impl<'a> Debug for P2pCertificate<'a>"],["impl<EC: Debug + Debug, EA: Debug + Debug> Debug for RelayConfig<EC, EA>"],["impl<EC: Debug + Debug, EA: Debug + Debug> Debug for ServerConfig<EC, EA>"],["impl<EC: Debug + Debug, EA: Debug + Debug> Debug for TlsConfig<EC, EA>"],["impl<EC: Debug, EA: Debug> Debug for CertConfig<EC, EA>"],["impl<T, U> Debug for Chain<T, U>
    where\n T: Debug,\n U: Debug,
    "],["impl<T: Debug + Clone + Send> Debug for SharedAbortingJoinHandle<T>"],["impl<T: Debug> Debug for TxtAttrs<T>"],["impl<T: Debug> Debug for AbortingJoinHandle<T>"],["impl<T: Debug> Debug for MaybeFuture<T>"]], "iroh_net_bench":[["impl Debug for Commands"],["impl Debug for Opt"],["impl Debug for Stats"],["impl Debug for StreamStats"],["impl Debug for TransferResult"],["impl Debug for Opt"]], "iroh_relay":[["impl Debug for CertMode"],["impl Debug for StunMetrics"],["impl Debug for Cli"],["impl Debug for Config"],["impl Debug for Limits"],["impl Debug for TlsConfig"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/pr/2574/docs/trait.impl/core/fmt/trait.Display.js b/pr/2574/docs/trait.impl/core/fmt/trait.Display.js index 0192fc5b1a..9dbaa77b9d 100644 --- a/pr/2574/docs/trait.impl/core/fmt/trait.Display.js +++ b/pr/2574/docs/trait.impl/core/fmt/trait.Display.js @@ -1,9 +1,9 @@ (function() {var implementors = { -"iroh":[["impl Display for LiveEvent"],["impl Display for ShareMode"],["impl Display for BaoValidationError"],["impl Display for IrohPaths"]], -"iroh_base":[["impl Display for HexOrBase32ParseError"],["impl Display for BlobFormat"],["impl Display for KeyParsingError"],["impl Display for AddrInfoOptions"],["impl Display for Error"],["impl Display for Hash"],["impl Display for HashAndFormat"],["impl Display for PublicKey"],["impl Display for SecretKey"],["impl Display for RelayUrl
    where\n Url: Display,
    "],["impl Display for RpcError"],["impl Display for BlobTicket"],["impl Display for NodeTicket"]], -"iroh_blobs":[["impl Display for DownloadError"],["impl Display for GetResponseError"],["impl Display for GetError"],["impl Display for AtBlobHeaderNextError"],["impl Display for ConnectedNextError"],["impl Display for DecodeError"],["impl Display for ReportLevel"],["impl Display for SpawnError"],["impl Display for ProgressSendError"],["impl Display for DownloadKind"],["impl Display for IntentId
    where\n u64: Display,
    "],["impl Display for UnknownErrorCode"],["impl Display for Tag"]], +"iroh":[["impl Display for LiveEvent"],["impl Display for ShareMode"],["impl Display for BaoValidationError"],["impl Display for IrohPaths"]], +"iroh_base":[["impl Display for HexOrBase32ParseError"],["impl Display for BlobFormat"],["impl Display for KeyParsingError"],["impl Display for AddrInfoOptions"],["impl Display for Error"],["impl Display for Hash"],["impl Display for HashAndFormat"],["impl Display for PublicKey"],["impl Display for SecretKey"],["impl Display for RelayUrl"],["impl Display for RpcError"],["impl Display for BlobTicket"],["impl Display for NodeTicket"]], +"iroh_blobs":[["impl Display for DownloadError"],["impl Display for GetResponseError"],["impl Display for GetError"],["impl Display for AtBlobHeaderNextError"],["impl Display for ConnectedNextError"],["impl Display for DecodeError"],["impl Display for ReportLevel"],["impl Display for SpawnError"],["impl Display for ProgressSendError"],["impl Display for DownloadKind"],["impl Display for IntentId"],["impl Display for UnknownErrorCode"],["impl Display for Tag"]], "iroh_dns_server":[["impl Display for CertMode"]], "iroh_docs":[["impl Display for LiveEvent"],["impl Display for AcceptError"],["impl Display for ConnectError"],["impl Display for FilterKind"],["impl Display for OpenError"],["impl Display for CapabilityError"],["impl Display for CapabilityKind"],["impl Display for InsertError"],["impl Display for ValidationFailure"],["impl Display for Author"],["impl Display for AuthorId"],["impl Display for AuthorPublicKey"],["impl Display for DocTicket"],["impl Display for NamespaceId"],["impl Display for NamespacePublicKey"],["impl Display for NamespaceSecret"],["impl Display for ReadOnly"]], "iroh_gossip":[["impl Display for TopicId"]], -"iroh_net":[["impl Display for IrohAttr"],["impl Display for ConnectionType"],["impl Display for ControlMsg"],["impl Display for DirectAddrType"],["impl Display for PingError"],["impl Display for ClientError"],["impl Display for Error"],["impl Display for Report"],["impl Display for ProbeOutput
    where\n bool: Display,
    "],["impl Display for RelayMap"],["impl Display for RelayNode"],["impl Display for GenError"],["impl Display for ParseError"],["impl Display for VerificationError"]] +"iroh_net":[["impl Display for IrohAttr"],["impl Display for ConnectionType"],["impl Display for ControlMsg"],["impl Display for DirectAddrType"],["impl Display for PingError"],["impl Display for ClientError"],["impl Display for Error"],["impl Display for Report"],["impl Display for ProbeOutput"],["impl Display for RelayMap"],["impl Display for RelayNode"],["impl Display for GenError"],["impl Display for ParseError"],["impl Display for VerificationError"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/pr/2574/docs/trait.impl/core/marker/trait.Freeze.js b/pr/2574/docs/trait.impl/core/marker/trait.Freeze.js index efe30a75d6..254d4fe588 100644 --- a/pr/2574/docs/trait.impl/core/marker/trait.Freeze.js +++ b/pr/2574/docs/trait.impl/core/marker/trait.Freeze.js @@ -1,7 +1,7 @@ (function() {var implementors = { "iroh":[["impl !Freeze for ImportProgress",1,["iroh::client::docs::ImportProgress"]],["impl !Freeze for LiveEvent",1,["iroh::client::docs::LiveEvent"]],["impl !Freeze for AddOutcome",1,["iroh::client::blobs::AddOutcome"]],["impl !Freeze for CollectionInfo",1,["iroh::client::blobs::CollectionInfo"]],["impl !Freeze for DownloadOptions",1,["iroh::client::blobs::DownloadOptions"]],["impl !Freeze for Reader",1,["iroh::client::blobs::Reader"]],["impl !Freeze for Entry",1,["iroh::client::docs::Entry"]],["impl !Freeze for ImportFileOutcome",1,["iroh::client::docs::ImportFileOutcome"]],["impl !Freeze for TagInfo",1,["iroh::client::tags::TagInfo"]],["impl Freeze for BlobStatus",1,["iroh::client::blobs::BlobStatus"]],["impl Freeze for DownloadMode",1,["iroh::client::blobs::DownloadMode"]],["impl Freeze for WrapOption",1,["iroh::client::blobs::WrapOption"]],["impl Freeze for ShareMode",1,["iroh::client::docs::ShareMode"]],["impl Freeze for DiscoveryConfig",1,["iroh::node::builder::DiscoveryConfig"]],["impl Freeze for DocsStorage",1,["iroh::node::builder::DocsStorage"]],["impl Freeze for GcPolicy",1,["iroh::node::builder::GcPolicy"]],["impl Freeze for RpcStatus",1,["iroh::node::rpc_status::RpcStatus"]],["impl Freeze for StorageConfig",1,["iroh::node::builder::StorageConfig"]],["impl Freeze for BaoValidationError",1,["iroh::util::io::BaoValidationError"]],["impl Freeze for IrohPaths",1,["iroh::util::path::IrohPaths"]],["impl Freeze for Client",1,["iroh::client::authors::Client"]],["impl Freeze for AddProgress",1,["iroh::client::blobs::AddProgress"]],["impl Freeze for BlobInfo",1,["iroh::client::blobs::BlobInfo"]],["impl Freeze for Client",1,["iroh::client::blobs::Client"]],["impl Freeze for DownloadOutcome",1,["iroh::client::blobs::DownloadOutcome"]],["impl Freeze for DownloadProgress",1,["iroh::client::blobs::DownloadProgress"]],["impl Freeze for ExportOutcome",1,["iroh::client::blobs::ExportOutcome"]],["impl Freeze for ExportProgress",1,["iroh::client::blobs::ExportProgress"]],["impl Freeze for IncompleteBlobInfo",1,["iroh::client::blobs::IncompleteBlobInfo"]],["impl Freeze for Client",1,["iroh::client::docs::Client"]],["impl Freeze for Doc",1,["iroh::client::docs::Doc"]],["impl Freeze for ExportFileOutcome",1,["iroh::client::docs::ExportFileOutcome"]],["impl Freeze for ExportFileProgress",1,["iroh::client::docs::ExportFileProgress"]],["impl Freeze for ImportFileProgress",1,["iroh::client::docs::ImportFileProgress"]],["impl Freeze for Client",1,["iroh::client::gossip::Client"]],["impl Freeze for SubscribeOpts",1,["iroh::client::gossip::SubscribeOpts"]],["impl Freeze for SubscribeRequest",1,["iroh::rpc_protocol::gossip::SubscribeRequest"]],["impl Freeze for Client",1,["iroh::client::node::Client"]],["impl Freeze for NodeStatus",1,["iroh::client::node::NodeStatus"]],["impl Freeze for Iroh",1,["iroh::client::Iroh"]],["impl Freeze for RpcService",1,["iroh::rpc_protocol::RpcService"]],["impl Freeze for Client",1,["iroh::client::tags::Client"]],["impl Freeze for Metrics",1,["iroh::metrics::Metrics"]],["impl Freeze for DataSource",1,["iroh::util::fs::DataSource"]],["impl Freeze for PathContent",1,["iroh::util::fs::PathContent"]],["impl Freeze for ProgressEmitter",1,["iroh::util::progress::ProgressEmitter"]],["impl<D> !Freeze for Builder<D>",1,["iroh::node::builder::Builder"]],["impl<D> Freeze for Node<D>",1,["iroh::node::Node"]],["impl<D> Freeze for ProtocolBuilder<D>",1,["iroh::node::builder::ProtocolBuilder"]],["impl<R> Freeze for ProgressAsyncReader<R>
    where\n R: Freeze,
    ",1,["iroh::util::progress::ProgressAsyncReader"]],["impl<T> Freeze for Progress<T>",1,["iroh::util::progress::Progress"]],["impl<W> Freeze for ProgressWriter<W>
    where\n W: Freeze,
    ",1,["iroh::util::progress::ProgressWriter"]]], "iroh_base":[["impl !Freeze for SecretKey",1,["iroh_base::key::SecretKey"]],["impl Freeze for HexOrBase32ParseError",1,["iroh_base::base32::HexOrBase32ParseError"]],["impl Freeze for BlobFormat",1,["iroh_base::hash::BlobFormat"]],["impl Freeze for KeyParsingError",1,["iroh_base::key::KeyParsingError"]],["impl Freeze for AddrInfoOptions",1,["iroh_base::node_addr::AddrInfoOptions"]],["impl Freeze for Error",1,["iroh_base::ticket::Error"]],["impl Freeze for Hash",1,["iroh_base::hash::Hash"]],["impl Freeze for HashAndFormat",1,["iroh_base::hash::HashAndFormat"]],["impl Freeze for PublicKey",1,["iroh_base::key::PublicKey"]],["impl Freeze for SharedSecret",1,["iroh_base::key::encryption::SharedSecret"]],["impl Freeze for AddrInfo",1,["iroh_base::node_addr::AddrInfo"]],["impl Freeze for NodeAddr",1,["iroh_base::node_addr::NodeAddr"]],["impl Freeze for RelayUrl",1,["iroh_base::node_addr::RelayUrl"]],["impl Freeze for RpcError",1,["iroh_base::rpc::RpcError"]],["impl Freeze for BlobTicket",1,["iroh_base::ticket::blob::BlobTicket"]],["impl Freeze for NodeTicket",1,["iroh_base::ticket::node::NodeTicket"]]], -"iroh_blobs":[["impl !Freeze for ExportProgress",1,["iroh_blobs::export::ExportProgress"]],["impl !Freeze for GetResponseError",1,["iroh_blobs::get::GetResponseError"]],["impl !Freeze for AtBlobHeaderNextError",1,["iroh_blobs::get::fsm::AtBlobHeaderNextError"]],["impl !Freeze for BlobContentNext",1,["iroh_blobs::get::fsm::BlobContentNext"]],["impl !Freeze for ConnectedNextError",1,["iroh_blobs::get::fsm::ConnectedNextError"]],["impl !Freeze for DecodeError",1,["iroh_blobs::get::fsm::DecodeError"]],["impl !Freeze for AddProgress",1,["iroh_blobs::provider::AddProgress"]],["impl !Freeze for Event",1,["iroh_blobs::provider::Event"]],["impl !Freeze for SetTagOption",1,["iroh_blobs::util::SetTagOption"]],["impl !Freeze for HashSeq",1,["iroh_blobs::hashseq::HashSeq"]],["impl !Freeze for HashSeqIter",1,["iroh_blobs::hashseq::HashSeqIter"]],["impl !Freeze for HashSeqStream",1,["iroh_blobs::hashseq::HashSeqStream"]],["impl !Freeze for Entry",1,["iroh_blobs::store::readonly_mem::Entry"]],["impl !Freeze for Tag",1,["iroh_blobs::util::Tag"]],["impl Freeze for DownloadError",1,["iroh_blobs::downloader::DownloadError"]],["impl Freeze for FailureAction",1,["iroh_blobs::downloader::FailureAction"]],["impl Freeze for BlobId",1,["iroh_blobs::get::db::BlobId"]],["impl Freeze for DownloadProgress",1,["iroh_blobs::get::db::DownloadProgress"]],["impl Freeze for GetError",1,["iroh_blobs::get::error::GetError"]],["impl Freeze for ConnectedNext",1,["iroh_blobs::get::fsm::ConnectedNext"]],["impl Freeze for EndBlobNext",1,["iroh_blobs::get::fsm::EndBlobNext"]],["impl Freeze for BlobProgress",1,["iroh_blobs::get::progress::BlobProgress"]],["impl Freeze for Closed",1,["iroh_blobs::protocol::Closed"]],["impl Freeze for Request",1,["iroh_blobs::protocol::Request"]],["impl Freeze for SentStatus",1,["iroh_blobs::provider::SentStatus"]],["impl Freeze for BaoBlobSize",1,["iroh_blobs::store::traits::BaoBlobSize"]],["impl Freeze for ConsistencyCheckProgress",1,["iroh_blobs::store::traits::ConsistencyCheckProgress"]],["impl Freeze for EntryStatus",1,["iroh_blobs::store::traits::EntryStatus"]],["impl Freeze for Event",1,["iroh_blobs::store::traits::Event"]],["impl Freeze for ExportFormat",1,["iroh_blobs::store::traits::ExportFormat"]],["impl Freeze for ExportMode",1,["iroh_blobs::store::traits::ExportMode"]],["impl Freeze for ExportProgress",1,["iroh_blobs::store::traits::ExportProgress"]],["impl Freeze for GcMarkEvent",1,["iroh_blobs::store::traits::GcMarkEvent"]],["impl Freeze for GcSweepEvent",1,["iroh_blobs::store::traits::GcSweepEvent"]],["impl Freeze for ImportMode",1,["iroh_blobs::store::traits::ImportMode"]],["impl Freeze for ImportProgress",1,["iroh_blobs::store::traits::ImportProgress"]],["impl Freeze for ReportLevel",1,["iroh_blobs::store::traits::ReportLevel"]],["impl Freeze for ValidateProgress",1,["iroh_blobs::store::traits::ValidateProgress"]],["impl Freeze for PanicMode",1,["iroh_blobs::util::local_pool::PanicMode"]],["impl Freeze for SpawnError",1,["iroh_blobs::util::local_pool::SpawnError"]],["impl Freeze for ProgressSendError",1,["iroh_blobs::util::progress::ProgressSendError"]],["impl Freeze for ConcurrencyLimits",1,["iroh_blobs::downloader::ConcurrencyLimits"]],["impl Freeze for DownloadHandle",1,["iroh_blobs::downloader::DownloadHandle"]],["impl Freeze for DownloadKind",1,["iroh_blobs::downloader::DownloadKind"]],["impl Freeze for DownloadRequest",1,["iroh_blobs::downloader::DownloadRequest"]],["impl Freeze for Downloader",1,["iroh_blobs::downloader::Downloader"]],["impl Freeze for IntentId",1,["iroh_blobs::downloader::IntentId"]],["impl Freeze for RetryConfig",1,["iroh_blobs::downloader::RetryConfig"]],["impl Freeze for Collection",1,["iroh_blobs::format::collection::Collection"]],["impl Freeze for AtBlobContent",1,["iroh_blobs::get::fsm::AtBlobContent"]],["impl Freeze for AtBlobHeader",1,["iroh_blobs::get::fsm::AtBlobHeader"]],["impl Freeze for AtClosing",1,["iroh_blobs::get::fsm::AtClosing"]],["impl Freeze for AtConnected",1,["iroh_blobs::get::fsm::AtConnected"]],["impl Freeze for AtEndBlob",1,["iroh_blobs::get::fsm::AtEndBlob"]],["impl Freeze for AtInitial",1,["iroh_blobs::get::fsm::AtInitial"]],["impl Freeze for AtStartChild",1,["iroh_blobs::get::fsm::AtStartChild"]],["impl Freeze for AtStartRoot",1,["iroh_blobs::get::fsm::AtStartRoot"]],["impl Freeze for BlobState",1,["iroh_blobs::get::progress::BlobState"]],["impl Freeze for TransferState",1,["iroh_blobs::get::progress::TransferState"]],["impl Freeze for Stats",1,["iroh_blobs::get::Stats"]],["impl Freeze for Metrics",1,["iroh_blobs::metrics::Metrics"]],["impl Freeze for GetRequest",1,["iroh_blobs::protocol::GetRequest"]],["impl Freeze for RangeSpec",1,["iroh_blobs::protocol::range_spec::RangeSpec"]],["impl Freeze for RangeSpecSeq",1,["iroh_blobs::protocol::range_spec::RangeSpecSeq"]],["impl Freeze for UnknownErrorCode",1,["iroh_blobs::protocol::UnknownErrorCode"]],["impl Freeze for TransferStats",1,["iroh_blobs::provider::TransferStats"]],["impl Freeze for BatchOptions",1,["iroh_blobs::store::fs::BatchOptions"]],["impl Freeze for FlatStorePaths",1,["iroh_blobs::store::fs::FlatStorePaths"]],["impl Freeze for InlineOptions",1,["iroh_blobs::store::fs::InlineOptions"]],["impl Freeze for Options",1,["iroh_blobs::store::fs::Options"]],["impl Freeze for PathOptions",1,["iroh_blobs::store::fs::PathOptions"]],["impl Freeze for Store",1,["iroh_blobs::store::fs::Store"]],["impl Freeze for Entry",1,["iroh_blobs::store::mem::Entry"]],["impl Freeze for Store",1,["iroh_blobs::store::mem::Store"]],["impl Freeze for Store",1,["iroh_blobs::store::readonly_mem::Store"]],["impl Freeze for Config",1,["iroh_blobs::util::local_pool::Config"]],["impl Freeze for LocalPool",1,["iroh_blobs::util::local_pool::LocalPool"]],["impl Freeze for LocalPoolHandle",1,["iroh_blobs::util::local_pool::LocalPoolHandle"]],["impl Freeze for SparseMemFile",1,["iroh_blobs::util::sparse_mem_file::SparseMemFile"]],["impl Freeze for TempTag",1,["iroh_blobs::util::TempTag"]],["impl<'a> Freeze for NonEmptyRequestRangeSpecIter<'a>",1,["iroh_blobs::protocol::range_spec::NonEmptyRequestRangeSpecIter"]],["impl<D> Freeze for BlobInfo<D>
    where\n <D as MapMut>::EntryMut: Freeze,
    ",1,["iroh_blobs::get::db::BlobInfo"]],["impl<E> Freeze for ResponseWriter<E>
    where\n E: Freeze,
    ",1,["iroh_blobs::provider::ResponseWriter"]],["impl<I, U, F> Freeze for WithFilterMap<I, U, F>
    where\n I: Freeze,\n F: Freeze,
    ",1,["iroh_blobs::util::progress::WithFilterMap"]],["impl<I, U, F> Freeze for WithMap<I, U, F>
    where\n I: Freeze,\n F: Freeze,
    ",1,["iroh_blobs::util::progress::WithMap"]],["impl<M, F> Freeze for MemOrFile<M, F>
    where\n M: Freeze,\n F: Freeze,
    ",1,["iroh_blobs::util::mem_or_file::MemOrFile"]],["impl<R> Freeze for TrackingReader<R>
    where\n R: Freeze,
    ",1,["iroh_blobs::util::io::TrackingReader"]],["impl<T> Freeze for Run<T>",1,["iroh_blobs::util::local_pool::Run"]],["impl<T> Freeze for BoxedProgressSender<T>",1,["iroh_blobs::util::progress::BoxedProgressSender"]],["impl<T> Freeze for FlumeProgressSender<T>",1,["iroh_blobs::util::progress::FlumeProgressSender"]],["impl<T> Freeze for IgnoreProgressSender<T>",1,["iroh_blobs::util::progress::IgnoreProgressSender"]],["impl<W> Freeze for TrackingWriter<W>
    where\n W: Freeze,
    ",1,["iroh_blobs::util::io::TrackingWriter"]],["impl<W, F> Freeze for FallibleProgressSliceWriter<W, F>
    where\n W: Freeze,\n F: Freeze,
    ",1,["iroh_blobs::util::progress::FallibleProgressSliceWriter"]],["impl<W, F> Freeze for ProgressSliceWriter<W, F>
    where\n W: Freeze,\n F: Freeze,
    ",1,["iroh_blobs::util::progress::ProgressSliceWriter"]]], +"iroh_blobs":[["impl !Freeze for ExportProgress",1,["iroh_blobs::export::ExportProgress"]],["impl !Freeze for GetResponseError",1,["iroh_blobs::get::GetResponseError"]],["impl !Freeze for AtBlobHeaderNextError",1,["iroh_blobs::get::fsm::AtBlobHeaderNextError"]],["impl !Freeze for BlobContentNext",1,["iroh_blobs::get::fsm::BlobContentNext"]],["impl !Freeze for ConnectedNextError",1,["iroh_blobs::get::fsm::ConnectedNextError"]],["impl !Freeze for DecodeError",1,["iroh_blobs::get::fsm::DecodeError"]],["impl !Freeze for AddProgress",1,["iroh_blobs::provider::AddProgress"]],["impl !Freeze for Event",1,["iroh_blobs::provider::Event"]],["impl !Freeze for SetTagOption",1,["iroh_blobs::util::SetTagOption"]],["impl !Freeze for HashSeq",1,["iroh_blobs::hashseq::HashSeq"]],["impl !Freeze for HashSeqIter",1,["iroh_blobs::hashseq::HashSeqIter"]],["impl !Freeze for HashSeqStream",1,["iroh_blobs::hashseq::HashSeqStream"]],["impl !Freeze for Entry",1,["iroh_blobs::store::readonly_mem::Entry"]],["impl !Freeze for Tag",1,["iroh_blobs::util::Tag"]],["impl Freeze for DownloadError",1,["iroh_blobs::downloader::DownloadError"]],["impl Freeze for FailureAction",1,["iroh_blobs::downloader::FailureAction"]],["impl Freeze for BlobId",1,["iroh_blobs::get::db::BlobId"]],["impl Freeze for DownloadProgress",1,["iroh_blobs::get::db::DownloadProgress"]],["impl Freeze for GetError",1,["iroh_blobs::get::error::GetError"]],["impl Freeze for ConnectedNext",1,["iroh_blobs::get::fsm::ConnectedNext"]],["impl Freeze for EndBlobNext",1,["iroh_blobs::get::fsm::EndBlobNext"]],["impl Freeze for BlobProgress",1,["iroh_blobs::get::progress::BlobProgress"]],["impl Freeze for Closed",1,["iroh_blobs::protocol::Closed"]],["impl Freeze for Request",1,["iroh_blobs::protocol::Request"]],["impl Freeze for SentStatus",1,["iroh_blobs::provider::SentStatus"]],["impl Freeze for BaoBlobSize",1,["iroh_blobs::store::traits::BaoBlobSize"]],["impl Freeze for ConsistencyCheckProgress",1,["iroh_blobs::store::traits::ConsistencyCheckProgress"]],["impl Freeze for EntryStatus",1,["iroh_blobs::store::traits::EntryStatus"]],["impl Freeze for Event",1,["iroh_blobs::store::traits::Event"]],["impl Freeze for ExportFormat",1,["iroh_blobs::store::traits::ExportFormat"]],["impl Freeze for ExportMode",1,["iroh_blobs::store::traits::ExportMode"]],["impl Freeze for ExportProgress",1,["iroh_blobs::store::traits::ExportProgress"]],["impl Freeze for GcMarkEvent",1,["iroh_blobs::store::traits::GcMarkEvent"]],["impl Freeze for GcSweepEvent",1,["iroh_blobs::store::traits::GcSweepEvent"]],["impl Freeze for ImportMode",1,["iroh_blobs::store::traits::ImportMode"]],["impl Freeze for ImportProgress",1,["iroh_blobs::store::traits::ImportProgress"]],["impl Freeze for ReportLevel",1,["iroh_blobs::store::traits::ReportLevel"]],["impl Freeze for ValidateProgress",1,["iroh_blobs::store::traits::ValidateProgress"]],["impl Freeze for PanicMode",1,["iroh_blobs::util::local_pool::PanicMode"]],["impl Freeze for SpawnError",1,["iroh_blobs::util::local_pool::SpawnError"]],["impl Freeze for ProgressSendError",1,["iroh_blobs::util::progress::ProgressSendError"]],["impl Freeze for ConcurrencyLimits",1,["iroh_blobs::downloader::ConcurrencyLimits"]],["impl Freeze for DownloadHandle",1,["iroh_blobs::downloader::DownloadHandle"]],["impl Freeze for DownloadKind",1,["iroh_blobs::downloader::DownloadKind"]],["impl Freeze for DownloadRequest",1,["iroh_blobs::downloader::DownloadRequest"]],["impl Freeze for Downloader",1,["iroh_blobs::downloader::Downloader"]],["impl Freeze for IntentId",1,["iroh_blobs::downloader::IntentId"]],["impl Freeze for RetryConfig",1,["iroh_blobs::downloader::RetryConfig"]],["impl Freeze for Collection",1,["iroh_blobs::format::collection::Collection"]],["impl Freeze for AtBlobContent",1,["iroh_blobs::get::fsm::AtBlobContent"]],["impl Freeze for AtBlobHeader",1,["iroh_blobs::get::fsm::AtBlobHeader"]],["impl Freeze for AtClosing",1,["iroh_blobs::get::fsm::AtClosing"]],["impl Freeze for AtConnected",1,["iroh_blobs::get::fsm::AtConnected"]],["impl Freeze for AtEndBlob",1,["iroh_blobs::get::fsm::AtEndBlob"]],["impl Freeze for AtInitial",1,["iroh_blobs::get::fsm::AtInitial"]],["impl Freeze for AtStartChild",1,["iroh_blobs::get::fsm::AtStartChild"]],["impl Freeze for AtStartRoot",1,["iroh_blobs::get::fsm::AtStartRoot"]],["impl Freeze for BlobState",1,["iroh_blobs::get::progress::BlobState"]],["impl Freeze for TransferState",1,["iroh_blobs::get::progress::TransferState"]],["impl Freeze for Stats",1,["iroh_blobs::get::Stats"]],["impl Freeze for Metrics",1,["iroh_blobs::metrics::Metrics"]],["impl Freeze for GetRequest",1,["iroh_blobs::protocol::GetRequest"]],["impl Freeze for RangeSpec",1,["iroh_blobs::protocol::range_spec::RangeSpec"]],["impl Freeze for RangeSpecSeq",1,["iroh_blobs::protocol::range_spec::RangeSpecSeq"]],["impl Freeze for UnknownErrorCode",1,["iroh_blobs::protocol::UnknownErrorCode"]],["impl Freeze for TransferStats",1,["iroh_blobs::provider::TransferStats"]],["impl Freeze for BatchOptions",1,["iroh_blobs::store::fs::BatchOptions"]],["impl Freeze for FlatStorePaths",1,["iroh_blobs::store::fs::FlatStorePaths"]],["impl Freeze for InlineOptions",1,["iroh_blobs::store::fs::InlineOptions"]],["impl Freeze for Options",1,["iroh_blobs::store::fs::Options"]],["impl Freeze for PathOptions",1,["iroh_blobs::store::fs::PathOptions"]],["impl Freeze for Store",1,["iroh_blobs::store::fs::Store"]],["impl Freeze for Entry",1,["iroh_blobs::store::mem::Entry"]],["impl Freeze for Store",1,["iroh_blobs::store::mem::Store"]],["impl Freeze for Store",1,["iroh_blobs::store::readonly_mem::Store"]],["impl Freeze for Config",1,["iroh_blobs::util::local_pool::Config"]],["impl Freeze for LocalPool",1,["iroh_blobs::util::local_pool::LocalPool"]],["impl Freeze for LocalPoolHandle",1,["iroh_blobs::util::local_pool::LocalPoolHandle"]],["impl Freeze for SparseMemFile",1,["iroh_blobs::util::sparse_mem_file::SparseMemFile"]],["impl Freeze for TempTag",1,["iroh_blobs::util::TempTag"]],["impl<'a> Freeze for NonEmptyRequestRangeSpecIter<'a>",1,["iroh_blobs::protocol::range_spec::NonEmptyRequestRangeSpecIter"]],["impl<D> Freeze for BlobInfo<D>
    where\n <D as MapMut>::EntryMut: Freeze,
    ",1,["iroh_blobs::get::db::BlobInfo"]],["impl<E> Freeze for ResponseWriter<E>
    where\n E: Freeze,
    ",1,["iroh_blobs::provider::ResponseWriter"]],["impl<I, U, F> Freeze for WithFilterMap<I, U, F>
    where\n I: Freeze,\n F: Freeze,
    ",1,["iroh_blobs::util::progress::WithFilterMap"]],["impl<I, U, F> Freeze for WithMap<I, U, F>
    where\n I: Freeze,\n F: Freeze,
    ",1,["iroh_blobs::util::progress::WithMap"]],["impl<M, F> Freeze for MemOrFile<M, F>
    where\n M: Freeze,\n F: Freeze,
    ",1,["iroh_blobs::util::mem_or_file::MemOrFile"]],["impl<R> Freeze for TrackingReader<R>
    where\n R: Freeze,
    ",1,["iroh_blobs::util::io::TrackingReader"]],["impl<T> Freeze for Run<T>",1,["iroh_blobs::util::local_pool::Run"]],["impl<T> Freeze for AsyncChannelProgressSender<T>",1,["iroh_blobs::util::progress::AsyncChannelProgressSender"]],["impl<T> Freeze for BoxedProgressSender<T>",1,["iroh_blobs::util::progress::BoxedProgressSender"]],["impl<T> Freeze for FlumeProgressSender<T>",1,["iroh_blobs::util::progress::FlumeProgressSender"]],["impl<T> Freeze for IgnoreProgressSender<T>",1,["iroh_blobs::util::progress::IgnoreProgressSender"]],["impl<W> Freeze for TrackingWriter<W>
    where\n W: Freeze,
    ",1,["iroh_blobs::util::io::TrackingWriter"]],["impl<W, F> Freeze for FallibleProgressSliceWriter<W, F>
    where\n W: Freeze,\n F: Freeze,
    ",1,["iroh_blobs::util::progress::FallibleProgressSliceWriter"]],["impl<W, F> Freeze for ProgressSliceWriter<W, F>
    where\n W: Freeze,\n F: Freeze,
    ",1,["iroh_blobs::util::progress::ProgressSliceWriter"]]], "iroh_dns_server":[["impl Freeze for BootstrapOption",1,["iroh_dns_server::config::BootstrapOption"]],["impl Freeze for CertMode",1,["iroh_dns_server::http::tls::CertMode"]],["impl Freeze for Config",1,["iroh_dns_server::config::Config"]],["impl Freeze for MainlineConfig",1,["iroh_dns_server::config::MainlineConfig"]],["impl Freeze for MetricsConfig",1,["iroh_dns_server::config::MetricsConfig"]],["impl Freeze for DnsConfig",1,["iroh_dns_server::dns::DnsConfig"]],["impl Freeze for DnsHandler",1,["iroh_dns_server::dns::DnsHandler"]],["impl Freeze for DnsServer",1,["iroh_dns_server::dns::DnsServer"]],["impl Freeze for Handle",1,["iroh_dns_server::dns::Handle"]],["impl Freeze for HttpConfig",1,["iroh_dns_server::http::HttpConfig"]],["impl Freeze for HttpServer",1,["iroh_dns_server::http::HttpServer"]],["impl Freeze for HttpsConfig",1,["iroh_dns_server::http::HttpsConfig"]],["impl Freeze for Metrics",1,["iroh_dns_server::metrics::Metrics"]],["impl Freeze for Server",1,["iroh_dns_server::server::Server"]],["impl Freeze for AppState",1,["iroh_dns_server::state::AppState"]]], "iroh_docs":[["impl !Freeze for LiveEvent",1,["iroh_docs::engine::LiveEvent"]],["impl !Freeze for FilterKind",1,["iroh_docs::store::FilterKind"]],["impl !Freeze for KeyFilter",1,["iroh_docs::store::KeyFilter"]],["impl !Freeze for Event",1,["iroh_docs::sync::Event"]],["impl !Freeze for DefaultAuthor",1,["iroh_docs::engine::DefaultAuthor"]],["impl !Freeze for Query",1,["iroh_docs::store::Query"]],["impl !Freeze for Entry",1,["iroh_docs::sync::Entry"]],["impl !Freeze for RecordIdentifier",1,["iroh_docs::sync::RecordIdentifier"]],["impl !Freeze for SignedEntry",1,["iroh_docs::sync::SignedEntry"]],["impl Freeze for DefaultAuthorStorage",1,["iroh_docs::engine::DefaultAuthorStorage"]],["impl Freeze for Origin",1,["iroh_docs::engine::state::Origin"]],["impl Freeze for SyncReason",1,["iroh_docs::engine::state::SyncReason"]],["impl Freeze for AbortReason",1,["iroh_docs::net::AbortReason"]],["impl Freeze for AcceptError",1,["iroh_docs::net::AcceptError"]],["impl Freeze for AcceptOutcome",1,["iroh_docs::net::AcceptOutcome"]],["impl Freeze for ConnectError",1,["iroh_docs::net::ConnectError"]],["impl Freeze for AuthorFilter",1,["iroh_docs::store::AuthorFilter"]],["impl Freeze for DownloadPolicy",1,["iroh_docs::store::DownloadPolicy"]],["impl Freeze for ImportNamespaceOutcome",1,["iroh_docs::store::ImportNamespaceOutcome"]],["impl Freeze for OpenError",1,["iroh_docs::store::OpenError"]],["impl Freeze for SortBy",1,["iroh_docs::store::SortBy"]],["impl Freeze for SortDirection",1,["iroh_docs::store::SortDirection"]],["impl Freeze for Capability",1,["iroh_docs::sync::Capability"]],["impl Freeze for CapabilityError",1,["iroh_docs::sync::CapabilityError"]],["impl Freeze for CapabilityKind",1,["iroh_docs::sync::CapabilityKind"]],["impl Freeze for ContentStatus",1,["iroh_docs::sync::ContentStatus"]],["impl Freeze for InsertError",1,["iroh_docs::sync::InsertError"]],["impl Freeze for InsertOrigin",1,["iroh_docs::sync::InsertOrigin"]],["impl Freeze for ValidationFailure",1,["iroh_docs::sync::ValidationFailure"]],["impl Freeze for OpenOpts",1,["iroh_docs::actor::OpenOpts"]],["impl Freeze for OpenState",1,["iroh_docs::actor::OpenState"]],["impl Freeze for SyncHandle",1,["iroh_docs::actor::SyncHandle"]],["impl Freeze for Engine",1,["iroh_docs::engine::Engine"]],["impl Freeze for SyncEvent",1,["iroh_docs::engine::live::SyncEvent"]],["impl Freeze for Metrics",1,["iroh_docs::metrics::Metrics"]],["impl Freeze for SyncFinished",1,["iroh_docs::net::SyncFinished"]],["impl Freeze for Timings",1,["iroh_docs::net::Timings"]],["impl Freeze for ContentHashesIterator",1,["iroh_docs::store::fs::ContentHashesIterator"]],["impl Freeze for ParentIterator",1,["iroh_docs::store::fs::ParentIterator"]],["impl Freeze for Store",1,["iroh_docs::store::fs::Store"]],["impl Freeze for FlatQuery",1,["iroh_docs::store::FlatQuery"]],["impl Freeze for MemPublicKeyStore",1,["iroh_docs::store::pubkeys::MemPublicKeyStore"]],["impl Freeze for SingleLatestPerKeyQuery",1,["iroh_docs::store::SingleLatestPerKeyQuery"]],["impl Freeze for Author",1,["iroh_docs::keys::Author"]],["impl Freeze for AuthorId",1,["iroh_docs::keys::AuthorId"]],["impl Freeze for AuthorPublicKey",1,["iroh_docs::keys::AuthorPublicKey"]],["impl Freeze for DocTicket",1,["iroh_docs::ticket::DocTicket"]],["impl Freeze for NamespaceId",1,["iroh_docs::keys::NamespaceId"]],["impl Freeze for NamespacePublicKey",1,["iroh_docs::keys::NamespacePublicKey"]],["impl Freeze for NamespaceSecret",1,["iroh_docs::keys::NamespaceSecret"]],["impl Freeze for AuthorHeads",1,["iroh_docs::heads::AuthorHeads"]],["impl Freeze for EntrySignature",1,["iroh_docs::sync::EntrySignature"]],["impl Freeze for ReadOnly",1,["iroh_docs::sync::ReadOnly"]],["impl Freeze for Record",1,["iroh_docs::sync::Record"]],["impl Freeze for ReplicaInfo",1,["iroh_docs::sync::ReplicaInfo"]],["impl Freeze for SyncOutcome",1,["iroh_docs::sync::SyncOutcome"]],["impl<'a> Freeze for LatestIterator<'a>",1,["iroh_docs::store::fs::LatestIterator"]],["impl<'a> Freeze for RecordsRange<'a>",1,["iroh_docs::store::fs::ranges::RecordsRange"]],["impl<'a> Freeze for StoreInstance<'a>",1,["iroh_docs::store::fs::StoreInstance"]],["impl<'a, I> Freeze for Replica<'a, I>
    where\n I: Freeze,
    ",1,["iroh_docs::sync::Replica"]],["impl<K> !Freeze for QueryBuilder<K>",1,["iroh_docs::store::QueryBuilder"]]], "iroh_gossip":[["impl !Freeze for Command",1,["iroh_gossip::dispatcher::Command"]],["impl !Freeze for Event",1,["iroh_gossip::dispatcher::Event"]],["impl !Freeze for GossipEvent",1,["iroh_gossip::dispatcher::GossipEvent"]],["impl !Freeze for Message",1,["iroh_gossip::dispatcher::Message"]],["impl !Freeze for PeerData",1,["iroh_gossip::proto::PeerData"]],["impl Freeze for DeliveryScope",1,["iroh_gossip::proto::plumtree::DeliveryScope"]],["impl Freeze for Scope",1,["iroh_gossip::proto::plumtree::Scope"]],["impl Freeze for MessageKind",1,["iroh_gossip::proto::state::MessageKind"]],["impl Freeze for GossipDispatcher",1,["iroh_gossip::dispatcher::GossipDispatcher"]],["impl Freeze for SubscribeOptions",1,["iroh_gossip::dispatcher::SubscribeOptions"]],["impl Freeze for Metrics",1,["iroh_gossip::metrics::Metrics"]],["impl Freeze for Gossip",1,["iroh_gossip::net::Gossip"]],["impl Freeze for JoinTopicFut",1,["iroh_gossip::net::JoinTopicFut"]],["impl Freeze for TopicId",1,["iroh_gossip::proto::state::TopicId"]],["impl Freeze for Config",1,["iroh_gossip::proto::topic::Config"]],["impl Freeze for Stats",1,["iroh_gossip::proto::topic::Stats"]],["impl<K, V> Freeze for TimeBoundCache<K, V>",1,["iroh_gossip::proto::util::TimeBoundCache"]],["impl<PI> !Freeze for InEvent<PI>",1,["iroh_gossip::proto::state::InEvent"]],["impl<PI> !Freeze for OutEvent<PI>",1,["iroh_gossip::proto::state::OutEvent"]],["impl<PI> !Freeze for Command<PI>",1,["iroh_gossip::proto::topic::Command"]],["impl<PI> !Freeze for Event<PI>",1,["iroh_gossip::proto::topic::Event"]],["impl<PI> !Freeze for InEvent<PI>",1,["iroh_gossip::proto::topic::InEvent"]],["impl<PI> !Freeze for Message<PI>",1,["iroh_gossip::proto::topic::Message"]],["impl<PI> !Freeze for OutEvent<PI>",1,["iroh_gossip::proto::topic::OutEvent"]],["impl<PI> !Freeze for Message<PI>",1,["iroh_gossip::proto::state::Message"]],["impl<PI> Freeze for Timer<PI>
    where\n PI: Freeze,
    ",1,["iroh_gossip::proto::topic::Timer"]],["impl<PI> Freeze for Timer<PI>
    where\n PI: Freeze,
    ",1,["iroh_gossip::proto::state::Timer"]],["impl<PI, R> !Freeze for State<PI, R>",1,["iroh_gossip::proto::state::State"]],["impl<PI, R> !Freeze for State<PI, R>",1,["iroh_gossip::proto::topic::State"]],["impl<T> Freeze for Timers<T>",1,["iroh_gossip::net::util::Timers"]],["impl<T> Freeze for TimerMap<T>",1,["iroh_gossip::proto::util::TimerMap"]]], diff --git a/pr/2574/docs/trait.impl/core/marker/trait.Send.js b/pr/2574/docs/trait.impl/core/marker/trait.Send.js index e38698f82f..569a5d5902 100644 --- a/pr/2574/docs/trait.impl/core/marker/trait.Send.js +++ b/pr/2574/docs/trait.impl/core/marker/trait.Send.js @@ -1,7 +1,7 @@ (function() {var implementors = { "iroh":[["impl Send for BlobStatus",1,["iroh::client::blobs::BlobStatus"]],["impl Send for DownloadMode",1,["iroh::client::blobs::DownloadMode"]],["impl Send for WrapOption",1,["iroh::client::blobs::WrapOption"]],["impl Send for ImportProgress",1,["iroh::client::docs::ImportProgress"]],["impl Send for LiveEvent",1,["iroh::client::docs::LiveEvent"]],["impl Send for ShareMode",1,["iroh::client::docs::ShareMode"]],["impl Send for DiscoveryConfig",1,["iroh::node::builder::DiscoveryConfig"]],["impl Send for DocsStorage",1,["iroh::node::builder::DocsStorage"]],["impl Send for GcPolicy",1,["iroh::node::builder::GcPolicy"]],["impl Send for RpcStatus",1,["iroh::node::rpc_status::RpcStatus"]],["impl Send for StorageConfig",1,["iroh::node::builder::StorageConfig"]],["impl Send for BaoValidationError",1,["iroh::util::io::BaoValidationError"]],["impl Send for IrohPaths",1,["iroh::util::path::IrohPaths"]],["impl Send for Client",1,["iroh::client::authors::Client"]],["impl Send for AddOutcome",1,["iroh::client::blobs::AddOutcome"]],["impl Send for AddProgress",1,["iroh::client::blobs::AddProgress"]],["impl Send for BlobInfo",1,["iroh::client::blobs::BlobInfo"]],["impl Send for Client",1,["iroh::client::blobs::Client"]],["impl Send for CollectionInfo",1,["iroh::client::blobs::CollectionInfo"]],["impl Send for DownloadOptions",1,["iroh::client::blobs::DownloadOptions"]],["impl Send for DownloadOutcome",1,["iroh::client::blobs::DownloadOutcome"]],["impl Send for DownloadProgress",1,["iroh::client::blobs::DownloadProgress"]],["impl Send for ExportOutcome",1,["iroh::client::blobs::ExportOutcome"]],["impl Send for ExportProgress",1,["iroh::client::blobs::ExportProgress"]],["impl Send for IncompleteBlobInfo",1,["iroh::client::blobs::IncompleteBlobInfo"]],["impl Send for Reader",1,["iroh::client::blobs::Reader"]],["impl Send for Client",1,["iroh::client::docs::Client"]],["impl Send for Doc",1,["iroh::client::docs::Doc"]],["impl Send for Entry",1,["iroh::client::docs::Entry"]],["impl Send for ExportFileOutcome",1,["iroh::client::docs::ExportFileOutcome"]],["impl Send for ExportFileProgress",1,["iroh::client::docs::ExportFileProgress"]],["impl Send for ImportFileOutcome",1,["iroh::client::docs::ImportFileOutcome"]],["impl Send for ImportFileProgress",1,["iroh::client::docs::ImportFileProgress"]],["impl Send for Client",1,["iroh::client::gossip::Client"]],["impl Send for SubscribeOpts",1,["iroh::client::gossip::SubscribeOpts"]],["impl Send for SubscribeRequest",1,["iroh::rpc_protocol::gossip::SubscribeRequest"]],["impl Send for Client",1,["iroh::client::node::Client"]],["impl Send for NodeStatus",1,["iroh::client::node::NodeStatus"]],["impl Send for Iroh",1,["iroh::client::Iroh"]],["impl Send for RpcService",1,["iroh::rpc_protocol::RpcService"]],["impl Send for Client",1,["iroh::client::tags::Client"]],["impl Send for TagInfo",1,["iroh::client::tags::TagInfo"]],["impl Send for Metrics",1,["iroh::metrics::Metrics"]],["impl Send for DataSource",1,["iroh::util::fs::DataSource"]],["impl Send for PathContent",1,["iroh::util::fs::PathContent"]],["impl Send for ProgressEmitter",1,["iroh::util::progress::ProgressEmitter"]],["impl<D> Send for Builder<D>",1,["iroh::node::builder::Builder"]],["impl<D> Send for Node<D>
    where\n D: Sync + Send,
    ",1,["iroh::node::Node"]],["impl<D> Send for ProtocolBuilder<D>
    where\n D: Sync + Send,
    ",1,["iroh::node::builder::ProtocolBuilder"]],["impl<R> Send for ProgressAsyncReader<R>
    where\n R: Send,
    ",1,["iroh::util::progress::ProgressAsyncReader"]],["impl<T> Send for Progress<T>
    where\n T: Send,
    ",1,["iroh::util::progress::Progress"]],["impl<W> Send for ProgressWriter<W>
    where\n W: Send,
    ",1,["iroh::util::progress::ProgressWriter"]]], "iroh_base":[["impl Send for HexOrBase32ParseError",1,["iroh_base::base32::HexOrBase32ParseError"]],["impl Send for BlobFormat",1,["iroh_base::hash::BlobFormat"]],["impl Send for KeyParsingError",1,["iroh_base::key::KeyParsingError"]],["impl Send for AddrInfoOptions",1,["iroh_base::node_addr::AddrInfoOptions"]],["impl Send for Error",1,["iroh_base::ticket::Error"]],["impl Send for Hash",1,["iroh_base::hash::Hash"]],["impl Send for HashAndFormat",1,["iroh_base::hash::HashAndFormat"]],["impl Send for PublicKey",1,["iroh_base::key::PublicKey"]],["impl Send for SecretKey",1,["iroh_base::key::SecretKey"]],["impl Send for SharedSecret",1,["iroh_base::key::encryption::SharedSecret"]],["impl Send for AddrInfo",1,["iroh_base::node_addr::AddrInfo"]],["impl Send for NodeAddr",1,["iroh_base::node_addr::NodeAddr"]],["impl Send for RelayUrl",1,["iroh_base::node_addr::RelayUrl"]],["impl Send for RpcError",1,["iroh_base::rpc::RpcError"]],["impl Send for BlobTicket",1,["iroh_base::ticket::blob::BlobTicket"]],["impl Send for NodeTicket",1,["iroh_base::ticket::node::NodeTicket"]]], -"iroh_blobs":[["impl Send for DownloadError",1,["iroh_blobs::downloader::DownloadError"]],["impl Send for FailureAction",1,["iroh_blobs::downloader::FailureAction"]],["impl Send for ExportProgress",1,["iroh_blobs::export::ExportProgress"]],["impl Send for BlobId",1,["iroh_blobs::get::db::BlobId"]],["impl Send for DownloadProgress",1,["iroh_blobs::get::db::DownloadProgress"]],["impl Send for GetResponseError",1,["iroh_blobs::get::GetResponseError"]],["impl Send for GetError",1,["iroh_blobs::get::error::GetError"]],["impl Send for AtBlobHeaderNextError",1,["iroh_blobs::get::fsm::AtBlobHeaderNextError"]],["impl Send for BlobContentNext",1,["iroh_blobs::get::fsm::BlobContentNext"]],["impl Send for ConnectedNext",1,["iroh_blobs::get::fsm::ConnectedNext"]],["impl Send for ConnectedNextError",1,["iroh_blobs::get::fsm::ConnectedNextError"]],["impl Send for DecodeError",1,["iroh_blobs::get::fsm::DecodeError"]],["impl Send for EndBlobNext",1,["iroh_blobs::get::fsm::EndBlobNext"]],["impl Send for BlobProgress",1,["iroh_blobs::get::progress::BlobProgress"]],["impl Send for Closed",1,["iroh_blobs::protocol::Closed"]],["impl Send for Request",1,["iroh_blobs::protocol::Request"]],["impl Send for AddProgress",1,["iroh_blobs::provider::AddProgress"]],["impl Send for Event",1,["iroh_blobs::provider::Event"]],["impl Send for SentStatus",1,["iroh_blobs::provider::SentStatus"]],["impl Send for BaoBlobSize",1,["iroh_blobs::store::traits::BaoBlobSize"]],["impl Send for ConsistencyCheckProgress",1,["iroh_blobs::store::traits::ConsistencyCheckProgress"]],["impl Send for EntryStatus",1,["iroh_blobs::store::traits::EntryStatus"]],["impl Send for Event",1,["iroh_blobs::store::traits::Event"]],["impl Send for ExportFormat",1,["iroh_blobs::store::traits::ExportFormat"]],["impl Send for ExportMode",1,["iroh_blobs::store::traits::ExportMode"]],["impl Send for ExportProgress",1,["iroh_blobs::store::traits::ExportProgress"]],["impl Send for GcMarkEvent",1,["iroh_blobs::store::traits::GcMarkEvent"]],["impl Send for GcSweepEvent",1,["iroh_blobs::store::traits::GcSweepEvent"]],["impl Send for ImportMode",1,["iroh_blobs::store::traits::ImportMode"]],["impl Send for ImportProgress",1,["iroh_blobs::store::traits::ImportProgress"]],["impl Send for ReportLevel",1,["iroh_blobs::store::traits::ReportLevel"]],["impl Send for ValidateProgress",1,["iroh_blobs::store::traits::ValidateProgress"]],["impl Send for SetTagOption",1,["iroh_blobs::util::SetTagOption"]],["impl Send for PanicMode",1,["iroh_blobs::util::local_pool::PanicMode"]],["impl Send for SpawnError",1,["iroh_blobs::util::local_pool::SpawnError"]],["impl Send for ProgressSendError",1,["iroh_blobs::util::progress::ProgressSendError"]],["impl Send for ConcurrencyLimits",1,["iroh_blobs::downloader::ConcurrencyLimits"]],["impl Send for DownloadHandle",1,["iroh_blobs::downloader::DownloadHandle"]],["impl Send for DownloadKind",1,["iroh_blobs::downloader::DownloadKind"]],["impl Send for DownloadRequest",1,["iroh_blobs::downloader::DownloadRequest"]],["impl Send for Downloader",1,["iroh_blobs::downloader::Downloader"]],["impl Send for IntentId",1,["iroh_blobs::downloader::IntentId"]],["impl Send for RetryConfig",1,["iroh_blobs::downloader::RetryConfig"]],["impl Send for Collection",1,["iroh_blobs::format::collection::Collection"]],["impl Send for AtBlobContent",1,["iroh_blobs::get::fsm::AtBlobContent"]],["impl Send for AtBlobHeader",1,["iroh_blobs::get::fsm::AtBlobHeader"]],["impl Send for AtClosing",1,["iroh_blobs::get::fsm::AtClosing"]],["impl Send for AtConnected",1,["iroh_blobs::get::fsm::AtConnected"]],["impl Send for AtEndBlob",1,["iroh_blobs::get::fsm::AtEndBlob"]],["impl Send for AtInitial",1,["iroh_blobs::get::fsm::AtInitial"]],["impl Send for AtStartChild",1,["iroh_blobs::get::fsm::AtStartChild"]],["impl Send for AtStartRoot",1,["iroh_blobs::get::fsm::AtStartRoot"]],["impl Send for BlobState",1,["iroh_blobs::get::progress::BlobState"]],["impl Send for TransferState",1,["iroh_blobs::get::progress::TransferState"]],["impl Send for Stats",1,["iroh_blobs::get::Stats"]],["impl Send for HashSeq",1,["iroh_blobs::hashseq::HashSeq"]],["impl Send for HashSeqIter",1,["iroh_blobs::hashseq::HashSeqIter"]],["impl Send for HashSeqStream",1,["iroh_blobs::hashseq::HashSeqStream"]],["impl Send for Metrics",1,["iroh_blobs::metrics::Metrics"]],["impl Send for GetRequest",1,["iroh_blobs::protocol::GetRequest"]],["impl Send for RangeSpec",1,["iroh_blobs::protocol::range_spec::RangeSpec"]],["impl Send for RangeSpecSeq",1,["iroh_blobs::protocol::range_spec::RangeSpecSeq"]],["impl Send for UnknownErrorCode",1,["iroh_blobs::protocol::UnknownErrorCode"]],["impl Send for TransferStats",1,["iroh_blobs::provider::TransferStats"]],["impl Send for BatchOptions",1,["iroh_blobs::store::fs::BatchOptions"]],["impl Send for FlatStorePaths",1,["iroh_blobs::store::fs::FlatStorePaths"]],["impl Send for InlineOptions",1,["iroh_blobs::store::fs::InlineOptions"]],["impl Send for Options",1,["iroh_blobs::store::fs::Options"]],["impl Send for PathOptions",1,["iroh_blobs::store::fs::PathOptions"]],["impl Send for Store",1,["iroh_blobs::store::fs::Store"]],["impl Send for Entry",1,["iroh_blobs::store::mem::Entry"]],["impl Send for Store",1,["iroh_blobs::store::mem::Store"]],["impl Send for Entry",1,["iroh_blobs::store::readonly_mem::Entry"]],["impl Send for Store",1,["iroh_blobs::store::readonly_mem::Store"]],["impl Send for Config",1,["iroh_blobs::util::local_pool::Config"]],["impl Send for LocalPool",1,["iroh_blobs::util::local_pool::LocalPool"]],["impl Send for LocalPoolHandle",1,["iroh_blobs::util::local_pool::LocalPoolHandle"]],["impl Send for SparseMemFile",1,["iroh_blobs::util::sparse_mem_file::SparseMemFile"]],["impl Send for Tag",1,["iroh_blobs::util::Tag"]],["impl Send for TempTag",1,["iroh_blobs::util::TempTag"]],["impl<'a> Send for NonEmptyRequestRangeSpecIter<'a>",1,["iroh_blobs::protocol::range_spec::NonEmptyRequestRangeSpecIter"]],["impl<D> Send for BlobInfo<D>",1,["iroh_blobs::get::db::BlobInfo"]],["impl<E> Send for ResponseWriter<E>
    where\n E: Send,
    ",1,["iroh_blobs::provider::ResponseWriter"]],["impl<I, U, F> Send for WithFilterMap<I, U, F>
    where\n I: Send,\n F: Send,\n U: Send,
    ",1,["iroh_blobs::util::progress::WithFilterMap"]],["impl<I, U, F> Send for WithMap<I, U, F>",1,["iroh_blobs::util::progress::WithMap"]],["impl<M, F> Send for MemOrFile<M, F>
    where\n M: Send,\n F: Send,
    ",1,["iroh_blobs::util::mem_or_file::MemOrFile"]],["impl<R> Send for TrackingReader<R>
    where\n R: Send,
    ",1,["iroh_blobs::util::io::TrackingReader"]],["impl<T> Send for Run<T>
    where\n T: Send,
    ",1,["iroh_blobs::util::local_pool::Run"]],["impl<T> Send for BoxedProgressSender<T>",1,["iroh_blobs::util::progress::BoxedProgressSender"]],["impl<T> Send for FlumeProgressSender<T>
    where\n T: Send,
    ",1,["iroh_blobs::util::progress::FlumeProgressSender"]],["impl<T> Send for IgnoreProgressSender<T>
    where\n T: Send,
    ",1,["iroh_blobs::util::progress::IgnoreProgressSender"]],["impl<W> Send for TrackingWriter<W>
    where\n W: Send,
    ",1,["iroh_blobs::util::io::TrackingWriter"]],["impl<W, F> Send for FallibleProgressSliceWriter<W, F>
    where\n W: Send,\n F: Send,
    ",1,["iroh_blobs::util::progress::FallibleProgressSliceWriter"]],["impl<W, F> Send for ProgressSliceWriter<W, F>
    where\n W: Send,\n F: Send,
    ",1,["iroh_blobs::util::progress::ProgressSliceWriter"]]], +"iroh_blobs":[["impl Send for DownloadError",1,["iroh_blobs::downloader::DownloadError"]],["impl Send for FailureAction",1,["iroh_blobs::downloader::FailureAction"]],["impl Send for ExportProgress",1,["iroh_blobs::export::ExportProgress"]],["impl Send for BlobId",1,["iroh_blobs::get::db::BlobId"]],["impl Send for DownloadProgress",1,["iroh_blobs::get::db::DownloadProgress"]],["impl Send for GetResponseError",1,["iroh_blobs::get::GetResponseError"]],["impl Send for GetError",1,["iroh_blobs::get::error::GetError"]],["impl Send for AtBlobHeaderNextError",1,["iroh_blobs::get::fsm::AtBlobHeaderNextError"]],["impl Send for BlobContentNext",1,["iroh_blobs::get::fsm::BlobContentNext"]],["impl Send for ConnectedNext",1,["iroh_blobs::get::fsm::ConnectedNext"]],["impl Send for ConnectedNextError",1,["iroh_blobs::get::fsm::ConnectedNextError"]],["impl Send for DecodeError",1,["iroh_blobs::get::fsm::DecodeError"]],["impl Send for EndBlobNext",1,["iroh_blobs::get::fsm::EndBlobNext"]],["impl Send for BlobProgress",1,["iroh_blobs::get::progress::BlobProgress"]],["impl Send for Closed",1,["iroh_blobs::protocol::Closed"]],["impl Send for Request",1,["iroh_blobs::protocol::Request"]],["impl Send for AddProgress",1,["iroh_blobs::provider::AddProgress"]],["impl Send for Event",1,["iroh_blobs::provider::Event"]],["impl Send for SentStatus",1,["iroh_blobs::provider::SentStatus"]],["impl Send for BaoBlobSize",1,["iroh_blobs::store::traits::BaoBlobSize"]],["impl Send for ConsistencyCheckProgress",1,["iroh_blobs::store::traits::ConsistencyCheckProgress"]],["impl Send for EntryStatus",1,["iroh_blobs::store::traits::EntryStatus"]],["impl Send for Event",1,["iroh_blobs::store::traits::Event"]],["impl Send for ExportFormat",1,["iroh_blobs::store::traits::ExportFormat"]],["impl Send for ExportMode",1,["iroh_blobs::store::traits::ExportMode"]],["impl Send for ExportProgress",1,["iroh_blobs::store::traits::ExportProgress"]],["impl Send for GcMarkEvent",1,["iroh_blobs::store::traits::GcMarkEvent"]],["impl Send for GcSweepEvent",1,["iroh_blobs::store::traits::GcSweepEvent"]],["impl Send for ImportMode",1,["iroh_blobs::store::traits::ImportMode"]],["impl Send for ImportProgress",1,["iroh_blobs::store::traits::ImportProgress"]],["impl Send for ReportLevel",1,["iroh_blobs::store::traits::ReportLevel"]],["impl Send for ValidateProgress",1,["iroh_blobs::store::traits::ValidateProgress"]],["impl Send for SetTagOption",1,["iroh_blobs::util::SetTagOption"]],["impl Send for PanicMode",1,["iroh_blobs::util::local_pool::PanicMode"]],["impl Send for SpawnError",1,["iroh_blobs::util::local_pool::SpawnError"]],["impl Send for ProgressSendError",1,["iroh_blobs::util::progress::ProgressSendError"]],["impl Send for ConcurrencyLimits",1,["iroh_blobs::downloader::ConcurrencyLimits"]],["impl Send for DownloadHandle",1,["iroh_blobs::downloader::DownloadHandle"]],["impl Send for DownloadKind",1,["iroh_blobs::downloader::DownloadKind"]],["impl Send for DownloadRequest",1,["iroh_blobs::downloader::DownloadRequest"]],["impl Send for Downloader",1,["iroh_blobs::downloader::Downloader"]],["impl Send for IntentId",1,["iroh_blobs::downloader::IntentId"]],["impl Send for RetryConfig",1,["iroh_blobs::downloader::RetryConfig"]],["impl Send for Collection",1,["iroh_blobs::format::collection::Collection"]],["impl Send for AtBlobContent",1,["iroh_blobs::get::fsm::AtBlobContent"]],["impl Send for AtBlobHeader",1,["iroh_blobs::get::fsm::AtBlobHeader"]],["impl Send for AtClosing",1,["iroh_blobs::get::fsm::AtClosing"]],["impl Send for AtConnected",1,["iroh_blobs::get::fsm::AtConnected"]],["impl Send for AtEndBlob",1,["iroh_blobs::get::fsm::AtEndBlob"]],["impl Send for AtInitial",1,["iroh_blobs::get::fsm::AtInitial"]],["impl Send for AtStartChild",1,["iroh_blobs::get::fsm::AtStartChild"]],["impl Send for AtStartRoot",1,["iroh_blobs::get::fsm::AtStartRoot"]],["impl Send for BlobState",1,["iroh_blobs::get::progress::BlobState"]],["impl Send for TransferState",1,["iroh_blobs::get::progress::TransferState"]],["impl Send for Stats",1,["iroh_blobs::get::Stats"]],["impl Send for HashSeq",1,["iroh_blobs::hashseq::HashSeq"]],["impl Send for HashSeqIter",1,["iroh_blobs::hashseq::HashSeqIter"]],["impl Send for HashSeqStream",1,["iroh_blobs::hashseq::HashSeqStream"]],["impl Send for Metrics",1,["iroh_blobs::metrics::Metrics"]],["impl Send for GetRequest",1,["iroh_blobs::protocol::GetRequest"]],["impl Send for RangeSpec",1,["iroh_blobs::protocol::range_spec::RangeSpec"]],["impl Send for RangeSpecSeq",1,["iroh_blobs::protocol::range_spec::RangeSpecSeq"]],["impl Send for UnknownErrorCode",1,["iroh_blobs::protocol::UnknownErrorCode"]],["impl Send for TransferStats",1,["iroh_blobs::provider::TransferStats"]],["impl Send for BatchOptions",1,["iroh_blobs::store::fs::BatchOptions"]],["impl Send for FlatStorePaths",1,["iroh_blobs::store::fs::FlatStorePaths"]],["impl Send for InlineOptions",1,["iroh_blobs::store::fs::InlineOptions"]],["impl Send for Options",1,["iroh_blobs::store::fs::Options"]],["impl Send for PathOptions",1,["iroh_blobs::store::fs::PathOptions"]],["impl Send for Store",1,["iroh_blobs::store::fs::Store"]],["impl Send for Entry",1,["iroh_blobs::store::mem::Entry"]],["impl Send for Store",1,["iroh_blobs::store::mem::Store"]],["impl Send for Entry",1,["iroh_blobs::store::readonly_mem::Entry"]],["impl Send for Store",1,["iroh_blobs::store::readonly_mem::Store"]],["impl Send for Config",1,["iroh_blobs::util::local_pool::Config"]],["impl Send for LocalPool",1,["iroh_blobs::util::local_pool::LocalPool"]],["impl Send for LocalPoolHandle",1,["iroh_blobs::util::local_pool::LocalPoolHandle"]],["impl Send for SparseMemFile",1,["iroh_blobs::util::sparse_mem_file::SparseMemFile"]],["impl Send for Tag",1,["iroh_blobs::util::Tag"]],["impl Send for TempTag",1,["iroh_blobs::util::TempTag"]],["impl<'a> Send for NonEmptyRequestRangeSpecIter<'a>",1,["iroh_blobs::protocol::range_spec::NonEmptyRequestRangeSpecIter"]],["impl<D> Send for BlobInfo<D>",1,["iroh_blobs::get::db::BlobInfo"]],["impl<E> Send for ResponseWriter<E>
    where\n E: Send,
    ",1,["iroh_blobs::provider::ResponseWriter"]],["impl<I, U, F> Send for WithFilterMap<I, U, F>
    where\n I: Send,\n F: Send,\n U: Send,
    ",1,["iroh_blobs::util::progress::WithFilterMap"]],["impl<I, U, F> Send for WithMap<I, U, F>",1,["iroh_blobs::util::progress::WithMap"]],["impl<M, F> Send for MemOrFile<M, F>
    where\n M: Send,\n F: Send,
    ",1,["iroh_blobs::util::mem_or_file::MemOrFile"]],["impl<R> Send for TrackingReader<R>
    where\n R: Send,
    ",1,["iroh_blobs::util::io::TrackingReader"]],["impl<T> Send for Run<T>
    where\n T: Send,
    ",1,["iroh_blobs::util::local_pool::Run"]],["impl<T> Send for AsyncChannelProgressSender<T>
    where\n T: Send,
    ",1,["iroh_blobs::util::progress::AsyncChannelProgressSender"]],["impl<T> Send for BoxedProgressSender<T>",1,["iroh_blobs::util::progress::BoxedProgressSender"]],["impl<T> Send for FlumeProgressSender<T>
    where\n T: Send,
    ",1,["iroh_blobs::util::progress::FlumeProgressSender"]],["impl<T> Send for IgnoreProgressSender<T>
    where\n T: Send,
    ",1,["iroh_blobs::util::progress::IgnoreProgressSender"]],["impl<W> Send for TrackingWriter<W>
    where\n W: Send,
    ",1,["iroh_blobs::util::io::TrackingWriter"]],["impl<W, F> Send for FallibleProgressSliceWriter<W, F>
    where\n W: Send,\n F: Send,
    ",1,["iroh_blobs::util::progress::FallibleProgressSliceWriter"]],["impl<W, F> Send for ProgressSliceWriter<W, F>
    where\n W: Send,\n F: Send,
    ",1,["iroh_blobs::util::progress::ProgressSliceWriter"]]], "iroh_dns_server":[["impl Send for BootstrapOption",1,["iroh_dns_server::config::BootstrapOption"]],["impl Send for CertMode",1,["iroh_dns_server::http::tls::CertMode"]],["impl Send for Config",1,["iroh_dns_server::config::Config"]],["impl Send for MainlineConfig",1,["iroh_dns_server::config::MainlineConfig"]],["impl Send for MetricsConfig",1,["iroh_dns_server::config::MetricsConfig"]],["impl Send for DnsConfig",1,["iroh_dns_server::dns::DnsConfig"]],["impl Send for DnsHandler",1,["iroh_dns_server::dns::DnsHandler"]],["impl Send for DnsServer",1,["iroh_dns_server::dns::DnsServer"]],["impl Send for Handle",1,["iroh_dns_server::dns::Handle"]],["impl Send for HttpConfig",1,["iroh_dns_server::http::HttpConfig"]],["impl Send for HttpServer",1,["iroh_dns_server::http::HttpServer"]],["impl Send for HttpsConfig",1,["iroh_dns_server::http::HttpsConfig"]],["impl Send for Metrics",1,["iroh_dns_server::metrics::Metrics"]],["impl Send for Server",1,["iroh_dns_server::server::Server"]],["impl Send for AppState",1,["iroh_dns_server::state::AppState"]]], "iroh_docs":[["impl Send for DefaultAuthorStorage",1,["iroh_docs::engine::DefaultAuthorStorage"]],["impl Send for LiveEvent",1,["iroh_docs::engine::LiveEvent"]],["impl Send for Origin",1,["iroh_docs::engine::state::Origin"]],["impl Send for SyncReason",1,["iroh_docs::engine::state::SyncReason"]],["impl Send for AbortReason",1,["iroh_docs::net::AbortReason"]],["impl Send for AcceptError",1,["iroh_docs::net::AcceptError"]],["impl Send for AcceptOutcome",1,["iroh_docs::net::AcceptOutcome"]],["impl Send for ConnectError",1,["iroh_docs::net::ConnectError"]],["impl Send for AuthorFilter",1,["iroh_docs::store::AuthorFilter"]],["impl Send for DownloadPolicy",1,["iroh_docs::store::DownloadPolicy"]],["impl Send for FilterKind",1,["iroh_docs::store::FilterKind"]],["impl Send for ImportNamespaceOutcome",1,["iroh_docs::store::ImportNamespaceOutcome"]],["impl Send for KeyFilter",1,["iroh_docs::store::KeyFilter"]],["impl Send for OpenError",1,["iroh_docs::store::OpenError"]],["impl Send for SortBy",1,["iroh_docs::store::SortBy"]],["impl Send for SortDirection",1,["iroh_docs::store::SortDirection"]],["impl Send for Capability",1,["iroh_docs::sync::Capability"]],["impl Send for CapabilityError",1,["iroh_docs::sync::CapabilityError"]],["impl Send for CapabilityKind",1,["iroh_docs::sync::CapabilityKind"]],["impl Send for ContentStatus",1,["iroh_docs::sync::ContentStatus"]],["impl Send for Event",1,["iroh_docs::sync::Event"]],["impl Send for InsertError",1,["iroh_docs::sync::InsertError"]],["impl Send for InsertOrigin",1,["iroh_docs::sync::InsertOrigin"]],["impl Send for ValidationFailure",1,["iroh_docs::sync::ValidationFailure"]],["impl Send for OpenOpts",1,["iroh_docs::actor::OpenOpts"]],["impl Send for OpenState",1,["iroh_docs::actor::OpenState"]],["impl Send for SyncHandle",1,["iroh_docs::actor::SyncHandle"]],["impl Send for DefaultAuthor",1,["iroh_docs::engine::DefaultAuthor"]],["impl Send for Engine",1,["iroh_docs::engine::Engine"]],["impl Send for SyncEvent",1,["iroh_docs::engine::live::SyncEvent"]],["impl Send for Metrics",1,["iroh_docs::metrics::Metrics"]],["impl Send for SyncFinished",1,["iroh_docs::net::SyncFinished"]],["impl Send for Timings",1,["iroh_docs::net::Timings"]],["impl Send for ContentHashesIterator",1,["iroh_docs::store::fs::ContentHashesIterator"]],["impl Send for ParentIterator",1,["iroh_docs::store::fs::ParentIterator"]],["impl Send for Store",1,["iroh_docs::store::fs::Store"]],["impl Send for FlatQuery",1,["iroh_docs::store::FlatQuery"]],["impl Send for MemPublicKeyStore",1,["iroh_docs::store::pubkeys::MemPublicKeyStore"]],["impl Send for Query",1,["iroh_docs::store::Query"]],["impl Send for SingleLatestPerKeyQuery",1,["iroh_docs::store::SingleLatestPerKeyQuery"]],["impl Send for Author",1,["iroh_docs::keys::Author"]],["impl Send for AuthorId",1,["iroh_docs::keys::AuthorId"]],["impl Send for AuthorPublicKey",1,["iroh_docs::keys::AuthorPublicKey"]],["impl Send for DocTicket",1,["iroh_docs::ticket::DocTicket"]],["impl Send for NamespaceId",1,["iroh_docs::keys::NamespaceId"]],["impl Send for NamespacePublicKey",1,["iroh_docs::keys::NamespacePublicKey"]],["impl Send for NamespaceSecret",1,["iroh_docs::keys::NamespaceSecret"]],["impl Send for AuthorHeads",1,["iroh_docs::heads::AuthorHeads"]],["impl Send for Entry",1,["iroh_docs::sync::Entry"]],["impl Send for EntrySignature",1,["iroh_docs::sync::EntrySignature"]],["impl Send for ReadOnly",1,["iroh_docs::sync::ReadOnly"]],["impl Send for Record",1,["iroh_docs::sync::Record"]],["impl Send for RecordIdentifier",1,["iroh_docs::sync::RecordIdentifier"]],["impl Send for ReplicaInfo",1,["iroh_docs::sync::ReplicaInfo"]],["impl Send for SignedEntry",1,["iroh_docs::sync::SignedEntry"]],["impl Send for SyncOutcome",1,["iroh_docs::sync::SyncOutcome"]],["impl<'a> Send for LatestIterator<'a>",1,["iroh_docs::store::fs::LatestIterator"]],["impl<'a> Send for RecordsRange<'a>",1,["iroh_docs::store::fs::ranges::RecordsRange"]],["impl<'a> Send for StoreInstance<'a>",1,["iroh_docs::store::fs::StoreInstance"]],["impl<'a, I> Send for Replica<'a, I>
    where\n I: Send,
    ",1,["iroh_docs::sync::Replica"]],["impl<K> Send for QueryBuilder<K>
    where\n K: Send,
    ",1,["iroh_docs::store::QueryBuilder"]]], "iroh_gossip":[["impl Send for Command",1,["iroh_gossip::dispatcher::Command"]],["impl Send for Event",1,["iroh_gossip::dispatcher::Event"]],["impl Send for GossipEvent",1,["iroh_gossip::dispatcher::GossipEvent"]],["impl Send for DeliveryScope",1,["iroh_gossip::proto::plumtree::DeliveryScope"]],["impl Send for Scope",1,["iroh_gossip::proto::plumtree::Scope"]],["impl Send for MessageKind",1,["iroh_gossip::proto::state::MessageKind"]],["impl Send for GossipDispatcher",1,["iroh_gossip::dispatcher::GossipDispatcher"]],["impl Send for Message",1,["iroh_gossip::dispatcher::Message"]],["impl Send for SubscribeOptions",1,["iroh_gossip::dispatcher::SubscribeOptions"]],["impl Send for Metrics",1,["iroh_gossip::metrics::Metrics"]],["impl Send for Gossip",1,["iroh_gossip::net::Gossip"]],["impl Send for JoinTopicFut",1,["iroh_gossip::net::JoinTopicFut"]],["impl Send for TopicId",1,["iroh_gossip::proto::state::TopicId"]],["impl Send for PeerData",1,["iroh_gossip::proto::PeerData"]],["impl Send for Config",1,["iroh_gossip::proto::topic::Config"]],["impl Send for Stats",1,["iroh_gossip::proto::topic::Stats"]],["impl<K, V> Send for TimeBoundCache<K, V>
    where\n K: Send,\n V: Send,
    ",1,["iroh_gossip::proto::util::TimeBoundCache"]],["impl<PI> Send for InEvent<PI>
    where\n PI: Send,
    ",1,["iroh_gossip::proto::state::InEvent"]],["impl<PI> Send for OutEvent<PI>
    where\n PI: Send,
    ",1,["iroh_gossip::proto::state::OutEvent"]],["impl<PI> Send for Command<PI>
    where\n PI: Send,
    ",1,["iroh_gossip::proto::topic::Command"]],["impl<PI> Send for Event<PI>
    where\n PI: Send,
    ",1,["iroh_gossip::proto::topic::Event"]],["impl<PI> Send for InEvent<PI>
    where\n PI: Send,
    ",1,["iroh_gossip::proto::topic::InEvent"]],["impl<PI> Send for Message<PI>
    where\n PI: Send,
    ",1,["iroh_gossip::proto::topic::Message"]],["impl<PI> Send for OutEvent<PI>
    where\n PI: Send,
    ",1,["iroh_gossip::proto::topic::OutEvent"]],["impl<PI> Send for Timer<PI>
    where\n PI: Send,
    ",1,["iroh_gossip::proto::topic::Timer"]],["impl<PI> Send for Message<PI>
    where\n PI: Send,
    ",1,["iroh_gossip::proto::state::Message"]],["impl<PI> Send for Timer<PI>
    where\n PI: Send,
    ",1,["iroh_gossip::proto::state::Timer"]],["impl<PI, R> Send for State<PI, R>
    where\n PI: Send,\n R: Send,
    ",1,["iroh_gossip::proto::state::State"]],["impl<PI, R> Send for State<PI, R>
    where\n PI: Send,\n R: Send,
    ",1,["iroh_gossip::proto::topic::State"]],["impl<T> Send for Timers<T>
    where\n T: Send,
    ",1,["iroh_gossip::net::util::Timers"]],["impl<T> Send for TimerMap<T>
    where\n T: Send,
    ",1,["iroh_gossip::proto::util::TimerMap"]]], diff --git a/pr/2574/docs/trait.impl/core/marker/trait.Sync.js b/pr/2574/docs/trait.impl/core/marker/trait.Sync.js index 20151cda8e..b5071ff5c5 100644 --- a/pr/2574/docs/trait.impl/core/marker/trait.Sync.js +++ b/pr/2574/docs/trait.impl/core/marker/trait.Sync.js @@ -1,7 +1,7 @@ (function() {var implementors = { "iroh":[["impl !Sync for AddProgress",1,["iroh::client::blobs::AddProgress"]],["impl !Sync for DownloadProgress",1,["iroh::client::blobs::DownloadProgress"]],["impl !Sync for ExportProgress",1,["iroh::client::blobs::ExportProgress"]],["impl !Sync for ExportFileProgress",1,["iroh::client::docs::ExportFileProgress"]],["impl !Sync for ImportFileProgress",1,["iroh::client::docs::ImportFileProgress"]],["impl Sync for BlobStatus",1,["iroh::client::blobs::BlobStatus"]],["impl Sync for DownloadMode",1,["iroh::client::blobs::DownloadMode"]],["impl Sync for WrapOption",1,["iroh::client::blobs::WrapOption"]],["impl Sync for ImportProgress",1,["iroh::client::docs::ImportProgress"]],["impl Sync for LiveEvent",1,["iroh::client::docs::LiveEvent"]],["impl Sync for ShareMode",1,["iroh::client::docs::ShareMode"]],["impl Sync for DiscoveryConfig",1,["iroh::node::builder::DiscoveryConfig"]],["impl Sync for DocsStorage",1,["iroh::node::builder::DocsStorage"]],["impl Sync for GcPolicy",1,["iroh::node::builder::GcPolicy"]],["impl Sync for RpcStatus",1,["iroh::node::rpc_status::RpcStatus"]],["impl Sync for StorageConfig",1,["iroh::node::builder::StorageConfig"]],["impl Sync for BaoValidationError",1,["iroh::util::io::BaoValidationError"]],["impl Sync for IrohPaths",1,["iroh::util::path::IrohPaths"]],["impl Sync for Client",1,["iroh::client::authors::Client"]],["impl Sync for AddOutcome",1,["iroh::client::blobs::AddOutcome"]],["impl Sync for BlobInfo",1,["iroh::client::blobs::BlobInfo"]],["impl Sync for Client",1,["iroh::client::blobs::Client"]],["impl Sync for CollectionInfo",1,["iroh::client::blobs::CollectionInfo"]],["impl Sync for DownloadOptions",1,["iroh::client::blobs::DownloadOptions"]],["impl Sync for DownloadOutcome",1,["iroh::client::blobs::DownloadOutcome"]],["impl Sync for ExportOutcome",1,["iroh::client::blobs::ExportOutcome"]],["impl Sync for IncompleteBlobInfo",1,["iroh::client::blobs::IncompleteBlobInfo"]],["impl Sync for Reader",1,["iroh::client::blobs::Reader"]],["impl Sync for Client",1,["iroh::client::docs::Client"]],["impl Sync for Doc",1,["iroh::client::docs::Doc"]],["impl Sync for Entry",1,["iroh::client::docs::Entry"]],["impl Sync for ExportFileOutcome",1,["iroh::client::docs::ExportFileOutcome"]],["impl Sync for ImportFileOutcome",1,["iroh::client::docs::ImportFileOutcome"]],["impl Sync for Client",1,["iroh::client::gossip::Client"]],["impl Sync for SubscribeOpts",1,["iroh::client::gossip::SubscribeOpts"]],["impl Sync for SubscribeRequest",1,["iroh::rpc_protocol::gossip::SubscribeRequest"]],["impl Sync for Client",1,["iroh::client::node::Client"]],["impl Sync for NodeStatus",1,["iroh::client::node::NodeStatus"]],["impl Sync for Iroh",1,["iroh::client::Iroh"]],["impl Sync for RpcService",1,["iroh::rpc_protocol::RpcService"]],["impl Sync for Client",1,["iroh::client::tags::Client"]],["impl Sync for TagInfo",1,["iroh::client::tags::TagInfo"]],["impl Sync for Metrics",1,["iroh::metrics::Metrics"]],["impl Sync for DataSource",1,["iroh::util::fs::DataSource"]],["impl Sync for PathContent",1,["iroh::util::fs::PathContent"]],["impl Sync for ProgressEmitter",1,["iroh::util::progress::ProgressEmitter"]],["impl<D> !Sync for Builder<D>",1,["iroh::node::builder::Builder"]],["impl<D> !Sync for ProtocolBuilder<D>",1,["iroh::node::builder::ProtocolBuilder"]],["impl<D> Sync for Node<D>
    where\n D: Sync + Send,
    ",1,["iroh::node::Node"]],["impl<R> Sync for ProgressAsyncReader<R>
    where\n R: Sync,
    ",1,["iroh::util::progress::ProgressAsyncReader"]],["impl<T> Sync for Progress<T>
    where\n T: Send,
    ",1,["iroh::util::progress::Progress"]],["impl<W> Sync for ProgressWriter<W>
    where\n W: Sync,
    ",1,["iroh::util::progress::ProgressWriter"]]], "iroh_base":[["impl Sync for HexOrBase32ParseError",1,["iroh_base::base32::HexOrBase32ParseError"]],["impl Sync for BlobFormat",1,["iroh_base::hash::BlobFormat"]],["impl Sync for KeyParsingError",1,["iroh_base::key::KeyParsingError"]],["impl Sync for AddrInfoOptions",1,["iroh_base::node_addr::AddrInfoOptions"]],["impl Sync for Error",1,["iroh_base::ticket::Error"]],["impl Sync for Hash",1,["iroh_base::hash::Hash"]],["impl Sync for HashAndFormat",1,["iroh_base::hash::HashAndFormat"]],["impl Sync for PublicKey",1,["iroh_base::key::PublicKey"]],["impl Sync for SecretKey",1,["iroh_base::key::SecretKey"]],["impl Sync for SharedSecret",1,["iroh_base::key::encryption::SharedSecret"]],["impl Sync for AddrInfo",1,["iroh_base::node_addr::AddrInfo"]],["impl Sync for NodeAddr",1,["iroh_base::node_addr::NodeAddr"]],["impl Sync for RelayUrl",1,["iroh_base::node_addr::RelayUrl"]],["impl Sync for RpcError",1,["iroh_base::rpc::RpcError"]],["impl Sync for BlobTicket",1,["iroh_base::ticket::blob::BlobTicket"]],["impl Sync for NodeTicket",1,["iroh_base::ticket::node::NodeTicket"]]], -"iroh_blobs":[["impl Sync for DownloadError",1,["iroh_blobs::downloader::DownloadError"]],["impl Sync for FailureAction",1,["iroh_blobs::downloader::FailureAction"]],["impl Sync for ExportProgress",1,["iroh_blobs::export::ExportProgress"]],["impl Sync for BlobId",1,["iroh_blobs::get::db::BlobId"]],["impl Sync for DownloadProgress",1,["iroh_blobs::get::db::DownloadProgress"]],["impl Sync for GetResponseError",1,["iroh_blobs::get::GetResponseError"]],["impl Sync for GetError",1,["iroh_blobs::get::error::GetError"]],["impl Sync for AtBlobHeaderNextError",1,["iroh_blobs::get::fsm::AtBlobHeaderNextError"]],["impl Sync for BlobContentNext",1,["iroh_blobs::get::fsm::BlobContentNext"]],["impl Sync for ConnectedNext",1,["iroh_blobs::get::fsm::ConnectedNext"]],["impl Sync for ConnectedNextError",1,["iroh_blobs::get::fsm::ConnectedNextError"]],["impl Sync for DecodeError",1,["iroh_blobs::get::fsm::DecodeError"]],["impl Sync for EndBlobNext",1,["iroh_blobs::get::fsm::EndBlobNext"]],["impl Sync for BlobProgress",1,["iroh_blobs::get::progress::BlobProgress"]],["impl Sync for Closed",1,["iroh_blobs::protocol::Closed"]],["impl Sync for Request",1,["iroh_blobs::protocol::Request"]],["impl Sync for AddProgress",1,["iroh_blobs::provider::AddProgress"]],["impl Sync for Event",1,["iroh_blobs::provider::Event"]],["impl Sync for SentStatus",1,["iroh_blobs::provider::SentStatus"]],["impl Sync for BaoBlobSize",1,["iroh_blobs::store::traits::BaoBlobSize"]],["impl Sync for ConsistencyCheckProgress",1,["iroh_blobs::store::traits::ConsistencyCheckProgress"]],["impl Sync for EntryStatus",1,["iroh_blobs::store::traits::EntryStatus"]],["impl Sync for Event",1,["iroh_blobs::store::traits::Event"]],["impl Sync for ExportFormat",1,["iroh_blobs::store::traits::ExportFormat"]],["impl Sync for ExportMode",1,["iroh_blobs::store::traits::ExportMode"]],["impl Sync for ExportProgress",1,["iroh_blobs::store::traits::ExportProgress"]],["impl Sync for GcMarkEvent",1,["iroh_blobs::store::traits::GcMarkEvent"]],["impl Sync for GcSweepEvent",1,["iroh_blobs::store::traits::GcSweepEvent"]],["impl Sync for ImportMode",1,["iroh_blobs::store::traits::ImportMode"]],["impl Sync for ImportProgress",1,["iroh_blobs::store::traits::ImportProgress"]],["impl Sync for ReportLevel",1,["iroh_blobs::store::traits::ReportLevel"]],["impl Sync for ValidateProgress",1,["iroh_blobs::store::traits::ValidateProgress"]],["impl Sync for SetTagOption",1,["iroh_blobs::util::SetTagOption"]],["impl Sync for PanicMode",1,["iroh_blobs::util::local_pool::PanicMode"]],["impl Sync for SpawnError",1,["iroh_blobs::util::local_pool::SpawnError"]],["impl Sync for ProgressSendError",1,["iroh_blobs::util::progress::ProgressSendError"]],["impl Sync for ConcurrencyLimits",1,["iroh_blobs::downloader::ConcurrencyLimits"]],["impl Sync for DownloadHandle",1,["iroh_blobs::downloader::DownloadHandle"]],["impl Sync for DownloadKind",1,["iroh_blobs::downloader::DownloadKind"]],["impl Sync for DownloadRequest",1,["iroh_blobs::downloader::DownloadRequest"]],["impl Sync for Downloader",1,["iroh_blobs::downloader::Downloader"]],["impl Sync for IntentId",1,["iroh_blobs::downloader::IntentId"]],["impl Sync for RetryConfig",1,["iroh_blobs::downloader::RetryConfig"]],["impl Sync for Collection",1,["iroh_blobs::format::collection::Collection"]],["impl Sync for AtBlobContent",1,["iroh_blobs::get::fsm::AtBlobContent"]],["impl Sync for AtBlobHeader",1,["iroh_blobs::get::fsm::AtBlobHeader"]],["impl Sync for AtClosing",1,["iroh_blobs::get::fsm::AtClosing"]],["impl Sync for AtConnected",1,["iroh_blobs::get::fsm::AtConnected"]],["impl Sync for AtEndBlob",1,["iroh_blobs::get::fsm::AtEndBlob"]],["impl Sync for AtInitial",1,["iroh_blobs::get::fsm::AtInitial"]],["impl Sync for AtStartChild",1,["iroh_blobs::get::fsm::AtStartChild"]],["impl Sync for AtStartRoot",1,["iroh_blobs::get::fsm::AtStartRoot"]],["impl Sync for BlobState",1,["iroh_blobs::get::progress::BlobState"]],["impl Sync for TransferState",1,["iroh_blobs::get::progress::TransferState"]],["impl Sync for Stats",1,["iroh_blobs::get::Stats"]],["impl Sync for HashSeq",1,["iroh_blobs::hashseq::HashSeq"]],["impl Sync for HashSeqIter",1,["iroh_blobs::hashseq::HashSeqIter"]],["impl Sync for HashSeqStream",1,["iroh_blobs::hashseq::HashSeqStream"]],["impl Sync for Metrics",1,["iroh_blobs::metrics::Metrics"]],["impl Sync for GetRequest",1,["iroh_blobs::protocol::GetRequest"]],["impl Sync for RangeSpec",1,["iroh_blobs::protocol::range_spec::RangeSpec"]],["impl Sync for RangeSpecSeq",1,["iroh_blobs::protocol::range_spec::RangeSpecSeq"]],["impl Sync for UnknownErrorCode",1,["iroh_blobs::protocol::UnknownErrorCode"]],["impl Sync for TransferStats",1,["iroh_blobs::provider::TransferStats"]],["impl Sync for BatchOptions",1,["iroh_blobs::store::fs::BatchOptions"]],["impl Sync for FlatStorePaths",1,["iroh_blobs::store::fs::FlatStorePaths"]],["impl Sync for InlineOptions",1,["iroh_blobs::store::fs::InlineOptions"]],["impl Sync for Options",1,["iroh_blobs::store::fs::Options"]],["impl Sync for PathOptions",1,["iroh_blobs::store::fs::PathOptions"]],["impl Sync for Store",1,["iroh_blobs::store::fs::Store"]],["impl Sync for Entry",1,["iroh_blobs::store::mem::Entry"]],["impl Sync for Store",1,["iroh_blobs::store::mem::Store"]],["impl Sync for Entry",1,["iroh_blobs::store::readonly_mem::Entry"]],["impl Sync for Store",1,["iroh_blobs::store::readonly_mem::Store"]],["impl Sync for Config",1,["iroh_blobs::util::local_pool::Config"]],["impl Sync for LocalPool",1,["iroh_blobs::util::local_pool::LocalPool"]],["impl Sync for LocalPoolHandle",1,["iroh_blobs::util::local_pool::LocalPoolHandle"]],["impl Sync for SparseMemFile",1,["iroh_blobs::util::sparse_mem_file::SparseMemFile"]],["impl Sync for Tag",1,["iroh_blobs::util::Tag"]],["impl Sync for TempTag",1,["iroh_blobs::util::TempTag"]],["impl<'a> Sync for NonEmptyRequestRangeSpecIter<'a>",1,["iroh_blobs::protocol::range_spec::NonEmptyRequestRangeSpecIter"]],["impl<D> Sync for BlobInfo<D>",1,["iroh_blobs::get::db::BlobInfo"]],["impl<E> Sync for ResponseWriter<E>
    where\n E: Sync,
    ",1,["iroh_blobs::provider::ResponseWriter"]],["impl<I, U, F> Sync for WithFilterMap<I, U, F>
    where\n I: Sync,\n F: Sync,\n U: Sync,
    ",1,["iroh_blobs::util::progress::WithFilterMap"]],["impl<I, U, F> Sync for WithMap<I, U, F>",1,["iroh_blobs::util::progress::WithMap"]],["impl<M, F> Sync for MemOrFile<M, F>
    where\n M: Sync,\n F: Sync,
    ",1,["iroh_blobs::util::mem_or_file::MemOrFile"]],["impl<R> Sync for TrackingReader<R>
    where\n R: Sync,
    ",1,["iroh_blobs::util::io::TrackingReader"]],["impl<T> Sync for Run<T>
    where\n T: Send,
    ",1,["iroh_blobs::util::local_pool::Run"]],["impl<T> Sync for BoxedProgressSender<T>",1,["iroh_blobs::util::progress::BoxedProgressSender"]],["impl<T> Sync for FlumeProgressSender<T>
    where\n T: Send,
    ",1,["iroh_blobs::util::progress::FlumeProgressSender"]],["impl<T> Sync for IgnoreProgressSender<T>
    where\n T: Sync,
    ",1,["iroh_blobs::util::progress::IgnoreProgressSender"]],["impl<W> Sync for TrackingWriter<W>
    where\n W: Sync,
    ",1,["iroh_blobs::util::io::TrackingWriter"]],["impl<W, F> Sync for FallibleProgressSliceWriter<W, F>
    where\n W: Sync,\n F: Sync,
    ",1,["iroh_blobs::util::progress::FallibleProgressSliceWriter"]],["impl<W, F> Sync for ProgressSliceWriter<W, F>
    where\n W: Sync,\n F: Sync,
    ",1,["iroh_blobs::util::progress::ProgressSliceWriter"]]], +"iroh_blobs":[["impl Sync for DownloadError",1,["iroh_blobs::downloader::DownloadError"]],["impl Sync for FailureAction",1,["iroh_blobs::downloader::FailureAction"]],["impl Sync for ExportProgress",1,["iroh_blobs::export::ExportProgress"]],["impl Sync for BlobId",1,["iroh_blobs::get::db::BlobId"]],["impl Sync for DownloadProgress",1,["iroh_blobs::get::db::DownloadProgress"]],["impl Sync for GetResponseError",1,["iroh_blobs::get::GetResponseError"]],["impl Sync for GetError",1,["iroh_blobs::get::error::GetError"]],["impl Sync for AtBlobHeaderNextError",1,["iroh_blobs::get::fsm::AtBlobHeaderNextError"]],["impl Sync for BlobContentNext",1,["iroh_blobs::get::fsm::BlobContentNext"]],["impl Sync for ConnectedNext",1,["iroh_blobs::get::fsm::ConnectedNext"]],["impl Sync for ConnectedNextError",1,["iroh_blobs::get::fsm::ConnectedNextError"]],["impl Sync for DecodeError",1,["iroh_blobs::get::fsm::DecodeError"]],["impl Sync for EndBlobNext",1,["iroh_blobs::get::fsm::EndBlobNext"]],["impl Sync for BlobProgress",1,["iroh_blobs::get::progress::BlobProgress"]],["impl Sync for Closed",1,["iroh_blobs::protocol::Closed"]],["impl Sync for Request",1,["iroh_blobs::protocol::Request"]],["impl Sync for AddProgress",1,["iroh_blobs::provider::AddProgress"]],["impl Sync for Event",1,["iroh_blobs::provider::Event"]],["impl Sync for SentStatus",1,["iroh_blobs::provider::SentStatus"]],["impl Sync for BaoBlobSize",1,["iroh_blobs::store::traits::BaoBlobSize"]],["impl Sync for ConsistencyCheckProgress",1,["iroh_blobs::store::traits::ConsistencyCheckProgress"]],["impl Sync for EntryStatus",1,["iroh_blobs::store::traits::EntryStatus"]],["impl Sync for Event",1,["iroh_blobs::store::traits::Event"]],["impl Sync for ExportFormat",1,["iroh_blobs::store::traits::ExportFormat"]],["impl Sync for ExportMode",1,["iroh_blobs::store::traits::ExportMode"]],["impl Sync for ExportProgress",1,["iroh_blobs::store::traits::ExportProgress"]],["impl Sync for GcMarkEvent",1,["iroh_blobs::store::traits::GcMarkEvent"]],["impl Sync for GcSweepEvent",1,["iroh_blobs::store::traits::GcSweepEvent"]],["impl Sync for ImportMode",1,["iroh_blobs::store::traits::ImportMode"]],["impl Sync for ImportProgress",1,["iroh_blobs::store::traits::ImportProgress"]],["impl Sync for ReportLevel",1,["iroh_blobs::store::traits::ReportLevel"]],["impl Sync for ValidateProgress",1,["iroh_blobs::store::traits::ValidateProgress"]],["impl Sync for SetTagOption",1,["iroh_blobs::util::SetTagOption"]],["impl Sync for PanicMode",1,["iroh_blobs::util::local_pool::PanicMode"]],["impl Sync for SpawnError",1,["iroh_blobs::util::local_pool::SpawnError"]],["impl Sync for ProgressSendError",1,["iroh_blobs::util::progress::ProgressSendError"]],["impl Sync for ConcurrencyLimits",1,["iroh_blobs::downloader::ConcurrencyLimits"]],["impl Sync for DownloadHandle",1,["iroh_blobs::downloader::DownloadHandle"]],["impl Sync for DownloadKind",1,["iroh_blobs::downloader::DownloadKind"]],["impl Sync for DownloadRequest",1,["iroh_blobs::downloader::DownloadRequest"]],["impl Sync for Downloader",1,["iroh_blobs::downloader::Downloader"]],["impl Sync for IntentId",1,["iroh_blobs::downloader::IntentId"]],["impl Sync for RetryConfig",1,["iroh_blobs::downloader::RetryConfig"]],["impl Sync for Collection",1,["iroh_blobs::format::collection::Collection"]],["impl Sync for AtBlobContent",1,["iroh_blobs::get::fsm::AtBlobContent"]],["impl Sync for AtBlobHeader",1,["iroh_blobs::get::fsm::AtBlobHeader"]],["impl Sync for AtClosing",1,["iroh_blobs::get::fsm::AtClosing"]],["impl Sync for AtConnected",1,["iroh_blobs::get::fsm::AtConnected"]],["impl Sync for AtEndBlob",1,["iroh_blobs::get::fsm::AtEndBlob"]],["impl Sync for AtInitial",1,["iroh_blobs::get::fsm::AtInitial"]],["impl Sync for AtStartChild",1,["iroh_blobs::get::fsm::AtStartChild"]],["impl Sync for AtStartRoot",1,["iroh_blobs::get::fsm::AtStartRoot"]],["impl Sync for BlobState",1,["iroh_blobs::get::progress::BlobState"]],["impl Sync for TransferState",1,["iroh_blobs::get::progress::TransferState"]],["impl Sync for Stats",1,["iroh_blobs::get::Stats"]],["impl Sync for HashSeq",1,["iroh_blobs::hashseq::HashSeq"]],["impl Sync for HashSeqIter",1,["iroh_blobs::hashseq::HashSeqIter"]],["impl Sync for HashSeqStream",1,["iroh_blobs::hashseq::HashSeqStream"]],["impl Sync for Metrics",1,["iroh_blobs::metrics::Metrics"]],["impl Sync for GetRequest",1,["iroh_blobs::protocol::GetRequest"]],["impl Sync for RangeSpec",1,["iroh_blobs::protocol::range_spec::RangeSpec"]],["impl Sync for RangeSpecSeq",1,["iroh_blobs::protocol::range_spec::RangeSpecSeq"]],["impl Sync for UnknownErrorCode",1,["iroh_blobs::protocol::UnknownErrorCode"]],["impl Sync for TransferStats",1,["iroh_blobs::provider::TransferStats"]],["impl Sync for BatchOptions",1,["iroh_blobs::store::fs::BatchOptions"]],["impl Sync for FlatStorePaths",1,["iroh_blobs::store::fs::FlatStorePaths"]],["impl Sync for InlineOptions",1,["iroh_blobs::store::fs::InlineOptions"]],["impl Sync for Options",1,["iroh_blobs::store::fs::Options"]],["impl Sync for PathOptions",1,["iroh_blobs::store::fs::PathOptions"]],["impl Sync for Store",1,["iroh_blobs::store::fs::Store"]],["impl Sync for Entry",1,["iroh_blobs::store::mem::Entry"]],["impl Sync for Store",1,["iroh_blobs::store::mem::Store"]],["impl Sync for Entry",1,["iroh_blobs::store::readonly_mem::Entry"]],["impl Sync for Store",1,["iroh_blobs::store::readonly_mem::Store"]],["impl Sync for Config",1,["iroh_blobs::util::local_pool::Config"]],["impl Sync for LocalPool",1,["iroh_blobs::util::local_pool::LocalPool"]],["impl Sync for LocalPoolHandle",1,["iroh_blobs::util::local_pool::LocalPoolHandle"]],["impl Sync for SparseMemFile",1,["iroh_blobs::util::sparse_mem_file::SparseMemFile"]],["impl Sync for Tag",1,["iroh_blobs::util::Tag"]],["impl Sync for TempTag",1,["iroh_blobs::util::TempTag"]],["impl<'a> Sync for NonEmptyRequestRangeSpecIter<'a>",1,["iroh_blobs::protocol::range_spec::NonEmptyRequestRangeSpecIter"]],["impl<D> Sync for BlobInfo<D>",1,["iroh_blobs::get::db::BlobInfo"]],["impl<E> Sync for ResponseWriter<E>
    where\n E: Sync,
    ",1,["iroh_blobs::provider::ResponseWriter"]],["impl<I, U, F> Sync for WithFilterMap<I, U, F>
    where\n I: Sync,\n F: Sync,\n U: Sync,
    ",1,["iroh_blobs::util::progress::WithFilterMap"]],["impl<I, U, F> Sync for WithMap<I, U, F>",1,["iroh_blobs::util::progress::WithMap"]],["impl<M, F> Sync for MemOrFile<M, F>
    where\n M: Sync,\n F: Sync,
    ",1,["iroh_blobs::util::mem_or_file::MemOrFile"]],["impl<R> Sync for TrackingReader<R>
    where\n R: Sync,
    ",1,["iroh_blobs::util::io::TrackingReader"]],["impl<T> Sync for Run<T>
    where\n T: Send,
    ",1,["iroh_blobs::util::local_pool::Run"]],["impl<T> Sync for AsyncChannelProgressSender<T>
    where\n T: Send,
    ",1,["iroh_blobs::util::progress::AsyncChannelProgressSender"]],["impl<T> Sync for BoxedProgressSender<T>",1,["iroh_blobs::util::progress::BoxedProgressSender"]],["impl<T> Sync for FlumeProgressSender<T>
    where\n T: Send,
    ",1,["iroh_blobs::util::progress::FlumeProgressSender"]],["impl<T> Sync for IgnoreProgressSender<T>
    where\n T: Sync,
    ",1,["iroh_blobs::util::progress::IgnoreProgressSender"]],["impl<W> Sync for TrackingWriter<W>
    where\n W: Sync,
    ",1,["iroh_blobs::util::io::TrackingWriter"]],["impl<W, F> Sync for FallibleProgressSliceWriter<W, F>
    where\n W: Sync,\n F: Sync,
    ",1,["iroh_blobs::util::progress::FallibleProgressSliceWriter"]],["impl<W, F> Sync for ProgressSliceWriter<W, F>
    where\n W: Sync,\n F: Sync,
    ",1,["iroh_blobs::util::progress::ProgressSliceWriter"]]], "iroh_dns_server":[["impl Sync for BootstrapOption",1,["iroh_dns_server::config::BootstrapOption"]],["impl Sync for CertMode",1,["iroh_dns_server::http::tls::CertMode"]],["impl Sync for Config",1,["iroh_dns_server::config::Config"]],["impl Sync for MainlineConfig",1,["iroh_dns_server::config::MainlineConfig"]],["impl Sync for MetricsConfig",1,["iroh_dns_server::config::MetricsConfig"]],["impl Sync for DnsConfig",1,["iroh_dns_server::dns::DnsConfig"]],["impl Sync for DnsHandler",1,["iroh_dns_server::dns::DnsHandler"]],["impl Sync for DnsServer",1,["iroh_dns_server::dns::DnsServer"]],["impl Sync for Handle",1,["iroh_dns_server::dns::Handle"]],["impl Sync for HttpConfig",1,["iroh_dns_server::http::HttpConfig"]],["impl Sync for HttpServer",1,["iroh_dns_server::http::HttpServer"]],["impl Sync for HttpsConfig",1,["iroh_dns_server::http::HttpsConfig"]],["impl Sync for Metrics",1,["iroh_dns_server::metrics::Metrics"]],["impl Sync for Server",1,["iroh_dns_server::server::Server"]],["impl Sync for AppState",1,["iroh_dns_server::state::AppState"]]], "iroh_docs":[["impl Sync for DefaultAuthorStorage",1,["iroh_docs::engine::DefaultAuthorStorage"]],["impl Sync for LiveEvent",1,["iroh_docs::engine::LiveEvent"]],["impl Sync for Origin",1,["iroh_docs::engine::state::Origin"]],["impl Sync for SyncReason",1,["iroh_docs::engine::state::SyncReason"]],["impl Sync for AbortReason",1,["iroh_docs::net::AbortReason"]],["impl Sync for AcceptError",1,["iroh_docs::net::AcceptError"]],["impl Sync for AcceptOutcome",1,["iroh_docs::net::AcceptOutcome"]],["impl Sync for ConnectError",1,["iroh_docs::net::ConnectError"]],["impl Sync for AuthorFilter",1,["iroh_docs::store::AuthorFilter"]],["impl Sync for DownloadPolicy",1,["iroh_docs::store::DownloadPolicy"]],["impl Sync for FilterKind",1,["iroh_docs::store::FilterKind"]],["impl Sync for ImportNamespaceOutcome",1,["iroh_docs::store::ImportNamespaceOutcome"]],["impl Sync for KeyFilter",1,["iroh_docs::store::KeyFilter"]],["impl Sync for OpenError",1,["iroh_docs::store::OpenError"]],["impl Sync for SortBy",1,["iroh_docs::store::SortBy"]],["impl Sync for SortDirection",1,["iroh_docs::store::SortDirection"]],["impl Sync for Capability",1,["iroh_docs::sync::Capability"]],["impl Sync for CapabilityError",1,["iroh_docs::sync::CapabilityError"]],["impl Sync for CapabilityKind",1,["iroh_docs::sync::CapabilityKind"]],["impl Sync for ContentStatus",1,["iroh_docs::sync::ContentStatus"]],["impl Sync for Event",1,["iroh_docs::sync::Event"]],["impl Sync for InsertError",1,["iroh_docs::sync::InsertError"]],["impl Sync for InsertOrigin",1,["iroh_docs::sync::InsertOrigin"]],["impl Sync for ValidationFailure",1,["iroh_docs::sync::ValidationFailure"]],["impl Sync for OpenOpts",1,["iroh_docs::actor::OpenOpts"]],["impl Sync for OpenState",1,["iroh_docs::actor::OpenState"]],["impl Sync for SyncHandle",1,["iroh_docs::actor::SyncHandle"]],["impl Sync for DefaultAuthor",1,["iroh_docs::engine::DefaultAuthor"]],["impl Sync for Engine",1,["iroh_docs::engine::Engine"]],["impl Sync for SyncEvent",1,["iroh_docs::engine::live::SyncEvent"]],["impl Sync for Metrics",1,["iroh_docs::metrics::Metrics"]],["impl Sync for SyncFinished",1,["iroh_docs::net::SyncFinished"]],["impl Sync for Timings",1,["iroh_docs::net::Timings"]],["impl Sync for ContentHashesIterator",1,["iroh_docs::store::fs::ContentHashesIterator"]],["impl Sync for ParentIterator",1,["iroh_docs::store::fs::ParentIterator"]],["impl Sync for Store",1,["iroh_docs::store::fs::Store"]],["impl Sync for FlatQuery",1,["iroh_docs::store::FlatQuery"]],["impl Sync for MemPublicKeyStore",1,["iroh_docs::store::pubkeys::MemPublicKeyStore"]],["impl Sync for Query",1,["iroh_docs::store::Query"]],["impl Sync for SingleLatestPerKeyQuery",1,["iroh_docs::store::SingleLatestPerKeyQuery"]],["impl Sync for Author",1,["iroh_docs::keys::Author"]],["impl Sync for AuthorId",1,["iroh_docs::keys::AuthorId"]],["impl Sync for AuthorPublicKey",1,["iroh_docs::keys::AuthorPublicKey"]],["impl Sync for DocTicket",1,["iroh_docs::ticket::DocTicket"]],["impl Sync for NamespaceId",1,["iroh_docs::keys::NamespaceId"]],["impl Sync for NamespacePublicKey",1,["iroh_docs::keys::NamespacePublicKey"]],["impl Sync for NamespaceSecret",1,["iroh_docs::keys::NamespaceSecret"]],["impl Sync for AuthorHeads",1,["iroh_docs::heads::AuthorHeads"]],["impl Sync for Entry",1,["iroh_docs::sync::Entry"]],["impl Sync for EntrySignature",1,["iroh_docs::sync::EntrySignature"]],["impl Sync for ReadOnly",1,["iroh_docs::sync::ReadOnly"]],["impl Sync for Record",1,["iroh_docs::sync::Record"]],["impl Sync for RecordIdentifier",1,["iroh_docs::sync::RecordIdentifier"]],["impl Sync for ReplicaInfo",1,["iroh_docs::sync::ReplicaInfo"]],["impl Sync for SignedEntry",1,["iroh_docs::sync::SignedEntry"]],["impl Sync for SyncOutcome",1,["iroh_docs::sync::SyncOutcome"]],["impl<'a> Sync for LatestIterator<'a>",1,["iroh_docs::store::fs::LatestIterator"]],["impl<'a> Sync for RecordsRange<'a>",1,["iroh_docs::store::fs::ranges::RecordsRange"]],["impl<'a> Sync for StoreInstance<'a>",1,["iroh_docs::store::fs::StoreInstance"]],["impl<'a, I> Sync for Replica<'a, I>
    where\n I: Sync,
    ",1,["iroh_docs::sync::Replica"]],["impl<K> Sync for QueryBuilder<K>
    where\n K: Sync,
    ",1,["iroh_docs::store::QueryBuilder"]]], "iroh_gossip":[["impl Sync for Command",1,["iroh_gossip::dispatcher::Command"]],["impl Sync for Event",1,["iroh_gossip::dispatcher::Event"]],["impl Sync for GossipEvent",1,["iroh_gossip::dispatcher::GossipEvent"]],["impl Sync for DeliveryScope",1,["iroh_gossip::proto::plumtree::DeliveryScope"]],["impl Sync for Scope",1,["iroh_gossip::proto::plumtree::Scope"]],["impl Sync for MessageKind",1,["iroh_gossip::proto::state::MessageKind"]],["impl Sync for GossipDispatcher",1,["iroh_gossip::dispatcher::GossipDispatcher"]],["impl Sync for Message",1,["iroh_gossip::dispatcher::Message"]],["impl Sync for SubscribeOptions",1,["iroh_gossip::dispatcher::SubscribeOptions"]],["impl Sync for Metrics",1,["iroh_gossip::metrics::Metrics"]],["impl Sync for Gossip",1,["iroh_gossip::net::Gossip"]],["impl Sync for JoinTopicFut",1,["iroh_gossip::net::JoinTopicFut"]],["impl Sync for TopicId",1,["iroh_gossip::proto::state::TopicId"]],["impl Sync for PeerData",1,["iroh_gossip::proto::PeerData"]],["impl Sync for Config",1,["iroh_gossip::proto::topic::Config"]],["impl Sync for Stats",1,["iroh_gossip::proto::topic::Stats"]],["impl<K, V> Sync for TimeBoundCache<K, V>
    where\n K: Sync,\n V: Sync,
    ",1,["iroh_gossip::proto::util::TimeBoundCache"]],["impl<PI> Sync for InEvent<PI>
    where\n PI: Sync,
    ",1,["iroh_gossip::proto::state::InEvent"]],["impl<PI> Sync for OutEvent<PI>
    where\n PI: Sync,
    ",1,["iroh_gossip::proto::state::OutEvent"]],["impl<PI> Sync for Command<PI>
    where\n PI: Sync,
    ",1,["iroh_gossip::proto::topic::Command"]],["impl<PI> Sync for Event<PI>
    where\n PI: Sync,
    ",1,["iroh_gossip::proto::topic::Event"]],["impl<PI> Sync for InEvent<PI>
    where\n PI: Sync,
    ",1,["iroh_gossip::proto::topic::InEvent"]],["impl<PI> Sync for Message<PI>
    where\n PI: Sync,
    ",1,["iroh_gossip::proto::topic::Message"]],["impl<PI> Sync for OutEvent<PI>
    where\n PI: Sync,
    ",1,["iroh_gossip::proto::topic::OutEvent"]],["impl<PI> Sync for Timer<PI>
    where\n PI: Sync,
    ",1,["iroh_gossip::proto::topic::Timer"]],["impl<PI> Sync for Message<PI>
    where\n PI: Sync,
    ",1,["iroh_gossip::proto::state::Message"]],["impl<PI> Sync for Timer<PI>
    where\n PI: Sync,
    ",1,["iroh_gossip::proto::state::Timer"]],["impl<PI, R> Sync for State<PI, R>
    where\n PI: Sync,\n R: Sync,
    ",1,["iroh_gossip::proto::state::State"]],["impl<PI, R> Sync for State<PI, R>
    where\n PI: Sync,\n R: Sync,
    ",1,["iroh_gossip::proto::topic::State"]],["impl<T> Sync for Timers<T>
    where\n T: Sync,
    ",1,["iroh_gossip::net::util::Timers"]],["impl<T> Sync for TimerMap<T>
    where\n T: Sync,
    ",1,["iroh_gossip::proto::util::TimerMap"]]], diff --git a/pr/2574/docs/trait.impl/core/marker/trait.Unpin.js b/pr/2574/docs/trait.impl/core/marker/trait.Unpin.js index 9c581ed6e2..fa718b61b9 100644 --- a/pr/2574/docs/trait.impl/core/marker/trait.Unpin.js +++ b/pr/2574/docs/trait.impl/core/marker/trait.Unpin.js @@ -1,7 +1,7 @@ (function() {var implementors = { "iroh":[["impl Unpin for BlobStatus",1,["iroh::client::blobs::BlobStatus"]],["impl Unpin for DownloadMode",1,["iroh::client::blobs::DownloadMode"]],["impl Unpin for WrapOption",1,["iroh::client::blobs::WrapOption"]],["impl Unpin for ImportProgress",1,["iroh::client::docs::ImportProgress"]],["impl Unpin for LiveEvent",1,["iroh::client::docs::LiveEvent"]],["impl Unpin for ShareMode",1,["iroh::client::docs::ShareMode"]],["impl Unpin for DiscoveryConfig",1,["iroh::node::builder::DiscoveryConfig"]],["impl Unpin for DocsStorage",1,["iroh::node::builder::DocsStorage"]],["impl Unpin for GcPolicy",1,["iroh::node::builder::GcPolicy"]],["impl Unpin for RpcStatus",1,["iroh::node::rpc_status::RpcStatus"]],["impl Unpin for StorageConfig",1,["iroh::node::builder::StorageConfig"]],["impl Unpin for BaoValidationError",1,["iroh::util::io::BaoValidationError"]],["impl Unpin for IrohPaths",1,["iroh::util::path::IrohPaths"]],["impl Unpin for Client",1,["iroh::client::authors::Client"]],["impl Unpin for AddOutcome",1,["iroh::client::blobs::AddOutcome"]],["impl Unpin for AddProgress",1,["iroh::client::blobs::AddProgress"]],["impl Unpin for BlobInfo",1,["iroh::client::blobs::BlobInfo"]],["impl Unpin for Client",1,["iroh::client::blobs::Client"]],["impl Unpin for CollectionInfo",1,["iroh::client::blobs::CollectionInfo"]],["impl Unpin for DownloadOptions",1,["iroh::client::blobs::DownloadOptions"]],["impl Unpin for DownloadOutcome",1,["iroh::client::blobs::DownloadOutcome"]],["impl Unpin for DownloadProgress",1,["iroh::client::blobs::DownloadProgress"]],["impl Unpin for ExportOutcome",1,["iroh::client::blobs::ExportOutcome"]],["impl Unpin for ExportProgress",1,["iroh::client::blobs::ExportProgress"]],["impl Unpin for IncompleteBlobInfo",1,["iroh::client::blobs::IncompleteBlobInfo"]],["impl Unpin for Reader",1,["iroh::client::blobs::Reader"]],["impl Unpin for Client",1,["iroh::client::docs::Client"]],["impl Unpin for Doc",1,["iroh::client::docs::Doc"]],["impl Unpin for Entry",1,["iroh::client::docs::Entry"]],["impl Unpin for ExportFileOutcome",1,["iroh::client::docs::ExportFileOutcome"]],["impl Unpin for ExportFileProgress",1,["iroh::client::docs::ExportFileProgress"]],["impl Unpin for ImportFileOutcome",1,["iroh::client::docs::ImportFileOutcome"]],["impl Unpin for ImportFileProgress",1,["iroh::client::docs::ImportFileProgress"]],["impl Unpin for Client",1,["iroh::client::gossip::Client"]],["impl Unpin for SubscribeOpts",1,["iroh::client::gossip::SubscribeOpts"]],["impl Unpin for SubscribeRequest",1,["iroh::rpc_protocol::gossip::SubscribeRequest"]],["impl Unpin for Client",1,["iroh::client::node::Client"]],["impl Unpin for NodeStatus",1,["iroh::client::node::NodeStatus"]],["impl Unpin for Iroh",1,["iroh::client::Iroh"]],["impl Unpin for RpcService",1,["iroh::rpc_protocol::RpcService"]],["impl Unpin for Client",1,["iroh::client::tags::Client"]],["impl Unpin for TagInfo",1,["iroh::client::tags::TagInfo"]],["impl Unpin for Metrics",1,["iroh::metrics::Metrics"]],["impl Unpin for DataSource",1,["iroh::util::fs::DataSource"]],["impl Unpin for PathContent",1,["iroh::util::fs::PathContent"]],["impl Unpin for ProgressEmitter",1,["iroh::util::progress::ProgressEmitter"]],["impl<D> Unpin for Builder<D>
    where\n D: Unpin,
    ",1,["iroh::node::builder::Builder"]],["impl<D> Unpin for Node<D>",1,["iroh::node::Node"]],["impl<D> Unpin for ProtocolBuilder<D>",1,["iroh::node::builder::ProtocolBuilder"]],["impl<R> Unpin for ProgressAsyncReader<R>",1,["iroh::util::progress::ProgressAsyncReader"]],["impl<T> Unpin for Progress<T>",1,["iroh::util::progress::Progress"]],["impl<W> Unpin for ProgressWriter<W>
    where\n W: Unpin,
    ",1,["iroh::util::progress::ProgressWriter"]]], "iroh_base":[["impl Unpin for HexOrBase32ParseError",1,["iroh_base::base32::HexOrBase32ParseError"]],["impl Unpin for BlobFormat",1,["iroh_base::hash::BlobFormat"]],["impl Unpin for KeyParsingError",1,["iroh_base::key::KeyParsingError"]],["impl Unpin for AddrInfoOptions",1,["iroh_base::node_addr::AddrInfoOptions"]],["impl Unpin for Error",1,["iroh_base::ticket::Error"]],["impl Unpin for Hash",1,["iroh_base::hash::Hash"]],["impl Unpin for HashAndFormat",1,["iroh_base::hash::HashAndFormat"]],["impl Unpin for PublicKey",1,["iroh_base::key::PublicKey"]],["impl Unpin for SecretKey",1,["iroh_base::key::SecretKey"]],["impl Unpin for SharedSecret",1,["iroh_base::key::encryption::SharedSecret"]],["impl Unpin for AddrInfo",1,["iroh_base::node_addr::AddrInfo"]],["impl Unpin for NodeAddr",1,["iroh_base::node_addr::NodeAddr"]],["impl Unpin for RelayUrl",1,["iroh_base::node_addr::RelayUrl"]],["impl Unpin for RpcError",1,["iroh_base::rpc::RpcError"]],["impl Unpin for BlobTicket",1,["iroh_base::ticket::blob::BlobTicket"]],["impl Unpin for NodeTicket",1,["iroh_base::ticket::node::NodeTicket"]]], -"iroh_blobs":[["impl Unpin for DownloadError",1,["iroh_blobs::downloader::DownloadError"]],["impl Unpin for FailureAction",1,["iroh_blobs::downloader::FailureAction"]],["impl Unpin for ExportProgress",1,["iroh_blobs::export::ExportProgress"]],["impl Unpin for BlobId",1,["iroh_blobs::get::db::BlobId"]],["impl Unpin for DownloadProgress",1,["iroh_blobs::get::db::DownloadProgress"]],["impl Unpin for GetResponseError",1,["iroh_blobs::get::GetResponseError"]],["impl Unpin for GetError",1,["iroh_blobs::get::error::GetError"]],["impl Unpin for AtBlobHeaderNextError",1,["iroh_blobs::get::fsm::AtBlobHeaderNextError"]],["impl Unpin for BlobContentNext",1,["iroh_blobs::get::fsm::BlobContentNext"]],["impl Unpin for ConnectedNext",1,["iroh_blobs::get::fsm::ConnectedNext"]],["impl Unpin for ConnectedNextError",1,["iroh_blobs::get::fsm::ConnectedNextError"]],["impl Unpin for DecodeError",1,["iroh_blobs::get::fsm::DecodeError"]],["impl Unpin for EndBlobNext",1,["iroh_blobs::get::fsm::EndBlobNext"]],["impl Unpin for BlobProgress",1,["iroh_blobs::get::progress::BlobProgress"]],["impl Unpin for Closed",1,["iroh_blobs::protocol::Closed"]],["impl Unpin for Request",1,["iroh_blobs::protocol::Request"]],["impl Unpin for AddProgress",1,["iroh_blobs::provider::AddProgress"]],["impl Unpin for Event",1,["iroh_blobs::provider::Event"]],["impl Unpin for SentStatus",1,["iroh_blobs::provider::SentStatus"]],["impl Unpin for BaoBlobSize",1,["iroh_blobs::store::traits::BaoBlobSize"]],["impl Unpin for ConsistencyCheckProgress",1,["iroh_blobs::store::traits::ConsistencyCheckProgress"]],["impl Unpin for EntryStatus",1,["iroh_blobs::store::traits::EntryStatus"]],["impl Unpin for Event",1,["iroh_blobs::store::traits::Event"]],["impl Unpin for ExportFormat",1,["iroh_blobs::store::traits::ExportFormat"]],["impl Unpin for ExportMode",1,["iroh_blobs::store::traits::ExportMode"]],["impl Unpin for ExportProgress",1,["iroh_blobs::store::traits::ExportProgress"]],["impl Unpin for GcMarkEvent",1,["iroh_blobs::store::traits::GcMarkEvent"]],["impl Unpin for GcSweepEvent",1,["iroh_blobs::store::traits::GcSweepEvent"]],["impl Unpin for ImportMode",1,["iroh_blobs::store::traits::ImportMode"]],["impl Unpin for ImportProgress",1,["iroh_blobs::store::traits::ImportProgress"]],["impl Unpin for ReportLevel",1,["iroh_blobs::store::traits::ReportLevel"]],["impl Unpin for ValidateProgress",1,["iroh_blobs::store::traits::ValidateProgress"]],["impl Unpin for SetTagOption",1,["iroh_blobs::util::SetTagOption"]],["impl Unpin for PanicMode",1,["iroh_blobs::util::local_pool::PanicMode"]],["impl Unpin for SpawnError",1,["iroh_blobs::util::local_pool::SpawnError"]],["impl Unpin for ProgressSendError",1,["iroh_blobs::util::progress::ProgressSendError"]],["impl Unpin for ConcurrencyLimits",1,["iroh_blobs::downloader::ConcurrencyLimits"]],["impl Unpin for DownloadHandle",1,["iroh_blobs::downloader::DownloadHandle"]],["impl Unpin for DownloadKind",1,["iroh_blobs::downloader::DownloadKind"]],["impl Unpin for DownloadRequest",1,["iroh_blobs::downloader::DownloadRequest"]],["impl Unpin for Downloader",1,["iroh_blobs::downloader::Downloader"]],["impl Unpin for IntentId",1,["iroh_blobs::downloader::IntentId"]],["impl Unpin for RetryConfig",1,["iroh_blobs::downloader::RetryConfig"]],["impl Unpin for Collection",1,["iroh_blobs::format::collection::Collection"]],["impl Unpin for AtBlobContent",1,["iroh_blobs::get::fsm::AtBlobContent"]],["impl Unpin for AtBlobHeader",1,["iroh_blobs::get::fsm::AtBlobHeader"]],["impl Unpin for AtClosing",1,["iroh_blobs::get::fsm::AtClosing"]],["impl Unpin for AtConnected",1,["iroh_blobs::get::fsm::AtConnected"]],["impl Unpin for AtEndBlob",1,["iroh_blobs::get::fsm::AtEndBlob"]],["impl Unpin for AtInitial",1,["iroh_blobs::get::fsm::AtInitial"]],["impl Unpin for AtStartChild",1,["iroh_blobs::get::fsm::AtStartChild"]],["impl Unpin for AtStartRoot",1,["iroh_blobs::get::fsm::AtStartRoot"]],["impl Unpin for BlobState",1,["iroh_blobs::get::progress::BlobState"]],["impl Unpin for TransferState",1,["iroh_blobs::get::progress::TransferState"]],["impl Unpin for Stats",1,["iroh_blobs::get::Stats"]],["impl Unpin for HashSeq",1,["iroh_blobs::hashseq::HashSeq"]],["impl Unpin for HashSeqIter",1,["iroh_blobs::hashseq::HashSeqIter"]],["impl Unpin for HashSeqStream",1,["iroh_blobs::hashseq::HashSeqStream"]],["impl Unpin for Metrics",1,["iroh_blobs::metrics::Metrics"]],["impl Unpin for GetRequest",1,["iroh_blobs::protocol::GetRequest"]],["impl Unpin for RangeSpec",1,["iroh_blobs::protocol::range_spec::RangeSpec"]],["impl Unpin for RangeSpecSeq",1,["iroh_blobs::protocol::range_spec::RangeSpecSeq"]],["impl Unpin for UnknownErrorCode",1,["iroh_blobs::protocol::UnknownErrorCode"]],["impl Unpin for TransferStats",1,["iroh_blobs::provider::TransferStats"]],["impl Unpin for BatchOptions",1,["iroh_blobs::store::fs::BatchOptions"]],["impl Unpin for FlatStorePaths",1,["iroh_blobs::store::fs::FlatStorePaths"]],["impl Unpin for InlineOptions",1,["iroh_blobs::store::fs::InlineOptions"]],["impl Unpin for Options",1,["iroh_blobs::store::fs::Options"]],["impl Unpin for PathOptions",1,["iroh_blobs::store::fs::PathOptions"]],["impl Unpin for Store",1,["iroh_blobs::store::fs::Store"]],["impl Unpin for Entry",1,["iroh_blobs::store::mem::Entry"]],["impl Unpin for Store",1,["iroh_blobs::store::mem::Store"]],["impl Unpin for Entry",1,["iroh_blobs::store::readonly_mem::Entry"]],["impl Unpin for Store",1,["iroh_blobs::store::readonly_mem::Store"]],["impl Unpin for Config",1,["iroh_blobs::util::local_pool::Config"]],["impl Unpin for LocalPool",1,["iroh_blobs::util::local_pool::LocalPool"]],["impl Unpin for LocalPoolHandle",1,["iroh_blobs::util::local_pool::LocalPoolHandle"]],["impl Unpin for SparseMemFile",1,["iroh_blobs::util::sparse_mem_file::SparseMemFile"]],["impl Unpin for Tag",1,["iroh_blobs::util::Tag"]],["impl Unpin for TempTag",1,["iroh_blobs::util::TempTag"]],["impl<'a> Unpin for NonEmptyRequestRangeSpecIter<'a>",1,["iroh_blobs::protocol::range_spec::NonEmptyRequestRangeSpecIter"]],["impl<D> Unpin for BlobInfo<D>
    where\n <D as MapMut>::EntryMut: Unpin,
    ",1,["iroh_blobs::get::db::BlobInfo"]],["impl<E> Unpin for ResponseWriter<E>
    where\n E: Unpin,
    ",1,["iroh_blobs::provider::ResponseWriter"]],["impl<I, U, F> Unpin for WithFilterMap<I, U, F>
    where\n I: Unpin,\n F: Unpin,\n U: Unpin,
    ",1,["iroh_blobs::util::progress::WithFilterMap"]],["impl<I, U, F> Unpin for WithMap<I, U, F>
    where\n I: Unpin,\n F: Unpin,\n U: Unpin,
    ",1,["iroh_blobs::util::progress::WithMap"]],["impl<M, F> Unpin for MemOrFile<M, F>
    where\n M: Unpin,\n F: Unpin,
    ",1,["iroh_blobs::util::mem_or_file::MemOrFile"]],["impl<R> Unpin for TrackingReader<R>
    where\n R: Unpin,
    ",1,["iroh_blobs::util::io::TrackingReader"]],["impl<T> Unpin for Run<T>",1,["iroh_blobs::util::local_pool::Run"]],["impl<T> Unpin for BoxedProgressSender<T>",1,["iroh_blobs::util::progress::BoxedProgressSender"]],["impl<T> Unpin for FlumeProgressSender<T>",1,["iroh_blobs::util::progress::FlumeProgressSender"]],["impl<T> Unpin for IgnoreProgressSender<T>
    where\n T: Unpin,
    ",1,["iroh_blobs::util::progress::IgnoreProgressSender"]],["impl<W> Unpin for TrackingWriter<W>
    where\n W: Unpin,
    ",1,["iroh_blobs::util::io::TrackingWriter"]],["impl<W, F> Unpin for FallibleProgressSliceWriter<W, F>
    where\n W: Unpin,\n F: Unpin,
    ",1,["iroh_blobs::util::progress::FallibleProgressSliceWriter"]],["impl<W, F> Unpin for ProgressSliceWriter<W, F>
    where\n W: Unpin,\n F: Unpin,
    ",1,["iroh_blobs::util::progress::ProgressSliceWriter"]]], +"iroh_blobs":[["impl Unpin for DownloadError",1,["iroh_blobs::downloader::DownloadError"]],["impl Unpin for FailureAction",1,["iroh_blobs::downloader::FailureAction"]],["impl Unpin for ExportProgress",1,["iroh_blobs::export::ExportProgress"]],["impl Unpin for BlobId",1,["iroh_blobs::get::db::BlobId"]],["impl Unpin for DownloadProgress",1,["iroh_blobs::get::db::DownloadProgress"]],["impl Unpin for GetResponseError",1,["iroh_blobs::get::GetResponseError"]],["impl Unpin for GetError",1,["iroh_blobs::get::error::GetError"]],["impl Unpin for AtBlobHeaderNextError",1,["iroh_blobs::get::fsm::AtBlobHeaderNextError"]],["impl Unpin for BlobContentNext",1,["iroh_blobs::get::fsm::BlobContentNext"]],["impl Unpin for ConnectedNext",1,["iroh_blobs::get::fsm::ConnectedNext"]],["impl Unpin for ConnectedNextError",1,["iroh_blobs::get::fsm::ConnectedNextError"]],["impl Unpin for DecodeError",1,["iroh_blobs::get::fsm::DecodeError"]],["impl Unpin for EndBlobNext",1,["iroh_blobs::get::fsm::EndBlobNext"]],["impl Unpin for BlobProgress",1,["iroh_blobs::get::progress::BlobProgress"]],["impl Unpin for Closed",1,["iroh_blobs::protocol::Closed"]],["impl Unpin for Request",1,["iroh_blobs::protocol::Request"]],["impl Unpin for AddProgress",1,["iroh_blobs::provider::AddProgress"]],["impl Unpin for Event",1,["iroh_blobs::provider::Event"]],["impl Unpin for SentStatus",1,["iroh_blobs::provider::SentStatus"]],["impl Unpin for BaoBlobSize",1,["iroh_blobs::store::traits::BaoBlobSize"]],["impl Unpin for ConsistencyCheckProgress",1,["iroh_blobs::store::traits::ConsistencyCheckProgress"]],["impl Unpin for EntryStatus",1,["iroh_blobs::store::traits::EntryStatus"]],["impl Unpin for Event",1,["iroh_blobs::store::traits::Event"]],["impl Unpin for ExportFormat",1,["iroh_blobs::store::traits::ExportFormat"]],["impl Unpin for ExportMode",1,["iroh_blobs::store::traits::ExportMode"]],["impl Unpin for ExportProgress",1,["iroh_blobs::store::traits::ExportProgress"]],["impl Unpin for GcMarkEvent",1,["iroh_blobs::store::traits::GcMarkEvent"]],["impl Unpin for GcSweepEvent",1,["iroh_blobs::store::traits::GcSweepEvent"]],["impl Unpin for ImportMode",1,["iroh_blobs::store::traits::ImportMode"]],["impl Unpin for ImportProgress",1,["iroh_blobs::store::traits::ImportProgress"]],["impl Unpin for ReportLevel",1,["iroh_blobs::store::traits::ReportLevel"]],["impl Unpin for ValidateProgress",1,["iroh_blobs::store::traits::ValidateProgress"]],["impl Unpin for SetTagOption",1,["iroh_blobs::util::SetTagOption"]],["impl Unpin for PanicMode",1,["iroh_blobs::util::local_pool::PanicMode"]],["impl Unpin for SpawnError",1,["iroh_blobs::util::local_pool::SpawnError"]],["impl Unpin for ProgressSendError",1,["iroh_blobs::util::progress::ProgressSendError"]],["impl Unpin for ConcurrencyLimits",1,["iroh_blobs::downloader::ConcurrencyLimits"]],["impl Unpin for DownloadHandle",1,["iroh_blobs::downloader::DownloadHandle"]],["impl Unpin for DownloadKind",1,["iroh_blobs::downloader::DownloadKind"]],["impl Unpin for DownloadRequest",1,["iroh_blobs::downloader::DownloadRequest"]],["impl Unpin for Downloader",1,["iroh_blobs::downloader::Downloader"]],["impl Unpin for IntentId",1,["iroh_blobs::downloader::IntentId"]],["impl Unpin for RetryConfig",1,["iroh_blobs::downloader::RetryConfig"]],["impl Unpin for Collection",1,["iroh_blobs::format::collection::Collection"]],["impl Unpin for AtBlobContent",1,["iroh_blobs::get::fsm::AtBlobContent"]],["impl Unpin for AtBlobHeader",1,["iroh_blobs::get::fsm::AtBlobHeader"]],["impl Unpin for AtClosing",1,["iroh_blobs::get::fsm::AtClosing"]],["impl Unpin for AtConnected",1,["iroh_blobs::get::fsm::AtConnected"]],["impl Unpin for AtEndBlob",1,["iroh_blobs::get::fsm::AtEndBlob"]],["impl Unpin for AtInitial",1,["iroh_blobs::get::fsm::AtInitial"]],["impl Unpin for AtStartChild",1,["iroh_blobs::get::fsm::AtStartChild"]],["impl Unpin for AtStartRoot",1,["iroh_blobs::get::fsm::AtStartRoot"]],["impl Unpin for BlobState",1,["iroh_blobs::get::progress::BlobState"]],["impl Unpin for TransferState",1,["iroh_blobs::get::progress::TransferState"]],["impl Unpin for Stats",1,["iroh_blobs::get::Stats"]],["impl Unpin for HashSeq",1,["iroh_blobs::hashseq::HashSeq"]],["impl Unpin for HashSeqIter",1,["iroh_blobs::hashseq::HashSeqIter"]],["impl Unpin for HashSeqStream",1,["iroh_blobs::hashseq::HashSeqStream"]],["impl Unpin for Metrics",1,["iroh_blobs::metrics::Metrics"]],["impl Unpin for GetRequest",1,["iroh_blobs::protocol::GetRequest"]],["impl Unpin for RangeSpec",1,["iroh_blobs::protocol::range_spec::RangeSpec"]],["impl Unpin for RangeSpecSeq",1,["iroh_blobs::protocol::range_spec::RangeSpecSeq"]],["impl Unpin for UnknownErrorCode",1,["iroh_blobs::protocol::UnknownErrorCode"]],["impl Unpin for TransferStats",1,["iroh_blobs::provider::TransferStats"]],["impl Unpin for BatchOptions",1,["iroh_blobs::store::fs::BatchOptions"]],["impl Unpin for FlatStorePaths",1,["iroh_blobs::store::fs::FlatStorePaths"]],["impl Unpin for InlineOptions",1,["iroh_blobs::store::fs::InlineOptions"]],["impl Unpin for Options",1,["iroh_blobs::store::fs::Options"]],["impl Unpin for PathOptions",1,["iroh_blobs::store::fs::PathOptions"]],["impl Unpin for Store",1,["iroh_blobs::store::fs::Store"]],["impl Unpin for Entry",1,["iroh_blobs::store::mem::Entry"]],["impl Unpin for Store",1,["iroh_blobs::store::mem::Store"]],["impl Unpin for Entry",1,["iroh_blobs::store::readonly_mem::Entry"]],["impl Unpin for Store",1,["iroh_blobs::store::readonly_mem::Store"]],["impl Unpin for Config",1,["iroh_blobs::util::local_pool::Config"]],["impl Unpin for LocalPool",1,["iroh_blobs::util::local_pool::LocalPool"]],["impl Unpin for LocalPoolHandle",1,["iroh_blobs::util::local_pool::LocalPoolHandle"]],["impl Unpin for SparseMemFile",1,["iroh_blobs::util::sparse_mem_file::SparseMemFile"]],["impl Unpin for Tag",1,["iroh_blobs::util::Tag"]],["impl Unpin for TempTag",1,["iroh_blobs::util::TempTag"]],["impl<'a> Unpin for NonEmptyRequestRangeSpecIter<'a>",1,["iroh_blobs::protocol::range_spec::NonEmptyRequestRangeSpecIter"]],["impl<D> Unpin for BlobInfo<D>
    where\n <D as MapMut>::EntryMut: Unpin,
    ",1,["iroh_blobs::get::db::BlobInfo"]],["impl<E> Unpin for ResponseWriter<E>
    where\n E: Unpin,
    ",1,["iroh_blobs::provider::ResponseWriter"]],["impl<I, U, F> Unpin for WithFilterMap<I, U, F>
    where\n I: Unpin,\n F: Unpin,\n U: Unpin,
    ",1,["iroh_blobs::util::progress::WithFilterMap"]],["impl<I, U, F> Unpin for WithMap<I, U, F>
    where\n I: Unpin,\n F: Unpin,\n U: Unpin,
    ",1,["iroh_blobs::util::progress::WithMap"]],["impl<M, F> Unpin for MemOrFile<M, F>
    where\n M: Unpin,\n F: Unpin,
    ",1,["iroh_blobs::util::mem_or_file::MemOrFile"]],["impl<R> Unpin for TrackingReader<R>
    where\n R: Unpin,
    ",1,["iroh_blobs::util::io::TrackingReader"]],["impl<T> Unpin for Run<T>",1,["iroh_blobs::util::local_pool::Run"]],["impl<T> Unpin for AsyncChannelProgressSender<T>",1,["iroh_blobs::util::progress::AsyncChannelProgressSender"]],["impl<T> Unpin for BoxedProgressSender<T>",1,["iroh_blobs::util::progress::BoxedProgressSender"]],["impl<T> Unpin for FlumeProgressSender<T>",1,["iroh_blobs::util::progress::FlumeProgressSender"]],["impl<T> Unpin for IgnoreProgressSender<T>
    where\n T: Unpin,
    ",1,["iroh_blobs::util::progress::IgnoreProgressSender"]],["impl<W> Unpin for TrackingWriter<W>
    where\n W: Unpin,
    ",1,["iroh_blobs::util::io::TrackingWriter"]],["impl<W, F> Unpin for FallibleProgressSliceWriter<W, F>
    where\n W: Unpin,\n F: Unpin,
    ",1,["iroh_blobs::util::progress::FallibleProgressSliceWriter"]],["impl<W, F> Unpin for ProgressSliceWriter<W, F>
    where\n W: Unpin,\n F: Unpin,
    ",1,["iroh_blobs::util::progress::ProgressSliceWriter"]]], "iroh_dns_server":[["impl Unpin for BootstrapOption",1,["iroh_dns_server::config::BootstrapOption"]],["impl Unpin for CertMode",1,["iroh_dns_server::http::tls::CertMode"]],["impl Unpin for Config",1,["iroh_dns_server::config::Config"]],["impl Unpin for MainlineConfig",1,["iroh_dns_server::config::MainlineConfig"]],["impl Unpin for MetricsConfig",1,["iroh_dns_server::config::MetricsConfig"]],["impl Unpin for DnsConfig",1,["iroh_dns_server::dns::DnsConfig"]],["impl Unpin for DnsHandler",1,["iroh_dns_server::dns::DnsHandler"]],["impl Unpin for DnsServer",1,["iroh_dns_server::dns::DnsServer"]],["impl Unpin for Handle",1,["iroh_dns_server::dns::Handle"]],["impl Unpin for HttpConfig",1,["iroh_dns_server::http::HttpConfig"]],["impl Unpin for HttpServer",1,["iroh_dns_server::http::HttpServer"]],["impl Unpin for HttpsConfig",1,["iroh_dns_server::http::HttpsConfig"]],["impl Unpin for Metrics",1,["iroh_dns_server::metrics::Metrics"]],["impl Unpin for Server",1,["iroh_dns_server::server::Server"]],["impl Unpin for AppState",1,["iroh_dns_server::state::AppState"]]], "iroh_docs":[["impl Unpin for DefaultAuthorStorage",1,["iroh_docs::engine::DefaultAuthorStorage"]],["impl Unpin for LiveEvent",1,["iroh_docs::engine::LiveEvent"]],["impl Unpin for Origin",1,["iroh_docs::engine::state::Origin"]],["impl Unpin for SyncReason",1,["iroh_docs::engine::state::SyncReason"]],["impl Unpin for AbortReason",1,["iroh_docs::net::AbortReason"]],["impl Unpin for AcceptError",1,["iroh_docs::net::AcceptError"]],["impl Unpin for AcceptOutcome",1,["iroh_docs::net::AcceptOutcome"]],["impl Unpin for ConnectError",1,["iroh_docs::net::ConnectError"]],["impl Unpin for AuthorFilter",1,["iroh_docs::store::AuthorFilter"]],["impl Unpin for DownloadPolicy",1,["iroh_docs::store::DownloadPolicy"]],["impl Unpin for FilterKind",1,["iroh_docs::store::FilterKind"]],["impl Unpin for ImportNamespaceOutcome",1,["iroh_docs::store::ImportNamespaceOutcome"]],["impl Unpin for KeyFilter",1,["iroh_docs::store::KeyFilter"]],["impl Unpin for OpenError",1,["iroh_docs::store::OpenError"]],["impl Unpin for SortBy",1,["iroh_docs::store::SortBy"]],["impl Unpin for SortDirection",1,["iroh_docs::store::SortDirection"]],["impl Unpin for Capability",1,["iroh_docs::sync::Capability"]],["impl Unpin for CapabilityError",1,["iroh_docs::sync::CapabilityError"]],["impl Unpin for CapabilityKind",1,["iroh_docs::sync::CapabilityKind"]],["impl Unpin for ContentStatus",1,["iroh_docs::sync::ContentStatus"]],["impl Unpin for Event",1,["iroh_docs::sync::Event"]],["impl Unpin for InsertError",1,["iroh_docs::sync::InsertError"]],["impl Unpin for InsertOrigin",1,["iroh_docs::sync::InsertOrigin"]],["impl Unpin for ValidationFailure",1,["iroh_docs::sync::ValidationFailure"]],["impl Unpin for OpenOpts",1,["iroh_docs::actor::OpenOpts"]],["impl Unpin for OpenState",1,["iroh_docs::actor::OpenState"]],["impl Unpin for SyncHandle",1,["iroh_docs::actor::SyncHandle"]],["impl Unpin for DefaultAuthor",1,["iroh_docs::engine::DefaultAuthor"]],["impl Unpin for Engine",1,["iroh_docs::engine::Engine"]],["impl Unpin for SyncEvent",1,["iroh_docs::engine::live::SyncEvent"]],["impl Unpin for Metrics",1,["iroh_docs::metrics::Metrics"]],["impl Unpin for SyncFinished",1,["iroh_docs::net::SyncFinished"]],["impl Unpin for Timings",1,["iroh_docs::net::Timings"]],["impl Unpin for ContentHashesIterator",1,["iroh_docs::store::fs::ContentHashesIterator"]],["impl Unpin for ParentIterator",1,["iroh_docs::store::fs::ParentIterator"]],["impl Unpin for Store",1,["iroh_docs::store::fs::Store"]],["impl Unpin for FlatQuery",1,["iroh_docs::store::FlatQuery"]],["impl Unpin for MemPublicKeyStore",1,["iroh_docs::store::pubkeys::MemPublicKeyStore"]],["impl Unpin for Query",1,["iroh_docs::store::Query"]],["impl Unpin for SingleLatestPerKeyQuery",1,["iroh_docs::store::SingleLatestPerKeyQuery"]],["impl Unpin for Author",1,["iroh_docs::keys::Author"]],["impl Unpin for AuthorId",1,["iroh_docs::keys::AuthorId"]],["impl Unpin for AuthorPublicKey",1,["iroh_docs::keys::AuthorPublicKey"]],["impl Unpin for DocTicket",1,["iroh_docs::ticket::DocTicket"]],["impl Unpin for NamespaceId",1,["iroh_docs::keys::NamespaceId"]],["impl Unpin for NamespacePublicKey",1,["iroh_docs::keys::NamespacePublicKey"]],["impl Unpin for NamespaceSecret",1,["iroh_docs::keys::NamespaceSecret"]],["impl Unpin for AuthorHeads",1,["iroh_docs::heads::AuthorHeads"]],["impl Unpin for Entry",1,["iroh_docs::sync::Entry"]],["impl Unpin for EntrySignature",1,["iroh_docs::sync::EntrySignature"]],["impl Unpin for ReadOnly",1,["iroh_docs::sync::ReadOnly"]],["impl Unpin for Record",1,["iroh_docs::sync::Record"]],["impl Unpin for RecordIdentifier",1,["iroh_docs::sync::RecordIdentifier"]],["impl Unpin for ReplicaInfo",1,["iroh_docs::sync::ReplicaInfo"]],["impl Unpin for SignedEntry",1,["iroh_docs::sync::SignedEntry"]],["impl Unpin for SyncOutcome",1,["iroh_docs::sync::SyncOutcome"]],["impl<'a> Unpin for LatestIterator<'a>",1,["iroh_docs::store::fs::LatestIterator"]],["impl<'a> Unpin for RecordsRange<'a>",1,["iroh_docs::store::fs::ranges::RecordsRange"]],["impl<'a> Unpin for StoreInstance<'a>",1,["iroh_docs::store::fs::StoreInstance"]],["impl<'a, I> Unpin for Replica<'a, I>
    where\n I: Unpin,
    ",1,["iroh_docs::sync::Replica"]],["impl<K> Unpin for QueryBuilder<K>
    where\n K: Unpin,
    ",1,["iroh_docs::store::QueryBuilder"]]], "iroh_gossip":[["impl Unpin for Command",1,["iroh_gossip::dispatcher::Command"]],["impl Unpin for Event",1,["iroh_gossip::dispatcher::Event"]],["impl Unpin for GossipEvent",1,["iroh_gossip::dispatcher::GossipEvent"]],["impl Unpin for DeliveryScope",1,["iroh_gossip::proto::plumtree::DeliveryScope"]],["impl Unpin for Scope",1,["iroh_gossip::proto::plumtree::Scope"]],["impl Unpin for MessageKind",1,["iroh_gossip::proto::state::MessageKind"]],["impl Unpin for GossipDispatcher",1,["iroh_gossip::dispatcher::GossipDispatcher"]],["impl Unpin for Message",1,["iroh_gossip::dispatcher::Message"]],["impl Unpin for SubscribeOptions",1,["iroh_gossip::dispatcher::SubscribeOptions"]],["impl Unpin for Metrics",1,["iroh_gossip::metrics::Metrics"]],["impl Unpin for Gossip",1,["iroh_gossip::net::Gossip"]],["impl Unpin for JoinTopicFut",1,["iroh_gossip::net::JoinTopicFut"]],["impl Unpin for TopicId",1,["iroh_gossip::proto::state::TopicId"]],["impl Unpin for PeerData",1,["iroh_gossip::proto::PeerData"]],["impl Unpin for Config",1,["iroh_gossip::proto::topic::Config"]],["impl Unpin for Stats",1,["iroh_gossip::proto::topic::Stats"]],["impl<K, V> Unpin for TimeBoundCache<K, V>
    where\n K: Unpin,\n V: Unpin,
    ",1,["iroh_gossip::proto::util::TimeBoundCache"]],["impl<PI> Unpin for InEvent<PI>
    where\n PI: Unpin,
    ",1,["iroh_gossip::proto::state::InEvent"]],["impl<PI> Unpin for OutEvent<PI>
    where\n PI: Unpin,
    ",1,["iroh_gossip::proto::state::OutEvent"]],["impl<PI> Unpin for Command<PI>
    where\n PI: Unpin,
    ",1,["iroh_gossip::proto::topic::Command"]],["impl<PI> Unpin for Event<PI>
    where\n PI: Unpin,
    ",1,["iroh_gossip::proto::topic::Event"]],["impl<PI> Unpin for InEvent<PI>
    where\n PI: Unpin,
    ",1,["iroh_gossip::proto::topic::InEvent"]],["impl<PI> Unpin for Message<PI>
    where\n PI: Unpin,
    ",1,["iroh_gossip::proto::topic::Message"]],["impl<PI> Unpin for OutEvent<PI>
    where\n PI: Unpin,
    ",1,["iroh_gossip::proto::topic::OutEvent"]],["impl<PI> Unpin for Timer<PI>
    where\n PI: Unpin,
    ",1,["iroh_gossip::proto::topic::Timer"]],["impl<PI> Unpin for Message<PI>
    where\n PI: Unpin,
    ",1,["iroh_gossip::proto::state::Message"]],["impl<PI> Unpin for Timer<PI>
    where\n PI: Unpin,
    ",1,["iroh_gossip::proto::state::Timer"]],["impl<PI, R> Unpin for State<PI, R>
    where\n PI: Unpin,\n R: Unpin,
    ",1,["iroh_gossip::proto::state::State"]],["impl<PI, R> Unpin for State<PI, R>
    where\n PI: Unpin,\n R: Unpin,
    ",1,["iroh_gossip::proto::topic::State"]],["impl<T> Unpin for Timers<T>",1,["iroh_gossip::net::util::Timers"]],["impl<T> Unpin for TimerMap<T>",1,["iroh_gossip::proto::util::TimerMap"]]], diff --git a/pr/2574/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/pr/2574/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index c022e809e7..fbc54e7f33 100644 --- a/pr/2574/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/pr/2574/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,7 +1,7 @@ (function() {var implementors = { "iroh":[["impl !RefUnwindSafe for DiscoveryConfig",1,["iroh::node::builder::DiscoveryConfig"]],["impl !RefUnwindSafe for RpcStatus",1,["iroh::node::rpc_status::RpcStatus"]],["impl !RefUnwindSafe for BaoValidationError",1,["iroh::util::io::BaoValidationError"]],["impl !RefUnwindSafe for Client",1,["iroh::client::authors::Client"]],["impl !RefUnwindSafe for AddProgress",1,["iroh::client::blobs::AddProgress"]],["impl !RefUnwindSafe for Client",1,["iroh::client::blobs::Client"]],["impl !RefUnwindSafe for DownloadProgress",1,["iroh::client::blobs::DownloadProgress"]],["impl !RefUnwindSafe for ExportProgress",1,["iroh::client::blobs::ExportProgress"]],["impl !RefUnwindSafe for Reader",1,["iroh::client::blobs::Reader"]],["impl !RefUnwindSafe for Client",1,["iroh::client::docs::Client"]],["impl !RefUnwindSafe for Doc",1,["iroh::client::docs::Doc"]],["impl !RefUnwindSafe for ExportFileProgress",1,["iroh::client::docs::ExportFileProgress"]],["impl !RefUnwindSafe for ImportFileProgress",1,["iroh::client::docs::ImportFileProgress"]],["impl !RefUnwindSafe for Client",1,["iroh::client::gossip::Client"]],["impl !RefUnwindSafe for Client",1,["iroh::client::node::Client"]],["impl !RefUnwindSafe for Iroh",1,["iroh::client::Iroh"]],["impl !RefUnwindSafe for Client",1,["iroh::client::tags::Client"]],["impl !RefUnwindSafe for ProgressEmitter",1,["iroh::util::progress::ProgressEmitter"]],["impl RefUnwindSafe for BlobStatus",1,["iroh::client::blobs::BlobStatus"]],["impl RefUnwindSafe for DownloadMode",1,["iroh::client::blobs::DownloadMode"]],["impl RefUnwindSafe for WrapOption",1,["iroh::client::blobs::WrapOption"]],["impl RefUnwindSafe for ImportProgress",1,["iroh::client::docs::ImportProgress"]],["impl RefUnwindSafe for LiveEvent",1,["iroh::client::docs::LiveEvent"]],["impl RefUnwindSafe for ShareMode",1,["iroh::client::docs::ShareMode"]],["impl RefUnwindSafe for DocsStorage",1,["iroh::node::builder::DocsStorage"]],["impl RefUnwindSafe for GcPolicy",1,["iroh::node::builder::GcPolicy"]],["impl RefUnwindSafe for StorageConfig",1,["iroh::node::builder::StorageConfig"]],["impl RefUnwindSafe for IrohPaths",1,["iroh::util::path::IrohPaths"]],["impl RefUnwindSafe for AddOutcome",1,["iroh::client::blobs::AddOutcome"]],["impl RefUnwindSafe for BlobInfo",1,["iroh::client::blobs::BlobInfo"]],["impl RefUnwindSafe for CollectionInfo",1,["iroh::client::blobs::CollectionInfo"]],["impl RefUnwindSafe for DownloadOptions",1,["iroh::client::blobs::DownloadOptions"]],["impl RefUnwindSafe for DownloadOutcome",1,["iroh::client::blobs::DownloadOutcome"]],["impl RefUnwindSafe for ExportOutcome",1,["iroh::client::blobs::ExportOutcome"]],["impl RefUnwindSafe for IncompleteBlobInfo",1,["iroh::client::blobs::IncompleteBlobInfo"]],["impl RefUnwindSafe for Entry",1,["iroh::client::docs::Entry"]],["impl RefUnwindSafe for ExportFileOutcome",1,["iroh::client::docs::ExportFileOutcome"]],["impl RefUnwindSafe for ImportFileOutcome",1,["iroh::client::docs::ImportFileOutcome"]],["impl RefUnwindSafe for SubscribeOpts",1,["iroh::client::gossip::SubscribeOpts"]],["impl RefUnwindSafe for SubscribeRequest",1,["iroh::rpc_protocol::gossip::SubscribeRequest"]],["impl RefUnwindSafe for NodeStatus",1,["iroh::client::node::NodeStatus"]],["impl RefUnwindSafe for RpcService",1,["iroh::rpc_protocol::RpcService"]],["impl RefUnwindSafe for TagInfo",1,["iroh::client::tags::TagInfo"]],["impl RefUnwindSafe for Metrics",1,["iroh::metrics::Metrics"]],["impl RefUnwindSafe for DataSource",1,["iroh::util::fs::DataSource"]],["impl RefUnwindSafe for PathContent",1,["iroh::util::fs::PathContent"]],["impl<D> !RefUnwindSafe for Builder<D>",1,["iroh::node::builder::Builder"]],["impl<D> !RefUnwindSafe for Node<D>",1,["iroh::node::Node"]],["impl<D> !RefUnwindSafe for ProtocolBuilder<D>",1,["iroh::node::builder::ProtocolBuilder"]],["impl<R> !RefUnwindSafe for ProgressAsyncReader<R>",1,["iroh::util::progress::ProgressAsyncReader"]],["impl<T> !RefUnwindSafe for Progress<T>",1,["iroh::util::progress::Progress"]],["impl<W> !RefUnwindSafe for ProgressWriter<W>",1,["iroh::util::progress::ProgressWriter"]]], "iroh_base":[["impl !RefUnwindSafe for KeyParsingError",1,["iroh_base::key::KeyParsingError"]],["impl RefUnwindSafe for HexOrBase32ParseError",1,["iroh_base::base32::HexOrBase32ParseError"]],["impl RefUnwindSafe for BlobFormat",1,["iroh_base::hash::BlobFormat"]],["impl RefUnwindSafe for AddrInfoOptions",1,["iroh_base::node_addr::AddrInfoOptions"]],["impl RefUnwindSafe for Error",1,["iroh_base::ticket::Error"]],["impl RefUnwindSafe for Hash",1,["iroh_base::hash::Hash"]],["impl RefUnwindSafe for HashAndFormat",1,["iroh_base::hash::HashAndFormat"]],["impl RefUnwindSafe for PublicKey",1,["iroh_base::key::PublicKey"]],["impl RefUnwindSafe for SecretKey",1,["iroh_base::key::SecretKey"]],["impl RefUnwindSafe for SharedSecret",1,["iroh_base::key::encryption::SharedSecret"]],["impl RefUnwindSafe for AddrInfo",1,["iroh_base::node_addr::AddrInfo"]],["impl RefUnwindSafe for NodeAddr",1,["iroh_base::node_addr::NodeAddr"]],["impl RefUnwindSafe for RelayUrl",1,["iroh_base::node_addr::RelayUrl"]],["impl RefUnwindSafe for RpcError",1,["iroh_base::rpc::RpcError"]],["impl RefUnwindSafe for BlobTicket",1,["iroh_base::ticket::blob::BlobTicket"]],["impl RefUnwindSafe for NodeTicket",1,["iroh_base::ticket::node::NodeTicket"]]], -"iroh_blobs":[["impl !RefUnwindSafe for GetResponseError",1,["iroh_blobs::get::GetResponseError"]],["impl !RefUnwindSafe for AtBlobHeaderNextError",1,["iroh_blobs::get::fsm::AtBlobHeaderNextError"]],["impl !RefUnwindSafe for BlobContentNext",1,["iroh_blobs::get::fsm::BlobContentNext"]],["impl !RefUnwindSafe for ConnectedNextError",1,["iroh_blobs::get::fsm::ConnectedNextError"]],["impl !RefUnwindSafe for DecodeError",1,["iroh_blobs::get::fsm::DecodeError"]],["impl !RefUnwindSafe for DownloadHandle",1,["iroh_blobs::downloader::DownloadHandle"]],["impl !RefUnwindSafe for Downloader",1,["iroh_blobs::downloader::Downloader"]],["impl !RefUnwindSafe for AtConnected",1,["iroh_blobs::get::fsm::AtConnected"]],["impl !RefUnwindSafe for Store",1,["iroh_blobs::store::fs::Store"]],["impl !RefUnwindSafe for LocalPool",1,["iroh_blobs::util::local_pool::LocalPool"]],["impl !RefUnwindSafe for TempTag",1,["iroh_blobs::util::TempTag"]],["impl RefUnwindSafe for DownloadError",1,["iroh_blobs::downloader::DownloadError"]],["impl RefUnwindSafe for FailureAction",1,["iroh_blobs::downloader::FailureAction"]],["impl RefUnwindSafe for ExportProgress",1,["iroh_blobs::export::ExportProgress"]],["impl RefUnwindSafe for BlobId",1,["iroh_blobs::get::db::BlobId"]],["impl RefUnwindSafe for DownloadProgress",1,["iroh_blobs::get::db::DownloadProgress"]],["impl RefUnwindSafe for GetError",1,["iroh_blobs::get::error::GetError"]],["impl RefUnwindSafe for ConnectedNext",1,["iroh_blobs::get::fsm::ConnectedNext"]],["impl RefUnwindSafe for EndBlobNext",1,["iroh_blobs::get::fsm::EndBlobNext"]],["impl RefUnwindSafe for BlobProgress",1,["iroh_blobs::get::progress::BlobProgress"]],["impl RefUnwindSafe for Closed",1,["iroh_blobs::protocol::Closed"]],["impl RefUnwindSafe for Request",1,["iroh_blobs::protocol::Request"]],["impl RefUnwindSafe for AddProgress",1,["iroh_blobs::provider::AddProgress"]],["impl RefUnwindSafe for Event",1,["iroh_blobs::provider::Event"]],["impl RefUnwindSafe for SentStatus",1,["iroh_blobs::provider::SentStatus"]],["impl RefUnwindSafe for BaoBlobSize",1,["iroh_blobs::store::traits::BaoBlobSize"]],["impl RefUnwindSafe for ConsistencyCheckProgress",1,["iroh_blobs::store::traits::ConsistencyCheckProgress"]],["impl RefUnwindSafe for EntryStatus",1,["iroh_blobs::store::traits::EntryStatus"]],["impl RefUnwindSafe for Event",1,["iroh_blobs::store::traits::Event"]],["impl RefUnwindSafe for ExportFormat",1,["iroh_blobs::store::traits::ExportFormat"]],["impl RefUnwindSafe for ExportMode",1,["iroh_blobs::store::traits::ExportMode"]],["impl RefUnwindSafe for ExportProgress",1,["iroh_blobs::store::traits::ExportProgress"]],["impl RefUnwindSafe for GcMarkEvent",1,["iroh_blobs::store::traits::GcMarkEvent"]],["impl RefUnwindSafe for GcSweepEvent",1,["iroh_blobs::store::traits::GcSweepEvent"]],["impl RefUnwindSafe for ImportMode",1,["iroh_blobs::store::traits::ImportMode"]],["impl RefUnwindSafe for ImportProgress",1,["iroh_blobs::store::traits::ImportProgress"]],["impl RefUnwindSafe for ReportLevel",1,["iroh_blobs::store::traits::ReportLevel"]],["impl RefUnwindSafe for ValidateProgress",1,["iroh_blobs::store::traits::ValidateProgress"]],["impl RefUnwindSafe for SetTagOption",1,["iroh_blobs::util::SetTagOption"]],["impl RefUnwindSafe for PanicMode",1,["iroh_blobs::util::local_pool::PanicMode"]],["impl RefUnwindSafe for SpawnError",1,["iroh_blobs::util::local_pool::SpawnError"]],["impl RefUnwindSafe for ProgressSendError",1,["iroh_blobs::util::progress::ProgressSendError"]],["impl RefUnwindSafe for ConcurrencyLimits",1,["iroh_blobs::downloader::ConcurrencyLimits"]],["impl RefUnwindSafe for DownloadKind",1,["iroh_blobs::downloader::DownloadKind"]],["impl RefUnwindSafe for DownloadRequest",1,["iroh_blobs::downloader::DownloadRequest"]],["impl RefUnwindSafe for IntentId",1,["iroh_blobs::downloader::IntentId"]],["impl RefUnwindSafe for RetryConfig",1,["iroh_blobs::downloader::RetryConfig"]],["impl RefUnwindSafe for Collection",1,["iroh_blobs::format::collection::Collection"]],["impl RefUnwindSafe for AtBlobContent",1,["iroh_blobs::get::fsm::AtBlobContent"]],["impl RefUnwindSafe for AtBlobHeader",1,["iroh_blobs::get::fsm::AtBlobHeader"]],["impl RefUnwindSafe for AtClosing",1,["iroh_blobs::get::fsm::AtClosing"]],["impl RefUnwindSafe for AtEndBlob",1,["iroh_blobs::get::fsm::AtEndBlob"]],["impl RefUnwindSafe for AtInitial",1,["iroh_blobs::get::fsm::AtInitial"]],["impl RefUnwindSafe for AtStartChild",1,["iroh_blobs::get::fsm::AtStartChild"]],["impl RefUnwindSafe for AtStartRoot",1,["iroh_blobs::get::fsm::AtStartRoot"]],["impl RefUnwindSafe for BlobState",1,["iroh_blobs::get::progress::BlobState"]],["impl RefUnwindSafe for TransferState",1,["iroh_blobs::get::progress::TransferState"]],["impl RefUnwindSafe for Stats",1,["iroh_blobs::get::Stats"]],["impl RefUnwindSafe for HashSeq",1,["iroh_blobs::hashseq::HashSeq"]],["impl RefUnwindSafe for HashSeqIter",1,["iroh_blobs::hashseq::HashSeqIter"]],["impl RefUnwindSafe for HashSeqStream",1,["iroh_blobs::hashseq::HashSeqStream"]],["impl RefUnwindSafe for Metrics",1,["iroh_blobs::metrics::Metrics"]],["impl RefUnwindSafe for GetRequest",1,["iroh_blobs::protocol::GetRequest"]],["impl RefUnwindSafe for RangeSpec",1,["iroh_blobs::protocol::range_spec::RangeSpec"]],["impl RefUnwindSafe for RangeSpecSeq",1,["iroh_blobs::protocol::range_spec::RangeSpecSeq"]],["impl RefUnwindSafe for UnknownErrorCode",1,["iroh_blobs::protocol::UnknownErrorCode"]],["impl RefUnwindSafe for TransferStats",1,["iroh_blobs::provider::TransferStats"]],["impl RefUnwindSafe for BatchOptions",1,["iroh_blobs::store::fs::BatchOptions"]],["impl RefUnwindSafe for FlatStorePaths",1,["iroh_blobs::store::fs::FlatStorePaths"]],["impl RefUnwindSafe for InlineOptions",1,["iroh_blobs::store::fs::InlineOptions"]],["impl RefUnwindSafe for Options",1,["iroh_blobs::store::fs::Options"]],["impl RefUnwindSafe for PathOptions",1,["iroh_blobs::store::fs::PathOptions"]],["impl RefUnwindSafe for Entry",1,["iroh_blobs::store::mem::Entry"]],["impl RefUnwindSafe for Store",1,["iroh_blobs::store::mem::Store"]],["impl RefUnwindSafe for Entry",1,["iroh_blobs::store::readonly_mem::Entry"]],["impl RefUnwindSafe for Store",1,["iroh_blobs::store::readonly_mem::Store"]],["impl RefUnwindSafe for Config",1,["iroh_blobs::util::local_pool::Config"]],["impl RefUnwindSafe for LocalPoolHandle",1,["iroh_blobs::util::local_pool::LocalPoolHandle"]],["impl RefUnwindSafe for SparseMemFile",1,["iroh_blobs::util::sparse_mem_file::SparseMemFile"]],["impl RefUnwindSafe for Tag",1,["iroh_blobs::util::Tag"]],["impl<'a> RefUnwindSafe for NonEmptyRequestRangeSpecIter<'a>",1,["iroh_blobs::protocol::range_spec::NonEmptyRequestRangeSpecIter"]],["impl<D> RefUnwindSafe for BlobInfo<D>
    where\n <D as MapMut>::EntryMut: RefUnwindSafe,
    ",1,["iroh_blobs::get::db::BlobInfo"]],["impl<E> !RefUnwindSafe for ResponseWriter<E>",1,["iroh_blobs::provider::ResponseWriter"]],["impl<I, U, F> RefUnwindSafe for WithFilterMap<I, U, F>
    where\n I: RefUnwindSafe,\n F: RefUnwindSafe,\n U: RefUnwindSafe,
    ",1,["iroh_blobs::util::progress::WithFilterMap"]],["impl<I, U, F> RefUnwindSafe for WithMap<I, U, F>
    where\n I: RefUnwindSafe,\n F: RefUnwindSafe,\n U: RefUnwindSafe,
    ",1,["iroh_blobs::util::progress::WithMap"]],["impl<M, F> RefUnwindSafe for MemOrFile<M, F>
    where\n M: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["iroh_blobs::util::mem_or_file::MemOrFile"]],["impl<R> RefUnwindSafe for TrackingReader<R>
    where\n R: RefUnwindSafe,
    ",1,["iroh_blobs::util::io::TrackingReader"]],["impl<T> !RefUnwindSafe for Run<T>",1,["iroh_blobs::util::local_pool::Run"]],["impl<T> !RefUnwindSafe for BoxedProgressSender<T>",1,["iroh_blobs::util::progress::BoxedProgressSender"]],["impl<T> RefUnwindSafe for FlumeProgressSender<T>",1,["iroh_blobs::util::progress::FlumeProgressSender"]],["impl<T> RefUnwindSafe for IgnoreProgressSender<T>
    where\n T: RefUnwindSafe,
    ",1,["iroh_blobs::util::progress::IgnoreProgressSender"]],["impl<W> RefUnwindSafe for TrackingWriter<W>
    where\n W: RefUnwindSafe,
    ",1,["iroh_blobs::util::io::TrackingWriter"]],["impl<W, F> RefUnwindSafe for FallibleProgressSliceWriter<W, F>
    where\n W: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["iroh_blobs::util::progress::FallibleProgressSliceWriter"]],["impl<W, F> RefUnwindSafe for ProgressSliceWriter<W, F>
    where\n W: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["iroh_blobs::util::progress::ProgressSliceWriter"]]], +"iroh_blobs":[["impl !RefUnwindSafe for GetResponseError",1,["iroh_blobs::get::GetResponseError"]],["impl !RefUnwindSafe for AtBlobHeaderNextError",1,["iroh_blobs::get::fsm::AtBlobHeaderNextError"]],["impl !RefUnwindSafe for BlobContentNext",1,["iroh_blobs::get::fsm::BlobContentNext"]],["impl !RefUnwindSafe for ConnectedNextError",1,["iroh_blobs::get::fsm::ConnectedNextError"]],["impl !RefUnwindSafe for DecodeError",1,["iroh_blobs::get::fsm::DecodeError"]],["impl !RefUnwindSafe for DownloadHandle",1,["iroh_blobs::downloader::DownloadHandle"]],["impl !RefUnwindSafe for Downloader",1,["iroh_blobs::downloader::Downloader"]],["impl !RefUnwindSafe for AtConnected",1,["iroh_blobs::get::fsm::AtConnected"]],["impl !RefUnwindSafe for Store",1,["iroh_blobs::store::fs::Store"]],["impl !RefUnwindSafe for LocalPool",1,["iroh_blobs::util::local_pool::LocalPool"]],["impl !RefUnwindSafe for TempTag",1,["iroh_blobs::util::TempTag"]],["impl RefUnwindSafe for DownloadError",1,["iroh_blobs::downloader::DownloadError"]],["impl RefUnwindSafe for FailureAction",1,["iroh_blobs::downloader::FailureAction"]],["impl RefUnwindSafe for ExportProgress",1,["iroh_blobs::export::ExportProgress"]],["impl RefUnwindSafe for BlobId",1,["iroh_blobs::get::db::BlobId"]],["impl RefUnwindSafe for DownloadProgress",1,["iroh_blobs::get::db::DownloadProgress"]],["impl RefUnwindSafe for GetError",1,["iroh_blobs::get::error::GetError"]],["impl RefUnwindSafe for ConnectedNext",1,["iroh_blobs::get::fsm::ConnectedNext"]],["impl RefUnwindSafe for EndBlobNext",1,["iroh_blobs::get::fsm::EndBlobNext"]],["impl RefUnwindSafe for BlobProgress",1,["iroh_blobs::get::progress::BlobProgress"]],["impl RefUnwindSafe for Closed",1,["iroh_blobs::protocol::Closed"]],["impl RefUnwindSafe for Request",1,["iroh_blobs::protocol::Request"]],["impl RefUnwindSafe for AddProgress",1,["iroh_blobs::provider::AddProgress"]],["impl RefUnwindSafe for Event",1,["iroh_blobs::provider::Event"]],["impl RefUnwindSafe for SentStatus",1,["iroh_blobs::provider::SentStatus"]],["impl RefUnwindSafe for BaoBlobSize",1,["iroh_blobs::store::traits::BaoBlobSize"]],["impl RefUnwindSafe for ConsistencyCheckProgress",1,["iroh_blobs::store::traits::ConsistencyCheckProgress"]],["impl RefUnwindSafe for EntryStatus",1,["iroh_blobs::store::traits::EntryStatus"]],["impl RefUnwindSafe for Event",1,["iroh_blobs::store::traits::Event"]],["impl RefUnwindSafe for ExportFormat",1,["iroh_blobs::store::traits::ExportFormat"]],["impl RefUnwindSafe for ExportMode",1,["iroh_blobs::store::traits::ExportMode"]],["impl RefUnwindSafe for ExportProgress",1,["iroh_blobs::store::traits::ExportProgress"]],["impl RefUnwindSafe for GcMarkEvent",1,["iroh_blobs::store::traits::GcMarkEvent"]],["impl RefUnwindSafe for GcSweepEvent",1,["iroh_blobs::store::traits::GcSweepEvent"]],["impl RefUnwindSafe for ImportMode",1,["iroh_blobs::store::traits::ImportMode"]],["impl RefUnwindSafe for ImportProgress",1,["iroh_blobs::store::traits::ImportProgress"]],["impl RefUnwindSafe for ReportLevel",1,["iroh_blobs::store::traits::ReportLevel"]],["impl RefUnwindSafe for ValidateProgress",1,["iroh_blobs::store::traits::ValidateProgress"]],["impl RefUnwindSafe for SetTagOption",1,["iroh_blobs::util::SetTagOption"]],["impl RefUnwindSafe for PanicMode",1,["iroh_blobs::util::local_pool::PanicMode"]],["impl RefUnwindSafe for SpawnError",1,["iroh_blobs::util::local_pool::SpawnError"]],["impl RefUnwindSafe for ProgressSendError",1,["iroh_blobs::util::progress::ProgressSendError"]],["impl RefUnwindSafe for ConcurrencyLimits",1,["iroh_blobs::downloader::ConcurrencyLimits"]],["impl RefUnwindSafe for DownloadKind",1,["iroh_blobs::downloader::DownloadKind"]],["impl RefUnwindSafe for DownloadRequest",1,["iroh_blobs::downloader::DownloadRequest"]],["impl RefUnwindSafe for IntentId",1,["iroh_blobs::downloader::IntentId"]],["impl RefUnwindSafe for RetryConfig",1,["iroh_blobs::downloader::RetryConfig"]],["impl RefUnwindSafe for Collection",1,["iroh_blobs::format::collection::Collection"]],["impl RefUnwindSafe for AtBlobContent",1,["iroh_blobs::get::fsm::AtBlobContent"]],["impl RefUnwindSafe for AtBlobHeader",1,["iroh_blobs::get::fsm::AtBlobHeader"]],["impl RefUnwindSafe for AtClosing",1,["iroh_blobs::get::fsm::AtClosing"]],["impl RefUnwindSafe for AtEndBlob",1,["iroh_blobs::get::fsm::AtEndBlob"]],["impl RefUnwindSafe for AtInitial",1,["iroh_blobs::get::fsm::AtInitial"]],["impl RefUnwindSafe for AtStartChild",1,["iroh_blobs::get::fsm::AtStartChild"]],["impl RefUnwindSafe for AtStartRoot",1,["iroh_blobs::get::fsm::AtStartRoot"]],["impl RefUnwindSafe for BlobState",1,["iroh_blobs::get::progress::BlobState"]],["impl RefUnwindSafe for TransferState",1,["iroh_blobs::get::progress::TransferState"]],["impl RefUnwindSafe for Stats",1,["iroh_blobs::get::Stats"]],["impl RefUnwindSafe for HashSeq",1,["iroh_blobs::hashseq::HashSeq"]],["impl RefUnwindSafe for HashSeqIter",1,["iroh_blobs::hashseq::HashSeqIter"]],["impl RefUnwindSafe for HashSeqStream",1,["iroh_blobs::hashseq::HashSeqStream"]],["impl RefUnwindSafe for Metrics",1,["iroh_blobs::metrics::Metrics"]],["impl RefUnwindSafe for GetRequest",1,["iroh_blobs::protocol::GetRequest"]],["impl RefUnwindSafe for RangeSpec",1,["iroh_blobs::protocol::range_spec::RangeSpec"]],["impl RefUnwindSafe for RangeSpecSeq",1,["iroh_blobs::protocol::range_spec::RangeSpecSeq"]],["impl RefUnwindSafe for UnknownErrorCode",1,["iroh_blobs::protocol::UnknownErrorCode"]],["impl RefUnwindSafe for TransferStats",1,["iroh_blobs::provider::TransferStats"]],["impl RefUnwindSafe for BatchOptions",1,["iroh_blobs::store::fs::BatchOptions"]],["impl RefUnwindSafe for FlatStorePaths",1,["iroh_blobs::store::fs::FlatStorePaths"]],["impl RefUnwindSafe for InlineOptions",1,["iroh_blobs::store::fs::InlineOptions"]],["impl RefUnwindSafe for Options",1,["iroh_blobs::store::fs::Options"]],["impl RefUnwindSafe for PathOptions",1,["iroh_blobs::store::fs::PathOptions"]],["impl RefUnwindSafe for Entry",1,["iroh_blobs::store::mem::Entry"]],["impl RefUnwindSafe for Store",1,["iroh_blobs::store::mem::Store"]],["impl RefUnwindSafe for Entry",1,["iroh_blobs::store::readonly_mem::Entry"]],["impl RefUnwindSafe for Store",1,["iroh_blobs::store::readonly_mem::Store"]],["impl RefUnwindSafe for Config",1,["iroh_blobs::util::local_pool::Config"]],["impl RefUnwindSafe for LocalPoolHandle",1,["iroh_blobs::util::local_pool::LocalPoolHandle"]],["impl RefUnwindSafe for SparseMemFile",1,["iroh_blobs::util::sparse_mem_file::SparseMemFile"]],["impl RefUnwindSafe for Tag",1,["iroh_blobs::util::Tag"]],["impl<'a> RefUnwindSafe for NonEmptyRequestRangeSpecIter<'a>",1,["iroh_blobs::protocol::range_spec::NonEmptyRequestRangeSpecIter"]],["impl<D> RefUnwindSafe for BlobInfo<D>
    where\n <D as MapMut>::EntryMut: RefUnwindSafe,
    ",1,["iroh_blobs::get::db::BlobInfo"]],["impl<E> !RefUnwindSafe for ResponseWriter<E>",1,["iroh_blobs::provider::ResponseWriter"]],["impl<I, U, F> RefUnwindSafe for WithFilterMap<I, U, F>
    where\n I: RefUnwindSafe,\n F: RefUnwindSafe,\n U: RefUnwindSafe,
    ",1,["iroh_blobs::util::progress::WithFilterMap"]],["impl<I, U, F> RefUnwindSafe for WithMap<I, U, F>
    where\n I: RefUnwindSafe,\n F: RefUnwindSafe,\n U: RefUnwindSafe,
    ",1,["iroh_blobs::util::progress::WithMap"]],["impl<M, F> RefUnwindSafe for MemOrFile<M, F>
    where\n M: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["iroh_blobs::util::mem_or_file::MemOrFile"]],["impl<R> RefUnwindSafe for TrackingReader<R>
    where\n R: RefUnwindSafe,
    ",1,["iroh_blobs::util::io::TrackingReader"]],["impl<T> !RefUnwindSafe for Run<T>",1,["iroh_blobs::util::local_pool::Run"]],["impl<T> !RefUnwindSafe for BoxedProgressSender<T>",1,["iroh_blobs::util::progress::BoxedProgressSender"]],["impl<T> RefUnwindSafe for AsyncChannelProgressSender<T>",1,["iroh_blobs::util::progress::AsyncChannelProgressSender"]],["impl<T> RefUnwindSafe for FlumeProgressSender<T>",1,["iroh_blobs::util::progress::FlumeProgressSender"]],["impl<T> RefUnwindSafe for IgnoreProgressSender<T>
    where\n T: RefUnwindSafe,
    ",1,["iroh_blobs::util::progress::IgnoreProgressSender"]],["impl<W> RefUnwindSafe for TrackingWriter<W>
    where\n W: RefUnwindSafe,
    ",1,["iroh_blobs::util::io::TrackingWriter"]],["impl<W, F> RefUnwindSafe for FallibleProgressSliceWriter<W, F>
    where\n W: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["iroh_blobs::util::progress::FallibleProgressSliceWriter"]],["impl<W, F> RefUnwindSafe for ProgressSliceWriter<W, F>
    where\n W: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["iroh_blobs::util::progress::ProgressSliceWriter"]]], "iroh_dns_server":[["impl !RefUnwindSafe for DnsHandler",1,["iroh_dns_server::dns::DnsHandler"]],["impl !RefUnwindSafe for DnsServer",1,["iroh_dns_server::dns::DnsServer"]],["impl !RefUnwindSafe for Handle",1,["iroh_dns_server::dns::Handle"]],["impl !RefUnwindSafe for HttpServer",1,["iroh_dns_server::http::HttpServer"]],["impl !RefUnwindSafe for Server",1,["iroh_dns_server::server::Server"]],["impl !RefUnwindSafe for AppState",1,["iroh_dns_server::state::AppState"]],["impl RefUnwindSafe for BootstrapOption",1,["iroh_dns_server::config::BootstrapOption"]],["impl RefUnwindSafe for CertMode",1,["iroh_dns_server::http::tls::CertMode"]],["impl RefUnwindSafe for Config",1,["iroh_dns_server::config::Config"]],["impl RefUnwindSafe for MainlineConfig",1,["iroh_dns_server::config::MainlineConfig"]],["impl RefUnwindSafe for MetricsConfig",1,["iroh_dns_server::config::MetricsConfig"]],["impl RefUnwindSafe for DnsConfig",1,["iroh_dns_server::dns::DnsConfig"]],["impl RefUnwindSafe for HttpConfig",1,["iroh_dns_server::http::HttpConfig"]],["impl RefUnwindSafe for HttpsConfig",1,["iroh_dns_server::http::HttpsConfig"]],["impl RefUnwindSafe for Metrics",1,["iroh_dns_server::metrics::Metrics"]]], "iroh_docs":[["impl !RefUnwindSafe for SyncHandle",1,["iroh_docs::actor::SyncHandle"]],["impl !RefUnwindSafe for Engine",1,["iroh_docs::engine::Engine"]],["impl !RefUnwindSafe for ContentHashesIterator",1,["iroh_docs::store::fs::ContentHashesIterator"]],["impl !RefUnwindSafe for Store",1,["iroh_docs::store::fs::Store"]],["impl !RefUnwindSafe for ReplicaInfo",1,["iroh_docs::sync::ReplicaInfo"]],["impl RefUnwindSafe for DefaultAuthorStorage",1,["iroh_docs::engine::DefaultAuthorStorage"]],["impl RefUnwindSafe for LiveEvent",1,["iroh_docs::engine::LiveEvent"]],["impl RefUnwindSafe for Origin",1,["iroh_docs::engine::state::Origin"]],["impl RefUnwindSafe for SyncReason",1,["iroh_docs::engine::state::SyncReason"]],["impl RefUnwindSafe for AbortReason",1,["iroh_docs::net::AbortReason"]],["impl RefUnwindSafe for AcceptError",1,["iroh_docs::net::AcceptError"]],["impl RefUnwindSafe for AcceptOutcome",1,["iroh_docs::net::AcceptOutcome"]],["impl RefUnwindSafe for ConnectError",1,["iroh_docs::net::ConnectError"]],["impl RefUnwindSafe for AuthorFilter",1,["iroh_docs::store::AuthorFilter"]],["impl RefUnwindSafe for DownloadPolicy",1,["iroh_docs::store::DownloadPolicy"]],["impl RefUnwindSafe for FilterKind",1,["iroh_docs::store::FilterKind"]],["impl RefUnwindSafe for ImportNamespaceOutcome",1,["iroh_docs::store::ImportNamespaceOutcome"]],["impl RefUnwindSafe for KeyFilter",1,["iroh_docs::store::KeyFilter"]],["impl RefUnwindSafe for OpenError",1,["iroh_docs::store::OpenError"]],["impl RefUnwindSafe for SortBy",1,["iroh_docs::store::SortBy"]],["impl RefUnwindSafe for SortDirection",1,["iroh_docs::store::SortDirection"]],["impl RefUnwindSafe for Capability",1,["iroh_docs::sync::Capability"]],["impl RefUnwindSafe for CapabilityError",1,["iroh_docs::sync::CapabilityError"]],["impl RefUnwindSafe for CapabilityKind",1,["iroh_docs::sync::CapabilityKind"]],["impl RefUnwindSafe for ContentStatus",1,["iroh_docs::sync::ContentStatus"]],["impl RefUnwindSafe for Event",1,["iroh_docs::sync::Event"]],["impl RefUnwindSafe for InsertError",1,["iroh_docs::sync::InsertError"]],["impl RefUnwindSafe for InsertOrigin",1,["iroh_docs::sync::InsertOrigin"]],["impl RefUnwindSafe for ValidationFailure",1,["iroh_docs::sync::ValidationFailure"]],["impl RefUnwindSafe for OpenOpts",1,["iroh_docs::actor::OpenOpts"]],["impl RefUnwindSafe for OpenState",1,["iroh_docs::actor::OpenState"]],["impl RefUnwindSafe for DefaultAuthor",1,["iroh_docs::engine::DefaultAuthor"]],["impl RefUnwindSafe for SyncEvent",1,["iroh_docs::engine::live::SyncEvent"]],["impl RefUnwindSafe for Metrics",1,["iroh_docs::metrics::Metrics"]],["impl RefUnwindSafe for SyncFinished",1,["iroh_docs::net::SyncFinished"]],["impl RefUnwindSafe for Timings",1,["iroh_docs::net::Timings"]],["impl RefUnwindSafe for ParentIterator",1,["iroh_docs::store::fs::ParentIterator"]],["impl RefUnwindSafe for FlatQuery",1,["iroh_docs::store::FlatQuery"]],["impl RefUnwindSafe for MemPublicKeyStore",1,["iroh_docs::store::pubkeys::MemPublicKeyStore"]],["impl RefUnwindSafe for Query",1,["iroh_docs::store::Query"]],["impl RefUnwindSafe for SingleLatestPerKeyQuery",1,["iroh_docs::store::SingleLatestPerKeyQuery"]],["impl RefUnwindSafe for Author",1,["iroh_docs::keys::Author"]],["impl RefUnwindSafe for AuthorId",1,["iroh_docs::keys::AuthorId"]],["impl RefUnwindSafe for AuthorPublicKey",1,["iroh_docs::keys::AuthorPublicKey"]],["impl RefUnwindSafe for DocTicket",1,["iroh_docs::ticket::DocTicket"]],["impl RefUnwindSafe for NamespaceId",1,["iroh_docs::keys::NamespaceId"]],["impl RefUnwindSafe for NamespacePublicKey",1,["iroh_docs::keys::NamespacePublicKey"]],["impl RefUnwindSafe for NamespaceSecret",1,["iroh_docs::keys::NamespaceSecret"]],["impl RefUnwindSafe for AuthorHeads",1,["iroh_docs::heads::AuthorHeads"]],["impl RefUnwindSafe for Entry",1,["iroh_docs::sync::Entry"]],["impl RefUnwindSafe for EntrySignature",1,["iroh_docs::sync::EntrySignature"]],["impl RefUnwindSafe for ReadOnly",1,["iroh_docs::sync::ReadOnly"]],["impl RefUnwindSafe for Record",1,["iroh_docs::sync::Record"]],["impl RefUnwindSafe for RecordIdentifier",1,["iroh_docs::sync::RecordIdentifier"]],["impl RefUnwindSafe for SignedEntry",1,["iroh_docs::sync::SignedEntry"]],["impl RefUnwindSafe for SyncOutcome",1,["iroh_docs::sync::SyncOutcome"]],["impl<'a> !RefUnwindSafe for LatestIterator<'a>",1,["iroh_docs::store::fs::LatestIterator"]],["impl<'a> !RefUnwindSafe for RecordsRange<'a>",1,["iroh_docs::store::fs::ranges::RecordsRange"]],["impl<'a> !RefUnwindSafe for StoreInstance<'a>",1,["iroh_docs::store::fs::StoreInstance"]],["impl<'a, I = Box<ReplicaInfo>> !RefUnwindSafe for Replica<'a, I>",1,["iroh_docs::sync::Replica"]],["impl<K> RefUnwindSafe for QueryBuilder<K>
    where\n K: RefUnwindSafe,
    ",1,["iroh_docs::store::QueryBuilder"]]], "iroh_gossip":[["impl !RefUnwindSafe for GossipDispatcher",1,["iroh_gossip::dispatcher::GossipDispatcher"]],["impl !RefUnwindSafe for Gossip",1,["iroh_gossip::net::Gossip"]],["impl !RefUnwindSafe for JoinTopicFut",1,["iroh_gossip::net::JoinTopicFut"]],["impl RefUnwindSafe for Command",1,["iroh_gossip::dispatcher::Command"]],["impl RefUnwindSafe for Event",1,["iroh_gossip::dispatcher::Event"]],["impl RefUnwindSafe for GossipEvent",1,["iroh_gossip::dispatcher::GossipEvent"]],["impl RefUnwindSafe for DeliveryScope",1,["iroh_gossip::proto::plumtree::DeliveryScope"]],["impl RefUnwindSafe for Scope",1,["iroh_gossip::proto::plumtree::Scope"]],["impl RefUnwindSafe for MessageKind",1,["iroh_gossip::proto::state::MessageKind"]],["impl RefUnwindSafe for Message",1,["iroh_gossip::dispatcher::Message"]],["impl RefUnwindSafe for SubscribeOptions",1,["iroh_gossip::dispatcher::SubscribeOptions"]],["impl RefUnwindSafe for Metrics",1,["iroh_gossip::metrics::Metrics"]],["impl RefUnwindSafe for TopicId",1,["iroh_gossip::proto::state::TopicId"]],["impl RefUnwindSafe for PeerData",1,["iroh_gossip::proto::PeerData"]],["impl RefUnwindSafe for Config",1,["iroh_gossip::proto::topic::Config"]],["impl RefUnwindSafe for Stats",1,["iroh_gossip::proto::topic::Stats"]],["impl<K, V> RefUnwindSafe for TimeBoundCache<K, V>
    where\n K: RefUnwindSafe,\n V: RefUnwindSafe,
    ",1,["iroh_gossip::proto::util::TimeBoundCache"]],["impl<PI> RefUnwindSafe for InEvent<PI>
    where\n PI: RefUnwindSafe,
    ",1,["iroh_gossip::proto::state::InEvent"]],["impl<PI> RefUnwindSafe for OutEvent<PI>
    where\n PI: RefUnwindSafe,
    ",1,["iroh_gossip::proto::state::OutEvent"]],["impl<PI> RefUnwindSafe for Command<PI>
    where\n PI: RefUnwindSafe,
    ",1,["iroh_gossip::proto::topic::Command"]],["impl<PI> RefUnwindSafe for Event<PI>
    where\n PI: RefUnwindSafe,
    ",1,["iroh_gossip::proto::topic::Event"]],["impl<PI> RefUnwindSafe for InEvent<PI>
    where\n PI: RefUnwindSafe,
    ",1,["iroh_gossip::proto::topic::InEvent"]],["impl<PI> RefUnwindSafe for Message<PI>
    where\n PI: RefUnwindSafe,
    ",1,["iroh_gossip::proto::topic::Message"]],["impl<PI> RefUnwindSafe for OutEvent<PI>
    where\n PI: RefUnwindSafe,
    ",1,["iroh_gossip::proto::topic::OutEvent"]],["impl<PI> RefUnwindSafe for Timer<PI>
    where\n PI: RefUnwindSafe,
    ",1,["iroh_gossip::proto::topic::Timer"]],["impl<PI> RefUnwindSafe for Message<PI>
    where\n PI: RefUnwindSafe,
    ",1,["iroh_gossip::proto::state::Message"]],["impl<PI> RefUnwindSafe for Timer<PI>
    where\n PI: RefUnwindSafe,
    ",1,["iroh_gossip::proto::state::Timer"]],["impl<PI, R> RefUnwindSafe for State<PI, R>
    where\n PI: RefUnwindSafe,\n R: RefUnwindSafe,
    ",1,["iroh_gossip::proto::state::State"]],["impl<PI, R> RefUnwindSafe for State<PI, R>
    where\n PI: RefUnwindSafe,\n R: RefUnwindSafe,
    ",1,["iroh_gossip::proto::topic::State"]],["impl<T> !RefUnwindSafe for Timers<T>",1,["iroh_gossip::net::util::Timers"]],["impl<T> RefUnwindSafe for TimerMap<T>
    where\n T: RefUnwindSafe,
    ",1,["iroh_gossip::proto::util::TimerMap"]]], diff --git a/pr/2574/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/pr/2574/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index 93e4a4ea18..d6f038a643 100644 --- a/pr/2574/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/pr/2574/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,7 +1,7 @@ (function() {var implementors = { "iroh":[["impl !UnwindSafe for DiscoveryConfig",1,["iroh::node::builder::DiscoveryConfig"]],["impl !UnwindSafe for RpcStatus",1,["iroh::node::rpc_status::RpcStatus"]],["impl !UnwindSafe for BaoValidationError",1,["iroh::util::io::BaoValidationError"]],["impl !UnwindSafe for Client",1,["iroh::client::authors::Client"]],["impl !UnwindSafe for AddProgress",1,["iroh::client::blobs::AddProgress"]],["impl !UnwindSafe for Client",1,["iroh::client::blobs::Client"]],["impl !UnwindSafe for DownloadProgress",1,["iroh::client::blobs::DownloadProgress"]],["impl !UnwindSafe for ExportProgress",1,["iroh::client::blobs::ExportProgress"]],["impl !UnwindSafe for Reader",1,["iroh::client::blobs::Reader"]],["impl !UnwindSafe for Client",1,["iroh::client::docs::Client"]],["impl !UnwindSafe for Doc",1,["iroh::client::docs::Doc"]],["impl !UnwindSafe for ExportFileProgress",1,["iroh::client::docs::ExportFileProgress"]],["impl !UnwindSafe for ImportFileProgress",1,["iroh::client::docs::ImportFileProgress"]],["impl !UnwindSafe for Client",1,["iroh::client::gossip::Client"]],["impl !UnwindSafe for Client",1,["iroh::client::node::Client"]],["impl !UnwindSafe for Iroh",1,["iroh::client::Iroh"]],["impl !UnwindSafe for Client",1,["iroh::client::tags::Client"]],["impl !UnwindSafe for ProgressEmitter",1,["iroh::util::progress::ProgressEmitter"]],["impl UnwindSafe for BlobStatus",1,["iroh::client::blobs::BlobStatus"]],["impl UnwindSafe for DownloadMode",1,["iroh::client::blobs::DownloadMode"]],["impl UnwindSafe for WrapOption",1,["iroh::client::blobs::WrapOption"]],["impl UnwindSafe for ImportProgress",1,["iroh::client::docs::ImportProgress"]],["impl UnwindSafe for LiveEvent",1,["iroh::client::docs::LiveEvent"]],["impl UnwindSafe for ShareMode",1,["iroh::client::docs::ShareMode"]],["impl UnwindSafe for DocsStorage",1,["iroh::node::builder::DocsStorage"]],["impl UnwindSafe for GcPolicy",1,["iroh::node::builder::GcPolicy"]],["impl UnwindSafe for StorageConfig",1,["iroh::node::builder::StorageConfig"]],["impl UnwindSafe for IrohPaths",1,["iroh::util::path::IrohPaths"]],["impl UnwindSafe for AddOutcome",1,["iroh::client::blobs::AddOutcome"]],["impl UnwindSafe for BlobInfo",1,["iroh::client::blobs::BlobInfo"]],["impl UnwindSafe for CollectionInfo",1,["iroh::client::blobs::CollectionInfo"]],["impl UnwindSafe for DownloadOptions",1,["iroh::client::blobs::DownloadOptions"]],["impl UnwindSafe for DownloadOutcome",1,["iroh::client::blobs::DownloadOutcome"]],["impl UnwindSafe for ExportOutcome",1,["iroh::client::blobs::ExportOutcome"]],["impl UnwindSafe for IncompleteBlobInfo",1,["iroh::client::blobs::IncompleteBlobInfo"]],["impl UnwindSafe for Entry",1,["iroh::client::docs::Entry"]],["impl UnwindSafe for ExportFileOutcome",1,["iroh::client::docs::ExportFileOutcome"]],["impl UnwindSafe for ImportFileOutcome",1,["iroh::client::docs::ImportFileOutcome"]],["impl UnwindSafe for SubscribeOpts",1,["iroh::client::gossip::SubscribeOpts"]],["impl UnwindSafe for SubscribeRequest",1,["iroh::rpc_protocol::gossip::SubscribeRequest"]],["impl UnwindSafe for NodeStatus",1,["iroh::client::node::NodeStatus"]],["impl UnwindSafe for RpcService",1,["iroh::rpc_protocol::RpcService"]],["impl UnwindSafe for TagInfo",1,["iroh::client::tags::TagInfo"]],["impl UnwindSafe for Metrics",1,["iroh::metrics::Metrics"]],["impl UnwindSafe for DataSource",1,["iroh::util::fs::DataSource"]],["impl UnwindSafe for PathContent",1,["iroh::util::fs::PathContent"]],["impl<D> !UnwindSafe for Builder<D>",1,["iroh::node::builder::Builder"]],["impl<D> !UnwindSafe for Node<D>",1,["iroh::node::Node"]],["impl<D> !UnwindSafe for ProtocolBuilder<D>",1,["iroh::node::builder::ProtocolBuilder"]],["impl<R> !UnwindSafe for ProgressAsyncReader<R>",1,["iroh::util::progress::ProgressAsyncReader"]],["impl<T> !UnwindSafe for Progress<T>",1,["iroh::util::progress::Progress"]],["impl<W> !UnwindSafe for ProgressWriter<W>",1,["iroh::util::progress::ProgressWriter"]]], "iroh_base":[["impl !UnwindSafe for KeyParsingError",1,["iroh_base::key::KeyParsingError"]],["impl UnwindSafe for HexOrBase32ParseError",1,["iroh_base::base32::HexOrBase32ParseError"]],["impl UnwindSafe for BlobFormat",1,["iroh_base::hash::BlobFormat"]],["impl UnwindSafe for AddrInfoOptions",1,["iroh_base::node_addr::AddrInfoOptions"]],["impl UnwindSafe for Error",1,["iroh_base::ticket::Error"]],["impl UnwindSafe for Hash",1,["iroh_base::hash::Hash"]],["impl UnwindSafe for HashAndFormat",1,["iroh_base::hash::HashAndFormat"]],["impl UnwindSafe for PublicKey",1,["iroh_base::key::PublicKey"]],["impl UnwindSafe for SecretKey",1,["iroh_base::key::SecretKey"]],["impl UnwindSafe for SharedSecret",1,["iroh_base::key::encryption::SharedSecret"]],["impl UnwindSafe for AddrInfo",1,["iroh_base::node_addr::AddrInfo"]],["impl UnwindSafe for NodeAddr",1,["iroh_base::node_addr::NodeAddr"]],["impl UnwindSafe for RelayUrl",1,["iroh_base::node_addr::RelayUrl"]],["impl UnwindSafe for RpcError",1,["iroh_base::rpc::RpcError"]],["impl UnwindSafe for BlobTicket",1,["iroh_base::ticket::blob::BlobTicket"]],["impl UnwindSafe for NodeTicket",1,["iroh_base::ticket::node::NodeTicket"]]], -"iroh_blobs":[["impl !UnwindSafe for GetResponseError",1,["iroh_blobs::get::GetResponseError"]],["impl !UnwindSafe for AtBlobHeaderNextError",1,["iroh_blobs::get::fsm::AtBlobHeaderNextError"]],["impl !UnwindSafe for BlobContentNext",1,["iroh_blobs::get::fsm::BlobContentNext"]],["impl !UnwindSafe for ConnectedNextError",1,["iroh_blobs::get::fsm::ConnectedNextError"]],["impl !UnwindSafe for DecodeError",1,["iroh_blobs::get::fsm::DecodeError"]],["impl !UnwindSafe for DownloadHandle",1,["iroh_blobs::downloader::DownloadHandle"]],["impl !UnwindSafe for Downloader",1,["iroh_blobs::downloader::Downloader"]],["impl !UnwindSafe for AtConnected",1,["iroh_blobs::get::fsm::AtConnected"]],["impl !UnwindSafe for Store",1,["iroh_blobs::store::fs::Store"]],["impl !UnwindSafe for LocalPool",1,["iroh_blobs::util::local_pool::LocalPool"]],["impl !UnwindSafe for TempTag",1,["iroh_blobs::util::TempTag"]],["impl UnwindSafe for DownloadError",1,["iroh_blobs::downloader::DownloadError"]],["impl UnwindSafe for FailureAction",1,["iroh_blobs::downloader::FailureAction"]],["impl UnwindSafe for ExportProgress",1,["iroh_blobs::export::ExportProgress"]],["impl UnwindSafe for BlobId",1,["iroh_blobs::get::db::BlobId"]],["impl UnwindSafe for DownloadProgress",1,["iroh_blobs::get::db::DownloadProgress"]],["impl UnwindSafe for GetError",1,["iroh_blobs::get::error::GetError"]],["impl UnwindSafe for ConnectedNext",1,["iroh_blobs::get::fsm::ConnectedNext"]],["impl UnwindSafe for EndBlobNext",1,["iroh_blobs::get::fsm::EndBlobNext"]],["impl UnwindSafe for BlobProgress",1,["iroh_blobs::get::progress::BlobProgress"]],["impl UnwindSafe for Closed",1,["iroh_blobs::protocol::Closed"]],["impl UnwindSafe for Request",1,["iroh_blobs::protocol::Request"]],["impl UnwindSafe for AddProgress",1,["iroh_blobs::provider::AddProgress"]],["impl UnwindSafe for Event",1,["iroh_blobs::provider::Event"]],["impl UnwindSafe for SentStatus",1,["iroh_blobs::provider::SentStatus"]],["impl UnwindSafe for BaoBlobSize",1,["iroh_blobs::store::traits::BaoBlobSize"]],["impl UnwindSafe for ConsistencyCheckProgress",1,["iroh_blobs::store::traits::ConsistencyCheckProgress"]],["impl UnwindSafe for EntryStatus",1,["iroh_blobs::store::traits::EntryStatus"]],["impl UnwindSafe for Event",1,["iroh_blobs::store::traits::Event"]],["impl UnwindSafe for ExportFormat",1,["iroh_blobs::store::traits::ExportFormat"]],["impl UnwindSafe for ExportMode",1,["iroh_blobs::store::traits::ExportMode"]],["impl UnwindSafe for ExportProgress",1,["iroh_blobs::store::traits::ExportProgress"]],["impl UnwindSafe for GcMarkEvent",1,["iroh_blobs::store::traits::GcMarkEvent"]],["impl UnwindSafe for GcSweepEvent",1,["iroh_blobs::store::traits::GcSweepEvent"]],["impl UnwindSafe for ImportMode",1,["iroh_blobs::store::traits::ImportMode"]],["impl UnwindSafe for ImportProgress",1,["iroh_blobs::store::traits::ImportProgress"]],["impl UnwindSafe for ReportLevel",1,["iroh_blobs::store::traits::ReportLevel"]],["impl UnwindSafe for ValidateProgress",1,["iroh_blobs::store::traits::ValidateProgress"]],["impl UnwindSafe for SetTagOption",1,["iroh_blobs::util::SetTagOption"]],["impl UnwindSafe for PanicMode",1,["iroh_blobs::util::local_pool::PanicMode"]],["impl UnwindSafe for SpawnError",1,["iroh_blobs::util::local_pool::SpawnError"]],["impl UnwindSafe for ProgressSendError",1,["iroh_blobs::util::progress::ProgressSendError"]],["impl UnwindSafe for ConcurrencyLimits",1,["iroh_blobs::downloader::ConcurrencyLimits"]],["impl UnwindSafe for DownloadKind",1,["iroh_blobs::downloader::DownloadKind"]],["impl UnwindSafe for DownloadRequest",1,["iroh_blobs::downloader::DownloadRequest"]],["impl UnwindSafe for IntentId",1,["iroh_blobs::downloader::IntentId"]],["impl UnwindSafe for RetryConfig",1,["iroh_blobs::downloader::RetryConfig"]],["impl UnwindSafe for Collection",1,["iroh_blobs::format::collection::Collection"]],["impl UnwindSafe for AtBlobContent",1,["iroh_blobs::get::fsm::AtBlobContent"]],["impl UnwindSafe for AtBlobHeader",1,["iroh_blobs::get::fsm::AtBlobHeader"]],["impl UnwindSafe for AtClosing",1,["iroh_blobs::get::fsm::AtClosing"]],["impl UnwindSafe for AtEndBlob",1,["iroh_blobs::get::fsm::AtEndBlob"]],["impl UnwindSafe for AtInitial",1,["iroh_blobs::get::fsm::AtInitial"]],["impl UnwindSafe for AtStartChild",1,["iroh_blobs::get::fsm::AtStartChild"]],["impl UnwindSafe for AtStartRoot",1,["iroh_blobs::get::fsm::AtStartRoot"]],["impl UnwindSafe for BlobState",1,["iroh_blobs::get::progress::BlobState"]],["impl UnwindSafe for TransferState",1,["iroh_blobs::get::progress::TransferState"]],["impl UnwindSafe for Stats",1,["iroh_blobs::get::Stats"]],["impl UnwindSafe for HashSeq",1,["iroh_blobs::hashseq::HashSeq"]],["impl UnwindSafe for HashSeqIter",1,["iroh_blobs::hashseq::HashSeqIter"]],["impl UnwindSafe for HashSeqStream",1,["iroh_blobs::hashseq::HashSeqStream"]],["impl UnwindSafe for Metrics",1,["iroh_blobs::metrics::Metrics"]],["impl UnwindSafe for GetRequest",1,["iroh_blobs::protocol::GetRequest"]],["impl UnwindSafe for RangeSpec",1,["iroh_blobs::protocol::range_spec::RangeSpec"]],["impl UnwindSafe for RangeSpecSeq",1,["iroh_blobs::protocol::range_spec::RangeSpecSeq"]],["impl UnwindSafe for UnknownErrorCode",1,["iroh_blobs::protocol::UnknownErrorCode"]],["impl UnwindSafe for TransferStats",1,["iroh_blobs::provider::TransferStats"]],["impl UnwindSafe for BatchOptions",1,["iroh_blobs::store::fs::BatchOptions"]],["impl UnwindSafe for FlatStorePaths",1,["iroh_blobs::store::fs::FlatStorePaths"]],["impl UnwindSafe for InlineOptions",1,["iroh_blobs::store::fs::InlineOptions"]],["impl UnwindSafe for Options",1,["iroh_blobs::store::fs::Options"]],["impl UnwindSafe for PathOptions",1,["iroh_blobs::store::fs::PathOptions"]],["impl UnwindSafe for Entry",1,["iroh_blobs::store::mem::Entry"]],["impl UnwindSafe for Store",1,["iroh_blobs::store::mem::Store"]],["impl UnwindSafe for Entry",1,["iroh_blobs::store::readonly_mem::Entry"]],["impl UnwindSafe for Store",1,["iroh_blobs::store::readonly_mem::Store"]],["impl UnwindSafe for Config",1,["iroh_blobs::util::local_pool::Config"]],["impl UnwindSafe for LocalPoolHandle",1,["iroh_blobs::util::local_pool::LocalPoolHandle"]],["impl UnwindSafe for SparseMemFile",1,["iroh_blobs::util::sparse_mem_file::SparseMemFile"]],["impl UnwindSafe for Tag",1,["iroh_blobs::util::Tag"]],["impl<'a> UnwindSafe for NonEmptyRequestRangeSpecIter<'a>",1,["iroh_blobs::protocol::range_spec::NonEmptyRequestRangeSpecIter"]],["impl<D> UnwindSafe for BlobInfo<D>
    where\n <D as MapMut>::EntryMut: UnwindSafe,
    ",1,["iroh_blobs::get::db::BlobInfo"]],["impl<E> !UnwindSafe for ResponseWriter<E>",1,["iroh_blobs::provider::ResponseWriter"]],["impl<I, U, F> UnwindSafe for WithFilterMap<I, U, F>
    where\n I: UnwindSafe,\n F: UnwindSafe,\n U: UnwindSafe,
    ",1,["iroh_blobs::util::progress::WithFilterMap"]],["impl<I, U, F> UnwindSafe for WithMap<I, U, F>
    where\n I: UnwindSafe,\n F: UnwindSafe,\n U: UnwindSafe,
    ",1,["iroh_blobs::util::progress::WithMap"]],["impl<M, F> UnwindSafe for MemOrFile<M, F>
    where\n M: UnwindSafe,\n F: UnwindSafe,
    ",1,["iroh_blobs::util::mem_or_file::MemOrFile"]],["impl<R> UnwindSafe for TrackingReader<R>
    where\n R: UnwindSafe,
    ",1,["iroh_blobs::util::io::TrackingReader"]],["impl<T> !UnwindSafe for Run<T>",1,["iroh_blobs::util::local_pool::Run"]],["impl<T> !UnwindSafe for BoxedProgressSender<T>",1,["iroh_blobs::util::progress::BoxedProgressSender"]],["impl<T> UnwindSafe for FlumeProgressSender<T>",1,["iroh_blobs::util::progress::FlumeProgressSender"]],["impl<T> UnwindSafe for IgnoreProgressSender<T>
    where\n T: UnwindSafe,
    ",1,["iroh_blobs::util::progress::IgnoreProgressSender"]],["impl<W> UnwindSafe for TrackingWriter<W>
    where\n W: UnwindSafe,
    ",1,["iroh_blobs::util::io::TrackingWriter"]],["impl<W, F> UnwindSafe for FallibleProgressSliceWriter<W, F>
    where\n W: UnwindSafe,\n F: UnwindSafe,
    ",1,["iroh_blobs::util::progress::FallibleProgressSliceWriter"]],["impl<W, F> UnwindSafe for ProgressSliceWriter<W, F>
    where\n W: UnwindSafe,\n F: UnwindSafe,
    ",1,["iroh_blobs::util::progress::ProgressSliceWriter"]]], +"iroh_blobs":[["impl !UnwindSafe for GetResponseError",1,["iroh_blobs::get::GetResponseError"]],["impl !UnwindSafe for AtBlobHeaderNextError",1,["iroh_blobs::get::fsm::AtBlobHeaderNextError"]],["impl !UnwindSafe for BlobContentNext",1,["iroh_blobs::get::fsm::BlobContentNext"]],["impl !UnwindSafe for ConnectedNextError",1,["iroh_blobs::get::fsm::ConnectedNextError"]],["impl !UnwindSafe for DecodeError",1,["iroh_blobs::get::fsm::DecodeError"]],["impl !UnwindSafe for DownloadHandle",1,["iroh_blobs::downloader::DownloadHandle"]],["impl !UnwindSafe for Downloader",1,["iroh_blobs::downloader::Downloader"]],["impl !UnwindSafe for AtConnected",1,["iroh_blobs::get::fsm::AtConnected"]],["impl !UnwindSafe for Store",1,["iroh_blobs::store::fs::Store"]],["impl !UnwindSafe for LocalPool",1,["iroh_blobs::util::local_pool::LocalPool"]],["impl !UnwindSafe for TempTag",1,["iroh_blobs::util::TempTag"]],["impl UnwindSafe for DownloadError",1,["iroh_blobs::downloader::DownloadError"]],["impl UnwindSafe for FailureAction",1,["iroh_blobs::downloader::FailureAction"]],["impl UnwindSafe for ExportProgress",1,["iroh_blobs::export::ExportProgress"]],["impl UnwindSafe for BlobId",1,["iroh_blobs::get::db::BlobId"]],["impl UnwindSafe for DownloadProgress",1,["iroh_blobs::get::db::DownloadProgress"]],["impl UnwindSafe for GetError",1,["iroh_blobs::get::error::GetError"]],["impl UnwindSafe for ConnectedNext",1,["iroh_blobs::get::fsm::ConnectedNext"]],["impl UnwindSafe for EndBlobNext",1,["iroh_blobs::get::fsm::EndBlobNext"]],["impl UnwindSafe for BlobProgress",1,["iroh_blobs::get::progress::BlobProgress"]],["impl UnwindSafe for Closed",1,["iroh_blobs::protocol::Closed"]],["impl UnwindSafe for Request",1,["iroh_blobs::protocol::Request"]],["impl UnwindSafe for AddProgress",1,["iroh_blobs::provider::AddProgress"]],["impl UnwindSafe for Event",1,["iroh_blobs::provider::Event"]],["impl UnwindSafe for SentStatus",1,["iroh_blobs::provider::SentStatus"]],["impl UnwindSafe for BaoBlobSize",1,["iroh_blobs::store::traits::BaoBlobSize"]],["impl UnwindSafe for ConsistencyCheckProgress",1,["iroh_blobs::store::traits::ConsistencyCheckProgress"]],["impl UnwindSafe for EntryStatus",1,["iroh_blobs::store::traits::EntryStatus"]],["impl UnwindSafe for Event",1,["iroh_blobs::store::traits::Event"]],["impl UnwindSafe for ExportFormat",1,["iroh_blobs::store::traits::ExportFormat"]],["impl UnwindSafe for ExportMode",1,["iroh_blobs::store::traits::ExportMode"]],["impl UnwindSafe for ExportProgress",1,["iroh_blobs::store::traits::ExportProgress"]],["impl UnwindSafe for GcMarkEvent",1,["iroh_blobs::store::traits::GcMarkEvent"]],["impl UnwindSafe for GcSweepEvent",1,["iroh_blobs::store::traits::GcSweepEvent"]],["impl UnwindSafe for ImportMode",1,["iroh_blobs::store::traits::ImportMode"]],["impl UnwindSafe for ImportProgress",1,["iroh_blobs::store::traits::ImportProgress"]],["impl UnwindSafe for ReportLevel",1,["iroh_blobs::store::traits::ReportLevel"]],["impl UnwindSafe for ValidateProgress",1,["iroh_blobs::store::traits::ValidateProgress"]],["impl UnwindSafe for SetTagOption",1,["iroh_blobs::util::SetTagOption"]],["impl UnwindSafe for PanicMode",1,["iroh_blobs::util::local_pool::PanicMode"]],["impl UnwindSafe for SpawnError",1,["iroh_blobs::util::local_pool::SpawnError"]],["impl UnwindSafe for ProgressSendError",1,["iroh_blobs::util::progress::ProgressSendError"]],["impl UnwindSafe for ConcurrencyLimits",1,["iroh_blobs::downloader::ConcurrencyLimits"]],["impl UnwindSafe for DownloadKind",1,["iroh_blobs::downloader::DownloadKind"]],["impl UnwindSafe for DownloadRequest",1,["iroh_blobs::downloader::DownloadRequest"]],["impl UnwindSafe for IntentId",1,["iroh_blobs::downloader::IntentId"]],["impl UnwindSafe for RetryConfig",1,["iroh_blobs::downloader::RetryConfig"]],["impl UnwindSafe for Collection",1,["iroh_blobs::format::collection::Collection"]],["impl UnwindSafe for AtBlobContent",1,["iroh_blobs::get::fsm::AtBlobContent"]],["impl UnwindSafe for AtBlobHeader",1,["iroh_blobs::get::fsm::AtBlobHeader"]],["impl UnwindSafe for AtClosing",1,["iroh_blobs::get::fsm::AtClosing"]],["impl UnwindSafe for AtEndBlob",1,["iroh_blobs::get::fsm::AtEndBlob"]],["impl UnwindSafe for AtInitial",1,["iroh_blobs::get::fsm::AtInitial"]],["impl UnwindSafe for AtStartChild",1,["iroh_blobs::get::fsm::AtStartChild"]],["impl UnwindSafe for AtStartRoot",1,["iroh_blobs::get::fsm::AtStartRoot"]],["impl UnwindSafe for BlobState",1,["iroh_blobs::get::progress::BlobState"]],["impl UnwindSafe for TransferState",1,["iroh_blobs::get::progress::TransferState"]],["impl UnwindSafe for Stats",1,["iroh_blobs::get::Stats"]],["impl UnwindSafe for HashSeq",1,["iroh_blobs::hashseq::HashSeq"]],["impl UnwindSafe for HashSeqIter",1,["iroh_blobs::hashseq::HashSeqIter"]],["impl UnwindSafe for HashSeqStream",1,["iroh_blobs::hashseq::HashSeqStream"]],["impl UnwindSafe for Metrics",1,["iroh_blobs::metrics::Metrics"]],["impl UnwindSafe for GetRequest",1,["iroh_blobs::protocol::GetRequest"]],["impl UnwindSafe for RangeSpec",1,["iroh_blobs::protocol::range_spec::RangeSpec"]],["impl UnwindSafe for RangeSpecSeq",1,["iroh_blobs::protocol::range_spec::RangeSpecSeq"]],["impl UnwindSafe for UnknownErrorCode",1,["iroh_blobs::protocol::UnknownErrorCode"]],["impl UnwindSafe for TransferStats",1,["iroh_blobs::provider::TransferStats"]],["impl UnwindSafe for BatchOptions",1,["iroh_blobs::store::fs::BatchOptions"]],["impl UnwindSafe for FlatStorePaths",1,["iroh_blobs::store::fs::FlatStorePaths"]],["impl UnwindSafe for InlineOptions",1,["iroh_blobs::store::fs::InlineOptions"]],["impl UnwindSafe for Options",1,["iroh_blobs::store::fs::Options"]],["impl UnwindSafe for PathOptions",1,["iroh_blobs::store::fs::PathOptions"]],["impl UnwindSafe for Entry",1,["iroh_blobs::store::mem::Entry"]],["impl UnwindSafe for Store",1,["iroh_blobs::store::mem::Store"]],["impl UnwindSafe for Entry",1,["iroh_blobs::store::readonly_mem::Entry"]],["impl UnwindSafe for Store",1,["iroh_blobs::store::readonly_mem::Store"]],["impl UnwindSafe for Config",1,["iroh_blobs::util::local_pool::Config"]],["impl UnwindSafe for LocalPoolHandle",1,["iroh_blobs::util::local_pool::LocalPoolHandle"]],["impl UnwindSafe for SparseMemFile",1,["iroh_blobs::util::sparse_mem_file::SparseMemFile"]],["impl UnwindSafe for Tag",1,["iroh_blobs::util::Tag"]],["impl<'a> UnwindSafe for NonEmptyRequestRangeSpecIter<'a>",1,["iroh_blobs::protocol::range_spec::NonEmptyRequestRangeSpecIter"]],["impl<D> UnwindSafe for BlobInfo<D>
    where\n <D as MapMut>::EntryMut: UnwindSafe,
    ",1,["iroh_blobs::get::db::BlobInfo"]],["impl<E> !UnwindSafe for ResponseWriter<E>",1,["iroh_blobs::provider::ResponseWriter"]],["impl<I, U, F> UnwindSafe for WithFilterMap<I, U, F>
    where\n I: UnwindSafe,\n F: UnwindSafe,\n U: UnwindSafe,
    ",1,["iroh_blobs::util::progress::WithFilterMap"]],["impl<I, U, F> UnwindSafe for WithMap<I, U, F>
    where\n I: UnwindSafe,\n F: UnwindSafe,\n U: UnwindSafe,
    ",1,["iroh_blobs::util::progress::WithMap"]],["impl<M, F> UnwindSafe for MemOrFile<M, F>
    where\n M: UnwindSafe,\n F: UnwindSafe,
    ",1,["iroh_blobs::util::mem_or_file::MemOrFile"]],["impl<R> UnwindSafe for TrackingReader<R>
    where\n R: UnwindSafe,
    ",1,["iroh_blobs::util::io::TrackingReader"]],["impl<T> !UnwindSafe for Run<T>",1,["iroh_blobs::util::local_pool::Run"]],["impl<T> !UnwindSafe for BoxedProgressSender<T>",1,["iroh_blobs::util::progress::BoxedProgressSender"]],["impl<T> UnwindSafe for AsyncChannelProgressSender<T>",1,["iroh_blobs::util::progress::AsyncChannelProgressSender"]],["impl<T> UnwindSafe for FlumeProgressSender<T>",1,["iroh_blobs::util::progress::FlumeProgressSender"]],["impl<T> UnwindSafe for IgnoreProgressSender<T>
    where\n T: UnwindSafe,
    ",1,["iroh_blobs::util::progress::IgnoreProgressSender"]],["impl<W> UnwindSafe for TrackingWriter<W>
    where\n W: UnwindSafe,
    ",1,["iroh_blobs::util::io::TrackingWriter"]],["impl<W, F> UnwindSafe for FallibleProgressSliceWriter<W, F>
    where\n W: UnwindSafe,\n F: UnwindSafe,
    ",1,["iroh_blobs::util::progress::FallibleProgressSliceWriter"]],["impl<W, F> UnwindSafe for ProgressSliceWriter<W, F>
    where\n W: UnwindSafe,\n F: UnwindSafe,
    ",1,["iroh_blobs::util::progress::ProgressSliceWriter"]]], "iroh_dns_server":[["impl !UnwindSafe for DnsHandler",1,["iroh_dns_server::dns::DnsHandler"]],["impl !UnwindSafe for DnsServer",1,["iroh_dns_server::dns::DnsServer"]],["impl !UnwindSafe for Handle",1,["iroh_dns_server::dns::Handle"]],["impl !UnwindSafe for HttpServer",1,["iroh_dns_server::http::HttpServer"]],["impl !UnwindSafe for Server",1,["iroh_dns_server::server::Server"]],["impl !UnwindSafe for AppState",1,["iroh_dns_server::state::AppState"]],["impl UnwindSafe for BootstrapOption",1,["iroh_dns_server::config::BootstrapOption"]],["impl UnwindSafe for CertMode",1,["iroh_dns_server::http::tls::CertMode"]],["impl UnwindSafe for Config",1,["iroh_dns_server::config::Config"]],["impl UnwindSafe for MainlineConfig",1,["iroh_dns_server::config::MainlineConfig"]],["impl UnwindSafe for MetricsConfig",1,["iroh_dns_server::config::MetricsConfig"]],["impl UnwindSafe for DnsConfig",1,["iroh_dns_server::dns::DnsConfig"]],["impl UnwindSafe for HttpConfig",1,["iroh_dns_server::http::HttpConfig"]],["impl UnwindSafe for HttpsConfig",1,["iroh_dns_server::http::HttpsConfig"]],["impl UnwindSafe for Metrics",1,["iroh_dns_server::metrics::Metrics"]]], "iroh_docs":[["impl !UnwindSafe for SyncHandle",1,["iroh_docs::actor::SyncHandle"]],["impl !UnwindSafe for Engine",1,["iroh_docs::engine::Engine"]],["impl !UnwindSafe for ContentHashesIterator",1,["iroh_docs::store::fs::ContentHashesIterator"]],["impl !UnwindSafe for Store",1,["iroh_docs::store::fs::Store"]],["impl !UnwindSafe for ReplicaInfo",1,["iroh_docs::sync::ReplicaInfo"]],["impl UnwindSafe for DefaultAuthorStorage",1,["iroh_docs::engine::DefaultAuthorStorage"]],["impl UnwindSafe for LiveEvent",1,["iroh_docs::engine::LiveEvent"]],["impl UnwindSafe for Origin",1,["iroh_docs::engine::state::Origin"]],["impl UnwindSafe for SyncReason",1,["iroh_docs::engine::state::SyncReason"]],["impl UnwindSafe for AbortReason",1,["iroh_docs::net::AbortReason"]],["impl UnwindSafe for AcceptError",1,["iroh_docs::net::AcceptError"]],["impl UnwindSafe for AcceptOutcome",1,["iroh_docs::net::AcceptOutcome"]],["impl UnwindSafe for ConnectError",1,["iroh_docs::net::ConnectError"]],["impl UnwindSafe for AuthorFilter",1,["iroh_docs::store::AuthorFilter"]],["impl UnwindSafe for DownloadPolicy",1,["iroh_docs::store::DownloadPolicy"]],["impl UnwindSafe for FilterKind",1,["iroh_docs::store::FilterKind"]],["impl UnwindSafe for ImportNamespaceOutcome",1,["iroh_docs::store::ImportNamespaceOutcome"]],["impl UnwindSafe for KeyFilter",1,["iroh_docs::store::KeyFilter"]],["impl UnwindSafe for OpenError",1,["iroh_docs::store::OpenError"]],["impl UnwindSafe for SortBy",1,["iroh_docs::store::SortBy"]],["impl UnwindSafe for SortDirection",1,["iroh_docs::store::SortDirection"]],["impl UnwindSafe for Capability",1,["iroh_docs::sync::Capability"]],["impl UnwindSafe for CapabilityError",1,["iroh_docs::sync::CapabilityError"]],["impl UnwindSafe for CapabilityKind",1,["iroh_docs::sync::CapabilityKind"]],["impl UnwindSafe for ContentStatus",1,["iroh_docs::sync::ContentStatus"]],["impl UnwindSafe for Event",1,["iroh_docs::sync::Event"]],["impl UnwindSafe for InsertError",1,["iroh_docs::sync::InsertError"]],["impl UnwindSafe for InsertOrigin",1,["iroh_docs::sync::InsertOrigin"]],["impl UnwindSafe for ValidationFailure",1,["iroh_docs::sync::ValidationFailure"]],["impl UnwindSafe for OpenOpts",1,["iroh_docs::actor::OpenOpts"]],["impl UnwindSafe for OpenState",1,["iroh_docs::actor::OpenState"]],["impl UnwindSafe for DefaultAuthor",1,["iroh_docs::engine::DefaultAuthor"]],["impl UnwindSafe for SyncEvent",1,["iroh_docs::engine::live::SyncEvent"]],["impl UnwindSafe for Metrics",1,["iroh_docs::metrics::Metrics"]],["impl UnwindSafe for SyncFinished",1,["iroh_docs::net::SyncFinished"]],["impl UnwindSafe for Timings",1,["iroh_docs::net::Timings"]],["impl UnwindSafe for ParentIterator",1,["iroh_docs::store::fs::ParentIterator"]],["impl UnwindSafe for FlatQuery",1,["iroh_docs::store::FlatQuery"]],["impl UnwindSafe for MemPublicKeyStore",1,["iroh_docs::store::pubkeys::MemPublicKeyStore"]],["impl UnwindSafe for Query",1,["iroh_docs::store::Query"]],["impl UnwindSafe for SingleLatestPerKeyQuery",1,["iroh_docs::store::SingleLatestPerKeyQuery"]],["impl UnwindSafe for Author",1,["iroh_docs::keys::Author"]],["impl UnwindSafe for AuthorId",1,["iroh_docs::keys::AuthorId"]],["impl UnwindSafe for AuthorPublicKey",1,["iroh_docs::keys::AuthorPublicKey"]],["impl UnwindSafe for DocTicket",1,["iroh_docs::ticket::DocTicket"]],["impl UnwindSafe for NamespaceId",1,["iroh_docs::keys::NamespaceId"]],["impl UnwindSafe for NamespacePublicKey",1,["iroh_docs::keys::NamespacePublicKey"]],["impl UnwindSafe for NamespaceSecret",1,["iroh_docs::keys::NamespaceSecret"]],["impl UnwindSafe for AuthorHeads",1,["iroh_docs::heads::AuthorHeads"]],["impl UnwindSafe for Entry",1,["iroh_docs::sync::Entry"]],["impl UnwindSafe for EntrySignature",1,["iroh_docs::sync::EntrySignature"]],["impl UnwindSafe for ReadOnly",1,["iroh_docs::sync::ReadOnly"]],["impl UnwindSafe for Record",1,["iroh_docs::sync::Record"]],["impl UnwindSafe for RecordIdentifier",1,["iroh_docs::sync::RecordIdentifier"]],["impl UnwindSafe for SignedEntry",1,["iroh_docs::sync::SignedEntry"]],["impl UnwindSafe for SyncOutcome",1,["iroh_docs::sync::SyncOutcome"]],["impl<'a> !UnwindSafe for LatestIterator<'a>",1,["iroh_docs::store::fs::LatestIterator"]],["impl<'a> !UnwindSafe for RecordsRange<'a>",1,["iroh_docs::store::fs::ranges::RecordsRange"]],["impl<'a> !UnwindSafe for StoreInstance<'a>",1,["iroh_docs::store::fs::StoreInstance"]],["impl<'a, I = Box<ReplicaInfo>> !UnwindSafe for Replica<'a, I>",1,["iroh_docs::sync::Replica"]],["impl<K> UnwindSafe for QueryBuilder<K>
    where\n K: UnwindSafe,
    ",1,["iroh_docs::store::QueryBuilder"]]], "iroh_gossip":[["impl !UnwindSafe for GossipDispatcher",1,["iroh_gossip::dispatcher::GossipDispatcher"]],["impl !UnwindSafe for Gossip",1,["iroh_gossip::net::Gossip"]],["impl !UnwindSafe for JoinTopicFut",1,["iroh_gossip::net::JoinTopicFut"]],["impl UnwindSafe for Command",1,["iroh_gossip::dispatcher::Command"]],["impl UnwindSafe for Event",1,["iroh_gossip::dispatcher::Event"]],["impl UnwindSafe for GossipEvent",1,["iroh_gossip::dispatcher::GossipEvent"]],["impl UnwindSafe for DeliveryScope",1,["iroh_gossip::proto::plumtree::DeliveryScope"]],["impl UnwindSafe for Scope",1,["iroh_gossip::proto::plumtree::Scope"]],["impl UnwindSafe for MessageKind",1,["iroh_gossip::proto::state::MessageKind"]],["impl UnwindSafe for Message",1,["iroh_gossip::dispatcher::Message"]],["impl UnwindSafe for SubscribeOptions",1,["iroh_gossip::dispatcher::SubscribeOptions"]],["impl UnwindSafe for Metrics",1,["iroh_gossip::metrics::Metrics"]],["impl UnwindSafe for TopicId",1,["iroh_gossip::proto::state::TopicId"]],["impl UnwindSafe for PeerData",1,["iroh_gossip::proto::PeerData"]],["impl UnwindSafe for Config",1,["iroh_gossip::proto::topic::Config"]],["impl UnwindSafe for Stats",1,["iroh_gossip::proto::topic::Stats"]],["impl<K, V> UnwindSafe for TimeBoundCache<K, V>
    where\n K: UnwindSafe + RefUnwindSafe,\n V: UnwindSafe,
    ",1,["iroh_gossip::proto::util::TimeBoundCache"]],["impl<PI> UnwindSafe for InEvent<PI>
    where\n PI: UnwindSafe,
    ",1,["iroh_gossip::proto::state::InEvent"]],["impl<PI> UnwindSafe for OutEvent<PI>
    where\n PI: UnwindSafe,
    ",1,["iroh_gossip::proto::state::OutEvent"]],["impl<PI> UnwindSafe for Command<PI>
    where\n PI: UnwindSafe,
    ",1,["iroh_gossip::proto::topic::Command"]],["impl<PI> UnwindSafe for Event<PI>
    where\n PI: UnwindSafe,
    ",1,["iroh_gossip::proto::topic::Event"]],["impl<PI> UnwindSafe for InEvent<PI>
    where\n PI: UnwindSafe,
    ",1,["iroh_gossip::proto::topic::InEvent"]],["impl<PI> UnwindSafe for Message<PI>
    where\n PI: UnwindSafe,
    ",1,["iroh_gossip::proto::topic::Message"]],["impl<PI> UnwindSafe for OutEvent<PI>
    where\n PI: UnwindSafe,
    ",1,["iroh_gossip::proto::topic::OutEvent"]],["impl<PI> UnwindSafe for Timer<PI>
    where\n PI: UnwindSafe,
    ",1,["iroh_gossip::proto::topic::Timer"]],["impl<PI> UnwindSafe for Message<PI>
    where\n PI: UnwindSafe,
    ",1,["iroh_gossip::proto::state::Message"]],["impl<PI> UnwindSafe for Timer<PI>
    where\n PI: UnwindSafe,
    ",1,["iroh_gossip::proto::state::Timer"]],["impl<PI, R> UnwindSafe for State<PI, R>
    where\n PI: UnwindSafe,\n R: UnwindSafe,
    ",1,["iroh_gossip::proto::state::State"]],["impl<PI, R> UnwindSafe for State<PI, R>
    where\n PI: UnwindSafe,\n R: UnwindSafe,
    ",1,["iroh_gossip::proto::topic::State"]],["impl<T> !UnwindSafe for Timers<T>",1,["iroh_gossip::net::util::Timers"]],["impl<T> UnwindSafe for TimerMap<T>
    where\n T: RefUnwindSafe,
    ",1,["iroh_gossip::proto::util::TimerMap"]]], diff --git a/pr/2574/docs/trait.impl/iroh_base/ticket/trait.Ticket.js b/pr/2574/docs/trait.impl/iroh_base/ticket/trait.Ticket.js index 5d209fabd2..12fa1e3ee5 100644 --- a/pr/2574/docs/trait.impl/iroh_base/ticket/trait.Ticket.js +++ b/pr/2574/docs/trait.impl/iroh_base/ticket/trait.Ticket.js @@ -1,5 +1,5 @@ (function() {var implementors = { "iroh":[], "iroh_base":[], -"iroh_docs":[["impl Ticket for DocTicket"]] +"iroh_docs":[["impl Ticket for DocTicket"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/pr/2574/docs/trait.impl/iroh_metrics/core/trait.Metric.js b/pr/2574/docs/trait.impl/iroh_metrics/core/trait.Metric.js index d96d2ad190..d96c0fcf7e 100644 --- a/pr/2574/docs/trait.impl/iroh_metrics/core/trait.Metric.js +++ b/pr/2574/docs/trait.impl/iroh_metrics/core/trait.Metric.js @@ -2,8 +2,8 @@ "iroh":[["impl Metric for Metrics"]], "iroh_blobs":[["impl Metric for Metrics"]], "iroh_dns_server":[["impl Metric for Metrics"]], -"iroh_docs":[["impl Metric for Metrics"]], -"iroh_gossip":[["impl Metric for Metrics"]], -"iroh_net":[["impl Metric for Metrics"],["impl Metric for Metrics"],["impl Metric for Metrics"],["impl Metric for Metrics"]], -"iroh_relay":[["impl Metric for StunMetrics"]] +"iroh_docs":[["impl Metric for Metrics"]], +"iroh_gossip":[["impl Metric for Metrics"]], +"iroh_net":[["impl Metric for Metrics"],["impl Metric for Metrics"],["impl Metric for Metrics"],["impl Metric for Metrics"]], +"iroh_relay":[["impl Metric for StunMetrics"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/pr/2574/docs/type.impl/iroh/gossip/proto/enum.Command.js b/pr/2574/docs/type.impl/iroh/gossip/proto/enum.Command.js index 1d520d247d..10b9b76009 100644 --- a/pr/2574/docs/type.impl/iroh/gossip/proto/enum.Command.js +++ b/pr/2574/docs/type.impl/iroh/gossip/proto/enum.Command.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"iroh":[["
    source§

    impl<PI> Clone for Command<PI>
    where\n PI: Clone,

    source§

    fn clone(&self) -> Command<PI>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","iroh::gossip::net::Command"],["
    source§

    impl<PI> Debug for Command<PI>
    where\n Vec<PI>: Debug,\n Scope: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","iroh::gossip::net::Command"]] +"iroh":[["
    source§

    impl<PI> Clone for Command<PI>
    where\n PI: Clone,

    source§

    fn clone(&self) -> Command<PI>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","iroh::gossip::net::Command"],["
    source§

    impl<PI> Debug for Command<PI>
    where\n Vec<PI>: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","iroh::gossip::net::Command"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/pr/2574/docs/type.impl/iroh_gossip/proto/topic/enum.Command.js b/pr/2574/docs/type.impl/iroh_gossip/proto/topic/enum.Command.js index 03535e3a94..9d3bed3503 100644 --- a/pr/2574/docs/type.impl/iroh_gossip/proto/topic/enum.Command.js +++ b/pr/2574/docs/type.impl/iroh_gossip/proto/topic/enum.Command.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"iroh_gossip":[["
    source§

    impl<PI: Clone> Clone for Command<PI>

    source§

    fn clone(&self) -> Command<PI>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","iroh_gossip::net::Command"],["
    source§

    impl<PI> Debug for Command<PI>
    where\n Vec<PI>: Debug,\n Scope: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","iroh_gossip::net::Command"]] +"iroh_gossip":[["
    source§

    impl<PI: Clone> Clone for Command<PI>

    source§

    fn clone(&self) -> Command<PI>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","iroh_gossip::net::Command"],["
    source§

    impl<PI> Debug for Command<PI>
    where\n Vec<PI>: Debug,

    source§

    fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","iroh_gossip::net::Command"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/pr/2574/docs/type.impl/iroh_net/key/struct.PublicKey.js b/pr/2574/docs/type.impl/iroh_net/key/struct.PublicKey.js index 2fcaac350a..bbff1af8fe 100644 --- a/pr/2574/docs/type.impl/iroh_net/key/struct.PublicKey.js +++ b/pr/2574/docs/type.impl/iroh_net/key/struct.PublicKey.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"iroh_net":[["
    source§

    impl AsRef<[u8]> for PublicKey

    source§

    fn as_ref(&self) -> &[u8]

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef<[u8]>","iroh_net::NodeId"],["
    source§

    impl Clone for PublicKey

    source§

    fn clone(&self) -> PublicKey

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","iroh_net::NodeId"],["
    source§

    impl Debug for PublicKey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","iroh_net::NodeId"],["
    source§

    impl<'de> Deserialize<'de> for PublicKey

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<PublicKey, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","iroh_net::NodeId"],["
    source§

    impl Display for PublicKey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","iroh_net::NodeId"],["
    source§

    impl From<VerifyingKey> for PublicKey

    source§

    fn from(verifying_key: VerifyingKey) -> PublicKey

    Converts to this type from the input type.
    ","From","iroh_net::NodeId"],["
    source§

    impl FromStr for PublicKey

    Deserialises the PublicKey from it’s base32 encoding.

    \n

    Display is capable of serialising this format.

    \n
    §

    type Err = KeyParsingError

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<PublicKey, <PublicKey as FromStr>::Err>

    Parses a string s to return a value of this type. Read more
    ","FromStr","iroh_net::NodeId"],["
    source§

    impl Hash for PublicKey

    source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","iroh_net::NodeId"],["
    source§

    impl Ord for PublicKey

    source§

    fn cmp(&self, other: &PublicKey) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","iroh_net::NodeId"],["
    source§

    impl PartialEq for PublicKey

    source§

    fn eq(&self, other: &PublicKey) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","iroh_net::NodeId"],["
    source§

    impl PartialOrd for PublicKey

    source§

    fn partial_cmp(&self, other: &PublicKey) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    ","PartialOrd","iroh_net::NodeId"],["
    source§

    impl PublicKey

    source

    pub fn as_bytes(&self) -> &[u8; 32]

    Get this public key as a byte array.

    \n
    source

    pub fn from_bytes(bytes: &[u8; 32]) -> Result<PublicKey, Error>

    Construct a PublicKey from a slice of bytes.

    \n
    §Warning
    \n

    This will return a [SignatureError] if the bytes passed into this method do not represent\na valid ed25519_dalek curve point. Will never fail for bytes return from Self::as_bytes.\nSee [VerifyingKey::from_bytes] for details.

    \n
    source

    pub fn verify(&self, message: &[u8], signature: &Signature) -> Result<(), Error>

    Verify a signature on a message with this secret key’s public key.

    \n
    §Return
    \n

    Returns Ok(()) if the signature is valid, and Err otherwise.

    \n
    source

    pub fn fmt_short(&self) -> String

    Convert to a base32 string limited to the first 10 bytes for a friendly string\nrepresentation of the key.

    \n
    ",0,"iroh_net::NodeId"],["
    source§

    impl Serialize for PublicKey

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","iroh_net::NodeId"],["
    source§

    impl TryFrom<&[u8]> for PublicKey

    §

    type Error = Error

    The type returned in the event of a conversion error.
    source§

    fn try_from(\n bytes: &[u8]\n) -> Result<PublicKey, <PublicKey as TryFrom<&[u8]>>::Error>

    Performs the conversion.
    ","TryFrom<&[u8]>","iroh_net::NodeId"],["
    source§

    impl TryFrom<&[u8; 32]> for PublicKey

    §

    type Error = Error

    The type returned in the event of a conversion error.
    source§

    fn try_from(\n bytes: &[u8; 32]\n) -> Result<PublicKey, <PublicKey as TryFrom<&[u8; 32]>>::Error>

    Performs the conversion.
    ","TryFrom<&[u8; 32]>","iroh_net::NodeId"],["
    source§

    impl Copy for PublicKey

    ","Copy","iroh_net::NodeId"],["
    source§

    impl Eq for PublicKey

    ","Eq","iroh_net::NodeId"],["
    source§

    impl StructuralPartialEq for PublicKey

    ","StructuralPartialEq","iroh_net::NodeId"]] +"iroh_net":[["
    §

    impl AsRef<[u8]> for PublicKey

    §

    fn as_ref(&self) -> &[u8]

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef<[u8]>","iroh_net::NodeId"],["
    §

    impl Clone for PublicKey

    §

    fn clone(&self) -> PublicKey

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","iroh_net::NodeId"],["
    §

    impl Debug for PublicKey

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","iroh_net::NodeId"],["
    §

    impl<'de> Deserialize<'de> for PublicKey

    §

    fn deserialize<D>(\n deserializer: D\n) -> Result<PublicKey, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","iroh_net::NodeId"],["
    §

    impl Display for PublicKey

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","iroh_net::NodeId"],["
    §

    impl From<VerifyingKey> for PublicKey

    §

    fn from(verifying_key: VerifyingKey) -> PublicKey

    Converts to this type from the input type.
    ","From","iroh_net::NodeId"],["
    §

    impl FromStr for PublicKey

    Deserialises the PublicKey from it’s base32 encoding.

    \n

    Display is capable of serialising this format.

    \n
    §

    type Err = KeyParsingError

    The associated error which can be returned from parsing.
    §

    fn from_str(s: &str) -> Result<PublicKey, <PublicKey as FromStr>::Err>

    Parses a string s to return a value of this type. Read more
    ","FromStr","iroh_net::NodeId"],["
    §

    impl Hash for PublicKey

    §

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","iroh_net::NodeId"],["
    §

    impl Ord for PublicKey

    §

    fn cmp(&self, other: &PublicKey) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","iroh_net::NodeId"],["
    §

    impl PartialEq for PublicKey

    §

    fn eq(&self, other: &PublicKey) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","iroh_net::NodeId"],["
    §

    impl PartialOrd for PublicKey

    §

    fn partial_cmp(&self, other: &PublicKey) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    ","PartialOrd","iroh_net::NodeId"],["
    §

    impl PublicKey

    pub fn as_bytes(&self) -> &[u8; 32]

    Get this public key as a byte array.

    \n

    pub fn from_bytes(bytes: &[u8; 32]) -> Result<PublicKey, Error>

    Construct a PublicKey from a slice of bytes.

    \n
    §Warning
    \n

    This will return a [SignatureError] if the bytes passed into this method do not represent\na valid ed25519_dalek curve point. Will never fail for bytes return from Self::as_bytes.\nSee [VerifyingKey::from_bytes] for details.

    \n

    pub fn verify(&self, message: &[u8], signature: &Signature) -> Result<(), Error>

    Verify a signature on a message with this secret key’s public key.

    \n
    §Return
    \n

    Returns Ok(()) if the signature is valid, and Err otherwise.

    \n

    pub fn fmt_short(&self) -> String

    Convert to a base32 string limited to the first 10 bytes for a friendly string\nrepresentation of the key.

    \n
    ",0,"iroh_net::NodeId"],["
    §

    impl Serialize for PublicKey

    §

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","iroh_net::NodeId"],["
    §

    impl TryFrom<&[u8]> for PublicKey

    §

    type Error = Error

    The type returned in the event of a conversion error.
    §

    fn try_from(\n bytes: &[u8]\n) -> Result<PublicKey, <PublicKey as TryFrom<&[u8]>>::Error>

    Performs the conversion.
    ","TryFrom<&[u8]>","iroh_net::NodeId"],["
    §

    impl TryFrom<&[u8; 32]> for PublicKey

    §

    type Error = Error

    The type returned in the event of a conversion error.
    §

    fn try_from(\n bytes: &[u8; 32]\n) -> Result<PublicKey, <PublicKey as TryFrom<&[u8; 32]>>::Error>

    Performs the conversion.
    ","TryFrom<&[u8; 32]>","iroh_net::NodeId"],["
    §

    impl Copy for PublicKey

    ","Copy","iroh_net::NodeId"],["
    §

    impl Eq for PublicKey

    ","Eq","iroh_net::NodeId"],["
    §

    impl StructuralPartialEq for PublicKey

    ","StructuralPartialEq","iroh_net::NodeId"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/pr/2574/docs/type.impl/std/primitive.array.js b/pr/2574/docs/type.impl/std/primitive.array.js index 4d4303e493..3f9a615647 100644 --- a/pr/2574/docs/type.impl/std/primitive.array.js +++ b/pr/2574/docs/type.impl/std/primitive.array.js @@ -1,4 +1,4 @@ (function() {var type_impls = { "iroh":[["
    source§

    impl<T, const N: usize> [T; N]

    1.55.0 · source

    pub fn map<F, U>(self, f: F) -> [U; N]
    where\n F: FnMut(T) -> U,

    Returns an array of the same size as self, with function f applied to each element\nin order.

    \n

    If you don’t necessarily need a new fixed-size array, consider using\nIterator::map instead.

    \n
    §Note on performance and stack usage
    \n

    Unfortunately, usages of this method are currently not always optimized\nas well as they could be. This mainly concerns large arrays, as mapping\nover small arrays seem to be optimized just fine. Also note that in\ndebug mode (i.e. without any optimizations), this method can use a lot\nof stack space (a few times the size of the array or more).

    \n

    Therefore, in performance-critical code, try to avoid using this method\non large arrays or check the emitted code. Also try to avoid chained\nmaps (e.g. arr.map(...).map(...)).

    \n

    In many cases, you can instead use Iterator::map by calling .iter()\nor .into_iter() on your array. [T; N]::map is only necessary if you\nreally need a new array of the same size as the result. Rust’s lazy\niterators tend to get optimized very well.

    \n
    §Examples
    \n
    let x = [1, 2, 3];\nlet y = x.map(|v| v + 1);\nassert_eq!(y, [2, 3, 4]);\n\nlet x = [1, 2, 3];\nlet mut temp = 0;\nlet y = x.map(|v| { temp += 1; v * temp });\nassert_eq!(y, [1, 4, 9]);\n\nlet x = [\"Ferris\", \"Bueller's\", \"Day\", \"Off\"];\nlet y = x.map(|v| v.len());\nassert_eq!(y, [6, 9, 3, 3]);
    \n
    source

    pub fn try_map<F, R>(\n self,\n f: F\n) -> <<R as Try>::Residual as Residual<[<R as Try>::Output; N]>>::TryType
    where\n F: FnMut(T) -> R,\n R: Try,\n <R as Try>::Residual: Residual<[<R as Try>::Output; N]>,

    🔬This is a nightly-only experimental API. (array_try_map)

    A fallible function f applied to each element on array self in order to\nreturn an array the same size as self or the first error encountered.

    \n

    The return type of this function depends on the return type of the closure.\nIf you return Result<T, E> from the closure, you’ll get a Result<[T; N], E>.\nIf you return Option<T> from the closure, you’ll get an Option<[T; N]>.

    \n
    §Examples
    \n
    #![feature(array_try_map)]\n\nlet a = [\"1\", \"2\", \"3\"];\nlet b = a.try_map(|v| v.parse::<u32>()).unwrap().map(|v| v + 1);\nassert_eq!(b, [2, 3, 4]);\n\nlet a = [\"1\", \"2a\", \"3\"];\nlet b = a.try_map(|v| v.parse::<u32>());\nassert!(b.is_err());\n\nuse std::num::NonZero;\n\nlet z = [1, 2, 0, 3, 4];\nassert_eq!(z.try_map(NonZero::new), None);\n\nlet a = [1, 2, 3];\nlet b = a.try_map(NonZero::new);\nlet c = b.map(|x| x.map(NonZero::get));\nassert_eq!(c, Some(a));
    \n
    1.57.0 (const: 1.57.0) · source

    pub const fn as_slice(&self) -> &[T]

    Returns a slice containing the entire array. Equivalent to &s[..].

    \n
    1.57.0 · source

    pub fn as_mut_slice(&mut self) -> &mut [T]

    Returns a mutable slice containing the entire array. Equivalent to\n&mut s[..].

    \n
    1.77.0 · source

    pub fn each_ref(&self) -> [&T; N]

    Borrows each element and returns an array of references with the same\nsize as self.

    \n
    §Example
    \n
    let floats = [3.1, 2.7, -1.0];\nlet float_refs: [&f64; 3] = floats.each_ref();\nassert_eq!(float_refs, [&3.1, &2.7, &-1.0]);
    \n

    This method is particularly useful if combined with other methods, like\nmap. This way, you can avoid moving the original\narray if its elements are not Copy.

    \n\n
    let strings = [\"Ferris\".to_string(), \"♥\".to_string(), \"Rust\".to_string()];\nlet is_ascii = strings.each_ref().map(|s| s.is_ascii());\nassert_eq!(is_ascii, [true, false, true]);\n\n// We can still access the original array: it has not been moved.\nassert_eq!(strings.len(), 3);
    \n
    1.77.0 · source

    pub fn each_mut(&mut self) -> [&mut T; N]

    Borrows each element mutably and returns an array of mutable references\nwith the same size as self.

    \n
    §Example
    \n
    \nlet mut floats = [3.1, 2.7, -1.0];\nlet float_refs: [&mut f64; 3] = floats.each_mut();\n*float_refs[0] = 0.0;\nassert_eq!(float_refs, [&mut 0.0, &mut 2.7, &mut -1.0]);\nassert_eq!(floats, [0.0, 2.7, -1.0]);
    \n
    source

    pub fn split_array_ref<const M: usize>(&self) -> (&[T; M], &[T])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one array reference into two at an index.

    \n

    The first will contain all indices from [0, M) (excluding\nthe index M itself) and the second will contain all\nindices from [M, N) (excluding the index N itself).

    \n
    §Panics
    \n

    Panics if M > N.

    \n
    §Examples
    \n
    #![feature(split_array)]\n\nlet v = [1, 2, 3, 4, 5, 6];\n\n{\n   let (left, right) = v.split_array_ref::<0>();\n   assert_eq!(left, &[]);\n   assert_eq!(right, &[1, 2, 3, 4, 5, 6]);\n}\n\n{\n    let (left, right) = v.split_array_ref::<2>();\n    assert_eq!(left, &[1, 2]);\n    assert_eq!(right, &[3, 4, 5, 6]);\n}\n\n{\n    let (left, right) = v.split_array_ref::<6>();\n    assert_eq!(left, &[1, 2, 3, 4, 5, 6]);\n    assert_eq!(right, &[]);\n}
    \n
    source

    pub fn split_array_mut<const M: usize>(&mut self) -> (&mut [T; M], &mut [T])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one mutable array reference into two at an index.

    \n

    The first will contain all indices from [0, M) (excluding\nthe index M itself) and the second will contain all\nindices from [M, N) (excluding the index N itself).

    \n
    §Panics
    \n

    Panics if M > N.

    \n
    §Examples
    \n
    #![feature(split_array)]\n\nlet mut v = [1, 0, 3, 0, 5, 6];\nlet (left, right) = v.split_array_mut::<2>();\nassert_eq!(left, &mut [1, 0][..]);\nassert_eq!(right, &mut [3, 0, 5, 6]);\nleft[1] = 2;\nright[1] = 4;\nassert_eq!(v, [1, 2, 3, 4, 5, 6]);
    \n
    source

    pub fn rsplit_array_ref<const M: usize>(&self) -> (&[T], &[T; M])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one array reference into two at an index from the end.

    \n

    The first will contain all indices from [0, N - M) (excluding\nthe index N - M itself) and the second will contain all\nindices from [N - M, N) (excluding the index N itself).

    \n
    §Panics
    \n

    Panics if M > N.

    \n
    §Examples
    \n
    #![feature(split_array)]\n\nlet v = [1, 2, 3, 4, 5, 6];\n\n{\n   let (left, right) = v.rsplit_array_ref::<0>();\n   assert_eq!(left, &[1, 2, 3, 4, 5, 6]);\n   assert_eq!(right, &[]);\n}\n\n{\n    let (left, right) = v.rsplit_array_ref::<2>();\n    assert_eq!(left, &[1, 2, 3, 4]);\n    assert_eq!(right, &[5, 6]);\n}\n\n{\n    let (left, right) = v.rsplit_array_ref::<6>();\n    assert_eq!(left, &[]);\n    assert_eq!(right, &[1, 2, 3, 4, 5, 6]);\n}
    \n
    source

    pub fn rsplit_array_mut<const M: usize>(&mut self) -> (&mut [T], &mut [T; M])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one mutable array reference into two at an index from the end.

    \n

    The first will contain all indices from [0, N - M) (excluding\nthe index N - M itself) and the second will contain all\nindices from [N - M, N) (excluding the index N itself).

    \n
    §Panics
    \n

    Panics if M > N.

    \n
    §Examples
    \n
    #![feature(split_array)]\n\nlet mut v = [1, 0, 3, 0, 5, 6];\nlet (left, right) = v.rsplit_array_mut::<4>();\nassert_eq!(left, &mut [1, 0]);\nassert_eq!(right, &mut [3, 0, 5, 6][..]);\nleft[1] = 2;\nright[1] = 4;\nassert_eq!(v, [1, 2, 3, 4, 5, 6]);
    \n
    ",0,"iroh::docs::PeerIdBytes"],["
    source§

    impl<const N: usize> [u8; N]

    source

    pub const fn as_ascii(&self) -> Option<&[AsciiChar; N]>

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this array of bytes into a array of ASCII characters,\nor returns None if any of the characters is non-ASCII.

    \n
    §Examples
    \n
    #![feature(ascii_char)]\n#![feature(const_option)]\n\nconst HEX_DIGITS: [std::ascii::Char; 16] =\n    *b\"0123456789abcdef\".as_ascii().unwrap();\n\nassert_eq!(HEX_DIGITS[1].as_str(), \"1\");\nassert_eq!(HEX_DIGITS[10].as_str(), \"a\");
    \n
    source

    pub const unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar; N]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this array of bytes into a array of ASCII characters,\nwithout checking whether they’re valid.

    \n
    §Safety
    \n

    Every byte in the array must be in 0..=127, or else this is UB.

    \n
    ",0,"iroh::docs::PeerIdBytes"],["
    §

    impl<T> Array for [T; 32]
    where\n T: Default,

    §

    type Item = T

    The type of the items in the thing.
    §

    const CAPACITY: usize = 32usize

    The number of slots in the thing.
    §

    fn as_slice(&self) -> &[T]

    Gives a shared slice over the whole thing. Read more
    §

    fn as_slice_mut(&mut self) -> &mut [T]

    Gives a unique slice over the whole thing. Read more
    §

    fn default() -> [T; 32]

    Create a default-initialized instance of ourself, similar to the\nDefault trait, but implemented for the same range of sizes as\n[Array].
    ","Array","iroh::docs::PeerIdBytes"],["
    §

    impl<T, const N: usize> Array for [T; N]

    §

    type Item = T

    The type of the array’s elements.
    §

    fn size() -> usize

    Returns the number of items the array can hold.
    ","Array","iroh::docs::PeerIdBytes"],["
    §

    impl<const N: usize, T> AsBytes for [T; N]
    where\n T: AsBytes,

    §

    fn as_bytes(&self) -> &[u8]

    Gets the bytes of this value. Read more
    §

    fn write_to(&self, bytes: &mut [u8]) -> Option<()>

    Writes a copy of self to bytes. Read more
    §

    fn write_to_prefix(&self, bytes: &mut [u8]) -> Option<()>

    Writes a copy of self to the prefix of bytes. Read more
    §

    fn write_to_suffix(&self, bytes: &mut [u8]) -> Option<()>

    Writes a copy of self to the suffix of bytes. Read more
    ","AsBytes","iroh::docs::PeerIdBytes"],["
    §

    impl AsBytes for [u8; 32]

    §

    fn as_bytes(&self) -> &[u8]

    Casts the input type to a byte slice
    ","AsBytes","iroh::docs::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> AsMut<[T]> for [T; N]

    source§

    fn as_mut(&mut self) -> &mut [T]

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut<[T]>","iroh::docs::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> AsRef<[T]> for [T; N]

    source§

    fn as_ref(&self) -> &[T]

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef<[T]>","iroh::docs::PeerIdBytes"],["
    §

    impl<T, const N: usize> BitView for [T; N]
    where\n T: BitStore,

    Note that overly-large arrays may cause the conversions to fail.

    \n
    §

    type Store = T

    The underlying element type.
    §

    fn view_bits<O>(&self) -> &BitSlice<T, O>
    where\n O: BitOrder,

    Views a memory region as an immutable bit-slice.
    §

    fn try_view_bits<O>(&self) -> Result<&BitSlice<T, O>, BitSpanError<T>>
    where\n O: BitOrder,

    Attempts to view a memory region as an immutable bit-slice. Read more
    §

    fn view_bits_mut<O>(&mut self) -> &mut BitSlice<T, O>
    where\n O: BitOrder,

    Views a memory region as a mutable bit-slice.
    §

    fn try_view_bits_mut<O>(\n &mut self\n) -> Result<&mut BitSlice<T, O>, BitSpanError<T>>
    where\n O: BitOrder,

    Attempts to view a memory region as a mutable bit-slice. Read more
    ","BitView","iroh::docs::PeerIdBytes"],["
    §

    impl<T, const N: usize> BitViewSized for [T; N]
    where\n T: BitStore,

    §

    const ZERO: [T; N] = _

    The zero constant.
    §

    fn as_raw_slice(&self) -> &[<[T; N] as BitView>::Store]

    Views the type as a slice of its elements.
    §

    fn as_raw_mut_slice(&mut self) -> &mut [<[T; N] as BitView>::Store]

    Views the type as a mutable slice of its elements.
    §

    fn into_bitarray<O>(self) -> BitArray<Self, O>
    where\n O: BitOrder,

    Wraps self in a BitArray.
    ","BitViewSized","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T, const N: usize> Borrow<[T]> for [T; N]

    source§

    fn borrow(&self) -> &[T]

    Immutably borrows from an owned value. Read more
    ","Borrow<[T]>","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T, const N: usize> BorrowMut<[T]> for [T; N]

    source§

    fn borrow_mut(&mut self) -> &mut [T]

    Mutably borrows from an owned value. Read more
    ","BorrowMut<[T]>","iroh::docs::PeerIdBytes"],["
    §

    impl<S, const N: usize> Chain for [S; N]
    where\n S: Stream,

    §

    type Item = <S as Stream>::Item

    What’s the return type of our stream?
    §

    type Stream = Chain<S, N>

    What stream do we return?
    §

    fn chain(self) -> <[S; N] as Chain>::Stream

    Combine multiple streams into a single stream.
    ","Chain","iroh::docs::PeerIdBytes"],["
    1.58.0 · source§

    impl<T, const N: usize> Clone for [T; N]
    where\n T: Clone,

    source§

    fn clone(&self) -> [T; N]

    Returns a copy of the value. Read more
    source§

    fn clone_from(&mut self, other: &[T; N])

    Performs copy-assignment from source. Read more
    ","Clone","iroh::docs::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> Debug for [T; N]
    where\n T: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","iroh::docs::PeerIdBytes"],["
    §

    impl<const N: usize> Decode for [u8; N]

    Decodes a byte array from byte[n] as described in RFC4251 § 5:

    \n
    \n

    A byte represents an arbitrary 8-bit value (octet). Fixed length\ndata is sometimes represented as an array of bytes, written\nbyte[n], where n is the number of bytes in the array.

    \n
    \n
    §

    type Error = Error

    Type returned in the event of a decoding error.
    §

    fn decode(reader: &mut impl Reader) -> Result<[u8; N], Error>

    Attempt to decode a value of this type using the provided [Reader].
    ","Decode","iroh::docs::PeerIdBytes"],["
    §

    impl<'a, T, const N: usize> DecodeValue<'a> for [T; N]
    where\n T: Decode<'a>,

    §

    fn decode_value<R>(reader: &mut R, header: Header) -> Result<[T; N], Error>
    where\n R: Reader<'a>,

    Attempt to decode this message using the provided [Reader].
    ","DecodeValue<'a>","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 32]
    where\n T: Default,

    source§

    fn default() -> [T; 32]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 31]
    where\n T: Default,

    source§

    fn default() -> [T; 31]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 30]
    where\n T: Default,

    source§

    fn default() -> [T; 30]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 29]
    where\n T: Default,

    source§

    fn default() -> [T; 29]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 28]
    where\n T: Default,

    source§

    fn default() -> [T; 28]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 27]
    where\n T: Default,

    source§

    fn default() -> [T; 27]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 26]
    where\n T: Default,

    source§

    fn default() -> [T; 26]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 25]
    where\n T: Default,

    source§

    fn default() -> [T; 25]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 24]
    where\n T: Default,

    source§

    fn default() -> [T; 24]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 23]
    where\n T: Default,

    source§

    fn default() -> [T; 23]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 22]
    where\n T: Default,

    source§

    fn default() -> [T; 22]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 21]
    where\n T: Default,

    source§

    fn default() -> [T; 21]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 20]
    where\n T: Default,

    source§

    fn default() -> [T; 20]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 19]
    where\n T: Default,

    source§

    fn default() -> [T; 19]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 18]
    where\n T: Default,

    source§

    fn default() -> [T; 18]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 17]
    where\n T: Default,

    source§

    fn default() -> [T; 17]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 16]
    where\n T: Default,

    source§

    fn default() -> [T; 16]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 15]
    where\n T: Default,

    source§

    fn default() -> [T; 15]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 14]
    where\n T: Default,

    source§

    fn default() -> [T; 14]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 13]
    where\n T: Default,

    source§

    fn default() -> [T; 13]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 12]
    where\n T: Default,

    source§

    fn default() -> [T; 12]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 11]
    where\n T: Default,

    source§

    fn default() -> [T; 11]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 10]
    where\n T: Default,

    source§

    fn default() -> [T; 10]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 9]
    where\n T: Default,

    source§

    fn default() -> [T; 9]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 8]
    where\n T: Default,

    source§

    fn default() -> [T; 8]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 7]
    where\n T: Default,

    source§

    fn default() -> [T; 7]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 6]
    where\n T: Default,

    source§

    fn default() -> [T; 6]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 5]
    where\n T: Default,

    source§

    fn default() -> [T; 5]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 4]
    where\n T: Default,

    source§

    fn default() -> [T; 4]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 3]
    where\n T: Default,

    source§

    fn default() -> [T; 3]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 2]
    where\n T: Default,

    source§

    fn default() -> [T; 2]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 1]
    where\n T: Default,

    source§

    fn default() -> [T; 1]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 0]

    source§

    fn default() -> [T; 0]

    Returns the “default value” for a type. Read more
    ","Default","iroh::docs::PeerIdBytes"],["
    source§

    impl<'de, T> Deserialize<'de> for [T; 32]
    where\n T: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<[T; 32], <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","iroh::docs::PeerIdBytes"],["
    source§

    impl<'de, const N: usize> Deserialize<'de> for [u8; N]

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<[u8; N], <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    ","Deserialize<'de>","iroh::docs::PeerIdBytes"],["
    §

    impl<const N: usize> Encode for [u8; N]

    Encodes [u8; N] into byte[n] as described in RFC4251 § 5:

    \n
    \n

    A byte represents an arbitrary 8-bit value (octet). Fixed length\ndata is sometimes represented as an array of bytes, written\nbyte[n], where n is the number of bytes in the array.

    \n
    \n
    §

    fn encoded_len(&self) -> Result<usize, Error>

    Get the length of this type encoded in bytes, prior to Base64 encoding.
    §

    fn encode(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode this value using the provided [Writer].
    §

    fn encoded_len_prefixed(&self) -> Result<usize, Error>

    Return the length of this type after encoding when prepended with a\nuint32 length prefix.
    §

    fn encode_prefixed(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode this value, first prepending a uint32 length prefix\nset to [Encode::encoded_len].
    ","Encode","iroh::docs::PeerIdBytes"],["
    §

    impl<T, const N: usize> EncodeLabelSet for [T; N]
    where\n T: EncodeLabel,

    §

    fn encode(&self, encoder: LabelSetEncoder<'_>) -> Result<(), Error>

    Encode oneself into the given encoder.
    ","EncodeLabelSet","iroh::docs::PeerIdBytes"],["
    §

    impl<T, const N: usize> EncodeValue for [T; N]
    where\n T: Encode,

    §

    fn value_len(&self) -> Result<Length, Error>

    Compute the length of this value (sans [Tag]+[Length] header) when\nencoded as ASN.1 DER.
    §

    fn encode_value(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode value (sans [Tag]+[Length] header) as ASN.1 DER using the\nprovided [Writer].
    §

    fn header(&self) -> Result<Header, Error>
    where\n Self: Tagged,

    Get the [Header] used to encode this value.
    ","EncodeValue","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 32]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 31]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 30]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 29]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 28]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 27]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 26]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 25]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 24]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 23]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 22]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 21]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 20]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 19]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 18]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 17]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 16]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 15]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 14]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 13]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 12]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 11]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 10]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 9]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 8]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 7]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 6]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 5]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 4]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 3]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 2]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 1]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 0]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 2048]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 1024]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 512]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 256]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 128]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 64]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh::docs::PeerIdBytes"],["
    §

    impl<'a> FindToken<&'a u8> for [u8; 32]

    §

    fn find_token(&self, token: &u8) -> bool

    Returns true if self contains the token
    ","FindToken<&'a u8>","iroh::docs::PeerIdBytes"],["
    §

    impl FindToken<u8> for [u8; 32]

    §

    fn find_token(&self, token: u8) -> bool

    Returns true if self contains the token
    ","FindToken","iroh::docs::PeerIdBytes"],["
    §

    impl<T, const N: usize> FixedTag for [T; N]

    §

    const TAG: Tag = Tag::Sequence

    ASN.1 tag
    ","FixedTag","iroh::docs::PeerIdBytes"],["
    §

    impl From<&Signature> for [u8; 64]

    §

    fn from(sig: &Signature) -> [u8; 64]

    Converts to this type from the input type.
    ","From<&Signature>","iroh::docs::PeerIdBytes"],["
    source§

    impl From<AuthorId> for [u8; 32]

    source§

    fn from(value: AuthorId) -> [u8; 32]

    Converts to this type from the input type.
    ","From","iroh::docs::PeerIdBytes"],["
    §

    impl<T> From<GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>> for [T; 32]

    §

    fn from(\n sel: GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>\n) -> [T; 32]

    Converts to this type from the input type.
    ","From, B0>, B0>, B0>, B0>, B0>>>","iroh::docs::PeerIdBytes"],["
    source§

    impl From<Hash> for [u8; 32]

    source§

    fn from(value: Hash) -> [u8; 32]

    Converts to this type from the input type.
    ","From","iroh::docs::PeerIdBytes"],["
    §

    impl From<Hash> for [u8; 32]

    §

    fn from(hash: Hash) -> [u8; 32]

    Converts to this type from the input type.
    ","From","iroh::docs::PeerIdBytes"],["
    §

    impl<const N: usize, const UPPERCASE: bool> From<HexOrBin<N, UPPERCASE>> for [u8; N]

    §

    fn from(hex_or_bin: HexOrBin<N, UPPERCASE>) -> [u8; N]

    Converts to this type from the input type.
    ","From>","iroh::docs::PeerIdBytes"],["
    §

    impl From<MacAddr> for [u8; 6]

    §

    fn from(addr: MacAddr) -> [u8; 6]

    Converts to this type from the input type.
    ","From","iroh::docs::PeerIdBytes"],["
    source§

    impl From<NamespaceId> for [u8; 32]

    source§

    fn from(value: NamespaceId) -> [u8; 32]

    Converts to this type from the input type.
    ","From","iroh::docs::PeerIdBytes"],["
    §

    impl From<Signature> for [u8; 64]

    §

    fn from(sig: Signature) -> [u8; 64]

    Converts to this type from the input type.
    ","From","iroh::docs::PeerIdBytes"],["
    source§

    impl<T, const N: usize> From<Simd<T, N>> for [T; N]

    source§

    fn from(vector: Simd<T, N>) -> [T; N]

    Converts to this type from the input type.
    ","From>","iroh::docs::PeerIdBytes"],["
    §

    impl<const N: usize, T> FromBytes for [T; N]
    where\n T: FromBytes,

    §

    fn ref_from(bytes: &[u8]) -> Option<&Self>
    where\n Self: Sized,

    Interprets the given bytes as a &Self without copying. Read more
    §

    fn ref_from_prefix(bytes: &[u8]) -> Option<&Self>
    where\n Self: Sized,

    Interprets the prefix of the given bytes as a &Self without copying. Read more
    §

    fn ref_from_suffix(bytes: &[u8]) -> Option<&Self>
    where\n Self: Sized,

    Interprets the suffix of the given bytes as a &Self without copying. Read more
    §

    fn slice_from(bytes: &[u8]) -> Option<&[Self]>
    where\n Self: Sized,

    Interprets the given bytes as a &[Self] without copying. Read more
    §

    fn slice_from_prefix(bytes: &[u8], count: usize) -> Option<(&[Self], &[u8])>
    where\n Self: Sized,

    Interprets the prefix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
    §

    fn slice_from_suffix(bytes: &[u8], count: usize) -> Option<(&[u8], &[Self])>
    where\n Self: Sized,

    Interprets the suffix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
    §

    fn read_from(bytes: &[u8]) -> Option<Self>
    where\n Self: Sized,

    Reads a copy of Self from bytes. Read more
    §

    fn read_from_prefix(bytes: &[u8]) -> Option<Self>
    where\n Self: Sized,

    Reads a copy of Self from the prefix of bytes. Read more
    §

    fn read_from_suffix(bytes: &[u8]) -> Option<Self>
    where\n Self: Sized,

    Reads a copy of Self from the suffix of bytes. Read more
    ","FromBytes","iroh::docs::PeerIdBytes"],["
    source§

    impl FromHex for [u8; 32]

    §

    type Error = FromHexError

    source§

    fn from_hex<T>(hex: T) -> Result<[u8; 32], <[u8; 32] as FromHex>::Error>
    where\n T: AsRef<[u8]>,

    Creates an instance of type Self from the given hex string, or fails\nwith a custom error type. Read more
    ","FromHex","iroh::docs::PeerIdBytes"],["
    §

    impl<const N: usize, T> FromZeroes for [T; N]
    where\n T: FromZeroes,

    §

    fn zero(&mut self)

    Overwrites self with zeroes. Read more
    §

    fn new_zeroed() -> Self
    where\n Self: Sized,

    Creates an instance of Self from zeroed bytes. Read more
    ","FromZeroes","iroh::docs::PeerIdBytes"],["
    §

    impl<T> Hash for [T; 32]
    where\n T: Hash,

    §

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher.
    §

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher.
    ","Hash","iroh::docs::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> Hash for [T; N]
    where\n T: Hash,

    The hash of an array is the same as that of the corresponding slice,\nas required by the Borrow implementation.

    \n\n
    use std::hash::BuildHasher;\n\nlet b = std::hash::RandomState::new();\nlet a: [u8; 3] = [0xa8, 0x3c, 0x09];\nlet s: &[u8] = &[0xa8, 0x3c, 0x09];\nassert_eq!(b.hash_one(a), b.hash_one(s));
    \n
    source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","iroh::docs::PeerIdBytes"],["
    1.50.0 · source§

    impl<T, I, const N: usize> Index<I> for [T; N]
    where\n [T]: Index<I>,

    §

    type Output = <[T] as Index<I>>::Output

    The returned type after indexing.
    source§

    fn index(&self, index: I) -> &<[T; N] as Index<I>>::Output

    Performs the indexing (container[index]) operation. Read more
    ","Index","iroh::docs::PeerIdBytes"],["
    1.50.0 · source§

    impl<T, I, const N: usize> IndexMut<I> for [T; N]
    where\n [T]: IndexMut<I>,

    source§

    fn index_mut(&mut self, index: I) -> &mut <[T; N] as Index<I>>::Output

    Performs the mutable indexing (container[index]) operation. Read more
    ","IndexMut","iroh::docs::PeerIdBytes"],["
    §

    impl InputLength for [u8; 32]

    §

    fn input_len(&self) -> usize

    Calculates the input length, as indicated by its name,\nand the name of the trait itself
    ","InputLength","iroh::docs::PeerIdBytes"],["
    1.53.0 · source§

    impl<T, const N: usize> IntoIterator for [T; N]

    source§

    fn into_iter(self) -> <[T; N] as IntoIterator>::IntoIter

    Creates a consuming iterator, that is, one that moves each value out of\nthe array (from start to end). The array cannot be used after calling\nthis unless T implements Copy, so the whole array is copied.

    \n

    Arrays have special behavior when calling .into_iter() prior to the\n2021 edition – see the array Editions section for more information.

    \n
    §

    type Item = T

    The type of the elements being iterated over.
    §

    type IntoIter = IntoIter<T, N>

    Which kind of iterator are we turning this into?
    ","IntoIterator","iroh::docs::PeerIdBytes"],["
    §

    impl<const N: usize> IntoResponse for [u8; N]

    §

    fn into_response(self) -> Response<Body>

    Create a response.
    ","IntoResponse","iroh::docs::PeerIdBytes"],["
    §

    impl<Fut, const N: usize> Join for [Fut; N]
    where\n Fut: IntoFuture,

    §

    type Output = [<Fut as IntoFuture>::Output; N]

    The resulting output type.
    §

    type Future = Join<<Fut as IntoFuture>::IntoFuture, N>

    The Future implementation returned by this method.
    §

    fn join(self) -> <[Fut; N] as Join>::Future

    Waits for multiple futures to complete. Read more
    ","Join","iroh::docs::PeerIdBytes"],["
    §

    impl<const N: usize, T> Key for [T; N]
    where\n T: Key,

    §

    fn compare(data1: &[u8], data2: &[u8]) -> Ordering

    Compare data1 with data2
    ","Key","iroh::docs::PeerIdBytes"],["
    §

    impl<T, const N: usize> MaxSize for [T; N]
    where\n T: MaxSize,

    §

    const POSTCARD_MAX_SIZE: usize = _

    The maximum possible size that the serialization of this\ntype can have, in bytes.
    ","MaxSize","iroh::docs::PeerIdBytes"],["
    §

    impl<S, const N: usize> Merge for [S; N]
    where\n S: IntoStream,

    §

    type Item = <Merge<<S as IntoStream>::IntoStream, N> as Stream>::Item

    The resulting output type.
    §

    type Stream = Merge<<S as IntoStream>::IntoStream, N>

    The stream type.
    §

    fn merge(self) -> <[S; N] as Merge>::Stream

    Combine multiple streams into a single stream.
    ","Merge","iroh::docs::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> Ord for [T; N]
    where\n T: Ord,

    Implements comparison of arrays lexicographically.

    \n
    source§

    fn cmp(&self, other: &[T; N]) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","iroh::docs::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, U, const N: usize> PartialEq<&[U]> for [T; N]
    where\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&[U]>","iroh::docs::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, U, const N: usize> PartialEq<&mut [U]> for [T; N]
    where\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&mut [U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&mut [U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&mut [U]>","iroh::docs::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, U, const N: usize> PartialEq<[U]> for [T; N]
    where\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U]>","iroh::docs::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, U, const N: usize> PartialEq<[U; N]> for [T; N]
    where\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U; N]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U; N]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U; N]>","iroh::docs::PeerIdBytes"],["
    §

    impl PartialEq<Cookie> for [u8; 4]

    §

    fn eq(&self, other: &Cookie) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","iroh::docs::PeerIdBytes"],["
    §

    impl<A, B, const N: usize, const M: usize> PartialEq<Vec<A, N>> for [B; M]
    where\n A: PartialEq<B>,

    §

    fn eq(&self, other: &Vec<A, N>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq>","iroh::docs::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> PartialOrd for [T; N]
    where\n T: PartialOrd,

    Implements comparison of arrays lexicographically.

    \n
    source§

    fn partial_cmp(&self, other: &[T; N]) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    source§

    fn lt(&self, other: &[T; N]) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    source§

    fn le(&self, other: &[T; N]) -> bool

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    source§

    fn ge(&self, other: &[T; N]) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    source§

    fn gt(&self, other: &[T; N]) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    ","PartialOrd","iroh::docs::PeerIdBytes"],["
    §

    impl<Fut, const N: usize> Race for [Fut; N]
    where\n Fut: IntoFuture,

    §

    type Output = <Fut as IntoFuture>::Output

    The resulting output type.
    §

    type Future = Race<<Fut as IntoFuture>::IntoFuture, N>

    Which kind of future are we turning this into?
    §

    fn race(self) -> <[Fut; N] as Race>::Future

    Wait for the first future to complete. Read more
    ","Race","iroh::docs::PeerIdBytes"],["
    §

    impl<Fut, T, E, const N: usize> RaceOk for [Fut; N]
    where\n Fut: IntoFuture<Output = Result<T, E>>,

    §

    type Output = T

    The resulting output type.
    §

    type Error = AggregateError<E, N>

    The resulting error type.
    §

    type Future = RaceOk<<Fut as IntoFuture>::IntoFuture, T, E, N>

    Which kind of future are we turning this into?
    §

    fn race_ok(self) -> <[Fut; N] as RaceOk>::Future

    Waits for the first successful future to complete.
    ","RaceOk","iroh::docs::PeerIdBytes"],["
    §

    impl<T, const N: usize> Schema for [T; N]
    where\n T: Schema,

    §

    const SCHEMA: &'static NamedType = _

    A recursive data structure that describes the schema of the given\ntype.
    ","Schema","iroh::docs::PeerIdBytes"],["
    source§

    impl<T> Serialize for [T; 32]
    where\n T: Serialize,

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","iroh::docs::PeerIdBytes"],["
    source§

    impl<const N: usize> Serialize for [u8; N]

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    ","Serialize","iroh::docs::PeerIdBytes"],["
    1.51.0 · source§

    impl<T, const N: usize> SlicePattern for [T; N]

    §

    type Item = T

    🔬This is a nightly-only experimental API. (slice_pattern)
    The element type of the slice being matched on.
    source§

    fn as_slice(&self) -> &[<[T; N] as SlicePattern>::Item]

    🔬This is a nightly-only experimental API. (slice_pattern)
    Currently, the consumers of SlicePattern need a slice.
    ","SlicePattern","iroh::docs::PeerIdBytes"],["
    1.34.0 · source§

    impl<T, const N: usize> TryFrom<&[T]> for [T; N]
    where\n T: Copy,

    Tries to create an array [T; N] by copying from a slice &[T]. Succeeds if\nslice.len() == N.

    \n\n
    let bytes: [u8; 3] = [1, 0, 2];\n\nlet bytes_head: [u8; 2] = <[u8; 2]>::try_from(&bytes[0..2]).unwrap();\nassert_eq!(1, u16::from_le_bytes(bytes_head));\n\nlet bytes_tail: [u8; 2] = bytes[1..3].try_into().unwrap();\nassert_eq!(512, u16::from_le_bytes(bytes_tail));
    \n
    §

    type Error = TryFromSliceError

    The type returned in the event of a conversion error.
    source§

    fn try_from(slice: &[T]) -> Result<[T; N], TryFromSliceError>

    Performs the conversion.
    ","TryFrom<&[T]>","iroh::docs::PeerIdBytes"],["
    1.59.0 · source§

    impl<T, const N: usize> TryFrom<&mut [T]> for [T; N]
    where\n T: Copy,

    Tries to create an array [T; N] by copying from a mutable slice &mut [T].\nSucceeds if slice.len() == N.

    \n\n
    let mut bytes: [u8; 3] = [1, 0, 2];\n\nlet bytes_head: [u8; 2] = <[u8; 2]>::try_from(&mut bytes[0..2]).unwrap();\nassert_eq!(1, u16::from_le_bytes(bytes_head));\n\nlet bytes_tail: [u8; 2] = (&mut bytes[1..3]).try_into().unwrap();\nassert_eq!(512, u16::from_le_bytes(bytes_tail));
    \n
    §

    type Error = TryFromSliceError

    The type returned in the event of a conversion error.
    source§

    fn try_from(slice: &mut [T]) -> Result<[T; N], TryFromSliceError>

    Performs the conversion.
    ","TryFrom<&mut [T]>","iroh::docs::PeerIdBytes"],["
    §

    impl<T, A, const N: usize> TryFrom<Vec<T, A>> for [T; N]
    where\n A: Allocator,

    §

    fn try_from(vec: Vec<T, A>) -> Result<[T; N], Vec<T, A>>

    Gets the entire contents of the Vec<T> as an array,\nif its size exactly matches that of the requested array.

    \n
    §Examples
    \n
    assert_eq!(vec![1, 2, 3].try_into(), Ok([1, 2, 3]));\nassert_eq!(<Vec<i32>>::new().try_into(), Ok([]));
    \n

    If the length doesn’t match, the input comes back in Err:

    \n\n
    let r: Result<[i32; 4], _> = (0..10).collect::<Vec<_>>().try_into();\nassert_eq!(r, Err(vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9]));
    \n

    If you’re fine with just getting a prefix of the Vec<T>,\nyou can call .truncate(N) first.

    \n\n
    let mut v = String::from(\"hello world\").into_bytes();\nv.sort();\nv.truncate(2);\nlet [a, b]: [_; 2] = v.try_into().unwrap();\nassert_eq!(a, b' ');\nassert_eq!(b, b'd');
    \n
    §

    type Error = Vec<T, A>

    The type returned in the event of a conversion error.
    ","TryFrom>","iroh::docs::PeerIdBytes"],["
    1.48.0 · source§

    impl<T, A, const N: usize> TryFrom<Vec<T, A>> for [T; N]
    where\n A: Allocator,

    source§

    fn try_from(vec: Vec<T, A>) -> Result<[T; N], Vec<T, A>>

    Gets the entire contents of the Vec<T> as an array,\nif its size exactly matches that of the requested array.

    \n
    §Examples
    \n
    assert_eq!(vec![1, 2, 3].try_into(), Ok([1, 2, 3]));\nassert_eq!(<Vec<i32>>::new().try_into(), Ok([]));
    \n

    If the length doesn’t match, the input comes back in Err:

    \n\n
    let r: Result<[i32; 4], _> = (0..10).collect::<Vec<_>>().try_into();\nassert_eq!(r, Err(vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9]));
    \n

    If you’re fine with just getting a prefix of the Vec<T>,\nyou can call .truncate(N) first.

    \n\n
    let mut v = String::from(\"hello world\").into_bytes();\nv.sort();\nv.truncate(2);\nlet [a, b]: [_; 2] = v.try_into().unwrap();\nassert_eq!(a, b' ');\nassert_eq!(b, b'd');
    \n
    §

    type Error = Vec<T, A>

    The type returned in the event of a conversion error.
    ","TryFrom>","iroh::docs::PeerIdBytes"],["
    §

    impl<Fut, T, E, const N: usize> TryJoin for [Fut; N]
    where\n Fut: IntoFuture<Output = Result<T, E>>,

    §

    type Output = [T; N]

    The resulting output type.
    §

    type Error = E

    The resulting error type.
    §

    type Future = TryJoin<<Fut as IntoFuture>::IntoFuture, T, E, N>

    Which kind of future are we turning this into?
    §

    fn try_join(self) -> <[Fut; N] as TryJoin>::Future

    Waits for multiple futures to complete, either returning when all\nfutures complete successfully, or return early when any future completes\nwith an error.
    ","TryJoin","iroh::docs::PeerIdBytes"],["
    §

    impl<const N: usize, T> Value for [T; N]
    where\n T: Value,

    §

    type SelfType<'a> = [<T as Value>::SelfType<'a>; N]\nwhere\n [T; N]: 'a

    SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a
    §

    type AsBytes<'a> = Vec<u8>\nwhere\n [T; N]: 'a

    §

    fn fixed_width() -> Option<usize>

    Width of a fixed type, or None for variable width
    §

    fn from_bytes<'a>(data: &'a [u8]) -> [<T as Value>::SelfType<'a>; N]
    where\n [T; N]: 'a,

    Deserializes data\nImplementations may return a view over data, or an owned type
    §

    fn as_bytes<'a, 'b>(value: &'a <[T; N] as Value>::SelfType<'b>) -> Vec<u8>
    where\n 'b: 'a,\n [T; N]: 'a + 'b,

    Serialize the value to a slice
    §

    fn type_name() -> TypeName

    Globally unique identifier for this type
    ","Value","iroh::docs::PeerIdBytes"],["
    §

    impl<T, const N: usize> ValueOrd for [T; N]
    where\n T: DerOrd,

    §

    fn value_cmp(&self, other: &[T; N]) -> Result<Ordering, Error>

    Return an Ordering between value portion of TLV-encoded self and\nother when serialized as ASN.1 DER.
    ","ValueOrd","iroh::docs::PeerIdBytes"],["
    §

    impl<Z, const N: usize> Zeroize for [Z; N]
    where\n Z: Zeroize,

    Impl [Zeroize] on arrays of types that impl [Zeroize].

    \n
    §

    fn zeroize(&mut self)

    Zero out this object from memory using Rust intrinsics which ensure the\nzeroization operation is not “optimized away” by the compiler.
    ","Zeroize","iroh::docs::PeerIdBytes"],["
    §

    impl<S, const N: usize> Zip for [S; N]
    where\n S: IntoStream,

    §

    type Item = <Zip<<S as IntoStream>::IntoStream, N> as Stream>::Item

    What’s the return type of our stream?
    §

    type Stream = Zip<<S as IntoStream>::IntoStream, N>

    What stream do we return?
    §

    fn zip(self) -> <[S; N] as Zip>::Stream

    Combine multiple streams into a single stream.
    ","Zip","iroh::docs::PeerIdBytes"],["
    source§

    impl<T, const N: usize> ConstParamTy for [T; N]
    where\n T: ConstParamTy,

    ","ConstParamTy","iroh::docs::PeerIdBytes"],["
    1.58.0 · source§

    impl<T, const N: usize> Copy for [T; N]
    where\n T: Copy,

    ","Copy","iroh::docs::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> Eq for [T; N]
    where\n T: Eq,

    ","Eq","iroh::docs::PeerIdBytes"],["
    source§

    impl<T, const N: usize> StructuralPartialEq for [T; N]

    ","StructuralPartialEq","iroh::docs::PeerIdBytes"],["
    §

    impl<const N: usize, T> Unaligned for [T; N]
    where\n T: Unaligned,

    ","Unaligned","iroh::docs::PeerIdBytes"],["
    §

    impl<Z, const N: usize> ZeroizeOnDrop for [Z; N]
    where\n Z: ZeroizeOnDrop,

    Impl [ZeroizeOnDrop] on arrays of types that impl [ZeroizeOnDrop].

    \n
    ","ZeroizeOnDrop","iroh::docs::PeerIdBytes"]], -"iroh_docs":[["
    source§

    impl<T, const N: usize> [T; N]

    1.55.0 · source

    pub fn map<F, U>(self, f: F) -> [U; N]
    where\n F: FnMut(T) -> U,

    Returns an array of the same size as self, with function f applied to each element\nin order.

    \n

    If you don’t necessarily need a new fixed-size array, consider using\nIterator::map instead.

    \n
    §Note on performance and stack usage
    \n

    Unfortunately, usages of this method are currently not always optimized\nas well as they could be. This mainly concerns large arrays, as mapping\nover small arrays seem to be optimized just fine. Also note that in\ndebug mode (i.e. without any optimizations), this method can use a lot\nof stack space (a few times the size of the array or more).

    \n

    Therefore, in performance-critical code, try to avoid using this method\non large arrays or check the emitted code. Also try to avoid chained\nmaps (e.g. arr.map(...).map(...)).

    \n

    In many cases, you can instead use Iterator::map by calling .iter()\nor .into_iter() on your array. [T; N]::map is only necessary if you\nreally need a new array of the same size as the result. Rust’s lazy\niterators tend to get optimized very well.

    \n
    §Examples
    \n
    let x = [1, 2, 3];\nlet y = x.map(|v| v + 1);\nassert_eq!(y, [2, 3, 4]);\n\nlet x = [1, 2, 3];\nlet mut temp = 0;\nlet y = x.map(|v| { temp += 1; v * temp });\nassert_eq!(y, [1, 4, 9]);\n\nlet x = [\"Ferris\", \"Bueller's\", \"Day\", \"Off\"];\nlet y = x.map(|v| v.len());\nassert_eq!(y, [6, 9, 3, 3]);
    \n
    source

    pub fn try_map<F, R>(\n self,\n f: F\n) -> <<R as Try>::Residual as Residual<[<R as Try>::Output; N]>>::TryType
    where\n F: FnMut(T) -> R,\n R: Try,\n <R as Try>::Residual: Residual<[<R as Try>::Output; N]>,

    🔬This is a nightly-only experimental API. (array_try_map)

    A fallible function f applied to each element on array self in order to\nreturn an array the same size as self or the first error encountered.

    \n

    The return type of this function depends on the return type of the closure.\nIf you return Result<T, E> from the closure, you’ll get a Result<[T; N], E>.\nIf you return Option<T> from the closure, you’ll get an Option<[T; N]>.

    \n
    §Examples
    \n
    #![feature(array_try_map)]\n\nlet a = [\"1\", \"2\", \"3\"];\nlet b = a.try_map(|v| v.parse::<u32>()).unwrap().map(|v| v + 1);\nassert_eq!(b, [2, 3, 4]);\n\nlet a = [\"1\", \"2a\", \"3\"];\nlet b = a.try_map(|v| v.parse::<u32>());\nassert!(b.is_err());\n\nuse std::num::NonZero;\n\nlet z = [1, 2, 0, 3, 4];\nassert_eq!(z.try_map(NonZero::new), None);\n\nlet a = [1, 2, 3];\nlet b = a.try_map(NonZero::new);\nlet c = b.map(|x| x.map(NonZero::get));\nassert_eq!(c, Some(a));
    \n
    1.57.0 (const: 1.57.0) · source

    pub const fn as_slice(&self) -> &[T]

    Returns a slice containing the entire array. Equivalent to &s[..].

    \n
    1.57.0 · source

    pub fn as_mut_slice(&mut self) -> &mut [T]

    Returns a mutable slice containing the entire array. Equivalent to\n&mut s[..].

    \n
    1.77.0 · source

    pub fn each_ref(&self) -> [&T; N]

    Borrows each element and returns an array of references with the same\nsize as self.

    \n
    §Example
    \n
    let floats = [3.1, 2.7, -1.0];\nlet float_refs: [&f64; 3] = floats.each_ref();\nassert_eq!(float_refs, [&3.1, &2.7, &-1.0]);
    \n

    This method is particularly useful if combined with other methods, like\nmap. This way, you can avoid moving the original\narray if its elements are not Copy.

    \n\n
    let strings = [\"Ferris\".to_string(), \"♥\".to_string(), \"Rust\".to_string()];\nlet is_ascii = strings.each_ref().map(|s| s.is_ascii());\nassert_eq!(is_ascii, [true, false, true]);\n\n// We can still access the original array: it has not been moved.\nassert_eq!(strings.len(), 3);
    \n
    1.77.0 · source

    pub fn each_mut(&mut self) -> [&mut T; N]

    Borrows each element mutably and returns an array of mutable references\nwith the same size as self.

    \n
    §Example
    \n
    \nlet mut floats = [3.1, 2.7, -1.0];\nlet float_refs: [&mut f64; 3] = floats.each_mut();\n*float_refs[0] = 0.0;\nassert_eq!(float_refs, [&mut 0.0, &mut 2.7, &mut -1.0]);\nassert_eq!(floats, [0.0, 2.7, -1.0]);
    \n
    source

    pub fn split_array_ref<const M: usize>(&self) -> (&[T; M], &[T])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one array reference into two at an index.

    \n

    The first will contain all indices from [0, M) (excluding\nthe index M itself) and the second will contain all\nindices from [M, N) (excluding the index N itself).

    \n
    §Panics
    \n

    Panics if M > N.

    \n
    §Examples
    \n
    #![feature(split_array)]\n\nlet v = [1, 2, 3, 4, 5, 6];\n\n{\n   let (left, right) = v.split_array_ref::<0>();\n   assert_eq!(left, &[]);\n   assert_eq!(right, &[1, 2, 3, 4, 5, 6]);\n}\n\n{\n    let (left, right) = v.split_array_ref::<2>();\n    assert_eq!(left, &[1, 2]);\n    assert_eq!(right, &[3, 4, 5, 6]);\n}\n\n{\n    let (left, right) = v.split_array_ref::<6>();\n    assert_eq!(left, &[1, 2, 3, 4, 5, 6]);\n    assert_eq!(right, &[]);\n}
    \n
    source

    pub fn split_array_mut<const M: usize>(&mut self) -> (&mut [T; M], &mut [T])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one mutable array reference into two at an index.

    \n

    The first will contain all indices from [0, M) (excluding\nthe index M itself) and the second will contain all\nindices from [M, N) (excluding the index N itself).

    \n
    §Panics
    \n

    Panics if M > N.

    \n
    §Examples
    \n
    #![feature(split_array)]\n\nlet mut v = [1, 0, 3, 0, 5, 6];\nlet (left, right) = v.split_array_mut::<2>();\nassert_eq!(left, &mut [1, 0][..]);\nassert_eq!(right, &mut [3, 0, 5, 6]);\nleft[1] = 2;\nright[1] = 4;\nassert_eq!(v, [1, 2, 3, 4, 5, 6]);
    \n
    source

    pub fn rsplit_array_ref<const M: usize>(&self) -> (&[T], &[T; M])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one array reference into two at an index from the end.

    \n

    The first will contain all indices from [0, N - M) (excluding\nthe index N - M itself) and the second will contain all\nindices from [N - M, N) (excluding the index N itself).

    \n
    §Panics
    \n

    Panics if M > N.

    \n
    §Examples
    \n
    #![feature(split_array)]\n\nlet v = [1, 2, 3, 4, 5, 6];\n\n{\n   let (left, right) = v.rsplit_array_ref::<0>();\n   assert_eq!(left, &[1, 2, 3, 4, 5, 6]);\n   assert_eq!(right, &[]);\n}\n\n{\n    let (left, right) = v.rsplit_array_ref::<2>();\n    assert_eq!(left, &[1, 2, 3, 4]);\n    assert_eq!(right, &[5, 6]);\n}\n\n{\n    let (left, right) = v.rsplit_array_ref::<6>();\n    assert_eq!(left, &[]);\n    assert_eq!(right, &[1, 2, 3, 4, 5, 6]);\n}
    \n
    source

    pub fn rsplit_array_mut<const M: usize>(&mut self) -> (&mut [T], &mut [T; M])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one mutable array reference into two at an index from the end.

    \n

    The first will contain all indices from [0, N - M) (excluding\nthe index N - M itself) and the second will contain all\nindices from [N - M, N) (excluding the index N itself).

    \n
    §Panics
    \n

    Panics if M > N.

    \n
    §Examples
    \n
    #![feature(split_array)]\n\nlet mut v = [1, 0, 3, 0, 5, 6];\nlet (left, right) = v.rsplit_array_mut::<4>();\nassert_eq!(left, &mut [1, 0]);\nassert_eq!(right, &mut [3, 0, 5, 6][..]);\nleft[1] = 2;\nright[1] = 4;\nassert_eq!(v, [1, 2, 3, 4, 5, 6]);
    \n
    ",0,"iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<const N: usize> [u8; N]

    source

    pub const fn as_ascii(&self) -> Option<&[AsciiChar; N]>

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this array of bytes into a array of ASCII characters,\nor returns None if any of the characters is non-ASCII.

    \n
    §Examples
    \n
    #![feature(ascii_char)]\n#![feature(const_option)]\n\nconst HEX_DIGITS: [std::ascii::Char; 16] =\n    *b\"0123456789abcdef\".as_ascii().unwrap();\n\nassert_eq!(HEX_DIGITS[1].as_str(), \"1\");\nassert_eq!(HEX_DIGITS[10].as_str(), \"a\");
    \n
    source

    pub const unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar; N]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this array of bytes into a array of ASCII characters,\nwithout checking whether they’re valid.

    \n
    §Safety
    \n

    Every byte in the array must be in 0..=127, or else this is UB.

    \n
    ",0,"iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T> Array for [T; 32]
    where\n T: Default,

    §

    type Item = T

    The type of the items in the thing.
    §

    const CAPACITY: usize = 32usize

    The number of slots in the thing.
    §

    fn as_slice(&self) -> &[T]

    Gives a shared slice over the whole thing. Read more
    §

    fn as_slice_mut(&mut self) -> &mut [T]

    Gives a unique slice over the whole thing. Read more
    §

    fn default() -> [T; 32]

    Create a default-initialized instance of ourself, similar to the\nDefault trait, but implemented for the same range of sizes as\n[Array].
    ","Array","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> Array for [T; N]

    §

    type Item = T

    The type of the array’s elements.
    §

    fn size() -> usize

    Returns the number of items the array can hold.
    ","Array","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, T> AsBytes for [T; N]
    where\n T: AsBytes,

    §

    fn as_bytes(&self) -> &[u8]

    Gets the bytes of this value. Read more
    §

    fn write_to(&self, bytes: &mut [u8]) -> Option<()>

    Writes a copy of self to bytes. Read more
    §

    fn write_to_prefix(&self, bytes: &mut [u8]) -> Option<()>

    Writes a copy of self to the prefix of bytes. Read more
    §

    fn write_to_suffix(&self, bytes: &mut [u8]) -> Option<()>

    Writes a copy of self to the suffix of bytes. Read more
    ","AsBytes","iroh_docs::sync::PeerIdBytes"],["
    §

    impl AsBytes for [u8; 32]

    §

    fn as_bytes(&self) -> &[u8]

    Casts the input type to a byte slice
    ","AsBytes","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> AsMut<[T]> for [T; N]

    source§

    fn as_mut(&mut self) -> &mut [T]

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut<[T]>","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> AsRef<[T]> for [T; N]

    source§

    fn as_ref(&self) -> &[T]

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef<[T]>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> BitView for [T; N]
    where\n T: BitStore,

    Note that overly-large arrays may cause the conversions to fail.

    \n
    §

    type Store = T

    The underlying element type.
    §

    fn view_bits<O>(&self) -> &BitSlice<T, O>
    where\n O: BitOrder,

    Views a memory region as an immutable bit-slice.
    §

    fn try_view_bits<O>(&self) -> Result<&BitSlice<T, O>, BitSpanError<T>>
    where\n O: BitOrder,

    Attempts to view a memory region as an immutable bit-slice. Read more
    §

    fn view_bits_mut<O>(&mut self) -> &mut BitSlice<T, O>
    where\n O: BitOrder,

    Views a memory region as a mutable bit-slice.
    §

    fn try_view_bits_mut<O>(\n &mut self\n) -> Result<&mut BitSlice<T, O>, BitSpanError<T>>
    where\n O: BitOrder,

    Attempts to view a memory region as a mutable bit-slice. Read more
    ","BitView","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> BitViewSized for [T; N]
    where\n T: BitStore,

    §

    const ZERO: [T; N] = _

    The zero constant.
    §

    fn as_raw_slice(&self) -> &[<[T; N] as BitView>::Store]

    Views the type as a slice of its elements.
    §

    fn as_raw_mut_slice(&mut self) -> &mut [<[T; N] as BitView>::Store]

    Views the type as a mutable slice of its elements.
    §

    fn into_bitarray<O>(self) -> BitArray<Self, O>
    where\n O: BitOrder,

    Wraps self in a BitArray.
    ","BitViewSized","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T, const N: usize> Borrow<[T]> for [T; N]

    source§

    fn borrow(&self) -> &[T]

    Immutably borrows from an owned value. Read more
    ","Borrow<[T]>","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T, const N: usize> BorrowMut<[T]> for [T; N]

    source§

    fn borrow_mut(&mut self) -> &mut [T]

    Mutably borrows from an owned value. Read more
    ","BorrowMut<[T]>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<S, const N: usize> Chain for [S; N]
    where\n S: Stream,

    §

    type Item = <S as Stream>::Item

    What’s the return type of our stream?
    §

    type Stream = Chain<S, N>

    What stream do we return?
    §

    fn chain(self) -> <[S; N] as Chain>::Stream

    Combine multiple streams into a single stream.
    ","Chain","iroh_docs::sync::PeerIdBytes"],["
    1.58.0 · source§

    impl<T, const N: usize> Clone for [T; N]
    where\n T: Clone,

    source§

    fn clone(&self) -> [T; N]

    Returns a copy of the value. Read more
    source§

    fn clone_from(&mut self, other: &[T; N])

    Performs copy-assignment from source. Read more
    ","Clone","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> Debug for [T; N]
    where\n T: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize> Decode for [u8; N]

    Decodes a byte array from byte[n] as described in RFC4251 § 5:

    \n
    \n

    A byte represents an arbitrary 8-bit value (octet). Fixed length\ndata is sometimes represented as an array of bytes, written\nbyte[n], where n is the number of bytes in the array.

    \n
    \n
    §

    type Error = Error

    Type returned in the event of a decoding error.
    §

    fn decode(reader: &mut impl Reader) -> Result<[u8; N], Error>

    Attempt to decode a value of this type using the provided [Reader].
    ","Decode","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<'a, T, const N: usize> DecodeValue<'a> for [T; N]
    where\n T: Decode<'a>,

    §

    fn decode_value<R>(reader: &mut R, header: Header) -> Result<[T; N], Error>
    where\n R: Reader<'a>,

    Attempt to decode this message using the provided [Reader].
    ","DecodeValue<'a>","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 32]
    where\n T: Default,

    source§

    fn default() -> [T; 32]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 31]
    where\n T: Default,

    source§

    fn default() -> [T; 31]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 30]
    where\n T: Default,

    source§

    fn default() -> [T; 30]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 29]
    where\n T: Default,

    source§

    fn default() -> [T; 29]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 28]
    where\n T: Default,

    source§

    fn default() -> [T; 28]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 27]
    where\n T: Default,

    source§

    fn default() -> [T; 27]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 26]
    where\n T: Default,

    source§

    fn default() -> [T; 26]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 25]
    where\n T: Default,

    source§

    fn default() -> [T; 25]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 24]
    where\n T: Default,

    source§

    fn default() -> [T; 24]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 23]
    where\n T: Default,

    source§

    fn default() -> [T; 23]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 22]
    where\n T: Default,

    source§

    fn default() -> [T; 22]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 21]
    where\n T: Default,

    source§

    fn default() -> [T; 21]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 20]
    where\n T: Default,

    source§

    fn default() -> [T; 20]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 19]
    where\n T: Default,

    source§

    fn default() -> [T; 19]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 18]
    where\n T: Default,

    source§

    fn default() -> [T; 18]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 17]
    where\n T: Default,

    source§

    fn default() -> [T; 17]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 16]
    where\n T: Default,

    source§

    fn default() -> [T; 16]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 15]
    where\n T: Default,

    source§

    fn default() -> [T; 15]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 14]
    where\n T: Default,

    source§

    fn default() -> [T; 14]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 13]
    where\n T: Default,

    source§

    fn default() -> [T; 13]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 12]
    where\n T: Default,

    source§

    fn default() -> [T; 12]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 11]
    where\n T: Default,

    source§

    fn default() -> [T; 11]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 10]
    where\n T: Default,

    source§

    fn default() -> [T; 10]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 9]
    where\n T: Default,

    source§

    fn default() -> [T; 9]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 8]
    where\n T: Default,

    source§

    fn default() -> [T; 8]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 7]
    where\n T: Default,

    source§

    fn default() -> [T; 7]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 6]
    where\n T: Default,

    source§

    fn default() -> [T; 6]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 5]
    where\n T: Default,

    source§

    fn default() -> [T; 5]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 4]
    where\n T: Default,

    source§

    fn default() -> [T; 4]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 3]
    where\n T: Default,

    source§

    fn default() -> [T; 3]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 2]
    where\n T: Default,

    source§

    fn default() -> [T; 2]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 1]
    where\n T: Default,

    source§

    fn default() -> [T; 1]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 0]

    source§

    fn default() -> [T; 0]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<'de, T> Deserialize<'de> for [T; 32]
    where\n T: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<[T; 32], <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<'de, const N: usize> Deserialize<'de> for [u8; N]

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<[u8; N], <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    ","Deserialize<'de>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize> Encode for [u8; N]

    Encodes [u8; N] into byte[n] as described in RFC4251 § 5:

    \n
    \n

    A byte represents an arbitrary 8-bit value (octet). Fixed length\ndata is sometimes represented as an array of bytes, written\nbyte[n], where n is the number of bytes in the array.

    \n
    \n
    §

    fn encoded_len(&self) -> Result<usize, Error>

    Get the length of this type encoded in bytes, prior to Base64 encoding.
    §

    fn encode(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode this value using the provided [Writer].
    §

    fn encoded_len_prefixed(&self) -> Result<usize, Error>

    Return the length of this type after encoding when prepended with a\nuint32 length prefix.
    §

    fn encode_prefixed(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode this value, first prepending a uint32 length prefix\nset to [Encode::encoded_len].
    ","Encode","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> EncodeLabelSet for [T; N]
    where\n T: EncodeLabel,

    §

    fn encode(&self, encoder: LabelSetEncoder<'_>) -> Result<(), Error>

    Encode oneself into the given encoder.
    ","EncodeLabelSet","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> EncodeValue for [T; N]
    where\n T: Encode,

    §

    fn value_len(&self) -> Result<Length, Error>

    Compute the length of this value (sans [Tag]+[Length] header) when\nencoded as ASN.1 DER.
    §

    fn encode_value(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode value (sans [Tag]+[Length] header) as ASN.1 DER using the\nprovided [Writer].
    §

    fn header(&self) -> Result<Header, Error>
    where\n Self: Tagged,

    Get the [Header] used to encode this value.
    ","EncodeValue","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 32]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 31]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 30]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 29]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 28]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 27]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 26]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 25]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 24]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 23]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 22]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 21]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 20]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 19]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 18]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 17]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 16]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 15]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 14]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 13]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 12]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 11]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 10]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 9]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 8]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 7]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 6]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 5]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 4]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 3]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 2]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 1]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 0]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 2048]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 1024]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 512]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 256]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 128]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 64]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<'a> FindToken<&'a u8> for [u8; 32]

    §

    fn find_token(&self, token: &u8) -> bool

    Returns true if self contains the token
    ","FindToken<&'a u8>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl FindToken<u8> for [u8; 32]

    §

    fn find_token(&self, token: u8) -> bool

    Returns true if self contains the token
    ","FindToken","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> FixedTag for [T; N]

    §

    const TAG: Tag = Tag::Sequence

    ASN.1 tag
    ","FixedTag","iroh_docs::sync::PeerIdBytes"],["
    §

    impl From<&Signature> for [u8; 64]

    §

    fn from(sig: &Signature) -> [u8; 64]

    Converts to this type from the input type.
    ","From<&Signature>","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl From<AuthorId> for [u8; 32]

    source§

    fn from(value: AuthorId) -> Self

    Converts to this type from the input type.
    ","From","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T> From<GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>> for [T; 32]

    §

    fn from(\n sel: GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>\n) -> [T; 32]

    Converts to this type from the input type.
    ","From, B0>, B0>, B0>, B0>, B0>>>","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl From<Hash> for [u8; 32]

    source§

    fn from(value: Hash) -> [u8; 32]

    Converts to this type from the input type.
    ","From","iroh_docs::sync::PeerIdBytes"],["
    §

    impl From<Hash> for [u8; 32]

    §

    fn from(hash: Hash) -> [u8; 32]

    Converts to this type from the input type.
    ","From","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, const UPPERCASE: bool> From<HexOrBin<N, UPPERCASE>> for [u8; N]

    §

    fn from(hex_or_bin: HexOrBin<N, UPPERCASE>) -> [u8; N]

    Converts to this type from the input type.
    ","From>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl From<MacAddr> for [u8; 6]

    §

    fn from(addr: MacAddr) -> [u8; 6]

    Converts to this type from the input type.
    ","From","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl From<NamespaceId> for [u8; 32]

    source§

    fn from(value: NamespaceId) -> Self

    Converts to this type from the input type.
    ","From","iroh_docs::sync::PeerIdBytes"],["
    §

    impl From<Signature> for [u8; 64]

    §

    fn from(sig: Signature) -> [u8; 64]

    Converts to this type from the input type.
    ","From","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T, const N: usize> From<Simd<T, N>> for [T; N]

    source§

    fn from(vector: Simd<T, N>) -> [T; N]

    Converts to this type from the input type.
    ","From>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, T> FromBytes for [T; N]
    where\n T: FromBytes,

    §

    fn ref_from(bytes: &[u8]) -> Option<&Self>
    where\n Self: Sized,

    Interprets the given bytes as a &Self without copying. Read more
    §

    fn ref_from_prefix(bytes: &[u8]) -> Option<&Self>
    where\n Self: Sized,

    Interprets the prefix of the given bytes as a &Self without copying. Read more
    §

    fn ref_from_suffix(bytes: &[u8]) -> Option<&Self>
    where\n Self: Sized,

    Interprets the suffix of the given bytes as a &Self without copying. Read more
    §

    fn slice_from(bytes: &[u8]) -> Option<&[Self]>
    where\n Self: Sized,

    Interprets the given bytes as a &[Self] without copying. Read more
    §

    fn slice_from_prefix(bytes: &[u8], count: usize) -> Option<(&[Self], &[u8])>
    where\n Self: Sized,

    Interprets the prefix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
    §

    fn slice_from_suffix(bytes: &[u8], count: usize) -> Option<(&[u8], &[Self])>
    where\n Self: Sized,

    Interprets the suffix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
    §

    fn read_from(bytes: &[u8]) -> Option<Self>
    where\n Self: Sized,

    Reads a copy of Self from bytes. Read more
    §

    fn read_from_prefix(bytes: &[u8]) -> Option<Self>
    where\n Self: Sized,

    Reads a copy of Self from the prefix of bytes. Read more
    §

    fn read_from_suffix(bytes: &[u8]) -> Option<Self>
    where\n Self: Sized,

    Reads a copy of Self from the suffix of bytes. Read more
    ","FromBytes","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl FromHex for [u8; 32]

    §

    type Error = FromHexError

    source§

    fn from_hex<T>(hex: T) -> Result<[u8; 32], <[u8; 32] as FromHex>::Error>
    where\n T: AsRef<[u8]>,

    Creates an instance of type Self from the given hex string, or fails\nwith a custom error type. Read more
    ","FromHex","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, T> FromZeroes for [T; N]
    where\n T: FromZeroes,

    §

    fn zero(&mut self)

    Overwrites self with zeroes. Read more
    §

    fn new_zeroed() -> Self
    where\n Self: Sized,

    Creates an instance of Self from zeroed bytes. Read more
    ","FromZeroes","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T> Hash for [T; 32]
    where\n T: Hash,

    §

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher.
    §

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher.
    ","Hash","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> Hash for [T; N]
    where\n T: Hash,

    The hash of an array is the same as that of the corresponding slice,\nas required by the Borrow implementation.

    \n\n
    use std::hash::BuildHasher;\n\nlet b = std::hash::RandomState::new();\nlet a: [u8; 3] = [0xa8, 0x3c, 0x09];\nlet s: &[u8] = &[0xa8, 0x3c, 0x09];\nassert_eq!(b.hash_one(a), b.hash_one(s));
    \n
    source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","iroh_docs::sync::PeerIdBytes"],["
    1.50.0 · source§

    impl<T, I, const N: usize> Index<I> for [T; N]
    where\n [T]: Index<I>,

    §

    type Output = <[T] as Index<I>>::Output

    The returned type after indexing.
    source§

    fn index(&self, index: I) -> &<[T; N] as Index<I>>::Output

    Performs the indexing (container[index]) operation. Read more
    ","Index","iroh_docs::sync::PeerIdBytes"],["
    1.50.0 · source§

    impl<T, I, const N: usize> IndexMut<I> for [T; N]
    where\n [T]: IndexMut<I>,

    source§

    fn index_mut(&mut self, index: I) -> &mut <[T; N] as Index<I>>::Output

    Performs the mutable indexing (container[index]) operation. Read more
    ","IndexMut","iroh_docs::sync::PeerIdBytes"],["
    §

    impl InputLength for [u8; 32]

    §

    fn input_len(&self) -> usize

    Calculates the input length, as indicated by its name,\nand the name of the trait itself
    ","InputLength","iroh_docs::sync::PeerIdBytes"],["
    1.53.0 · source§

    impl<T, const N: usize> IntoIterator for [T; N]

    source§

    fn into_iter(self) -> <[T; N] as IntoIterator>::IntoIter

    Creates a consuming iterator, that is, one that moves each value out of\nthe array (from start to end). The array cannot be used after calling\nthis unless T implements Copy, so the whole array is copied.

    \n

    Arrays have special behavior when calling .into_iter() prior to the\n2021 edition – see the array Editions section for more information.

    \n
    §

    type Item = T

    The type of the elements being iterated over.
    §

    type IntoIter = IntoIter<T, N>

    Which kind of iterator are we turning this into?
    ","IntoIterator","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize> IntoResponse for [u8; N]

    §

    fn into_response(self) -> Response<Body>

    Create a response.
    ","IntoResponse","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<Fut, const N: usize> Join for [Fut; N]
    where\n Fut: IntoFuture,

    §

    type Output = [<Fut as IntoFuture>::Output; N]

    The resulting output type.
    §

    type Future = Join<<Fut as IntoFuture>::IntoFuture, N>

    The Future implementation returned by this method.
    §

    fn join(self) -> <[Fut; N] as Join>::Future

    Waits for multiple futures to complete. Read more
    ","Join","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, T> Key for [T; N]
    where\n T: Key,

    §

    fn compare(data1: &[u8], data2: &[u8]) -> Ordering

    Compare data1 with data2
    ","Key","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> MaxSize for [T; N]
    where\n T: MaxSize,

    §

    const POSTCARD_MAX_SIZE: usize = _

    The maximum possible size that the serialization of this\ntype can have, in bytes.
    ","MaxSize","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<S, const N: usize> Merge for [S; N]
    where\n S: IntoStream,

    §

    type Item = <Merge<<S as IntoStream>::IntoStream, N> as Stream>::Item

    The resulting output type.
    §

    type Stream = Merge<<S as IntoStream>::IntoStream, N>

    The stream type.
    §

    fn merge(self) -> <[S; N] as Merge>::Stream

    Combine multiple streams into a single stream.
    ","Merge","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> Ord for [T; N]
    where\n T: Ord,

    Implements comparison of arrays lexicographically.

    \n
    source§

    fn cmp(&self, other: &[T; N]) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, U, const N: usize> PartialEq<&[U]> for [T; N]
    where\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&[U]>","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, U, const N: usize> PartialEq<&mut [U]> for [T; N]
    where\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&mut [U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&mut [U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&mut [U]>","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, U, const N: usize> PartialEq<[U]> for [T; N]
    where\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U]>","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, U, const N: usize> PartialEq<[U; N]> for [T; N]
    where\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U; N]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U; N]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U; N]>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl PartialEq<Cookie> for [u8; 4]

    §

    fn eq(&self, other: &Cookie) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<A, B, const N: usize, const M: usize> PartialEq<Vec<A, N>> for [B; M]
    where\n A: PartialEq<B>,

    §

    fn eq(&self, other: &Vec<A, N>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq>","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> PartialOrd for [T; N]
    where\n T: PartialOrd,

    Implements comparison of arrays lexicographically.

    \n
    source§

    fn partial_cmp(&self, other: &[T; N]) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    source§

    fn lt(&self, other: &[T; N]) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    source§

    fn le(&self, other: &[T; N]) -> bool

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    source§

    fn ge(&self, other: &[T; N]) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    source§

    fn gt(&self, other: &[T; N]) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    ","PartialOrd","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<Fut, const N: usize> Race for [Fut; N]
    where\n Fut: IntoFuture,

    §

    type Output = <Fut as IntoFuture>::Output

    The resulting output type.
    §

    type Future = Race<<Fut as IntoFuture>::IntoFuture, N>

    Which kind of future are we turning this into?
    §

    fn race(self) -> <[Fut; N] as Race>::Future

    Wait for the first future to complete. Read more
    ","Race","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<Fut, T, E, const N: usize> RaceOk for [Fut; N]
    where\n Fut: IntoFuture<Output = Result<T, E>>,

    §

    type Output = T

    The resulting output type.
    §

    type Error = AggregateError<E, N>

    The resulting error type.
    §

    type Future = RaceOk<<Fut as IntoFuture>::IntoFuture, T, E, N>

    Which kind of future are we turning this into?
    §

    fn race_ok(self) -> <[Fut; N] as RaceOk>::Future

    Waits for the first successful future to complete.
    ","RaceOk","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> Schema for [T; N]
    where\n T: Schema,

    §

    const SCHEMA: &'static NamedType = _

    A recursive data structure that describes the schema of the given\ntype.
    ","Schema","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Serialize for [T; 32]
    where\n T: Serialize,

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<const N: usize> Serialize for [u8; N]

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    ","Serialize","iroh_docs::sync::PeerIdBytes"],["
    1.51.0 · source§

    impl<T, const N: usize> SlicePattern for [T; N]

    §

    type Item = T

    🔬This is a nightly-only experimental API. (slice_pattern)
    The element type of the slice being matched on.
    source§

    fn as_slice(&self) -> &[<[T; N] as SlicePattern>::Item]

    🔬This is a nightly-only experimental API. (slice_pattern)
    Currently, the consumers of SlicePattern need a slice.
    ","SlicePattern","iroh_docs::sync::PeerIdBytes"],["
    1.34.0 · source§

    impl<T, const N: usize> TryFrom<&[T]> for [T; N]
    where\n T: Copy,

    Tries to create an array [T; N] by copying from a slice &[T]. Succeeds if\nslice.len() == N.

    \n\n
    let bytes: [u8; 3] = [1, 0, 2];\n\nlet bytes_head: [u8; 2] = <[u8; 2]>::try_from(&bytes[0..2]).unwrap();\nassert_eq!(1, u16::from_le_bytes(bytes_head));\n\nlet bytes_tail: [u8; 2] = bytes[1..3].try_into().unwrap();\nassert_eq!(512, u16::from_le_bytes(bytes_tail));
    \n
    §

    type Error = TryFromSliceError

    The type returned in the event of a conversion error.
    source§

    fn try_from(slice: &[T]) -> Result<[T; N], TryFromSliceError>

    Performs the conversion.
    ","TryFrom<&[T]>","iroh_docs::sync::PeerIdBytes"],["
    1.59.0 · source§

    impl<T, const N: usize> TryFrom<&mut [T]> for [T; N]
    where\n T: Copy,

    Tries to create an array [T; N] by copying from a mutable slice &mut [T].\nSucceeds if slice.len() == N.

    \n\n
    let mut bytes: [u8; 3] = [1, 0, 2];\n\nlet bytes_head: [u8; 2] = <[u8; 2]>::try_from(&mut bytes[0..2]).unwrap();\nassert_eq!(1, u16::from_le_bytes(bytes_head));\n\nlet bytes_tail: [u8; 2] = (&mut bytes[1..3]).try_into().unwrap();\nassert_eq!(512, u16::from_le_bytes(bytes_tail));
    \n
    §

    type Error = TryFromSliceError

    The type returned in the event of a conversion error.
    source§

    fn try_from(slice: &mut [T]) -> Result<[T; N], TryFromSliceError>

    Performs the conversion.
    ","TryFrom<&mut [T]>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, A, const N: usize> TryFrom<Vec<T, A>> for [T; N]
    where\n A: Allocator,

    §

    fn try_from(vec: Vec<T, A>) -> Result<[T; N], Vec<T, A>>

    Gets the entire contents of the Vec<T> as an array,\nif its size exactly matches that of the requested array.

    \n
    §Examples
    \n
    assert_eq!(vec![1, 2, 3].try_into(), Ok([1, 2, 3]));\nassert_eq!(<Vec<i32>>::new().try_into(), Ok([]));
    \n

    If the length doesn’t match, the input comes back in Err:

    \n\n
    let r: Result<[i32; 4], _> = (0..10).collect::<Vec<_>>().try_into();\nassert_eq!(r, Err(vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9]));
    \n

    If you’re fine with just getting a prefix of the Vec<T>,\nyou can call .truncate(N) first.

    \n\n
    let mut v = String::from(\"hello world\").into_bytes();\nv.sort();\nv.truncate(2);\nlet [a, b]: [_; 2] = v.try_into().unwrap();\nassert_eq!(a, b' ');\nassert_eq!(b, b'd');
    \n
    §

    type Error = Vec<T, A>

    The type returned in the event of a conversion error.
    ","TryFrom>","iroh_docs::sync::PeerIdBytes"],["
    1.48.0 · source§

    impl<T, A, const N: usize> TryFrom<Vec<T, A>> for [T; N]
    where\n A: Allocator,

    source§

    fn try_from(vec: Vec<T, A>) -> Result<[T; N], Vec<T, A>>

    Gets the entire contents of the Vec<T> as an array,\nif its size exactly matches that of the requested array.

    \n
    §Examples
    \n
    assert_eq!(vec![1, 2, 3].try_into(), Ok([1, 2, 3]));\nassert_eq!(<Vec<i32>>::new().try_into(), Ok([]));
    \n

    If the length doesn’t match, the input comes back in Err:

    \n\n
    let r: Result<[i32; 4], _> = (0..10).collect::<Vec<_>>().try_into();\nassert_eq!(r, Err(vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9]));
    \n

    If you’re fine with just getting a prefix of the Vec<T>,\nyou can call .truncate(N) first.

    \n\n
    let mut v = String::from(\"hello world\").into_bytes();\nv.sort();\nv.truncate(2);\nlet [a, b]: [_; 2] = v.try_into().unwrap();\nassert_eq!(a, b' ');\nassert_eq!(b, b'd');
    \n
    §

    type Error = Vec<T, A>

    The type returned in the event of a conversion error.
    ","TryFrom>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<Fut, T, E, const N: usize> TryJoin for [Fut; N]
    where\n Fut: IntoFuture<Output = Result<T, E>>,

    §

    type Output = [T; N]

    The resulting output type.
    §

    type Error = E

    The resulting error type.
    §

    type Future = TryJoin<<Fut as IntoFuture>::IntoFuture, T, E, N>

    Which kind of future are we turning this into?
    §

    fn try_join(self) -> <[Fut; N] as TryJoin>::Future

    Waits for multiple futures to complete, either returning when all\nfutures complete successfully, or return early when any future completes\nwith an error.
    ","TryJoin","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, T> Value for [T; N]
    where\n T: Value,

    §

    type SelfType<'a> = [<T as Value>::SelfType<'a>; N]\nwhere\n [T; N]: 'a

    SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a
    §

    type AsBytes<'a> = Vec<u8>\nwhere\n [T; N]: 'a

    §

    fn fixed_width() -> Option<usize>

    Width of a fixed type, or None for variable width
    §

    fn from_bytes<'a>(data: &'a [u8]) -> [<T as Value>::SelfType<'a>; N]
    where\n [T; N]: 'a,

    Deserializes data\nImplementations may return a view over data, or an owned type
    §

    fn as_bytes<'a, 'b>(value: &'a <[T; N] as Value>::SelfType<'b>) -> Vec<u8>
    where\n 'b: 'a,\n [T; N]: 'a + 'b,

    Serialize the value to a slice
    §

    fn type_name() -> TypeName

    Globally unique identifier for this type
    ","Value","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> ValueOrd for [T; N]
    where\n T: DerOrd,

    §

    fn value_cmp(&self, other: &[T; N]) -> Result<Ordering, Error>

    Return an Ordering between value portion of TLV-encoded self and\nother when serialized as ASN.1 DER.
    ","ValueOrd","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<Z, const N: usize> Zeroize for [Z; N]
    where\n Z: Zeroize,

    Impl [Zeroize] on arrays of types that impl [Zeroize].

    \n
    §

    fn zeroize(&mut self)

    Zero out this object from memory using Rust intrinsics which ensure the\nzeroization operation is not “optimized away” by the compiler.
    ","Zeroize","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<S, const N: usize> Zip for [S; N]
    where\n S: IntoStream,

    §

    type Item = <Zip<<S as IntoStream>::IntoStream, N> as Stream>::Item

    What’s the return type of our stream?
    §

    type Stream = Zip<<S as IntoStream>::IntoStream, N>

    What stream do we return?
    §

    fn zip(self) -> <[S; N] as Zip>::Stream

    Combine multiple streams into a single stream.
    ","Zip","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T, const N: usize> ConstParamTy for [T; N]
    where\n T: ConstParamTy,

    ","ConstParamTy","iroh_docs::sync::PeerIdBytes"],["
    1.58.0 · source§

    impl<T, const N: usize> Copy for [T; N]
    where\n T: Copy,

    ","Copy","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> Eq for [T; N]
    where\n T: Eq,

    ","Eq","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T, const N: usize> StructuralPartialEq for [T; N]

    ","StructuralPartialEq","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, T> Unaligned for [T; N]
    where\n T: Unaligned,

    ","Unaligned","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<Z, const N: usize> ZeroizeOnDrop for [Z; N]
    where\n Z: ZeroizeOnDrop,

    Impl [ZeroizeOnDrop] on arrays of types that impl [ZeroizeOnDrop].

    \n
    ","ZeroizeOnDrop","iroh_docs::sync::PeerIdBytes"]] +"iroh_docs":[["
    source§

    impl<T, const N: usize> [T; N]

    1.55.0 · source

    pub fn map<F, U>(self, f: F) -> [U; N]
    where\n F: FnMut(T) -> U,

    Returns an array of the same size as self, with function f applied to each element\nin order.

    \n

    If you don’t necessarily need a new fixed-size array, consider using\nIterator::map instead.

    \n
    §Note on performance and stack usage
    \n

    Unfortunately, usages of this method are currently not always optimized\nas well as they could be. This mainly concerns large arrays, as mapping\nover small arrays seem to be optimized just fine. Also note that in\ndebug mode (i.e. without any optimizations), this method can use a lot\nof stack space (a few times the size of the array or more).

    \n

    Therefore, in performance-critical code, try to avoid using this method\non large arrays or check the emitted code. Also try to avoid chained\nmaps (e.g. arr.map(...).map(...)).

    \n

    In many cases, you can instead use Iterator::map by calling .iter()\nor .into_iter() on your array. [T; N]::map is only necessary if you\nreally need a new array of the same size as the result. Rust’s lazy\niterators tend to get optimized very well.

    \n
    §Examples
    \n
    let x = [1, 2, 3];\nlet y = x.map(|v| v + 1);\nassert_eq!(y, [2, 3, 4]);\n\nlet x = [1, 2, 3];\nlet mut temp = 0;\nlet y = x.map(|v| { temp += 1; v * temp });\nassert_eq!(y, [1, 4, 9]);\n\nlet x = [\"Ferris\", \"Bueller's\", \"Day\", \"Off\"];\nlet y = x.map(|v| v.len());\nassert_eq!(y, [6, 9, 3, 3]);
    \n
    source

    pub fn try_map<F, R>(\n self,\n f: F\n) -> <<R as Try>::Residual as Residual<[<R as Try>::Output; N]>>::TryType
    where\n F: FnMut(T) -> R,\n R: Try,\n <R as Try>::Residual: Residual<[<R as Try>::Output; N]>,

    🔬This is a nightly-only experimental API. (array_try_map)

    A fallible function f applied to each element on array self in order to\nreturn an array the same size as self or the first error encountered.

    \n

    The return type of this function depends on the return type of the closure.\nIf you return Result<T, E> from the closure, you’ll get a Result<[T; N], E>.\nIf you return Option<T> from the closure, you’ll get an Option<[T; N]>.

    \n
    §Examples
    \n
    #![feature(array_try_map)]\n\nlet a = [\"1\", \"2\", \"3\"];\nlet b = a.try_map(|v| v.parse::<u32>()).unwrap().map(|v| v + 1);\nassert_eq!(b, [2, 3, 4]);\n\nlet a = [\"1\", \"2a\", \"3\"];\nlet b = a.try_map(|v| v.parse::<u32>());\nassert!(b.is_err());\n\nuse std::num::NonZero;\n\nlet z = [1, 2, 0, 3, 4];\nassert_eq!(z.try_map(NonZero::new), None);\n\nlet a = [1, 2, 3];\nlet b = a.try_map(NonZero::new);\nlet c = b.map(|x| x.map(NonZero::get));\nassert_eq!(c, Some(a));
    \n
    1.57.0 (const: 1.57.0) · source

    pub const fn as_slice(&self) -> &[T]

    Returns a slice containing the entire array. Equivalent to &s[..].

    \n
    1.57.0 · source

    pub fn as_mut_slice(&mut self) -> &mut [T]

    Returns a mutable slice containing the entire array. Equivalent to\n&mut s[..].

    \n
    1.77.0 · source

    pub fn each_ref(&self) -> [&T; N]

    Borrows each element and returns an array of references with the same\nsize as self.

    \n
    §Example
    \n
    let floats = [3.1, 2.7, -1.0];\nlet float_refs: [&f64; 3] = floats.each_ref();\nassert_eq!(float_refs, [&3.1, &2.7, &-1.0]);
    \n

    This method is particularly useful if combined with other methods, like\nmap. This way, you can avoid moving the original\narray if its elements are not Copy.

    \n\n
    let strings = [\"Ferris\".to_string(), \"♥\".to_string(), \"Rust\".to_string()];\nlet is_ascii = strings.each_ref().map(|s| s.is_ascii());\nassert_eq!(is_ascii, [true, false, true]);\n\n// We can still access the original array: it has not been moved.\nassert_eq!(strings.len(), 3);
    \n
    1.77.0 · source

    pub fn each_mut(&mut self) -> [&mut T; N]

    Borrows each element mutably and returns an array of mutable references\nwith the same size as self.

    \n
    §Example
    \n
    \nlet mut floats = [3.1, 2.7, -1.0];\nlet float_refs: [&mut f64; 3] = floats.each_mut();\n*float_refs[0] = 0.0;\nassert_eq!(float_refs, [&mut 0.0, &mut 2.7, &mut -1.0]);\nassert_eq!(floats, [0.0, 2.7, -1.0]);
    \n
    source

    pub fn split_array_ref<const M: usize>(&self) -> (&[T; M], &[T])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one array reference into two at an index.

    \n

    The first will contain all indices from [0, M) (excluding\nthe index M itself) and the second will contain all\nindices from [M, N) (excluding the index N itself).

    \n
    §Panics
    \n

    Panics if M > N.

    \n
    §Examples
    \n
    #![feature(split_array)]\n\nlet v = [1, 2, 3, 4, 5, 6];\n\n{\n   let (left, right) = v.split_array_ref::<0>();\n   assert_eq!(left, &[]);\n   assert_eq!(right, &[1, 2, 3, 4, 5, 6]);\n}\n\n{\n    let (left, right) = v.split_array_ref::<2>();\n    assert_eq!(left, &[1, 2]);\n    assert_eq!(right, &[3, 4, 5, 6]);\n}\n\n{\n    let (left, right) = v.split_array_ref::<6>();\n    assert_eq!(left, &[1, 2, 3, 4, 5, 6]);\n    assert_eq!(right, &[]);\n}
    \n
    source

    pub fn split_array_mut<const M: usize>(&mut self) -> (&mut [T; M], &mut [T])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one mutable array reference into two at an index.

    \n

    The first will contain all indices from [0, M) (excluding\nthe index M itself) and the second will contain all\nindices from [M, N) (excluding the index N itself).

    \n
    §Panics
    \n

    Panics if M > N.

    \n
    §Examples
    \n
    #![feature(split_array)]\n\nlet mut v = [1, 0, 3, 0, 5, 6];\nlet (left, right) = v.split_array_mut::<2>();\nassert_eq!(left, &mut [1, 0][..]);\nassert_eq!(right, &mut [3, 0, 5, 6]);\nleft[1] = 2;\nright[1] = 4;\nassert_eq!(v, [1, 2, 3, 4, 5, 6]);
    \n
    source

    pub fn rsplit_array_ref<const M: usize>(&self) -> (&[T], &[T; M])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one array reference into two at an index from the end.

    \n

    The first will contain all indices from [0, N - M) (excluding\nthe index N - M itself) and the second will contain all\nindices from [N - M, N) (excluding the index N itself).

    \n
    §Panics
    \n

    Panics if M > N.

    \n
    §Examples
    \n
    #![feature(split_array)]\n\nlet v = [1, 2, 3, 4, 5, 6];\n\n{\n   let (left, right) = v.rsplit_array_ref::<0>();\n   assert_eq!(left, &[1, 2, 3, 4, 5, 6]);\n   assert_eq!(right, &[]);\n}\n\n{\n    let (left, right) = v.rsplit_array_ref::<2>();\n    assert_eq!(left, &[1, 2, 3, 4]);\n    assert_eq!(right, &[5, 6]);\n}\n\n{\n    let (left, right) = v.rsplit_array_ref::<6>();\n    assert_eq!(left, &[]);\n    assert_eq!(right, &[1, 2, 3, 4, 5, 6]);\n}
    \n
    source

    pub fn rsplit_array_mut<const M: usize>(&mut self) -> (&mut [T], &mut [T; M])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one mutable array reference into two at an index from the end.

    \n

    The first will contain all indices from [0, N - M) (excluding\nthe index N - M itself) and the second will contain all\nindices from [N - M, N) (excluding the index N itself).

    \n
    §Panics
    \n

    Panics if M > N.

    \n
    §Examples
    \n
    #![feature(split_array)]\n\nlet mut v = [1, 0, 3, 0, 5, 6];\nlet (left, right) = v.rsplit_array_mut::<4>();\nassert_eq!(left, &mut [1, 0]);\nassert_eq!(right, &mut [3, 0, 5, 6][..]);\nleft[1] = 2;\nright[1] = 4;\nassert_eq!(v, [1, 2, 3, 4, 5, 6]);
    \n
    ",0,"iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<const N: usize> [u8; N]

    source

    pub const fn as_ascii(&self) -> Option<&[AsciiChar; N]>

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this array of bytes into a array of ASCII characters,\nor returns None if any of the characters is non-ASCII.

    \n
    §Examples
    \n
    #![feature(ascii_char)]\n#![feature(const_option)]\n\nconst HEX_DIGITS: [std::ascii::Char; 16] =\n    *b\"0123456789abcdef\".as_ascii().unwrap();\n\nassert_eq!(HEX_DIGITS[1].as_str(), \"1\");\nassert_eq!(HEX_DIGITS[10].as_str(), \"a\");
    \n
    source

    pub const unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar; N]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this array of bytes into a array of ASCII characters,\nwithout checking whether they’re valid.

    \n
    §Safety
    \n

    Every byte in the array must be in 0..=127, or else this is UB.

    \n
    ",0,"iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T> Array for [T; 32]
    where\n T: Default,

    §

    type Item = T

    The type of the items in the thing.
    §

    const CAPACITY: usize = 32usize

    The number of slots in the thing.
    §

    fn as_slice(&self) -> &[T]

    Gives a shared slice over the whole thing. Read more
    §

    fn as_slice_mut(&mut self) -> &mut [T]

    Gives a unique slice over the whole thing. Read more
    §

    fn default() -> [T; 32]

    Create a default-initialized instance of ourself, similar to the\nDefault trait, but implemented for the same range of sizes as\n[Array].
    ","Array","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> Array for [T; N]

    §

    type Item = T

    The type of the array’s elements.
    §

    fn size() -> usize

    Returns the number of items the array can hold.
    ","Array","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, T> AsBytes for [T; N]
    where\n T: AsBytes,

    §

    fn as_bytes(&self) -> &[u8]

    Gets the bytes of this value. Read more
    §

    fn write_to(&self, bytes: &mut [u8]) -> Option<()>

    Writes a copy of self to bytes. Read more
    §

    fn write_to_prefix(&self, bytes: &mut [u8]) -> Option<()>

    Writes a copy of self to the prefix of bytes. Read more
    §

    fn write_to_suffix(&self, bytes: &mut [u8]) -> Option<()>

    Writes a copy of self to the suffix of bytes. Read more
    ","AsBytes","iroh_docs::sync::PeerIdBytes"],["
    §

    impl AsBytes for [u8; 32]

    §

    fn as_bytes(&self) -> &[u8]

    Casts the input type to a byte slice
    ","AsBytes","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> AsMut<[T]> for [T; N]

    source§

    fn as_mut(&mut self) -> &mut [T]

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut<[T]>","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> AsRef<[T]> for [T; N]

    source§

    fn as_ref(&self) -> &[T]

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef<[T]>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> BitView for [T; N]
    where\n T: BitStore,

    Note that overly-large arrays may cause the conversions to fail.

    \n
    §

    type Store = T

    The underlying element type.
    §

    fn view_bits<O>(&self) -> &BitSlice<T, O>
    where\n O: BitOrder,

    Views a memory region as an immutable bit-slice.
    §

    fn try_view_bits<O>(&self) -> Result<&BitSlice<T, O>, BitSpanError<T>>
    where\n O: BitOrder,

    Attempts to view a memory region as an immutable bit-slice. Read more
    §

    fn view_bits_mut<O>(&mut self) -> &mut BitSlice<T, O>
    where\n O: BitOrder,

    Views a memory region as a mutable bit-slice.
    §

    fn try_view_bits_mut<O>(\n &mut self\n) -> Result<&mut BitSlice<T, O>, BitSpanError<T>>
    where\n O: BitOrder,

    Attempts to view a memory region as a mutable bit-slice. Read more
    ","BitView","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> BitViewSized for [T; N]
    where\n T: BitStore,

    §

    const ZERO: [T; N] = _

    The zero constant.
    §

    fn as_raw_slice(&self) -> &[<[T; N] as BitView>::Store]

    Views the type as a slice of its elements.
    §

    fn as_raw_mut_slice(&mut self) -> &mut [<[T; N] as BitView>::Store]

    Views the type as a mutable slice of its elements.
    §

    fn into_bitarray<O>(self) -> BitArray<Self, O>
    where\n O: BitOrder,

    Wraps self in a BitArray.
    ","BitViewSized","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T, const N: usize> Borrow<[T]> for [T; N]

    source§

    fn borrow(&self) -> &[T]

    Immutably borrows from an owned value. Read more
    ","Borrow<[T]>","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T, const N: usize> BorrowMut<[T]> for [T; N]

    source§

    fn borrow_mut(&mut self) -> &mut [T]

    Mutably borrows from an owned value. Read more
    ","BorrowMut<[T]>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<S, const N: usize> Chain for [S; N]
    where\n S: Stream,

    §

    type Item = <S as Stream>::Item

    What’s the return type of our stream?
    §

    type Stream = Chain<S, N>

    What stream do we return?
    §

    fn chain(self) -> <[S; N] as Chain>::Stream

    Combine multiple streams into a single stream.
    ","Chain","iroh_docs::sync::PeerIdBytes"],["
    1.58.0 · source§

    impl<T, const N: usize> Clone for [T; N]
    where\n T: Clone,

    source§

    fn clone(&self) -> [T; N]

    Returns a copy of the value. Read more
    source§

    fn clone_from(&mut self, other: &[T; N])

    Performs copy-assignment from source. Read more
    ","Clone","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> Debug for [T; N]
    where\n T: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize> Decode for [u8; N]

    Decodes a byte array from byte[n] as described in RFC4251 § 5:

    \n
    \n

    A byte represents an arbitrary 8-bit value (octet). Fixed length\ndata is sometimes represented as an array of bytes, written\nbyte[n], where n is the number of bytes in the array.

    \n
    \n
    §

    type Error = Error

    Type returned in the event of a decoding error.
    §

    fn decode(reader: &mut impl Reader) -> Result<[u8; N], Error>

    Attempt to decode a value of this type using the provided [Reader].
    ","Decode","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<'a, T, const N: usize> DecodeValue<'a> for [T; N]
    where\n T: Decode<'a>,

    §

    fn decode_value<R>(reader: &mut R, header: Header) -> Result<[T; N], Error>
    where\n R: Reader<'a>,

    Attempt to decode this message using the provided [Reader].
    ","DecodeValue<'a>","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 32]
    where\n T: Default,

    source§

    fn default() -> [T; 32]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 31]
    where\n T: Default,

    source§

    fn default() -> [T; 31]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 30]
    where\n T: Default,

    source§

    fn default() -> [T; 30]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 29]
    where\n T: Default,

    source§

    fn default() -> [T; 29]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 28]
    where\n T: Default,

    source§

    fn default() -> [T; 28]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 27]
    where\n T: Default,

    source§

    fn default() -> [T; 27]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 26]
    where\n T: Default,

    source§

    fn default() -> [T; 26]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 25]
    where\n T: Default,

    source§

    fn default() -> [T; 25]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 24]
    where\n T: Default,

    source§

    fn default() -> [T; 24]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 23]
    where\n T: Default,

    source§

    fn default() -> [T; 23]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 22]
    where\n T: Default,

    source§

    fn default() -> [T; 22]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 21]
    where\n T: Default,

    source§

    fn default() -> [T; 21]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 20]
    where\n T: Default,

    source§

    fn default() -> [T; 20]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 19]
    where\n T: Default,

    source§

    fn default() -> [T; 19]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 18]
    where\n T: Default,

    source§

    fn default() -> [T; 18]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 17]
    where\n T: Default,

    source§

    fn default() -> [T; 17]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 16]
    where\n T: Default,

    source§

    fn default() -> [T; 16]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 15]
    where\n T: Default,

    source§

    fn default() -> [T; 15]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 14]
    where\n T: Default,

    source§

    fn default() -> [T; 14]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 13]
    where\n T: Default,

    source§

    fn default() -> [T; 13]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 12]
    where\n T: Default,

    source§

    fn default() -> [T; 12]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 11]
    where\n T: Default,

    source§

    fn default() -> [T; 11]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 10]
    where\n T: Default,

    source§

    fn default() -> [T; 10]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 9]
    where\n T: Default,

    source§

    fn default() -> [T; 9]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 8]
    where\n T: Default,

    source§

    fn default() -> [T; 8]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 7]
    where\n T: Default,

    source§

    fn default() -> [T; 7]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 6]
    where\n T: Default,

    source§

    fn default() -> [T; 6]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 5]
    where\n T: Default,

    source§

    fn default() -> [T; 5]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 4]
    where\n T: Default,

    source§

    fn default() -> [T; 4]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 3]
    where\n T: Default,

    source§

    fn default() -> [T; 3]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 2]
    where\n T: Default,

    source§

    fn default() -> [T; 2]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 1]
    where\n T: Default,

    source§

    fn default() -> [T; 1]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    1.4.0 · source§

    impl<T> Default for [T; 0]

    source§

    fn default() -> [T; 0]

    Returns the “default value” for a type. Read more
    ","Default","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<'de, T> Deserialize<'de> for [T; 32]
    where\n T: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<[T; 32], <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<'de, const N: usize> Deserialize<'de> for [u8; N]

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<[u8; N], <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    ","Deserialize<'de>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize> Encode for [u8; N]

    Encodes [u8; N] into byte[n] as described in RFC4251 § 5:

    \n
    \n

    A byte represents an arbitrary 8-bit value (octet). Fixed length\ndata is sometimes represented as an array of bytes, written\nbyte[n], where n is the number of bytes in the array.

    \n
    \n
    §

    fn encoded_len(&self) -> Result<usize, Error>

    Get the length of this type encoded in bytes, prior to Base64 encoding.
    §

    fn encode(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode this value using the provided [Writer].
    §

    fn encoded_len_prefixed(&self) -> Result<usize, Error>

    Return the length of this type after encoding when prepended with a\nuint32 length prefix.
    §

    fn encode_prefixed(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode this value, first prepending a uint32 length prefix\nset to [Encode::encoded_len].
    ","Encode","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> EncodeLabelSet for [T; N]
    where\n T: EncodeLabel,

    §

    fn encode(&self, encoder: LabelSetEncoder<'_>) -> Result<(), Error>

    Encode oneself into the given encoder.
    ","EncodeLabelSet","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> EncodeValue for [T; N]
    where\n T: Encode,

    §

    fn value_len(&self) -> Result<Length, Error>

    Compute the length of this value (sans [Tag]+[Length] header) when\nencoded as ASN.1 DER.
    §

    fn encode_value(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode value (sans [Tag]+[Length] header) as ASN.1 DER using the\nprovided [Writer].
    §

    fn header(&self) -> Result<Header, Error>
    where\n Self: Tagged,

    Get the [Header] used to encode this value.
    ","EncodeValue","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 32]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 31]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 30]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 29]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 28]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 27]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 26]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 25]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 24]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 23]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 22]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 21]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 20]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 19]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 18]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 17]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 16]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 15]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 14]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 13]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 12]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 11]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 10]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 9]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 8]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 7]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 6]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 5]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 4]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 3]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 2]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 1]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 0]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 2048]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 1024]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 512]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 256]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 128]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Fill for [T; 64]
    where\n [T]: Fill,

    source§

    fn try_fill<R>(&mut self, rng: &mut R) -> Result<(), Error>
    where\n R: Rng + ?Sized,

    Fill self with random data
    ","Fill","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<'a> FindToken<&'a u8> for [u8; 32]

    §

    fn find_token(&self, token: &u8) -> bool

    Returns true if self contains the token
    ","FindToken<&'a u8>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl FindToken<u8> for [u8; 32]

    §

    fn find_token(&self, token: u8) -> bool

    Returns true if self contains the token
    ","FindToken","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> FixedTag for [T; N]

    §

    const TAG: Tag = Tag::Sequence

    ASN.1 tag
    ","FixedTag","iroh_docs::sync::PeerIdBytes"],["
    §

    impl From<&Signature> for [u8; 64]

    §

    fn from(sig: &Signature) -> [u8; 64]

    Converts to this type from the input type.
    ","From<&Signature>","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl From<AuthorId> for [u8; 32]

    source§

    fn from(value: AuthorId) -> Self

    Converts to this type from the input type.
    ","From","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T> From<GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>> for [T; 32]

    §

    fn from(\n sel: GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>\n) -> [T; 32]

    Converts to this type from the input type.
    ","From, B0>, B0>, B0>, B0>, B0>>>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl From<Hash> for [u8; 32]

    §

    fn from(value: Hash) -> [u8; 32]

    Converts to this type from the input type.
    ","From","iroh_docs::sync::PeerIdBytes"],["
    §

    impl From<Hash> for [u8; 32]

    §

    fn from(hash: Hash) -> [u8; 32]

    Converts to this type from the input type.
    ","From","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, const UPPERCASE: bool> From<HexOrBin<N, UPPERCASE>> for [u8; N]

    §

    fn from(hex_or_bin: HexOrBin<N, UPPERCASE>) -> [u8; N]

    Converts to this type from the input type.
    ","From>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl From<MacAddr> for [u8; 6]

    §

    fn from(addr: MacAddr) -> [u8; 6]

    Converts to this type from the input type.
    ","From","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl From<NamespaceId> for [u8; 32]

    source§

    fn from(value: NamespaceId) -> Self

    Converts to this type from the input type.
    ","From","iroh_docs::sync::PeerIdBytes"],["
    §

    impl From<Signature> for [u8; 64]

    §

    fn from(sig: Signature) -> [u8; 64]

    Converts to this type from the input type.
    ","From","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T, const N: usize> From<Simd<T, N>> for [T; N]

    source§

    fn from(vector: Simd<T, N>) -> [T; N]

    Converts to this type from the input type.
    ","From>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, T> FromBytes for [T; N]
    where\n T: FromBytes,

    §

    fn ref_from(bytes: &[u8]) -> Option<&Self>
    where\n Self: Sized,

    Interprets the given bytes as a &Self without copying. Read more
    §

    fn ref_from_prefix(bytes: &[u8]) -> Option<&Self>
    where\n Self: Sized,

    Interprets the prefix of the given bytes as a &Self without copying. Read more
    §

    fn ref_from_suffix(bytes: &[u8]) -> Option<&Self>
    where\n Self: Sized,

    Interprets the suffix of the given bytes as a &Self without copying. Read more
    §

    fn slice_from(bytes: &[u8]) -> Option<&[Self]>
    where\n Self: Sized,

    Interprets the given bytes as a &[Self] without copying. Read more
    §

    fn slice_from_prefix(bytes: &[u8], count: usize) -> Option<(&[Self], &[u8])>
    where\n Self: Sized,

    Interprets the prefix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
    §

    fn slice_from_suffix(bytes: &[u8], count: usize) -> Option<(&[u8], &[Self])>
    where\n Self: Sized,

    Interprets the suffix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
    §

    fn read_from(bytes: &[u8]) -> Option<Self>
    where\n Self: Sized,

    Reads a copy of Self from bytes. Read more
    §

    fn read_from_prefix(bytes: &[u8]) -> Option<Self>
    where\n Self: Sized,

    Reads a copy of Self from the prefix of bytes. Read more
    §

    fn read_from_suffix(bytes: &[u8]) -> Option<Self>
    where\n Self: Sized,

    Reads a copy of Self from the suffix of bytes. Read more
    ","FromBytes","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl FromHex for [u8; 32]

    §

    type Error = FromHexError

    source§

    fn from_hex<T>(hex: T) -> Result<[u8; 32], <[u8; 32] as FromHex>::Error>
    where\n T: AsRef<[u8]>,

    Creates an instance of type Self from the given hex string, or fails\nwith a custom error type. Read more
    ","FromHex","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, T> FromZeroes for [T; N]
    where\n T: FromZeroes,

    §

    fn zero(&mut self)

    Overwrites self with zeroes. Read more
    §

    fn new_zeroed() -> Self
    where\n Self: Sized,

    Creates an instance of Self from zeroed bytes. Read more
    ","FromZeroes","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T> Hash for [T; 32]
    where\n T: Hash,

    §

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher.
    §

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher.
    ","Hash","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> Hash for [T; N]
    where\n T: Hash,

    The hash of an array is the same as that of the corresponding slice,\nas required by the Borrow implementation.

    \n\n
    use std::hash::BuildHasher;\n\nlet b = std::hash::RandomState::new();\nlet a: [u8; 3] = [0xa8, 0x3c, 0x09];\nlet s: &[u8] = &[0xa8, 0x3c, 0x09];\nassert_eq!(b.hash_one(a), b.hash_one(s));
    \n
    source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","iroh_docs::sync::PeerIdBytes"],["
    1.50.0 · source§

    impl<T, I, const N: usize> Index<I> for [T; N]
    where\n [T]: Index<I>,

    §

    type Output = <[T] as Index<I>>::Output

    The returned type after indexing.
    source§

    fn index(&self, index: I) -> &<[T; N] as Index<I>>::Output

    Performs the indexing (container[index]) operation. Read more
    ","Index","iroh_docs::sync::PeerIdBytes"],["
    1.50.0 · source§

    impl<T, I, const N: usize> IndexMut<I> for [T; N]
    where\n [T]: IndexMut<I>,

    source§

    fn index_mut(&mut self, index: I) -> &mut <[T; N] as Index<I>>::Output

    Performs the mutable indexing (container[index]) operation. Read more
    ","IndexMut","iroh_docs::sync::PeerIdBytes"],["
    §

    impl InputLength for [u8; 32]

    §

    fn input_len(&self) -> usize

    Calculates the input length, as indicated by its name,\nand the name of the trait itself
    ","InputLength","iroh_docs::sync::PeerIdBytes"],["
    1.53.0 · source§

    impl<T, const N: usize> IntoIterator for [T; N]

    source§

    fn into_iter(self) -> <[T; N] as IntoIterator>::IntoIter

    Creates a consuming iterator, that is, one that moves each value out of\nthe array (from start to end). The array cannot be used after calling\nthis unless T implements Copy, so the whole array is copied.

    \n

    Arrays have special behavior when calling .into_iter() prior to the\n2021 edition – see the array Editions section for more information.

    \n
    §

    type Item = T

    The type of the elements being iterated over.
    §

    type IntoIter = IntoIter<T, N>

    Which kind of iterator are we turning this into?
    ","IntoIterator","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize> IntoResponse for [u8; N]

    §

    fn into_response(self) -> Response<Body>

    Create a response.
    ","IntoResponse","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<Fut, const N: usize> Join for [Fut; N]
    where\n Fut: IntoFuture,

    §

    type Output = [<Fut as IntoFuture>::Output; N]

    The resulting output type.
    §

    type Future = Join<<Fut as IntoFuture>::IntoFuture, N>

    The Future implementation returned by this method.
    §

    fn join(self) -> <[Fut; N] as Join>::Future

    Waits for multiple futures to complete. Read more
    ","Join","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, T> Key for [T; N]
    where\n T: Key,

    §

    fn compare(data1: &[u8], data2: &[u8]) -> Ordering

    Compare data1 with data2
    ","Key","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> MaxSize for [T; N]
    where\n T: MaxSize,

    §

    const POSTCARD_MAX_SIZE: usize = _

    The maximum possible size that the serialization of this\ntype can have, in bytes.
    ","MaxSize","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<S, const N: usize> Merge for [S; N]
    where\n S: IntoStream,

    §

    type Item = <Merge<<S as IntoStream>::IntoStream, N> as Stream>::Item

    The resulting output type.
    §

    type Stream = Merge<<S as IntoStream>::IntoStream, N>

    The stream type.
    §

    fn merge(self) -> <[S; N] as Merge>::Stream

    Combine multiple streams into a single stream.
    ","Merge","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> Ord for [T; N]
    where\n T: Ord,

    Implements comparison of arrays lexicographically.

    \n
    source§

    fn cmp(&self, other: &[T; N]) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, U, const N: usize> PartialEq<&[U]> for [T; N]
    where\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&[U]>","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, U, const N: usize> PartialEq<&mut [U]> for [T; N]
    where\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&mut [U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&mut [U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&mut [U]>","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, U, const N: usize> PartialEq<[U]> for [T; N]
    where\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U]>","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, U, const N: usize> PartialEq<[U; N]> for [T; N]
    where\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U; N]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U; N]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U; N]>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl PartialEq<Cookie> for [u8; 4]

    §

    fn eq(&self, other: &Cookie) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<A, B, const N: usize, const M: usize> PartialEq<Vec<A, N>> for [B; M]
    where\n A: PartialEq<B>,

    §

    fn eq(&self, other: &Vec<A, N>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq>","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> PartialOrd for [T; N]
    where\n T: PartialOrd,

    Implements comparison of arrays lexicographically.

    \n
    source§

    fn partial_cmp(&self, other: &[T; N]) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    source§

    fn lt(&self, other: &[T; N]) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    source§

    fn le(&self, other: &[T; N]) -> bool

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    source§

    fn ge(&self, other: &[T; N]) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    source§

    fn gt(&self, other: &[T; N]) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    ","PartialOrd","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<Fut, const N: usize> Race for [Fut; N]
    where\n Fut: IntoFuture,

    §

    type Output = <Fut as IntoFuture>::Output

    The resulting output type.
    §

    type Future = Race<<Fut as IntoFuture>::IntoFuture, N>

    Which kind of future are we turning this into?
    §

    fn race(self) -> <[Fut; N] as Race>::Future

    Wait for the first future to complete. Read more
    ","Race","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<Fut, T, E, const N: usize> RaceOk for [Fut; N]
    where\n Fut: IntoFuture<Output = Result<T, E>>,

    §

    type Output = T

    The resulting output type.
    §

    type Error = AggregateError<E, N>

    The resulting error type.
    §

    type Future = RaceOk<<Fut as IntoFuture>::IntoFuture, T, E, N>

    Which kind of future are we turning this into?
    §

    fn race_ok(self) -> <[Fut; N] as RaceOk>::Future

    Waits for the first successful future to complete.
    ","RaceOk","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> Schema for [T; N]
    where\n T: Schema,

    §

    const SCHEMA: &'static NamedType = _

    A recursive data structure that describes the schema of the given\ntype.
    ","Schema","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T> Serialize for [T; 32]
    where\n T: Serialize,

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<const N: usize> Serialize for [u8; N]

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    ","Serialize","iroh_docs::sync::PeerIdBytes"],["
    1.51.0 · source§

    impl<T, const N: usize> SlicePattern for [T; N]

    §

    type Item = T

    🔬This is a nightly-only experimental API. (slice_pattern)
    The element type of the slice being matched on.
    source§

    fn as_slice(&self) -> &[<[T; N] as SlicePattern>::Item]

    🔬This is a nightly-only experimental API. (slice_pattern)
    Currently, the consumers of SlicePattern need a slice.
    ","SlicePattern","iroh_docs::sync::PeerIdBytes"],["
    1.34.0 · source§

    impl<T, const N: usize> TryFrom<&[T]> for [T; N]
    where\n T: Copy,

    Tries to create an array [T; N] by copying from a slice &[T]. Succeeds if\nslice.len() == N.

    \n\n
    let bytes: [u8; 3] = [1, 0, 2];\n\nlet bytes_head: [u8; 2] = <[u8; 2]>::try_from(&bytes[0..2]).unwrap();\nassert_eq!(1, u16::from_le_bytes(bytes_head));\n\nlet bytes_tail: [u8; 2] = bytes[1..3].try_into().unwrap();\nassert_eq!(512, u16::from_le_bytes(bytes_tail));
    \n
    §

    type Error = TryFromSliceError

    The type returned in the event of a conversion error.
    source§

    fn try_from(slice: &[T]) -> Result<[T; N], TryFromSliceError>

    Performs the conversion.
    ","TryFrom<&[T]>","iroh_docs::sync::PeerIdBytes"],["
    1.59.0 · source§

    impl<T, const N: usize> TryFrom<&mut [T]> for [T; N]
    where\n T: Copy,

    Tries to create an array [T; N] by copying from a mutable slice &mut [T].\nSucceeds if slice.len() == N.

    \n\n
    let mut bytes: [u8; 3] = [1, 0, 2];\n\nlet bytes_head: [u8; 2] = <[u8; 2]>::try_from(&mut bytes[0..2]).unwrap();\nassert_eq!(1, u16::from_le_bytes(bytes_head));\n\nlet bytes_tail: [u8; 2] = (&mut bytes[1..3]).try_into().unwrap();\nassert_eq!(512, u16::from_le_bytes(bytes_tail));
    \n
    §

    type Error = TryFromSliceError

    The type returned in the event of a conversion error.
    source§

    fn try_from(slice: &mut [T]) -> Result<[T; N], TryFromSliceError>

    Performs the conversion.
    ","TryFrom<&mut [T]>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, A, const N: usize> TryFrom<Vec<T, A>> for [T; N]
    where\n A: Allocator,

    §

    fn try_from(vec: Vec<T, A>) -> Result<[T; N], Vec<T, A>>

    Gets the entire contents of the Vec<T> as an array,\nif its size exactly matches that of the requested array.

    \n
    §Examples
    \n
    assert_eq!(vec![1, 2, 3].try_into(), Ok([1, 2, 3]));\nassert_eq!(<Vec<i32>>::new().try_into(), Ok([]));
    \n

    If the length doesn’t match, the input comes back in Err:

    \n\n
    let r: Result<[i32; 4], _> = (0..10).collect::<Vec<_>>().try_into();\nassert_eq!(r, Err(vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9]));
    \n

    If you’re fine with just getting a prefix of the Vec<T>,\nyou can call .truncate(N) first.

    \n\n
    let mut v = String::from(\"hello world\").into_bytes();\nv.sort();\nv.truncate(2);\nlet [a, b]: [_; 2] = v.try_into().unwrap();\nassert_eq!(a, b' ');\nassert_eq!(b, b'd');
    \n
    §

    type Error = Vec<T, A>

    The type returned in the event of a conversion error.
    ","TryFrom>","iroh_docs::sync::PeerIdBytes"],["
    1.48.0 · source§

    impl<T, A, const N: usize> TryFrom<Vec<T, A>> for [T; N]
    where\n A: Allocator,

    source§

    fn try_from(vec: Vec<T, A>) -> Result<[T; N], Vec<T, A>>

    Gets the entire contents of the Vec<T> as an array,\nif its size exactly matches that of the requested array.

    \n
    §Examples
    \n
    assert_eq!(vec![1, 2, 3].try_into(), Ok([1, 2, 3]));\nassert_eq!(<Vec<i32>>::new().try_into(), Ok([]));
    \n

    If the length doesn’t match, the input comes back in Err:

    \n\n
    let r: Result<[i32; 4], _> = (0..10).collect::<Vec<_>>().try_into();\nassert_eq!(r, Err(vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9]));
    \n

    If you’re fine with just getting a prefix of the Vec<T>,\nyou can call .truncate(N) first.

    \n\n
    let mut v = String::from(\"hello world\").into_bytes();\nv.sort();\nv.truncate(2);\nlet [a, b]: [_; 2] = v.try_into().unwrap();\nassert_eq!(a, b' ');\nassert_eq!(b, b'd');
    \n
    §

    type Error = Vec<T, A>

    The type returned in the event of a conversion error.
    ","TryFrom>","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<Fut, T, E, const N: usize> TryJoin for [Fut; N]
    where\n Fut: IntoFuture<Output = Result<T, E>>,

    §

    type Output = [T; N]

    The resulting output type.
    §

    type Error = E

    The resulting error type.
    §

    type Future = TryJoin<<Fut as IntoFuture>::IntoFuture, T, E, N>

    Which kind of future are we turning this into?
    §

    fn try_join(self) -> <[Fut; N] as TryJoin>::Future

    Waits for multiple futures to complete, either returning when all\nfutures complete successfully, or return early when any future completes\nwith an error.
    ","TryJoin","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, T> Value for [T; N]
    where\n T: Value,

    §

    type SelfType<'a> = [<T as Value>::SelfType<'a>; N]\nwhere\n [T; N]: 'a

    SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a
    §

    type AsBytes<'a> = Vec<u8>\nwhere\n [T; N]: 'a

    §

    fn fixed_width() -> Option<usize>

    Width of a fixed type, or None for variable width
    §

    fn from_bytes<'a>(data: &'a [u8]) -> [<T as Value>::SelfType<'a>; N]
    where\n [T; N]: 'a,

    Deserializes data\nImplementations may return a view over data, or an owned type
    §

    fn as_bytes<'a, 'b>(value: &'a <[T; N] as Value>::SelfType<'b>) -> Vec<u8>
    where\n 'b: 'a,\n [T; N]: 'a + 'b,

    Serialize the value to a slice
    §

    fn type_name() -> TypeName

    Globally unique identifier for this type
    ","Value","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<T, const N: usize> ValueOrd for [T; N]
    where\n T: DerOrd,

    §

    fn value_cmp(&self, other: &[T; N]) -> Result<Ordering, Error>

    Return an Ordering between value portion of TLV-encoded self and\nother when serialized as ASN.1 DER.
    ","ValueOrd","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<Z, const N: usize> Zeroize for [Z; N]
    where\n Z: Zeroize,

    Impl [Zeroize] on arrays of types that impl [Zeroize].

    \n
    §

    fn zeroize(&mut self)

    Zero out this object from memory using Rust intrinsics which ensure the\nzeroization operation is not “optimized away” by the compiler.
    ","Zeroize","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<S, const N: usize> Zip for [S; N]
    where\n S: IntoStream,

    §

    type Item = <Zip<<S as IntoStream>::IntoStream, N> as Stream>::Item

    What’s the return type of our stream?
    §

    type Stream = Zip<<S as IntoStream>::IntoStream, N>

    What stream do we return?
    §

    fn zip(self) -> <[S; N] as Zip>::Stream

    Combine multiple streams into a single stream.
    ","Zip","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T, const N: usize> ConstParamTy for [T; N]
    where\n T: ConstParamTy,

    ","ConstParamTy","iroh_docs::sync::PeerIdBytes"],["
    1.58.0 · source§

    impl<T, const N: usize> Copy for [T; N]
    where\n T: Copy,

    ","Copy","iroh_docs::sync::PeerIdBytes"],["
    1.0.0 · source§

    impl<T, const N: usize> Eq for [T; N]
    where\n T: Eq,

    ","Eq","iroh_docs::sync::PeerIdBytes"],["
    source§

    impl<T, const N: usize> StructuralPartialEq for [T; N]

    ","StructuralPartialEq","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<const N: usize, T> Unaligned for [T; N]
    where\n T: Unaligned,

    ","Unaligned","iroh_docs::sync::PeerIdBytes"],["
    §

    impl<Z, const N: usize> ZeroizeOnDrop for [Z; N]
    where\n Z: ZeroizeOnDrop,

    Impl [ZeroizeOnDrop] on arrays of types that impl [ZeroizeOnDrop].

    \n
    ","ZeroizeOnDrop","iroh_docs::sync::PeerIdBytes"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file