ws/B      !"#$%&'()*+,-./0123456789:;<=>?@A(c) 2017 Red Hat, Inc.LGPLhttps://github.com/weldralphaportableNone"#H6Configuration information needed by the content store.JIs the data in the content store compressed? If this option is missing in a config file, we assume that the data is not compressed. This is to keep backwards compatibility with previous versions of the content store that did not support compression. New content stores are created supporting compressed contents by default.What DigestAlgorithm is in use by this content store? While we do support several different algorithms, only one can ever be in use by a single content store. Note that the  ContentStore record also stores this piece of information. The difference is that here, we are only storing the text representation as given in a config file.Construct a default ' record useful for when creating a new  ContentStore , as with mkContentStoreL. Among other things, this is where the default hash algorithm is defined.*Read a config file on disk, returning the ~ record on success and an error message on error. This function is typically not useful outside of content store internals.Write a \ object to disk. This function is typically not useful outside of content store internals.(c) 2017 Red Hat, Inc.LGPLhttps://github.com/weldralphaportableNoneCKV% 8ObjectDigest is the (binary) representation of a digest. ,Holds the context for a given instance of a  . 9A DigestAlgorithm represents one specific hash algorithm. Get the name of this  . The size of the   returned by this  .Initialize a new   for this  . Update the   with one 'ByteString'/'Bytes' /etc item. Update the   with many 'ByteString'/'Bytes' /etc. items. Finish the digest, returning an  .Hash a strict  ByteString into an  . Hash a lazy  into an  .Check and convert a  ByteString into an  . Convert an  f to its hex representation. TODO: probably more efficient if we can just coerce the converted Bytes.. Given the Text& name of a digest algorithm, return a  @ (or Nothing if we don't recognize the DigestAlgorithm's name).      B C D(c) 2017 Red Hat, Inc.LGPLhttps://github.com/weldralphaportableNone"#<>?FKQTV]rWorking with a $4 requires a lot of behind-the-scenes management of E, F, and G. Along with %p, this provides a type and function for doing much of that management for you. These two can be used like so: result <- runCsMonad $ do cs <- mkContentStore "/tmp/cs.repo" storeDirectory cs "/tmp/test-data" case result of Left e -> print e Right d -> do putStrLn "Stored objects: " mapM_ print d?Most functions in this module do not explicitly require use of -, but any that have a return type including m can be run inside it.RA type to represent various errors that can occur during content store operations.LMiscellaneous, uncategorized errors. The string is the exact error message.An object with this digest already exists in the content store. This error is not typically raised during write operations, because attempting to write the same thing twice is not really an error.A parse error occurred reading the content store's internal config file. This generally represents either a programming error or that someone has been modifying the internals. The string contains the error message. The content store directory is invalid. This usually occurs because some file or directory is missing. The string is the name of what is missing.!!The content store does not exist."lThe requested object does not exist in the content store. The string contains the object digest requested.#The hashing algorithm is not supported by the content store. Not all possible algorithms are supported. The string contains the name of the algorithm requested.$The ContentStore is an opaque type that contains various pieces of information used to describe an on-disk content store. Values of this type are constructed via ( and ), depending on which operation you need to perform. Users should not need to concern themselves with the internals of this type.%See the documentation for .&Check that a content store exists and contains everything it's supposed to. This does not check the validity of all the contents, however. A S will be thrown if there are any problems. Otherwise, this function returns True.'/Return the digest type used by a content store.( Create a new $9 on disk, rooted at the path given, and return it as if )m had also been called. If a content store already exists at the given root and is valid, return that as if ) had been called. Various "s could be thrown by this process.)Return an already existing $,, after checking that it is valid. Various "s could be thrown by this process.*<Lookup and return some previously stored object as a strict  ByteString*. Note that you'll probably need to use  to produce an  F from whatever text or binary representation you've got from the usermddbetc.+Given an opened $ and a H of   s, load each one into a strict  ByteString and put it into the conduit. This is useful for stream many objects out of the content store at a time, like with exporting an RPM or other package format.,8Store some object into the content store and return its  . If an object with the same digest already exists in the content store, this is a duplicate. Simply return the digest of the already stored object and do nothing else. A  will NOT be thrown.-Like ,, but read strict  ByteString s from a H and put their  |s into the conduit. This is useful for storing many objects at a time, like with importing an RPM or other package format.. Read in a H of strict  ByteString9s, store the stream into an object in an already opened $`, and return the final digest. This is useful for storing a stream of data as a single object./Like *, but uses lazy  s instead.0Like +, but uses lazy  s instead.1Like ,, but uses lazy  s instead.2Like -, but uses lazy  s instead.3Like ., but uses lazy  s instead.4SStore all objects in a directory tree in the content store, returning the name and   of each. Note that directories will not be stored. The content store only contains things that have content. If you need to store directory information, that should be handled externally to this module.5Find some object in the content store and write it to a destination. If the destination already exists, it will be overwritten. If the object does not already exist, a " will be thrown.6CStore an already existing file in the content store, returning its  +. The original file will be left on disk.* An opened $.The   for some stored object., An opened $.$An object to be stored, as a strict  ByteString.4 An opened $.)A directory tree containing many objects.5 An opened $.The   of some stored object.The destination6 An opened $.The file to be stored. !"#$%&'()*+,-./0123456$ !"#%'&*+5/0(),-.46123IJ !"#$KLMNO      !!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ R(STUV*content-store-0.2.1-8KLjqfYcib28JKQNlPx6dAData.ContentStore.ConfigData.ContentStore.DigestData.ContentStoreData.ByteString.Lazy ByteStringConfigconfCompressedconfHash defaultConfig readConfig writeConfig$fToJSONConfig$fFromJSONConfig ObjectDigest DigestContextDigestAlgorithm digestName digestSize digestInit digestUpdate digestUpdatesdigestFinalizedigestByteStringdigestLazyByteStringfromByteStringtoHexgetDigestAlgorithm$fShowObjectDigest$fEqObjectDigest$fOrdObjectDigest$fByteArrayAccessObjectDigestCsMonadCsErrorCsErrorCollision CsErrorConfigCsErrorInvalidCsErrorMissingCsErrorNoSuchObjectCsErrorUnsupportedHash ContentStore runCsMonadcontentStoreValidcontentStoreDigestmkContentStoreopenContentStorefetchByteStringfetchByteStringCstoreByteStringstoreByteStringCstoreByteStringSinkfetchLazyByteStringfetchLazyByteStringCstoreLazyByteStringstoreLazyByteStringCstoreLazyByteStringSinkstoreDirectory fetchFile storeFile$fMonadBaseControlIOCsMonad $fEqCsError $fShowCsError$fApplicativeCsMonad$fFunctorCsMonad$fMonadCsMonad$fMonadBaseCsMonad$fMonadErrorCsMonad$fMonadIOCsMonad$fMonadResourceCsMonad$fMonadThrowCsMonad'resourcet-1.1.11-8KxgA9TMhYA8M11jHforfw%Control.Monad.Trans.Resource.Internal ResourceTtransformers-0.5.2.0Control.Monad.Trans.ExceptExceptTghc-prim GHC.TypesIO'conduit-1.2.13.1-2ppj5zGFjHt9zzDKBNs9jyData.Conduit.Internal.ConduitConduit getCsMonadcsConfigcsRootcsHash