Vec and array
Vec<u8>, Vec<i8>, ...
In Dart, when you want to express a long byte array such as a big image or some binary blob, people normally use Uint8List instead of List<int> since the former is much performant. flutter_rust_bridge takes this into consideration for you. When you have Vec<u8> (or Vec<i8>, or Vec<i32>, etc), it will be translated into Uint8List or its friends.
This section provides more details about Vec<u8> and its friends.
Vec<T>
When you have normal Vec<T> for T types other than u8, i8 etc, it will be converted to normal List<T>.
Remark: Vec<Box<T>> is not supported yet though fixable (#1072), but according to clippy lints, it is usually better to use Vec<T> directly.
[T; N]
Since Dart does not have special treatment for static-sized arrays, it is converted to List<T> as well.
Example
pub fn draw_tree(tree: Vec<TreeNode>) -> Vec<u8> { ... }
Becomes:
Future<Uint8List> drawTree({required List<TreeNode> tree});
Remark: If you are curious about Future, have a look at this.