             [ drop f ]
         } cond
     ] with-mapped-uchar-file ;
+
+: file-id3-tags ( path -- id3v2-info/f )
+    dup file-info size>> 0 <= [ drop f ] [ (file-id3-tags) ] if ;


: id3-frame ( id3 key -- value/f ) [ ] frame-named ; inline

: file-id3-tags ( path -- id3v2-info/f )
    [
        {
            { [ dup id3v2? ] [ read-v2-tag-data ] }

combinators math.ranges unicode.categories byte-arrays
io.encodings.string io.encodings.utf16 assocs math.parser
combinators.short-circuit fry namespaces combinators.smart
splitting io.encodings.ascii arrays io.files.info ;
IN: id3

<PRIVATE
