diff --git a/STYLE.md b/STYLE.md index 0c4c17f98..2f814ae58 100644 --- a/STYLE.md +++ b/STYLE.md @@ -167,10 +167,14 @@ Follow Rust guidelines for the documentation comments: For internal types, implementing `From`, `TryFrom` or `FromStr` is discouraged. Instead, a `new()` function is recommended. -For external types, use `Type::from()`, `Type::try_from()` or `Type::from_str()` directly -rather than `into()`, `try_into()` or `parse()`. +For external types, prefer using `Type::from()`, `Type::try_from()` or `Type::from_str()` +over `into()`, `try_into()` or `parse()`. Calling `into()`, `try_into()` or `parse()` creates an indirection, which is hard to follow for people who are not familiar with Rust, or who are not using rust-analyzer. + +A notable exception is the Json-RPC API bindings, +where the API types have `From` implementatons to and from the core types. +Here, it is assumed to be clear enough which code is called.