Experiments for playing with atproto in Gleam.
27

Configure Feed

Select the types of activity you want to include in your feed.

๐Ÿ› Make sure cids are treated as bit arrays.

Hayleigh Thompson (Jul 18, 2026, 1:08 PM +0200) ae1f3943 93c5e813

+49 -6
+49 -6
src/at/cbor.gleam
··· 130 130 // CIDS 131 131 <<6:3, 24:5, 42:8, 2:3, size:5, bits:bytes-size(size), remaining:bits>> 132 132 if size <= 23 133 - -> Ok(#(dynamic.bit_array(bits), remaining)) 133 + -> 134 + case bits { 135 + <<0:8, _:bits>> -> Ok(#(dynamic.bit_array(bits), remaining)) 136 + _ -> Error(MalformedInput) 137 + } 134 138 135 - <<6:3, 24:5, 42:8, 2:3, size:8, bits:bytes-size(size), remaining:bits>> 136 - | <<6:3, 24:5, 42:8, 2:3, size:16, bits:bytes-size(size), remaining:bits>> 137 - | <<6:3, 24:5, 42:8, 2:3, size:32, bits:bytes-size(size), remaining:bits>> 138 - | <<6:3, 24:5, 42:8, 2:3, size:64, bits:bytes-size(size), remaining:bits>> -> 139 - Ok(#(dynamic.bit_array(bits), remaining)) 139 + << 140 + 6:3, 141 + 24:5, 142 + 42:8, 143 + 2:3, 144 + 24:5, 145 + size:8, 146 + bits:bytes-size(size), 147 + remaining:bits, 148 + >> 149 + | << 150 + 6:3, 151 + 24:5, 152 + 42:8, 153 + 2:3, 154 + 25:5, 155 + size:16, 156 + bits:bytes-size(size), 157 + remaining:bits, 158 + >> 159 + | << 160 + 6:3, 161 + 24:5, 162 + 42:8, 163 + 2:3, 164 + 26:5, 165 + size:32, 166 + bits:bytes-size(size), 167 + remaining:bits, 168 + >> 169 + | << 170 + 6:3, 171 + 24:5, 172 + 42:8, 173 + 2:3, 174 + 27:5, 175 + size:64, 176 + bits:bytes-size(size), 177 + remaining:bits, 178 + >> -> 179 + case bits { 180 + <<0:8, _:bits>> -> Ok(#(dynamic.bit_array(bits), remaining)) 181 + _ -> Error(MalformedInput) 182 + } 140 183 141 184 // BOOLS 142 185 <<7:3, 20:5, remaining:bits>> -> Ok(#(dynamic.bool(False), remaining))