Skip to content

Commit e012163

Browse files
committed
complete pattern matching
1 parent 0074f9e commit e012163

File tree

54 files changed

+980
-71
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+980
-71
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
\PYG{k}{fn} \PYG{n+nf}{print\PYGZus{}coordinates}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{p}{(}\PYG{n}{x}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{y}\PYG{p}{)}: \PYG{k+kp}{\PYGZam{}}\PYG{p}{(}\PYG{k+kt}{i32}\PYG{p}{,}\PYG{+w}{ }\PYG{k+kt}{i32}\PYG{p}{))}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
3+
\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}Current location: (\PYGZob{}\PYGZcb{}, \PYGZob{}\PYGZcb{})\PYGZdq{}}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{x}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{y}\PYG{p}{);}
4+
\PYG{p}{\PYGZcb{}}
5+
6+
\PYG{k}{fn} \PYG{n+nf}{main}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
7+
\PYG{+w}{ }\PYG{k+kd}{let}\PYG{+w}{ }\PYG{n}{point}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{p}{(}\PYG{l+m+mi}{3}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m+mi}{5}\PYG{p}{);}
8+
\PYG{+w}{ }\PYG{n}{print\PYGZus{}coordinates}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{point}\PYG{p}{);}
9+
\PYG{p}{\PYGZcb{}}
10+
\end{Verbatim}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
\PYG{c+c1}{// | let Some(x) = some\PYGZus{}option\PYGZus{}value;}
3+
\PYG{c+c1}{// | \PYGZca{}\PYGZca{}\PYGZca{}\PYGZca{}\PYGZca{}\PYGZca{}\PYGZca{} pattern `None` not covered}
4+
5+
\PYG{c+c1}{// If we have a refutable pattern where an irrefutable pattern is needed, we can fix it by changing the code that uses the pattern: instead of using let, we can use if let. }
6+
\PYG{k}{if}\PYG{+w}{ }\PYG{k+kd}{let}\PYG{+w}{ }\PYG{n+nb}{Some}\PYG{p}{(}\PYG{n}{x}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{some\PYGZus{}option\PYGZus{}value}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
7+
\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}\PYGZob{}\PYGZcb{}\PYGZdq{}}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{x}\PYG{p}{);}
8+
\PYG{p}{\PYGZcb{}}
9+
\end{Verbatim}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
\PYG{k+kd}{let}\PYG{+w}{ }\PYG{n}{x}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n+nb}{Some}\PYG{p}{(}\PYG{l+m+mi}{5}\PYG{p}{);}
3+
\PYG{k+kd}{let}\PYG{+w}{ }\PYG{n}{y}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+m+mi}{10}\PYG{p}{;}
4+
\PYG{k}{match}\PYG{+w}{ }\PYG{n}{x}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
5+
\PYG{+w}{ }\PYG{n+nb}{Some}\PYG{p}{(}\PYG{l+m+mi}{50}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}Got 50\PYGZdq{}}\PYG{p}{),}
6+
\PYG{+w}{ }\PYG{n+nb}{Some}\PYG{p}{(}\PYG{n}{n}\PYG{p}{)}\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{n}{n}\PYG{+w}{ }\PYG{o}{==}\PYG{+w}{ }\PYG{n}{y}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}Matched, n = \PYGZob{}n\PYGZcb{}\PYGZdq{}}\PYG{p}{),}
7+
\PYG{+w}{ }\PYG{n}{\PYGZus{}}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}Default case, x = \PYGZob{}:?\PYGZcb{}\PYGZdq{}}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{x}\PYG{p}{),}
8+
\PYG{p}{\PYGZcb{}}
9+
\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}at the end: x = \PYGZob{}:?\PYGZcb{}, y = \PYGZob{}y\PYGZcb{}\PYGZdq{}}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{x}\PYG{p}{);}
10+
11+
\PYG{k+kd}{let}\PYG{+w}{ }\PYG{n}{x1}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+m+mi}{4}\PYG{p}{;}
12+
\PYG{k+kd}{let}\PYG{+w}{ }\PYG{n}{y1}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k+kc}{false}\PYG{p}{;}
13+
\PYG{k}{match}\PYG{+w}{ }\PYG{n}{x1}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
14+
\PYG{+w}{ }\PYG{l+m+mi}{4}\PYG{+w}{ }\PYG{o}{|}\PYG{+w}{ }\PYG{l+m+mi}{5}\PYG{+w}{ }\PYG{o}{|}\PYG{+w}{ }\PYG{l+m+mi}{6}\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{n}{y1}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{p}{),}
15+
\PYG{+w}{ }\PYG{n}{\PYGZus{}}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}no\PYGZdq{}}\PYG{p}{),}
16+
\PYG{p}{\PYGZcb{}}
17+
\end{Verbatim}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
\PYG{k}{fn} \PYG{n+nf}{some\PYGZus{}number}\PYG{p}{()}\PYG{+w}{ }\PYGZhy{}\PYGZgt{} \PYG{n+nb}{Option}\PYG{o}{\PYGZlt{}}\PYG{k+kt}{u32}\PYG{o}{\PYGZgt{}}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
3+
\PYG{+w}{ }\PYG{n+nb}{Some}\PYG{p}{(}\PYG{l+m+mi}{42}\PYG{p}{)}
4+
\PYG{p}{\PYGZcb{}}
5+
6+
\PYG{k}{fn} \PYG{n+nf}{main}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
7+
\PYG{+w}{ }\PYG{k}{match}\PYG{+w}{ }\PYG{n}{some\PYGZus{}number}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
8+
\PYG{+w}{ }\PYG{c+c1}{// Got `Some` variant, match if its value, bound to `n`,}
9+
\PYG{+w}{ }\PYG{c+c1}{// is equal to 42.}
10+
\PYG{+w}{ }\PYG{n+nb}{Some}\PYG{p}{(}\PYG{n}{n}\PYG{+w}{ }\PYG{o}{@}\PYG{+w}{ }\PYG{l+m+mi}{42}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}The Answer: \PYGZob{}\PYGZcb{}!\PYGZdq{}}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{n}\PYG{p}{),}
11+
\PYG{+w}{ }\PYG{c+c1}{// Match any other number.}
12+
\PYG{+w}{ }\PYG{n+nb}{Some}\PYG{p}{(}\PYG{n}{n}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}Not interesting... \PYGZob{}\PYGZcb{}\PYGZdq{}}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{n}\PYG{p}{),}
13+
\PYG{+w}{ }\PYG{c+c1}{// Match anything else (`None` variant).}
14+
\PYG{+w}{ }\PYG{n}{\PYGZus{}}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{p}{(),}
15+
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
16+
\PYG{p}{\PYGZcb{}}
17+
\end{Verbatim}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
\PYG{k}{enum} \PYG{n+nc}{Message}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
3+
\PYG{+w}{ }\PYG{n}{Hello}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }\PYG{n}{id}: \PYG{k+kt}{i32} \PYG{p}{\PYGZcb{},}
4+
\PYG{p}{\PYGZcb{}}
5+
6+
\PYG{k+kd}{let}\PYG{+w}{ }\PYG{n}{msg}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{Message}::\PYG{n}{Hello}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }\PYG{n}{id}: \PYG{l+m+mi}{5}\PYG{+w}{ }\PYG{p}{\PYGZcb{};}
7+
8+
\PYG{k}{match}\PYG{+w}{ }\PYG{n}{msg}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
9+
\PYG{+w}{ }\PYG{n}{Message}::\PYG{n}{Hello}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
10+
\PYG{+w}{ }\PYG{n}{id}: \PYG{n+nc}{id\PYGZus{}variable}\PYG{+w}{ }\PYG{o}{@}\PYG{+w}{ }\PYG{l+m+mi}{3}\PYG{o}{..=}\PYG{l+m+mi}{7}\PYG{p}{,}
11+
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}Found an id in range: \PYGZob{}\PYGZcb{}\PYGZdq{}}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{id\PYGZus{}variable}\PYG{p}{),}
12+
\PYG{+w}{ }\PYG{n}{Message}::\PYG{n}{Hello}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }\PYG{n}{id}: \PYG{l+m+mi}{10}\PYG{o}{..=}\PYG{l+m+mi}{12}\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
13+
\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}Found an id in another range\PYGZdq{}}\PYG{p}{)}
14+
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
15+
\PYG{+w}{ }\PYG{n}{Message}::\PYG{n}{Hello}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }\PYG{n}{id}\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}Found some other id: \PYGZob{}\PYGZcb{}\PYGZdq{}}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{id}\PYG{p}{),}
16+
\PYG{p}{\PYGZcb{}}
17+
\end{Verbatim}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
\PYG{k}{struct} \PYG{n+nc}{Point}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
3+
\PYG{+w}{ }\PYG{n}{x}: \PYG{k+kt}{i32}\PYG{p}{,}
4+
\PYG{+w}{ }\PYG{n}{y}: \PYG{k+kt}{i32}\PYG{p}{,}
5+
\PYG{+w}{ }\PYG{n}{z}: \PYG{k+kt}{i32}\PYG{p}{,}
6+
\PYG{p}{\PYGZcb{}}
7+
\PYG{k+kd}{let}\PYG{+w}{ }\PYG{n}{origin}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{Point}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }\PYG{n}{x}: \PYG{l+m+mi}{0}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{y}: \PYG{l+m+mi}{0}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{z}: \PYG{l+m+mi}{0}\PYG{+w}{ }\PYG{p}{\PYGZcb{};}
8+
\PYG{k}{match}\PYG{+w}{ }\PYG{n}{origin}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
9+
\PYG{+w}{ }\PYG{n}{Point}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }\PYG{n}{x}\PYG{p}{,}\PYG{+w}{ }\PYG{o}{..}\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}x is \PYGZob{}\PYGZcb{}\PYGZdq{}}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{x}\PYG{p}{),}
10+
\PYG{p}{\PYGZcb{}}
11+
12+
\PYG{k+kd}{let}\PYG{+w}{ }\PYG{n}{numbers}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{p}{(}\PYG{l+m+mi}{2}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m+mi}{4}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m+mi}{8}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m+mi}{16}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m+mi}{32}\PYG{p}{);}
13+
\PYG{k}{match}\PYG{+w}{ }\PYG{n}{numbers}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
14+
\PYG{+w}{ }\PYG{p}{(}\PYG{n}{first}\PYG{p}{,}\PYG{+w}{ }\PYG{o}{..}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{last}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
15+
\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}Some numbers: \PYGZob{}first\PYGZcb{}, \PYGZob{}last\PYGZcb{}\PYGZdq{}}\PYG{p}{);}
16+
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
17+
\PYG{p}{\PYGZcb{}}
18+
\end{Verbatim}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
\PYG{n}{x}
3+
\end{Verbatim}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
\PYG{o}{..=}
3+
\end{Verbatim}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
\PYG{k}{match}\PYG{+w}{ }\PYG{n}{x}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
3+
\PYG{+w}{ }\PYG{n+nb}{None}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{n+nb}{None}\PYG{p}{,}
4+
\PYG{+w}{ }\PYG{n+nb}{Some}\PYG{p}{(}\PYG{n}{i}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{n+nb}{Some}\PYG{p}{(}\PYG{n}{i}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{l+m+mi}{1}\PYG{p}{),}
5+
\PYG{p}{\PYGZcb{}}
6+
\end{Verbatim}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
\PYG{k}{enum} \PYG{n+nc}{Message}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
3+
\PYG{+w}{ }\PYG{n}{Quit}\PYG{p}{,}
4+
\PYG{+w}{ }\PYG{n}{Move}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }\PYG{n}{x}: \PYG{k+kt}{i32}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{y}: \PYG{k+kt}{i32} \PYG{p}{\PYGZcb{},}
5+
\PYG{+w}{ }\PYG{n}{Write}\PYG{p}{(}\PYG{n+nb}{String}\PYG{p}{),}
6+
\PYG{+w}{ }\PYG{n}{ChangeColor}\PYG{p}{(}\PYG{k+kt}{i32}\PYG{p}{,}\PYG{+w}{ }\PYG{k+kt}{i32}\PYG{p}{,}\PYG{+w}{ }\PYG{k+kt}{i32}\PYG{p}{),}
7+
\PYG{p}{\PYGZcb{}}
8+
\PYG{k}{fn} \PYG{n+nf}{main}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
9+
\PYG{+w}{ }\PYG{k+kd}{let}\PYG{+w}{ }\PYG{n}{msg}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{Message}::\PYG{n}{ChangeColor}\PYG{p}{(}\PYG{l+m+mi}{0}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m+mi}{160}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m+mi}{255}\PYG{p}{);}
10+
\PYG{+w}{ }\PYG{k}{match}\PYG{+w}{ }\PYG{n}{msg}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
11+
\PYG{+w}{ }\PYG{n}{Message}::\PYG{n}{Quit}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
12+
\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}The Quit variant has no data to destructure.\PYGZdq{}}\PYG{p}{);}
13+
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
14+
\PYG{+w}{ }\PYG{n}{Message}::\PYG{n}{Move}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }\PYG{n}{x}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{y}\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
15+
\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}Move in the x direction \PYGZob{}x\PYGZcb{} ... \PYGZob{}y\PYGZcb{}\PYGZdq{}}\PYG{p}{);}
16+
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
17+
\PYG{+w}{ }\PYG{n}{Message}::\PYG{n}{Write}\PYG{p}{(}\PYG{n}{text}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
18+
\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}Text message: \PYGZob{}text\PYGZcb{}\PYGZdq{}}\PYG{p}{);}
19+
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
20+
\PYG{+w}{ }\PYG{n}{Message}::\PYG{n}{ChangeColor}\PYG{p}{(}\PYG{n}{r}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{g}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{b}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{=\PYGZgt{}}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
21+
\PYG{+w}{ }\PYG{n+nf+fm}{println!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}...red \PYGZob{}r\PYGZcb{}, green \PYGZob{}g\PYGZcb{}, and blue \PYGZob{}b\PYGZcb{}\PYGZdq{}}\PYG{p}{,)}
22+
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
23+
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
24+
\PYG{p}{\PYGZcb{}}
25+
\end{Verbatim}

0 commit comments

Comments
 (0)