Confused why this has a stack overflow and times out on play.rust

Here is the code:

use std::sync::mpsc;
use std::thread;

pub enum Event {
  Data([[u32; 256]; 256]),

fn main() {
    let (tx, rx) = mpsc::sync_channel(0);
    thread::spawn(move || {

Rust play: Rust Playground

If I comment out the Data enum, then this code works. Anyone know why?

Data is 256KB. Presumably the playground has a stack limit configured smaller than that.

Thank you. I guess I'll need to use a reference or a Vec.