{"id":17002977,"url":"https://github.com/50-course/rusty-weekend","last_synced_at":"2025-03-22T09:23:03.733Z","repository":{"id":219436224,"uuid":"749049221","full_name":"50-Course/rusty-weekend","owner":"50-Course","description":"Sunny weekend learning","archived":false,"fork":false,"pushed_at":"2024-01-28T08:05:57.000Z","size":7,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-28T19:08:26.084Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/50-Course.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2024-01-27T12:45:56.000Z","updated_at":"2024-01-27T14:22:19.000Z","dependencies_parsed_at":"2024-01-27T14:29:13.647Z","dependency_job_id":"39198fd5-b469-44c9-9ae7-8d4000690019","html_url":"https://github.com/50-Course/rusty-weekend","commit_stats":null,"previous_names":["50-course/rusty-weekend"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/50-Course%2Frusty-weekend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/50-Course%2Frusty-weekend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/50-Course%2Frusty-weekend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/50-Course%2Frusty-weekend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/50-Course","download_url":"https://codeload.github.com/50-Course/rusty-weekend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235827004,"owners_count":19051167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T04:29:29.688Z","updated_at":"2025-01-27T09:20:51.992Z","avatar_url":"https://github.com/50-Course.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"Revision of the Rust programming language over the sunny weekend.\n\n\nRoadmap\n=======\n\n- Weekend 1: Read the book, do the exercises, focus on fundamentals.\n\n- Weekend 2: Read the book, do the exercises, focus on ownership, concurrency in Rust.\n\n- Weekend 3: Build a small project in Rust, for this, i am picking out a simple project from the back of my head that takes your favorite Jira Issues and migrate it to GitHub Issues\n\n\nWeekend 1 - Notes\n=================\nSo I'm gonna say this, I took a look at Rust and I impressed with its close performance to C++ in spite of its absence of GC or Runtime.\nToday, I took a whole new approach to learning Rust, I decided to try out the TDD approach, more specifially Behaviour-Driven Development.\n\nHere are a few things I learned today:\n\n- Writing tests in Rust is pretty easy, you just need to add the `#[test]` attribute to your test function and you are good to go.\n- You can also add the `#[ignore]` attribute to ignore a test.\n- You can also add the `#[should_panic]` attribute to check if a test panics (that is should fail delibratey).\n- You can also add the `#cfg(test)` attribute to your test module to tell the compiler to only compile the module when running tests.\n- There is a `cargo test` command that runs all the tests in your project.\n- You can run a single test by passing the name of the test to the `cargo test` command.\n\nHaving worked with a few languages, with deep knowledge of Java, Python and JavaScript, \n\nHere are a few knowlege I immidiately picked up - let's talk about Python and Go for now:\n\n- Property-based testing is a thing in Rust as in Go, which in Python is called Hypothesis.\n- Testing functions are similar to pytest - figuratively speaking, except Rust uses macros and you have to append a `!` to the end of the macro name.\n  e.g. `assert_eq!` is the equivalent of `assertEqual` in Python or `assert.Equal` in Go.\n       `assert_ne!` is the equivalent of `assertNotEqual` in Python or `assert.NotEqual` in Go.\n       `assert!` is the equivalent of `assertTrue` in Python or `assert.True` in Go.\n       `assert!` is also the equivalent of `assert` in Python or `assert` in Go.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F50-course%2Frusty-weekend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F50-course%2Frusty-weekend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F50-course%2Frusty-weekend/lists"}