Skip to content

Ch03 traits and generics#8

Merged
hartsock merged 5 commits into
mainfrom
ch03-traits-and-generics
Jun 5, 2026
Merged

Ch03 traits and generics#8
hartsock merged 5 commits into
mainfrom
ch03-traits-and-generics

Conversation

@hartsock

Copy link
Copy Markdown
Member

Summary

Test Plan

  • Tests pass (cargo test / just check)
  • No new warnings
  • Pre-commit hooks pass

Safety Checklist

  • No secrets, API keys, or tokens in this diff
  • No private paths, IPs, or internal hostnames
  • No high-entropy strings that could be credentials

hartsock and others added 5 commits April 12, 2026 21:45
Maps Python's try/except/None to Rust's Result<T,E>, Option<T>, and the ?
operator. Covers custom error types, Option chaining, iterator collect into
Result, and the LBYL/EAFP/types comparison.

16 passing example tests, 5 exercises with todo!() stubs.

Also fixes ch01 Logger exercise: replaced todo!() in Drop impl with a
comment-only stub to avoid double-panic abort in the test runner.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Maps Python's ABCs/Protocols/duck typing to Rust's trait system. Covers
trait definition and implementation, generic functions with trait bounds,
default methods, derived traits, operator overloading (Add, Sub, Display),
static vs dynamic dispatch, and multiple trait bounds with where clauses.

16 passing example tests, 5 exercises with todo!() stubs covering HasArea
trait, generic largest_area, Display for Temperature, Add for Money, and
dynamic dispatch with Renderable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Builds the concept of content-addressable data from first principles:
BLAKE3 hashing, deterministic serialization with serde, a ContentAddressable
trait with default methods, a content-addressed store with deduplication,
verified retrieval, and composable Merkle-style content addressing.

17 passing example tests, 5 exercises building a mini CAS system from
scratch (hash function, trait definition, Config implementation,
content-addressed cache, and Merkle-chain snapshots).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…sable

Add Chapter 4: Content-Addressable Data
…onflict)

WHAT: merge origin/main (ch02 via PR #1 + CI exercise-gating via PR #7)
into this branch; conflict was only in [workspace] members — kept the
ch03/ch04 entries this branch adds.
WHY: PR #8 was CONFLICTING; this makes it mergeable. Verified locally
with CI-parity checks: tests (excl. exercise crates), clippy -D warnings,
fmt --check — all green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@hartsock
hartsock merged commit d8568cb into main Jun 5, 2026
3 checks passed
@hartsock
hartsock deleted the ch03-traits-and-generics branch June 5, 2026 23:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant