Differences From Artifact [90fa9f96a9]:
- File
src/natools-smaz_generic.ads
— part of check-in
[ec19d3153c]
at
2016-12-14 20:01:08
on branch trunk
— smaz_generic: brind the predicate back as a separate function
Since Smaz dictionaries are meant to be global hard-coded constant objects, it makes sense to check the precondition only once, e.g. in a test suite, and not for each and every subprogram call. (user: nat, size: 6570) [annotate] [blame] [check-ins using]
To Artifact [06393e77e6]:
- File src/natools-smaz_generic.ads — part of check-in [5793080d7d] at 2017-02-06 22:09:43 on branch trunk — smaz_generic: add a description and an important warning (user: nat, size: 7519) [annotate] [blame] [check-ins using]
1 | ------------------------------------------------------------------------------ | | > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | ------------------------------------------------------------------------------ -- Copyright (c) 2016-2017, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- Natools.Smaz_Generic provides a generic implementation of the Smaz -- -- algorithm, leaving encoding and decoding to the formal subprograms. -- -- This factors all the logic common to standard byte-based Smaz, the -- -- the base-64 variant, and the base-4096 variant. -- -- -- -- WARNING: an important assumption that is not checked/asserted, is that -- -- it is never preferable to use verbatim encoding rather than a code, -- -- except when merging to verbatim sections and the code between them. This -- -- means in particular that a dictionary must never contain an entry -- -- shorter than its encoded counterpart. -- ------------------------------------------------------------------------------ with Ada.Streams; generic type Dictionary_Code is (<>); with procedure Read_Code |
︙ | ︙ |