return n;
}
+/* return maximum length that an input of length i could encode to
+ * (this is a maximum, not a precise figure, because the actual
+ * size depends on the precise data */
+
+size_t basE91_encode_maxlen(size_t i /* must be < SIZE_T_MAX/8 */)
+{
+ size_t bits = i*8;
+ size_t pairs = bits / 13;
+ size_t leftover = bits % 13;
+ return 2*pairs + (leftover==0 ? 0 : leftover<=6 ? 1 : 2);
+}
+
size_t basE91_decode(struct basE91 *b, const void *i, size_t len, void *o)
{
const unsigned char *ib = i;
return n;
}
+
+/* return maximum length that an input of length i could decode to
+ * (this is a maximum, not a precise figure, because the actual
+ * size depends on the precise data */
+
+size_t basE91_decode_maxlen(size_t i /* must be < SIZE_T_MAX/7 */)
+{
+ size_t pairs = i / 2;
+ size_t bits = pairs * 14;
+ size_t bytes = bits / 8;
+ size_t leftover = i % 2;
+ return bytes + !!leftover;
+}
size_t basE91_encode_end(struct basE91 *, void *);
+size_t basE91_encode_maxlen(size_t /* must be < SIZE_T_MAX/8 */);
+
size_t basE91_decode(struct basE91 *, const void *, size_t, void *);
size_t basE91_decode_end(struct basE91 *, void *);
+size_t basE91_decode_maxlen(size_t /* must be < SIZE_T_MAX/7 */);
+
#endif /* base91.h */