SafeCastOverNull.yql 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. (
  2. (let config (DataSource 'config))
  3. (let world (Configure! world config 'PureDataSource 'yt))
  4. (let res_sink (DataSink 'result))
  5. # Null -> Uint16
  6. (let cast (SafeCast (Null) (DataType 'Uint16)))
  7. (let world (Write! world res_sink (Key) cast '('('type))))
  8. # Null -> Uint16?
  9. (let cast (SafeCast (Null) (OptionalType (DataType 'Uint16))))
  10. (let world (Write! world res_sink (Key) cast '('('type))))
  11. # Just(Null) -> Null
  12. (let cast (SafeCast (Just (Null)) (NullType)))
  13. (let world (Write! world res_sink (Key) cast '('('type))))
  14. # Nothing(Null?) -> Null
  15. (let cast (SafeCast (Nothing (OptionalType (NullType))) (NullType)))
  16. (let world (Write! world res_sink (Key) cast '('('type))))
  17. # Uint16 -> Null
  18. (let cast (SafeCast (Uint16 '0) (NullType)))
  19. (let world (Write! world res_sink (Key) cast '('('type))))
  20. # Nothing(Uint16?) -> Null
  21. (let cast (SafeCast (Nothing (OptionalType (DataType 'Uint16))) (NullType)))
  22. (let world (Write! world res_sink (Key) cast '('('type))))
  23. # Null -> Null?
  24. (let cast (SafeCast (Null) (OptionalType (NullType))))
  25. (let world (Write! world res_sink (Key) cast '('('type))))
  26. (let world (Commit! world res_sink))
  27. (return world)
  28. )