Rustはセミコロンの有無で文か式(値)かを分けている

if condition {
 a = p + q;
} else {
 a = x + y;
}

これをifの中を文ではなく式(値)にすると

a = if condition {
 p + q
} else {
 x + y
};

もちろん改行やインデントは自由なので
a = if condition { p + q } else { x + y };
こう書いても同じ

波括弧は区切りとして不可欠であり
多重時の対応関係となるだけでなく
波括弧はブロックを形成しスコープの管理にも不可欠

例えば波括弧により新たなブロックを形成することで
ロックを取得した変数がブロック終了時に自動解放され
その時にロックも自動解放されるなど安全設計にも波括弧が活躍

このようにセミコロンと波括弧はRustにおいて非常に重要な意味を持つ
きちんと活用したプログラミングにおいてはセミコロンも波括弧も無駄ではない