{"payload":{"allShortcutsEnabled":false,"fileTree":{"src":{"items":[{"name":"hash.rs","path":"src/hash.rs","contentType":"file"},{"name":"lib.rs","path":"src/lib.rs","contentType":"file"}],"totalCount":2},"":{"items":[{"name":".github","path":".github","contentType":"directory"},{"name":"src","path":"src","contentType":"directory"},{"name":".editorconfig","path":".editorconfig","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":"Cargo.toml","path":"Cargo.toml","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"rust-toolchain","path":"rust-toolchain","contentType":"file"},{"name":"rustfmt.toml","path":"rustfmt.toml","contentType":"file"}],"totalCount":9}},"fileTreeProcessingTime":8.756451,"foldersToFetch":[],"repo":{"id":239934238,"defaultBranch":"master","name":"rust-codechain-primitives","ownerLogin":"byeongjee","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2020-02-12T05:26:22.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/24953444?v=4","public":true,"private":false,"isOrgOwned":false},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"master","listCacheKey":"v0:1617167525.0226371","canEdit":false,"refType":"branch","currentOid":"412960500a26d637933e31112224760d382df9cb"},"path":"src/hash.rs","currentUser":null,"blob":{"rawLines":["// Copyright 2018 Kodebox, Inc.","// This file is part of CodeChain.","//","// This program is free software: you can redistribute it and/or modify","// it under the terms of the GNU Affero General Public License as","// published by the Free Software Foundation, either version 3 of the","// License, or (at your option) any later version.","//","// This program is distributed in the hope that it will be useful,","// but WITHOUT ANY WARRANTY; without even the implied warranty of","// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the","// GNU Affero General Public License for more details.","//","// You should have received a copy of the GNU Affero General Public License","// along with this program. If not, see .","","pub use ethereum_types::{H128, H160, H256, H264, H512, H520};","","use serde::{Deserialize, Deserializer, Serialize, Serializer};","","use ethereum_types_serialize;","","macro_rules! impl_serde {"," ($name: ident, $len: expr) => {"," impl Serialize for $name {"," fn serialize(&self, serializer: S) -> Result"," where"," S: Serializer, {"," let mut slice = [0u8; 2 + 2 * $len];"," ethereum_types_serialize::serialize(&mut slice, &self.0, serializer)"," }"," }",""," impl<'de> Deserialize<'de> for $name {"," fn deserialize(deserializer: D) -> Result"," where"," D: Deserializer<'de>, {"," let mut bytes = [0u8; $len];"," ethereum_types_serialize::deserialize_check_len("," deserializer,"," ethereum_types_serialize::ExpectedLen::Exact(&mut bytes),"," )?;"," Ok($name(bytes))"," }"," }"," };","}","","construct_hash!(H384, 48);","construct_hash!(H768, 96);","","impl_serde!(H384, 48);","impl_serde!(H768, 96);"],"stylingDirectives":[[{"start":0,"end":31,"cssClass":"pl-c"}],[{"start":0,"end":34,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":71,"cssClass":"pl-c"}],[{"start":0,"end":65,"cssClass":"pl-c"}],[{"start":0,"end":69,"cssClass":"pl-c"}],[{"start":0,"end":50,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":66,"cssClass":"pl-c"}],[{"start":0,"end":65,"cssClass":"pl-c"}],[{"start":0,"end":64,"cssClass":"pl-c"}],[{"start":0,"end":54,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":75,"cssClass":"pl-c"}],[{"start":0,"end":73,"cssClass":"pl-c"}],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":4,"end":7,"cssClass":"pl-k"},{"start":22,"end":24,"cssClass":"pl-kos"},{"start":24,"end":25,"cssClass":"pl-kos"},{"start":25,"end":29,"cssClass":"pl-v"},{"start":29,"end":30,"cssClass":"pl-kos"},{"start":31,"end":35,"cssClass":"pl-v"},{"start":35,"end":36,"cssClass":"pl-kos"},{"start":37,"end":41,"cssClass":"pl-v"},{"start":41,"end":42,"cssClass":"pl-kos"},{"start":43,"end":47,"cssClass":"pl-v"},{"start":47,"end":48,"cssClass":"pl-kos"},{"start":49,"end":53,"cssClass":"pl-v"},{"start":53,"end":54,"cssClass":"pl-kos"},{"start":55,"end":59,"cssClass":"pl-v"},{"start":59,"end":60,"cssClass":"pl-kos"},{"start":60,"end":61,"cssClass":"pl-kos"}],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":9,"end":11,"cssClass":"pl-kos"},{"start":11,"end":12,"cssClass":"pl-kos"},{"start":12,"end":23,"cssClass":"pl-v"},{"start":23,"end":24,"cssClass":"pl-kos"},{"start":25,"end":37,"cssClass":"pl-v"},{"start":37,"end":38,"cssClass":"pl-kos"},{"start":39,"end":48,"cssClass":"pl-v"},{"start":48,"end":49,"cssClass":"pl-kos"},{"start":50,"end":60,"cssClass":"pl-v"},{"start":60,"end":61,"cssClass":"pl-kos"},{"start":61,"end":62,"cssClass":"pl-kos"}],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":28,"end":29,"cssClass":"pl-kos"}],[],[{"start":0,"end":12,"cssClass":"pl-k"},{"start":24,"end":25,"cssClass":"pl-kos"}],[{"start":4,"end":5,"cssClass":"pl-kos"},{"start":10,"end":11,"cssClass":"pl-kos"},{"start":23,"end":24,"cssClass":"pl-kos"},{"start":29,"end":30,"cssClass":"pl-kos"},{"start":34,"end":35,"cssClass":"pl-kos"}],[{"start":8,"end":12,"cssClass":"pl-k"},{"start":13,"end":22,"cssClass":"pl-v"},{"start":23,"end":26,"cssClass":"pl-k"},{"start":33,"end":34,"cssClass":"pl-kos"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":25,"end":26,"cssClass":"pl-v"},{"start":27,"end":28,"cssClass":"pl-kos"},{"start":29,"end":33,"cssClass":"pl-smi"},{"start":47,"end":48,"cssClass":"pl-v"},{"start":48,"end":49,"cssClass":"pl-kos"},{"start":53,"end":59,"cssClass":"pl-v"},{"start":60,"end":61,"cssClass":"pl-v"},{"start":63,"end":65,"cssClass":"pl-v"},{"start":67,"end":68,"cssClass":"pl-v"},{"start":70,"end":75,"cssClass":"pl-v"}],[{"start":12,"end":17,"cssClass":"pl-k"}],[{"start":16,"end":17,"cssClass":"pl-v"},{"start":19,"end":29,"cssClass":"pl-v"},{"start":31,"end":32,"cssClass":"pl-kos"}],[{"start":16,"end":19,"cssClass":"pl-k"},{"start":20,"end":23,"cssClass":"pl-k"},{"start":32,"end":33,"cssClass":"pl-kos"},{"start":33,"end":36,"cssClass":"pl-c1"},{"start":38,"end":39,"cssClass":"pl-c1"},{"start":42,"end":43,"cssClass":"pl-c1"},{"start":50,"end":51,"cssClass":"pl-kos"}],[{"start":51,"end":52,"cssClass":"pl-kos"},{"start":53,"end":56,"cssClass":"pl-k"},{"start":65,"end":69,"cssClass":"pl-smi"},{"start":70,"end":71,"cssClass":"pl-c1"},{"start":83,"end":84,"cssClass":"pl-kos"}],[{"start":12,"end":13,"cssClass":"pl-kos"}],[{"start":8,"end":9,"cssClass":"pl-kos"}],[],[{"start":8,"end":12,"cssClass":"pl-k"},{"start":13,"end":14,"cssClass":"pl-c1"},{"start":18,"end":29,"cssClass":"pl-v"},{"start":30,"end":31,"cssClass":"pl-c1"},{"start":35,"end":38,"cssClass":"pl-k"},{"start":45,"end":46,"cssClass":"pl-kos"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":27,"end":28,"cssClass":"pl-v"},{"start":29,"end":30,"cssClass":"pl-kos"},{"start":44,"end":45,"cssClass":"pl-v"},{"start":45,"end":46,"cssClass":"pl-kos"},{"start":50,"end":56,"cssClass":"pl-v"},{"start":57,"end":61,"cssClass":"pl-v"},{"start":63,"end":64,"cssClass":"pl-v"},{"start":66,"end":71,"cssClass":"pl-v"}],[{"start":12,"end":17,"cssClass":"pl-k"}],[{"start":16,"end":17,"cssClass":"pl-v"},{"start":19,"end":31,"cssClass":"pl-v"},{"start":32,"end":33,"cssClass":"pl-c1"},{"start":38,"end":39,"cssClass":"pl-kos"}],[{"start":16,"end":19,"cssClass":"pl-k"},{"start":20,"end":23,"cssClass":"pl-k"},{"start":32,"end":33,"cssClass":"pl-kos"},{"start":33,"end":36,"cssClass":"pl-c1"},{"start":42,"end":43,"cssClass":"pl-kos"}],[{"start":63,"end":64,"cssClass":"pl-kos"}],[],[{"start":46,"end":57,"cssClass":"pl-v"},{"start":59,"end":64,"cssClass":"pl-v"},{"start":64,"end":65,"cssClass":"pl-kos"},{"start":66,"end":69,"cssClass":"pl-k"},{"start":75,"end":76,"cssClass":"pl-kos"}],[{"start":16,"end":17,"cssClass":"pl-kos"}],[{"start":16,"end":18,"cssClass":"pl-v"},{"start":18,"end":19,"cssClass":"pl-kos"},{"start":24,"end":25,"cssClass":"pl-kos"},{"start":30,"end":31,"cssClass":"pl-kos"},{"start":31,"end":32,"cssClass":"pl-kos"}],[{"start":12,"end":13,"cssClass":"pl-kos"}],[{"start":8,"end":9,"cssClass":"pl-kos"}],[{"start":4,"end":5,"cssClass":"pl-kos"},{"start":5,"end":6,"cssClass":"pl-kos"}],[{"start":0,"end":1,"cssClass":"pl-kos"}],[],[{"start":0,"end":14,"cssClass":"pl-en"},{"start":14,"end":15,"cssClass":"pl-en"},{"start":15,"end":16,"cssClass":"pl-kos"},{"start":16,"end":20,"cssClass":"pl-v"},{"start":22,"end":24,"cssClass":"pl-c1"},{"start":24,"end":25,"cssClass":"pl-kos"},{"start":25,"end":26,"cssClass":"pl-kos"}],[{"start":0,"end":14,"cssClass":"pl-en"},{"start":14,"end":15,"cssClass":"pl-en"},{"start":15,"end":16,"cssClass":"pl-kos"},{"start":16,"end":20,"cssClass":"pl-v"},{"start":22,"end":24,"cssClass":"pl-c1"},{"start":24,"end":25,"cssClass":"pl-kos"},{"start":25,"end":26,"cssClass":"pl-kos"}],[],[{"start":0,"end":10,"cssClass":"pl-en"},{"start":10,"end":11,"cssClass":"pl-en"},{"start":11,"end":12,"cssClass":"pl-kos"},{"start":12,"end":16,"cssClass":"pl-v"},{"start":18,"end":20,"cssClass":"pl-c1"},{"start":20,"end":21,"cssClass":"pl-kos"},{"start":21,"end":22,"cssClass":"pl-kos"}],[{"start":0,"end":10,"cssClass":"pl-en"},{"start":10,"end":11,"cssClass":"pl-en"},{"start":11,"end":12,"cssClass":"pl-kos"},{"start":12,"end":16,"cssClass":"pl-v"},{"start":18,"end":20,"cssClass":"pl-c1"},{"start":20,"end":21,"cssClass":"pl-kos"},{"start":21,"end":22,"cssClass":"pl-kos"}]],"colorizedLines":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/byeongjee/rust-codechain-primitives/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"hash.rs","displayUrl":"https://github.com/Byeongjee/rust-codechain-primitives/blob/master/src/hash.rs?raw=true","headerInfo":{"blobSize":"1.83 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"10d0a9a","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2FByeongjee%2Frust-codechain-primitives%2Fblob%2Fmaster%2Fsrc%2Fhash.rs","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"53","truncatedSloc":"46"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"Rust","languageID":327,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/Byeongjee/rust-codechain-primitives/blob/master/src/hash.rs","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/byeongjee/rust-codechain-primitives/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/Byeongjee/rust-codechain-primitives/raw/master/src/hash.rs","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"impl_serde","kind":"macro","ident_start":910,"ident_end":920,"extent_start":897,"extent_end":1770,"fully_qualified_name":"impl_serde","ident_utf16":{"start":{"line_number":22,"utf16_col":13},"end":{"line_number":22,"utf16_col":23}},"extent_utf16":{"start":{"line_number":22,"utf16_col":0},"end":{"line_number":46,"utf16_col":1}}}]}},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/Byeongjee/rust-codechain-primitives/branches":{"post":"jWsGq2ldVz9CJQmTCSnhNA9_7SxCORndEPdX-fHWEupd6Z_Yy2wFzMnVnKfmsnkoFvNlZMjZv-6hPl-kBbg_9w"},"/repos/preferences":{"post":"9wr7ES25PC7z7zM-BixL9VrYlqZ40hSE1o6oF-UsNcjr6RlShUDEireNt6wn87FLNu0caGqV9u8CW-2FinEtRQ"}}},"title":"rust-codechain-primitives/src/hash.rs at master ยท byeongjee/rust-codechain-primitives"}