blob: 82a6660a49a9314ae0bea6dda45f1d619c22c7d8 [file]
-- Licensed to the Apache Software Foundation (ASF) under one
-- or more contributor license agreements. See the NOTICE file
-- distributed with this work for additional information
-- regarding copyright ownership. The ASF licenses this file
-- to you under the Apache License, Version 2.0 (the
-- "License"); you may not use this file except in compliance
-- with the License. You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing,
-- software distributed under the License is distributed on an
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-- KIND, either express or implied. See the License for the
-- specific language governing permissions and limitations
-- under the License.
-- The Getting Started example for the Haskell binding, embedded into the
-- website guide. It runs against the in-memory service with no credentials,
-- so CI can execute it directly. The region between the ANCHOR markers is
-- what the docs show — keep it copy-pasteable.
-- ANCHOR: quickstart
import OpenDAL
import qualified Data.ByteString as BS
main :: IO ()
main = do
-- newOperator accepts any IsString value; "memory" needs no credentials.
Right op <- newOperator "memory"
-- The same verbs work on every service.
Right () <- writeOpRaw op "hello.txt" "Hello, World!"
Right bytes <- readOpRaw op "hello.txt"
putStrLn $ "read " ++ show (BS.length bytes) ++ " bytes"
Right meta <- statOpRaw op "hello.txt"
putStrLn $ "size = " ++ show (mContentLength meta) ++ " bytes"
Right () <- deleteOpRaw op "hello.txt"
return ()
-- ANCHOR_END: quickstart