It’s Malisa’s birthday!

Things we did:

  • Request API
    • Worked on PR and it finally got merged!
    • Continued addressing comments from the Request API PR.
  • Response API
    • Finished step 2 of constructor. Learned about character encodings. Progress is slow because I keep having questions about syntax and rust design, etc.
    • Received feedback for an issue I submitted. Submitted 2 additional issues as follow-up: 1 and 2.

Things we learned:

  • The below two code snippets are the same:
match init.mode.as_ref() {
    Some(init_mode) => mode = Some(init_mode.clone().into()),
    None => mode = Some(fallback_mode.unwrap()),
}
let mode = init.mode.as_ref().map(|m| m.clone().into()).or(fallback_mode);
  • ASCII is limited to only 128 characters, via a 7-bit character set (so, fits in one byte). UTF-8 is flexible, on the other hand, and can represent characters that require between 1 and 4 bytes. The first 128 characters are the same for ASCII and UTF-8. UTF standards encode the “code points” as defined in Unicode.
    • This is useful for us to know because we are often converting between ByteString types, which are basically sequences of 8-bit unsigned integers, and characters or Strings. Many of the specs we have to follow reference these encodings. Knowing hexadecimal representation of characters is also useful.

TODO:

  • General:
    • Write a blog post!
  • Response:
    • Continue working on constructor.
  • Request:
    • Keep addressing comments.