- in Just Info { pieceLength = pieceLength'
- , pieces = pieces'
- , private = private'
- , name = unpack name'
- , lengthInBytes = length'
- , md5sum = md5sum'}
+ partialInfo = Info { pieceLength = pieceLength'
+ , pieces = pieces'
+ , private = private'
+ , name = unpack name'
+ }
+ in
+ case filesIfMulti of
+ Nothing -> let (Bint length') = m ! "length"
+ filemeta' = FileMeta { lengthInBytes = length'
+ , md5sum = Nothing
+ , path = unpack name' }
+ in Just (partialInfo { filemeta = [filemeta'] })
+ Just (Blist files) -> mapM toFileMeta files >>=
+ \filemeta' ->
+ Just partialInfo { filemeta = filemeta' }