Disallow empty lists.
This commit is contained in:
parent
281c589dc6
commit
5c2c13d83e
|
@ -96,13 +96,17 @@ viewRawCacheModelHierarchy rcmh =
|
||||||
<| List.indexedMap viewRawCacheModel rcmh
|
<| List.indexedMap viewRawCacheModel rcmh
|
||||||
translationResult = Result.andThen validateCacheModelHierarchy
|
translationResult = Result.andThen validateCacheModelHierarchy
|
||||||
<| translateRawCacheModelHierarchy rcmh
|
<| translateRawCacheModelHierarchy rcmh
|
||||||
errorHtml =
|
checkedResult =
|
||||||
case translationResult of
|
case translationResult of
|
||||||
|
Ok h -> if h == [] then Err "Please specify at least one cache level." else Ok h
|
||||||
|
Err e -> Err e
|
||||||
|
errorHtml =
|
||||||
|
case checkedResult of
|
||||||
Ok _ -> viewError True ""
|
Ok _ -> viewError True ""
|
||||||
Err e -> viewError False e
|
Err e -> viewError False e
|
||||||
|
|
||||||
newButton = button "Add level" CreateRawModel
|
newButton = button "Add level" CreateRawModel
|
||||||
useButton = resultButton translationResult "Use hierarchy" (UseHierarchy << Just)
|
useButton = resultButton checkedResult "Use hierarchy" (UseHierarchy << Just)
|
||||||
in
|
in
|
||||||
div []
|
div []
|
||||||
[ h2 [] [ text "Cache hierarchy" ]
|
[ h2 [] [ text "Cache hierarchy" ]
|
||||||
|
@ -208,12 +212,17 @@ viewAccessInput m =
|
||||||
, item = Parser.int
|
, item = Parser.int
|
||||||
, trailing = Parser.Optional
|
, trailing = Parser.Optional
|
||||||
}
|
}
|
||||||
|
parseErrorToString _ = "Unable to parse input. Please enter a sequence of numbers separated by commas."
|
||||||
parseResult = Parser.run (parser |. Parser.end) m.accessInput
|
parseResult = Parser.run (parser |. Parser.end) m.accessInput
|
||||||
accessButton = maybeButton (Result.toMaybe parseResult) "Access address" Access
|
checkedResult =
|
||||||
errorHtml =
|
|
||||||
case parseResult of
|
case parseResult of
|
||||||
|
Ok is -> if is == [] then Err "Please enter at least one number." else Ok is
|
||||||
|
Err e -> Err <| parseErrorToString e
|
||||||
|
accessButton = resultButton checkedResult "Access address" Access
|
||||||
|
errorHtml =
|
||||||
|
case checkedResult of
|
||||||
Ok _ -> viewError True ""
|
Ok _ -> viewError True ""
|
||||||
Err lde -> viewError False "Unable to parse input. Please enter a sequence of numbers separated by commas."
|
Err e -> viewError False e
|
||||||
editHierarchyButton = button "Edit hierarchy" (UseHierarchy Nothing)
|
editHierarchyButton = button "Edit hierarchy" (UseHierarchy Nothing)
|
||||||
in
|
in
|
||||||
div []
|
div []
|
||||||
|
@ -258,6 +267,14 @@ viewBase m =
|
||||||
<| Maybe.map (List.singleton << viewCacheHierarchy) <| m.hierarchy
|
<| Maybe.map (List.singleton << viewCacheHierarchy) <| m.hierarchy
|
||||||
Just _ -> []
|
Just _ -> []
|
||||||
accessView = Maybe.withDefault [] <| Maybe.map (List.singleton << viewAccessView m) <| Maybe.andThen (List.head) <| m.accessView
|
accessView = Maybe.withDefault [] <| Maybe.map (List.singleton << viewAccessView m) <| Maybe.andThen (List.head) <| m.accessView
|
||||||
|
remainingAccessView =
|
||||||
|
case Maybe.map (\l -> List.length l - 1) m.accessView of
|
||||||
|
Just n -> if n <= 0 then [] else
|
||||||
|
[ div [ class "alert", class "alert-info" ] [ text <|
|
||||||
|
"Simulating more than one access. " ++ (String.fromInt n) ++
|
||||||
|
" addresses in queue." ]
|
||||||
|
]
|
||||||
|
_ -> []
|
||||||
in
|
in
|
||||||
div [ class "container" ]
|
div [ class "container" ]
|
||||||
<| [ viewDescription] ++ rawView ++ accessInputView ++ accessView ++ cacheView
|
<| [ viewDescription] ++ rawView ++ accessInputView ++ remainingAccessView ++ accessView ++ cacheView
|
||||||
|
|
Loading…
Reference in New Issue
Block a user