14d8dfc6e009f8d91678225942d78edd068ecaa5
[crev-proofs] / QE5OVlHZ4QyOcMqdjXhS1MgsoZHvUqxOHNZwyfpsDIU / reviews / 2022-01-package-jqCnIw.proof.crev
1 ----- BEGIN CREV PROOF -----
2 kind: package review
3 version: -1
4 date: "2022-01-08T02:03:54.105679370+11:00"
5 from:
6 id-type: crev
7 id: QE5OVlHZ4QyOcMqdjXhS1MgsoZHvUqxOHNZwyfpsDIU
8 url: "https://git.chrismorgan.info/crev-proofs"
9 package:
10 source: "https://crates.io"
11 name: verhoeff
12 version: 1.0.0
13 revision: 67417456c81ccc241cb0e7257d6ca3a955e1d29e
14 digest: mM9owAVRQvXct8MS3WF2Fw8WZPgSv6lpM1WdjxWwwyQ
15 review:
16 thoroughness: high
17 understanding: high
18 rating: strong
19 comment: |-
20 I wrote this carefully. It’s well-documented, well-tested, and robust against
21 panicking except as documented (Verhoeff::calculate_verhoeff_check_digit or
22 verhoeff::calculate, on invalid input). Actually, I realised while writing
23 this review that VerhoeffMut::push_verhoeff_check_digit is also panicky
24 because it calculates a check digit, but I don’t think that warrants reducing
25 the rating from strong to positive, so here we are. (I’ve pushed an
26 appropriate change, but I don’t think it warrants even a 1.0.1 release.)
27 ----- SIGN CREV PROOF -----
28 LJ2SYWIPHSNC49lmO1Bd4hGDAvT8lm-I4heOGrtdZPIRcDoOw2e9P4YxtKT_72r1Qwm3UfnpkCJqtM1UBkfkCw
29 ----- END CREV PROOF -----
30
31 ----- BEGIN CREV PROOF -----
32 kind: package review
33 version: -1
34 date: "2022-01-08T02:06:31.277120223+11:00"
35 from:
36 id-type: crev
37 id: QE5OVlHZ4QyOcMqdjXhS1MgsoZHvUqxOHNZwyfpsDIU
38 url: "https://git.chrismorgan.info/crev-proofs"
39 package:
40 source: "https://crates.io"
41 name: sanitise-file-name
42 version: 1.0.0
43 revision: 2f75e28d1f5d097ae5931fd05dd1b4fe39ec8c08
44 digest: egqrezU_0kaH9V4t1GOLIZe9W2aKoGc-isplQ-9l3d0
45 review:
46 thoroughness: high
47 understanding: high
48 rating: strong
49 comment: |-
50 I wrote this crate, with great care. (Sometimes it needed it!)
51
52 It has unfortunately ended up with rather a lot of code, but a fair bit of
53 that is related to Doing Things Right. The calculating of *exactly* how many
54 bytes may be needed is painfully involved (again a part of Doing Things
55 Right, especially as regards extension cleverness), but I’ve reviewed it
56 multiple times on different days and each time convinced myself that it is in
57 fact correct.
58
59 I believe that there are only two ways of causing this to panic, both easily
60 avoided by following instructions, and otherwise harmless. Firstly, giving
61 `sanitise_to` a `tinyvec_string::ArrayString` that doesn’t have enough space
62 remaining. That’s definite careless user error: `max_alloc_size_const` was
63 right there and clearly identified in the docs with explanation about the
64 whys and wherefores. Secondly, a slight variant of that: implementing
65 `Stringy` on some other type in a panicky fashion.
66
67 (Writing this review led me to add a mention of the possible panic to
68 sanitise_to’s docs, but I don’t think it warrants a 1.0.1 release.)
69 ----- SIGN CREV PROOF -----
70 ymZLNHdzGamyaPo5JyBuSNUY398pyzpjsFMsup1knXtscSZumHP3ZgzNC8KPO7VCQ-23XnQxapenIX27x_DdDw
71 ----- END CREV PROOF -----
72
73 ----- BEGIN CREV PROOF -----
74 kind: package review
75 version: -1
76 date: "2022-01-08T02:07:39.869637389+11:00"
77 from:
78 id-type: crev
79 id: QE5OVlHZ4QyOcMqdjXhS1MgsoZHvUqxOHNZwyfpsDIU
80 url: "https://git.chrismorgan.info/crev-proofs"
81 package:
82 source: "https://crates.io"
83 name: human-string-filler
84 version: 1.0.0
85 revision: a02907505ed1b65bb08d6a77c3b9676ab6c07d02
86 digest: ZfyKwrp12UPlfOiQPJ9qhbKYeoXy5Il9oJgL_ePwUlA
87 review:
88 thoroughness: high
89 understanding: high
90 rating: strong
91 comment: |-
92 I wrote this crate, carefully. It’s robust, well documented, well tested, and
93 entirely devoid of panics.
94 ----- SIGN CREV PROOF -----
95 uGwLNFZ_p6EV3AXkJYjJle9N4joGx7LkwEMkdONuNWlolx0UWuz9GVM9IqQrBbmdMorpDYkYSPW1wDxJJBuaAA
96 ----- END CREV PROOF -----
97