prisma-rust-schema 0.2.1

A Rust binary to act as a Prisma generator, generating Rust code from Prisma schema files.
Documentation
generator prisma_rust_schema {
  provider = "cargo run -- "
  output   = "../tests/schema.rs"
}

datasource db {
  provider = "mongodb"
  url      = env("MONGOHQ_URL")
}

/// @prs.derive = Debug,Clone,serde::Serialize,serde::Deserialize,PartialEq
model User {
  id         String     @id @default(auto()) @map("_id") @db.ObjectId
  email      String     @unique
  /// @prs.rename = username
  name       String?
  permission Permission
  /// @prs.type = usize
  createdAt  DateTime   @default(now())
  status     Json
  badCase    badCase[]

  posts Post[]
}

/// @prs.derive = Debug,Clone,serde::Serialize,serde::Deserialize,PartialEq
model Post {
  id       String  @id @default(auto()) @map("_id") @db.ObjectId
  /// A skipped field
  /// @prs.skip
  title    String
  content  Content
  authorId String  @db.ObjectId

  author User @relation(fields: [authorId], references: [id])
}

/// Permission for `User`
/// @prs.derive = Debug,Clone,serde::Serialize,serde::Deserialize,PartialEq
enum Permission {
  /// A common user
  USER
  /// All writes user
  ADMIN
}

/// @prs.derive = Debug,Clone,serde::Serialize,serde::Deserialize,PartialEq
type Content {
  text   String
  images String[]
}

/// A model with a bad casing
/// @prs.derive = Debug,Clone,serde::Serialize,serde::Deserialize,PartialEq
model badCase {
  id     String @id @default(auto()) @map("_id") @db.ObjectId
  userId String @db.ObjectId

  User User @relation(fields: [userId], references: [id])
}

/// A skipped enum
/// @prs.skip
enum SkippedEnum {
  UNAVAILABLE
}

/// A skipped type
/// @prs.skip
type SkippedType {
  skipped String
}

/// A skipped model
/// @prs.skip
model SkippedModel {
  id String @id @default(auto()) @map("_id") @db.ObjectId
}