# Functions
CalculateChecksums calculates a number of hashes for the given reader in one go.
Compose will create a new message and places it inside an envelope.
GenerateAttachments creates message attachments that we can add to a catalog.
GenerateBlocks generates blocks that can be added to a catalog.
GetFiles returns all blocks and attachments for the given message ID.
GetMessageHeader Returns a marshalled message header.
GetPath will return the actual path based on the section, messageID and file inside the message.
GetRetryInfo will return information found in the message .retry.json file.
GetRetryInfoFromQueue retrieves a list of retry infos as found in the retry queue.
IncomingPathExists returns true when the upload path for the given message/file exists.
MoveMessage moves a message from a section to another section.
NewAddressing sets up a new addressing struct that can be used for composing and sending a message.
NewCatalog initialises a new catalog.
NewEnvelope creates a new (open) envelope which is used for holding a complete message.
NewRetryInfo returns a new retry info structure.
ProcessQueuePathExists returns true when the processing path for the given message/file exists.
RemoveMessage removes a complete message (header, catalog, blocks etc).
SignClientHeader will add a client signature to a message header.
SignServerHeader will add a server signature to a message header.
StoreAttachment stores a message attachment to disk.
StoreBlock stores a message block to disk.
StoreCatalog stores a catalog to disk.
StoreHeader stores a message header to disk.
StoreLocalMessage will store a message locally.
StoreRetryInfo saves the retry information back to disk.
VerifyClientHeader will verify a client signature from a message header.
VerifyServerHeader will verify a server signature from a message header.
ZlibCompress compresses a stream through zlib compression.
ZlibDecompress will return a reader that automatically decompresses the stream.
# Constants
SectionIncoming uploading message.
SectionProcessing processes a message.
SectionRetry messages that have to be retried at a later stadium.
SignedByTypeAuthorized signed by an authorized private key (info stored in authorizedPublicKey).
SignedByTypeOrigin signed by origin address / private key.
SignedByTypeServer signed by the server (postmaster).
# Structs
Addressing is the configuration for an envelope (@TODO: bad naming).
Attachment represents an attachment and reader.
AttachmentType represents a message attachment as used inside a catalog.
AuthorizedByType holds info about the authorized sender in case the message is send and signed by an authorized sender instead of the origin sender.
Block represents a block and reader.
BlockType represents a message block as used inside a catalog.
Catalog is the structure that represents a message catalog.
DecryptedMessage is a message that is fully decrypted and can be read.
EncryptedMessage is an encrypted message.
Envelope is a simple structure that will keep a header and catalog together.
FileType is a simple message-id => path combination.
Flags represents the .flags.json file which holds all current flags for the given mailbox/message.
Header represents a message header.
List is a message list.
RetryInfo is a structure that holds information about when a message has been retried or when it needs to be retried.
# Type aliases
ChecksumList is a list of key/value pairs of checksums.
Section of the path we want to.
SignedByType is a type that tells us how a message is signed.